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

empty

definition
show as:
view math explainer →
module
IndisputableMonolith.RRF.Foundation.Ledger
domain
RRF
line
80 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.RRF.Foundation.Ledger on GitHub at line 80.

browse module

All declarations in this module, on Recognition.

explainer page

Tracked in the explainer inventory; generation is lazy so crawlers do not trigger LLM jobs.

open explainer

depends on

used by

formal source

  77namespace Ledger
  78
  79/-- The empty ledger. -/
  80def empty : Ledger := {
  81  transactions := [],
  82  total_debit := 0,
  83  total_credit := 0,
  84  global_balance := by omega
  85}
  86
  87/-- A singleton ledger. -/
  88def singleton (t : Transaction) : Ledger := {
  89  transactions := [t],
  90  total_debit := t.debit,
  91  total_credit := t.credit,
  92  global_balance := t.balanced
  93}
  94
  95/-- Append a transaction to a ledger. -/
  96def append (L : Ledger) (t : Transaction) : Ledger := {
  97  transactions := L.transactions ++ [t],
  98  total_debit := L.total_debit + t.debit,
  99  total_credit := L.total_credit + t.credit,
 100  global_balance := by
 101    have hL := L.global_balance
 102    have ht := t.balanced
 103    omega
 104}
 105
 106/-- The net balance of a ledger (should always be 0). -/
 107def net (L : Ledger) : ℤ := L.total_debit + L.total_credit
 108
 109/-- Ledger net is always zero. -/
 110theorem net_zero (L : Ledger) : L.net = 0 := L.global_balance