EpochStep
Claim (New enact state only if new epoch).
Informally.
Let cs
and cs'
be ChainState
s
and b
a Block
.
If cs
⇀⦇
b
,CHAIN⦈
cs'
and
if the enact states of cs
and cs'
differ, then
the epoch of the slot of b
is the successor of the last epoch of cs
.
Formally.
enact-change⇒newEpoch : (b : Block) {cs cs' : ChainState} → _ ⊢ cs ⇀⦇ b ,CHAIN⦈ cs' → EnactStateOf cs ≢ EnactStateOf cs' → Type enact-change⇒newEpoch b {cs} h es≢es' = epoch (b .slot) ≡ sucᵉ (LastEpochOf cs)
Proof. (coming soon)