Skip to content

Commit 55553bf

Browse files
authored
Metatheory: use Fin instead of nested Maybe for representing variables (#7486)
Metatheory: simplify variable representation by using Fin instead of nested Maybe
1 parent 6614958 commit 55553bf

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+34393
-41537
lines changed

plutus-metatheory/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ $ cabal test plutus-metatheory
8080
To build the documentation as a static site:
8181

8282
```
83-
$ agda --html --html-highlight=auto --html-dir=html src/index.lagda.md
83+
$ agda-with-stdlib --html --html-highlight=auto --html-dir=html src/index.lagda.md
8484
$ jekyll build -s html -d html/_site
8585
```
8686

plutus-metatheory/src/Algorithmic/Erasure.lagda.md

Lines changed: 32 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@ title: Algorithmic.Erasure
33
layout: page
44
---
55
```
6-
{-# OPTIONS --injective-type-constructors #-}
7-
86
module Algorithmic.Erasure where
97
```
108

119
```
1210
open import Agda.Primitive using (lzero)
13-
open import Data.Nat using (ℕ)
11+
open import Data.Nat using (ℕ;suc;zero)
1412
open import Function using (_∘_;id)
1513
open import Data.Nat using (_+_)
1614
open import Data.Nat.Properties using (+-cancelˡ-≡)
@@ -55,20 +53,20 @@ open import Algorithmic.Soundness using (embCtx;embVar;emb;emb-ConstrArgs;lema-m
5553
```
5654

5755
```
58-
len⋆ : Ctx⋆ → Set
59-
len⋆ ∅ =
60-
len⋆ (Γ ,⋆ K) = Maybe (len⋆ Γ)
56+
len⋆ : Ctx⋆ →
57+
len⋆ ∅ = 0
58+
len⋆ (Γ ,⋆ K) = suc (len⋆ Γ)
6159
62-
len : ∀{Φ} → Ctx Φ → Set
63-
len ∅ =
60+
len : ∀{Φ} → Ctx Φ →
61+
len ∅ = 0
6462
len (Γ ,⋆ K) = len Γ
65-
len (Γ , A) = Maybe (len Γ)
63+
len (Γ , A) = suc (len Γ)
6664
```
6765

6866
```
69-
eraseVar : ∀{Φ Γ}{A : Φ ⊢Nf⋆ *} → Γ ∋ A → len Γ
70-
eraseVar Z = nothing
71-
eraseVar (S α) = just (eraseVar α)
67+
eraseVar : ∀{Φ Γ}{A : Φ ⊢Nf⋆ *} → Γ ∋ A → Fin (len Γ)
68+
eraseVar Z = zero
69+
eraseVar (S α) = suc (eraseVar α)
7270
eraseVar (T α) = eraseVar α
7371
7472
eraseTC : (A : ∅ ⊢Nf⋆ Kind.♯) → ⟦ A ⟧ → TmCon
@@ -114,47 +112,45 @@ I need to pattern match on the term constructors
114112
lenLemma : ∀ {Φ}(Γ : D.Ctx Φ) → len (nfCtx Γ) ≡ D.len Γ
115113
lenLemma D.∅ = refl
116114
lenLemma (Γ D.,⋆ J) = lenLemma Γ
117-
lenLemma (Γ D., A) = cong Maybe (lenLemma Γ)
115+
lenLemma (Γ D., A) = cong suc (lenLemma Γ)
118116
119117
lenLemma⋆ : ∀ Φ → D.len⋆ Φ ≡ len⋆ Φ
120118
lenLemma⋆ ∅ = refl
121-
lenLemma⋆ (Φ ,⋆ K) = cong Maybe (lenLemma⋆ Φ)
119+
lenLemma⋆ (Φ ,⋆ K) = cong suc (lenLemma⋆ Φ)
122120
123121
-- these lemmas for each clause of eraseVar and erase below could be
124122
-- avoided by using with but it would involve doing with on a long
125123
-- string of arguments, both contexts, equality proof above, and
126124
-- before and after versions of all arguments and all recursive calls
127125
128-
-- these lemmas (as stated and proved) require injectivity of type
129-
-- constructors
130-
lemzero : ∀{X X'}(p : Maybe {lzero} X ≡ Maybe X') → nothing ≡ subst id p nothing
126+
lemzero : ∀{X X' : ℕ} (p : suc X ≡ suc X') → zero ≡ subst Fin p zero
131127
lemzero refl = refl
132128
133-
lemsuc : ∀{X X'}(p : Maybe {lzero} X ≡ Maybe X')(q : X ≡ X')(x : X) →
134-
just (subst id q x) ≡ subst id p (just x)
129+
lemsuc : ∀{X X' : ℕ} (p : suc X ≡ suc X') (q : X ≡ X') (x : Fin X) →
130+
suc (subst Fin q x) ≡ subst Fin p (suc x)
135131
lemsuc refl refl x = refl
136132
137133
lem≡Ctx : ∀{Φ}{Γ Γ' : Ctx Φ} → Γ ≡ Γ' → len Γ ≡ len Γ'
138134
lem≡Ctx refl = refl
139135
140136
lem-conv∋ : ∀{Φ Γ Γ'}{A A' : Φ ⊢Nf⋆ *}(p : Γ ≡ Γ')(q : A ≡ A')(x : Γ A.∋ A)
141-
→ subst id (lem≡Ctx p) (eraseVar x) ≡ eraseVar (conv∋ p q x)
137+
→ subst Fin (lem≡Ctx p) (eraseVar x) ≡ eraseVar (conv∋ p q x)
142138
lem-conv∋ refl refl x = refl
143139
144140
sameVar : ∀{Φ Γ}{A : Φ ⊢⋆ *}(x : Γ D.∋ A)
145-
→ D.eraseVar x ≡ subst id (lenLemma Γ) (eraseVar (nfTyVar x))
146-
sameVar {Γ = Γ D., _} D.Z = lemzero (cong Maybe (lenLemma Γ))
141+
→ D.eraseVar x ≡ subst Fin (lenLemma Γ) (eraseVar (nfTyVar x))
142+
sameVar {Γ = Γ D., _} D.Z = lemzero (cong suc (lenLemma Γ))
147143
sameVar {Γ = Γ D., _} (D.S x) = trans
148-
(cong just (sameVar x))
149-
(lemsuc (cong Maybe (lenLemma Γ)) (lenLemma Γ) (eraseVar (nfTyVar x)))
144+
(cong suc (sameVar x))
145+
(lemsuc (cong suc (lenLemma Γ)) (lenLemma Γ) (eraseVar (nfTyVar x)))
150146
sameVar {Γ = Γ D.,⋆ _} (D.T {A = A} x) = trans
151147
(sameVar x)
152-
(cong (subst id (lenLemma Γ)) (lem-conv∋ refl (ren-nf S A) (T (nfTyVar x))))
148+
(cong (subst Fin (lenLemma Γ)) (lem-conv∋ refl (ren-nf S A) (T (nfTyVar x))))
153149
154-
lemVar : ∀{X X'}(p : X ≡ X')(x : X) → ` (subst id p x) ≡ subst _⊢ p (` x)
150+
lemVar : ∀{X X'}(p : X ≡ X')(x : Fin X) → ` (subst Fin p x) ≡ subst _⊢ p (` x)
155151
lemVar refl x = refl
156152
157-
lemƛ : ∀{X X'}(p : X ≡ X')(q : Maybe X ≡ Maybe X')(t : Maybe X ⊢)
153+
lemƛ : ∀{X X'}(p : X ≡ X')(q : suc X ≡ suc X')(t : suc X ⊢)
158154
→ ƛ (subst _⊢ q t) ≡ subst _⊢ p (ƛ t)
159155
lemƛ refl refl t = refl
160156
@@ -235,7 +231,7 @@ same {Γ = Γ}(D.` x) =
235231
trans (cong ` (sameVar x)) (lemVar (lenLemma Γ) (eraseVar (nfTyVar x)))
236232
same {Γ = Γ} (D.ƛ t) = trans
237233
(cong ƛ (same t))
238-
(lemƛ (lenLemma Γ) (cong Maybe (lenLemma Γ)) (erase (nfType t)))
234+
(lemƛ (lenLemma Γ) (cong suc (lenLemma Γ)) (erase (nfType t)))
239235
same {Γ = Γ} (t D.· u) = trans
240236
(cong₂ _·_ (same t) (same u))
241237
(lem· (lenLemma Γ) (erase (nfType t)) (erase (nfType u)))
@@ -274,21 +270,21 @@ same {Γ = Γ} (D.case t cases) rewrite lemCase (erase (nfType t)) (erase-Cases
274270
same'Len : ∀ {Φ}(Γ : A.Ctx Φ) → D.len (embCtx Γ) ≡ len Γ
275271
same'Len ∅ = refl
276272
same'Len (Γ ,⋆ J) = same'Len Γ
277-
same'Len (Γ , A) = cong Maybe (same'Len Γ)
273+
same'Len (Γ , A) = cong suc (same'Len Γ)
278274
279275
lem-Dconv∋ : ∀{Φ Γ Γ'}{A A' : Φ ⊢⋆ *}(p : Γ ≡ Γ')(q : A ≡ A')(x : Γ D.∋ A)
280-
→ subst id (cong D.len p) (D.eraseVar x) ≡ D.eraseVar (D.conv∋ p q x)
276+
→ subst Fin (cong D.len p) (D.eraseVar x) ≡ D.eraseVar (D.conv∋ p q x)
281277
lem-Dconv∋ refl refl x = refl
282278
283279
same'Var : ∀{Φ Γ}{A : Φ ⊢Nf⋆ *}(x : Γ A.∋ A)
284-
→ eraseVar x ≡ subst id (same'Len Γ) (D.eraseVar (embVar x))
285-
same'Var {Γ = Γ , _} Z = lemzero (cong Maybe (same'Len Γ))
280+
→ eraseVar x ≡ subst Fin (same'Len Γ) (D.eraseVar (embVar x))
281+
same'Var {Γ = Γ , _} Z = lemzero (cong suc (same'Len Γ))
286282
same'Var {Γ = Γ , _} (S x) = trans
287-
(cong just (same'Var x))
288-
(lemsuc (cong Maybe (same'Len Γ)) (same'Len Γ) (D.eraseVar (embVar x)))
283+
(cong suc (same'Var x))
284+
(lemsuc (cong suc (same'Len Γ)) (same'Len Γ) (D.eraseVar (embVar x)))
289285
same'Var {Γ = Γ ,⋆ _} (T {A = A} x) = trans
290286
(same'Var x)
291-
(cong (subst id (same'Len Γ)) (lem-Dconv∋ refl (sym (ren-embNf S A))
287+
(cong (subst Fin (same'Len Γ)) (lem-Dconv∋ refl (sym (ren-embNf S A))
292288
(D.T (embVar x))))
293289
294290
same'TC : ∀ {Φ} {Γ : Ctx Φ} A (tcn : ⟦ A ⟧) →
@@ -326,7 +322,7 @@ same' {Γ = Γ} (` x) =
326322
trans (cong ` (same'Var x)) (lemVar (same'Len Γ) (D.eraseVar (embVar x)))
327323
same' {Γ = Γ} (ƛ t) = trans
328324
(cong ƛ (same' t))
329-
(lemƛ (same'Len Γ) (cong Maybe (same'Len Γ)) (D.erase (emb t)))
325+
(lemƛ (same'Len Γ) (cong suc (same'Len Γ)) (D.erase (emb t)))
330326
same' {Γ = Γ} (t · u) = trans
331327
(cong₂ _·_ (same' t) (same' u))
332328
(lem· (same'Len Γ) (D.erase (emb t)) (D.erase (emb u)))

plutus-metatheory/src/Algorithmic/Erasure/RenamingSubstitution.lagda.md

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ module Algorithmic.Erasure.RenamingSubstitution where
1010
open import Relation.Binary.PropositionalEquality using (_≡_;refl;sym;trans;subst;cong;cong₂)
1111
open import Function using (id;_∘_)
1212
open import Data.Vec using (Vec;_∷_;lookup)
13-
open import Data.Fin using (Fin;toℕ)
13+
open import Data.Fin using (Fin;toℕ;suc;zero)
14+
open import Data.Nat using (ℕ;suc;zero)
1415
1516
open import Utils using (Kind;*;Maybe;nothing;just)
1617
open import Utils.List using (List;[];_∷_)
@@ -38,15 +39,15 @@ open import Builtin.Constant.Type using (TyCon)
3839
```
3940

4041
```
41-
backVar⋆ : ∀{Φ}(Γ : Ctx Φ) → len Γ → Φ ⊢Nf⋆ *
42+
backVar⋆ : ∀{Φ}(Γ : Ctx Φ) → Fin (len Γ) → Φ ⊢Nf⋆ *
4243
backVar⋆ (Γ ,⋆ J) x = weakenNf (backVar⋆ Γ x)
43-
backVar⋆ (Γ , A) nothing = A
44-
backVar⋆ (Γ , A) (just x) = backVar⋆ Γ x
44+
backVar⋆ (Γ , A) zero = A
45+
backVar⋆ (Γ , A) (suc x) = backVar⋆ Γ x
4546
46-
backVar : ∀{Φ}(Γ : Ctx Φ)(x : len Γ) → Γ ∋ (backVar⋆ Γ x)
47+
backVar : ∀{Φ}(Γ : Ctx Φ)(x : Fin (len Γ)) → Γ ∋ (backVar⋆ Γ x)
4748
backVar (Γ ,⋆ J) x = T (backVar Γ x)
48-
backVar (Γ , A) nothing = Z
49-
backVar (Γ , A) (just x) = S (backVar Γ x)
49+
backVar (Γ , A) zero = Z
50+
backVar (Γ , A) (suc x) = S (backVar Γ x)
5051
5152
backVar⋆-eraseVar : ∀{Φ}{Γ : Ctx Φ}{A : Φ ⊢Nf⋆ *}(x : Γ ∋ A) →
5253
backVar⋆ Γ (eraseVar x) ≡ A
@@ -85,11 +86,11 @@ backVar-eraseVar (S x) = trans
8586
(cong S (backVar-eraseVar x))
8687
backVar-eraseVar (T x) = trans (subst-T (backVar⋆-eraseVar x) (cong weakenNf (backVar⋆-eraseVar x)) (backVar _ (eraseVar x))) (cong T (backVar-eraseVar x))
8788
88-
eraseVar-backVar : ∀{Φ}(Γ : Ctx Φ)(x : len Γ) → eraseVar (backVar Γ x) ≡ x
89+
eraseVar-backVar : ∀{Φ}(Γ : Ctx Φ)(x : Fin (len Γ)) → eraseVar (backVar Γ x) ≡ x
8990
eraseVar-backVar ∅ ()
9091
eraseVar-backVar (Γ ,⋆ J) x = eraseVar-backVar Γ x
91-
eraseVar-backVar (Γ , A) nothing = refl
92-
eraseVar-backVar (Γ , A) (just x) = cong just (eraseVar-backVar Γ x)
92+
eraseVar-backVar (Γ , A) zero = refl
93+
eraseVar-backVar (Γ , A) (suc x) = cong suc (eraseVar-backVar Γ x)
9394
9495
--
9596
@@ -98,10 +99,10 @@ erase-Ren : ∀{Φ Ψ}{Γ : Ctx Φ}{Δ : Ctx Ψ}(ρ⋆ : ⋆.Ren Φ Ψ)
9899
erase-Ren ρ⋆ ρ i = eraseVar (ρ (backVar _ i))
99100
100101
ext-erase : ∀{Φ Ψ}{Γ : Ctx Φ}{Δ : Ctx Ψ}(ρ⋆ : ⋆.Ren Φ Ψ)
101-
→ (ρ : A.Ren ρ⋆ Γ Δ){A : Φ ⊢Nf⋆ *}(α : len (Γ , A))
102+
→ (ρ : A.Ren ρ⋆ Γ Δ){A : Φ ⊢Nf⋆ *}(α : Fin (len (Γ , A)))
102103
→ erase-Ren ρ⋆ (A.ext ρ⋆ ρ {B = A}) α ≡ U.lift (erase-Ren ρ⋆ ρ) α
103-
ext-erase ρ⋆ ρ nothing = refl
104-
ext-erase ρ⋆ ρ (just α) = refl
104+
ext-erase ρ⋆ ρ zero = refl
105+
ext-erase ρ⋆ ρ (suc α) = refl
105106
106107
conv∋-erase : ∀{Φ}{Γ : Ctx Φ}{A A' : Φ ⊢Nf⋆ *}
107108
→ (p : A ≡ A')
@@ -116,7 +117,7 @@ conv⊢-erase : ∀{Φ}{Γ : Ctx Φ}{A A' : Φ ⊢Nf⋆ *}
116117
conv⊢-erase refl t = refl
117118
118119
ext⋆-erase : ∀{Φ Ψ K}{Γ : Ctx Φ}{Δ : Ctx Ψ}(ρ⋆ : ⋆.Ren Φ Ψ)
119-
→ (ρ : A.Ren ρ⋆ Γ Δ)(α : len Γ)
120+
→ (ρ : A.Ren ρ⋆ Γ Δ)(α : Fin (len Γ))
120121
→ erase-Ren (⋆.ext ρ⋆ {K = K}) (A.ext⋆ ρ⋆ ρ) α ≡ erase-Ren ρ⋆ ρ α
121122
ext⋆-erase {Γ = Γ} ρ⋆ ρ α = conv∋-erase
122123
(trans (sym (renNf-comp (backVar⋆ Γ α))) (renNf-comp (backVar⋆ Γ α)))
@@ -202,23 +203,23 @@ cong-erase-sub σ⋆ σ refl x .x refl = refl
202203
203204
exts-erase : ∀ {Φ Ψ}{Γ Δ}(σ⋆ : SubNf Φ Ψ)(σ : A.Sub σ⋆ Γ Δ)
204205
→ {B : Φ ⊢Nf⋆ *}
205-
→ (α : Maybe (len Γ))
206+
→ (α : Fin (suc (len Γ)))
206207
→ erase-Sub σ⋆ (A.exts σ⋆ σ {B}) α ≡ U.lifts (erase-Sub σ⋆ σ) α
207-
exts-erase σ⋆ σ nothing = refl
208-
exts-erase {Γ = Γ}{Δ} σ⋆ σ {B} (just α) = trans
208+
exts-erase σ⋆ σ zero = refl
209+
exts-erase {Γ = Γ}{Δ} σ⋆ σ {B} (suc α) = trans
209210
(conv⊢-erase
210211
(renNf-id (subNf σ⋆ (backVar⋆ Γ α)))
211212
(A.ren id (conv∋ refl (sym (renNf-id _)) ∘ S) (σ (backVar Γ α))))
212213
(trans (ren-erase id (conv∋ refl (sym (renNf-id _)) ∘ S) (σ (backVar Γ α)))
213214
(U.ren-cong (λ β → trans
214215
(conv∋-erase (sym (renNf-id _)) (S (backVar Δ β)))
215-
(cong just (eraseVar-backVar Δ β)))
216+
(cong suc (eraseVar-backVar Δ β)))
216217
(erase (σ (backVar Γ α)))))
217218
218219
exts⋆-erase : ∀ {Φ Ψ}{Γ Δ}(σ⋆ : SubNf Φ Ψ)(σ : A.Sub σ⋆ Γ Δ)
219220
→ {B : Φ ⊢Nf⋆ *}
220221
→ ∀{K}
221-
→ (α : len Γ)
222+
→ (α : Fin (len Γ))
222223
→ erase-Sub (extsNf σ⋆ {K}) (A.exts⋆ σ⋆ σ) α ≡ erase-Sub σ⋆ σ α
223224
exts⋆-erase {Γ = Γ}{Δ} σ⋆ σ {B} α = trans
224225
(conv⊢-erase
@@ -315,8 +316,8 @@ lem[] : ∀{Φ}{Γ : Ctx Φ}{A B : Φ ⊢Nf⋆ *}(N : Γ , A ⊢ B)(W : Γ ⊢ A
315316
lem[] {Γ = Γ}{A = A}{B} N W = trans
316317
(trans
317318
(U.sub-cong
318-
(λ{ nothing → sym (conv⊢-erase (sym (subNf-id A)) W)
319-
; (just α) → trans
319+
(λ{ zero → sym (conv⊢-erase (sym (subNf-id A)) W)
320+
; (suc α) → trans
320321
(cong ` (sym (eraseVar-backVar Γ α)))
321322
(sym (conv⊢-erase (sym (subNf-id (backVar⋆ Γ α))) (` (backVar Γ α))))})
322323
(erase N))

plutus-metatheory/src/Declarative/Erasure.lagda.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ module Declarative.Erasure where
1010
## Imports
1111

1212
```
13-
open import Data.Nat using (ℕ)
14-
open import Data.Fin using (toℕ)
13+
open import Data.Nat using (ℕ;suc;zero)
14+
open import Data.Fin using (Fin;suc;zero;toℕ)
1515
open import Data.Empty using (⊥)
1616
open import Data.Vec using (Vec)
1717
open import Data.Unit using (tt)
@@ -39,23 +39,23 @@ open import Algorithmic using (ty≅sty₁)
3939
```
4040

4141
```
42-
len : ∀{Φ} → Ctx Φ → Set
43-
len ∅ =
42+
len : ∀{Φ} → Ctx Φ →
43+
len ∅ = 0
4444
len (Γ ,⋆ K) = len Γ
45-
len (Γ , A) = Maybe (len Γ)
45+
len (Γ , A) = suc (len Γ)
4646
47-
lenI : ∀{Φ} → Ctx Φ → Set
48-
lenI ∅ =
49-
lenI (Γ ,⋆ K) = Maybe (lenI Γ)
50-
lenI (Γ , A) = Maybe (lenI Γ)
47+
lenI : ∀{Φ} → Ctx Φ →
48+
lenI ∅ = 0
49+
lenI (Γ ,⋆ K) = suc (lenI Γ)
50+
lenI (Γ , A) = suc (lenI Γ)
5151
52-
len⋆ : Ctx⋆ → Set
53-
len⋆ ∅ =
54-
len⋆ (Γ ,⋆ K) = Maybe (len⋆ Γ)
52+
len⋆ : Ctx⋆ →
53+
len⋆ ∅ = 0
54+
len⋆ (Γ ,⋆ K) = suc (len⋆ Γ)
5555
56-
eraseVar : ∀{Φ Γ}{A : Φ ⊢⋆ *} → Γ ∋ A → len Γ
57-
eraseVar Z = nothing
58-
eraseVar (S α) = just (eraseVar α)
56+
eraseVar : ∀{Φ Γ}{A : Φ ⊢⋆ *} → Γ ∋ A → Fin (len Γ)
57+
eraseVar Z = zero
58+
eraseVar (S α) = suc (eraseVar α)
5959
eraseVar (T α) = eraseVar α
6060
6161
eraseTC : (A : ∅ ⊢⋆ ♯) → ⟦ A ⟧d → TmCon
@@ -94,15 +94,15 @@ erase (error A) = error
9494
erase (constr e Tss p cs) = constr (toℕ e) (erase-ConstrArgs cs)
9595
erase (case t cases) = case (erase t) (erase-Cases cases)
9696
97-
backVar⋆ : ∀{Φ}(Γ : Ctx Φ) → len Γ → Φ ⊢⋆ *
97+
backVar⋆ : ∀{Φ}(Γ : Ctx Φ) → Fin (len Γ) → Φ ⊢⋆ *
9898
backVar⋆ (Γ ,⋆ J) x = T.weaken (backVar⋆ Γ x)
99-
backVar⋆ (Γ , A) nothing = A
100-
backVar⋆ (Γ , A) (just x) = backVar⋆ Γ x
99+
backVar⋆ (Γ , A) zero = A
100+
backVar⋆ (Γ , A) (suc x) = backVar⋆ Γ x
101101
102-
backVar : ∀{Φ}(Γ : Ctx Φ)(x : len Γ) → Γ ∋ (backVar⋆ Γ x)
102+
backVar : ∀{Φ}(Γ : Ctx Φ)(x : Fin (len Γ)) → Γ ∋ (backVar⋆ Γ x)
103103
backVar (Γ ,⋆ J) x = T (backVar Γ x)
104-
backVar (Γ , A) nothing = Z
105-
backVar (Γ , A) (just x) = S (backVar Γ x)
104+
backVar (Γ , A) zero = Z
105+
backVar (Γ , A) (suc x) = S (backVar Γ x)
106106
107107
erase-Sub σ⋆ σ i = erase (σ (backVar _ i))
108108
```

plutus-metatheory/src/Evaluator/Program.lagda.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ parsePLC namedprog = do
126126
-- ^ FIXME: this should have an interface that guarantees that the
127127
-- shifter is run
128128
129-
parseUPLC : ProgramNU → Either ERROR ( U.⊢)
129+
parseUPLC : ProgramNU → Either ERROR (0 U.⊢)
130130
parseUPLC namedprog = do
131131
prog ← withE (ERROR.scopeError ∘ freeVariableError) $ deBruijnifyU namedprog
132132
withE scopeError $ U.scopeCheckU0 (convPU prog)
@@ -177,7 +177,7 @@ showUPLCResult (□ V) = return $ prettyPrintUTm (U.extricateU0 (U.discharge V))
177177
showUPLCResult ◆ = inj₁ (runtimeError userError)
178178
showUPLCResult _ = inj₁ (runtimeError gasError)
179179
180-
executeUPLCwithMP : ∀{A} → RawCostModel → (CostModel → MachineParameters A) → (A → String) → U.⊢ → Either ERROR String
180+
executeUPLCwithMP : ∀{A} → RawCostModel → (CostModel → MachineParameters A) → (A → String) → 0 U.⊢ → Either ERROR String
181181
executeUPLCwithMP (cekMachineCosts , rawmodel) mkMP report t with createMap rawmodel
182182
... | just model = do
183183
let machineparam = mkMP (cekMachineCosts , model)
@@ -187,7 +187,7 @@ executeUPLCwithMP (cekMachineCosts , rawmodel) mkMP report t with createMap rawm
187187
return (r ++ report exBudget)
188188
... | nothing = inj₁ (jsonError "while processing parameters.")
189189
190-
executeUPLC : BudgetMode RawCostModel → U.⊢ → Either ERROR String
190+
executeUPLC : BudgetMode RawCostModel → 0 U.⊢ → Either ERROR String
191191
executeUPLC Silent t = (withE runtimeError $ U.stepper maxsteps (ε ; [] ▻ t)) >>= showUPLCResult
192192
executeUPLC (Counting rcm) t = executeUPLCwithMP rcm machineParameters countingReport t
193193
executeUPLC (Tallying rcm) t = executeUPLCwithMP rcm tallyingMachineParameters tallyingReport t

plutus-metatheory/src/MAlonzo/Code/Algorithmic.hs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ data T_'9839'Kinded_40
4848
= C_'9839'_42 | C_K'9839'_48 T_'9839'Kinded_40
4949
-- Algorithmic.lemma♯Kinded
5050
d_lemma'9839'Kinded_58 ::
51-
MAlonzo.Code.Utils.T_Kind_652 ->
52-
MAlonzo.Code.Utils.T_Kind_652 ->
53-
MAlonzo.Code.Utils.T_Kind_652 ->
54-
MAlonzo.Code.Utils.T_Kind_652 ->
51+
MAlonzo.Code.Utils.T_Kind_682 ->
52+
MAlonzo.Code.Utils.T_Kind_682 ->
53+
MAlonzo.Code.Utils.T_Kind_682 ->
54+
MAlonzo.Code.Utils.T_Kind_682 ->
5555
T_'9839'Kinded_40 ->
5656
MAlonzo.Code.Type.BetaNormal.T__'8866'Ne'8902'__6 ->
5757
MAlonzo.Code.Data.Irrelevant.T_Irrelevant_20
@@ -154,11 +154,11 @@ data T__'8866'__178
154154
C__'183'__196 MAlonzo.Code.Type.BetaNormal.T__'8866'Nf'8902'__4
155155
T__'8866'__178 T__'8866'__178 |
156156
C_Λ_202 T__'8866'__178 |
157-
C__'183''8902'_'47'__212 MAlonzo.Code.Utils.T_Kind_652
157+
C__'183''8902'_'47'__212 MAlonzo.Code.Utils.T_Kind_682
158158
MAlonzo.Code.Type.BetaNormal.T__'8866'Nf'8902'__4 T__'8866'__178
159159
MAlonzo.Code.Type.BetaNormal.T__'8866'Nf'8902'__4 |
160160
C_wrap_220 T__'8866'__178 |
161-
C_unwrap_230 MAlonzo.Code.Utils.T_Kind_652
161+
C_unwrap_230 MAlonzo.Code.Utils.T_Kind_682
162162
MAlonzo.Code.Type.BetaNormal.T__'8866'Nf'8902'__4
163163
MAlonzo.Code.Type.BetaNormal.T__'8866'Nf'8902'__4 T__'8866'__178 |
164164
C_constr_240 MAlonzo.Code.Data.Fin.Base.T_Fin_10

0 commit comments

Comments
 (0)