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

ledger_cost

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

open explainer

Read the cached plain-language explainer.

open lean source

IndisputableMonolith.Foundation.LedgerForcing on GitHub at line 89.

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

  86  double_entry : balanced_list events
  87
  88/-- The total cost of a ledger. -/
  89noncomputable def ledger_cost (L : Ledger) : ℝ :=
  90  L.events.foldl (fun acc e => acc + event_cost e) 0
  91
  92/-- A ledger is balanced if its event list is balanced. -/
  93def balanced (L : Ledger) : Prop := balanced_list L.events
  94
  95/-- Every Ledger is balanced by construction. -/
  96theorem ledger_balanced (L : Ledger) : balanced L := L.double_entry
  97
  98/-- The net flow at an agent. -/
  99noncomputable def net_flow (L : Ledger) (agent : ℕ) : ℝ :=
 100  L.events.foldl (fun acc e =>
 101    if e.source = agent then acc + Real.log e.ratio
 102    else if e.target = agent then acc + Real.log e.ratio
 103    else acc) 0
 104
 105/-! ## The Empty Ledger -/
 106
 107/-- The empty ledger: no events. -/
 108def empty_ledger : Ledger := {
 109  events := []
 110  double_entry := fun _ => by simp [List.count_nil]
 111}
 112
 113/-- The empty ledger is balanced. -/
 114theorem empty_ledger_balanced : balanced empty_ledger := empty_ledger.double_entry
 115
 116/-- The empty ledger has zero cost. -/
 117theorem empty_ledger_cost : ledger_cost empty_ledger = 0 := by simp [ledger_cost, empty_ledger]
 118
 119/-- The empty ledger has zero net flow. -/