"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getFunctionBooleanAlgebra = exports.booleanAlgebraBoolean = exports.getDualBooleanAlgebra = exports.booleanAlgebraVoid = exports.reverse = void 0; var function_1 = require("./function"); // ------------------------------------------------------------------------------------- // combinators // ------------------------------------------------------------------------------------- /** * Every boolean algebras has a dual algebra, which involves reversing one/zero as well as join/meet. * * @since 2.10.0 */ var reverse = function (B) { return ({ meet: function (x, y) { return B.join(x, y); }, join: function (x, y) { return B.meet(x, y); }, zero: B.one, one: B.zero, implies: function (x, y) { return B.join(B.not(x), y); }, not: B.not }); }; exports.reverse = reverse; // ------------------------------------------------------------------------------------- // instances // ------------------------------------------------------------------------------------- /** * @category instances * @since 2.0.0 */ exports.booleanAlgebraVoid = { meet: function () { return undefined; }, join: function () { return undefined; }, zero: undefined, one: undefined, implies: function () { return undefined; }, not: function () { return undefined; } }; // ------------------------------------------------------------------------------------- // deprecated // ------------------------------------------------------------------------------------- /** * Use [`reverse`](#reverse) instead. * * @category zone of death * @since 2.0.0 * @deprecated */ exports.getDualBooleanAlgebra = exports.reverse; /** * Use [`BooleanAlgebra`](./boolean.ts.html#booleanalgebra) instead. * * @category zone of death * @since 2.0.0 * @deprecated */ exports.booleanAlgebraBoolean = { meet: function (x, y) { return x && y; }, join: function (x, y) { return x || y; }, zero: false, one: true, implies: function (x, y) { return !x || y; }, not: function (x) { return !x; } }; /** * Use [`getBooleanAlgebra`](./function.ts.html#getbooleanalgebra) instead. * * @category zone of death * @since 2.0.0 * @deprecated */ exports.getFunctionBooleanAlgebra = function_1.getBooleanAlgebra;