Class

inox.solvers.unrolling.Templates

TemplateStructure

Related Doc: package Templates

Permalink

class TemplateStructure extends AnyRef

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.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. TemplateStructure
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new TemplateStructure(body: ast.Trees.Expr, dependencies: Seq[Encoded], contents: TemplateContents)

    Permalink

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. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. val body: ast.Trees.Expr

    Permalink
  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. val contents: TemplateContents

    Permalink
  8. val dependencies: Seq[Encoded]

    Permalink
  9. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  10. def equals(that: Any): Boolean

    Permalink
    Definition Classes
    TemplateStructure → AnyRef → Any
  11. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  13. def hashCode(): Int

    Permalink
    Definition Classes
    TemplateStructure → AnyRef → Any
  14. lazy val instantiation: Seq[Encoded]

    Permalink

    The key value (triplet of body, a normalization of the pathVar of contents and locals) is used to determine syntactic equality between inner-templates.

    The key value (triplet of body, a normalization of the pathVar of contents and locals) is used to determine syntactic equality between inner-templates. If the key of two such templates are equal, then they must necessarily be equal in every model.

    The instantiation consists of the clause set instantiation (in the sense of Template.instantiate that is required for dependencies to make sense in the solver (introduces blockers, lambdas, quantifications, etc.) Since dependencies CHANGE during instantiation and key makes no sense without the associated instantiation, the implicit contract here is that whenever a new key appears during unfolding, its associated instantiation MUST be added to the set of instantiations managed by the solver. However, if an identical (or subsuming) pre-existing key has already been found, then the associated instantiation must already appear in the handled by the solver and the new one can be discarded.

    The locals value consists of the dependencies on which the substitution resulting from instantiation has been applied. The dependencies should not be directly used here as they may depend on closure and quantifier ids that were only obtained when instantiation was computed.

    The instantiationSubst substitution corresponds that applied to dependencies when constructing locals.

  15. lazy val instantiationSubst: Map[Encoded, Encoded]

    Permalink

    The key value (triplet of body, a normalization of the pathVar of contents and locals) is used to determine syntactic equality between inner-templates.

    The key value (triplet of body, a normalization of the pathVar of contents and locals) is used to determine syntactic equality between inner-templates. If the key of two such templates are equal, then they must necessarily be equal in every model.

    The instantiation consists of the clause set instantiation (in the sense of Template.instantiate that is required for dependencies to make sense in the solver (introduces blockers, lambdas, quantifications, etc.) Since dependencies CHANGE during instantiation and key makes no sense without the associated instantiation, the implicit contract here is that whenever a new key appears during unfolding, its associated instantiation MUST be added to the set of instantiations managed by the solver. However, if an identical (or subsuming) pre-existing key has already been found, then the associated instantiation must already appear in the handled by the solver and the new one can be discarded.

    The locals value consists of the dependencies on which the substitution resulting from instantiation has been applied. The dependencies should not be directly used here as they may depend on closure and quantifier ids that were only obtained when instantiation was computed.

    The instantiationSubst substitution corresponds that applied to dependencies when constructing locals.

  16. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  17. lazy val key: (ast.Trees.Expr, Set[Encoded], Seq[Encoded])

    Permalink

    The key value (triplet of body, a normalization of the pathVar of contents and locals) is used to determine syntactic equality between inner-templates.

    The key value (triplet of body, a normalization of the pathVar of contents and locals) is used to determine syntactic equality between inner-templates. If the key of two such templates are equal, then they must necessarily be equal in every model.

    The instantiation consists of the clause set instantiation (in the sense of Template.instantiate that is required for dependencies to make sense in the solver (introduces blockers, lambdas, quantifications, etc.) Since dependencies CHANGE during instantiation and key makes no sense without the associated instantiation, the implicit contract here is that whenever a new key appears during unfolding, its associated instantiation MUST be added to the set of instantiations managed by the solver. However, if an identical (or subsuming) pre-existing key has already been found, then the associated instantiation must already appear in the handled by the solver and the new one can be discarded.

    The locals value consists of the dependencies on which the substitution resulting from instantiation has been applied. The dependencies should not be directly used here as they may depend on closure and quantifier ids that were only obtained when instantiation was computed.

    The instantiationSubst substitution corresponds that applied to dependencies when constructing locals.

  18. lazy val locals: Seq[(ast.Trees.Variable, Encoded)]

    Permalink

    The key value (triplet of body, a normalization of the pathVar of contents and locals) is used to determine syntactic equality between inner-templates.

    The key value (triplet of body, a normalization of the pathVar of contents and locals) is used to determine syntactic equality between inner-templates. If the key of two such templates are equal, then they must necessarily be equal in every model.

    The instantiation consists of the clause set instantiation (in the sense of Template.instantiate that is required for dependencies to make sense in the solver (introduces blockers, lambdas, quantifications, etc.) Since dependencies CHANGE during instantiation and key makes no sense without the associated instantiation, the implicit contract here is that whenever a new key appears during unfolding, its associated instantiation MUST be added to the set of instantiations managed by the solver. However, if an identical (or subsuming) pre-existing key has already been found, then the associated instantiation must already appear in the handled by the solver and the new one can be discarded.

    The locals value consists of the dependencies on which the substitution resulting from instantiation has been applied. The dependencies should not be directly used here as they may depend on closure and quantifier ids that were only obtained when instantiation was computed.

    The instantiationSubst substitution corresponds that applied to dependencies when constructing locals.

  19. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  20. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  22. def substitute(substituter: (Encoded) ⇒ Encoded, msubst: Map[Encoded, Matcher]): TemplateStructure

    Permalink
  23. def subsumes(that: TemplateStructure): Boolean

    Permalink
  24. final def synchronized[T0](arg0: ⇒ T0): T0

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

    Permalink
    Definition Classes
    AnyRef → Any
  26. final def wait(): Unit

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

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

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

Inherited from AnyRef

Inherited from Any

Ungrouped