def
definition
compatible
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.Complexity.SAT.Backprop on GitHub at line 114.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
-
averageGap_eq -
pVsNPFromBITCert -
bp_step_sound -
clauseUnit_correct -
compatible_setVar -
getD_of_compat_isSome' -
known_lit_false'' -
knownParity_eq_parityOf_known' -
xorMissing_correct -
alphaLock_numerical_bounds -
observational_tests -
Normalization -
P_symmetric_from_F_symmetric -
RCL_unique_polynomial_form -
D3_compatible -
D_physical -
RSCompatibleDimension -
sync_implies_D3 -
why_D_equals_3 -
godel_not_obstruction -
equality_cost_satisfies_definitional_conditions -
lorentzEmergenceCert -
any_deviation_costs -
christoffel_symmetric -
fibonacci_ratio_recursion -
IsJCostCritical -
canonicalMeasureCount -
eight_tick_is_minimal -
no_shorter_cycle -
Q3_unique_linking_dimension -
concreteEulerLedgerOntologyInterface -
EulerInstantiationCert -
eulerRegularCarrier -
mkEulerInstantiationCert -
ledger_partition_equals_zeta -
Jcost_mellin_reflection -
phi_mul_inv -
re_nonneg_of_norm_cayley_le_one -
criticalReflection -
mass_display_calibration_of_external
formal source
111 evalCNF a φ = true ∧ satisfiesSystem a H
112
113/-- Compatibility: a partial assignment agrees with a total assignment on known bits. -/
114def compatible {n} (σ : PartialAssignment n) (a : Assignment n) : Prop :=
115 ∀ v, σ v = some (a v) ∨ σ v = none
116
117/-- If σ is compatible with a and we set v to (a v), the result is still compatible. -/
118lemma compatible_setVar {n} (σ : PartialAssignment n) (a : Assignment n) (v : Var n)
119 (hcompat : compatible σ a) :
120 compatible (setVar σ v (a v)) a := by
121 intro w
122 by_cases hwv : w = v
123 · subst hwv
124 left
125 simp [setVar_same]
126 · rw [setVar_ne σ v w (a v) hwv]
127 exact hcompat w
128
129/-!
130## Semantic Correctness for XOR Propagation
131
132The xorMissing function produces the correct value for a satisfying assignment.
133This is now a **proved theorem**, not an axiom.
134-/
135
136-- Helper lemmas for xorMissing_correct proof
137private lemma not_isSome_eq_isNone' {α : Type*} (o : Option α) : (!o.isSome) = o.isNone := by
138 cases o <;> rfl
139
140private lemma xor_comm_assoc' (a b c : Bool) : Bool.xor a (Bool.xor b c) = Bool.xor b (Bool.xor a c) := by
141 cases a <;> cases b <;> cases c <;> rfl
142
143private lemma xor_comm_cancel' (a b : Bool) : Bool.xor (Bool.xor b a) b = a := by
144 cases a <;> cases b <;> rfl