Class/Object

ap.terfor.substitutions

Substitution

Related Docs: object Substitution | package substitutions

Permalink

abstract class Substitution extends (TerFor) ⇒ TerFor with Sorted[Substitution]

A substitution is a mapping from TerFor to TerFor that replaces variables and constants with arbitrary other terms. It is required that a substitution is only applied to terms/formulas that are sorted according to order. There are two more concrete sub-traits: SimpleSubstitution, which performs a simple replacement of constants or variables, and PseudoDivSubstitution, which can make use of pseudo-division in order to replace expressions n * c.

Linear Supertypes
Sorted[Substitution], (TerFor) ⇒ TerFor, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Substitution
  2. Sorted
  3. Function1
  4. AnyRef
  5. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Substitution()

    Permalink

Abstract Value Members

  1. abstract def apply(lc: LinearCombination): LinearCombination

    Permalink
  2. abstract def apply(t: Term): Term

    Permalink
  3. abstract def order: TermOrder

    Permalink

    The term order that is used for the resulting terms or formulas.

    The term order that is used for the resulting terms or formulas. We require that a substitution is only applied to terms/formulas that are already sorted according to this order

    Attributes
    protected[ap.terfor.substitutions]
  4. abstract def passQuantifiers(num: Int): Substitution

    Permalink

    Substitution that is to be used underneath num quantifiers.

    Substitution that is to be used underneath num quantifiers. Because we use De Bruijn indexes, passing quantifiers shifts the variables in a substitution

    Attributes
    protected[ap.terfor.substitutions]
  5. abstract def pseudoApply(lc: LinearCombination): LinearCombination

    Permalink

    Some kinds of substitutions can only be applied when pseudo-reduction is allowed to be performed.

    Some kinds of substitutions can only be applied when pseudo-reduction is allowed to be performed. Implementations of the following method are allowed to multiply lc with arbitrary positive integers to achieve this.

    Attributes
    protected[ap.terfor.substitutions]
  6. abstract def sortBy(order: TermOrder): Substitution

    Permalink

    Re-sort an object with a new TermOrder.

    Re-sort an object with a new TermOrder. It is guaranteed that the result isSortedBy(order)

    Definition Classes
    Sorted

Concrete 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. def andThen[A](g: (TerFor) ⇒ A): (TerFor) ⇒ A

    Permalink
    Definition Classes
    Function1
    Annotations
    @unspecialized()
  5. def apply(conj: PredConj): PredConj

    Permalink
  6. def apply(a: Atom): Atom

    Permalink
  7. def apply(conjs: NegatedConjunctions): NegatedConjunctions

    Permalink
  8. def apply(conj: Conjunction): Conjunction

    Permalink
  9. def apply(conj: ArithConj): ArithConj

    Permalink
  10. def apply(conj: InEqConj): InEqConj

    Permalink
  11. def apply(negConj: NegEquationConj): NegEquationConj

    Permalink
  12. def apply(conj: EquationConj): EquationConj

    Permalink
  13. def apply(f: Formula): Formula

    Permalink
  14. final def apply(t: TerFor): TerFor

    Permalink
    Definition Classes
    Substitution → Function1
  15. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  16. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  17. def compose[A](g: (A) ⇒ TerFor): (A) ⇒ TerFor

    Permalink
    Definition Classes
    Function1
    Annotations
    @unspecialized()
  18. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  19. def equals(arg0: Any): Boolean

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

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  23. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  24. final def isSortedBy(otherOrder: TermOrder): Boolean

    Permalink

    Compare the order of this Substitution with a given order.

    Compare the order of this Substitution with a given order. We use equality here, because the behaviour would be quite confusing with the relation isSubOrderOf (remember that the substitution has to cope with arbitrary terms/formulas that are sorted by the order)

    Definition Classes
    SubstitutionSorted
  25. final def ne(arg0: AnyRef): Boolean

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

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

    Permalink
    Definition Classes
    AnyRef
  28. final def synchronized[T0](arg0: ⇒ T0): T0

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

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

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

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

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

Inherited from Sorted[Substitution]

Inherited from (TerFor) ⇒ TerFor

Inherited from AnyRef

Inherited from Any

Ungrouped