Some definitions and adjusted proofs
This commit is contained in:
@@ -11,7 +11,7 @@ open import Data.Empty using (⊥; ⊥-elim)
|
||||
|
||||
open import univTypes.SubjectReduction.Specification
|
||||
open import univTypes.SubjectReduction.Confluence using (↪ₚ*-trans; ξ*-λ; ξ*-·₁; ξ*-·₂; ξ*-∀₁; ξ*-∀₂; ξ*-subst₁; ξ*-subst₂; ξ*-subst₃)
|
||||
open import univTypes.SubjectReduction.Confluence using (ξ*-∃₁; ξ*-∃₂; ξ*-,₁; ξ*-,₂; ξ*-≡₁; ξ*-≡₂; ξ*-proj₁; ξ*-proj₂)
|
||||
open import univTypes.SubjectReduction.Confluence using (ξ*-∃₁; ξ*-∃₂; ξ*-,₁; ξ*-,₂; ξ*-≡₁; ξ*-≡₂; ξ*-proj₁; ξ*-proj₂; ξ*-Setn; ξ*-Setω; ξ*-lsuc; ξ*-⊔₁; ξ*-⊔₂)
|
||||
open import univTypes.SubjectReduction.Confluence using (confluence; _↪ₚ_; _↪ₚ*_; ↪ₚ-refl; ↪ₚ-ren; ↪ₚ*→↪*; ↪*→↪ₚ*); open _↪ₚ*_; open _↪ₚ_
|
||||
open import univTypes.SubjectReduction.Composition using (swap-0↦-extᵣ-fusion; swap-0↦-extₛ-fusion)
|
||||
open import univTypes.Util.Fin
|
||||
@@ -126,13 +126,35 @@ open import univTypes.Util.Fin
|
||||
a = ↪*-trans ξ-t ξ-1
|
||||
b = ↪*-trans a ξ-2
|
||||
|
||||
|
||||
-- New
|
||||
ξₚ*-Setn : ∀ {n} {e e' : Term n}
|
||||
→ e ↪ₚ* e'
|
||||
---------------
|
||||
→ `Setn e ↪ₚ* `Setn e'
|
||||
ξₚ*-Setn e↪ₚ*e' = {! ↪*→↪ₚ* ? !}
|
||||
ξₚ*-Setn e↪ₚ*e' = ↪*→↪ₚ* (ξ*-Setn (↪ₚ*→↪* e↪ₚ*e'))
|
||||
|
||||
ξₚ*-Setω : ∀ {n} {e e' : Term n}
|
||||
→ e ↪ₚ* e'
|
||||
---------------
|
||||
→ `Setω e ↪ₚ* `Setω e'
|
||||
ξₚ*-Setω e↪ₚ*e' = ↪*→↪ₚ* (ξ*-Setω (↪ₚ*→↪* e↪ₚ*e'))
|
||||
|
||||
|
||||
ξₚ*-lsuc : ∀ {n} {e e' : Term n}
|
||||
→ e ↪ₚ* e'
|
||||
---------------
|
||||
→ `lsuc e ↪ₚ* `lsuc e'
|
||||
ξₚ*-lsuc e↪ₚ*e' = ↪*→↪ₚ* (ξ*-lsuc (↪ₚ*→↪* e↪ₚ*e'))
|
||||
|
||||
ξₚ*-⊔ : ∀ {n} {e₁ e₂ e₁' e₂' : Term n}
|
||||
→ e₁ ↪ₚ* e₁'
|
||||
→ e₂ ↪ₚ* e₂'
|
||||
---------------------
|
||||
→ e₁ `⊔ e₂ ↪ₚ* e₁' `⊔ e₂'
|
||||
ξₚ*-⊔ e₁↪ₚ*e₁' e₂↪ₚ*e₂' = ↪ₚ*-trans
|
||||
(↪*→↪ₚ* (ξ*-⊔₁ (↪ₚ*→↪* e₁↪ₚ*e₁')))
|
||||
(↪*→↪ₚ* (ξ*-⊔₂ (↪ₚ*→↪* e₂↪ₚ*e₂')))
|
||||
|
||||
-- ↪*→↪ₚ* (ξ*-Setn (↪ₚ*→↪* e↪ₚ*e'))
|
||||
--------------------------------------------------------------------------------
|
||||
-- "Substituting two convertible terms into another term, yields again convertible terms."
|
||||
@@ -182,10 +204,10 @@ _≈σ_ : ∀ {m n} (σ₁ σ₂ : Sub m n) → Set
|
||||
= ξₚ*-subst (↪ₚ*σ-sub {e = t} (↪ₚ*σ-ext σ↪σ')) (↪ₚ*σ-sub {e = e₁} σ↪σ') (↪ₚ*σ-sub {e = e₂} σ↪σ')
|
||||
↪ₚ*σ-sub {m} {n} {`Level} {σ} {σ'} σ↪σ' = ↪ₚ*-refl
|
||||
↪ₚ*σ-sub {m} {n} {`lzero} {σ} {σ'} σ↪σ' = ↪ₚ*-refl
|
||||
↪ₚ*σ-sub {m} {n} {`Setω x} {σ} {σ'} σ↪σ' = {! ξₚ*-Setω (↪ₚ*σ-sub {e = e} (σ↪σ') !}
|
||||
↪ₚ*σ-sub {m} {n} {`Setn x} {σ} {σ'} σ↪σ' = {! !}
|
||||
↪ₚ*σ-sub {m} {n} {`lsuc x} {σ} {σ'} σ↪σ' = {! !}
|
||||
↪ₚ*σ-sub {m} {n} {l `⊔ r} {σ} {σ'} σ↪σ' = {! ξₚ*-⊔ (↪ₚ*σ-sub {e = l} σ↪σ') (↪ₚ*σ-sub {e = r} σ↪σ') !}
|
||||
↪ₚ*σ-sub {m} {n} {`Setω e} {σ} {σ'} σ↪σ' = ξₚ*-Setω (↪ₚ*σ-sub {e = e} σ↪σ')
|
||||
↪ₚ*σ-sub {m} {n} {`Setn e} {σ} {σ'} σ↪σ' = ξₚ*-Setn (↪ₚ*σ-sub {e = e} σ↪σ')
|
||||
↪ₚ*σ-sub {m} {n} {`lsuc e} {σ} {σ'} σ↪σ' = ξₚ*-lsuc (↪ₚ*σ-sub {e = e} σ↪σ')
|
||||
↪ₚ*σ-sub {m} {n} {l `⊔ r} {σ} {σ'} σ↪σ' = ξₚ*-⊔ (↪ₚ*σ-sub {e = l} σ↪σ') (↪ₚ*σ-sub {e = r} σ↪σ')
|
||||
|
||||
↪*σ-sub : ∀ {m n} {e : Term m} {σ σ' : Sub m n} →
|
||||
σ ↪*σ σ' →
|
||||
@@ -231,8 +253,17 @@ ext-≈σ ≈ₛ (suc x) with ≈ₛ x
|
||||
| mk-≈ c e₂↪*c e₂'↪*c
|
||||
= mk-≈ (`subst a b c) (↪ₚ*→↪* (ξₚ*-subst (↪*→↪ₚ* t↪*a) (↪*→↪ₚ* e₁↪*b) (↪*→↪ₚ* e₂↪*c)))
|
||||
(↪ₚ*→↪* (ξₚ*-subst (↪*→↪ₚ* t'↪*a) (↪*→↪ₚ* e₁'↪*b) (↪*→↪ₚ* e₂'↪*c)))
|
||||
≈σ-sub {zero} ≈σ' = {! !}
|
||||
≈σ-sub {suc e} ≈σ' = {! !}
|
||||
≈σ-sub {e = `Level} ≈σ' = mk-≈ `Level ↪*-refl ↪*-refl
|
||||
≈σ-sub {e = `lzero} ≈σ' = mk-≈ `lzero ↪*-refl ↪*-refl
|
||||
≈σ-sub {e = `Setω e} ≈σ' with ≈σ-sub {e = e} ≈σ'
|
||||
... | mk-≈ e' e↪*e' e₁↪*e' = mk-≈ (`Setω e') (ξ*-Setω e↪*e') (ξ*-Setω e₁↪*e')
|
||||
≈σ-sub {e = `Setn e} ≈σ' with ≈σ-sub {e = e} ≈σ'
|
||||
... | mk-≈ e' e↪*e' e₁↪*e' = mk-≈ (`Setn e') (ξ*-Setn e↪*e') (ξ*-Setn e₁↪*e')
|
||||
≈σ-sub {e = `lsuc e} ≈σ' with ≈σ-sub {e = e} ≈σ'
|
||||
... | mk-≈ e' e↪*e' e₁↪*e' = mk-≈ (`lsuc e') (ξ*-lsuc e↪*e') (ξ*-lsuc e₁↪*e')
|
||||
≈σ-sub {e = l `⊔ r} ≈σ' with ≈σ-sub {e = l} ≈σ' | ≈σ-sub {e = r} ≈σ'
|
||||
... | mk-≈ l' l↪*l' l₂↪*l' | mk-≈ r' r↪*r' r₂↪*r'
|
||||
= mk-≈ (l' `⊔ r') (↪*-trans (ξ*-⊔₁ l↪*l') (ξ*-⊔₂ r↪*r')) ((↪*-trans (ξ*-⊔₁ l₂↪*l') (ξ*-⊔₂ r₂↪*r')))
|
||||
|
||||
≈→≈σ : ∀ {n} {e e' : Term n}
|
||||
→ e ≈ e'
|
||||
@@ -288,11 +319,11 @@ ext-≈σ ≈ₛ (suc x) with ≈ₛ x
|
||||
↪-ren ρ (ξ-subst₂ x) = ξ-subst₂ (↪-ren ρ x)
|
||||
↪-ren ρ (ξ-subst₃ x) = ξ-subst₃ (↪-ren ρ x)
|
||||
-- New
|
||||
↪-ren ρ (ξ-⊔₁ x) = {! !}
|
||||
↪-ren ρ (ξ-⊔₂ x) = {! !}
|
||||
↪-ren ρ (ξ-lsuc x) = {! !}
|
||||
↪-ren ρ (ξ-Setn x) = {! !}
|
||||
↪-ren ρ (ξ-Setω x) = {! !}
|
||||
↪-ren ρ (ξ-⊔₁ x) = ξ-⊔₁ (↪-ren ρ x)
|
||||
↪-ren ρ (ξ-⊔₂ x) = ξ-⊔₂ (↪-ren ρ x)
|
||||
↪-ren ρ (ξ-lsuc x) = ξ-lsuc (↪-ren ρ x)
|
||||
↪-ren ρ (ξ-Setn x) = ξ-Setn (↪-ren ρ x)
|
||||
↪-ren ρ (ξ-Setω x) = ξ-Setω (↪-ren ρ x)
|
||||
|
||||
-- Renaming preserves many reduction steps
|
||||
|
||||
@@ -335,12 +366,12 @@ ext-≈σ ≈ₛ (suc x) with ≈ₛ x
|
||||
↪-sub σ (ξ-subst₁ x) = ξ-subst₁ (↪-sub (extₛ σ) x)
|
||||
↪-sub σ (ξ-subst₂ x) = ξ-subst₂ (↪-sub σ x)
|
||||
-- New
|
||||
↪-sub σ (ξ-⊔₁ x) = {! !}
|
||||
↪-sub σ (ξ-⊔₂ x) = {! !}
|
||||
↪-sub σ (ξ-lsuc x) = {! !}
|
||||
↪-sub σ (ξ-Setn x) = {! !}
|
||||
↪-sub σ (ξ-subst₃ x) = {! !}
|
||||
↪-sub σ (ξ-Setω x) = {! !}
|
||||
↪-sub σ (ξ-⊔₁ x) = ξ-⊔₁ (↪-sub σ x)
|
||||
↪-sub σ (ξ-⊔₂ x) = ξ-⊔₂ (↪-sub σ x)
|
||||
↪-sub σ (ξ-lsuc x) = ξ-lsuc (↪-sub σ x)
|
||||
↪-sub σ (ξ-Setn x) = ξ-Setn (↪-sub σ x)
|
||||
↪-sub σ (ξ-subst₃ x) = ξ-subst₃ (↪-sub σ x)
|
||||
↪-sub σ (ξ-Setω x) = ξ-Setω (↪-sub σ x)
|
||||
|
||||
-- Substitution preserves many reduction steps
|
||||
|
||||
@@ -396,12 +427,12 @@ _≈ᶜ_ : ∀ {n} → Context n → Context n → Set
|
||||
≈-Γ-⊢ Γ₁≈Γ₂ (⊢-subst t'⊢t ⊢u₁ ⊢u₂ ⊢≡ ⊢t[u₁])
|
||||
= ⊢-subst (≈-Γ-⊢ (≈-ext Γ₁≈Γ₂ ≈-refl) t'⊢t) (≈-Γ-⊢ Γ₁≈Γ₂ ⊢u₁) (≈-Γ-⊢ Γ₁≈Γ₂ ⊢u₂) (≈-Γ-⊢ Γ₁≈Γ₂ ⊢≡) (≈-Γ-⊢ Γ₁≈Γ₂ ⊢t[u₁])
|
||||
-- New
|
||||
≈-Γ-⊢ Γ₁≈Γ₂ ⊢-Setn = {! !}
|
||||
≈-Γ-⊢ Γ₁≈Γ₂ ⊢-Setω = {! !}
|
||||
≈-Γ-⊢ Γ₁≈Γ₂ ⊢-lzero = {! !}
|
||||
≈-Γ-⊢ Γ₁≈Γ₂ (⊢-lsuc ⊢x) = {! !}
|
||||
≈-Γ-⊢ Γ₁≈Γ₂ (⊢-⊔ ⊢x ⊢x₁) = {! !}
|
||||
≈-Γ-⊢ Γ₁≈Γ₂ ⊢-Level = {! !}
|
||||
≈-Γ-⊢ Γ₁≈Γ₂ ⊢-Setn = ⊢-Setn
|
||||
≈-Γ-⊢ Γ₁≈Γ₂ ⊢-Setω = ⊢-Setω
|
||||
≈-Γ-⊢ Γ₁≈Γ₂ ⊢-lzero = ⊢-lzero
|
||||
≈-Γ-⊢ Γ₁≈Γ₂ (⊢-lsuc ⊢x) = ⊢-lsuc (≈-Γ-⊢ Γ₁≈Γ₂ ⊢x)
|
||||
≈-Γ-⊢ Γ₁≈Γ₂ (⊢-⊔ ⊢x ⊢x₁) = ⊢-⊔ (≈-Γ-⊢ Γ₁≈Γ₂ ⊢x) (≈-Γ-⊢ Γ₁≈Γ₂ ⊢x₁)
|
||||
≈-Γ-⊢ Γ₁≈Γ₂ ⊢-Level = ⊢-Level
|
||||
|
||||
≈-Γ-⊢₁ : ∀ {n} {Γ : Context n} {t₁ t₂ : Term n} {e t : Term (suc n)}
|
||||
→ t₁ ≈ t₂
|
||||
@@ -424,9 +455,9 @@ _≈ᶜ_ : ∀ {n} → Context n → Context n → Set
|
||||
(≈-Γ-⊢₁ t₁≈t₂ t₁⊢u₂)
|
||||
(≈-Γ-⊢₁ t₁≈t₂ t₁⊢≡)
|
||||
(≈-Γ-⊢₁ t₁≈t₂ t₁⊢t[u₁])
|
||||
≈-Γ-⊢₁ t₁≈t₂ ⊢-Setn = {! !}
|
||||
≈-Γ-⊢₁ t₁≈t₂ ⊢-Setω = {! !}
|
||||
≈-Γ-⊢₁ t₁≈t₂ ⊢-lzero = {! !}
|
||||
≈-Γ-⊢₁ t₁≈t₂ (⊢-lsuc ⊢x) = {! !}
|
||||
≈-Γ-⊢₁ t₁≈t₂ (⊢-⊔ ⊢x ⊢x₁) = {! !}
|
||||
≈-Γ-⊢₁ t₁≈t₂ ⊢-Level = {! !}
|
||||
≈-Γ-⊢₁ t₁≈t₂ ⊢-Setn = ⊢-Setn
|
||||
≈-Γ-⊢₁ t₁≈t₂ ⊢-Setω = ⊢-Setω
|
||||
≈-Γ-⊢₁ t₁≈t₂ ⊢-lzero = ⊢-lzero
|
||||
≈-Γ-⊢₁ t₁≈t₂ (⊢-lsuc ⊢x) = ⊢-lsuc (≈-Γ-⊢₁ t₁≈t₂ ⊢x)
|
||||
≈-Γ-⊢₁ t₁≈t₂ (⊢-⊔ ⊢x ⊢x₁) = ⊢-⊔ (≈-Γ-⊢₁ t₁≈t₂ ⊢x) (≈-Γ-⊢₁ t₁≈t₂ ⊢x₁)
|
||||
≈-Γ-⊢₁ t₁≈t₂ ⊢-Level = ⊢-Level
|
||||
|
||||
Reference in New Issue
Block a user