Package

at.logic.gapt

expr

Permalink

package expr

Source
package.scala
Linear Supertypes
DefaultReplaceables, AnyRef, Any
Content Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. expr
  2. DefaultReplaceables
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class ->(in: Ty, out: Ty) extends Ty with Product with Serializable

    Permalink
  2. class Abs extends LambdaExpression

    Permalink
  3. class App extends LambdaExpression

    Permalink
  4. class BinaryPropConnectiveHelper extends AnyRef

    Permalink
  5. type ClosedUnderFOLSub[T] = Substitutable[FOLSubstitution, T, T]

    Permalink
  6. trait ClosedUnderReplacement[T] extends Replaceable[T, T]

    Permalink
  7. type ClosedUnderSub[T] = Substitutable[Substitution, T, T]

    Permalink
  8. class Const extends LambdaExpression

    Permalink
  9. implicit class ExprNameGenerator extends AnyRef

    Permalink
  10. implicit class ExpressionParseHelper extends AnyRef

    Permalink

    Extension class that provides string interpolation functions for various expression types.

  11. trait FOLAtom extends LambdaExpression with FOLPartialAtom with HOLAtom with FOLFormula

    Permalink
  12. trait FOLAtomConst extends Const with HOLAtomConst with FOLPartialAtom

    Permalink
  13. trait FOLConst extends Const with FOLTerm with FOLFunctionConst

    Permalink
  14. trait FOLExpression extends LambdaExpression

    Permalink
  15. trait FOLFormula extends LambdaExpression with FOLPartialFormula with HOLFormula with FOLExpression

    Permalink
  16. trait FOLFunctionConst extends Const with FOLPartialTerm

    Permalink
  17. trait FOLPartialAtom extends LambdaExpression with HOLPartialAtom

    Permalink
  18. trait FOLPartialTerm extends LambdaExpression

    Permalink
  19. trait FOLQuantifier extends Const with LogicalConstant

    Permalink
  20. class FOLSubstitution extends Substitution

    Permalink
  21. trait FOLTerm extends LambdaExpression with FOLPartialTerm with FOLExpression

    Permalink
  22. trait FOLVar extends Var with FOLTerm

    Permalink
  23. trait HOLAtom extends LambdaExpression with HOLFormula with HOLPartialAtom

    Permalink
  24. trait HOLAtomConst extends Const with HOLPartialAtom

    Permalink
  25. trait HOLFormula extends LambdaExpression

    Permalink
  26. trait HOLPartialAtom extends LambdaExpression

    Permalink
  27. abstract class LambdaExpression extends AnyRef

    Permalink
  28. class LambdaPosition 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.

  29. abstract class LogicalC extends AnyRef

    Permalink

    Helper class for logical constants.

    Helper class for logical constants.

    The logical constans are the propositional connectives, the quantifiers, bottom, top, and the equality constant. A logical constant is different from an expression consisting of only this logical constant, as the expression is an object of type LambdaExpression and needs to have a definite type.

    A logical constant consists of a name (e.g. "∀"), and a set of possible types, (e.g. (Ti->To)->To, ((Ti->Ti)->To)->To, ...). Subclasses need to implement the function matchType, which matches these possible types. This way we can handle the parametric types of the quantifiers.

  30. trait LogicalConstant extends Const

    Permalink
  31. trait MatchingAlgorithm extends AnyRef

    Permalink
  32. class MonoidalBinaryPropConnectiveHelper extends BinaryPropConnectiveHelper

    Permalink
  33. class MonomorphicLogicalC extends LogicalC

    Permalink

    Logical constant with a fixed type.

  34. trait Not[T] extends AnyRef

    Permalink

    Together with the scala <:< construct, the Not trait allows us to express that a type is not a subtype of another.

    Together with the scala <:< construct, the Not trait allows us to express that a type is not a subtype of another. This works in the following manner: Suppose you have types S <: T and a function foo[T] that you only want to apply to elements of type T that are not of type S. Then you can write foo[T](implicit notAnS: Not[S <:<T]).

    TODO: Add an "ambiguous implicit" annotation to make this clearer. My scala version does not currently support this.

  35. class NullaryPropConnectiveHelper extends AnyRef

    Permalink
  36. trait PropAtom extends Const with PropFormula with FOLAtom with FOLAtomConst

    Permalink
  37. trait PropConnective extends Const with LogicalConstant with PropPartialFormula

    Permalink
  38. trait PropFormula extends LambdaExpression with PropPartialFormula with FOLFormula

    Permalink
  39. class QuantifierC extends LogicalC

    Permalink

    A logical constant describing a quantifier, which is of type (α->To)->To.

  40. class QuantifierHelper extends AnyRef

    Permalink
  41. trait Replaceable[-I, +O] extends AnyRef

    Permalink
  42. trait Substitutable[-S <: Substitution, -T, +U] extends AnyRef

    Permalink

    Trait that describes the following relation between types S, T, U: If a substitution of type S is applied to an element of type T, the result will have type U.

    Trait that describes the following relation between types S, T, U: If a substitution of type S is applied to an element of type T, the result will have type U.

    S

    A subtype of Substitution.

    T

    The input type.

    U

    The output type.

    Annotations
    @implicitNotFound( ... )
  43. class Substitution extends AnyRef

    Permalink
  44. case class TBase(name: String) extends Ty with Product with Serializable

    Permalink
  45. sealed abstract class Ty extends AnyRef

    Permalink
  46. class UnaryPropConnectiveHelper extends AnyRef

    Permalink
  47. class Var extends LambdaExpression

    Permalink
  48. class syntacticMatching extends MatchingAlgorithm

    Permalink
  49. abstract class SymbolA extends AnyRef

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 2016-02-25) Use strings instead

