% -*- root: main.tex -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % NOTATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Circuits \newcommand{\caseheading}[1]{\smallskip \noindent \textbf{#1}.~} %%%%% \newcommand{\wElem}{w} %an element of \vct{w} \newcommand{\suchthat}{\;|\;} %such that \newcommand{\kElem}{k}%the kth element %RA-to-Poly Notation \newcommand{\polyinput}[2]{\left(#1,\ldots, #2\right)} \newcommand{\numvar}{n} \newcommand{\rel}{R} \newcommand{\prel}{\mathcal{\rel}} \newcommand{\reli}{S} \newcommand{\relii}{T} \newcommand{\db}{D} \newcommand{\idb}{\Omega} \newcommand{\pdb}{\mathcal{D}} \newcommand{\pxdb}{\mathbf{D}} \newcommand{\nxdb}{D(\vct{X})}%\mathbb{N}[\vct{X}] db \newcommand{\tset}{\mathcal{T}}%the set of tuples in a database \newcommand{\pd}{\vct{P}}%pd for probability distribution \newcommand{\eval}[1]{\llbracket #1 \rrbracket}%evaluation double brackets \newcommand{\evald}[2]{\eval{{#1}}_{#2}} \newcommand{\linsett}[3]{\Phi_{#1,#2}^{#3}} \newcommand{\query}{Q} \newcommand{\join}{\Join} \newcommand{\select}{\sigma} \newcommand{\project}{\pi} \newcommand{\union}{\cup} \newcommand{\sch}{sch} \newcommand{\attr}[1]{attr\left(#1\right)} \newcommand{\rw}{\textbf{W}}%\rw for random world \newcommand{\graph}[1]{G^{(#1)}} \newcommand{\eset}[1]{E^{(#1)}_S} %edge set for arbitrary subgraph \newcommand{\linsys}[1]{LS(\graph{#1})} \newcommand{\lintime}[1]{LT^{\graph{#1}}} \newcommand{\aug}[1]{AUG^{\graph{#1}}} \newcommand{\mtrix}[1]{M_{#1}} \newcommand{\dtrm}[1]{Det\left(#1\right)} \newcommand{\tuple}[1]{\left<#1\right>} \newcommand{\indicator}[1]{\onesymbol\inparen{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Query Classes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\qClass}{\mathcal{Q}} \newcommand{\raPlus}{\ensuremath{\mathcal{RA}^{+}}\xspace} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %Approx Alg %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\randvar}{Y} \newcommand{\coeffset}{S} \newcommand{\distinctvars}{d} \newcommand{\coeffitem}[1]{c_{#1}\cdot\prob^{\distinctvars_{#1}}} \newcommand{\unidist}[1]{Uniform\left(#1\right)} \newcommand{\samplesize}{N} \newcommand{\setsize}{m} \newcommand{\empmean}{\overline{\vct{\randvar}}} \newcommand{\setsum}{SUM} \newcommand{\ave}[1]{AVG(#1)} \newcommand{\hoeffestsum}{EST_{\setsum}} \newcommand{\error}{\epsilon} \newcommand{\conf}{\delta} %Pseudo Code Notation \newcommand{\plus}{\texttt{+}} \newcommand{\mult}{\texttt{\times}} \newcommand{\algname}[1]{\textsc{#1}\xspace} \newcommand{\approxq}{\algname{Approximate$\rpoly$}} \newcommand{\onepass}{\algname{OnePass}} \newcommand{\sampmon}{\algname{SampleMonomial}} \newcommand{\reduce}{\algname{Reduce}} \newcommand{\ceil}[1]{\left\lceil #1 \right\rceil} \newcommand{\vari}[1]{\texttt{#1}\xspace} \newcommand{\accum}{\vari{acc}} \newcommand{\numsamp}{\vari{N}} \newcommand{\numedge}{m} \newcommand{\bivec}{\vari{b}_{\vari{vec}}} %expression tree T \newcommand{\etree}{\vari{T}} \newcommand{\stree}{\vari{S}} \newcommand{\lchild}{\vari{L}} \newcommand{\rchild}{\vari{R}} %members of T \newcommand{\val}{\vari{val}\xspace} \newcommand{\wght}{\vari{weight}\xspace} \newcommand{\vpartial}{\vari{partial}\xspace} %types of T \newcommand{\var}{\textsc{var}\xspace} \newcommand{\tnum}{\textsc{num}\xspace} %%%%%%% \renewcommand{\algorithmicrequire}{\textbf{Input:}} \renewcommand{\algorithmicensure}{\textbf{Output:}} \newcommand{\smb}{\poly\left(\vct{X}\right)}%smb for standard monomial basis \newcommand{\smbOf}[1]{\textsc{SMB}(#1)} \newcommand{\etreeset}[1]{\vari{ET}\left(#1\right)} %\expandtree is a placeholder until I change other files with the new macro name \expansion \newcommand{\expandtree}[1]{\vari{E}(#1)} \newcommand{\expansion}[1]{\vari{E}(#1)} \newcommand{\elist}[1]{\vari{List}\pbox{#1}} \newcommand{\equivtree}{\vari{EET}} %expandtree tuple elements: \newcommand{\monom}{\vari{v}} \newcommand{\coef}{\vari{c}} %---------------------------------- \newcommand{\abs}[1]{\left|#1\right|} \newcommand{\func}[1]{\textsc{#1}} \newcommand{\polyf}{\func{poly}} \newcommand{\evalmp}{\func{eval}} \newcommand{\degree}{\func{deg}} \newcommand{\size}{\func{size}} \newcommand{\depth}{\func{depth}} \newcommand{\topord}{\func{TopOrd}} %saving \treesize for now to keep latex from breaking \newcommand{\treesize}{\func{size}} \newcommand{\sign}{\func{sgn}} %Random Variable \newcommand{\randomvar}{W} \newcommand{\domain}{\func{Dom}} %PDBs \newcommand{\pdbx}{X_{DB}} \newcommand{\prob}{p} \newcommand{\probOf}{P} \newcommand{\probDist}{\vct{\probOf}} \newcommand{\probAllTup}{\vct{\prob}} \newcommand{\wSet}{\Omega} \newcommand{\ti}{TIDB\xspace} \newcommand{\tis}{TIDBs\xspace} \newcommand{\bi}{BIDB\xspace} \newcommand{\bis}{BIDBs\xspace} \newcommand{\tiabb}{ti} \newcommand{\biabb}{bi} \newcommand{\biwset}{\idb_{\biabb}} \newcommand{\block}{b} \newcommand{\biord}{\leq_{x_\block}} \newcommand{\tiwset}{\idb_{\tiabb}} \newcommand{\bipd}{\pd_{\biabb}} \newcommand{\tipd}{\pd_{\tiabb}} \newcommand{\bipdb}{\pdb_{\biabb}} \newcommand{\bivar}{x_{\block, i}} \newcommand{\tipdb}{\pdb_{\tiabb}} % REPRESENTATIONS \newcommand{\rmod}{Mod} \newcommand{\reprs}{\mathcal{M}} \newcommand{\repr}{M} %Polynomial Reformulation \newcommand{\wbit}{w} \newcommand{\expct}{\mathop{\mathbb{E}}} \newcommand{\pbox}[1]{\left[#1\right]} \newcommand{\pbrace}[1]{\left\{#1\right\}} \newcommand{\vct}[1]{{\bf #1}} %using \wVec for world bit vector notation \newcommand{\poly}{Q} \newcommand{\rpoly}{\widetilde{Q}}%r for reduced as in reduced 'Q' \newcommand{\polyForTuple}{\poly_{\tup}} \newcommand{\out}{output}%output aggregation over the output vector \newcommand{\numocc}[2]{\#\left(#1,#2\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Graph Symbols %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Shift macro \newcommand{\patternshift}[1]{\hspace*{-0.5mm}\raisebox{-0.35mm}{#1}\hspace*{-0.5mm} } %Global styles \tikzset{ default_node/.style={align=center, inner sep=0pt}, pattern_node/.style={fill=gray!50, draw=black, semithick, inner sep=0pt, minimum size = 2pt, circle}, tree_node/.style={default_node, draw=black, black, circle, text width=0.5cm, font=\bfseries, minimum size=0.65cm}, highlight_color/.style={black}, wght_color/.style={black}, highlight_treenode/.style={tree_node, draw=black, black}, edge from parent path={(\tikzparentnode) -- (\tikzchildnode)} } %Subgraph patterns \newcommand{\ed}{\patternshift{ \begin{tikzpicture}[every path/.style={thick, draw}]%[baseline=0.00005cm] %\begin{scope}[yshift=-5cm] \node at (0, 0)[pattern_node](bottom){}; \node [above=0.07cm of bottom, pattern_node] (top){}; \draw (top) -- (bottom); % \node at (0, -2)[pattern_node, blue](b2){}; % \node [above=0.07cm of b2, pattern_node, blue] (t2){}; % \draw (t2) -- (b2); %\end{scope} \end{tikzpicture} } } \newcommand{\kmatch}{\ed\cdots\ed^\kElem} \newcommand{\twodis}{\patternshift{ \begin{tikzpicture}[every path/.style={thick, draw}] \node at (0, 0) [pattern_node] (bottom1) {}; \node[above=0.07cm of bottom1, pattern_node] (top1) {} edge (bottom1); \node at (0.14, 0) [pattern_node] (bottom2) {}; \node [above=0.07cm of bottom2, pattern_node] (top2) {} edge (bottom2); \end{tikzpicture} } } \newcommand{\twopath}{\patternshift{ \begin{tikzpicture}[every path/.style={thick, draw}] \node at (0, 0.08) [pattern_node] (top){}; \node [below left=0.095cm and 0.05cm of top, pattern_node](left){}; \node[below right=0.095cm and 0.05cm of top, pattern_node](right){}; \draw (top) -- (left); \draw (top) -- (right); \end{tikzpicture} } } \newcommand{\threedis}{\patternshift{ \begin{tikzpicture}[every path/.style={thick, draw}] \node at (0, 0) [pattern_node] (bottom1) {}; \node[above=0.07cm of bottom1, pattern_node] (top1) {} edge (bottom1); \node at (0.14, 0) [pattern_node] (bottom2) {}; \node [above=0.07cm of bottom2, pattern_node] (top2) {} edge (bottom2); \node at (0.28, 0) [pattern_node] (bottom3) {}; \node [above=0.07cm of bottom3, pattern_node] (top3) {} edge (bottom3); \end{tikzpicture} } } \newcommand{\tri}{\patternshift{ \begin{tikzpicture}[every path/.style={ thick, draw}] \node at (0, 0.08) [pattern_node] (top){}; \node [below left=0.08cm and 0.01cm of top, pattern_node](left){} edge (top); \node[below right=0.08cm and 0.01cm of top, pattern_node](right){} edge (top) edge (left); \end{tikzpicture} } } \newcommand{\twopathdis}{\ed~\twopath} \newcommand{\threepath}{\patternshift{ \begin{tikzpicture}[every path/.style={thick, draw}] \node at (0, 0) [pattern_node] (node1a) {}; \node [above=0.07cm of node1a, pattern_node] (node1b) {} edge (node1a); \node [right=0.099cm of node1a, pattern_node] (node2b) {}; %edge [semithick] (node1b); \node [above=0.07cm of node2b, pattern_node] (node3b) {} edge (node2b); \draw (node1b) -- (node3b); \end{tikzpicture} } } \newcommand{\oneint}{\patternshift{ \begin{tikzpicture}[level/.style={sibling distance=0.14cm, level distance=0.15cm}, every path/.style={thick, draw}] \node at (0, 0) [pattern_node] {} [grow=down] child{node [pattern_node]{}} child {node [pattern_node] {}} child{node [pattern_node] {}}; \end{tikzpicture} } } \newcommand{\bsym}[1]{\boldsymbol{#1}}%b for bold; sym for symbol \newcommand{\sg}[1]{S^{(#1)}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % COMMENTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BG}[1]{\todo{\textbf{Boris says:$\,$} #1}} \newcommand{\SF}[1]{\todo{\textbf{Su says:$\,$} #1}} \newcommand{\OK}[1]{\todo[color=gray]{\textbf{Oliver says:$\,$} #1}} \newcommand{\AH}[1]{\todo[backgroundcolor=cyan]{\textbf{Aaron says:$\,$} #1}} \newcommand{\SR}[1]{\todo[backgroundcolor=white]{\textbf{Note to self:$\,$} #1}} \newcommand{\AR}[1]{\todo[color=green]{\textbf{Atri says:$\,$} #1}} %\newcommand{\AR}[1]{} %\newcommand{\AH}[1]{} %\newcommand{\SF}[1]{} %\newcommand{\BG}[1]{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Revision Parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\revision}[1]{\color{blue}{#1}\color{black}\xspace} \newcommand{\oldstuff}[1]{\color{gray}{#1}\color{black}\xspace} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Circuit Notation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\circuit}{\vari{C}} \newcommand{\circuitset}[1]{\vari{CSet}(#1)} \newcommand{\circmult}{\times} \newcommand{\circplus}{+} %formally \rchild and \lchild \newcommand{\rinput}{\vari{R}} \newcommand{\linput}{\vari{L}} \newcommand{\inp}{\vari{input}} \newcommand{\inputs}{\vari{inputs}} \newcommand{\subcircuit}{\vari{S}} \newcommand{\gate}{\vari{g}} \newcommand{\lwght}{\vari{Lweight}} \newcommand{\rwght}{\vari{Rweight}} \newcommand{\prt}{\vari{partial}} \newcommand{\degval}{\vari{degree}} \newcommand{\type}{\vari{type}} \newcommand{\subgraph}{\vari{S}_{\equivtree(\circuit)}} \newcommand{\cost}{\func{Cost}} \newcommand{\nullval}{NULL} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Sets %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\reals}{\mathbb{R}} % %borrowed from Su and Boris; Ihave them here for reference purposes. %needs to be cleaned up % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % THEOREM LIKE ENVIRONMENTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareMathAlphabet{\mathbbold}{U}{bbold}{m}{n} \newtheorem{Theorem}{Theorem}[section] \newtheorem{Definition}[Theorem]{Definition} \newtheorem{Lemma}[Theorem]{Lemma} \newtheorem{Proposition}[Theorem]{Proposition} \newtheorem{Property}[Theorem]{Property} \newtheorem{Corollary}[Theorem]{Corollary} \newtheorem{Claim}[Theorem]{Claim} \newtheorem{Example}[Theorem]{Example} \newtheorem{Axiom}[Theorem]{Axiom} \newtheorem{Question}[Theorem]{Question} \newtheorem{Assumption}[Theorem]{Assumption} \newtheorem{hypo}[Theorem]{Conjecture} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Rel model %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\tup}{t} \newcommand{\comprehension}[2]{\left\{\;#1\;|\;#2\;\right\}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % SEMIRINGS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\udom}{\mathcal{U}} \newcommand{\semN}{\mathbb{N}} \newcommand{\domN}{\mathbb{N}} \newcommand{\semB}{\mathbb{B}} \newcommand{\semNX}{\mathbb{N}[\vct{X}]} \newcommand{\domK}{K} \newcommand{\semK}{\mathcal{K}} \newcommand{\support}[1]{supp({#1})} \newcommand{\onesymbol}{\mathbbold{1}} \newcommand{\zerosymbol}{\mathbbold{0}} \newcommand{\multsymb}{\otimes} \newcommand{\addsymbol}{\oplus} \newcommand{\addormultsymbol}{\bigcdot} \newcommand{\monsymbol}{\ominus} \newcommand{\addK}{\addsymbol_{\semK}} \newcommand{\multK}{\multsymb_{\semK}} \newcommand{\genopK}{\odot_{\semK}} \newcommand{\monK}{\monsymbol_{\semK}} \newcommand{\oneK}{\onesymbol_{\semK}} \newcommand{\zeroK}{\zerosymbol_{\semK}} \newcommand{\addOf}[1]{\addsymbol_{#1}} \newcommand{\multOf}[1]{\multsymb_{#1}} \newcommand{\monOf}[1]{\monsymbol_{#1}} \newcommand{\oneOf}[1]{\onesymbol_{#1}} \newcommand{\zeroOf}[1]{\zerosymbol_{#1}} \newcommand{\dbDomK}[1]{\mathcal{DB}_{#1}} \newcommand{\assign}{\varphi} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % COMPLEXITY %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\sharpphard}{\#P-hard\xspace} \newcommand{\sharpwonehard}{\#W[1]-hard\xspace} \newcommand{\ptime}{PTIME\xspace} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TERMINOLOGY AND ABBREVIATIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\expectProblem}{\textsc{Expected Result Multiplicity Problem}\xspace} \newcommand{\termSMB}{standard monomial basis\xspace} \newcommand{\abbrSMB}{SMB\xspace} \newcommand{\termSOP}{sum of products\xspace} \newcommand{\abbrSOP}{SOP} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\eps}{\epsilon} \newcommand{\inparen}[1]{\left({#1}\right)} \newcommand{\inset}[1]{\left\{{#1}\right\}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Forcing Layouts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\trimfigurespacing}{\vspace*{-5mm}} \newcommand{\mypar}[1]{\smallskip\noindent\textbf{{#1}.}} %%%Adding stuff below so that long chain of display equatoons can be split across pages \allowdisplaybreaks %Macro for mult complexity \newcommand{\multc}[2]{\overline{\mathcal{M}}\left({#1},{#2}\right)} %%% Local Variables: %%% mode: latex %%% TeX-master: "main" %%% End: