UNPKG

propositional

Version:

Propositional logic symbolic computation library

39 lines (38 loc) 801 B
import * as AST from '../syntax/ast'; /** * Simplify an expression under the following principles: * - !0 <=> 1 * - !1 <=> 0 * * - !!a <=> a * * - (a & a) <=> a * - (a | a) <=> a * - (a ^ a) <=> 0 * - (a => a) <=> 1 * - (a <=> a) <=> 1 * * - (a & !a) <=> 0 * - (a | !a) <=> 1 * - (a ^ !a) <=> 1 * - (a <=> !a) <=> 0 * * - (a => !a) <=> !a * - (!a => a) <=> a * * - (0 & a) <=> 0 * - (0 | a) <=> a * - (0 ^ a) <=> a * - (0 => a) <=> 1 * - (0 <=> a) <=> !a * * - (1 & a) <=> a * - (1 | a) <=> 1 * - (1 ^ a) <=> !a * - (1 => a) <=> a * - (1 <=> a) <=> a * * - (a => 0) <=> !a * - (a => 1) <=> 1 */ export declare function simplify(expression: AST.Expression): AST.Expression;