The canonical decision tree of a restricted formula #
Let F be a formula in disjunctive normal form and ρ a restriction (partial assignment). The
canonical decision tree of F under ρ finds the first term of F that ρ does not falsify
(DNF.firstTerm), queries its free variables (DNF.queried), and continues under ρ extended by
the answers; when nothing is left to query, F is constant under ρ and the tree outputs its value
(DNF.canonicalTree, DNF.eval_canonicalTree). Its depth is at most the largest number of
variables it queries on an input (DNF.depth_canonicalTree_le, DNF.pathLength), which is what
the switching lemma bounds [Has86], [Raz95], Jukna, Chapter 12.
Main definitions #
Cslib.Logic.PL.DNF.firstTerm,Cslib.Logic.PL.DNF.queried.Cslib.Logic.PL.DNF.canonicalTree,Cslib.Logic.PL.DNF.pathLength.
Main results #
Cslib.Logic.PL.DNF.eval_canonicalTree: the canonical tree computes the restricted formula.Cslib.Logic.PL.DNF.complexity_lt_of_forall_pathLength_lt: short query paths give shallow decision trees.
References #
The restriction ρ falsifies the term t: it fixes one of its variables to the other value.
Instances For
The variables of the term t left free by ρ, in order.
Instances For
The first term of F not falsified by ρ.
Instances For
The variables queried at ρ: the free variables of the first term not falsified by ρ.
Instances For
Answering the queried variables frees fewer variables, as long as something is queried.
The canonical decision tree of F under ρ: query the free variables of the first term not
falsified by ρ, and continue under ρ extended by the answers.
Instances For
The number of variables the canonical tree queries on the input x.
Instances For
The canonical tree computes the formula restricted by ρ.
The query path depends only on the free bits of the input.
The canonical tree is no deeper than its longest query path.
If every query path is shorter than s, the restricted formula has decision tree depth less
than s.