Function lambda_calculus::data::boolean::xnor

source ·
pub fn xnor() -> Term
Expand description

Applied to two lambda-encoded booleans it returns their lambda-encoded exclusive joint denial (nor); it is also known as iff.

XNOR ≡ λpq.p q (NOT q) ≡ λ λ 2 1 (NOT 1)

Examples

use lambda_calculus::data::boolean::{xnor, tru, fls};
use lambda_calculus::*;

assert_eq!(beta(app!(xnor(), tru(), tru()), NOR, 0), tru());
assert_eq!(beta(app!(xnor(), tru(), fls()), NOR, 0), fls());
assert_eq!(beta(app!(xnor(), fls(), tru()), NOR, 0), fls());
assert_eq!(beta(app!(xnor(), fls(), fls()), NOR, 0), tru());