% root: main.tex
We ran our experiments using Windows 10 WSL Operating System on a machine with an Intel Core i7 2.40GHz processor with 16GB RAM.  All experiments used the PostgreSQL 13.0 database system.

The intention of the experiments was to determine whether queries over $\bi$ instances in practice generate a lot of cancellations or not.  Recall that by definition of $\bi$, a query result cannot be derived by a self-join between non-identical tuples belonging to the same block.

For this purpose we used the MayBMS data generator~\cite{pdbench} tool to randomly generate uncertain versions of TPCH tables.  We then ran $\poly_1$, $\poly_2$, and $\poly_3$ from~\cite{Antova_fastand}, all of which are modified versions of TPC-H queries $\poly_3$, $\poly_6$, and $\poly_7$ where all aggregations have been dropped.

As written, the queries disallow $\bi$ cross terms.  We ran all queries, and then rewrote the queries so as not to filter out the cross terms.  The results show that in practice, there are little to no cancelling terms, as shown in \Cref{fig:experiment-bidb-cancel}.  The columns of the table in~\Cref{fig:experiment-bidb-cancel} show the number of result tuples returned when the query filters out tuples that are cancelled by $\bi$ constraints, the number of output tuples when the cancelled tuples are included in the result, and the difference between the two.  The experiments show a range between $[0, 0.001]\%$ of tuples are cancelled tuples across the queries, suggesting that only a negligible amount of tuples are cancelled in practice when running queries over a typical $\bi$ instance.  Interestingly, only one of the three queries had tuples that violated the $\bi$ constraint.

\begin{figure}[ht]
		\begin{tabular}{ c | c c c}\label{tbl:cancel}
			Query & Cancellations Filtered & Cancellations Included & Difference\\
			\hline
			 $\poly_1$ & $46,714$ & $46,768$ & $54$\\
			 $\poly_2$ & $179.917$ & $179,917$ & $0$\\
			 $\poly_3$ & $11,535$ & $11,535$ & $0$\\
		\end{tabular}
	\caption{Number of Cancellations for Queries Over $\bi$.}
	\label{fig:experiment-bidb-cancel}
\end{figure}
\AR{Experimental stuff about BIDB should go in here}
