module A201605.AltArtemov.Try3.Scratch where {- ------- ⊥ type A type B type ---------------- (A ⊃ B) type A type B type ---------------- (A ∧ B) type t term A type ---------------- (t ∶ A) type ---------- Γ , A ⊢ A ------------------------------- Γ , A ⊢ xₙ ∶ xₙ₋₁ ∶ … ∶ x ∶ A Γ , A ⊢ B ---------- Γ ⊢ A ⊃ B Γ , A ⊢ tₙ ∶ tₙ₋₁ ∶ … ∶ t ∶ B ------------------------------------------- Γ ⊢ λⁿ tₙ ∶ λⁿ⁻¹ tₙ₋₁ ∶ … ∶ λ t ∶ (A ⊃ B) Γ ⊢ A ⊃ B Γ ⊢ A -------------------- Γ ⊢ B Γ ⊢ tₙ ∶ tₙ₋₁ ∶ … ∶ t ∶ (A ⊃ B) Γ ⊢ sₙ ∶ sₙ₋₁ ∶ … ∶ s ∶ A ---------------------------------------------------------------- Γ ⊢ (tₙ ∘ⁿ sₙ) ∶ (tₙ₋₁ ∘ⁿ⁻¹ sₙ₋₁) ∶ … ∶ (t ∘ s) ∶ B Γ ⊢ A Γ ⊢ B ---------------- Γ ⊢ A ∧ B Γ ⊢ tₙ ∶ tₙ₋₁ ∶ … ∶ t ∶ A Γ ⊢ sₙ ∶ sₙ₋₁ ∶ … ∶ s ∶ B -------------------------------------------------------------- Γ ⊢ pⁿ(tₙ , sₙ) ∶ pⁿ⁻¹(tₙ₋₁ , sₙ₋₁) ∶ … ∶ p(t , s) ∶ (A ∧ B) Γ ⊢ A ∧ B ---------- Γ ⊢ A Γ ⊢ tₙ ∶ tₙ₋₁ ∶ … ∶ t ∶ (A ∧ B) ---------------------------------------- Γ ⊢ π₀ⁿ tₙ ∶ π₀ⁿ⁻¹ tₙ₋₁ ∶ … ∶ π₀ t ∶ A Γ ⊢ A ∧ B ---------- Γ ⊢ B Γ ⊢ tₙ ∶ tₙ₋₁ ∶ … ∶ t ∶ (A ∧ B) ---------------------------------------- Γ ⊢ π₁ⁿ tₙ ∶ π₁ⁿ⁻¹ tₙ₋₁ ∶ … ∶ π₁ t ∶ B 𝒟 : Γ ⊢ A ------------ Γ ⊢ ⌊𝒟⌋ ∶ A 𝒟 : Γ ⊢ t ∶ A ---------------- Γ ⊢ ⌊𝒟⌋ ∶ t ∶ A 𝒟 : Γ ⊢ tₙ ∶ tₙ₋₁ ∶ … ∶ t ∶ A --------------------------------- Γ ⊢ ⌊𝒟⌋ ∶ tₙ ∶ tₙ₋₁ ∶ … ∶ t ∶ A Γ ⊢ ⌊𝒟⌋ ∶ A ------------ Γ ⊢ A Γ ⊢ ⌊𝒟⌋ ∶ t ∶ A ---------------- Γ ⊢ t ∶ A Γ ⊢ ⌊𝒟⌋ ∶ tₙ ∶ tₙ₋₁ ∶ … ∶ t ∶ A --------------------------------- Γ ⊢ tₙ ∶ tₙ₋₁ ∶ … ∶ t ∶ A -}