removed extend from Typed
This commit is contained in:
parent
b0a2c244b0
commit
947105aca9
1 changed files with 3 additions and 25 deletions
|
@ -311,24 +311,6 @@ dom-lemma (S x≢y ⊢y) = there (dom-lemma ⊢y)
|
||||||
⊢rename ⊢ρ (L · M) = ⊢rename ⊢ρ L · ⊢rename ⊢ρ M
|
⊢rename ⊢ρ (L · M) = ⊢rename ⊢ρ L · ⊢rename ⊢ρ M
|
||||||
\end{code}
|
\end{code}
|
||||||
|
|
||||||
### Extending environment
|
|
||||||
|
|
||||||
The following can be used to shorten the definition that substitution preserves types,
|
|
||||||
but it actually makes the proof longer and more complex, so is probably not worth it.
|
|
||||||
\begin{code}
|
|
||||||
extend : ∀ {Γ Δ ρ x y A M} → (∀ {z C} → Δ ∋ z ⦂ C → y ≢ z) → (Δ , y ⦂ A ⊢ M ⦂ A) →
|
|
||||||
(∀ {z C} → Γ ∋ z ⦂ C → Δ ⊢ ρ z ⦂ C) →
|
|
||||||
(∀ {z C} → Γ , x ⦂ A ∋ z ⦂ C → Δ , y ⦂ A ⊢ (ρ , x ↦ M) z ⦂ C)
|
|
||||||
extend {x = x} y≢ ⊢M ⊢ρ Z with x ≟ x
|
|
||||||
... | yes _ = ⊢M
|
|
||||||
... | no x≢x = ⊥-elim (x≢x refl)
|
|
||||||
extend {Δ = Δ} {x = x} {y = y} {A = A} y≢ ⊢M ⊢ρ {z} (S x≢z ⊢z) with x ≟ z
|
|
||||||
... | yes x≡z = ⊥-elim (x≢z x≡z)
|
|
||||||
... | no _ = ⊢rename {Δ} {Δ , y ⦂ A} ⊢weaken (⊢ρ ⊢z)
|
|
||||||
where
|
|
||||||
⊢weaken : ∀ {z C} → Δ ∋ z ⦂ C → Δ , y ⦂ A ∋ z ⦂ C
|
|
||||||
⊢weaken ⊢z = S (y≢ ⊢z) ⊢z
|
|
||||||
\end{code}
|
|
||||||
|
|
||||||
### Substitution preserves types
|
### Substitution preserves types
|
||||||
|
|
||||||
|
@ -348,15 +330,12 @@ extend {Δ = Δ} {x = x} {y = y} {A = A} y≢ ⊢M ⊢ρ {z} (S x≢z ⊢z) with
|
||||||
⊆xs′ : dom Δ′ ⊆ xs′
|
⊆xs′ : dom Δ′ ⊆ xs′
|
||||||
⊆xs′ = ∷⊆ ⊆xs
|
⊆xs′ = ∷⊆ ⊆xs
|
||||||
|
|
||||||
y-lemma : ∀ {z C} → Δ ∋ z ⦂ C → y ≢ z
|
y≢ : ∀ {z C} → Δ ∋ z ⦂ C → y ≢ z
|
||||||
y-lemma ⊢z = fresh-lemma (⊆xs (dom-lemma ⊢z))
|
y≢ ⊢z = fresh-lemma (⊆xs (dom-lemma ⊢z))
|
||||||
|
|
||||||
⊢weaken : ∀ {z C} → Δ ∋ z ⦂ C → Δ′ ∋ z ⦂ C
|
⊢weaken : ∀ {z C} → Δ ∋ z ⦂ C → Δ′ ∋ z ⦂ C
|
||||||
⊢weaken ⊢z = S (y-lemma ⊢z) ⊢z
|
⊢weaken ⊢z = S (y≢ ⊢z) ⊢z
|
||||||
|
|
||||||
⊢ρ′ : ∀ {z C} → Γ′ ∋ z ⦂ C → Δ′ ⊢ ρ′ z ⦂ C
|
|
||||||
⊢ρ′ = extend y-lemma ⌊ Z ⌋ ⊢ρ
|
|
||||||
{-
|
|
||||||
⊢ρ′ : ∀ {z C} → Γ′ ∋ z ⦂ C → Δ′ ⊢ ρ′ z ⦂ C
|
⊢ρ′ : ∀ {z C} → Γ′ ∋ z ⦂ C → Δ′ ⊢ ρ′ z ⦂ C
|
||||||
⊢ρ′ Z with x ≟ x
|
⊢ρ′ Z with x ≟ x
|
||||||
... | yes _ = ⌊ Z ⌋
|
... | yes _ = ⌊ Z ⌋
|
||||||
|
@ -364,7 +343,6 @@ extend {Δ = Δ} {x = x} {y = y} {A = A} y≢ ⊢M ⊢ρ {z} (S x≢z ⊢z) with
|
||||||
⊢ρ′ {z} (S x≢z ⊢z) with x ≟ z
|
⊢ρ′ {z} (S x≢z ⊢z) with x ≟ z
|
||||||
... | yes x≡z = ⊥-elim (x≢z x≡z)
|
... | yes x≡z = ⊥-elim (x≢z x≡z)
|
||||||
... | no _ = ⊢rename {Δ} {Δ′} ⊢weaken (⊢ρ ⊢z)
|
... | no _ = ⊢rename {Δ} {Δ′} ⊢weaken (⊢ρ ⊢z)
|
||||||
-}
|
|
||||||
⊢subst ⊆xs ⊢ρ (⊢L · ⊢M) = ⊢subst ⊆xs ⊢ρ ⊢L · ⊢subst ⊆xs ⊢ρ ⊢M
|
⊢subst ⊆xs ⊢ρ (⊢L · ⊢M) = ⊢subst ⊆xs ⊢ρ ⊢L · ⊢subst ⊆xs ⊢ρ ⊢M
|
||||||
\end{code}
|
\end{code}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue