Module logic
Implementations of boolean values and logical operators
- lambda_calculus.terms.logic.TRUE: Final = Abstraction(bound='x', body=Abstraction(bound='y', body=Variable(name='x')))
Term representing True.
- lambda_calculus.terms.logic.FALSE: Final = Abstraction(bound='x', body=Abstraction(bound='y', body=Variable(name='y')))
Term representing False
- lambda_calculus.terms.logic.AND: Final = Abstraction(bound='p', body=Abstraction(bound='q', body=Application(abstraction=Application(abstraction=Variable(name='p'), argument=Variable(name='q')), argument=Variable(name='p'))))
Term implementing logical conjunction between its two arguments.
- lambda_calculus.terms.logic.OR: Final = Abstraction(bound='p', body=Abstraction(bound='q', body=Application(abstraction=Application(abstraction=Variable(name='p'), argument=Variable(name='p')), argument=Variable(name='q'))))
Term implementing logical disjunction between its two arguments.
- lambda_calculus.terms.logic.NOT: Final = Abstraction(bound='p', body=Application(abstraction=Application(abstraction=Variable(name='p'), argument=Abstraction(bound='x', body=Abstraction(bound='y', body=Variable(name='y')))), argument=Abstraction(bound='x', body=Abstraction(bound='y', body=Variable(name='x')))))
Term performing logical negation of its argument.
- lambda_calculus.terms.logic.IF_THEN_ELSE: Final = Abstraction(bound='p', body=Abstraction(bound='a', body=Abstraction(bound='b', body=Application(abstraction=Application(abstraction=Variable(name='p'), argument=Variable(name='a')), argument=Variable(name='b')))))
Term evaluating to its second argument if its first argument is TRUE or its third argument otherwise.