-- Kleene's three-valued logic module bool-kleene where open import bool open import eq data ๐”นโ‚– : Set where tt : ๐”นโ‚– ff : ๐”นโ‚– uu : ๐”นโ‚– infix 7 ~โ‚–_ infixr 6 _&&โ‚–_ infixr 5 _||โ‚–_ --infixr 4 _impโ‚–_ ~โ‚–_ : ๐”นโ‚– โ†’ ๐”นโ‚– ~โ‚– tt = ff ~โ‚– ff = tt ~โ‚– uu = uu -- and _&&โ‚–_ : ๐”นโ‚– โ†’ ๐”นโ‚– โ†’ ๐”นโ‚– tt &&โ‚– b = b ff &&โ‚– b = ff uu &&โ‚– ff = ff uu &&โ‚– b = uu -- or _||โ‚–_ : ๐”นโ‚– โ†’ ๐”นโ‚– โ†’ ๐”นโ‚– ff ||โ‚– b = b tt ||โ‚– b = tt uu ||โ‚– tt = tt uu ||โ‚– b = uu -- implication _impโ‚–_ : ๐”นโ‚– โ†’ ๐”นโ‚– โ†’ ๐”นโ‚– tt impโ‚– b2 = b2 ff impโ‚– b2 = tt uu impโ‚– tt = tt uu impโ‚– b = uu knownโ‚– : ๐”นโ‚– โ†’ ๐”น knownโ‚– tt = tt knownโ‚– ff = tt knownโ‚– uu = ff to-๐”น : (b : ๐”นโ‚–) โ†’ knownโ‚– b โ‰ก tt โ†’ ๐”น to-๐”น tt p = tt to-๐”น ff p = ff to-๐”น uu ()