Fixes based on 042822 discussion.

master
Aaron Huber 2022-05-02 11:17:01 -04:00
parent 813a7f73c0
commit ef0bc79ec8
6 changed files with 36 additions and 30 deletions

View File

@ -132,12 +132,12 @@ Note that any $\poly$ in factorized form is equivalent to its \abbrSMB expansion
\subsection{Proof for Lemma~\ref{lem:tidb-reduce-poly} and~\Cref{lem:bin-bidb-phi-eq-redphi}}\label{subsec:proof-exp-poly-rpoly}
\subsection{Proof for~\Cref{lem:bin-bidb-phi-eq-redphi}}\label{subsec:proof-exp-poly-rpoly}
\begin{proof}
Let $\poly$ be a polynomial of $\numvar$ variables with highest degree $= \hideg$, defined as follows:
\[\poly(X_1,\ldots, X_\numvar) = \sum_{\vct{d} \in \{0,\ldots, \hideg\}^\numvar}c_{\vct{d}}\cdot \prod_{\substack{i = 1\\s.t. d_i \geq 1}}^\numvar X_i^{d_i},\]
\[\poly(X_1,\ldots, X_\numvar) = \sum_{\vct{d} \in \{0,\ldots, \hideg\}^\numvar}c_{\vct{d}}\cdot \prod_{i = 1}^\numvar X_i^{d_i},\]
where $\tupset'$ has $\numvar$ tuples, we can equivalently write $\prod\limits_{\substack{\tup\in\tupset'\\s.t.~d_\tup\geq 1}}$ for the product term.
where $\tupset'$ has $\numvar$ tuples, we can equivalently write $\prod\limits_{\tup\in\tupset'}X_\tup^{d_\tup}$ for the product term.
%If we can prove that $\poly\inparen{\vct{W}} = \rpoly\inparen{\vct{W}}$ for any $\poly\inparen{\vct{X}}$ and any $\vct{W}$, then the proof holds for any $\refpoly{}\inparen{\vct{W}}$ since $\refpoly{}\inparen{\vct{W}}$ is \emph{itself} a polynomial as defined above.\footnote{This can be seen in converting $\refpoly{}\inparen{\vct{X}}$ into \abbrSMB.}
Let the boolean function $\isInd{\cdot}$ take $\vct{d}$ as input and return true if there does not exist any dependent variables in the monomial encoded by $\vct{d}$, i.e., for any block $\block\in\tupset'$, $\not\exists \tup, \tup' \in\block~|~\vct{d}_\tup, \vct{d}_{\tup'}\geq 1$.% \and $\tup, \tup'\in\tupset\implies \inparen{\vct{d}_t=0\vee\vct{d}_{\tup'} = 0}\$, $\not\exists ~\block, i\neq j\suchthat \block\supseteq\inset{\tup_i, \tup_j} \wedge d_{i}, d_{j} \geq 1$.
@ -147,15 +147,15 @@ Let the boolean function $\isInd{\cdot}$ take $\vct{d}$ as input and return true
Then, given \abbrOneBIDB $\pdb$, query $\query$, and polynomial $\poly\inparen{\vct{W}} = \poly\pbox{\query, \tupset, \tup}$, in expectation we have
\begin{align}
\expct_{\vct{\randWorld}}\pbox{\poly(\vct{\randWorld})} &= \expct_{\vct{\randWorld}}\pbox{\sum_{\substack{\vct{d} \in \{0,\ldots,\hideg\}^\numvar\\\wedge~\isInd{\vct{d}}}}c_{\vct{d}}\cdot \prod_{\substack{i = 1\\s.t. d_i \geq 1}}^\numvar \randWorld_i^{d_i} + \sum_{\substack{\vct{d} \in \{0,\ldots, \hideg\}^\numvar\\\wedge ~\neg\isInd{\vct{d}}}} c_{\vct{d}}\cdot\prod_{\substack{i = 1\\s.t. d_i \geq 1}}^\numvar\randWorld_i^{d_i}}\label{p1-s1a}\\
&= \sum_{\substack{\vct{d} \in \{0,\ldots,\hideg\}^\numvar\\\wedge~\isInd{\vct{d}}}}c_{\vct{d}}\cdot \expct_{\vct{\randWorld}}\pbox{\prod_{\substack{i = 1\\s.t. d_i \geq 1}}^\numvar \randWorld_i^{d_i}} + \sum_{\substack{\vct{d} \in \{0,\ldots, \hideg\}^\numvar\\\wedge ~\neg\isInd{\vct{d}}}} c_{\vct{d}}\cdot\expct_{\vct{\randWorld}}\pbox{\prod_{\substack{i = 1\\s.t. d_i \geq 1}}^\numvar\randWorld_i^{d_i}}\label{p1-s1b}\\
&= \sum_{\substack{\vct{d} \in \{0,\ldots,\hideg\}^\numvar\\~\wedge\isInd{\vct{d}}}}c_{\vct{d}}\cdot \expct_{\vct{\randWorld}}\pbox{\prod_{\substack{i = 1\\s.t. d_i \geq 1}}^\numvar \randWorld_i^{d_i}}\label{p1-s1c}\\
&= \sum_{\substack{\vct{d} \in \{0,\ldots,\hideg\}^\numvar\\\wedge~\isInd{\vct{d}}}}c_{\vct{d}}\cdot \prod_{\substack{i = 1\\s.t. d_i \geq 1}}^\numvar \expct_{\vct{\randWorld}}\pbox{\randWorld_i^{d_i}}\label{p1-s2}\\
&= \sum_{\substack{\vct{d} \in \{0,\ldots,\hideg\}^\numvar\\\wedge~\isInd{\vct{d}}}}c_{\vct{d}}\cdot \prod_{\substack{i = 1\\s.t. d_i \geq 1}}^\numvar \expct_{\vct{\randWorld}}\pbox{\randWorld_i}\label{p1-s3}\\
&= \sum_{\substack{\vct{d} \in \{0,\ldots,\hideg\}^\numvar\\\wedge~\isInd{\vct{d}}}}c_{\vct{d}}\cdot \prod_{\substack{i = 1\\s.t. d_i \geq 1}}^\numvar \prob_i\label{p1-s4}\\
\expct_{\vct{\randWorld}}\pbox{\poly(\vct{\randWorld})} &= \expct_{\vct{\randWorld}}\pbox{\sum_{\substack{\vct{d} \in \{0,\ldots,\hideg\}^\numvar\\\wedge~\isInd{\vct{d}}}}c_{\vct{d}}\cdot \prod_{\tup\in\tupset'} \randWorld_i^{d_i} + \sum_{\substack{\vct{d} \in \{0,\ldots, \hideg\}^\numvar\\\wedge ~\neg\isInd{\vct{d}}}} c_{\vct{d}}\cdot\prod_{\tup\in\tupset'}\randWorld_i^{d_i}}\label{p1-s1a}\\
&= \sum_{\substack{\vct{d} \in \{0,\ldots,\hideg\}^\numvar\\\wedge~\isInd{\vct{d}}}}c_{\vct{d}}\cdot \expct_{\vct{\randWorld}}\pbox{\prod_{\tup\in\tupset'} \randWorld_i^{d_i}} + \sum_{\substack{\vct{d} \in \{0,\ldots, \hideg\}^\numvar\\\wedge ~\neg\isInd{\vct{d}}}} c_{\vct{d}}\cdot\expct_{\vct{\randWorld}}\pbox{\prod_{\tup\in\tupset'}\randWorld_i^{d_i}}\label{p1-s1b}\\
&= \sum_{\substack{\vct{d} \in \{0,\ldots,\hideg\}^\numvar\\~\wedge\isInd{\vct{d}}}}c_{\vct{d}}\cdot \expct_{\vct{\randWorld}}\pbox{\prod_{\tup\in\tupset'} \randWorld_i^{d_i}}\label{p1-s1c}\\
&= \sum_{\substack{\vct{d} \in \{0,\ldots,\hideg\}^\numvar\\\wedge~\isInd{\vct{d}}}}c_{\vct{d}}\cdot \prod_{\tup\in\tupset'} \expct_{\vct{\randWorld}}\pbox{\randWorld_i^{d_i}}\label{p1-s2}\\
&= \sum_{\substack{\vct{d} \in \{0,\ldots,\hideg\}^\numvar\\\wedge~\isInd{\vct{d}}}}c_{\vct{d}}\cdot \prod_{\tup\in\tupset'} \expct_{\vct{\randWorld}}\pbox{\randWorld_i}\label{p1-s3}\\
&= \sum_{\substack{\vct{d} \in \{0,\ldots,\hideg\}^\numvar\\\wedge~\isInd{\vct{d}}}}c_{\vct{d}}\cdot \prod_{\tup\in\tupset'} \prob_i\label{p1-s4}\\
&= \rpoly(\prob_1,\ldots, \prob_\numvar).\label{p1-s5}
\end{align}
\Cref{p1-s1a} is the result of substituting in the definition of $\poly$ given above. Then we arrive at \cref{p1-s1b} by linearity of expectation. Next, \cref{p1-s1c} is the result of the independence constraint of \abbrBIDB\xplural, specifically that any monomial composed of dependent variables, i.e., variables from the same block $\block$, has a probability of $0$. \Cref{p1-s2} is obtained by the fact that all variables in each monomial are independent, which allows for the expectation to be pushed through the product. In \cref{p1-s3}, note that when computing the expectation of a \abbrOneBIDB polynomial over the set of worlds, any world $\vct{W}\in \bigtimes_{\tup \in \tupset}\inset{0, \bound_\tup}$ with $W_\tup \geq 2$ for $W_\tup\in\vct{W}$ can equivalently be replaced with $\bound_\tup^{d_t}\cdot W_\tup$ with domain of $W_t$ $\domain\inparen{W_\tup} = \inset{0, 1}$. Then $c_{\vct{d}}$ absorbs all such $\bound_\tup^{d_\tup}$ factors. Since $\randWorld_i \in \{0, 1\}$ it is the case that for any exponent $e \geq 1$, $\randWorld_i^e = \randWorld_i$. Next, in \cref{p1-s4} the expectation of a tuple is indeed its probability.
\Cref{p1-s1a} is the result of substituting in the definition of $\poly$ given above. Then we arrive at \cref{p1-s1b} by linearity of expectation. Next, \cref{p1-s1c} is the result of the independence constraint of \abbrBIDB\xplural, specifically that any monomial composed of dependent variables, i.e., variables from the same block $\block$, has a probability of $0$. \Cref{p1-s2} is obtained by the fact that all variables in each monomial are independent, which allows for the expectation to be pushed through the product. In \cref{p1-s3}, recall the lineage construction semantics of~\Cref{fig:lin-poly-bidb} for a \abbrOneBIDB, where the annotation of a tuple $\tup$ with multiplicity $j$ is written as $j^{d_\tup}\cdot X_{\tup}^{d_\tup}$ such that $\domain\inparen{\vct{W}_\tup} = \inset{0, 1}$. Then $c_{\vct{d}}$ absorbs all such $j^{d_\tup}$ factors. Since $\randWorld_\tup \in \{0, 1\}$ it is the case that for any exponent $e \geq 1$, $\vct{W}_\tup^e = \vct{W}_\tup$. Next, in \cref{p1-s4} the expectation of a tuple is indeed its probability.
Finally, it can be verified that \Cref{p1-s5} follows since \cref{p1-s4} satisfies the construction of $\rpoly(\prob_1,\ldots, \prob_\numvar)$ in \Cref{def:reduced-poly}.
\qed

View File

@ -75,57 +75,62 @@ encodes a polynomial, realized as
We define the circuit for a $\raPlus$ query $\query$ recursively by cases as follows. In each case, let $\tuple{V_{Q_i,\pxdb}, E_{Q_i,\pxdb}, \phi_{Q_{i},\pxdb}, \ell_{Q_i,\pxdb}}$ denote the circuit for subquery $Q_i$. We implicitly include in all circuits a global zero node $v_0$ s.t., $\ell_{Q, \pxdb}(v_0) = 0$ for any $Q,\pxdb$.
\AH{Questions for below:\par\begin{enumerate}\item Why did we choose the name \abbrStepOne?\item What is $\domain\inparen{\phi'}$?\item Unsure of $\ell\gets\ell\cup\inset{v_t, \rel\inparen{\tup}}$ since $\ell$ is defined as a function with a range of $\inset{+, \times}\cup\mathbb{N}\cup\vct{X}$. Since $\rel\in\tupset$ where $\tupset$ is the deterministic bounding database for $\mathbb{N}\pbox{\vct{X}}$-PDB $\mathcal{D}_{\mathbb{N}\pbox{\vct{X}}}$, then $\rel\inparen{\tup}\in\mathbb{N}\pbox{\vct{X}}\not\subseteq\inset{+, \times}\cup\mathbb{N}\cup\vct{X}$ \emph{unless} it is implicit that each tuple in a base relation is annotated with an element $X\in \vct{X}$. OR are we thinking of $\tupset$ as an $\mathbb{N}$ bounding database, which upperbounds the multiplicity of every possible tuple?\item The comment on garbage collecting for \textbf{Selection}: it seems to me, that with or without garbage collection, the upperbound would still hold.\item Are we using the notation $\project_{\vec{A}}$ to mean anything different than $\project_A$?\item In pseudocode, is it okay to start using new variables without first declaring or defining them?\item The ``output'' of Algo 4 is \circuit, yet nothing is returned. Are we assuming a data structure that is modified in place, like e.g. passing a pointer to the data structure in a C-language method?\item On the surface it appears that line 23 should overwrite $V, E, \ell$ modifications in line 22, but really should be accumulating them. Is the $\gets$ symbol okay here since we have already stated that the variables are accumulators?\item Should line 37 be $i\in\pbox{m}$?\item Shouldn't the first inequality RHS of m-ary join have the $k$'s subscripted? \end{enumerate}
\AH{Questions for below:\par\begin{enumerate}\item Why did we choose the name \lincirc?\item What is $\domain\inparen{\phi'}$?\item Unsure of $\ell\gets\ell\cup\inset{v_t, \rel\inparen{\tup}}$ since $\ell$ is defined as a function with a range of $\inset{+, \times}\cup\mathbb{N}\cup\vct{X}$. Since $\rel\in\tupset$ where $\tupset$ is the deterministic bounding database for $\mathbb{N}\pbox{\vct{X}}$-PDB $\mathcal{D}_{\mathbb{N}\pbox{\vct{X}}}$, then $\rel\inparen{\tup}\in\mathbb{N}\pbox{\vct{X}}\not\subseteq\inset{+, \times}\cup\mathbb{N}\cup\vct{X}$ \emph{unless} it is implicit that each tuple in a base relation is annotated with an element $X\in \vct{X}$. OR are we thinking of $\tupset$ as an $\mathbb{N}$ bounding database, which upperbounds the multiplicity of every possible tuple?\item The comment on garbage collecting for \textbf{Selection}: it seems to me, that with or without garbage collection, the upperbound would still hold.\item Are we using the notation $\project_{A}$ to mean anything different than $\project_A$?\item In pseudocode, is it okay to start using new variables without first declaring or defining them?\item The ``output'' of Algo 4 is \circuit, yet nothing is returned. Are we assuming a data structure that is modified in place, like e.g. passing a pointer to the data structure in a C-language method?\item On the surface it appears that line 23 should overwrite $V, E, \ell$ modifications in line 22, but really should be accumulating them. Is the $\gets$ symbol okay here since we have already stated that the variables are accumulators?\item Should line 37 be $i\in\pbox{m}$?\item Shouldn't the first inequality RHS of m-ary join have the $k$'s subscripted? \end{enumerate}
}
\begin{algorithm}
\caption{\abbrStepOne$(\query, \tupset, E, V, \ell)$}
\caption{\lincirc$(\query, \tupset, E, V, \ell)$}
\label{alg:lc}
\begin{algorithmic}[1]
\Require $\query$: query
\Require $\tupset$: a \dbbaseName
\Require $E, V, \ell$: accumulators for the edge list, vertex list, and vertex label list.
\Ensure $\circuit = \tuple{E, V, \phi, \ell}$: a circuit encoding the lineage of each tuple in $\query(\tupset)$
\Ensure $\circuit = \tuple{V, E, \phi, \ell}$: a circuit encoding the lineage of each tuple in $\query(\tupset)$
\If{$\query$ is $\rel$} \Comment{\textbf{Case 1}: $\query$ is a relation atom}
\For{$t \in \tupset.\rel$}
\State $V \leftarrow V \cup \{v_t\}$; $\ell \leftarrow \ell \cup \{\inparen{v_t, \rel\inparen{\tup}}\}$ \Comment{Allocate a fresh node $v_t$}
\State $V \leftarrow V \cup \{v_t\}$; $\ell \leftarrow \ell \cup \{\inparen{v_t, \rel\inparen{\tup}}\}$ \Comment{Allocate a fresh node $v_t$; note that when $\rel\inparen{\tup}\not\in\vct{X}$ but $\rel\inparen{\tup}\in\mathbb{N}\pbox{\vct{X}}$, we assume the algorithm generates a $3$ node circuit encoding the multiplcation of $\bound\cdot X_\tup$, adding the new vertices, edges, and vertice/label pairs to their respective sets.}
\State $\phi(t) \gets v_t$
\EndFor
\State\Return $\tuple{V, E, \phi, \ell}$
\ElsIf{$\query$ is $\sigma_\theta(\query')$} \Comment{\textbf{Case 2}: $\query$ is a Selection}
\State $\tuple{V, E, \phi', \ell} \gets \abbrStepOne(\query', \tupset, V, E, \ell)$
\State $\tuple{V, E, \phi', \ell} \gets \lincirc(\query', \tupset, V, E, \ell)$
\For{$t \in \domain(\phi')$}
\State \textbf{if }$\theta(t)$
\textbf{ then } $\phi(t) \gets \phi'(t)$
\textbf{ else } $\phi(t) \gets v_0$
\EndFor
\ElsIf{$\query$ is $\pi_{\vec{A}}(\query')$} \Comment{\textbf{Case 3}: $\query$ is a Projection}
\State $\tuple{V, E, \phi', \ell} \gets \abbrStepOne(\query', \tupset, V, E, \ell)$
\For{$t \in \pi_{\vec{A}}(\query'(\tupset))$}
\State\Return $\tuple{V, E, \phi, \ell}$
\ElsIf{$\query$ is $\pi_{A}(\query')$} \Comment{\textbf{Case 3}: $\query$ is a Projection}
\State $\tuple{V, E, \phi', \ell} \gets \lincirc(\query', \tupset, V, E, \ell)$
\For{$t \in \pi_{A}(\query'(\tupset))$}
\State $V \leftarrow V \cup \{v_t\}$; $\ell \leftarrow \ell \cup \{(v_t, +)\}$\Comment{Allocate a fresh node $v_t$}
\State $\phi(t) \leftarrow v_t$
\EndFor
\For{$t \in \query'(\tupset)$}
\State $E \leftarrow E \cup \{(\phi'(t), \phi(\pi_{\vec{A}}t))\}$
\State $E \leftarrow E \cup \{(\phi'(t), \phi(\pi_{A}t))\}$
\EndFor
\State Correct nodes with in-degrees $>2$ by appending an equivalent fan-in two tree instead
\State\Return $\tuple{V, E, \phi, \ell}$
\ElsIf{$\query$ is $\query_1 \cup \query_2$} \Comment{\textbf{Case 4}: $\query$ is a Bag Union}
\State $\tuple{V, E, \phi_1, \ell} \gets \abbrStepOne(\query_1, \tupset, V, E, \ell)$
\State $\tuple{V, E, \phi_2, \ell} \gets \abbrStepOne(\query_2, \tupset, V, E, \ell)$
\State $\tuple{V', E', \phi_1, \ell'} \gets \lincirc(\query_1, \tupset, V, E, \ell)$
\State $\tuple{V, E, \phi_2, \ell} \gets \lincirc(\query_2, \tupset, V', E', \ell')$
\State $\phi \gets \phi_1 \cup \phi_2$
\For{$t \in \domain(\phi_1) \cap \domain(\phi_2)$}
\State $V \leftarrow V \cup \{v_t\}$; $\ell \leftarrow \ell \cup \{(v_t, +)\}$ \Comment{Allocate a fresh node $v_t$}
\State $\phi(t) \gets v_t$
\State $E \leftarrow E \cup \{(\phi_1(t), v_t), (\phi_2(t), v_t)\}$
\EndFor
\State\Return $\tuple{V, E, \phi, \ell}$
\ElsIf{$\query$ is $\query_1 \bowtie \ldots \bowtie \query_m$} \Comment{\textbf{Case 5}: $\query$ is a $m$-ary Join}
\For{$i \in [m]$}
\State $\tuple{V, E, \phi_i, \ell} \gets \abbrStepOne(\query_i, \tupset, V, E, \ell)$
\State $\tuple{V, E, \phi_i, \ell} \gets \lincirc(\query_i, \tupset, V, E, \ell)$
\EndFor
\For{$t \in \domain(\phi_1) \bowtie \ldots \bowtie \domain(\phi_m)$}
\State $V \leftarrow V \cup \{v_t\}$; $\ell \leftarrow \ell \cup \{(v_t, \times)\}$ \Comment{Allocate a fresh node $v_t$}
\State $\phi(t) \gets v_t$
\State $E \leftarrow E \cup \comprehension{(\phi_i(\pi_{sch(\query_i(\tupset))}(t)), v_t)}{i \in [n]}$
\State $E \leftarrow E \cup \comprehension{(\phi_i(\pi_{sch(\query_i(\tupset))}(t)), v_t)}{i \in [m]}$
\EndFor
\State Correct nodes with in-degrees $>2$ by appending an equivalent fan-in two tree instead
\State\Return $\tuple{V, E, \phi, \ell}$
\EndIf
@ -133,7 +138,7 @@ We define the circuit for a $\raPlus$ query $\query$ recursively by cases as fol
\end{algorithm}
\Cref{alg:lc} defines how the circuit for a query result is constructed. We quickly review the number of vertices emitted in each case.
\Cref{alg:lc} defines how the circuit for a query result is constructed. Denote the set of active output tuples as $\domain\inparen{\phi}$. We quickly review the number of vertices emitted in each case.
\caseheading{Base Relation}
This circuit has $\abs{\tupset.\rel}$ vertices.
@ -235,15 +240,15 @@ The property holds for all recursive queries, and the proof holds.
\qed
\end{proof}
\subsubsection{Runtime of \abbrStepOne}
\subsubsection{Runtime of \lincirc}
\label{sec:lc-runtime}
We next need to show that we can construct the circuit in time linear in the deterministic runtime.
\begin{Lemma}\label{lem:tlc-is-the-same-as-det}
Given a query $\query$ over a \dbbaseName $\tupset$ and the $\circuit^*$ output by \Cref{alg:lc}, the runtime $\timeOf{\abbrStepOne}(\query,\tupset,\circuit^*) \le O(\qruntime{\query, \tupset})$.
Given a query $\query$ over a \dbbaseName $\tupset$ and the $\circuit^*$ output by \Cref{alg:lc}, the runtime $\timeOf{\lincirc}(\query,\tupset,\circuit^*) \le O(\qruntime{\query, \tupset})$.
\end{Lemma}
\begin{proof}
By analysis of \Cref{alg:lc}, invoked as $\circuit^*\gets\abbrStepOne(\query, \tupset, \{v_0\}, \emptyset, \{(v_0, 0)\})$.
By analysis of \Cref{alg:lc}, invoked as $\circuit^*\gets\lincirc(\query, \tupset, \emptyset, \{v_0\}, \{(v_0, 0)\})$.
We assume that the vertex list $V$, edge list $E$, and vertex label list $\ell$ are mutable accumulators with $O(1)$ ammortized append.
We assume that the tuple to sink mapping $\phi$ is a linked hashmap, with $O(1)$ insertions and retrievals, and $O(n)$ iteration over the domain of keys.
@ -265,8 +270,8 @@ Selection requires a recursive call to \Cref{alg:lc}, which by the recursive ass
By the observation above that $\qruntime{\query, \db} \geq \Omega(|\query(\db)|)$, this iteration is also bounded by $O(\qruntime{\query', \tupset})$.
\caseheading{Projection}
Projection requires a recursive call to \Cref{alg:lc}, which by the recursive assumption is bounded by $O(\qruntime{\query', \tupset})$, which in turn is a term in $\qruntime{\pi_{\vec{A}}\query', \tupset}$.
What remains is an iteration over $\pi_{\vec A}(\query(\tupset))$ (lines 13--16), an iteration over $\query'(\tupset)$ (lines 17--19), and the construction of a fan-in tree (line 20).
Projection requires a recursive call to \Cref{alg:lc}, which by the recursive assumption is bounded by $O(\qruntime{\query', \tupset})$, which in turn is a term in $\qruntime{\pi_{A}\query', \tupset}$.
What remains is an iteration over $\pi_{A}(\query(\tupset))$ (lines 13--16), an iteration over $\query'(\tupset)$ (lines 17--19), and the construction of a fan-in tree (line 20).
The first iteration is $O(|\query(\tupset)|) \leq O(\qruntime{\query, \tupset})$.
The second iteration and the construction of the bounded fan-in tree are both $O(|\query'(\tupset)|) \leq O(\qruntime{\query', \tupset}) \leq O(\qruntime{\query, \tupset}) $, by the the observation above that $\qruntime{\query, \db} \geq \Omega(|\query(\db)|)$.

View File

@ -380,6 +380,7 @@
\newcommand{\sampmon}{\algname{SampleMonomial}}
%I don't think we use reduce anymore
\newcommand{\reduce}{\algname{Reduce}}
\newcommand{\lincirc}{\algname{LineageCircuit}}
\newcommand{\ceil}[1]{\left\lceil #1 \right\rceil}
\newcommand{\vari}[1]{\texttt{#1}\xspace}
\newcommand{\accum}{\vari{acc}}

View File

@ -23,7 +23,7 @@
\BOOKMARK [2][-]{subsection.A.2}{\376\377\000A\000.\0002\000\040\000P\000r\000o\000o\000f\000\040\000o\000f\000\040\000p\000r\000o\000p\000:\000c\000t\000i\000d\000b\000-\000r\000e\000d\000u\000c\000t}{appendix.A}% 23
\BOOKMARK [2][-]{subsection.A.3}{\376\377\000A\000.\0003\000\040\000P\000r\000o\000o\000f\000\040\000o\000f\000\040\000p\000r\000o\000p\000:\000e\000x\000p\000e\000c\000t\000i\000o\000n\000-\000o\000f\000-\000p\000o\000l\000y\000n\000o\000m}{appendix.A}% 24
\BOOKMARK [2][-]{subsection.A.4}{\376\377\000A\000.\0004\000\040\000P\000r\000o\000p\000o\000s\000i\000t\000i\000o\000n\000\040\000A\000.\0004}{appendix.A}% 25
\BOOKMARK [2][-]{subsection.A.5}{\376\377\000A\000.\0005\000\040\000P\000r\000o\000o\000f\000\040\000f\000o\000r\000\040\000L\000e\000m\000m\000a\000\040\0001\000.\0004\000\040\000a\000n\000d\000\040\000l\000e\000m\000:\000b\000i\000n\000-\000b\000i\000d\000b\000-\000p\000h\000i\000-\000e\000q\000-\000r\000e\000d\000p\000h\000i}{appendix.A}% 26
\BOOKMARK [2][-]{subsection.A.5}{\376\377\000A\000.\0005\000\040\000P\000r\000o\000o\000f\000\040\000f\000o\000r\000\040\000l\000e\000m\000:\000b\000i\000n\000-\000b\000i\000d\000b\000-\000p\000h\000i\000-\000e\000q\000-\000r\000e\000d\000p\000h\000i}{appendix.A}% 26
\BOOKMARK [2][-]{subsection.A.6}{\376\377\000A\000.\0006\000\040\000P\000r\000o\000o\000f\000\040\000F\000o\000r\000\040\000C\000o\000r\000o\000l\000l\000a\000r\000y\000\040\0002\000.\0007}{appendix.A}% 27
\BOOKMARK [1][-]{appendix.B}{\376\377\000B\000\040\000M\000i\000s\000s\000i\000n\000g\000\040\000d\000e\000t\000a\000i\000l\000s\000\040\000f\000r\000o\000m\000\040\000S\000e\000c\000t\000i\000o\000n\000\040\0003}{}% 28
\BOOKMARK [2][-]{subsection.B.1}{\376\377\000B\000.\0001\000\040\000l\000e\000m\000:\000p\000d\000b\000-\000f\000o\000r\000-\000d\000e\000f\000-\000q\000k}{appendix.B}% 29

BIN
main.pdf

Binary file not shown.

Binary file not shown.