c

gapt.formats.tip.transformation

VariableMatchExpansion

class VariableMatchExpansion extends AnyRef

This class expands Boolean match-expressions whose matched expression is a variable.

Let E be the boolean match-expression ( match x ( case p_1 e_1) ... (case p_n e_n)), and let X_i be the variables in pattern p_i. Then the expression E is expanded into the formula !X_1 (e_1[x/p_1]) & ... & !X_n (e_n[x/p_n]).

The variable-match-expressions are expanded from outside to inside.

Source
variableMatchExpansion.scala
Linear Supertypes
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. VariableMatchExpansion
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new VariableMatchExpansion(problem: TipSmtProblem)

    problem

    A well-formed TIP problem whose variable-match expressions are to be expanded.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from VariableMatchExpansion toany2stringadd[VariableMatchExpansion] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (VariableMatchExpansion, B)
    Implicit
    This member is added by an implicit conversion from VariableMatchExpansion toArrowAssoc[VariableMatchExpansion] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. def apply(): TipSmtProblem

    Expands variable-match expressions in the given problem.

    Expands variable-match expressions in the given problem.

    Variable-match expressions are expanded in function definitions, goals and assertions.

    returns

    A problem without variable-match expressions.

  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  9. def ensuring(cond: (VariableMatchExpansion) => Boolean, msg: => Any): VariableMatchExpansion
    Implicit
    This member is added by an implicit conversion from VariableMatchExpansion toEnsuring[VariableMatchExpansion] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  10. def ensuring(cond: (VariableMatchExpansion) => Boolean): VariableMatchExpansion
    Implicit
    This member is added by an implicit conversion from VariableMatchExpansion toEnsuring[VariableMatchExpansion] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  11. def ensuring(cond: Boolean, msg: => Any): VariableMatchExpansion
    Implicit
    This member is added by an implicit conversion from VariableMatchExpansion toEnsuring[VariableMatchExpansion] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. def ensuring(cond: Boolean): VariableMatchExpansion
    Implicit
    This member is added by an implicit conversion from VariableMatchExpansion toEnsuring[VariableMatchExpansion] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  13. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  15. def expandCaseStatement(variable: TipSmtIdentifier, tipSmtCase: TipSmtCase, polarity: Polarity): TipSmtExpression

    Converts a case statement of a variable-match expression into a formula.

    Converts a case statement of a variable-match expression into a formula.

    variable

    The variable that is matched upon.

    tipSmtCase

    The case statement to be expanded.

    returns

    A formula of the form !X (e[x/p]), where X are the variables occurring in the case-statement's pattern, e is the case statement's expression and p is the case statement's pattern.

  16. def expandVariableMatch(tipSmtCase: TipSmtCase): TipSmtCase

    Expands variable-match expressions in the given case-statement.

    Expands variable-match expressions in the given case-statement.

    tipSmtCase

    The case statement in whose expression variable-match expressions are expanded.

    returns

    A case statement whose expression does not contain variable patterns.

  17. def expandVariableMatch(tipSmtMatch: TipSmtMatch, variables: Map[String, Polarity]): TipSmtExpression

    Expands variable-match expressions in the given expression.

    Expands variable-match expressions in the given expression.

    tipSmtMatch

    The expression whose variable-match expressions are to be expanded.

    returns

    An expression without variable-match subexpressions.

  18. def expandVariableMatch(expression: TipSmtExpression, variables: Map[String, Polarity]): TipSmtExpression

    Expands variable-match expressions in the given expression.

    Expands variable-match expressions in the given expression.

    expression

    The expression whose variable-match expressions are to be expanded.

    returns

    An expression without variable-match subexpressions.

  19. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from VariableMatchExpansion toStringFormat[VariableMatchExpansion] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  20. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  21. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  22. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  23. def isVariable(identifier: TipSmtIdentifier): Boolean

    Checks whether the given identifier represents a variable.

    Checks whether the given identifier represents a variable.

    identifier

    The identifier to be checked.

    returns

    true if the given identifier is a variable, false otherwise.

  24. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  25. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  26. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  27. def patternToExpression(pattern: TipSmtConstructorPattern): TipSmtExpression

    Converts a pattern into an expression.

    Converts a pattern into an expression.

    pattern

    The pattern to be converted into an expression.

    returns

    A formula representing the pattern.

  28. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  29. def toString(): String
    Definition Classes
    AnyRef → Any
  30. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  31. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  32. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated @deprecated
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

  2. def [B](y: B): (VariableMatchExpansion, B)
    Implicit
    This member is added by an implicit conversion from VariableMatchExpansion toArrowAssoc[VariableMatchExpansion] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use -> instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromVariableMatchExpansion to any2stringadd[VariableMatchExpansion]

Inherited by implicit conversion StringFormat fromVariableMatchExpansion to StringFormat[VariableMatchExpansion]

Inherited by implicit conversion Ensuring fromVariableMatchExpansion to Ensuring[VariableMatchExpansion]

Inherited by implicit conversion ArrowAssoc fromVariableMatchExpansion to ArrowAssoc[VariableMatchExpansion]

Ungrouped