Link Search Menu Expand Document

BooleanAlgebra overview

Boolean algebras are Heyting algebras with the additional constraint that the law of the excluded middle is true (equivalently, double-negation is true).

Instances should satisfy the following laws in addition to the HeytingAlgebra laws:

  • Excluded middle: a ∨ ¬a <-> 1

Boolean algebras generalize classical logic: one is equivalent to “true” and zero is equivalent to “false”.

Added in v2.0.0


Table of contents


combinators

reverse

Every boolean algebras has a dual algebra, which involves reversing one/zero as well as join/meet.

Signature

export declare const reverse: <A>(B: BooleanAlgebra<A>) => BooleanAlgebra<A>

Added in v2.10.0

getDualBooleanAlgebra

Use reverse instead.

Signature

export declare const getDualBooleanAlgebra: <A>(B: BooleanAlgebra<A>) => BooleanAlgebra<A>

Added in v2.0.0

instances

booleanAlgebraVoid

Signature

export declare const booleanAlgebraVoid: BooleanAlgebra<void>

Added in v2.0.0

booleanAlgebraBoolean

Use BooleanAlgebra instead.

Signature

export declare const booleanAlgebraBoolean: BooleanAlgebra<boolean>

Added in v2.0.0

getFunctionBooleanAlgebra

Use getBooleanAlgebra instead.

Signature

export declare const getFunctionBooleanAlgebra: <B>(
  B: BooleanAlgebra<B>
) => <A = never>() => BooleanAlgebra<(a: A) => B>

Added in v2.0.0

type classes

BooleanAlgebra (interface)

Signature

export interface BooleanAlgebra<A> extends HeytingAlgebra<A> {}

Added in v2.0.0