Reputation: 23
FALSE = λxy.y TRUE = λxy.x
We can define the NOT operation as follows: NOT = λx.x FALSE TRUE
I can prove NOT FALSE by doing this:
`NOT FALSE = λx.x (λxy.y) (λxy.x) (λxy.y)
- x = x
- M = x (λxy.y) (λxy.x)
- N = (λxy.y)
(λxy.y) (λxy.y) (λxy.x)
- x = x
- M = λy.y
- N = λxy.y
λy.y {x --> λxy.y} = λy.y
(λy.y)(λxy.x)
- x = y
- M = y
- N = λxy.x
y { y --> λxy.x) = λxy.x which is TRUE`
How can I prove NOT TRUE is FALSE using beta reductions?
Upvotes: 1
Views: 128
Reputation: 23
I figured out the answer was to leave TRUE and FALSE as they were.
NOT TRUE = λx.x (λxy.y) (λxy.x) (λxy.x)
- x = x
- M = x (λxy.y) (λxy.x)
- N = (λxy.y)
(λxy.x) (λxy.y) (λxy.x) TRUE FALSE TRUE
(λxy.x) FALSE TRUE
- x = x
- M = λy.x
- N = λxy.y
λy.x {x --> λxy.y} = λy.(λxy.y)
λy. (λxy.y) (λxy.x) λy. FALSE TRUE
- x = λy
- M = λxy.y (FALSE)
- N = λxy.x (TRUE)
FALSE {y --> (λxy.x)} = (λxy.y)
λxy.y which is False
Upvotes: 0