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
GovActionDeposit
s and we compare that set of
deposits with the GovActionDeposit
s 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
VDeleg
s resulting from the application ofcredVoter
DRep
to the domain of thevoteDelegs
of aDState
contains the range of thevoteDelegs
of thatDState
. -
Chain.Properties.EpochStep: If
cs
⇀⦇
b
,CHAIN⦈
cs'
and if the enact states ofcs
andcs'
differ, then the epoch of the slot ofb
is the successor of the last epoch ofcs
. -
Epoch.Properties.ConstRwds: The
NEWEPOCH
rule leaves rewards unchanged. -
Epoch.Properties.NoPropSameDReps: If
es
is aNewEpochState
, and if theGovState
ofes
contains no governance proposals, then the set ofactiveDReps
ofes
inEpoch
e
is equal to the set ofactiveDReps
ofes
in the next epoch. -
Gov.Properties.ChangePPGroup:
PParam
updates have non-empty groups.