module A201602.AltArtemovS4 where open import Relation.Binary.PropositionalEquality using (_β‘_ ; refl) import A201602.AltArtemov as πβ import A201602.S4 as S4 forget : πβ.Ty β S4.Ty forget πβ.β₯ = S4.β₯ forget (A πβ.β B) = forget A S4.β forget B forget (A πβ.β§ B) = forget A S4.β§ forget B forget (A πβ.β¨ B) = forget A S4.β¨ forget B forget (x πβ.βΆ A) = S4.β‘ forget A πβ-drop : β{A} β πβ.β© A β πβ.Ty πβ-drop {A} _ = A S4-drop : β{A} β S4.β© A β S4.Ty S4-drop {A} _ = A tI : β{A} β forget (πβ-drop (πβ.PL.I {A})) β‘ S4-drop (S4.SKICombinators.I {forget A}) tI = refl tIΒ² : β{A} β forget (πβ-drop (πβ.PLExamples.IΒ² {A})) β‘ S4-drop (S4.SKICombinators.IΒ² {forget A}) tIΒ² = refl tK : β{A B} β forget (πβ-drop (πβ.PL.K {A} {B})) β‘ S4-drop (S4.SKICombinators.K {forget A} {forget B}) tK = refl tKΒ² : β{A B} β forget (πβ-drop (πβ.PLExamples.KΒ² {A} {B})) β‘ S4-drop (S4.SKICombinators.KΒ² {forget A} {forget B}) tKΒ² = refl tS : β{A B C} β forget (πβ-drop (πβ.PL.S {A} {B} {C})) β‘ S4-drop (S4.SKICombinators.S {forget A} {forget B} {forget C}) tS = refl tSΒ² : β{A B C} β forget (πβ-drop (πβ.PLExamples.SΒ² {A} {B} {C})) β‘ S4-drop (S4.SKICombinators.SΒ² {forget A} {forget B} {forget C}) tSΒ² = refl tE13 : β{A B} β forget (πβ-drop (πβ.Example1.E13 {A} {B})) β‘ S4-drop (S4.Example1.E13 {forget A} {forget B}) tE13 = refl tE14 : β{x y A B} β forget (πβ-drop (πβ.Example1.E14 {x} {y} {A} {B})) β‘ S4-drop (S4.Example1.E14 {forget A} {forget B}) tE14 = refl