An executable Barrington compiler -- proof internals #
theorem
Complexity.firstConjugator5_spec_internal
(source target : Equiv.Perm (Fin 5))
(hexists : ∃ (g : Equiv.Perm (Fin 5)), g * source * g⁻¹ = target)
:
theorem
Complexity.barringtonConjugator_spec_internal
(target : Equiv.Perm (Fin 5))
(hcycle : target.IsCycle)
(horder : orderOf target = 5)
:
theorem
Complexity.barrington_commutator_internal
(target : Equiv.Perm (Fin 5))
(hcycle : target.IsCycle)
(horder : orderOf target = 5)
:
theorem
Complexity.barringtonCompile_computes_internal
(formula : BoolFormula)
(target : Equiv.Perm (Fin 5))
:
target.IsCycle →
orderOf target = 5 →
BP.Computes target (barringtonCompile formula target) fun (assignment : ℕ → Bool) =>
BoolFormula.eval assignment formula
theorem
Complexity.barringtonCompile_length_le_internal
(formula : BoolFormula)
(target : Equiv.Perm (Fin 5))
:
theorem
Complexity.barringtonCompile_var_bound_internal
(formula : BoolFormula)
(target : Equiv.Perm (Fin 5))
(bound : ℕ)
(hvars : ∀ index ∈ formula.vars, index ≤ bound)
(instruction : BPInstr 5)
:
instruction ∈ barringtonCompile formula target → instruction.var ≤ bound
Internal variable-locality theorem for the executable compiler.