Function lambda_calculus::arithmetic::is_zero [] [src]

pub fn is_zero() -> Term

Applied to a Church-encoded number it produces a Church-encoded boolean, indicating whether its argument is equal to zero.

IS_ZERO := λn.n (λx.FALSE) TRUE = λ 1 (λ FALSE) TRUE

Example

use lambda_calculus::arithmetic::{zero, is_zero};
use lambda_calculus::booleans::tru;
use lambda_calculus::reduction::normalize;

assert_eq!(normalize(is_zero().app(zero())), tru());