Switching-lemma substrate #
This module exposes both an elementary one-query-at-a-time decision tree and the complete-block tree used in switching arguments. Its finite encoding theorems include an elementary arity-dependent bound and a width-only bound for consistent DNFs. The latter replays the canonical complete-block path from bounded literal positions, branch bits, and phase markers.
The elementary deepest-path code has exactly (2 * N) ^ queryCount
possible values.
Width-sensitive per-query advice has exactly
(4 * (width + 1)) ^ queryCount possible values.
Removing contradictory terms leaves a termwise-consistent DNF.
Contradictory-term cleanup preserves the represented Boolean function.
Contradictory-term cleanup cannot increase DNF width.
The reduced component of the first surviving original term is exactly the first term in the syntactically restricted DNF.
A successful first-live lookup provides an ordered-list decomposition: the selected original term survives with the stated reduction, and every earlier term is killed.
Extending a restriction preserves its first live term whenever that term's reduced remainder survives the extension.
Retaining the original DNF while accumulating a restriction gives exactly the same complete-block tree as simplifying first.
The canonical DNF decision tree computes the same finite Boolean function.
Canonical decision-tree depth is bounded by the number of variables actually occurring in the DNF.
In particular, canonical decision-tree depth never exceeds the declared input arity.
Every query in the canonical DNF tree occurs in the DNF itself.
The canonical DNF tree never repeats a variable along one path.
The complete-block DNF switching tree computes the original formula.
Every query in the complete-block tree occurs in the DNF itself.
The complete-block DNF tree never repeats a variable along one path.
Complete-block switching-tree depth is bounded by actual support size.
Complete-block switching-tree depth never exceeds the declared arity.
Width-only finite counting form of the DNF switching lemma.
For a consistent width-w DNF, every bad restriction together with one of
q ^ queryCount copy-label choices injects into a seed and
queryCount advice symbols, each drawn from a set of size 4 * (w + 1).
This is the combinatorial form needed to derive the corresponding probability
bound under RandomRestriction.
Every DNF has an equivalent consistent sub-DNF to which the width-only encoding applies without increasing the original width.
Elementary arity-dependent counting bound for the DNF switching bad event.
The proof injectively records the first queryCount coordinates and branch
values of a complete-block deepest path. Consequently the auxiliary factor is
(2 * N) ^ queryCount. A genuine switching lemma must replace this ambient
arity factor by a bound in the DNF width.
Removing tautological clauses leaves a consistent CNF.
Tautological-clause cleanup preserves the represented Boolean function.
Tautological-clause cleanup cannot increase CNF width.
Accumulating the restriction in the dual DNF gives the same CNF switching tree as syntactically restricting the CNF first.
The CNF bad event is exactly the DNF bad event for its De Morgan dual.
Width-only finite counting form of the CNF switching lemma, obtained without loss from the corresponding theorem for the dual DNF.
Every CNF has an equivalent consistent sub-CNF to which the width-only encoding applies without increasing the original width.
The canonical CNF decision tree computes the same finite Boolean function.
Canonical CNF decision-tree depth is bounded by actual support size.
Canonical CNF decision-tree depth never exceeds the declared arity.
The complete-block CNF switching tree computes the original formula.
Every query in the complete-block CNF tree occurs in the CNF itself.
The complete-block CNF tree never repeats a variable along one path.
Complete-block CNF switching-tree depth is bounded by actual support.
Complete-block CNF switching-tree depth never exceeds declared arity.