PartialAssignment
plain-language theorem explainer
PartialAssignment n is the function type from variable indices Fin n to Option Bool, encoding partial truth assignments where none marks undetermined bits. Researchers modeling unit propagation in SAT solvers with XOR clauses cite this type when building backpropagation states. The declaration is a direct type abbreviation with no computational body.
Claim. Let $V_n = Fin n$. A partial assignment over $n$ variables is any function $σ : V_n → Option(ℬ)$, where $Option(ℬ)$ distinguishes determined truth values from undetermined ones.
background
The module works inside the SAT backpropagation setting over CNF instances that may contain XOR clauses. CNF is the structure whose clauses field holds a list of clauses; each clause is a list of literals over variables. Var n is the abbreviation Fin n, supplying the finite index set for the $n$ variables of a given instance.
proof idea
The declaration is a direct type abbreviation equating PartialAssignment n to the function type Var n → Option Bool.
why it matters
BPState stores an instance of this type in its assign field; clauseUnit, compatible, and clauseUnit_correct all take PartialAssignment arguments to implement propagation and consistency. It supplies the state representation required for the backpropagation algorithm in the module's SAT solver. No open scaffolding is closed here.
Switch to Lean above to see the machine-checked source, dependencies, and usage graph.