Function lambda_calculus::arithmetic::eq
[−]
[src]
pub fn eq() -> Term
Applied to two Church-encoded numbers it returns a Church-encoded boolean indicating whether its first argument is egual to the second one.
EQ := λmn.AND (LEQ m n) (LEQ n m) = λ λ AND (LEQ 2 1) (LEQ 1 2)
Example
use lambda_calculus::arithmetic::{zero, one, eq}; use lambda_calculus::booleans::{tru, fls}; use lambda_calculus::reduction::normalize; assert_eq!(normalize(eq().app(zero()).app(zero())), tru()); assert_eq!(normalize(eq().app(one()).app(one())), tru()); assert_eq!(normalize(eq().app(zero()).app(one())), fls()); assert_eq!(normalize(eq().app(one()).app(zero())), fls());