Package

at.logic.gapt.expr

hol

Permalink

package hol

Content Hierarchy
Visibility
  1. Public
  2. All

Type Members

  1. class HOLOrdering extends Ordering[LambdaExpression]

    Permalink
  2. class HOLPosition extends AnyRef

    Permalink

    Represents a position in a at.logic.gapt.expr.LambdaExpression.

    Represents a position in a at.logic.gapt.expr.LambdaExpression.

    Positions are represented by lists of Integers. The empty list denotes the expression itself. A nonempty list denotes a position in the left or right subexpression according to whether it starts with 1 or 2.

    The difference between this and at.logic.gapt.expr.LambdaPosition lies in the handling of quantifiers and binary logical connectives. LambdaPositions treat e.g. conjunctions like any other function, while HOLPositions treat them naturally, i.e. 1 denotes the left conjunct and 2 the right conjunct.

    Note that this can cause unexpeted behavior: Say a variable of type o -> o -> o is substituted by ∧ in some expression. The LambdaPositions will stay the same, but the HOLPositions won't.

  3. case class SkolemFunctions(skolemDefs: Map[Const, LambdaExpression]) extends Product with Serializable

    Permalink

    List of definitions of Skolem symbols.

    List of definitions of Skolem symbols.

    A Skolem definition is similar but slightly different from the epsilon operator:

    Syntactically it is a map s_i → λx_1 .. λx_n Qy φ(x_1, .., x_n, y), where Q is a quantifier. Then s_i(x_1, .., x_n) is the Skolem term used for the formula Qy φ(x_1, .., x_n, y), where Qy is strong.

    This Skolem term corresponds to the epsilon term εy φ(x_1, .., x_n, y) or εy ¬φ(x_1, .., x_n), depending on whether Q is ∃ or ∀. The reason we don't use epsilon terms directly is that this makes it impossible to deskolemize a formula based on just the Skolem definitions: for example both ∃x ∀y φ and ∃x ¬∃y¬ φ would define their Skolem functions using the same epsilon terms.

  4. class SkolemSymbolFactory extends AnyRef

    Permalink
  5. class TAOrdering extends Ordering[Ty]

    Permalink

Value Members

  1. object BinaryConnective

    Permalink
  2. object CNFn

    Permalink

    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.

  3. object CNFp

    Permalink

    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.

  4. object DNFn

    Permalink

    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.

  5. object DNFp

    Permalink

    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.

  6. object HOLOrdering extends HOLOrdering

    Permalink

    Ordering for HOL Formulas (also for FOL)

  7. object HOLPosition

    Permalink
  8. object SkolemFunctions extends Serializable

    Permalink
  9. object TAOrdering extends TAOrdering

    Permalink

    Ordering on types.

  10. object atoms

    Permalink

    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?

  11. object containsQuantifier

    Permalink

    True iff All or Ex matches any subterm of e.

  12. object containsQuantifierOnLogicalLevel

    Permalink

    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.

  13. object containsStrongQuantifier

    Permalink
  14. object containsWeakQuantifier

    Permalink
  15. object dualize

    Permalink

    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.

  16. object existsclosure

    Permalink
  17. object freeHOVariables

    Permalink
  18. object instantiate

    Permalink

    Instantiates a formula with terms.

  19. object isAtom

    Permalink

    Returns true iff the given HOLFormula is an atom (which does not include top nor bottom).

  20. object isExtendedAtom

    Permalink

    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.

  21. object isLogicalConstant

    Permalink

    Returns true iff the given LambdaExpression consists of a logical constant.

  22. object isNeg

    Permalink

    Returns true iff the given HOLFormula starts with a negation.

  23. object isPrenex

    Permalink

    Returns true iff the given formula is prenex.

  24. object isReflexivity

    Permalink

    Returns true iff the given HOLFormula is a reflexivity atom.

  25. object lcomp

    Permalink

    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.

  26. object normalizeFreeVariables

    Permalink
  27. object numOfAtoms

    Permalink

    Return the number of atoms in the given argument.

  28. object prenexify

    Permalink

    Removes top-level connectives from a formula.

  29. object removeAllQuantifiers

    Permalink
  30. object removeNeg

    Permalink

    Remove the leading negation from a formula.

  31. object removeQuantifiers

    Permalink
  32. object simplify

    Permalink

    Simplify a HOLFormula using the equations for bottom and top as well as idempotence of conjunction and disjunction.

  33. object structuralCNF

    Permalink
  34. object toAbbreviatedString

    Permalink
  35. object toNNF

    Permalink

    Transforms a formula to negation normal form (transforming also implications into disjunctions)

  36. object toPrettyString

    Permalink

    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.

  37. package unification

    Permalink
  38. object univclosure

    Permalink
  39. object variablesAll

    Permalink
  40. object variablesEx

    Permalink

Ungrouped