def
definition
event_cost
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.Foundation.LedgerForcing on GitHub at line 70.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
-
reciprocal -
of -
of -
reciprocal -
RecognitionEvent -
cost -
cost -
RecognitionEvent -
of -
of -
RecognitionEvent -
of -
Cost
used by
formal source
67 · intro h; rw [h]
68
69/-- The cost of a recognition event. -/
70noncomputable def event_cost (e : RecognitionEvent) : ℝ := J e.ratio
71
72/-- **Reciprocity**: Cost of event equals cost of reciprocal. -/
73theorem reciprocity (e : RecognitionEvent) : event_cost e = event_cost (reciprocal e) := by
74 simp only [event_cost, reciprocal]
75 exact J_symmetric e.ratio_pos.ne'
76
77/-! ## Ledger Structure -/
78
79/-- A list of events is balanced if every event is paired with its reciprocal. -/
80def balanced_list (l : List RecognitionEvent) : Prop :=
81 ∀ e, l.count e = l.count (reciprocal e)
82
83/-- A ledger is a collection of recognition events with double-entry constraint. -/
84structure Ledger where
85 events : List RecognitionEvent
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 =>