Packages

o

at.logic.gapt.expr

preExpr

object preExpr

Intermediate representation for expressions without explicit types.

The main application is during parsing: the at.logic.gapt.formats.babel.BabelParser produces pre-expressions.

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
preExpr.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. preExpr
  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, params: List[Type]) extends Type with Product with Serializable
  5. type Elab[X] = StateT[ElabResult, ElabState, X]
  6. case class ElabError (loc: Option[Location], msg: String, expected: Option[Type], actual: Type, assg: ElabState) extends Product with Serializable
  7. type ElabResult[X] = Either[ElabError, X]
  8. type ElabState = Map[MetaTypeIdx, Type]
  9. sealed trait Expr extends AnyRef
  10. case class Ident (name: String, ty: Type) extends Expr with Product with Serializable
  11. case class LocAnnotation (expr: Expr, loc: Location) extends Expr with Product with Serializable
  12. case class Location (begin: Int, end: Int) extends Product with Serializable
  13. case class MetaType (idx: MetaTypeIdx) extends Type with Product with Serializable
  14. class MetaTypeIdx extends AnyRef
  15. case class Mismatch (t1: Type, t2: Type, assg: Map[MetaTypeIdx, Type]) extends UnificationError with Product with Serializable
  16. case class OccursCheck (t1: MetaType, t2: Type, assg: Map[MetaTypeIdx, Type]) extends UnificationError with Product with Serializable
  17. case class Quoted (e: expr.Expr, ty: Type, fvs: Map[String, Type]) extends Expr with Product with Serializable
  18. class ReadablePrinter extends AnyRef
  19. sealed trait Type extends AnyRef
  20. case class TypeAnnotation (expr: Expr, ty: Type) extends Expr with Product with Serializable
  21. trait UnificationError extends AnyRef
  22. 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: Quoted
  10. def Eq(a: Expr, b: Expr): App
  11. def Ex: (Ident, Expr) ⇒ Expr
  12. def Imp: (Expr, Expr) ⇒ Expr
  13. def Neg: (Expr) ⇒ Expr
  14. def Or: (Expr, Expr) ⇒ Expr
  15. def Quant(name: String): (Ident, Expr) ⇒ Expr
  16. def QuoteBlackbox(e: expr.Expr): Quoted
  17. def QuoteWhitebox(e: expr.Expr): Quoted
  18. def Top: Quoted
  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. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  29. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  30. def infer(expr: Expr, env: Map[String, () ⇒ Type])(implicit loc: Option[Location]): Elab[Type]
  31. def infers(exprs: Seq[Expr], env: Map[String, () ⇒ Type])(implicit loc: Option[Location]): Elab[List[Type]]
  32. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  33. def liftTypeMono(t: Ty): Type
  34. def liftTypePoly(t: Ty): Type
  35. def locOf(expr: Expr): Option[Location]
  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 solve(eqs: List[(Type, Type)], assg: Map[MetaTypeIdx, Type]): Either[UnificationError, Map[MetaTypeIdx, Type]]
  40. def subst(t: Type, assg: Map[MetaTypeIdx, Type]): Type
  41. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  42. def toRealExpr(expr: Expr, sig: BabelSignature): Either[ElabError, expr.Expr]
  43. def toRealExpr(expr: Expr, assg: Map[MetaTypeIdx, Type], bound: Set[String]): expr.Expr
  44. def toRealExprs(expr: Seq[Expr], sig: BabelSignature): Either[ElabError, Seq[expr.Expr]]
  45. def toRealType(ty: Type, assg: Map[MetaTypeIdx, Type]): Ty
  46. def toString(): String
    Definition Classes
    AnyRef → Any
  47. def unify(a: Type, b: Type, mkErr: (UnificationError) ⇒ ElabError): Elab[Unit]
  48. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  49. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  50. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped