@@ -190,9 +190,9 @@ WellformedLState s = certDepositsC (C.LState.certState s) ≡ᵈ certDeposits (c
190
190
191
191
getValidCertDepositsCERTS : ∀ {Γ s certs s'} deposits (open L.CertEnv Γ using (pp))
192
192
→ certDepositsC s ≡ᵈ (certDDeps deposits , certGDeps deposits)
193
- → ReflexiveTransitiveClosure {sts = C._⊢_⇀⦇_,CERT⦈_} Γ s certs s'
193
+ → Γ C.⊢ s ⇀⦇ certs ,CERTS⦈ s'
194
194
→ L.ValidCertDeposits pp deposits certs
195
- getValidCertDepositsCERTS deposits wf (BS-base Id-nop ) = L.[]
195
+ getValidCertDepositsCERTS deposits wf (BS-base _ ) = L.[]
196
196
getValidCertDepositsCERTS {Γ} {s} {cert ∷ _} deposits wf (BS-ind (C.CERT-deleg (C.DELEG-delegate (a , b))) rs) =
197
197
L.delegate (getValidCertDepositsCERTS _ (lemUpdCert (L.CertEnv.pp Γ) (certDepositsC s) deposits cert wf) rs)
198
198
getValidCertDepositsCERTS {Γ} {s} {cert ∷ _} deposits wf (BS-ind (C.CERT-deleg (C.DELEG-dereg (_ , h , h'))) rs) =
@@ -212,20 +212,6 @@ getValidCertDepositsCERTS {Γ} {s} {cert ∷ _} deposits wf (BS-ind (C.CERT-vdel
212
212
getValidCertDepositsCERTS {Γ} {s} {cert ∷ _} deposits wf (BS-ind (C.CERT-vdel (C.GOVCERT-ccreghot x)) rs) =
213
213
L.ccreghot(getValidCertDepositsCERTS _ (lemUpdCert (L.CertEnv.pp Γ) (certDepositsC s) deposits cert wf) rs)
214
214
215
- getValidCertDepositsC : ∀ Γ s {s'} tx
216
- → (let open C.LEnv Γ using (pparams; slot; enactState)
217
- open TxBody (tx .Tx.body) using (txcerts; txvote; txwdrls)
218
- open C.LState s
219
- open C.UTxOState utxoSt using (deposits)
220
- cc = C.allColdCreds govSt enactState
221
- )
222
- → WellformedLState s
223
- → isValid tx ≡ true
224
- → ⟦ epoch slot , pparams , txvote , txwdrls , cc ⟧ C.⊢ certState ⇀⦇ txcerts ,CERTS⦈ s'
225
- → L.ValidCertDeposits pparams deposits txcerts
226
- getValidCertDepositsC Γ s tx wf refl (RTC (C.CERT-base _ , step)) =
227
- getValidCertDepositsCERTS (C.UTxOState.deposits (C.LState.utxoSt s)) wf step
228
-
229
215
lemUtxowDeposits : ∀ {Γ s s' tx}
230
216
(let open C.UTxOEnv Γ using (pparams))
231
217
→ isValid tx ≡ true
@@ -254,7 +240,7 @@ instance
254
240
open C.UTxOState utxoSt using (deposits)
255
241
256
242
valid-deps : L.ValidCertDeposits pparams deposits txcerts
257
- valid-deps = getValidCertDepositsC Γ s tx wf refl certs
243
+ valid-deps = getValidCertDepositsCERTS (C.UTxOState.deposits (C.LState.utxoSt s)) wf certs
258
244
259
245
utxow' : _ L.⊢ utxoSt ⇀⦇ tx ,UTXOW⦈ (setDeposits (utxowDeposits utxow) utxoSt')
260
246
utxow' = inj₂ valid-deps ⊢conv utxow
@@ -270,9 +256,9 @@ instance
270
256
open IsEquivalence ≡ᵈ-isEquivalence renaming (refl to ≡ᵈ-refl; sym to ≡ᵈ-sym; trans to ≡ᵈ-trans)
271
257
272
258
lemCERTS'DepositsC : ∀ {Γ s dcerts s'} (open C.CertEnv Γ using (pp))
273
- → ReflexiveTransitiveClosure {sts = C._⊢_⇀⦇_,CERT⦈_} Γ s dcerts s'
259
+ → C._⊢_⇀⦇_,CERTS⦈_ Γ s dcerts s'
274
260
→ certDepositsC s' ≡ ⟨ updateDDeps pp dcerts , updateGDeps pp dcerts ⟩ (certDepositsC s)
275
- lemCERTS'DepositsC (BS-base Id-nop) = refl
261
+ lemCERTS'DepositsC (BS-base (C._⊢_⇀⦇_,CERTBASE⦈_.CERT-base _)) = refl
276
262
lemCERTS'DepositsC (BS-ind (C.CERT-deleg (C.DELEG-delegate _)) rs) = lemCERTS'DepositsC rs
277
263
lemCERTS'DepositsC (BS-ind (C.CERT-deleg (C.DELEG-dereg _)) rs) = lemCERTS'DepositsC rs
278
264
lemCERTS'DepositsC (BS-ind (C.CERT-deleg (C.DELEG-reg _)) rs) = lemCERTS'DepositsC rs
@@ -282,11 +268,6 @@ lemCERTS'DepositsC (BS-ind (C.CERT-vdel (C.GOVCERT-regdrep _)) rs) = lemCERTS'
282
268
lemCERTS'DepositsC (BS-ind (C.CERT-vdel (C.GOVCERT-deregdrep _)) rs) = lemCERTS'DepositsC rs
283
269
lemCERTS'DepositsC (BS-ind (C.CERT-vdel (C.GOVCERT-ccreghot _)) rs) = lemCERTS'DepositsC rs
284
270
285
- lemCERTSDepositsC : ∀ {Γ s txcerts s'} (open C.CertEnv Γ using (pp))
286
- → Γ C.⊢ s ⇀⦇ txcerts ,CERTS⦈ s'
287
- → certDepositsC s' ≡ ⟨ updateDDeps pp txcerts , updateGDeps pp txcerts ⟩ (certDepositsC s)
288
- lemCERTSDepositsC (RTC (C.CERT-base _ , step)) = lemCERTS'DepositsC step
289
-
290
271
lemWellformed : ∀ {Γ s tx s'} → WellformedLState s → Γ C.⊢ s ⇀⦇ tx ,LEDGER⦈ s' → WellformedLState s'
291
272
lemWellformed {Γ} {s = ls} {tx} {s' = ls'} wf (C.LEDGER-V⋯ refl utxo certs gov) = goal
292
273
where
@@ -310,7 +291,7 @@ lemWellformed {Γ} {s = ls} {tx} {s' = ls'} wf (C.LEDGER-V⋯ refl utxo certs go
310
291
lem rewrite lemDepositsC utxo = refl
311
292
312
293
lem₁ : (ddeps' , gdeps') ≡ (updateDDeps pparams txcerts ddeps , updateGDeps pparams txcerts gdeps)
313
- lem₁ = lemCERTSDepositsC certs
294
+ lem₁ = lemCERTS'DepositsC certs
314
295
315
296
lem₂ : (updateDDeps pparams txcerts (certDDeps deposits) , updateGDeps pparams txcerts (certGDeps deposits))
316
297
≡ᵈ (certDDeps deposits' , certGDeps deposits')
@@ -342,9 +323,10 @@ updateCDep pp cert (ddep , gdep) = updateDDep pp cert ddep , updateGDep pp cert
342
323
opaque
343
324
castCERTS' : ∀ {Γ certs} {s s' : L.CertState} deps₁ deps₂ deps₁'
344
325
→ deps₁ ≡ᵈ deps₂
345
- → Γ ⊢ deps₁ ⊢conv s ⇀⦇ certs ,CERTS'⦈ (deps₁' ⊢conv s')
346
- → ∃[ deps₂' ] deps₁' ≡ᵈ deps₂' × Γ ⊢ deps₂ ⊢conv s ⇀⦇ certs ,CERTS'⦈ (deps₂' ⊢conv s')
347
- castCERTS' deps₁ deps₂ deps₁' eqd (BS-base Id-nop) = deps₂ , eqd , BS-base Id-nop
326
+ → Γ C.⊢ deps₁ ⊢conv s ⇀⦇ certs ,CERTS⦈ (deps₁' ⊢conv s')
327
+ → ∃[ deps₂' ] deps₁' ≡ᵈ deps₂' × Γ C.⊢ deps₂ ⊢conv s ⇀⦇ certs ,CERTS⦈ (deps₂' ⊢conv s')
328
+ castCERTS' deps₁ deps₂ deps₁' eqd (BS-base (C._⊢_⇀⦇_,CERTBASE⦈_.CERT-base h)) =
329
+ deps₂ , eqd , BS-base (C.CERT-base h)
348
330
castCERTS' {Γ} deps₁ deps₂ deps₁' eqd (BS-ind (C.CERT-deleg {dCert = cert} (C.DELEG-delegate h)) rs) =
349
331
let open C.CertEnv Γ using (pp)
350
332
deps₂' , eqd' , rs' = castCERTS' (updateCDep pp cert deps₁) (updateCDep pp cert deps₂) deps₁'
@@ -387,14 +369,6 @@ opaque
387
369
let deps₂' , eqd' , rs' = castCERTS' deps₁ deps₂ deps₁' eqd rs
388
370
in deps₂' , eqd' , BS-ind (C.CERT-vdel (C.GOVCERT-ccreghot h)) rs'
389
371
390
- castCERTS : ∀ {Γ certs} {s s' : L.CertState} deps₁ deps₂ deps₁'
391
- → deps₁ ≡ᵈ deps₂
392
- → Γ C.⊢ deps₁ ⊢conv s ⇀⦇ certs ,CERTS⦈ (deps₁' ⊢conv s')
393
- → ∃[ deps₂' ] deps₁' ≡ᵈ deps₂' × Γ C.⊢ deps₂ ⊢conv s ⇀⦇ certs ,CERTS⦈ (deps₂' ⊢conv s')
394
- castCERTS deps₁ deps₂ deps₁' eqd (RTC (C.CERT-base h , step)) =
395
- let deps₂' , eqd' , step' = castCERTS' deps₁ deps₂ deps₁' eqd step
396
- in deps₂' , eqd' , RTC (C.CERT-base h , step')
397
-
398
372
_⊢_⇀⦇_,GOVn⦈_ : L.GovEnv × ℕ → L.GovState → List (GovVote ⊎ GovProposal) → L.GovState → Type
399
373
_⊢_⇀⦇_,GOVn⦈_ = _⊢_⇀⟦_⟧ᵢ*'_ {_⊢_⇀⟦_⟧ᵇ_ = IdSTS} {_⊢_⇀⟦_⟧_ = L._⊢_⇀⦇_,GOV⦈_}
400
374
@@ -404,7 +378,7 @@ opaque
404
378
→ Γ C.⊢ deps₁ ⊢conv s ⇀⦇ tx ,LEDGER⦈ (deps₁' ⊢conv s')
405
379
→ ∃[ deps₂' ] deps₁' ≡ᵈ deps₂' × Γ C.⊢ deps₂ ⊢conv s ⇀⦇ tx ,LEDGER⦈ (deps₂' ⊢conv s')
406
380
castLEDGER {Γ} {tx} {s} {s'} deps₁ deps₂ deps₁' eqd (C.LEDGER-V⋯ refl utxo certs gov) =
407
- let deps₂' , eqd' , certs' = castCERTS deps₁ deps₂ deps₁' eqd certs
381
+ let deps₂' , eqd' , certs' = castCERTS' deps₁ deps₂ deps₁' eqd certs
408
382
in deps₂' , eqd' , C.LEDGER-V⋯ refl utxo certs' gov
409
383
castLEDGER deps₁ deps₂ deps₁' eqd (C.LEDGER-I⋯ refl utxo) = _ , eqd , C.LEDGER-I⋯ refl utxo
410
384
0 commit comments