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;

let mut expr = is_zero().app(zero());
expr.beta_full();

assert_eq!(expr, tru());