Some definitions and adjusted proofs

This commit is contained in:
JKF
2026-04-25 21:57:10 +02:00
parent 5cbf679c0c
commit e8ee5b200c
4 changed files with 96 additions and 66 deletions
+63 -32
View File
@@ -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