The construction #
The coordinate set is V = ι × Fin r, where ι indexes the vertices of a tournament
(Arc i j says there is an arc i → j) and Fin r indexes the coordinates inside a
block. For i : ι the block B_i is {i} × Fin r.
A gate labelling γ : ι → ι → Fin r picks, for every arc i → j, a coordinate
gateCoord γ i j = (j, γ i j) of the block B_j.
The certificate C_i is the subcube cut out by the partial assignment cert Arc γ i:
- every coordinate of
B_iis fixed totrue; - for every arc
i → j, the gate coordinate(j, γ i j)is fixed tofalse.
Finally ind Arc γ is the indicator of the union of the C_i.
This file only fixes the definitions and their basic combinatorics; the tournament hypotheses are passed explicitly to the lemmas that need them, so that nothing here depends on the particular (Paley) tournament used later.
Adapted for Lean Pool from Timeroot/BS_Lam at commit
7bd39a8d41ee7910d3296d0477ad18f8fff9d870; ported to Lean Pool with proof and dependency cleanup.
Coordinate blocks #
The coordinate set V = ι × [r] of the construction (Section 3).
Equations
- BSLambda.Construction.Coord ι r = (ι × Fin r)
Instances For
The coordinate block B_i = {i} × [r] (Section 3).
Equations
Instances For
Gate coordinates #
The certificates #
The partial assignment P_i cutting out the certificate C_i (Section 3.2):
the owner block B_i is fixed to true, and every outgoing gate coordinate is
fixed to false.
Equations
Instances For
The three-way case split describing P_i.
The literals of P_i: it fixes v to true on the owner block B_i, and to false
on the gate coordinate of an outgoing arc. Every other lemma of this section is a
specialisation of this one.
On a gate coordinate of an outgoing arc, P_i fixes the coordinate to false.
Outside its owner block, the only coordinates P_i fixes are the gate coordinates
(j, γ(i,j)) of its outgoing arcs i → j.
Membership in the certificate subcube C_i, spelled out (Section 3.2).
The fixed coordinates of a certificate #
The set of coordinates fixed by P_i: the owner block together with the outgoing
gate coordinates (Section 3.2). No irreflexivity hypothesis is needed; a self-arc i → i
would just put its gate coordinate in the owner block as well.
The owner block B_i is disjoint from the outgoing gate coordinates: the gate
coordinate of the arc i → j lies in the block B_j, and j ≠ i.
The function f #
ind is a distinct head symbol from PartialAssign.indUnion, so the simp lemmas of the
latter do not fire on it; the three lemmas below restate them for ind.
The Boolean function f: the indicator of the union of the certificate subcubes
C_i (Section 3.3).
Equations
Instances For
A point is negative exactly when no certificate subcube contains it.