Value Members

  1. object Abs

    Permalink
  2. object All extends QuantifierHelper

    Permalink
  3. object And extends MonoidalBinaryPropConnectiveHelper

    Permalink
  4. object AndC extends MonomorphicLogicalC

    Permalink
  5. object App

    Permalink
  6. object Apps

    Permalink
  7. object BetaReduction

    Permalink
  8. object Bottom extends NullaryPropConnectiveHelper

    Permalink
  9. object BottomC extends MonomorphicLogicalC

    Permalink
  10. object Const

    Permalink
  11. object Eq

    Permalink
  12. object EqC extends LogicalC

    Permalink
  13. object Ex extends QuantifierHelper

    Permalink
  14. object ExistsC extends QuantifierC

    Permalink
  15. object FOLAtom

    Permalink
  16. implicit object FOLAtomClosedUnderFOLSub extends ClosedUnderFOLSub[FOLAtom]

    Permalink

    Testifies that type FOLAtom is closed under FOLSub.

  17. object FOLAtomConst extends FOLHead

    Permalink
  18. implicit def FOLAtomSubstitutable[S <: Substitution](implicit notAFOLSub: Not[<:<[S, FOLSubstitution]]): Substitutable[S, FOLAtom, HOLAtom]

    Permalink

    Testifies that applying a non-FOL substitution to a FOLAtom results in a HOLAtom.

    Testifies that applying a non-FOL substitution to a FOLAtom results in a HOLAtom.

    notAFOLSub

    Testifies that S is not a FOLSubstitution.

  19. object FOLConst

    Permalink
  20. implicit def FOLExpressionClosedUnderFOLSub[T <: FOLExpression](implicit notATerm: Not[<:<[T, FOLTerm]], notAFormula: Not[<:<[T, FOLFormula]]): Substitutable[FOLSubstitution, T, FOLExpression]

    Permalink

    Testifies that applying a FOLSubstitution to a FOLExpression that is not a formula or a term will result in a FOLExpression.

    Testifies that applying a FOLSubstitution to a FOLExpression that is not a formula or a term will result in a FOLExpression.

    notATerm

    Testifies that T is not a subtype of FOLTerm.

    notAFormula

    Testifies that T is not a subtype of FOLFormula.

  21. implicit def FOLExpressionSubstitutable[S <: Substitution, T <: FOLExpression](implicit notAFOLSub: Not[<:<[S, FOLSubstitution]], notAFOLAtom: Not[<:<[T, FOLAtom]]): Substitutable[S, T, LambdaExpression]

    Permalink

    Testifies that applying a Substitution that is not a FOLSubstitution to a FOLExpression will result in a LambdaExpression.

    Testifies that applying a Substitution that is not a FOLSubstitution to a FOLExpression will result in a LambdaExpression.

    notAFOLSub

    Testifies that S is not a subtype of FOLSubstitution.

  22. implicit def FOLFormulaClosedUnderFOLSub[T <: FOLFormula](implicit notAnAtom: Not[<:<[T, FOLAtom]]): Substitutable[FOLSubstitution, T, FOLFormula]

    Permalink

    Testifies that applying a FOLSubstitution to a FOLFormula that is not an atom will result in a FOLFormula.

    Testifies that applying a FOLSubstitution to a FOLFormula that is not an atom will result in a FOLFormula.

    notAnAtom

    Testifies that T is not a subtype of FOLAtom.

  23. object FOLFunction

    Permalink
  24. object FOLFunctionConst extends FOLHead

    Permalink
  25. object FOLHeadType

    Permalink
  26. object FOLSubstitution

    Permalink
  27. implicit object FOLTermClosedUnderFOLSub extends ClosedUnderFOLSub[FOLTerm]

    Permalink

    Testifies that type FOLTerm is closed under FOLSub.

  28. object FOLVar

    Permalink
  29. object ForallC extends QuantifierC

    Permalink
  30. object FunctionType

    Permalink

    Function type from_0 -> (from_1 -> ...

    Function type from_0 -> (from_1 -> ... (from_n -> to)).

  31. object HOLAtom

    Permalink
  32. object HOLAtomConst

    Permalink
  33. implicit def HOLFormulaClosedUnderFOLSub[T <: HOLFormula](implicit notAFOLFormula: Not[<:<[T, FOLFormula]]): Substitutable[FOLSubstitution, T, HOLFormula]

    Permalink

    Testifies that applying a FOLSubstitution to a HOLFormula that is not a FOLFormula will result in a HOLFormula.

    Testifies that applying a FOLSubstitution to a HOLFormula that is not a FOLFormula will result in a HOLFormula.

    notAFOLFormula

    Testifies that T is not a subtype of FOLFormula.

  34. implicit def HOLFormulaClosedUnderSub[S <: Substitution, T <: HOLFormula](implicit notAFOLSub: Not[<:<[S, FOLSubstitution]], notAFOLAtom: Not[<:<[T, FOLAtom]]): Substitutable[S, T, HOLFormula]

    Permalink

    Testifies that applying a Substitution that is not a FOLSubstitution to a HOLFormula will result in a HOLFormula.

    Testifies that applying a Substitution that is not a FOLSubstitution to a HOLFormula will result in a HOLFormula.

    notAFOLSub

    Testifies that S is not a subtype of FOLSubstitution.

  35. object HOLFunction

    Permalink
  36. object Imp extends BinaryPropConnectiveHelper

    Permalink
  37. object ImpC extends MonomorphicLogicalC

    Permalink
  38. implicit def LambdaExpressionClosedUnderSub[T <: LambdaExpression](implicit notAFOLExpression: Not[<:<[T, FOLExpression]], notAHOLFormula: Not[<:<[T, HOLFormula]]): Substitutable[Substitution, T, LambdaExpression]

    Permalink

    Testifies that applying a Substitution to a LambdaExpression that is not a FOLExpression or a HOLFormula will result in a LambdaExpression.

    Testifies that applying a Substitution to a LambdaExpression that is not a FOLExpression or a HOLFormula will result in a LambdaExpression.

    notAFOLExpression

    Testifies that T is not a subtype of FOLExpression.

    notAHOLFormula

    Testifies that T is not a subtype of HOLFormula.

  39. object LambdaPosition

    Permalink
  40. object Neg extends UnaryPropConnectiveHelper

    Permalink
  41. object NegC extends MonomorphicLogicalC

    Permalink
  42. object NonLogicalConstant

    Permalink
  43. object Or extends MonoidalBinaryPropConnectiveHelper

    Permalink
  44. object OrC extends MonomorphicLogicalC

    Permalink
  45. object Quant

    Permalink
  46. implicit def SubstitutablePair[S <: Substitution, T1, U1, T2, U2](implicit ev1: Substitutable[S, T1, U1], ev2: Substitutable[S, T2, U2]): Substitutable[S, (T1, T2), (U1, U2)]

    Permalink

    Testifies that a pair of substitutable objects is substitutable (by applying the substitution to each element).

  47. implicit def SubstitutableSeq[S <: Substitution, T, U](implicit ev: Substitutable[S, T, U]): Substitutable[S, Seq[T], Seq[U]]

    Permalink

    Testifies that a Seq of substitutable objects is itself substitutable (by mapping over it).

  48. implicit def SubstitutableSequent[S <: Substitution, T, U](implicit ev: Substitutable[S, T, U]): Substitutable[S, Sequent[T], Sequent[U]]

    Permalink

    Testifies that a Sequent of substitutable objects is itself substitutable (by mapping over it).

  49. implicit def SubstitutableSet[S <: Substitution, T, U](implicit ev: Substitutable[S, T, U]): Substitutable[S, Set[T], Set[U]]

    Permalink

    Testifies that a Set of substitutable objects is itself substitutable (by mapping over it).

  50. object Substitution

    Permalink
  51. object TermReplacement

    Permalink

    A term replacement homomorphically extends a partial function on lambda expressions to all lambda expressions.

    A term replacement homomorphically extends a partial function on lambda expressions to all lambda expressions.

    This is done on a "best effort" basis. Replacing constants by ground terms of the same type will usually work, anything beyond that might or might not work.

  52. object Ti extends TBase

    Permalink
  53. object To extends TBase

    Permalink
  54. object Top extends NullaryPropConnectiveHelper

    Permalink
  55. object TopC extends MonomorphicLogicalC

    Permalink
  56. object Var

    Permalink
  57. object VarOrConst

    Permalink

    Matches constants and variables, but nothing else.

  58. object arity

    Permalink

    Arity of a type.

  59. object baseTypes

    Permalink

    Base types occurring in a type.

  60. object clauseSubsumption

    Permalink
  61. object constants

    Permalink

    Returns the set of non-logical constants occuring in the given argument.

  62. object expressionSize

    Permalink
  63. package fol

    Permalink
  64. object freeVariables

    Permalink

    Returns the set of free variables in the given argument.

  65. package hol

    Permalink
  66. implicit object holAtomReplaceable extends ClosedUnderReplacement[HOLAtom]

    Permalink
    Definition Classes
    DefaultReplaceables
  67. implicit def holFormulaReplaceable[I <: HOLFormula](implicit notAnAtom: Not[<:<[I, HOLAtom]]): Replaceable[I, HOLFormula]

    Permalink
    Definition Classes
    DefaultReplaceables
  68. object isInVNF

    Permalink

    A lambda term is in variable-normal form (VNF) if different binders bind different variables, and bound variables are disjoint from the free ones.

  69. implicit def lambdaExpressionReplaceable[I <: LambdaExpression](implicit notAFormula: Not[<:<[I, HOLFormula]]): Replaceable[I, LambdaExpression]

    Permalink
    Definition Classes
    DefaultReplaceables
  70. object longNormalForm

    Permalink
  71. implicit def notDefault[T]: Not[T]

    Permalink
  72. implicit def notSpecific[T](implicit ev: T): Not[T]

    Permalink
  73. object rename

    Permalink

    get a new variable/constant (similar to the current and) different from all variables/constants in the blackList, returns this variable if this variable is not in the blackList.

  74. object replacementContext

    Permalink

    Creates a lambda expression that designates positions to be replaced.

  75. package schema

    Permalink
  76. implicit def sequentReplaceable[I, O](implicit ev: Replaceable[I, O]): Replaceable[Sequent[I], Sequent[O]]

    Permalink
    Definition Classes
    DefaultReplaceables
  77. object subTerms

    Permalink

    Returns the set of all subterms of the given lambda term.

  78. implicit object substitutionReplaceable extends ClosedUnderReplacement[Substitution]

    Permalink
    Definition Classes
    DefaultReplaceables
  79. object syntacticMGU

    Permalink
  80. object syntacticMatching extends syntacticMatching

    Permalink
  81. object toImplications

    Permalink
  82. object toVNF

    Permalink

    Transforms an expression into an alpha-equivalent expression in variable-normal form, where no two binders bind the same variable, and the bound variables are disjoint from the free ones.

  83. object variables

    Permalink

    Returns the set of all variables occurring in the given argument (including vacuously bound variables).

Inherited from DefaultReplaceables

Inherited from AnyRef

Inherited from Any

Ungrouped