@@ -117,35 +117,3 @@ cast-pres-mult : ∀ {Σ gc ℓv A M N}
117
117
→ [] ; Σ ; gc ; ℓv ⊢ N ⇐ A
118
118
cast-pres-mult ⊢M (_ ∎) = ⊢M
119
119
cast-pres-mult ⊢M (_ —→⟨ M→L ⟩ L↠N) = cast-pres-mult (cast-pres ⊢M M→L) L↠N
120
-
121
-
122
- {- (id A) is identity -}
123
- cast-id-id : ∀ {Γ Σ gc ℓv A V}
124
- → Value V
125
- → Γ ; Σ ; gc ; ℓv ⊢ V ⇐ A
126
- ----------------------------------------
127
- → ∃[ W ] (V ⟨ coerce-id A ⟩ —↠ W) × Value W
128
- cast-id-id {A = ` x of g} (V-raw V-const) ⊢const =
129
- ⟨ _ , _ —→⟨ cast-id ⟩ _ ∎ , V-raw V-const ⟩
130
- cast-id-id {A = ` ι of g} (V-cast V-const (ir-base 𝓋 x)) (⊢cast ⊢const) =
131
- ⟨ _ ,
132
- _ —→⟨ cast-comp V-const (ir-base 𝓋 x) ⟩
133
- _ —→⟨ cast V-const (_ —→ₗ⟨ id 𝓋 ⟩ _ ∎ₗ) 𝓋 ⟩
134
- _ ∎ ,
135
- V-cast V-const (ir-base 𝓋 x) ⟩
136
- cast-id-id {A = (Ref A) of g} (V-raw V-addr) (⊢addr x) =
137
- ⟨ _ , _ ∎ , V-cast V-addr (ir-ref id) ⟩
138
- cast-id-id {A = (Ref A) of g} (V-cast V-addr (ir-ref 𝓋)) (⊢cast (⊢addr x)) =
139
- ⟨ _ ,
140
- _ —→⟨ cast-comp V-addr (ir-ref 𝓋) ⟩
141
- _ —→⟨ cast V-addr (_ —→ₗ⟨ id 𝓋 ⟩ _ ∎ₗ) 𝓋 ⟩
142
- _ ∎ ,
143
- V-cast V-addr (ir-ref 𝓋) ⟩
144
- cast-id-id {A = ⟦ gc ⟧ A ⇒ B of g} (V-raw V-ƛ) (⊢lam ⊢N) =
145
- ⟨ _ , _ ∎ , V-cast V-ƛ (ir-fun id) ⟩
146
- cast-id-id {A = ⟦ gc ⟧ A ⇒ B of g} (V-cast V-ƛ (ir-fun 𝓋)) (⊢cast (⊢lam ⊢N)) =
147
- ⟨ _ ,
148
- _ —→⟨ cast-comp V-ƛ (ir-fun 𝓋) ⟩
149
- _ —→⟨ cast V-ƛ (_ —→ₗ⟨ id 𝓋 ⟩ _ ∎ₗ) 𝓋 ⟩
150
- _ ∎ ,
151
- V-cast V-ƛ (ir-fun 𝓋) ⟩
0 commit comments