OAI/Computability/UniqueGames/Games/ProductTarget.lean
23 declarations, 0 contain sorry, 0 declared as axioms
Explicit numbered permutation-table outputs for bipartite graphs and products. All numbering maps are supplied as actual equivalences; the product uses the computable radix equivalence with division/remainder inverse, never an arbitrary finite-type enumeration. The value bridge preserves every list occurrence.
- def
OAI.UniqueGamesTheorem.Explicit.ProductTarget.fullTableline 26Source documentation
Full forward and inverse tables of an explicit finite permutation.
def fullTable (p : Equiv.Perm (Fin q)) : PermutationTable q where …
- theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.fullTable_imagesline 32 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.permutationEquiv_fullTableline 35 - def
OAI.UniqueGamesTheorem.Explicit.ProductTarget.rowline 41Source documentation
One explicitly addressed row, with a separately supplied complete table.
def row (G : BipartiteGame L R E (Fin q)) (vertices : (L ⊕ R) ≃ Fin N) (edges : Fin M ≃ E) (tables : E → PermutationTable q) (i : Fin M) : Constraint N q where … - def
OAI.UniqueGamesTheorem.Explicit.ProductTarget.renderline 48 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.render_lengthline 59 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.render_getline 65 - def
OAI.UniqueGamesTheorem.Explicit.ProductTarget.render_simpleBipartiteline 74 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.render_countline 103Source documentation
A full vertex labeling pulls back to two independently local labelings.
theorem render_count (G : BipartiteGame L R E (Fin q)) (vertices : (L ⊕ R) ≃ Fin N) (edges : Fin M ≃ E) (tables : E → PermutationTable q) (hM : 0 < M) (htable : ∀ e, permutationEquiv (tables e) = G.permutation e) (labeling : Fin N → Fin q) : countSatisfied labeling (render G vertices edges tables hM).constraints = G.satisfiedCount (fun x => labeling (vertices (Sum.inl x))) (fun y => labeling (vertices (Sum.inr y))) := by …Mentions: OAI.UniqueGamesTheorem.Explicit.BipartiteGame, OAI.UniqueGamesTheorem.Explicit.ProductTarget.render
- def
OAI.UniqueGamesTheorem.Explicit.ProductTarget.mergeLabelingsline 121 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.mergeLabelings_leftline 125 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.mergeLabelings_rightline 130 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.render_count_mergeline 135 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.render_maxSatisfiedline 147 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.render_valueline 167 - def
OAI.UniqueGamesTheorem.Explicit.ProductTarget.tuplesline 181Source documentation
The product order is increasing radix address, with coordinate zero the least significant digit. The inverse computes each digit by division/modulo.
def tuples (n t : ℕ) : List (Fin t → Fin n) := …
- theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.tuples_lengthline 184 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.tuples_memline 187 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.tuples_nodupline 191 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.tuples_getline 194 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.tuple_addressline 199 - theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.address_eq_ofDigitsline 205Source documentation
The explicit address and
ofDigitsshare the same least-significant-first coordinate order, with no restriction on the radix beyond the digit type.theorem address_eq_ofDigits {n t : ℕ} (f : Fin t → Fin n) : (finFunctionFinEquiv f : ℕ) = Nat.ofDigits n (List.ofFn (fun i => (f i : ℕ))) := by … - theorem
OAI.UniqueGamesTheorem.Explicit.ProductTarget.address_eq_hornerline 218Source documentation
A forward Horner controller reads the coordinate words in reverse order. This is a word-order identity, separate from its machine execution theorem.
theorem address_eq_horner {n t : ℕ} (f : Fin t → Fin n) : (finFunctionFinEquiv f : ℕ) = (List.ofFn (fun i => (f i : ℕ))).reverse.foldl (fun acc digit => n * acc + digit) 0 := by …