pith. machine review for the scientific record. sign in
def

IsBalanced

definition
show as:
view math explainer →
module
IndisputableMonolith.Algebra.LedgerAlgebra
domain
Algebra
line
93 · github
papers citing
none yet

open explainer

Read the cached plain-language explainer.

open lean source

IndisputableMonolith.Algebra.LedgerAlgebra on GitHub at line 93.

browse module

All declarations in this module, on Recognition.

explainer page

A cached Ask Recognition explainer exists for this declaration.

open explainer

depends on

used by

formal source

  90  events.foldl (fun acc e => acc + e.flow) 0
  91
  92/-- A **balanced ledger page** has σ = 0. -/
  93def IsBalanced (page : LedgerPage) : Prop :=
  94  computeBalance page.events = 0
  95
  96/-- The empty page is balanced. -/
  97theorem empty_balanced : IsBalanced ⟨[], 0⟩ := by
  98  simp [IsBalanced, computeBalance]
  99
 100/-- **PROVED: Adding a paired event preserves balance.** -/
 101theorem paired_preserves_balance (page : LedgerPage)
 102    (h : IsBalanced page) (e : LedgerEvent) :
 103    IsBalanced ⟨page.events ++ [e, e.conj], 0⟩ := by
 104  rcases page with ⟨events, bal⟩
 105  simp [IsBalanced, computeBalance, List.foldl_append, LedgerEvent.conj] at h ⊢
 106  omega
 107
 108/-! ## §3. The Eight-Window Constraint -/
 109
 110/-- A **window** is a contiguous block of 8 events. -/
 111structure Window8 where
 112  /-- The 8 events in this window -/
 113  events : Fin 8 → LedgerEvent
 114
 115/-- The sum over a window. -/
 116def Window8.sum (w : Window8) : ℤ :=
 117  (Finset.univ.sum fun i => (w.events i).flow)
 118
 119/-- A window is **neutral** if its sum is zero. -/
 120def Window8.isNeutral (w : Window8) : Prop := w.sum = 0
 121
 122/-- **Construction: A neutral window from 4 paired events.** -/
 123def neutralWindow (e₁ e₂ e₃ e₄ : LedgerEvent) : Window8 where