Properties
Properties¶
This section presents the properties of the ledger that we have formally proved in Agda or plan to do so in the near future. We indicate in which Agda module each property is formally stated and (possibly) proved. A "Claim" is a property that is not yet proved, while a "Theorem" is one for which we have a formal proof.
Preservation of Value¶
There are several "preservation of value" proofs throughout this formal specificaition. These can be found in the following modules:
Invariance Properties¶
To say that a predicate P is an invariant of a transition rule
R means the following: if the rule R relates states
s and s' and if P holds at state
s, then P holds at state s'.
Examples of invariance properties are found in
Matching Governance Action Deposits¶
ChainGovDepsMatch, LedgerGovDepsMatch, and EpochGovDepsMatch
assert that a certain predicate is an invariant of the CHAIN,
LEDGER, and EPOCH rules, respectively.
Given a ledger state s, we focus on deposits in the
UTxOState of s that are
GovActionDeposits and we compare that set of
deposits with the GovActionDeposits of the
GovState of s.
When these two sets are the same, we write
govDepsMatch s and say the
govDepsMatch relation holds for s.
The formal definition of govDepsMatch is given
in Ledger.Properties.
The assertion, "the govDepsMatch relation is an invariant of the
LEDGER rule," means the following:
if govDepsMatch s and
s ⇀⦇ tx ,LEDGER⦈ s',
then govDepsMatch s'.
The following are examples of this assertion:
Minimum Spending Conditions¶
A minimum spending condition is proved in Utxo.Properties.MinSpend.
Other Miscellaneous Properties¶
-
Certs.Properties.VoteDelegsVDeleg: The set of
VDelegs resulting from the application ofcredVoterDRepto the domain of thevoteDelegsof aDStatecontains the range of thevoteDelegsof thatDState. -
Chain.Properties.EpochStep: If
cs⇀⦇b,CHAIN⦈cs'and if the enact states ofcsandcs'differ, then the epoch of the slot ofbis the successor of the last epoch ofcs. -
Epoch.Properties.ConstRwds: The
NEWEPOCHrule leaves rewards unchanged. -
Epoch.Properties.NoPropSameDReps: If
esis aNewEpochState, and if theGovStateofescontains no governance proposals, then the set ofactiveDRepsofesinEpocheis equal to the set ofactiveDRepsofesin the next epoch. -
Gov.Properties.ChangePPGroup:
PParamupdates have non-empty groups.