Positions are given as lists of Integers.
Positions are given as lists of Integers. The empty list denotes the current expression itself. A list starting with k denotes a subexpression in the kth argument of the current expression.
Computes a negative CNF of a formula, i.e.
Computes a negative CNF of a formula, i.e. one that is logically equivalent to the negation of the input formula.
The computation is done by expanding the input formula using distributivity.
Quantifiers are removed in the process.
Computes a positive CNF of a formula, i.e.
Computes a positive CNF of a formula, i.e. one that is logically equivalent to the input formula.
The computation is done by expanding the input formula using distributivity.
Quantifiers are removed in the process.
Computes a negative DNF of a formula, i.e.
Computes a negative DNF of a formula, i.e. one that is logically equivalent to the negation of the input formula.
The computation is done by expanding the input formula using distributivity.
Quantifiers are removed in the process.
Computes a positive DNF of a formula, i.e.
Computes a positive DNF of a formula, i.e. one that is logically equivalent to the input formula.
The computation is done by expanding the input formula using distributivity.
Quantifiers are removed in the process.
Ordering for HOL Formulas (also for FOL)
Ordering on types.
Return the list of all atoms *with duplicates* in the given argument.
Return the list of all atoms *with duplicates* in the given argument. TODO: why a list? why duplicates? why not a set?
True iff All or Ex matches any subterm of e.
True iff All or Ex is contained in the logical structure of the given HOLFormula.
True iff All or Ex is contained in the logical structure of the given HOLFormula. For example, P( (all x:x) ) contains a quantifier, but it is inside of an atom.
Dualize a formula in NNF by switching conjunctions with disjunctions, universal with existential quantifiers, top with bottom and positive literals with negative literals.
Dualize a formula in NNF by switching conjunctions with disjunctions, universal with existential quantifiers, top with bottom and positive literals with negative literals. The formula dualize( A ) is logically equivalent to the negation of A.
Instantiates a formula with terms.
Returns true iff the given HOLFormula is an atom (which does not include top nor bottom).
Returns true iff the given HOLFormula is an extended atom, i.e.
Returns true iff the given HOLFormula is an extended atom, i.e. an atom or top or bottom.
Returns true iff the given LambdaExpression consists of a logical constant.
Returns true iff the given HOLFormula starts with a negation.
Returns true iff the given formula is prenex.
Returns true iff the given HOLFormula is a reflexivity atom.
the logical complexity of this formula, i.e.
the logical complexity of this formula, i.e. the number of logical connectives and atoms starting from the root of the formula. The inner structure of atoms is not counted.
Return the number of atoms in the given argument.
Remove the leading negation from a formula.
Simplify a HOLFormula using the equations for bottom and top as well as idempotence of conjunction and disjunction.
Transforms a formula to negation normal form (transforming also implications into disjunctions)
Formats a HOL expression without types and the outermost parenthesis.
Formats a HOL expression without types and the outermost parenthesis. Conjunction, disjunction and implication are considered right associative, i.e. a /\ ((b /\ c) /\ d) = a /\ (b /\ c) /\ d. Equation is rendered infix.