Object

inox.solvers.princess.PrincessSolver

templates

Related Doc: package PrincessSolver

Permalink

object templates extends Templates

Definition Classes
PrincessSolverAbstractUnrollingSolver
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. templates
  2. Templates
  3. IncrementalStateWrapper
  4. IncrementalState
  5. TypeTemplates
  6. EqualityTemplates
  7. QuantificationTemplates
  8. LambdaTemplates
  9. FunctionTemplates
  10. TemplateGenerator
  11. AnyRef
  12. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class App(caller: Encoded, tpe: ast.Trees.FunctionType, args: Seq[Arg], encoded: Encoded) extends Product with Serializable

    Permalink

    Represents an application of a first-class function in the unfolding procedure

    Represents an application of a first-class function in the unfolding procedure

    Definition Classes
    Templates
  2. type Apps = Map[Encoded, Set[App]]

    Permalink
    Definition Classes
    Templates
  3. type Arg = Either[Encoded, Matcher]

    Permalink
    Definition Classes
    Templates
  4. implicit class ArgWrapper extends AnyRef

    Permalink
    Definition Classes
    Templates
  5. case class Call(tfd: ast.Trees.TypedFunDef, args: Seq[Arg], tpSubst: Seq[Arg]) extends Product with Serializable

    Permalink

    Represents a named function call in the unfolding procedure

    Represents a named function call in the unfolding procedure

    Definition Classes
    Templates
  6. type Calls = Map[Encoded, Set[Call]]

    Permalink
    Definition Classes
    Templates
  7. case class Capture(encoded: Encoded, tpe: ast.Trees.FunctionType) extends Templates.TemplateInstantiator with Product with Serializable

    Permalink
    Definition Classes
    TypeTemplates
  8. case class CaptureGenerator(container: Encoded, tpe: ast.Trees.FunctionType) extends Templates.TypingGenerator with Product with Serializable

    Permalink
    Attributes
    protected
    Definition Classes
    TypeTemplates
  9. class CaptureTemplate extends Template

    Permalink

    Template used to unfold ADT closures that may contain functions.

    Template used to unfold ADT closures that may contain functions.

    Definition Classes
    TypeTemplates
  10. type Clauses = Seq[Encoded]

    Permalink

    Abstract templates

    Abstract templates

    Pre-compiled sets of clauses with extra bookkeeping information that enables efficient unfolding of function calls and applications. Template is a super-type for all such clause sets that can be instantiated given a concrete argument list and a blocker in the decision-tree.

    Definition Classes
    Templates
  11. implicit class ClausesWrapper extends AnyRef

    Permalink
    Attributes
    protected
    Definition Classes
    TemplateGenerator
  12. case class Constraint(result: Encoded, closures: Seq[Arg], free: Boolean) extends Templates.TemplateInstantiator with Product with Serializable

    Permalink
    Definition Classes
    TypeTemplates
  13. class ConstraintTemplate extends Template

    Permalink

    Template used to unfold free symbols in the input expression.

    Template used to unfold free symbols in the input expression.

    Definition Classes
    TypeTemplates
  14. type Encoded = IExpression

    Permalink
    Definition Classes
    templatesTemplates
  15. type Equalities = Map[Encoded, Set[Equality]]

    Permalink
    Definition Classes
    Templates
  16. case class Equality(tpe: ast.Trees.Type, e1: Encoded, e2: Encoded) extends Product with Serializable

    Permalink

    Represents an equality relation between two instances of a given type

    Represents an equality relation between two instances of a given type

    Definition Classes
    Templates
  17. class EqualityTemplate extends Template

    Permalink
    Definition Classes
    EqualityTemplates
  18. class FunctionTemplate extends Template

    Permalink
    Definition Classes
    FunctionTemplates
  19. class LambdaTemplate extends Template

    Permalink
    Definition Classes
    LambdaTemplates
  20. trait Manager extends IncrementalStateWrapper

    Permalink
    Definition Classes
    Templates
  21. implicit class MapSeqWrapper[A, B] extends AnyRef

    Permalink
    Definition Classes
    Templates
  22. implicit class MapSetWrapper[A, B] extends AnyRef

    Permalink

    Template instantiations

    Template instantiations

    Template instances, when provided with concrete arguments and a blocker, will generate three outputs used for program unfolding: - clauses: clauses that will be added to the underlying solver - call blockers: bookkeeping information necessary for named function unfolding - app blockers: bookkeeping information necessary for first-class function unfolding

    This object provides helper methods to deal with the triplets generated during unfolding.

    Definition Classes
    Templates
  23. case class Matcher(key: Either[(Encoded, ast.Trees.Type), ast.Trees.TypedFunDef], args: Seq[Arg], encoded: Encoded) extends Product with Serializable

    Permalink

    Represents an E-matching matcher that will be used to instantiate relevant quantified propositions

    Represents an E-matching matcher that will be used to instantiate relevant quantified propositions

    Definition Classes
    Templates
  24. type Matchers = Map[Encoded, Set[Matcher]]

    Permalink
    Definition Classes
    Templates
  25. case class Negative(insts: (ast.Trees.Variable, Encoded)) extends Templates.Polarity with Product with Serializable

    Permalink
    Definition Classes
    QuantificationTemplates
  26. type Pointers = Map[Encoded, Encoded]

    Permalink
    Definition Classes
    Templates
  27. sealed abstract class Polarity extends AnyRef

    Permalink

    Represents the polarity of the quantification within the considered formula.

    Represents the polarity of the quantification within the considered formula. Positive and negative polarity enable optimizations during quantifier instantiation.

    Definition Classes
    QuantificationTemplates
  28. case class Positive(subst: Map[ast.Trees.Variable, Arg]) extends Templates.Polarity with Product with Serializable

    Permalink
    Definition Classes
    QuantificationTemplates
  29. class QuantificationTemplate extends AnyRef

    Permalink
    Definition Classes
    QuantificationTemplates
  30. trait Template extends AnyRef

    Permalink
    Definition Classes
    Templates
  31. case class TemplateAppInfo(template: Either[Templates.LambdaTemplate, Encoded], equals: Encoded, args: Seq[Arg]) extends Product with Serializable

    Permalink

    Represents a POTENTIAL application of a first-class function in the unfolding procedure

    Represents a POTENTIAL application of a first-class function in the unfolding procedure

    The equals condition guards the application for equality of the concrete caller with the provided template in order to perform dynamic dispatch.

    Definition Classes
    LambdaTemplates
  32. type TemplateClauses = (Map[ast.Trees.Variable, Encoded], Map[ast.Trees.Variable, Encoded], Map[ast.Trees.Variable, Set[ast.Trees.Variable]], Map[ast.Trees.Variable, Seq[ast.Trees.Expr]], Seq[ast.Trees.Expr], Types, Equalities, Seq[LambdaTemplate], Seq[QuantificationTemplate])

    Permalink
    Attributes
    protected
    Definition Classes
    TemplateGenerator
  33. case class TemplateContents(pathVar: (ast.Trees.Variable, Encoded), arguments: Seq[(ast.Trees.Variable, Encoded)], condVars: Map[ast.Trees.Variable, Encoded], exprVars: Map[ast.Trees.Variable, Encoded], condTree: Map[ast.Trees.Variable, Set[ast.Trees.Variable]], clauses: Clauses, types: Types, blockers: Calls, applications: Apps, matchers: Matchers, equalities: Equalities, lambdas: Seq[Templates.LambdaTemplate], quantifications: Seq[Templates.QuantificationTemplate], pointers: Pointers) extends Product with Serializable

    Permalink
    Definition Classes
    Templates
  34. sealed abstract class TemplateInstantiator extends AnyRef

    Permalink

    Represents the kind of instantiator (@see ConstraintTemplate and CaptureTemplate) a given template info is associated to.

    Represents the kind of instantiator (@see ConstraintTemplate and CaptureTemplate) a given template info is associated to.

    Definition Classes
    TypeTemplates
  35. class TemplateStructure extends AnyRef

    Permalink

    Semi-template used for inner-template equality

    Semi-template used for inner-template equality

    We introduce a structure here that resembles a Template that is instantiated ONCE when the corresponding template becomes of interest.

    Definition Classes
    Templates
  36. sealed abstract class TypeUnrolling extends AnyRef

    Permalink

    Determines whether a given type should be unrolled, depending on the kind of type unrolling, namely free variable type unrolling (dependent types and ADT invariants), contract type unrolling (dependent types), and capture unrolling (function closure ordering).

    Determines whether a given type should be unrolled, depending on the kind of type unrolling, namely free variable type unrolling (dependent types and ADT invariants), contract type unrolling (dependent types), and capture unrolling (function closure ordering).

    Attributes
    protected
    Definition Classes
    TypeTemplates
  37. type Types = Map[Encoded, Set[Typing]]

    Permalink
    Definition Classes
    Templates
  38. case class Typing(tpe: ast.Trees.Type, arg: Encoded, instantiator: Templates.TemplateInstantiator) extends Product with Serializable

    Permalink

    Represents a type unfolding of a free variable (or input) in the unfolding procedure

    Represents a type unfolding of a free variable (or input) in the unfolding procedure

    Definition Classes
    TypeTemplates
  39. sealed abstract class TypingGenerator extends AnyRef

    Permalink
    Attributes
    protected
    Definition Classes
    TypeTemplates

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. object CaptureTemplate

    Permalink

    Template generator for CaptureTemplate instances.

    Template generator for CaptureTemplate instances.

    Definition Classes
    TypeTemplates
  5. object CaptureUnrolling extends Templates.TypeUnrolling with Product with Serializable

    Permalink
    Attributes
    protected
    Definition Classes
    TypeTemplates
  6. object ConstraintTemplate

    Permalink

    Generator for ConstraintTemplate instances.

    Generator for ConstraintTemplate instances.

    Definition Classes
    TypeTemplates
  7. object ContractGenerator extends Templates.TypingGenerator with Product with Serializable

    Permalink
    Attributes
    protected
    Definition Classes
    TypeTemplates
  8. object ContractUnrolling extends Templates.TypeUnrolling with Product with Serializable

    Permalink
    Attributes
    protected
    Definition Classes
    TypeTemplates
  9. object EqualityTemplate

    Permalink
    Definition Classes
    EqualityTemplates
  10. object FreeGenerator extends Templates.TypingGenerator with Product with Serializable

    Permalink
    Attributes
    protected
    Definition Classes
    TypeTemplates
  11. object FreeUnrolling extends Templates.TypeUnrolling with Product with Serializable

    Permalink
    Attributes
    protected
    Definition Classes
    TypeTemplates
  12. object FunctionMatcher

    Permalink
    Definition Classes
    QuantificationTemplates
  13. object FunctionTemplate

    Permalink
    Definition Classes
    FunctionTemplates
  14. object LambdaTemplate

    Permalink

    Constructor object for LambdaTemplate

    Constructor object for LambdaTemplate

    The apply methods performs some pre-processing before creating an instance of LambdaTemplate.

    Definition Classes
    LambdaTemplates
  15. object QuantificationMatcher

    Permalink
    Definition Classes
    QuantificationTemplates
  16. object QuantificationTemplate

    Permalink
    Definition Classes
    QuantificationTemplates
  17. object Template

    Permalink
    Definition Classes
    Templates
  18. object TemplateAppInfo extends Serializable

    Permalink
    Definition Classes
    LambdaTemplates
  19. object TemplateContents extends Serializable

    Permalink
    Definition Classes
    Templates
  20. def abort: Boolean

    Permalink
    Definition Classes
    templatesTemplates
  21. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  22. def asString(ast: IExpression): String

    Permalink
    Definition Classes
    templatesTemplates
  23. def blockerChildren(b: Encoded, strict: Boolean = true): Set[Encoded]

    Permalink
    Attributes
    protected
    Definition Classes
    Templates
  24. def blockerEquals(b: Encoded): Set[Encoded]

    Permalink
    Attributes
    protected
    Definition Classes
    Templates
  25. def blockerParents(b: Encoded, strict: Boolean = true): Set[Encoded]

    Permalink
    Attributes
    protected
    Definition Classes
    Templates
  26. def blockerPath(bs: Set[Encoded]): Set[Encoded]

    Permalink
    Attributes
    protected
    Definition Classes
    Templates
  27. def blockerPath(b: Encoded): Set[Encoded]

    Permalink
    Attributes
    protected
    Definition Classes
    Templates
  28. def canUnroll: Boolean

    Permalink
    Definition Classes
    Templates
  29. def clear(): Unit

    Permalink
  30. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  31. val context: Context

    Permalink
    Definition Classes
    templatesTemplates
  32. def correspond(m1: Matcher, m2: Matcher): Option[Boolean]

    Permalink
    Attributes
    protected
    Definition Classes
    QuantificationTemplates
    Annotations
    @inline()
  33. def correspond(k1: MatcherKey, k2: MatcherKey): Option[Boolean]

    Permalink
    Attributes
    protected
    Definition Classes
    QuantificationTemplates
  34. def currentGeneration: Int

    Permalink
    Attributes
    protected
    Definition Classes
    Templates
  35. implicit val debugSection: DebugSectionSolver.type

    Permalink
    Definition Classes
    Templates
  36. def decodePartial(e: Encoded, tpe: ast.Trees.Type): Option[ast.Trees.Expr]

    Permalink
    Definition Classes
    templatesTemplates
  37. lazy val deferFactor: Int

    Permalink
    Attributes
    protected
    Definition Classes
    Templates
  38. def emptyClauses: TemplateClauses

    Permalink
    Attributes
    protected
    Definition Classes
    TemplateGenerator
  39. def encodeBlockers(bs: Set[Encoded]): (Encoded, Clauses)

    Permalink
    Attributes
    protected
    Definition Classes
    Templates
  40. def encodeSymbol(v: ast.Trees.Variable): IExpression

    Permalink
    Definition Classes
    templatesTemplates
  41. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  42. def equalitySymbol(tpe: ast.Trees.Type): (ast.Trees.Variable, Encoded)

    Permalink
    Definition Classes
    EqualityTemplates
  43. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  44. def extractNot(e: IExpression): Option[Encoded]

    Permalink
    Definition Classes
    templatesTemplates
  45. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  46. def freshConds(pathVar: Encoded, condVars: Map[ast.Trees.Variable, Encoded], tree: Map[ast.Trees.Variable, Set[ast.Trees.Variable]]): Map[Encoded, Encoded]

    Permalink
    Attributes
    protected
    Definition Classes
    Templates
  47. def getAxioms: Seq[Axiom]

    Permalink
    Definition Classes
    QuantificationTemplates
  48. def getCalls: Seq[(Encoded, Call)]

    Permalink
    Definition Classes
    FunctionTemplates
  49. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  50. def getFiniteRangeClauses: Clauses

    Permalink
    Definition Classes
    QuantificationTemplates
  51. def getGroundInstantiations(e: Encoded, tpe: ast.Trees.Type): Seq[(Encoded, Seq[Encoded])]

    Permalink
    Definition Classes
    QuantificationTemplates
  52. def getInstantiationsWithBlockers: Seq[(Encoded, Set[Encoded])]

    Permalink
    Definition Classes
    QuantificationTemplates
  53. def getLambdaTemplates(tpe: ast.Trees.FunctionType): Set[LambdaTemplate]

    Permalink
    Definition Classes
    LambdaTemplates
  54. def hasAxioms: Boolean

    Permalink
    Definition Classes
    QuantificationTemplates
  55. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  56. val incrementals: Seq[IncrementalState]

    Permalink
    Definition Classes
    TemplatesIncrementalStateWrapper
  57. def instantiateApp(blocker: Encoded, app: App): Clauses

    Permalink
    Definition Classes
    LambdaTemplates
  58. def instantiateCall(blocker: Encoded, fi: Call): Clauses

    Permalink
    Definition Classes
    FunctionTemplates
  59. def instantiateEquality(blocker: Encoded, equality: Equality): Clauses

    Permalink
    Definition Classes
    EqualityTemplates
  60. def instantiateExpr(expr: ast.Trees.Expr, bindings: Map[ast.Trees.Variable, Encoded]): Clauses

    Permalink
    Definition Classes
    Templates
  61. def instantiateLambda(template: LambdaTemplate): (Encoded, Clauses)

    Permalink
    Definition Classes
    LambdaTemplates
  62. def instantiateMatcher(blocker: Encoded, matcher: Matcher): Clauses

    Permalink
    Definition Classes
    QuantificationTemplates
  63. def instantiateQuantification(template: QuantificationTemplate): (Map[Encoded, Encoded], Clauses)

    Permalink
    Definition Classes
    QuantificationTemplates
  64. def instantiateType(blocker: Encoded, typing: Typing): Clauses

    Permalink
    Definition Classes
    TypeTemplates
  65. def instantiateVariable(v: ast.Trees.Variable, bindings: Map[ast.Trees.Variable, Encoded]): Clauses

    Permalink
    Definition Classes
    Templates
  66. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  67. def mkAnd(es: IExpression*): IExpression

    Permalink
    Definition Classes
    templatesTemplates
  68. def mkClauses(pathVar: ast.Trees.Variable, tpe: ast.Trees.Type, expr: ast.Trees.Expr, substMap: Map[ast.Trees.Variable, Encoded])(implicit generator: TypingGenerator): TemplateClauses

    Permalink
    Definition Classes
    TemplateGenerator
  69. def mkClauses(pathVar: ast.Trees.Variable, expr: ast.Trees.Expr, substMap: Map[ast.Trees.Variable, Encoded], polarity: Option[Boolean] = None): TemplateClauses

    Permalink
    Definition Classes
    TemplateGenerator
  70. def mkEncoder(bindings: Map[ast.Trees.Variable, IExpression])(e: ast.Trees.Expr): IExpression

    Permalink
    Definition Classes
    templatesTemplates
  71. def mkEquals(e1: IExpression, e2: IExpression): Encoded

    Permalink
    Definition Classes
    templatesTemplates
  72. def mkExprClauses(pathVar: ast.Trees.Variable, expr: ast.Trees.Expr, substMap: Map[ast.Trees.Variable, Encoded], polarity: Option[Boolean] = None): (ast.Trees.Expr, TemplateClauses)

    Permalink
    Attributes
    protected
    Definition Classes
    TemplateGenerator
  73. def mkExprStructure(pathVar: ast.Trees.Variable, expr: ast.Trees.Expr, substMap: Map[ast.Trees.Variable, Encoded], onlySimple: Boolean = false): (ast.Trees.Expr, TemplateStructure, Map[ast.Trees.Variable, Encoded])

    Permalink
    Attributes
    protected
    Definition Classes
    TemplateGenerator
  74. def mkImplies(e1: IExpression, e2: IExpression): IFormula

    Permalink
    Definition Classes
    templatesTemplates
  75. def mkNot(e: IExpression): IFormula

    Permalink
    Definition Classes
    templatesTemplates
  76. def mkOr(es: IExpression*): IExpression

    Permalink
    Definition Classes
    templatesTemplates
  77. def mkSubstituter(substMap: Map[IExpression, IExpression]): (IExpression) ⇒ IExpression

    Permalink
    Definition Classes
    templatesTemplates
  78. def mkTypeClauses(pathVar: ast.Trees.Variable, tpe: ast.Trees.Type, expr: ast.Trees.Expr, substMap: Map[ast.Trees.Variable, Encoded])(implicit generator: TypingGenerator): (ast.Trees.Expr, TemplateClauses)

    Permalink

    Generates the clauses and other bookkeeping relevant to a type unfolding template.

    Generates the clauses and other bookkeeping relevant to a type unfolding template.

    Attributes
    protected
    Definition Classes
    TemplateGenerator
  79. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  80. def nextGeneration(gen: Int): Int

    Permalink
    Attributes
    protected
    Definition Classes
    Templates
  81. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  82. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  83. def pause: Boolean

    Permalink
    Definition Classes
    templatesTemplates
  84. def pop(): Unit

    Permalink
  85. final def pop(lvl: Int): Unit

    Permalink
    Definition Classes
    IncrementalState
  86. val program: PrincessSolver.targetProgram

    Permalink
    Definition Classes
    templatesTemplates
  87. def promoteBlocker(b: Encoded, force: Boolean = false): Boolean

    Permalink
    Definition Classes
    Templates
  88. def promoteQuantifications: Unit

    Permalink
    Definition Classes
    QuantificationTemplates
  89. def push(): Unit

    Permalink
  90. def refutationAssumptions: Seq[Encoded]

    Permalink
    Definition Classes
    Templates
  91. def registerClosure(start: Encoded, container: (Encoded, ast.Trees.FunctionType), arg: (Encoded, ast.Trees.Type)): Clauses

    Permalink

    Sets up the relevant unfolding procedure for closure ordering

    Sets up the relevant unfolding procedure for closure ordering

    Definition Classes
    TypeTemplates
  92. def registerEquality(blocker: Encoded, equality: Equality): Encoded

    Permalink
    Definition Classes
    EqualityTemplates
  93. def registerEquality(blocker: Encoded, tpe: ast.Trees.Type, e1: Encoded, e2: Encoded): Encoded

    Permalink
    Definition Classes
    EqualityTemplates
  94. def registerFunction(b: Encoded, r: Encoded, tpe: ast.Trees.Type, f: Encoded, closures: Seq[Arg], free: Boolean): Clauses

    Permalink
    Definition Classes
    LambdaTemplates
  95. def registerImplication(b1: Encoded, b2: Encoded): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Templates
  96. def registerLambda(pointer: Encoded, target: Encoded): Boolean

    Permalink
    Definition Classes
    LambdaTemplates
  97. def requiresFiniteRangeCheck: Boolean

    Permalink
    Definition Classes
    QuantificationTemplates
  98. def reset(): Unit

    Permalink
  99. def satisfactionAssumptions: Seq[Encoded]

    Permalink
    Definition Classes
    Templates
  100. val semantics: (PrincessSolver.targetProgram)#Semantics

    Permalink
    Definition Classes
    templatesTemplates
  101. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  102. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  103. def unroll: Clauses

    Permalink
    Definition Classes
    Templates
  104. def unrollEquality(tpe: ast.Trees.Type): Boolean

    Permalink
    Definition Classes
    EqualityTemplates
  105. def variableSeq(tpe: ast.Trees.Type): Seq[ast.Trees.Variable]

    Permalink
    Attributes
    protected
    Definition Classes
    FunctionTemplates
  106. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  107. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  108. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Templates

Inherited from IncrementalStateWrapper

Inherited from IncrementalState

Inherited from TypeTemplates

Inherited from EqualityTemplates

Inherited from QuantificationTemplates

Inherited from LambdaTemplates

Inherited from FunctionTemplates

Inherited from TemplateGenerator

Inherited from AnyRef

Inherited from Any

Ungrouped