IndisputableMonolith.Complexity.SAT.Backprop
This module defines partial assignments and backpropagation states for SAT problems over CNF and XOR constraints. Researchers in formal SAT solving and Recognition Science complexity would cite it when building completeness arguments. It supplies the type definitions and update operations needed to track undetermined variables. The module is purely definitional with no theorems or proofs.
claimA partial assignment is a map from variables (indices in Fin n) to Option Bool, with none denoting an unknown value and some b a determined Boolean. BPState aggregates these assignments together with clause and XOR evaluations for incremental backpropagation steps.
background
The module imports the CNF setting in which variables are indexed by Fin n for a fixed problem size and the XOR setting that encodes parity constraints over subsets of those variables. It introduces PartialAssignment to represent incomplete knowledge during search, with the explicit convention that none stands for undetermined and some b for a fixed Boolean. BPState and the associated update functions (setVar and evaluation helpers) then track how partial information propagates through clauses and XORs.
proof idea
this is a definition module, no proofs
why it matters in Recognition Science
The definitions supplied here are imported by the Completeness module, which constructs a fully-determined backpropagation state from any total assignment. This supplies the partial-assignment layer required for the SAT completeness argument in the Recognition Science framework.
scope and limits
- Does not implement a complete SAT decision procedure.
- Does not prove any soundness or termination properties.
- Does not reference the phi-ladder, forcing chain, or physical constants.
- Does not handle continuous or real-valued variables.
used by (1)
depends on (2)
declarations in this module (31)
-
abbrev
PartialAssignment -
structure
BPState -
def
setVar -
lemma
setVar_same -
lemma
setVar_ne -
def
valueOfLit -
def
valueOfClause -
def
valueOfXOR -
def
xorMissing -
def
clauseUnit -
inductive
BPStep -
def
complete -
def
consistent -
def
compatible -
lemma
compatible_setVar -
lemma
not_isSome_eq_isNone' -
lemma
xor_comm_assoc' -
lemma
xor_comm_cancel' -
lemma
parityOf_filter_split' -
lemma
getD_of_compat_isSome' -
lemma
knownParity_eq_parityOf_known' -
lemma
list_singleton_of_length_one' -
theorem
xorMissing_correct -
lemma
not_isSome_iff_isNone' -
lemma
singleton_eq_get_zero' -
lemma
mem_zip_of_getElem' -
lemma
known_lit_false'' -
theorem
clauseUnit_correct -
lemma
bp_step_sound -
lemma
bp_step_monotone -
def
BackpropSucceeds