open import Definition.Typed.Restrictions
module Definition.Typed.Consequences.DerivedRules.Nat
{a} {M : Set a}
(R : Type-restrictions M)
where
open import Definition.Untyped M
open import Definition.Typed R
open import Definition.Typed.Properties R
open import Definition.Typed.Consequences.Syntactic R
open import Definition.Typed.Consequences.Substitution R
open import Tools.Fin
open import Tools.Nat
open import Tools.Product
private
variable
n : Nat
Γ : Con Term n
sucCong : ∀ {F G} → Γ ∙ ℕ ⊢ F ≡ G
→ Γ ∙ ℕ ∙ F ⊢ F [ suc (var x1) ]↑² ≡ G [ suc (var x1) ]↑²
sucCong F≡G with wfEq F≡G
sucCong F≡G | ⊢Γ ∙ ⊢ℕ =
let ⊢F , ⊢G = syntacticEq F≡G
in subst↑²TypeEq ⊢ℕ ⊢F F≡G (refl (sucⱼ (var (⊢Γ ∙ ⊢ℕ ∙ ⊢F) (there here))))
sucCong′ : ∀ {F G} → Γ ∙ ℕ ⊢ F ≡ G
→ Γ ∙ ℕ ∙ G ⊢ F [ suc (var x1) ]↑² ≡ G [ suc (var x1) ]↑²
sucCong′ F≡G with wfEq F≡G
sucCong′ F≡G | ⊢Γ ∙ ⊢ℕ =
let ⊢F , ⊢G = syntacticEq F≡G
in subst↑²TypeEq ⊢ℕ ⊢G F≡G (refl (sucⱼ (var (⊢Γ ∙ ⊢ℕ ∙ ⊢G) (there here))))