IndisputableMonolith.Complexity.SAT.Backprop
This module defines partial assignments and backpropagation states for SAT instances that combine CNF clauses with XOR parity constraints. It supplies update operations and evaluation functions that track determined values under incomplete information. Completeness arguments in the SAT development cite these structures to propagate assignments from total solutions. The module consists entirely of definitions and basic supporting lemmas built on the CNF and XOR foundations.
claimA partial assignment over $n$ variables is a map from Fin $n$ to Option Bool. The backpropagation state tracks determined values for a CNF formula together with an XOR constraint set, with operations to set a variable and to evaluate literals, clauses, and parity expressions.
background
The module sits inside the SAT complexity layer of Recognition Science and imports variable indexing from the CNF module, where variables are elements of Fin n for a problem of size n. It also imports the XOR module, whose constraints require that the parity of a designated subset equals a fixed parity bit. PartialAssignment encodes incomplete knowledge by mapping each variable to none when unknown and to some b when its boolean value has been fixed. The sibling definitions then supply setVar for updating the assignment, valueOfLit for literal evaluation, valueOfClause for clause satisfaction, and valueOfXOR for parity checks.
proof idea
This is a definition module, no proofs.
why it matters in Recognition Science
The structures supply the assignment-propagation layer required by the Completeness module, which constructs fully-determined backpropagation states from total assignments. This placement supports the SAT completeness argument inside the Recognition framework by furnishing the concrete mechanism that turns partial information into determined values for both CNF and XOR constraints.
scope and limits
- Does not implement a full SAT solver or search procedure.
- Does not handle constraints outside CNF clauses and XOR parities.
- Does not address counting, optimization, or approximate solving.
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