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

polynomial_time_3sat_algorithm

proved
show as:
view math explainer →
module
IndisputableMonolith.Complexity.SAT.Completeness
domain
Complexity
line
185 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.Complexity.SAT.Completeness on GitHub at line 185.

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

formal source

 182    (∀ φ, Satisfiable φ → ∃ x, alg φ = some x ∧ evalCNF x φ = true) ∧
 183    (∀ φ, ¬Satisfiable φ → alg φ = none)
 184
 185theorem polynomial_time_3sat_algorithm (n : Nat)
 186    (h : polynomial_time_3sat_algorithm_hypothesis n) :
 187    ProgramTarget n →
 188    ∃ (alg : CNF n → Option (Assignment n)),
 189      (∀ φ, Satisfiable φ → ∃ x, alg φ = some x ∧ evalCNF x φ = true) ∧
 190      (∀ φ, ¬Satisfiable φ → alg φ = none) :=
 191  h
 192
 193/-- Backpropagation succeeds when there is a unique solution under XOR constraints.
 194This is a semantic existence result that does not rely on a specific step system. -/
 195theorem backprop_succeeds_of_unique {n} (φ : CNF n) (H : XORSystem n)
 196    (huniq : UniqueSolutionXOR { φ := φ, H := H }) :
 197    BackpropSucceeds φ H := by
 198  intro s0
 199  rcases huniq with ⟨x, hx, _uniq⟩
 200  refine ⟨completeStateFrom x, ?hcomp, ?hcons⟩
 201  · exact complete_completeStateFrom x
 202  · rcases hx with ⟨hxφ, hxH⟩
 203    exact consistent_completeStateFrom x φ H hxφ hxH
 204
 205/-- PC ⇒ backpropagation succeeds (via uniqueness).
 206Note: with the current abstract step semantics, uniqueness alone suffices for success.
 207PC becomes relevant once a concrete BPStep is connected to semantic forcing. -/
 208theorem backprop_succeeds_from_PC {n}
 209    (inputs : Finset (Var n)) (aRef : Assignment n) (φ : CNF n) (H : XORSystem n)
 210    (_hpc : PC inputs aRef φ H)
 211    (huniq : UniqueSolutionXOR { φ := φ, H := H }) :
 212    BackpropSucceeds φ H :=
 213  backprop_succeeds_of_unique φ H huniq
 214
 215end SAT