2019-06-05 13:14:32 -04:00
% -*- root: main.tex -*-
2021-06-18 11:37:51 -04:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Temporary Macros for Outline Comparison
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand { \isIncluded } [1]{ \textcolor { blue} { #1} }
\newcommand { \notIncluded } [1]{ \textcolor { red} { #1} }
2021-06-09 12:42:26 -04:00
\newcommand { \xplural } { s\xspace }
\xspaceaddexceptions { \xplural }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% COMMENTS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2021-07-30 11:41:55 -04:00
%editing/highlighting sections
2021-09-16 09:22:40 -04:00
\newcommand { \draft } { 0} %%% Change this to non-zero to remove comments
\ifnum \draft =0
2021-07-30 11:41:55 -04:00
\newcommand { \currentWork } [1]{ \textcolor { red} { #1} }
2021-06-09 12:42:26 -04:00
\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 { \AR } [1]{ \todo [color=green] { \textbf { Atri says:$ \, $ } #1} }
2021-09-16 09:22:40 -04:00
\else
\newcommand { \BG } [1]{ }
\newcommand { \SF } [1]{ }
\newcommand { \OK } [1]{ }
\newcommand { \AH } [1]{ }
\newcommand { \AR } [1]{ }
\fi
2021-06-09 12:42:26 -04:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% THEOREM LIKE ENVIRONMENTS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%v---what is this?
\DeclareMathAlphabet { \mathbbold } { U} { bbold} { m} { n}
\newtheorem { Theorem} { Theorem} [section]
\newtheorem { Definition} [Theorem]{ Definition}
\newtheorem { Lemma} [Theorem]{ Lemma}
\newtheorem { Proposition} [Theorem]{ Proposition}
\newtheorem { Corollary} [Theorem]{ Corollary}
\newtheorem { Example} [Theorem]{ Example}
\newtheorem { hypo} [Theorem]{ Conjecture} %used in mult_distinct_p.tex
2021-06-30 16:23:36 -04:00
\newtheorem { Problem} [Theorem]{ Problem}
2021-06-09 12:42:26 -04:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Rel model
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Need to have all Rel stuff in one place
\newcommand { \tup } { t}
2020-06-23 15:49:19 -04:00
\newcommand { \rel } { R}
2021-06-09 12:42:26 -04:00
\newcommand { \reli } { S} %<----better names?
2020-06-23 15:49:19 -04:00
\newcommand { \relii } { T}
2020-06-30 15:31:06 -04:00
\newcommand { \db } { D}
2020-06-23 15:49:19 -04:00
\newcommand { \query } { Q}
2021-06-09 12:42:26 -04:00
\newcommand { \tset } { \mathcal { T} } %the set of tuples in a database
2021-07-07 10:31:35 -04:00
\newcommand { \join } { \mathlarger \Join }
2020-06-23 15:49:19 -04:00
\newcommand { \select } { \sigma }
\newcommand { \project } { \pi }
\newcommand { \union } { \cup }
2021-07-07 10:31:35 -04:00
\newcommand { \rename } { \mathlarger \rho }
2020-07-07 15:37:18 -04:00
\newcommand { \sch } { sch}
2020-10-01 14:38:40 -04:00
\newcommand { \attr } [1]{ attr\left (#1\right )}
2021-06-09 12:42:26 -04:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% TERMINOLOGY AND ABBREVIATIONS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Perhaps PDB abbreviations should go here?
2021-07-23 12:02:59 -04:00
%Two-step (intensional evaluation model)
2021-08-04 12:24:36 -04:00
\newcommand { \termStepOne } { Lineage Computation\xspace }
\newcommand { \abbrStepOne } { LC\xspace }
\newcommand { \termStepTwo } { Expectation Computation\xspace }
\newcommand { \abbrStepTwo } { EC\xspace }
2021-07-23 12:02:59 -04:00
%
2021-06-09 12:42:26 -04:00
\newcommand { \expectProblem } { \textsc { Expected Result Multiplicity Problem} \xspace }
\newcommand { \termSMB } { standard monomial basis\xspace }
\newcommand { \abbrSMB } { SMB\xspace } %we already have this; one has to go
\newcommand { \termSOP } { sum of products\xspace }
2021-06-18 11:37:51 -04:00
\newcommand { \abbrSOP } { SOP\xspace }
2021-06-09 12:42:26 -04:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Function Names and Typesetting %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand { \domain } { \func { Dom} }
2021-09-03 12:34:08 -04:00
\newcommand { \func } [1]{ \textsc { #1} \xspace }
2021-08-31 15:06:12 -04:00
\newcommand { \isInd } [1]{ \func { isInd} \inparen { #1} }
2021-06-09 12:42:26 -04:00
\newcommand { \polyf } { \func { poly} }
\newcommand { \evalmp } { \func { eval} }
\newcommand { \degree } { \func { deg} }
\newcommand { \size } { \func { size} }
\newcommand { \depth } { \func { depth} }
2021-09-03 12:34:08 -04:00
\newcommand { \topord } { \func { TopOrd} }
2021-06-09 12:42:26 -04:00
\newcommand { \smbOf } [1]{ \func { \abbrSMB } \inparen { #1} }
%Verify if we need the above...
%saving \treesize for now to keep latex from breaking
\newcommand { \treesize } { \func { size} }
%I believe this is used in the algo psuedocode
\newcommand { \sign } { \func { sgn} }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SEMIRINGS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand { \udom } { \mathcal { U} }
\newcommand { \domK } { K}
\newcommand { \semK } { \mathcal { K} }
2021-07-30 11:41:55 -04:00
\newcommand { \semB } { \mathbb { B} }
2021-06-09 12:42:26 -04:00
\newcommand { \semN } { \mathbb { N} }
\newcommand { \semNX } { \mathbb { N} [\vct { X} ]}
\newcommand { \onesymbol } { \mathbbold { 1} }
\newcommand { \zerosymbol } { \mathbbold { 0} }
\newcommand { \multsymb } { \otimes }
\newcommand { \addsymbol } { \oplus }
\newcommand { \addK } { \addsymbol _ { \semK } }
\newcommand { \multK } { \multsymb _ { \semK } }
\newcommand { \oneK } { \onesymbol _ { \semK } }
\newcommand { \zeroK } { \zerosymbol _ { \semK } }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Incomplete DB/PDBs %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2021-09-12 12:04:14 -04:00
\newcommand { \idb } { { \overline { \Omega } } }
2021-09-07 08:02:00 -04:00
\newcommand { \pd } { { \mathcal { P} _ { \idb } } } %pd for probability distribution
\newcommand { \pdassign } { \mathcal { P} }
2021-06-09 12:42:26 -04:00
\newcommand { \pdb } { \mathcal { D} }
2021-09-08 10:43:54 -04:00
\newcommand { \dbbase } { \db _ \idb }
2021-09-08 22:32:30 -04:00
\newcommand { \dbbaseName } { deterministic bounding database\xspace }
2021-06-11 11:22:58 -04:00
\newcommand { \pxdb } { \pdb _ { \semNX } }
2021-06-09 12:42:26 -04:00
\newcommand { \nxdb } { D(\vct { X} )} %\mathbb{N}[\vct{X}] db--Are we currently using this?
2021-06-11 11:22:58 -04:00
\newcommand { \valworlds } { \eta } %valid worlds--in particular referring to something like a BIDB, where not all worlds have Pr[w] > 0.
2021-06-09 13:12:37 -04:00
2021-06-09 12:42:26 -04:00
%BIDB
\newcommand { \block } { b}
\newcommand { \bivar } { x_ { \block , i} }
%PDB Abbreviations
\newcommand { \abbrPDB } { \textnormal { PDB} \xspace }
2021-09-08 10:43:54 -04:00
\newcommand { \abbrBPDB } { \textnormal { bag-PDB} \xspace }
2021-06-17 15:21:34 -04:00
\newcommand { \abbrTIDB } { \textnormal { TIDB} \xspace } %replace \ti with this
2021-09-03 11:05:03 -04:00
\newcommand { \abbrTIDBs } { \textnormal { TIDBs} \xspace } %replace \ti with this
2021-07-06 19:04:56 -04:00
\newcommand { \abbrBIDB } { \textnormal { BIDB} \xspace }
2021-06-09 12:42:26 -04:00
\newcommand { \ti } { TIDB\xspace }
\newcommand { \tis } { TIDBs\xspace }
\newcommand { \bi } { BIDB\xspace }
\newcommand { \bis } { BIDBs\xspace }
%not sure if we use these; arguably the above abbrev macros should have a name change
\newcommand { \tiabb } { ti}
\newcommand { \biabb } { bi}
\newcommand { \biwset } { \idb _ { \biabb } }
\newcommand { \biord } { \leq _ { x_ \block } }
\newcommand { \tiwset } { \idb _ { \tiabb } }
\newcommand { \bipd } { \pd _ { \biabb } }
\newcommand { \tipd } { \pd _ { \tiabb } }
\newcommand { \bipdb } { \pdb _ { \biabb } }
\newcommand { \tipdb } { \pdb _ { \tiabb } }
%--------------------------------
\newcommand { \probDist } { \vct { \probOf } } %<---I don't think we need this.
\newcommand { \probAllTup } { \vct { \prob } } %<---I was using simply \vct{\prob}; decide on a convention
\newcommand { \wSet } { \Omega } %<---We have \idb, the set of possible worlds; decide on one of these
%Is this being used?
\newcommand { \pdbx } { X_ { DB} }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Math Symbols, Functions/Operators, Containers %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Number Sets
2021-06-11 11:22:58 -04:00
\newcommand { \domR } { \mathbb { R} }
2021-06-09 12:42:26 -04:00
\newcommand { \domN } { \mathbb { N} }
%Probability, Expectation
\newcommand { \expct } { \mathop { \mathbb { E} } } %why not just call this \expect
\newcommand { \probOf } { Pr} %probability function
%Functions/Operators
\newcommand { \abs } [1]{ \left |#1\right |}
\newcommand { \suchthat } { \; |\; } %such that
\newcommand { \comprehension } [2]{ \left \{ \; #1\; |\; #2\; \right \} }
\newcommand { \eval } [1]{ \llbracket #1 \rrbracket } %evaluation double brackets
\newcommand { \evald } [2]{ \eval { { #1} } _ { #2} }
%Containers
\newcommand { \pbox } [1]{ \left [#1\right] } %<---used for expectation
\newcommand { \pbrace } [1]{ \left \{ #1\right \} }
%consider replacing \pbrace with what is below
\newcommand { \inparen } [1]{ \left ({ #1} \right )}
\newcommand { \inset } [1]{ \left \{ { #1} \right \} } %we already have this as \pbrace; need to pick one
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Variable, Polynomial and Vector Notation
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Instance Variables
\newcommand { \prob } { p}
\newcommand { \wElem } { w} %an element of \vct{w}
%Polynomial Variables
\newcommand { \pVar } { X} %<----not used but recomment instituting this--pVar for polyVar
\newcommand { \kElem } { k} %the kth element<---where and how are we using this?
%Random Variables
\newcommand { \randWorld } { W}
\newcommand { \randDB } { \overline { \db } }
2021-06-11 11:22:58 -04:00
\newcommand { \rvW } { W} %\rvW for random variable of type World<---this is the same as \randWorld
2021-06-09 12:42:26 -04:00
%One of these needs to go...I think...
\newcommand { \randomvar } { W} %this little guy needs a home!
%Container for Polynomial Params
\newcommand { \polyinput } [2]{ \left (#1,\ldots , #2\right )} %do we still use this?
%Number of Variables--this could easily be number of tups--maybe move to Rel Model?
\newcommand { \numvar } { n}
%Vector
\newcommand { \vct } [1]{ { \bf #1} }
%using \wVec for world bit vector notation<-----Is this still the case?
%Polynomial
\newcommand { \poly } { \Phi }
2021-09-03 16:50:14 -04:00
\newcommand { \polyOf } [1]{ \poly [#1] }
2021-09-03 11:05:03 -04:00
\newcommand { \polyqdt } [3]{ \polyOf { #1,#2,#3} }
2021-09-09 09:37:45 -04:00
\newcommand { \apolyqdt } { \polyqdt { \query } { \dbbase } { \tup } }
2021-09-03 11:05:03 -04:00
\newcommand { \tupvar } [2]{ X_ { #1,#2} }
\newcommand { \atupvar } { \tupvar { \rel } { \tup } }
2021-09-08 12:17:19 -04:00
\newcommand { \polyX } { \poly \inparen { \vct { \pVar } } } %<---let's see if this proves handy
2021-06-09 12:42:26 -04:00
\newcommand { \rpoly } { \widetilde { \poly } } %r for reduced as in reduced 'Q'
\newcommand { \rpolyX } { \rpoly \inparen { \pVar } } %<---if this isn't something we use much, we can get rid of it
2021-06-09 13:12:37 -04:00
\newcommand { \biDisProd } { \mathcal { B} } %bidb disjoint tuple products (def 2.5)
\newcommand { \rExp } { \mathcal { T} } %the set of variables to reduce all exponents to 1 via modulus operation; I think \mathcal T collides with the notation used for the set of tuples in D
2021-06-11 11:22:58 -04:00
\newcommand { \polyForTuple } { \poly _ { \tup } } %do we use this?<--S 2
2021-06-09 12:42:26 -04:00
%Do we use this?
\newcommand { \out } { output} %output aggregation over the output vector
\newcommand { \prel } { \mathcal { \rel } } %What is this?
\newcommand { \linsett } [3]{ \Phi _ { #1,#2} ^ { #3} } %Where is this used?
\newcommand { \wbit } { w} %don't think we need this one
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Graph Notation %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2021-06-11 11:22:58 -04:00
\newcommand { \vset } { V}
\newcommand { \edgeSet } { E}
2021-06-15 16:57:32 -04:00
\newcommand { \gtype } [1]{ \inparen { #1} }
\newcommand { \esetType } [1]{ \edgeSet ^ { \gtype { #1} } } %edge set for induced graph G^{\inparen{\ell}}
2020-07-20 12:50:13 -04:00
\newcommand { \graph } [1]{ G^ { (#1)} }
2021-06-09 12:42:26 -04:00
\newcommand { \numocc } [2]{ \# \left (#1,#2\right )}
2021-03-25 16:22:55 -04:00
\newcommand { \eset } [1]{ E^ { (#1)} _ S} %edge set for arbitrary subgraph
2021-06-09 12:42:26 -04:00
%I don't think we use these anymore
2020-08-05 09:45:30 -04:00
\newcommand { \linsys } [1]{ LS(\graph { #1} )}
2020-07-21 17:09:29 -04:00
\newcommand { \lintime } [1]{ LT^ { \graph { #1} } }
\newcommand { \aug } [1]{ AUG^ { \graph { #1} } }
2020-07-22 15:39:53 -04:00
\newcommand { \mtrix } [1]{ M_ { #1} }
\newcommand { \dtrm } [1]{ Det\left (#1\right )}
2020-12-13 17:45:44 -05:00
\newcommand { \tuple } [1]{ \left <#1\right >}
2021-09-10 11:49:29 -04:00
\newcommand { \indicator } [1]{ \onesymbol _ { #1} }
2021-06-09 12:42:26 -04:00
%----------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Circuit Notation
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand { \circuit } { \vari { C} }
\newcommand { \circuitset } [1]{ \vari { CSet} \inparen { #1} }
\newcommand { \circmult } { \times }
\newcommand { \circplus } { +}
\newcommand { \rinput } { \vari { R} }
\newcommand { \linput } { \vari { L} }
\newcommand { \inp } { \vari { input} }
\newcommand { \inputs } { \vari { inputs} } %do we use this?
\newcommand { \subcircuit } { \vari { S} } %does this clash/conflict with \coeffset?
\newcommand { \gate } { \vari { g} }
\newcommand { \lwght } { \vari { Lweight} }
\newcommand { \rwght } { \vari { Rweight} }
\newcommand { \prt } { \vari { partial} }
\newcommand { \degval } { \vari { degree} }
\newcommand { \type } { \vari { type} }
2021-06-11 11:22:58 -04:00
\newcommand { \val } { \vari { val} }
%types of C
\newcommand { \var } { \textsc { var} \xspace }
\newcommand { \tnum } { \textsc { num} \xspace }
2021-06-09 12:42:26 -04:00
%Do we use this?
\newcommand { \subgraph } { \vari { S} _ { \equivtree (\circuit )} }
%-----
\newcommand { \cost } { \func { Cost} }
\newcommand { \nullval } { NULL}
2020-06-23 15:49:19 -04:00
2020-12-13 15:51:55 -05:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2021-06-09 12:42:26 -04:00
% Datalog
2020-12-13 15:51:55 -05:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2021-06-09 12:42:26 -04:00
\newcommand { \dlImp } [0]{ \, \ensuremath { \mathtt { { :} -} } \, }
\newcommand { \dlDontcare } { \_ }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Query Classes
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2020-12-13 15:51:55 -05:00
\newcommand { \qClass } { \mathcal { Q} }
\newcommand { \raPlus } { \ensuremath { \mathcal { RA} ^ { +} } \xspace }
2021-04-09 16:12:46 -04:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2021-06-09 12:42:26 -04:00
% COMPLEXITY
2021-04-09 16:12:46 -04:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2021-06-11 11:22:58 -04:00
\newcommand { \bigO } [1]{ O\inparen { #1} }
2021-09-15 11:15:36 -04:00
\newcommand { \littleo } [1]{ o\inparen { #1} }
\newcommand { \bigOmega } [1]{ \Omega \inparen { #1} }
\newcommand { \littleomega } [1]{ \omega \inparen { #1} }
2021-08-26 20:59:13 -04:00
\newcommand { \np } { { \sf NP} \xspace }
\newcommand { \polytime } { { \sf P} \xspace }
\newcommand { \sharpp } { \# { \sf P} \xspace }
\newcommand { \sharpphard } { \# { \sf P} -hard\xspace }
\newcommand { \sharpwone } { \# { \sf W} [1]\xspace }
2021-09-11 16:45:18 -04:00
\newcommand { \sharpwzero } { \# { \sf W} [0]\xspace }
2021-08-26 20:59:13 -04:00
\newcommand { \sharpwonehard } { \# { \sf W} [1]-hard\xspace }
\newcommand { \ptime } { { \sf PTIME} \xspace }
2021-08-16 13:37:15 -04:00
\newcommand { \timeOf } [1]{ T_ { #1} }
2021-09-15 11:15:36 -04:00
\newcommand { \qruntime } [1]{ T_ { det} (#1)}
\newcommand { \kmatchtime } { T_ { match} \inparen { k, G} }
2021-06-09 12:42:26 -04:00
2021-04-09 16:12:46 -04:00
2021-06-09 12:42:26 -04:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2020-08-05 16:08:40 -04:00
%Approx Alg
2021-06-09 12:42:26 -04:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2021-06-17 15:21:34 -04:00
\newcommand { \randvar } { \vari { Y} }
2020-08-05 16:08:40 -04:00
\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}
2020-09-07 12:30:07 -04:00
\newcommand { \empmean } { \overline { \vct { \randvar } } }
2020-08-05 16:08:40 -04:00
\newcommand { \setsum } { SUM}
2020-08-12 17:41:09 -04:00
\newcommand { \ave } [1]{ AVG(#1)}
2020-08-05 16:08:40 -04:00
\newcommand { \hoeffestsum } { EST_ { \setsum } }
\newcommand { \error } { \epsilon }
\newcommand { \conf } { \delta }
2020-08-22 10:16:43 -04:00
2021-06-09 12:42:26 -04:00
2020-08-22 10:16:43 -04:00
%Pseudo Code Notation
\newcommand { \plus } { \texttt { +} }
\newcommand { \mult } { \texttt { \times } }
2021-01-28 10:32:16 -05:00
\newcommand { \algname } [1]{ \textsc { #1} \xspace }
2020-08-22 10:16:43 -04:00
\newcommand { \approxq } { \algname { Approximate$ \rpoly $ } }
\newcommand { \onepass } { \algname { OnePass} }
\newcommand { \sampmon } { \algname { SampleMonomial} }
2021-06-09 12:42:26 -04:00
%I don't think we use reduce anymore
2021-03-05 16:42:12 -05:00
\newcommand { \reduce } { \algname { Reduce} }
2020-08-21 20:16:58 -04:00
\newcommand { \ceil } [1]{ \left \lceil #1 \right \rceil }
2021-01-28 10:32:16 -05:00
\newcommand { \vari } [1]{ \texttt { #1} \xspace }
2020-08-22 10:16:43 -04:00
\newcommand { \accum } { \vari { acc} }
2021-06-09 12:42:26 -04:00
\newcommand { \numsamp } { \vari { N} } %we have \samplesize above; we can get rid of one of these
\newcommand { \numedge } { m} %we have set size above; we can get rid of one of these
\newcommand { \bivec } { \vari { b} _ { \vari { vec} } } %Section 3--proof in appendix for last theorem
%Major cleaning needed to get rid of obsolete notation like expression trees, etc.
%I don't know that we use any of the expression tree macros anymore; if we do, they would be predominantly in S 3 and 4 and their respective appendices
2020-09-07 12:30:07 -04:00
%expression tree T
2020-08-25 13:10:25 -04:00
\newcommand { \etree } { \vari { T} }
2020-09-07 12:30:07 -04:00
\newcommand { \stree } { \vari { S} }
\newcommand { \lchild } { \vari { L} }
\newcommand { \rchild } { \vari { R} }
2021-06-09 12:42:26 -04:00
%I don't think we talk of T but of C; let's update this. These should be used only in S 2 and S4
2020-09-07 12:30:07 -04:00
%members of T
2021-06-11 11:22:58 -04:00
2021-04-10 00:19:16 -04:00
\newcommand { \wght } { \vari { weight} }
\newcommand { \vpartial } { \vari { partial} }
2021-06-11 11:22:58 -04:00
2020-09-07 12:30:07 -04:00
%%%%%%%
2020-08-25 11:18:08 -04:00
\renewcommand { \algorithmicrequire } { \textbf { Input:} }
\renewcommand { \algorithmicensure } { \textbf { Output:} }
2021-06-09 12:42:26 -04:00
%\newcommand{\smb}{\poly\left(\vct{X}\right)}%smb for standard monomial basis; S 2<---this command is, I believe, unnecessary
%not sure if we use this
%not sure if we use this
2020-08-25 13:10:25 -04:00
\newcommand { \etreeset } [1]{ \vari { ET} \left (#1\right )}
2021-06-09 12:42:26 -04:00
%verify this
2021-01-27 18:37:02 -05:00
%\expandtree is a placeholder until I change other files with the new macro name \expansion
2020-09-04 21:08:02 -04:00
\newcommand { \expandtree } [1]{ \vari { E} (#1)}
2021-01-27 18:37:02 -05:00
\newcommand { \expansion } [1]{ \vari { E} (#1)}
2021-06-09 12:42:26 -04:00
%not sure if we use this; I think the only occurrence would be in the def section of S 4
2020-09-11 16:40:00 -04:00
\newcommand { \elist } [1]{ \vari { List} \pbox { #1} }
2021-06-09 12:42:26 -04:00
%not sure if we use this anymore either
2021-02-23 10:45:58 -05:00
\newcommand { \equivtree } { \vari { EET} }
2020-09-30 10:24:24 -04:00
2020-09-07 17:03:22 -04:00
%expandtree tuple elements:
\newcommand { \monom } { \vari { v} }
2021-06-17 15:21:34 -04:00
\newcommand { \encMon } { \monom _ { \vari { m} } }
\newcommand { \lencMon } { \monom _ { \vari { m} _ \linput } }
\newcommand { \rencMon } { \monom _ { \vari { m} _ \rinput } }
2020-09-07 17:03:22 -04:00
\newcommand { \coef } { \vari { c} }
%----------------------------------
2020-06-23 19:33:28 -04:00
2021-06-09 12:42:26 -04:00
% REPRESENTATIONS--this might be Boris' or Atri's stuff; verify if these macros are current
\newcommand { \rmod } { Mod} %mod function which transforms N[X]-DB to N-DB (S 2 and App A)
\newcommand { \reprs } { \mathcal { M} } %used to define Representation System in App A
2020-12-13 15:51:55 -05:00
\newcommand { \repr } { M}
2020-12-03 11:23:53 -05:00
2021-06-09 12:42:26 -04:00
%not sure about these? Perhaps in appendix B for \assign and S 5 for \support?
2021-06-11 11:22:58 -04:00
\newcommand { \assign } { \psi } %assignment function from a world vector to polynomial output in App A
2021-06-09 12:42:26 -04:00
\newcommand { \support } [1]{ supp({ #1} )}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand { \eps } { \epsilon } %<----this is already defined as \error; need to pick one
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Forcing Layouts
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand { \trimfigurespacing } { \vspace * { -5mm} }
\newcommand { \mypar } [1]{ \smallskip \noindent \textbf { { #1} .} }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Proof/Section Headings %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Is this being used?
\newcommand { \caseheading } [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 )}
%consider perhaps putting the tikz code into a separate file.
2020-12-03 11:23:53 -05:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2021-06-09 12:42:26 -04:00
% Tikz Graph Symbols
2020-12-03 11:23:53 -05:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2020-09-16 16:27:50 -04:00
%Shift macro
\newcommand { \patternshift } [1]{ \hspace * { -0.5mm} \raisebox { -0.35mm} { #1} \hspace * { -0.5mm} }
2020-09-09 17:20:43 -04:00
%Global styles
\tikzset {
default_ node/.style={ align=center, inner sep=0pt} ,
2020-09-11 16:40:00 -04:00
pattern_ node/.style={ fill=gray!50, draw=black, semithick, inner sep=0pt, minimum size = 2pt, circle} ,
2021-03-09 11:43:38 -05:00
tree_ node/.style={ default_ node, draw=black, black, circle, text width=0.5cm, font=\bfseries , minimum size=0.65cm} ,
2021-06-30 11:12:47 -04:00
gen_ tree_ node/.style={ default_ node, draw, circle, text width=0.5cm, font=\bfseries , minimum size=0.65cm} ,
2020-09-12 17:58:14 -04:00
highlight_ color/.style={ black} , wght_ color/.style={ black} ,
highlight_ treenode/.style={ tree_ node, draw=black, black} ,
2020-09-11 21:48:28 -04:00
edge from parent path={ (\tikzparentnode ) -- (\tikzchildnode )}
2020-09-09 17:20:43 -04:00
}
%Subgraph patterns
2020-09-16 16:27:50 -04:00
\newcommand { \ed } { \patternshift {
2020-09-12 17:58:14 -04:00
\begin { tikzpicture} [every path/.style={ thick, draw} ]%[baseline=0.00005cm]
2020-09-16 16:27:50 -04:00
%\begin{scope}[yshift=-5cm]
2020-09-09 17:20:43 -04:00
\node at (0, 0)[pattern_ node](bottom){ } ;
\node [above=0.07cm of bottom, pattern_ node] (top){ } ;
2020-09-11 16:40:00 -04:00
\draw (top) -- (bottom);
2020-09-16 16:27:50 -04:00
% \node at (0, -2)[pattern_node, blue](b2){};
% \node [above=0.07cm of b2, pattern_node, blue] (t2){};
% \draw (t2) -- (b2);
2020-09-09 12:11:05 -04:00
%\end{scope}
\end { tikzpicture}
}
2020-09-16 16:27:50 -04:00
}
2020-12-11 19:50:53 -05:00
2020-12-08 11:59:46 -05:00
\newcommand { \kmatch } { \ed \cdots \ed ^ \kElem }
2020-09-16 16:27:50 -04:00
\newcommand { \twodis } { \patternshift {
2020-09-12 17:58:14 -04:00
\begin { tikzpicture} [every path/.style={ thick, draw} ]
2020-09-09 17:20:43 -04:00
\node at (0, 0) [pattern_ node] (bottom1) { } ;
2020-09-11 16:40:00 -04:00
\node [above=0.07cm of bottom1, pattern_node] (top1) { } edge (bottom1);
2020-09-09 17:20:43 -04:00
\node at (0.14, 0) [pattern_ node] (bottom2) { } ;
2020-09-11 16:40:00 -04:00
\node [above=0.07cm of bottom2, pattern_ node] (top2) { } edge (bottom2);
2020-09-09 17:20:43 -04:00
\end { tikzpicture}
2020-12-11 15:20:15 -05:00
}
2020-09-16 16:27:50 -04:00
}
\newcommand { \twopath } { \patternshift {
2020-09-12 17:58:14 -04:00
\begin { tikzpicture} [every path/.style={ thick, draw} ]
2020-09-09 17:20:43 -04:00
\node at (0, 0.08) [pattern_ node] (top){ } ;
2020-09-16 16:27:50 -04:00
\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){ } ;
2020-09-11 16:40:00 -04:00
\draw (top) -- (left);
\draw (top) -- (right);
2020-09-09 12:11:05 -04:00
\end { tikzpicture}
}
2020-09-16 16:27:50 -04:00
}
\newcommand { \threedis } { \patternshift {
2020-09-12 17:58:14 -04:00
\begin { tikzpicture} [every path/.style={ thick, draw} ]
2020-09-09 17:20:43 -04:00
\node at (0, 0) [pattern_ node] (bottom1) { } ;
2020-09-11 16:40:00 -04:00
\node [above=0.07cm of bottom1, pattern_node] (top1) { } edge (bottom1);
2020-09-09 17:20:43 -04:00
\node at (0.14, 0) [pattern_ node] (bottom2) { } ;
2020-09-11 16:40:00 -04:00
\node [above=0.07cm of bottom2, pattern_ node] (top2) { } edge (bottom2);
2020-09-09 17:20:43 -04:00
\node at (0.28, 0) [pattern_ node] (bottom3) { } ;
2020-09-11 16:40:00 -04:00
\node [above=0.07cm of bottom3, pattern_ node] (top3) { } edge (bottom3);
2020-09-09 17:20:43 -04:00
\end { tikzpicture}
}
2020-09-16 16:27:50 -04:00
}
\newcommand { \tri } { \patternshift {
2020-09-12 17:58:14 -04:00
\begin { tikzpicture} [every path/.style={ thick, draw} ]
2020-09-09 17:20:43 -04:00
\node at (0, 0.08) [pattern_ node] (top){ } ;
2020-09-11 16:40:00 -04:00
\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);
2020-09-09 17:20:43 -04:00
\end { tikzpicture}
}
2020-09-16 16:27:50 -04:00
}
2020-09-09 17:20:43 -04:00
\newcommand { \twopathdis } { \ed ~\twopath }
2020-09-16 16:27:50 -04:00
\newcommand { \threepath } { \patternshift {
2020-09-12 17:58:14 -04:00
\begin { tikzpicture} [every path/.style={ thick, draw} ]
2020-09-09 17:20:43 -04:00
\node at (0, 0) [pattern_ node] (node1a) { } ;
2020-09-11 16:40:00 -04:00
\node [above=0.07cm of node1a, pattern_ node] (node1b) { } edge (node1a);
2020-09-09 17:20:43 -04:00
\node [right=0.099cm of node1a, pattern_ node] (node2b) { } ; %edge [semithick] (node1b);
2020-09-11 16:40:00 -04:00
\node [above=0.07cm of node2b, pattern_ node] (node3b) { } edge (node2b);
\draw (node1b) -- (node3b);
2020-09-09 17:20:43 -04:00
\end { tikzpicture}
}
2020-09-16 16:27:50 -04:00
}
\newcommand { \oneint } { \patternshift {
2020-09-12 17:58:14 -04:00
\begin { tikzpicture} [level/.style={ sibling distance=0.14cm, level distance=0.15cm} , every path/.style={ thick, draw} ]
2020-09-11 16:40:00 -04:00
\node at (0, 0) [pattern_ node] { } [grow=down]
2020-09-09 17:20:43 -04:00
child{ node [pattern_ node]{ } }
2020-09-11 16:40:00 -04:00
child { node [pattern_ node] { } }
2020-09-09 17:20:43 -04:00
child{ node [pattern_ node] { } } ;
\end { tikzpicture}
}
2020-09-16 16:27:50 -04:00
}
2020-09-11 21:48:28 -04:00
\newcommand { \bsym } [1]{ \boldsymbol { #1} } %b for bold; sym for symbol
2021-03-25 16:22:55 -04:00
\newcommand { \sg } [1]{ S^ { (#1)} }
2020-09-07 12:30:07 -04:00
2020-04-02 18:22:34 -04:00
2020-12-14 23:34:12 -05:00
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "main"
%%% End: