`true : β―βΊ πΈ
`true = val β¨ x β© β¨ y β© x
`false : β―βΊ πΈ
`false = val β¨ x β© β¨ y β© y
`not : β―βΊ A
`not = val β¨ x β© x `Β· `false `Β· `true
abstract
`trueββ : β a β β β `true β a β
`trueββ x = subst β_β (sym (abs-Ξ²β [] ((_ , x) β· []))) (absβ _ _)
`falseββ : β a β β β `false .fst % a β
`falseββ ah = subst β_β (sym (abs-Ξ²β [] ((_ , ah) β· []))) (absβ _ _)
`false-Ξ² : β a β β β b β β `false β a β b β‘ b
`false-Ξ² {a} {b} ah bh = abs-Ξ²β [] ((b , bh) β· (a , ah) β· [])
`true-Ξ² : β a β β β b β β `true β a β b β‘ a
`true-Ξ² {a} {b} ah bh = abs-Ξ²β [] ((b , bh) β· (a , ah) β· [])
`not-Ξ²t : `not β `true β‘ `false .fst
`not-Ξ²t = abs-Ξ² _ [] `true β abs-Ξ²β [] (`true β· `false β· [])
`not-Ξ²f : `not β `false β‘ `true .fst
`not-Ξ²f = abs-Ξ² _ [] `false β abs-Ξ²β [] (`true β· `false β· [])