# Pastebin WqyybeE7 mutual mono⊢ : ∀ {Δ Γ Δ′ Γ′ A} → Δ′ ⊇ Δ → Γ′ ⊇ Γ → Δ ⁏ Γ ⊢ A → Δ′ ⁏ Γ′ ⊢ A mono⊢ ζ η (var 𝒾) = var (mono∋ η 𝒾) mono⊢ ζ η (mvar ψ 𝒾) = mvar (mono⊢⋆ ζ η ψ) (mono∋ ζ 𝒾) mono⊢ ζ η (lam 𝒟) = lam (mono⊢ ζ (lift η) 𝒟) mono⊢ ζ η (app 𝒟 ℰ) = app (mono⊢ ζ η 𝒟) (mono⊢ ζ η ℰ) mono⊢ ζ η (box 𝒟) = box (mono⊢ ζ refl⊇ 𝒟) mono⊢ ζ η (unbox 𝒟 ℰ) = unbox (mono⊢ ζ η 𝒟) (mono⊢ (lift ζ) η ℰ) mono⊢⋆ : ∀ {Δ Γ Δ′ Γ′ Ξ} → Δ′ ⊇ Δ → Γ′ ⊇ Γ → Δ ⁏ Γ ⊢⋆ Ξ → Δ′ ⁏ Γ′ ⊢⋆ Ξ mono⊢⋆ ζ η ∅ = ∅ mono⊢⋆ ζ η (ξ , 𝒟) = mono⊢⋆ ζ η ξ , mono⊢ ζ η 𝒟 -- NOTE: Equivalent, but does not pass termination check. -- mono⊢⋆ ζ η ξ = mapAll (mono⊢ ζ η) ξ