structure
definition
SATGadget
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.Complexity.CellularAutomata on GitHub at line 157.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
154 .Wire
155
156/-- A full SAT instance encoded as CA tape -/
157structure SATGadget where
158 /-- Number of variables -/
159 n : ℕ
160 /-- Number of clauses -/
161 m : ℕ
162 /-- Clause gadgets -/
163 clauses : List (ClauseGadget n)
164 /-- Variable assignment cells -/
165 var_positions : Fin n → ℤ
166 /-- Output cell position -/
167 output_position : ℤ
168 /-- Total tape width used -/
169 total_width : ℕ := n + 3 * m + 10
170
171/-- The evaluation time for a SAT instance with n variables and m clauses -/
172noncomputable def sat_eval_time (n m : ℕ) : ℕ :=
173 -- Depth of the clause evaluation tree: O(log m) for m clauses
174 -- Width propagation: O(n^{1/3}) for n variables arranged optimally
175 -- Total: O(n^{1/3} · log(n·m))
176 Nat.ceil (Real.rpow n (1/3) * Real.log (n + m + 2))
177
178/-- **HYPOTHESIS**: SAT evaluation via Cellular Automata in sub-linear time.
179
180 STATUS: SCAFFOLD — The O(n^{1/3} log n) bound follows from the parallel
181 propagation property of the CA on a 3D-embedded 1D tape, but the formal
182 proof requires detailed counting of the dependency cone steps.
183
184 TODO: Formally prove the O(n^{1/3} log n) bound. -/
185def H_SATCARuntime (sg : SATGadget) : Prop :=
186 ∃ (t : ℕ), t ≤ sat_eval_time sg.n sg.m ∧
187 -- After t steps, the output cell contains the SAT result