object ast

Intermediate representation for expressions parsed by Babel.

This representation is intended to be as simple as possible, all higher-level constructs (such as <-> or ∀) are already desugared into simply-typed lambda terms.

It differs from the "real" lambda calculus in at.logic.gapt.expr in three major ways:

  1. There are type meta-variables.
  2. There are type annotations.
  3. Free variables, bound variables, and constants are not distinguished; they are all stored as "identifiers".
Source
ast.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ast
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class Abs (v: Ident, sub: Expr) extends Expr with Product with Serializable
  2. case class App (a: Expr, b: Expr) extends Expr with Product with Serializable
  3. case class ArrType (a: Type, b: Type) extends Type with Product with Serializable
  4. case class BaseType (name: String) extends Type with Product with Serializable
  5. sealed trait Expr extends AnyRef
  6. case class Ident (name: String, ty: Type) extends Expr with Product with Serializable
  7. case class Lifted (e: LambdaExpression, ty: Type, fvs: Map[String, Type]) extends Expr with Product with Serializable
  8. case class MetaType (idx: MetaTypeIdx) extends Type with Product with Serializable
  9. class MetaTypeIdx extends AnyRef
  10. sealed trait Type extends AnyRef
  11. case class TypeAnnotation (expr: Expr, ty: Type) extends Expr with Product with Serializable
  12. type UnificationError = String
  13. case class VarType (name: String) extends Type with Product with Serializable

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def All: (Ident, Expr) ⇒ Expr
  5. def And: (Expr, Expr) ⇒ Expr
  6. def Bicond(a: Expr, b: Expr): Expr
  7. def BinaryConn(c: MonomorphicLogicalC): (Expr, Expr) ⇒ Expr
  8. def Bool: BaseType
  9. def Bottom: Lifted
  10. def Eq(a: Expr, b: Expr): App
  11. def Ex: (Ident, Expr) ⇒ Expr
  12. def Imp: (Expr, Expr) ⇒ Expr
  13. def LiftBlackbox(e: LambdaExpression): Lifted
  14. def LiftWhitebox(e: LambdaExpression): Lifted
  15. def Neg: (Expr) ⇒ Expr
  16. def Or: (Expr, Expr) ⇒ Expr
  17. def Quant(name: String): (Ident, Expr) ⇒ Expr
  18. def Top: Lifted
  19. def UnaryConn(c: MonomorphicLogicalC): (Expr) ⇒ Expr
  20. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  21. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  23. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  24. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  25. def freeIdentifers(expr: Expr): Set[String]
  26. def freeMetas(t: Type): Set[MetaTypeIdx]
  27. def freshMetaType(): MetaType
  28. def gensym(): MetaTypeIdx
  29. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  30. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  31. def infer(expr: Expr, env: Map[String, () ⇒ Type], s0: Map[MetaTypeIdx, Type]): Either[UnificationError, (Map[MetaTypeIdx, Type], Type)]
  32. def infers(exprs: Seq[Expr], env: Map[String, () ⇒ Type], s0: Map[MetaTypeIdx, Type]): Either[UnificationError, (Map[MetaTypeIdx, Type], Seq[Type])]
  33. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  34. def liftTypeMono(t: Ty): Type
  35. def liftTypePoly(t: Ty): Type
  36. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  37. final def notify(): Unit
    Definition Classes
    AnyRef
  38. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  39. def printCtx(eqs: List[(Type, Type)], assg: Map[MetaTypeIdx, Type]): String
  40. def readable(e: Expr): String
  41. def readable(t: Type): String
  42. def solve(eqs: List[(Type, Type)], assg: Map[MetaTypeIdx, Type]): Either[UnificationError, Map[MetaTypeIdx, Type]]
  43. def subst(t: Type, assg: Map[MetaTypeIdx, Type]): Type
  44. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  45. def toRealExpr(expr: Expr, sig: BabelSignature): Either[UnificationError, LambdaExpression]
  46. def toRealExpr(expr: Expr, assg: Map[MetaTypeIdx, Type], bound: Set[String]): LambdaExpression
  47. def toRealExprs(expr: Seq[Expr], sig: BabelSignature): Either[UnificationError, Seq[LambdaExpression]]
  48. def toRealType(ty: Type, assg: Map[MetaTypeIdx, Type]): Ty
  49. def toString(): String
    Definition Classes
    AnyRef → Any
  50. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  51. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  52. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped