Barrington: bridging the abstract move-set to the S₅ cycle algebra #
Circuits/Barrington.lean develops the width-w representation predicate
BP.Computes and its closure moves (conjugation, negation, the commutator-trick
AND, OR). Circuits/BarringtonS5.lean proves the group-theoretic S₅ input:
every 5-cycle is the commutator of two 5-cycles. This module joins the two,
specializing to width 5, to obtain the moves in the form Barrington's induction
actually consumes — where the target representing cycle is an arbitrary
5-cycle rather than whatever the subprograms happened to produce.
Main results #
Complexity.BP.Computes_retarget— a program representingfthrough one5-cycle can be rebuilt to representfthrough any chosen5-cycle (5-cycles are conjugate, and pointwise conjugation preserves length).Complexity.BP.Computes_retarget_length— the retargeted program has exactly the original length.Complexity.BP.Computes_and5— given subprograms representingfandgthrough5-cycles,f ∧ gis representable through any target5-cycle. This is Barrington'sANDgate with full target-cycle freedom, the exact shape the formula induction needs.
Retargeting. If p represents f through a 5-cycle σ, then for any
5-cycle a there is a program representing f through a. (The two
5-cycles are conjugate — isConj_iff_cycleType_eq — and pointwise
conjugation changes the representing permutation without adding
instructions.)
Exact-length retargeting. Retargeting between 5-cycles by pointwise
conjugation preserves program length exactly.
Barrington's AND gate, with target-cycle freedom. Given subprograms
representing f and g each through some 5-cycle, and any chosen target
5-cycle c, there is a program representing f ∧ g through c.
Proof: c = ⁅a, b⁆ for 5-cycles a, b (every_fiveCycle_is_commutator);
retarget the two subprograms to a and b; the commutator trick
(BP.Computes_and) then represents f ∧ g through ⁅a, b⁆ = c.