Browse the Agda code in HTML here.
This Agda formalization depends on formal-prelude, make sure you have it installed.
Various design decisions are modelled in each sub-directory, answering the following dilemmas:
-
Shallow or deep embedding of states?
- i.e.
S : Part → ℕ
orS : Map⟨ Part → ℕ ⟩
- i.e.
-
Shallow or deep embedding of logic formulas?
- i.e.
P : S → Set
ordata P : Set where ...
- i.e.
-
Shallow or deep embedding of Hoare triples?
- i.e.
{P}l{Q} = ∀ s. P(s) → Q(⟦l⟧s)
ordata {P}l{Q} where ...
- i.e.
-
Separate at the level of participants or values?
- i.e.
s₁ ⊎ s₂ ≈ s
ors₁ ◇ s₂ ≈ s
- i.e.
-
Can we easily extend everything from simple linear ledgers to UTxO-based ledgers?