Original Slides: slides-01-lambda
EXERCISE: Boolean Operators
let NOT = \b -> b FALSE TRUE
let NOT = \b -> ITE b FALSE TRUE
let NOT = \b -> (\x y -> b y x)
let OR = \b1 b2 -> ITE b1 TRUE b2
let AND = \b1 b2 -> ITE b1 (ITE b2 TRUE FALSE) FALSE
= \b1 b2 -> ITE b1 b2 FALSE
s.t.
eval ex_not_t:
NOT TRUE =*> FALSE
NOT (\x y -> x) =*> (\x y -> y)
eval ex_not_f:
NOT FALSE =*> TRUE
eval ex_or_ff:
OR FALSE FALSE =*> FALSE
eval ex_or_ft:
OR FALSE TRUE =*> TRUE
eval ex_or_ft:
OR TRUE FALSE =*> TRUE
eval ex_or_tt:
OR TRUE TRUE =*> TRUE
eval ex_and_ff:
AND FALSE FALSE =*> FALSE
eval ex_and_ft:
AND FALSE TRUE =*> FALSE
eval ex_and_ft:
AND TRUE FALSE =*> FALSE
eval ex_and_tt:
AND TRUE TRUE =*> TRUE