open import Definition.Typed.EqualityRelation
open import Definition.Typed.Restrictions
open import Graded.Modality
module
Definition.LogicalRelation.Substitution.Introductions.Sigma
{a} {M : Set a}
{𝕄 : Modality M}
(R : Type-restrictions 𝕄)
⦃ eqrel : EqRelSet R ⦄
where
open Type-restrictions R
open import Definition.LogicalRelation R
open import Definition.LogicalRelation.Hidden R
open import Definition.LogicalRelation.Substitution R
open import
Definition.LogicalRelation.Substitution.Introductions.Sigma.Strong R
open import
Definition.LogicalRelation.Substitution.Introductions.Sigma.Weak R
open import Definition.Untyped M
private variable
Γ : Con Term _
A B t t₁ t₂ u u₁ u₂ : Term _
p q : M
l l′ l″ : TypeLevel
s : Strength
opaque
⊩prod≡prod :
Γ ⊩⟨ l ⟩ Σ⟨ s ⟩ p , q ▷ A ▹ B →
Γ ⊩⟨ l′ ⟩ t₁ ≡ t₂ ∷ A →
Γ ⊩⟨ l″ ⟩ u₁ ≡ u₂ ∷ B [ t₁ ]₀ →
Γ ⊩⟨ l ⟩ prod s p t₁ u₁ ≡ prod s p t₂ u₂ ∷ Σ⟨ s ⟩ p , q ▷ A ▹ B
⊩prod≡prod {s = 𝕨} = ⊩prodʷ≡prodʷ
⊩prod≡prod {s = 𝕤} = ⊩prodˢ≡prodˢ
opaque
prod-congᵛ :
Σ-allowed s p q →
Γ ∙ A ⊩ᵛ⟨ l ⟩ B →
Γ ⊩ᵛ⟨ l ⟩ t₁ ≡ t₂ ∷ A →
Γ ⊩ᵛ⟨ l′ ⟩ u₁ ≡ u₂ ∷ B [ t₁ ]₀ →
Γ ⊩ᵛ⟨ l ⟩ prod s p t₁ u₁ ≡ prod s p t₂ u₂ ∷ Σ⟨ s ⟩ p , q ▷ A ▹ B
prod-congᵛ {s = 𝕨} = prodʷ-congᵛ
prod-congᵛ {s = 𝕤} = prodˢ-congᵛ
opaque
prodᵛ :
Σ-allowed s p q →
Γ ∙ A ⊩ᵛ⟨ l ⟩ B →
Γ ⊩ᵛ⟨ l ⟩ t ∷ A →
Γ ⊩ᵛ⟨ l′ ⟩ u ∷ B [ t ]₀ →
Γ ⊩ᵛ⟨ l ⟩ prod s p t u ∷ Σ⟨ s ⟩ p , q ▷ A ▹ B
prodᵛ {s = 𝕨} = prodʷᵛ
prodᵛ {s = 𝕤} = prodˢᵛ