class reduceHolToFol extends AnyRef

Creates a FOL formula from a HOL formula, but applies transformations which do _not_ preserve validity! Transformations applied:

  • Replace all subterms (\x.t[v]) by a function q_n(v). The scope parameter is needed to pass existing term-constant mappings.
  • Change the type of constants and variables s.t. they are first order (i.e. Const("c", To->Ti) is mapped to FOLConst("c",Ti)
  • Logical operators inside the term structure are replaced by first order terms
Source
hol2fol.scala
Note

Make sure you need all of these tricks. To only replace abstraction subterms, use replaceAbstractions.

Linear Supertypes
Known Subclasses
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. reduceHolToFol
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new reduceHolToFol()

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from reduceHolToFol to any2stringadd[reduceHolToFol] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (reduceHolToFol, B)
    Implicit
    This member is added by an implicit conversion from reduceHolToFol to ArrowAssoc[reduceHolToFol] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. def apply(fss: List[HOLSequent], scope: Map[LambdaExpression, String], id: AnyRef { def nextId: Int }): (List[HOLSequent], Map[LambdaExpression, String])

    Apply method for a an FSequent when scope needs to passed on in a recursion.

    Apply method for a an FSequent when scope needs to passed on in a recursion.

    fss

    the fsequent to convert

    scope

    a mapping of replaced subterms to the constant names which replaced them. you need this for chained applications, like sequents or lists of formulas.

    id

    an object with a function which nextId, which provides new numbers.

    returns

    a pair of the reduced expression and the updated scope

  7. def apply(s: HOLSequent, scope: Map[LambdaExpression, String], id: AnyRef { def nextId: Int }): (HOLSequent, Map[LambdaExpression, String])

    Apply method for a an FSequent when scope needs to passed on in a recursion.

    Apply method for a an FSequent when scope needs to passed on in a recursion.

    s

    the fsequent to convert

    scope

    a mapping of replaced subterms to the constant names which replaced them. you need this for chained applications, like sequents or lists of formulas.

    id

    an object with a function which nextId, which provides new numbers.

    returns

    a pair of the reduced expression and the updated scope

  8. def apply(term: LambdaExpression, scope: Map[LambdaExpression, String], id: AnyRef { def nextId: Int }): (FOLExpression, replaceAbstractions.ConstantsMap)

    Apply method for a an expression when scope needs to passed on in a recursion.

    Apply method for a an expression when scope needs to passed on in a recursion.

    term

    the expression to convert

    scope

    a mapping of replaced subterms to the constant names which replaced them. you need this for chained applications, like sequents or lists of formulas.

    id

    an object with a function which nextId, which provides new numbers.

    returns

    a pair of the reduced expression and the updated scope

  9. def apply(formula: HOLFormula, scope: Map[LambdaExpression, String], id: AnyRef { def nextId: Int }): (FOLFormula, Map[LambdaExpression, String])

    Apply method for a formula when scope needs to passed on in a recursion.

    Apply method for a formula when scope needs to passed on in a recursion.

    formula

    the formula to convert

    scope

    a mapping of replaced subterms to the constant names which replaced them. you need this for chained applications, like sequents or lists of formulas.

    id

    an object with a function which nextId, which provides new numbers.

    returns

    a pair of the reduced formula and the updated scope

  10. def apply(fs: List[HOLSequent]): List[HOLSequent]

    Convenience method when a single list of fsequents is converted.

    Convenience method when a single list of fsequents is converted. Multiple expressions need to pass a scope which holds the replacements which happened so far.

    fs

    an fsequent to convert

    returns

    the reduced fsequent

  11. def apply(fs: HOLSequent): HOLSequent

    Convenience method when only a single fsequent is converted.

    Convenience method when only a single fsequent is converted. Multiple expressions need to pass a scope which holds the replacements which happened so far.

    fs

    an fsequent to convert

    returns

    the reduced fsequent

  12. def apply(formula: HOLFormula): FOLFormula

    Convenience method when only a single formula is converted.

    Convenience method when only a single formula is converted. Multiple expressions need to pass a scope which holds the replacements which happened so far.

    formula

    a HOL formula to convert

    returns

    the reduced FOL formula

  13. def apply(term: LambdaExpression): FOLExpression

    Convenience method when only a single expression is converted.

    Convenience method when only a single expression is converted. Multiple expressions need to pass a scope which holds the replacements which happened so far.

    term

    a HOL expression to convert

    returns

    the reduced FOL expression

  14. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  15. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  16. def ensuring(cond: (reduceHolToFol) ⇒ Boolean, msg: ⇒ Any): reduceHolToFol
    Implicit
    This member is added by an implicit conversion from reduceHolToFol to Ensuring[reduceHolToFol] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  17. def ensuring(cond: (reduceHolToFol) ⇒ Boolean): reduceHolToFol
    Implicit
    This member is added by an implicit conversion from reduceHolToFol to Ensuring[reduceHolToFol] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  18. def ensuring(cond: Boolean, msg: ⇒ Any): reduceHolToFol
    Implicit
    This member is added by an implicit conversion from reduceHolToFol to Ensuring[reduceHolToFol] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  19. def ensuring(cond: Boolean): reduceHolToFol
    Implicit
    This member is added by an implicit conversion from reduceHolToFol to Ensuring[reduceHolToFol] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  20. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  21. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  22. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  23. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from reduceHolToFol to StringFormat[reduceHolToFol] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  24. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  25. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  26. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  27. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  28. final def notify(): Unit
    Definition Classes
    AnyRef
  29. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  30. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  31. def toString(): String
    Definition Classes
    AnyRef → Any
  32. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  35. def [B](y: B): (reduceHolToFol, B)
    Implicit
    This member is added by an implicit conversion from reduceHolToFol to ArrowAssoc[reduceHolToFol] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from reduceHolToFol to any2stringadd[reduceHolToFol]

Inherited by implicit conversion StringFormat from reduceHolToFol to StringFormat[reduceHolToFol]

Inherited by implicit conversion Ensuring from reduceHolToFol to Ensuring[reduceHolToFol]

Inherited by implicit conversion ArrowAssoc from reduceHolToFol to ArrowAssoc[reduceHolToFol]

Ungrouped