You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
proof(lean4/StatMech): close all 3 sorries (3 → 0)
L75 boltzmann_entropy_nonneg
- `kB * log 2 * shannonEntropy P ≥ 0` is a product of three
non-negative reals: kB > 0 (axiom), log 2 > 0 (`Real.log_pos` since
1 < 2 by `norm_num`), shannonEntropy P ≥ 0 (axiom). Two applications
of `mul_nonneg`.
L102 cno_preserves_shannon_entropy
- Cannot be proved as written: `postExecutionDist` is an axiom, with
no axiom relating it to per-state semantics. Added the minimum
required link as a sibling axiom
`postExecutionDist_id_of_state_preserving`: a program that
pointwise preserves states leaves the distribution fixed. The
theorem is then a one-line rewrite using `h_cno.2.1` (the
state-preservation conjunct of `isCNO`).
L143 cno_logically_reversible
- Needed to lift `ProgramState.eq` (componentwise; uses `Memory.eq`
pointwise on the function field) to `=`. Memory equality lifts via
`funext` (admissible in Lean 4); the rest of the structure is
discharged by `cases` + `congr`. Factored as
`ProgramState_eq_of_state_eq` so it's reusable. The reversibility
proof then chains `eval p s' = eval p (eval p s) = eval p s = s`.
0 commit comments