Documentation

Complexitylib.Circuits.AC0.Switching.Internal

Switching-lemma substrate -- proof internals #

theorem Complexity.Switching.card_pathCode_internal (N queryCount : ) :
Fintype.card (PathCode N queryCount) = (2 * N) ^ queryCount
theorem Complexity.Switching.card_widthPathCode_internal (width queryCount : ) :
Fintype.card (WidthPathCode width queryCount) = (4 * (width + 1)) ^ queryCount
theorem Complexity.DNF.eval_consistentPart_internal {N : } (formula : DNF N) (input : BitString N) :
formula.consistentPart.eval input = formula.eval input
theorem Complexity.DNF.firstLiveTerm_reduced_internal {N : } (formula : DNF N) (restriction : Restriction.On N) :
Option.map Prod.snd (formula.firstLiveTerm restriction) = (restrict restriction formula).terms.head?
theorem Complexity.DNF.firstLiveTerm_spec_internal {N : } (formula : DNF N) (restriction : Restriction.On N) (original reduced : List (Literal N)) (hfirst : formula.firstLiveTerm restriction = some (original, reduced)) :
∃ (before : List (List (Literal N))) (after : List (List (Literal N))), formula.terms = before ++ original :: after restrictTerm restriction original = some reduced termbefore, restrictTerm restriction term = none
theorem Complexity.DNF.firstLiveTerm_comp_internal {N : } (formula : DNF N) (first second : Restriction.On N) (original reduced final : List (Literal N)) (hfirst : formula.firstLiveTerm first = some (original, reduced)) (hsecond : restrictTerm second reduced = some final) :
formula.firstLiveTerm (first.comp second) = some (original, final)
theorem Complexity.DNF.switchingDecisionTreeUnderAux_eq_internal {N : } (fuel : ) (formula : DNF N) (restriction : Restriction.On N) :
switchingDecisionTreeUnderAux fuel formula restriction = switchingDecisionTreeAux fuel (restrict restriction formula)
theorem Complexity.DNF.switchingDecisionTreeUnder_eq_internal {N : } (formula : DNF N) (restriction : Restriction.On N) :
formula.switchingDecisionTreeUnder restriction = (restrict restriction formula).switchingDecisionTree
theorem Complexity.DNF.eval_canonicalDecisionTreeAux_internal {N : } (fuel : ) (formula : DNF N) (hcard : formula.vars.card fuel) (input : BitString N) :
DecisionTree.On.eval input (canonicalDecisionTreeAux fuel formula) = formula.eval input
theorem Complexity.DNF.eval_switchingDecisionTreeAux_internal {N : } (fuel : ) (formula : DNF N) (hcard : formula.vars.card fuel) (input : BitString N) :
DecisionTree.On.eval input (switchingDecisionTreeAux fuel formula) = formula.eval input
theorem Complexity.DNF.switchingBad_width_encoding_bound_internal {N : } (formula : DNF N) (hconsistent : formula.Consistent) (q queryCount : ) :
RandomRestriction.eventCount q (formula.switchingBad queryCount) * q ^ queryCount (2 * q + 1) ^ N * (4 * (formula.width + 1)) ^ queryCount
theorem Complexity.DNF.switchingBad_consistentPart_width_encoding_bound_internal {N : } (formula : DNF N) (q queryCount : ) :
RandomRestriction.eventCount q (formula.consistentPart.switchingBad queryCount) * q ^ queryCount (2 * q + 1) ^ N * (4 * (formula.width + 1)) ^ queryCount
theorem Complexity.DNF.switchingBad_arity_encoding_bound_internal {N : } (formula : DNF N) (q queryCount : ) :
RandomRestriction.eventCount q (formula.switchingBad queryCount) * q ^ queryCount (2 * q + 1) ^ N * (2 * N) ^ queryCount
theorem Complexity.CNF.eval_consistentPart_internal {N : } (formula : CNF N) (input : BitString N) :
formula.consistentPart.eval input = formula.eval input
theorem Complexity.CNF.switchingDecisionTreeUnder_eq_internal {N : } (formula : CNF N) (restriction : Restriction.On N) :
formula.switchingDecisionTreeUnder restriction = (restrict restriction formula).switchingDecisionTree
theorem Complexity.CNF.switchingBad_eq_neg_internal {N : } (formula : CNF N) (queryCount : ) (restriction : Restriction.On N) :
formula.switchingBad queryCount restriction formula.neg.switchingBad queryCount restriction
theorem Complexity.CNF.switchingBad_width_encoding_bound_internal {N : } (formula : CNF N) (hconsistent : formula.Consistent) (q queryCount : ) :
RandomRestriction.eventCount q (formula.switchingBad queryCount) * q ^ queryCount (2 * q + 1) ^ N * (4 * (formula.width + 1)) ^ queryCount
theorem Complexity.CNF.switchingBad_consistentPart_width_encoding_bound_internal {N : } (formula : CNF N) (q queryCount : ) :
RandomRestriction.eventCount q (formula.consistentPart.switchingBad queryCount) * q ^ queryCount (2 * q + 1) ^ N * (4 * (formula.width + 1)) ^ queryCount