module A201605.AltArtemov.Old.Common.Cx.WithGUniform where
open import A201605.AltArtemov.Old.Common.Ty.WithG public
data Cx (g : ℕ) : Set where
∅ : Cx g
_,_ : ∀ {n} → Cx g → Ty g n → Cx g
ᵍ⌊_⌋ : ∀ {g} → Cx g → ℕ
ᵍ⌊ ∅ ⌋ = zero
ᵍ⌊ Γ , A ⌋ = suc ᵍ⌊ Γ ⌋
ren-cx : ∀ {g g′} → g′ ≥ g → Cx g → Cx g′
ren-cx h ∅ = ∅
ren-cx h (Γ , A) = ren-cx h Γ , ren-ty h A
wk-cx : ∀ {g} → Cx g → Cx (suc g)
wk-cx = ren-cx ≥wk
wk*-cx : ∀ {g} → Cx 0 → Cx g
wk*-cx = ren-cx ≥to
ren-cx-id : ∀ {g} (Γ : Cx g) → ren-cx ≥id Γ ≡ Γ
ren-cx-id ∅ = refl
ren-cx-id (Γ , A) = cong₂ _,_ (ren-cx-id Γ) (ren-ty-id A)
ren-cx-○ : ∀ {g g′ g″} (h′ : g″ ≥ g′) (h : g′ ≥ g) (Γ : Cx g) →
ren-cx h′ (ren-cx h Γ) ≡ ren-cx (h′ ○ h) Γ
ren-cx-○ h′ h ∅ = refl
ren-cx-○ h′ h (Γ , A) = cong₂ _,_ (ren-cx-○ h′ h Γ) (ren-ty-○ h′ h A)