OAI/Computability/WLIdentification/FiniteRefinement.lean
31 declarations, 0 contain sorry, 0 declared as axioms
- theorem
OAI.WLIdentification.FiniteRefinement.map_eq_of_kernelline 10Source documentation
Only equality kernels matter; no full color trees need be stored.
theorem map_eq_of_kernel {A B C : Type} (f : A → B) (g : A → C) (L M : Multiset A) (h : ∀ a b, f a = f b → g a = g b) (he : L.map f = M.map f) : L.map g = M.map g := by … - theorem
OAI.WLIdentification.FiniteRefinement.map_eq_iff_kernelline 19 - def
OAI.WLIdentification.FiniteRefinement.KernelEqline 26 - def
OAI.WLIdentification.FiniteRefinement.kernelline 28 - theorem
OAI.WLIdentification.FiniteRefinement.kernel_eq_iffline 31 - theorem
OAI.WLIdentification.FiniteRefinement.kernel_step_subsetline 42 - theorem
OAI.WLIdentification.FiniteRefinement.exists_adjacentline 51Source documentation
A descending Boolean relation on N objects must settle by N² rounds. This coarse bound avoids an implicit unit-cost operation on full color names.
theorem exists_adjacent (h : ∀ s a b, color (s+1) a = color (s+1) b → color s a = color s b) : ∃ s ≤ Fintype.card A ^ 2, KernelEq color s (s+1) := by … - theorem
OAI.WLIdentification.FiniteRefinement.KernelEq.reflline 73 - theorem
OAI.WLIdentification.FiniteRefinement.KernelEq.symmline 76 - theorem
OAI.WLIdentification.FiniteRefinement.KernelEq.transline 80 - theorem
OAI.WLIdentification.FiniteRefinement.earlierline 88 - theorem
OAI.WLIdentification.FiniteRefinement.stable_tailline 96 - theorem
OAI.WLIdentification.FiniteRefinement.cutoffline 107Source documentation
The one stored Boolean relation after the explicit cutoff decides equality at every refinement depth, including all later rounds.
theorem cutoff (a b : A) (s : ℕ) : color (Fintype.card A ^ 2) a = color (Fintype.card A ^ 2) b → color s a = color s b := by … - theorem
OAI.WLIdentification.FiniteRefinement.histogram_cutoffline 121 - theorem
OAI.WLIdentification.FiniteRefinement.successor_kernelline 132Source documentation
Equality of replacement-vector histograms is determined by the old kernel, so the same stored relation supports ordinary and joint tuple updates.
theorem successor_kernel {I : Type} (N : A → Multiset (I → A)) (hupdate : ∀ s a b, color (s+1) a = color (s+1) b ↔ color s a = color s b ∧ (N a).map (fun v i => color s (v i)) = (N b).map (fun v i => color s (v i))) : ∀ s t, KernelEq color s t → KernelEq color (s+1) (t+1) := by … - theorem
OAI.WLIdentification.FiniteRefinement.successor_kernel_scalarline 148 - def
OAI.WLIdentification.FiniteWL.neighborline 162 - def
OAI.WLIdentification.FiniteWL.neighborsline 165 - theorem
OAI.WLIdentification.FiniteWL.neighbor_updateline 169 - theorem
OAI.WLIdentification.FiniteWL.neighbor_cutoffline 178 - def
OAI.WLIdentification.FiniteWL.tupleline 193 - def
OAI.WLIdentification.FiniteWL.vectorsline 197 - theorem
OAI.WLIdentification.FiniteWL.tuple_updateline 203 - theorem
OAI.WLIdentification.FiniteWL.tuple_cutoffline 214 - theorem
OAI.WLIdentification.FiniteWL.equivalent_cutoffline 231Source documentation
Explicit finite stopping criteria, retaining neighbor refinement precisely at k=1.
theorem equivalent_cutoff (G H : Graph) (k : ℕ) : Equivalent k G H ↔ if k = 1 then neighborHistogram G ((G.order+H.order)^2) = neighborHistogram H ((G.order+H.order)^2) else tupleHistogram G k ((G.order^k+H.order^k)^2) = tupleHistogram H k ((G.order^k+H.order^k)^2) := by …Mentions: OAI.WLIdentification.Graph, OAI.WLIdentification.Equivalent, OAI.WLIdentification.neighborHistogram, OAI.WLIdentification.tupleHistogram
- theorem
OAI.WLIdentification.FiniteRefinement.map_eq_iff_countsline 247Source documentation
Image multiset equality is checked by finite class counts; there is no unit-cost comparison of recursively expanded color trees.
theorem map_eq_iff_counts {A C : Type} [DecidableEq C] (f : A → C) (L M : Multiset A) : L.map f = M.map f ↔ ∀ a, L.countP (fun b => f b = f a) = M.countP (fun b => f b = f a) := by … - def
OAI.WLIdentification.FiniteRefinement.vectorMatchline 267 - def
OAI.WLIdentification.FiniteRefinement.tableStepline 270 - theorem
OAI.WLIdentification.FiniteRefinement.tableStep_correctline 277Source documentation
Reusable correctness of a table update, including the joint vector test.
theorem tableStep_correct {C D : Type} [DecidableEq C] (old : A → C) (next : A → D) (N : A → Multiset (I → A)) (R : A → A → Bool) (hR : ∀ a b, R a b = true ↔ old a = old b) (hnext : ∀ a b, next a = next b ↔ old a = old b ∧ (N a).map (fun v i => old (v i)) = (N b).map (fun v i => old (v i))) (a b : A) : tableStep N R a b = true ↔ next a = next b := by … - def
OAI.WLIdentification.FiniteRefinement.tableline 294Source documentation
Literal finite Boolean relation iteration.
def table (N : A → Multiset (I → A)) (initial : A → A → Bool) (rounds : ℕ) : A → A → Bool := …
Mentions: OAI.WLIdentification.initial
- theorem
OAI.WLIdentification.FiniteRefinement.table_correctline 298