module A201606.PfenningDaviesS4.Examples where open import A201606.PfenningDaviesS4.CoinductiveNormalisationByEvaluation public I : ∀ {A Γ Δ} → Tm Γ Δ (A ⊃ A) I = lam v₀ K : ∀ {A B Γ Δ} → Tm Γ Δ (A ⊃ B ⊃ A) K = lam (lam v₁) S : ∀ {A B C Γ Δ} → Tm Γ Δ ((A ⊃ B ⊃ C) ⊃ (A ⊃ B) ⊃ A ⊃ C) S = lam (lam (lam (app (app v₂ v₀) (app v₁ v₀)))) D : ∀ {A B Γ Δ} → Tm Γ Δ (□ (A ⊃ B) ⊃ □ A ⊃ □ B) D = lam (lam (unbox v₁ (unbox v₀ (box (app ⋆v₁ ⋆v₀))))) T : ∀ {A Γ Δ} → Tm Γ Δ (□ A ⊃ A) T = lam (unbox v₀ ⋆v₀) #4 : ∀ {A Γ Δ} → Tm Γ Δ (□ A ⊃ □ □ A) #4 = lam (unbox v₀ (box (box ⋆v₀))) E00 : ∀ {A B Γ Δ} → Tm Γ Δ (A ⊃ B ⊃ A ∧ B) E00 = lam (lam (pair v₁ v₀)) E01 : ∀ {A B Γ Δ} → Tm Γ Δ (□ A ⊃ □ B ⊃ □ □ (A ∧ B)) E01 = lam (lam (unbox v₁ (unbox v₀ (box (box (pair ⋆v₁ ⋆v₀)))))) E02 : ∀ {A B Γ Δ} → Tm Γ Δ (□ A ⊃ □ B ⊃ □ (A ∧ B)) E02 = lam (lam (unbox v₁ (unbox v₀ (box (pair ⋆v₁ ⋆v₀))))) E03 : ∀ {A B Γ Δ} → Tm Γ Δ (□ A ∧ □ B ⊃ □ □ (A ∧ B)) E03 = lam (unbox (fst v₀) (unbox (snd v₀) (box (box (pair ⋆v₁ ⋆v₀))))) E04 : ∀ {A B Γ Δ} → Tm Γ Δ (□ A ∧ □ B ⊃ □ (A ∧ B)) E04 = lam (unbox (fst v₀) (unbox (snd v₀) (box (pair ⋆v₁ ⋆v₀)))) E11 : ∀ {A Γ Δ} → Tm Γ Δ (□ (□ A ⊃ A)) E11 = box T E12 : ∀ {A Γ Δ} → Tm Γ Δ (□ (□ A ⊃ □ □ A)) E12 = box #4 E13 : ∀ {A B Γ Δ} → Tm Γ Δ (□ □ (A ⊃ B ⊃ A ∧ B)) E13 = box (box (lam (lam (pair v₁ v₀)))) E14 : ∀ {A B Γ Δ} → Tm Γ Δ (□ (□ A ⊃ □ B ⊃ □ □ (A ∧ B))) E14 = box (lam (lam (unbox v₁ (unbox v₀ (box (box (pair ⋆v₁ ⋆v₀)))))))