The Ambainis composition lock, at every depth: the product partition of the (d+1)-fold Ambainis iterate — the construction giving the multiplicative upper bound on the partition number — is not the leaf partition of any deterministic protocol, for every depth d. Index 0 is the base partition itself (a kernel-checked eight-rectangle monochromatic partition of the base game); index 1 is the 64-rectangle object of the depth-two frontier.
∀ (d : ℕ),
¬∃ t,
KWLock.Realizes (KWLock.onesOf (KWLock.Fd 4 KWLock.fA (d + 1))) (KWLock.zerosOf (KWLock.Fd 4 KWLock.fA (d + 1)))
(KWLock.towerP 4 KWLock.fA KWLock.pA d) t- DeclKWLock.ambainis_tower_lockedDeclaration kindtheorem
∀ (d : ℕ), ¬∃ t, KWLock.Realizes (KWLock.onesOf (KWLock.Fd 4 KWLock.fA (d + 1))) (KWLock.zerosOf (KWLock.Fd 4 KWLock.fA (d + 1))) (KWLock.towerP 4 KWLock.fA KWLock.pA d) t - DeclKWLock.tower_not_protocolizableDeclaration kindtheorem
The composition lock. Under the base hypotheses, the product partition of the (d+1)-fold iterate is not the leaf partition of any deterministic protocol, for every depth.
∀ (k : ℕ) (f : (Fin k → Bool) → Bool) (P₀ : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))), KWLock.TowerHyp k f P₀ → ∀ (d : ℕ), ¬∃ t, KWLock.Realizes (KWLock.onesOf (KWLock.Fd k f (d + 1))) (KWLock.zerosOf (KWLock.Fd k f (d + 1))) (KWLock.towerP k f P₀ d) tKWLock.ColConnectedKWLock.FdKWLock.IsPartitionKWLock.KRectKWLock.LabKWLock.MonoValidKWLock.ProtocolKWLock.RealizesKWLock.RowConnectedKWLock.SpKWLock.TowerHypKWLock.instDecidableEqSpKWLock.instFintypeSpKWLock.onesOfKWLock.towerPKWLock.vvalKWLock.zerosOfUsed by
- DeclKWLock.tower_goodDeclaration kindtheorem
Everything transfers up the tower: at every depth the product partition is a valid, monochromatic partition of the iterate's game, with both overlap graphs connected and two distinct members.
∀ (k : ℕ) (f : (Fin k → Bool) → Bool) (P₀ : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))), KWLock.TowerHyp k f P₀ → ∀ (d : ℕ), KWLock.IsPartition (KWLock.onesOf (KWLock.Fd k f (d + 1))) (KWLock.zerosOf (KWLock.Fd k f (d + 1))) (KWLock.towerP k f P₀ d) ∧ KWLock.MonoValid (KWLock.vval k d) (KWLock.vval k d) (KWLock.towerP k f P₀ d) ∧ KWLock.RowConnected (KWLock.towerP k f P₀ d) ∧ KWLock.ColConnected (KWLock.towerP k f P₀ d) ∧ ∃ r ∈ KWLock.towerP k f P₀ d, ∃ s ∈ KWLock.towerP k f P₀ d, r ≠ sKWLock.ColConnectedKWLock.FdKWLock.IsPartitionKWLock.KRectKWLock.LabKWLock.MonoValidKWLock.RowConnectedKWLock.SpKWLock.TowerHypKWLock.compFunKWLock.compPartitionKWLock.instDecidableEqSpKWLock.instFintypeSpKWLock.onesOfKWLock.towerPKWLock.vvalKWLock.zerosOfUses
- DeclKWLock.zerosOf_congrDeclaration kindtheorem
Pointwise-equal Boolean functions have equal zeros.
∀ {α : Type} [inst : Fintype α] {h₁ h₂ : α → Bool}, (∀ (x : α), h₁ x = h₂ x) → KWLock.zerosOf h₁ = KWLock.zerosOf h₂Used by
- DeclKWLock.onesOf_congrDeclaration kindtheorem
Pointwise-equal Boolean functions have equal ones.
∀ {α : Type} [inst : Fintype α] {h₁ h₂ : α → Bool}, (∀ (x : α), h₁ x = h₂ x) → KWLock.onesOf h₁ = KWLock.onesOf h₂Used by
- DeclKWLock.comp_rowConnectedDeclaration kindtheorem
The connectivity transfer, rows. Outer connectivity plus block connectivity (both graphs of every block partition) yields row connectivity of the product.
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → DecidableEq (V i)] [inst_1 : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) (f : (Fin k → Bool) → Bool) {Po : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))} {Q : (i : Fin k) → List (KWLock.KRect (V i) (V i) (κ i))}, (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → KWLock.IsPartition (KWLock.onesOf f) (KWLock.zerosOf f) Po → KWLock.MonoValid (fun u i => u i) (fun u i => u i) Po → (∀ (i : Fin k), KWLock.IsPartition (KWLock.onesOf (g i)) (KWLock.zerosOf (g i)) (Q i)) → KWLock.RowConnected Po → (∀ (i : Fin k), KWLock.RowConnected (Q i)) → (∀ (i : Fin k), KWLock.ColConnected (Q i)) → KWLock.RowConnected (KWLock.compPartition g Po Q)KWLock.ColConnectedKWLock.IsPartitionKWLock.KRectKWLock.KRect.labelKWLock.MonoValidKWLock.RowConnectedKWLock.RowTouchKWLock.TStepKWLock.compPartitionKWLock.compRectKWLock.onesOfKWLock.zerosOfUses
Used by
- DeclKWLock.cross_step_rowDeclaration kindtheorem
The hop. Outer rectangles sharing a row yield touching composed rectangles: directly across distinct blocks, and through a common block rectangle when the blocks coincide (in which case the shared pattern forces equal orientations).
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → DecidableEq (V i)] [inst_1 : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) {Po : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))} {Q : (i : Fin k) → List (KWLock.KRect (V i) (V i) (κ i))}, (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → KWLock.MonoValid (fun u i => u i) (fun u i => u i) Po → (∀ (i : Fin k), KWLock.IsPartition (KWLock.onesOf (g i)) (KWLock.zerosOf (g i)) (Q i)) → (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → ∀ {Ro So : KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k)}, Ro ∈ Po → So ∈ Po → KWLock.RowTouch Ro So → ∀ {q : KWLock.KRect (V Ro.label) (V Ro.label) (κ Ro.label)}, q ∈ Q Ro.label → ∃ p ∈ Q So.label, KWLock.RowTouch (KWLock.compRect g Ro q) (KWLock.compRect g So p)KWLock.IsPartitionKWLock.KRectKWLock.KRect.colsKWLock.KRect.labelKWLock.KRect.orientKWLock.KRect.rowsKWLock.MonoValidKWLock.RowTouchKWLock.blockPatKWLock.compRectKWLock.onesOfKWLock.rowSideSelKWLock.zerosOfUses
Used by
- DeclKWLock.cluster_linked_rowDeclaration kindtheorem
Within one outer rectangle, composed rectangles over linked block rectangles are linked: the cluster inherits the block partition's row graph in the standard orientation and its column graph in the reversed one.
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → DecidableEq (V i)] [inst_1 : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) (f : (Fin k → Bool) → Bool) {Po : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))} {Q : (i : Fin k) → List (KWLock.KRect (V i) (V i) (κ i))}, (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → KWLock.IsPartition (KWLock.onesOf f) (KWLock.zerosOf f) Po → KWLock.MonoValid (fun u i => u i) (fun u i => u i) Po → (∀ (i : Fin k), KWLock.IsPartition (KWLock.onesOf (g i)) (KWLock.zerosOf (g i)) (Q i)) → (∀ (i : Fin k), KWLock.RowConnected (Q i)) → (∀ (i : Fin k), KWLock.ColConnected (Q i)) → ∀ {Ro : KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k)}, Ro ∈ Po → ∀ {q q' : KWLock.KRect (V Ro.label) (V Ro.label) (κ Ro.label)}, q ∈ Q Ro.label → q' ∈ Q Ro.label → Relation.ReflTransGen (KWLock.TStep KWLock.RowTouch (KWLock.compPartition g Po Q)) (KWLock.compRect g Ro q) (KWLock.compRect g Ro q')KWLock.ColConnectedKWLock.ColTouchKWLock.IsPartitionKWLock.KRectKWLock.KRect.colsKWLock.KRect.labelKWLock.KRect.orientKWLock.KRect.rowsKWLock.MonoValidKWLock.RowConnectedKWLock.RowTouchKWLock.TStepKWLock.compPartitionKWLock.compRectKWLock.onesOfKWLock.rowSideSelKWLock.zerosOfUses
Used by
- DeclKWLock.comp_rowTouch_sameDeclaration kindtheorem
Same-outer composed rectangles sharing a side value share a row.
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → DecidableEq (V i)] [inst_1 : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) {Po : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))} {Q : (i : Fin k) → List (KWLock.KRect (V i) (V i) (κ i))}, (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → KWLock.MonoValid (fun u i => u i) (fun u i => u i) Po → (∀ (i : Fin k), KWLock.IsPartition (KWLock.onesOf (g i)) (KWLock.zerosOf (g i)) (Q i)) → ∀ {Ro : KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k)}, Ro ∈ Po → Ro.rows.Nonempty → ∀ {q q' : KWLock.KRect (V Ro.label) (V Ro.label) (κ Ro.label)}, q ∈ Q Ro.label → ∀ {v₀ : V Ro.label}, v₀ ∈ KWLock.rowSideSel Ro.orient q → v₀ ∈ KWLock.rowSideSel Ro.orient q' → KWLock.RowTouch (KWLock.compRect g Ro q) (KWLock.compRect g Ro q')KWLock.IsPartitionKWLock.KRectKWLock.KRect.colsKWLock.KRect.labelKWLock.KRect.orientKWLock.KRect.rowsKWLock.MonoValidKWLock.RowTouchKWLock.blockPatKWLock.compRectKWLock.onesOfKWLock.rowSideSelKWLock.zerosOfUsed by
- DeclKWLock.comp_monoValidDeclaration kindtheorem
Labels transfer. The composed partition is monochromatic at its physical coordinates, under the composed valuation.
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → DecidableEq (V i)] [inst_1 : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) {Po : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))} {Q : (i : Fin k) → List (KWLock.KRect (V i) (V i) (κ i))} (vκ : (i : Fin k) → V i → κ i → Bool), (∀ (i : Fin k), KWLock.MonoValid (vκ i) (vκ i) (Q i)) → KWLock.MonoValid (fun w s => vκ s.fst (w s.fst) s.snd) (fun w s => vκ s.fst (w s.fst) s.snd) (KWLock.compPartition g Po Q)KWLock.KRectKWLock.KRect.colsKWLock.KRect.labelKWLock.KRect.orientKWLock.KRect.rowsKWLock.MonoValidKWLock.blockPatKWLock.colSideSelKWLock.compPartitionKWLock.compRectKWLock.rowSideSelUsed by
- DeclKWLock.comp_distinctDeclaration kindtheorem
Distinctness transfers: children of two distinct outer rectangles are distinct, because their cells are nonempty and outer-disjoint.
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → DecidableEq (V i)] [inst_1 : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) (f : (Fin k → Bool) → Bool) {Po : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))} {Q : (i : Fin k) → List (KWLock.KRect (V i) (V i) (κ i))}, (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → KWLock.IsPartition (KWLock.onesOf f) (KWLock.zerosOf f) Po → KWLock.MonoValid (fun u i => u i) (fun u i => u i) Po → (∀ (i : Fin k), KWLock.IsPartition (KWLock.onesOf (g i)) (KWLock.zerosOf (g i)) (Q i)) → (∃ r ∈ Po, ∃ s ∈ Po, r ≠ s) → ∃ r ∈ KWLock.compPartition g Po Q, ∃ s ∈ KWLock.compPartition g Po Q, r ≠ sKWLock.IsPartitionKWLock.KRectKWLock.KRect.CellKWLock.KRect.colsKWLock.KRect.labelKWLock.KRect.orientKWLock.KRect.rowsKWLock.MonoValidKWLock.blockPatKWLock.colSideSelKWLock.compFunKWLock.compPartitionKWLock.compRectKWLock.onesOfKWLock.rowSideSelKWLock.zerosOfUses
Used by
- DeclKWLock.pairwise_disjoint_of_neDeclaration kindtheorem
Extract pairwise cell-disjointness for two distinct members.
∀ {X Y ι : Type} {P : List (KWLock.KRect X Y ι)}, List.Pairwise (fun r s => ∀ (x : X) (y : Y), ¬(r.Cell x y ∧ s.Cell x y)) P → ∀ {r s : KWLock.KRect X Y ι}, r ∈ P → s ∈ P → r ≠ s → ∀ (x : X) (y : Y), ¬(r.Cell x y ∧ s.Cell x y)Used by
- DeclKWLock.comp_isPartitionDeclaration kindtheorem
Validity transfers. The product of a valid labeled outer partition with valid block partitions is a valid partition of the composed game.
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → DecidableEq (V i)] [inst_1 : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) (f : (Fin k → Bool) → Bool) {Po : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))} {Q : (i : Fin k) → List (KWLock.KRect (V i) (V i) (κ i))}, KWLock.IsPartition (KWLock.onesOf f) (KWLock.zerosOf f) Po → KWLock.MonoValid (fun u i => u i) (fun u i => u i) Po → (∀ (i : Fin k), KWLock.IsPartition (KWLock.onesOf (g i)) (KWLock.zerosOf (g i)) (Q i)) → (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → KWLock.IsPartition (KWLock.onesOf (KWLock.compFun g f)) (KWLock.zerosOf (KWLock.compFun g f)) (KWLock.compPartition g Po Q)KWLock.IsPartitionKWLock.KRectKWLock.KRect.CellKWLock.KRect.colsKWLock.KRect.labelKWLock.KRect.orientKWLock.KRect.rowsKWLock.MonoValidKWLock.blockPatKWLock.colSideSelKWLock.compFunKWLock.compPartitionKWLock.compRectKWLock.onesOfKWLock.rowSideSelKWLock.zerosOfUses
- KWLock.IsPartition.contained
- KWLock.IsPartition.covers
- KWLock.IsPartition.disjoint
- KWLock.IsPartition.nonempty
- KWLock.colSideSel_nonempty
- KWLock.colSideSel_val
- KWLock.comp_pairwise
- KWLock.exists_point
- KWLock.mem_cols_compRect
- KWLock.mem_compPartition
- KWLock.mem_onesOf
- KWLock.mem_rows_compRect
- KWLock.mem_zerosOf
- KWLock.rowSideSel_nonempty
- KWLock.rowSideSel_val
- DeclKWLock.rowSideSel_valDeclaration kindtheorem
A value on the row side of a block rectangle evaluates, under the block function, to the orientation — provided the block partition is contained in its game.
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) {a : Fin k} {q : KWLock.KRect (V a) (V a) (κ a)}, q.rows ⊆ KWLock.onesOf (g a) → q.cols ⊆ KWLock.zerosOf (g a) → ∀ (o : Bool) {v : V a}, v ∈ KWLock.rowSideSel o q → g a v = o - DeclKWLock.rowSideSel_nonemptyDeclaration kindtheorem
Row sides of members of a valid block partition are nonempty.
∀ {k : ℕ} {V κ : Fin k → Type} {a : Fin k} {q : KWLock.KRect (V a) (V a) (κ a)}, q.rows.Nonempty ∧ q.cols.Nonempty → ∀ (o : Bool), (KWLock.rowSideSel o q).Nonempty - DeclKWLock.comp_pairwiseDeclaration kindtheorem
Pairwise cell-disjointness transfers to the product: a shared composed cell projects to a shared outer cell (across outer rectangles) or a shared block cell in the orientation's order (within one outer rectangle).
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → DecidableEq (V i)] [inst_1 : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) {Po : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))} {Q : (i : Fin k) → List (KWLock.KRect (V i) (V i) (κ i))}, List.Pairwise (fun r s => ∀ (x y : Fin k → Bool), ¬(r.Cell x y ∧ s.Cell x y)) Po → (∀ (i : Fin k), List.Pairwise (fun r s => ∀ (x y : V i), ¬(r.Cell x y ∧ s.Cell x y)) (Q i)) → List.Pairwise (fun r s => ∀ (x y : (i : Fin k) → V i), ¬(r.Cell x y ∧ s.Cell x y)) (KWLock.compPartition g Po Q)KWLock.KRectKWLock.KRect.CellKWLock.KRect.colsKWLock.KRect.labelKWLock.KRect.orientKWLock.KRect.rowsKWLock.blockPatKWLock.colSideSelKWLock.compPartitionKWLock.compRectKWLock.rowSideSelUsed by
- DeclKWLock.mem_rows_compRectDeclaration kindtheorem
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → DecidableEq (V i)] [inst_1 : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) {Ro : KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k)} {q : KWLock.KRect (V Ro.label) (V Ro.label) (κ Ro.label)} {w : (i : Fin k) → V i}, w ∈ (KWLock.compRect g Ro q).rows ↔ KWLock.blockPat g w ∈ Ro.rows ∧ w Ro.label ∈ KWLock.rowSideSel Ro.orient q - DeclKWLock.IsPartition.disjointDeclaration kindtheorem
∀ {X Y ι : Type} {RX : Finset X} {CY : Finset Y} {P : List (KWLock.KRect X Y ι)}, KWLock.IsPartition RX CY P → List.Pairwise (fun r s => ∀ (x : X) (y : Y), ¬(r.Cell x y ∧ s.Cell x y)) P - DeclKWLock.comp_colConnectedDeclaration kindtheorem
The connectivity transfer, columns.
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → DecidableEq (V i)] [inst_1 : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) (f : (Fin k → Bool) → Bool) {Po : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))} {Q : (i : Fin k) → List (KWLock.KRect (V i) (V i) (κ i))}, (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → KWLock.IsPartition (KWLock.onesOf f) (KWLock.zerosOf f) Po → KWLock.MonoValid (fun u i => u i) (fun u i => u i) Po → (∀ (i : Fin k), KWLock.IsPartition (KWLock.onesOf (g i)) (KWLock.zerosOf (g i)) (Q i)) → KWLock.ColConnected Po → (∀ (i : Fin k), KWLock.RowConnected (Q i)) → (∀ (i : Fin k), KWLock.ColConnected (Q i)) → KWLock.ColConnected (KWLock.compPartition g Po Q)KWLock.ColConnectedKWLock.ColTouchKWLock.IsPartitionKWLock.KRectKWLock.KRect.labelKWLock.MonoValidKWLock.RowConnectedKWLock.TStepKWLock.compPartitionKWLock.compRectKWLock.onesOfKWLock.zerosOfUses
Used by
- DeclKWLock.cross_step_colDeclaration kindtheorem
The column mirror of
cross_step_row.∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → DecidableEq (V i)] [inst_1 : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) {Po : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))} {Q : (i : Fin k) → List (KWLock.KRect (V i) (V i) (κ i))}, (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → KWLock.MonoValid (fun u i => u i) (fun u i => u i) Po → (∀ (i : Fin k), KWLock.IsPartition (KWLock.onesOf (g i)) (KWLock.zerosOf (g i)) (Q i)) → (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → ∀ {Ro So : KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k)}, Ro ∈ Po → So ∈ Po → KWLock.ColTouch Ro So → ∀ {q : KWLock.KRect (V Ro.label) (V Ro.label) (κ Ro.label)}, q ∈ Q Ro.label → ∃ p ∈ Q So.label, KWLock.ColTouch (KWLock.compRect g Ro q) (KWLock.compRect g So p)KWLock.ColTouchKWLock.IsPartitionKWLock.KRectKWLock.KRect.colsKWLock.KRect.labelKWLock.KRect.orientKWLock.KRect.rowsKWLock.MonoValidKWLock.blockPatKWLock.colSideSelKWLock.compRectKWLock.onesOfKWLock.zerosOfUses
Used by
- DeclKWLock.exists_point₂Declaration kindtheorem
Build a composed point with a prescribed block pattern and prescribed values at two distinct blocks.
∀ {k : ℕ} {V : Fin k → Type} (g : (i : Fin k) → V i → Bool), (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → ∀ (u : Fin k → Bool) {a₁ a₂ : Fin k}, a₁ ≠ a₂ → ∀ (v₁ : V a₁) (v₂ : V a₂), g a₁ v₁ = u a₁ → g a₂ v₂ = u a₂ → ∃ w, KWLock.blockPat g w = u ∧ w a₁ = v₁ ∧ w a₂ = v₂ - DeclKWLock.colSideSel_nonemptyDeclaration kindtheorem
Column sides of members of a valid block partition are nonempty.
∀ {k : ℕ} {V κ : Fin k → Type} {a : Fin k} {q : KWLock.KRect (V a) (V a) (κ a)}, q.rows.Nonempty ∧ q.cols.Nonempty → ∀ (o : Bool), (KWLock.colSideSel o q).Nonempty - DeclKWLock.comp_Q_ne_nilDeclaration kindtheorem
Block partitions of a game with a surjective block function are nonempty lists.
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) {Q : (i : Fin k) → List (KWLock.KRect (V i) (V i) (κ i))}, (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → (∀ (i : Fin k), KWLock.IsPartition (KWLock.onesOf (g i)) (KWLock.zerosOf (g i)) (Q i)) → ∀ (i : Fin k), Q i ≠ [] - DeclKWLock.partition_ne_nilDeclaration kindtheorem
A valid nonempty-sided partition of a nonempty product is a nonempty list.
∀ {X Y ι : Type} {RX : Finset X} {CY : Finset Y} {P : List (KWLock.KRect X Y ι)}, KWLock.IsPartition RX CY P → RX.Nonempty → CY.Nonempty → P ≠ []Used by
- DeclKWLock.IsPartition.coversDeclaration kindtheorem
∀ {X Y ι : Type} {RX : Finset X} {CY : Finset Y} {P : List (KWLock.KRect X Y ι)}, KWLock.IsPartition RX CY P → ∀ x ∈ RX, ∀ y ∈ CY, ∃ r ∈ P, r.Cell x y - DeclKWLock.cluster_linked_colDeclaration kindtheorem
The column mirror of
cluster_linked_row.∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → DecidableEq (V i)] [inst_1 : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) (f : (Fin k → Bool) → Bool) {Po : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))} {Q : (i : Fin k) → List (KWLock.KRect (V i) (V i) (κ i))}, (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → KWLock.IsPartition (KWLock.onesOf f) (KWLock.zerosOf f) Po → KWLock.MonoValid (fun u i => u i) (fun u i => u i) Po → (∀ (i : Fin k), KWLock.IsPartition (KWLock.onesOf (g i)) (KWLock.zerosOf (g i)) (Q i)) → (∀ (i : Fin k), KWLock.RowConnected (Q i)) → (∀ (i : Fin k), KWLock.ColConnected (Q i)) → ∀ {Ro : KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k)}, Ro ∈ Po → ∀ {q q' : KWLock.KRect (V Ro.label) (V Ro.label) (κ Ro.label)}, q ∈ Q Ro.label → q' ∈ Q Ro.label → Relation.ReflTransGen (KWLock.TStep KWLock.ColTouch (KWLock.compPartition g Po Q)) (KWLock.compRect g Ro q) (KWLock.compRect g Ro q')KWLock.ColConnectedKWLock.ColTouchKWLock.IsPartitionKWLock.KRectKWLock.KRect.colsKWLock.KRect.labelKWLock.KRect.orientKWLock.KRect.rowsKWLock.MonoValidKWLock.RowConnectedKWLock.RowTouchKWLock.TStepKWLock.colSideSelKWLock.compPartitionKWLock.compRectKWLock.onesOfKWLock.zerosOfUses
Used by
- DeclKWLock.mem_compPartitionDeclaration kindtheorem
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → DecidableEq (V i)] [inst_1 : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) {Po : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))} {Q : (i : Fin k) → List (KWLock.KRect (V i) (V i) (κ i))} {r : KWLock.KRect ((i : Fin k) → V i) ((i : Fin k) → V i) ((i : Fin k) × κ i)}, r ∈ KWLock.compPartition g Po Q ↔ ∃ Ro ∈ Po, ∃ q ∈ Q Ro.label, r = KWLock.compRect g Ro q - DeclKWLock.linked_all_memDeclaration kindtheorem
Along linkage from a member, every node is a member.
∀ {X Y ι : Type} (T : KWLock.KRect X Y ι → KWLock.KRect X Y ι → Prop) {P : List (KWLock.KRect X Y ι)} {r s : KWLock.KRect X Y ι}, r ∈ P → Relation.ReflTransGen (KWLock.TStep T P) r s → s ∈ P - DeclKWLock.comp_colTouch_sameDeclaration kindtheorem
Same-outer composed rectangles sharing a side value share a column.
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → DecidableEq (V i)] [inst_1 : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) {Po : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))} {Q : (i : Fin k) → List (KWLock.KRect (V i) (V i) (κ i))}, (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → KWLock.MonoValid (fun u i => u i) (fun u i => u i) Po → (∀ (i : Fin k), KWLock.IsPartition (KWLock.onesOf (g i)) (KWLock.zerosOf (g i)) (Q i)) → ∀ {Ro : KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k)}, Ro ∈ Po → Ro.cols.Nonempty → ∀ {q q' : KWLock.KRect (V Ro.label) (V Ro.label) (κ Ro.label)}, q ∈ Q Ro.label → ∀ {v₀ : V Ro.label}, v₀ ∈ KWLock.colSideSel Ro.orient q → v₀ ∈ KWLock.colSideSel Ro.orient q' → KWLock.ColTouch (KWLock.compRect g Ro q) (KWLock.compRect g Ro q')KWLock.ColTouchKWLock.IsPartitionKWLock.KRectKWLock.KRect.colsKWLock.KRect.labelKWLock.KRect.orientKWLock.KRect.rowsKWLock.MonoValidKWLock.blockPatKWLock.colSideSelKWLock.compRectKWLock.onesOfKWLock.zerosOfUsed by
- DeclKWLock.mem_cols_compRectDeclaration kindtheorem
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → DecidableEq (V i)] [inst_1 : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) {Ro : KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k)} {q : KWLock.KRect (V Ro.label) (V Ro.label) (κ Ro.label)} {w : (i : Fin k) → V i}, w ∈ (KWLock.compRect g Ro q).cols ↔ KWLock.blockPat g w ∈ Ro.cols ∧ w Ro.label ∈ KWLock.colSideSel Ro.orient q - DeclKWLock.exists_pointDeclaration kindtheorem
Build a composed point with a prescribed block pattern and a prescribed value at one block, from surjectivity of the block functions.
∀ {k : ℕ} {V : Fin k → Type} (g : (i : Fin k) → V i → Bool), (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → ∀ (u : Fin k → Bool) (a : Fin k) (v : V a), g a v = u a → ∃ w, KWLock.blockPat g w = u ∧ w a = v - DeclKWLock.colSideSel_valDeclaration kindtheorem
A value on the column side of a block rectangle evaluates to the negated orientation.
∀ {k : ℕ} {V : Fin k → Type} [inst : (i : Fin k) → Fintype (V i)] {κ : Fin k → Type} (g : (i : Fin k) → V i → Bool) {a : Fin k} {q : KWLock.KRect (V a) (V a) (κ a)}, q.rows ⊆ KWLock.onesOf (g a) → q.cols ⊆ KWLock.zerosOf (g a) → ∀ (o : Bool) {v : V a}, v ∈ KWLock.colSideSel o q → g a v = !o - DeclKWLock.mem_zerosOfDeclaration kindtheorem
∀ {α : Type} [inst : Fintype α] {h : α → Bool} {x : α}, x ∈ KWLock.zerosOf h ↔ h x = false - DeclKWLock.mem_onesOfDeclaration kindtheorem
∀ {α : Type} [inst : Fintype α] {h : α → Bool} {x : α}, x ∈ KWLock.onesOf h ↔ h x = true - DeclKWLock.IsPartition.containedDeclaration kindtheorem
∀ {X Y ι : Type} {RX : Finset X} {CY : Finset Y} {P : List (KWLock.KRect X Y ι)}, KWLock.IsPartition RX CY P → ∀ r ∈ P, r.rows ⊆ RX ∧ r.cols ⊆ CY - DeclKWLock.TowerHyp.rowcDeclaration kindtheorem
∀ {k : ℕ} {f : (Fin k → Bool) → Bool} {P₀ : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))}, KWLock.TowerHyp k f P₀ → KWLock.RowConnected P₀Used by
- DeclKWLock.TowerHyp.partDeclaration kindtheorem
∀ {k : ℕ} {f : (Fin k → Bool) → Bool} {P₀ : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))}, KWLock.TowerHyp k f P₀ → KWLock.IsPartition (KWLock.onesOf f) (KWLock.zerosOf f) P₀Used by
- DeclKWLock.TowerHyp.ontoDeclaration kindtheorem
∀ {k : ℕ} {f : (Fin k → Bool) → Bool} {P₀ : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))}, KWLock.TowerHyp k f P₀ → ∀ (b : Bool), ∃ u, f u = bUsed by
- DeclKWLock.TowerHyp.monoDeclaration kindtheorem
∀ {k : ℕ} {f : (Fin k → Bool) → Bool} {P₀ : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))}, KWLock.TowerHyp k f P₀ → KWLock.MonoValid (fun u i => u i) (fun u i => u i) P₀Used by
- DeclKWLock.TowerHyp.distDeclaration kindtheorem
∀ {k : ℕ} {f : (Fin k → Bool) → Bool} {P₀ : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))}, KWLock.TowerHyp k f P₀ → ∃ r ∈ P₀, ∃ s ∈ P₀, r ≠ sUsed by
- DeclKWLock.TowerHyp.colcDeclaration kindtheorem
∀ {k : ℕ} {f : (Fin k → Bool) → Bool} {P₀ : List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k))}, KWLock.TowerHyp k f P₀ → KWLock.ColConnected P₀Used by
- DeclKWLock.Fd_ontoDeclaration kindtheorem
The iterate is surjective at every level.
∀ (k : ℕ) (f : (Fin k → Bool) → Bool), (∀ (b : Bool), ∃ u, f u = b) → ∀ (d : ℕ) (b : Bool), ∃ w, KWLock.Fd k f (d + 1) w = b
Uses
Used by
- DeclKWLock.comp_ontoDeclaration kindtheorem
Surjectivity composes.
∀ {k : ℕ} {V : Fin k → Type} (g : (i : Fin k) → V i → Bool) (f : (Fin k → Bool) → Bool), (∀ (b : Bool), ∃ u, f u = b) → (∀ (i : Fin k) (b : Bool), ∃ v, g i v = b) → ∀ (b : Bool), ∃ w, KWLock.compFun g f w = bUsed by
- DeclKWLock.connected_not_protocolizableDeclaration kindtheorem
The atomicity obstruction. Any list of nonempty-sided rectangles with two distinct members whose row-overlap graph and column-overlap graph are both connected is not the leaf list of any deterministic protocol — full partition validity is not needed. At the root split, every leaf's live side lies within one half; sharing a row (column) forces the same half; connectivity drags every rectangle to one half; yet both subtrees own a leaf.
∀ {X Y ι : Type} [inst : DecidableEq X] [inst_1 : DecidableEq Y] {RX : Finset X} {CY : Finset Y} {P : List (KWLock.KRect X Y ι)}, (∀ r ∈ P, r.rows.Nonempty ∧ r.cols.Nonempty) → KWLock.RowConnected P → KWLock.ColConnected P → (∃ r ∈ P, ∃ s ∈ P, r ≠ s) → ¬∃ t, KWLock.Realizes RX CY P tKWLock.ColConnectedKWLock.KRectKWLock.KRect.colsKWLock.KRect.rowsKWLock.ProtocolKWLock.Protocol.FollowsKWLock.Protocol.leavesKWLock.RealizesKWLock.RowConnectedUses
- DeclKWLock.row_side_invariantDeclaration kindtheorem
Lying inside a fixed half of a row split is invariant along the row-overlap graph, provided every member of
Plies inside one half or the other: a shared row cannot be on both sides.∀ {X Y ι : Type} [inst : DecidableEq X] {P : List (KWLock.KRect X Y ι)} {RX A : Finset X}, (∀ p ∈ P, p.rows ⊆ RX ∩ A ∨ p.rows ⊆ RX \ A) → ∀ {p q : KWLock.KRect X Y ι}, Relation.ReflTransGen (KWLock.TStep KWLock.RowTouch P) p q → p.rows ⊆ RX ∩ A → q.rows ⊆ RX ∩ A - DeclKWLock.col_side_invariantDeclaration kindtheorem
The column mirror of
row_side_invariant.∀ {X Y ι : Type} [inst : DecidableEq Y] {P : List (KWLock.KRect X Y ι)} {CY B : Finset Y}, (∀ p ∈ P, p.cols ⊆ CY ∩ B ∨ p.cols ⊆ CY \ B) → ∀ {p q : KWLock.KRect X Y ι}, Relation.ReflTransGen (KWLock.TStep KWLock.ColTouch P) p q → p.cols ⊆ CY ∩ B → q.cols ⊆ CY ∩ B - DeclKWLock.Protocol.leaves_ne_nilDeclaration kindtheorem
∀ {X Y ι : Type} (t : KWLock.Protocol X Y ι), t.leaves ≠ [] - DeclKWLock.Protocol.follows_leaf_subDeclaration kindtheorem
Every leaf of a following protocol sits inside the current rectangle.
∀ {X Y ι : Type} [inst : DecidableEq X] [inst_1 : DecidableEq Y] {RX : Finset X} {CY : Finset Y} (t : KWLock.Protocol X Y ι), KWLock.Protocol.Follows RX CY t → ∀ r ∈ t.leaves, r.rows ⊆ RX ∧ r.cols ⊆ CY - DeclKWLock.IsPartition.nonemptyDeclaration kindtheorem
∀ {X Y ι : Type} {RX : Finset X} {CY : Finset Y} {P : List (KWLock.KRect X Y ι)}, KWLock.IsPartition RX CY P → ∀ r ∈ P, r.rows.Nonempty ∧ r.cols.Nonempty - DeclKWLock.ambainis_towerHypDeclaration kindtheorem
The Ambainis base satisfies every tower hypothesis.
KWLock.TowerHyp 4 KWLock.fA KWLock.pA
Uses
Used by
- DeclKWLock.pA_rowConnectedDeclaration kindtheorem
The row-overlap graph is connected: an explicit spanning walk.
KWLock.RowConnected KWLock.pA
KWLock.IsWalkKWLock.KRectKWLock.RowConnectedKWLock.RowTouchKWLock.instDecidableEqKRectKWLock.instDecidableIsWalkKWLock.instDecidableRowTouchOfDecidableEqKWLock.pAKWLock.rA1KWLock.rA2KWLock.rA3KWLock.rA4KWLock.rA5KWLock.rA6KWLock.rA7KWLock.rA8Used by
- DeclKWLock.RowTouch.symmDeclaration kindtheorem
∀ {X Y ι : Type} {r s : KWLock.KRect X Y ι}, KWLock.RowTouch r s → KWLock.RowTouch s rUsed by
- DeclKWLock.pA_monoDeclaration kindtheorem
Kernel re-check: every rectangle is monochromatic at its label, in its orientation.
KWLock.MonoValid (fun u i => u i) (fun u i => u i) KWLock.pA
KWLock.KRectKWLock.KRect.colsKWLock.KRect.labelKWLock.KRect.orientKWLock.KRect.rowsKWLock.MonoValidKWLock.pAUsed by
- DeclKWLock.pA_isPartitionDeclaration kindtheorem
Kernel re-check: the eight rectangles form a valid partition of the Ambainis game.
KWLock.IsPartition (KWLock.onesOf KWLock.fA) (KWLock.zerosOf KWLock.fA) KWLock.pA
KWLock.IsPartitionKWLock.KRectKWLock.KRect.CellKWLock.KRect.colsKWLock.KRect.rowsKWLock.fAKWLock.instDecidableCellOfDecidableEqKWLock.onesOfKWLock.pAKWLock.zerosOfUsed by
- DeclKWLock.pA_distinctDeclaration kindtheorem
Two distinct members.
∃ r ∈ KWLock.pA, ∃ s ∈ KWLock.pA, r ≠ s
Used by
- DeclKWLock.pA_colConnectedDeclaration kindtheorem
The column-overlap graph is connected: an explicit spanning walk.
KWLock.ColConnected KWLock.pA
KWLock.ColConnectedKWLock.ColTouchKWLock.IsWalkKWLock.KRectKWLock.instDecidableColTouchOfDecidableEqKWLock.instDecidableEqKRectKWLock.instDecidableIsWalkKWLock.pAKWLock.rA1KWLock.rA2KWLock.rA3KWLock.rA4KWLock.rA5KWLock.rA6KWLock.rA7KWLock.rA8Used by
- DeclKWLock.connectedVia_of_walkDeclaration kindtheorem
A spanning walk — inside
P, visiting every member — yields connectivity.∀ {X Y ι : Type} (T : KWLock.KRect X Y ι → KWLock.KRect X Y ι → Prop), (∀ {r s : KWLock.KRect X Y ι}, T r s → T s r) → ∀ {P w : List (KWLock.KRect X Y ι)}, w ≠ [] → KWLock.IsWalk T w → (∀ r ∈ w, r ∈ P) → (∀ r ∈ P, r ∈ w) → KWLock.ConnectedVia T P - DeclKWLock.linked_of_walkDeclaration kindtheorem
The head of a walk inside
Plinks to every element of the walk.∀ {X Y ι : Type} (T : KWLock.KRect X Y ι → KWLock.KRect X Y ι → Prop) {P : List (KWLock.KRect X Y ι)} {a : KWLock.KRect X Y ι} {l : List (KWLock.KRect X Y ι)}, KWLock.IsWalk T (a :: l) → (∀ r ∈ a :: l, r ∈ P) → ∀ b ∈ a :: l, Relation.ReflTransGen (KWLock.TStep T P) a bUsed by
- DeclKWLock.linked_mem_symmDeclaration kindtheorem
From a member of
P, every linked rectangle is a member, and the linkage reverses when the touch relation is symmetric.∀ {X Y ι : Type} (T : KWLock.KRect X Y ι → KWLock.KRect X Y ι → Prop), (∀ {r s : KWLock.KRect X Y ι}, T r s → T s r) → ∀ {P : List (KWLock.KRect X Y ι)} {r s : KWLock.KRect X Y ι}, r ∈ P → Relation.ReflTransGen (KWLock.TStep T P) r s → s ∈ P ∧ Relation.ReflTransGen (KWLock.TStep T P) s rUsed by
- DeclKWLock.ColTouch.symmDeclaration kindtheorem
∀ {X Y ι : Type} {r s : KWLock.KRect X Y ι}, KWLock.ColTouch r s → KWLock.ColTouch s rUsed by
- DeclKWLock.fA_ontoDeclaration kindtheorem
The base function is surjective.
∀ (b : Bool), ∃ u, KWLock.fA u = b
Used by
- DefinitionKWLock.ColConnecteddef
Column connectivity.
{X Y ι : Type} → List (KWLock.KRect X Y ι) → Prop - DefinitionKWLock.ColTouchdef
Two rectangles touch on columns when some column lies in both column sets.
{X Y ι : Type} → KWLock.KRect X Y ι → KWLock.KRect X Y ι → Prop - DefinitionKWLock.ConnectedViadef
The touch graph of
Pis connected.{X Y ι : Type} → (KWLock.KRect X Y ι → KWLock.KRect X Y ι → Prop) → List (KWLock.KRect X Y ι) → Prop - DefinitionKWLock.Fddef
The d-th iterate of the base function.
(k : ℕ) → ((Fin k → Bool) → Bool) → (d : ℕ) → KWLock.Sp k d → Bool
- DefinitionKWLock.IsPartitionstructure
A valid partition of the product
RX × CYinto nonempty rectangles: contained, pairwise cell-disjoint, covering.{X Y ι : Type} → Finset X → Finset Y → List (KWLock.KRect X Y ι) → Prop - DefinitionKWLock.IsWalkdef
A walk: consecutive elements touch.
{X Y ι : Type} → (KWLock.KRect X Y ι → KWLock.KRect X Y ι → Prop) → List (KWLock.KRect X Y ι) → Prop - DefinitionKWLock.KRectstructure
A labeled rectangle: row and column sets, a coordinate label, and the rectangle's orientation (
truewhen rows carry valuetrueat the label). The atomicity results never readlabel/orient; the composition and validity results do.Type → Type → Type → Type
- DefinitionKWLock.KRect.Celldef
Cell membership.
{X Y ι : Type} → KWLock.KRect X Y ι → X → Y → Prop - DefinitionKWLock.KRect.colsdef
{X Y ι : Type} → KWLock.KRect X Y ι → Finset Y - DefinitionKWLock.KRect.labeldef
{X Y ι : Type} → KWLock.KRect X Y ι → ι - DefinitionKWLock.KRect.orientdef
{X Y ι : Type} → KWLock.KRect X Y ι → Bool - DefinitionKWLock.KRect.rowsdef
{X Y ι : Type} → KWLock.KRect X Y ι → Finset X - DefinitionKWLock.Labdef
Physical coordinates at depth d: paths of blocks ending in a base coordinate.
ℕ → ℕ → Type
- DefinitionKWLock.MonoValiddef
Per-rectangle monochromaticity relative to valuations: rows carry the rectangle's orientation at its label, columns the negation.
{X Y ι : Type} → (X → ι → Bool) → (Y → ι → Bool) → List (KWLock.KRect X Y ι) → Prop - DefinitionKWLock.Protocolinductive
A deterministic protocol tree: the row player splits the current row set, the column player the current column set; leaves announce rectangles.
Type → Type → Type → Type
- DefinitionKWLock.Protocol.Followsdef
The protocol respects the current rectangle
(RX, CY): each split partitions the live side, and every leaf rectangle sits inside its branch's constraints.{X Y ι : Type} → [DecidableEq X] → [DecidableEq Y] → Finset X → Finset Y → KWLock.Protocol X Y ι → Prop - DefinitionKWLock.Protocol.brecOn.godef
{X Y ι : Type} → {motive : KWLock.Protocol X Y ι → Sort u} → (t : KWLock.Protocol X Y ι) → ((t : KWLock.Protocol X Y ι) → KWLock.Protocol.below t → motive t) → motive t ×' KWLock.Protocol.below t - DefinitionKWLock.Protocol.leavesdef
The leaves of a protocol tree.
{X Y ι : Type} → KWLock.Protocol X Y ι → List (KWLock.KRect X Y ι) - DefinitionKWLock.Realizesdef
trealizes the partitionPon(RX, CY): it follows the tree constraints and its leaves are exactly the members ofP.{X Y ι : Type} → [DecidableEq X] → [DecidableEq Y] → Finset X → Finset Y → List (KWLock.KRect X Y ι) → KWLock.Protocol X Y ι → Prop - DefinitionKWLock.RowConnecteddef
Row connectivity.
{X Y ι : Type} → List (KWLock.KRect X Y ι) → Prop - DefinitionKWLock.RowTouchdef
Two rectangles touch on rows when some row lies in both row sets.
{X Y ι : Type} → KWLock.KRect X Y ι → KWLock.KRect X Y ι → Prop - DefinitionKWLock.Spdef
The input space of the d-th iterate:
Sp 1is the base pattern space.ℕ → ℕ → Type
- DefinitionKWLock.TStepdef
One linkage step inside
P: the target is a member and the rectangles touch.{X Y ι : Type} → (KWLock.KRect X Y ι → KWLock.KRect X Y ι → Prop) → List (KWLock.KRect X Y ι) → KWLock.KRect X Y ι → KWLock.KRect X Y ι → Prop - DefinitionKWLock.TowerHypstructure
The base hypotheses of the tower: a valid, monochromatic, doubly-connected base partition with two distinct members, over a surjective base function.
(k : ℕ) → ((Fin k → Bool) → Bool) → List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k)) → Prop
- DefinitionKWLock.blockPatdef
The block pattern of a composed point: the vector of block outputs.
{k : ℕ} → {V : Fin k → Type} → ((i : Fin k) → V i → Bool) → ((i : Fin k) → V i) → Fin k → Bool - DefinitionKWLock.colSideSeldef
The column side of a block rectangle, in a given orientation.
{k : ℕ} → {V κ : Fin k → Type} → Bool → {a : Fin k} → KWLock.KRect (V a) (V a) (κ a) → Finset (V a) - DefinitionKWLock.compFundef
The composed function.
{k : ℕ} → {V : Fin k → Type} → ((i : Fin k) → V i → Bool) → ((Fin k → Bool) → Bool) → ((i : Fin k) → V i) → Bool - DefinitionKWLock.compPartitiondef
The product partition of the composed game.
{k : ℕ} → {V : Fin k → Type} → [(i : Fin k) → DecidableEq (V i)] → [(i : Fin k) → Fintype (V i)] → {κ : Fin k → Type} → ((i : Fin k) → V i → Bool) → List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k)) → ((i : Fin k) → List (KWLock.KRect (V i) (V i) (κ i))) → List (KWLock.KRect ((i : Fin k) → V i) ((i : Fin k) → V i) ((i : Fin k) × κ i)) - DefinitionKWLock.compRectdef
The composed rectangle: outer patterns from the outer rectangle, the active block constrained to the block rectangle's side in the outer orientation, other blocks free. The label is the physical coordinate; the orientation composes.
{k : ℕ} → {V : Fin k → Type} → [(i : Fin k) → DecidableEq (V i)] → [(i : Fin k) → Fintype (V i)] → {κ : Fin k → Type} → ((i : Fin k) → V i → Bool) → (Ro : KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k)) → KWLock.KRect (V Ro.label) (V Ro.label) (κ Ro.label) → KWLock.KRect ((i : Fin k) → V i) ((i : Fin k) → V i) ((i : Fin k) × κ i) - DefinitionKWLock.fAdef
The four-variable Ambainis function, in Ueno's ten-leaf form (truth table
0xd18b: exactly the monotone four-bit sequences evaluate to one).(Fin 4 → Bool) → Bool
- DefinitionKWLock.instDecidableCellOfDecidableEqdef
{X Y ι : Type} → [DecidableEq X] → [DecidableEq Y] → (r : KWLock.KRect X Y ι) → (x : X) → (y : Y) → Decidable (r.Cell x y) - DefinitionKWLock.instDecidableColTouchOfDecidableEqdef
{X Y ι : Type} → [DecidableEq Y] → (r s : KWLock.KRect X Y ι) → Decidable (KWLock.ColTouch r s) - DefinitionKWLock.instDecidableEqKRectdef
{X Y ι : Type} → [DecidableEq X] → [DecidableEq Y] → [DecidableEq ι] → DecidableEq (KWLock.KRect X Y ι) - DefinitionKWLock.instDecidableEqSpdef
(k d : ℕ) → DecidableEq (KWLock.Sp k d)
- DefinitionKWLock.instDecidableIsWalkdef
{X Y ι : Type} → (T : KWLock.KRect X Y ι → KWLock.KRect X Y ι → Prop) → [(r s : KWLock.KRect X Y ι) → Decidable (T r s)] → (w : List (KWLock.KRect X Y ι)) → Decidable (KWLock.IsWalk T w) - DefinitionKWLock.instDecidableRowTouchOfDecidableEqdef
{X Y ι : Type} → [DecidableEq X] → (r s : KWLock.KRect X Y ι) → Decidable (KWLock.RowTouch r s) - DefinitionKWLock.instFintypeSpdef
(k d : ℕ) → Fintype (KWLock.Sp k d)
- DefinitionKWLock.onesOfdef
The ones of a Boolean function, as a finite set.
{α : Type} → [Fintype α] → (α → Bool) → Finset α - DefinitionKWLock.pAdef
The witness partition.
List (KWLock.KRect (Fin 4 → Bool) (Fin 4 → Bool) (Fin 4))
- DefinitionKWLock.rA1def
The eight-rectangle base partition, found by exact search and re-verified by the kernel below: eight monochromatic rectangles of eight cells each, in mixed orientations.
KWLock.KRect (Fin 4 → Bool) (Fin 4 → Bool) (Fin 4)
- DefinitionKWLock.rA2def
KWLock.KRect (Fin 4 → Bool) (Fin 4 → Bool) (Fin 4)
- DefinitionKWLock.rA3def
KWLock.KRect (Fin 4 → Bool) (Fin 4 → Bool) (Fin 4)
- DefinitionKWLock.rA4def
KWLock.KRect (Fin 4 → Bool) (Fin 4 → Bool) (Fin 4)
- DefinitionKWLock.rA5def
KWLock.KRect (Fin 4 → Bool) (Fin 4 → Bool) (Fin 4)
- DefinitionKWLock.rA6def
KWLock.KRect (Fin 4 → Bool) (Fin 4 → Bool) (Fin 4)
- DefinitionKWLock.rA7def
KWLock.KRect (Fin 4 → Bool) (Fin 4 → Bool) (Fin 4)
- DefinitionKWLock.rA8def
KWLock.KRect (Fin 4 → Bool) (Fin 4 → Bool) (Fin 4)
- DefinitionKWLock.rowSideSeldef
The row side of a block rectangle, in a given orientation (the transposed side for the reversed orientation).
{k : ℕ} → {V κ : Fin k → Type} → Bool → {a : Fin k} → KWLock.KRect (V a) (V a) (κ a) → Finset (V a) - DefinitionKWLock.towerPdef
The tower of product partitions: depth 0 is the base partition; each next depth composes the base as the outer partition with the previous depth at every block.
(k : ℕ) → ((Fin k → Bool) → Bool) → List (KWLock.KRect (Fin k → Bool) (Fin k → Bool) (Fin k)) → (d : ℕ) → List (KWLock.KRect (KWLock.Sp k (d + 1)) (KWLock.Sp k (d + 1)) (KWLock.Lab k d)) - DefinitionKWLock.vvaldef
The valuation of an iterate point at a physical coordinate.
(k d : ℕ) → KWLock.Sp k (d + 1) → KWLock.Lab k d → Bool
- DefinitionKWLock.zerosOfdef
The zeros of a Boolean function, as a finite set.
{α : Type} → [Fintype α] → (α → Bool) → Finset α
Verification
- Replay
- accepted
- Axioms
- Classical.choiceQuot.soundpropext
- Statement identity
- not-applicable
- Substrate
- Lean 4 kernel v4.31.0
- Dictionary pin
- design-lab@5802df4 · initial
- Frozen export
- d7bd4a249109
- Verified
- 2026-09-24T00:00:00Z