lemma
proved
post_monotone
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.LedgerPostingAdjacency on GitHub at line 664.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
661
662/-! ### Posting steps satisfy `LegalAtomicTick` (and conversely, by `legalAtomicTick_implies_PostingStep`) -/
663
664private lemma post_monotone {d : Nat} (L : LedgerState d) (k : Fin d) (side : Side) :
665 MonotoneLedger (d := d) L (post L k side) := by
666 classical
667 cases side with
668 | debit =>
669 refine ⟨?_, ?_⟩
670 · intro i
671 by_cases hik : i = k
672 · subst hik
673 simp [post]
674 · simp [post, hik]
675 · intro i
676 simp [post]
677 | credit =>
678 refine ⟨?_, ?_⟩
679 · intro i
680 simp [post]
681 · intro i
682 by_cases hik : i = k
683 · subst hik
684 simp [post]
685 · simp [post, hik]
686
687private lemma ledgerL1Cost_post {d : Nat} (L : LedgerState d) (k : Fin d) (side : Side) :
688 ledgerL1Cost (d := d) L (post L k side) = 1 := by
689 classical
690 cases side with
691 | debit =>
692 -- debit changes by +1 at k; credit unchanged
693 have hdebit :
694 (∑ i : Fin d, Int.natAbs ((post L k Side.debit).debit i - L.debit i)) = 1 := by