pith. machine review for the scientific record. sign in
def

sat_eval_time

definition
show as:
view math explainer →
module
IndisputableMonolith.Complexity.CellularAutomata
domain
Complexity
line
172 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.Complexity.CellularAutomata on GitHub at line 172.

browse module

All declarations in this module, on Recognition.

explainer page

Tracked in the explainer inventory; generation is lazy so crawlers do not trigger LLM jobs.

open explainer

depends on

used by

formal source

 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
 188  IsCorrectSATResult sg t -- SCAFFOLD: IsCorrectSATResult is not yet defined.
 189
 190-- axiom h_sat_ca_runtime : ∀ sg, H_SATCARuntime sg
 191
 192/-! ## CA → TM Simulation -/
 193
 194/-- A Turing Machine simulating the CA -/
 195structure TMSimulator where
 196  /-- Number of CA steps to simulate -/
 197  ca_steps : ℕ
 198  /-- Tape size (number of cells) -/
 199  tape_size : ℕ
 200  /-- TM time per CA step (linear in tape size) -/
 201  time_per_step : ℕ := tape_size
 202