[Math] lambda calculus, definition of true and false

boolean-algebralambda-calculus

Are the following lambda-calculus definitions axiomatic?

  • true: $\lambda xy.x$
  • false: $\lambda xy.y$

Is the definition truly arbitrary? In my impression, it looks like we could just swap the definitions for true and false around. Would an alternative definition such as the following one be ok:

  • true: $\lambda xy.y$
  • false: $\lambda xy.x$

Is it possible that "true" is just an arbitrary choice, while "false" then needs to be the opposite of "true" in a certain way?

Would the following definition by outright wrong:

  • true: $\lambda xy.xz$
  • false: $\lambda xy.yz$

If more than one definition for true and false is possible, how could we describe the class of "consistent" definitions for true and false?

Best Answer

If you swap "true" and "false" you'll have to swap "and" and "or" too. If you having quantifiers you must swap "for all" and "exists" too. Basically this is what De Morgan laws says.

Then you of course has the interpretation of the "truth" that makes swapping something that doesn't work well with our intuitive concepts. You will be using another language that's consistent, but doesn't mean the same as in the language everybody else uses.

Related Question