class Substitution extends PreSubstitution
A substitution is a mapping from variables to lambda-expressions which differs from the identity on finitely many variables. Therefore: 1) each variable is mapped to only one lambda expression 2) the order of the variable-mappings is irrelevant 3) all variable-mappings are applied simultaneously to a term i.e. {x |-> y, y |-> a}x = y and not a.
As the lambda calculus contains variable binders, substitution can only be defined up to alpha-equivalence. When applying a substitution, bound variables are renamed if needed.
- Source
- substitution.scala
- Alphabetic
- By Inheritance
- Substitution
- PreSubstitution
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
+(v: TVar, t: Ty): PreSubstitution
- Definition Classes
- PreSubstitution
-
def
+(v: Var, t: Expr): PreSubstitution
- Definition Classes
- PreSubstitution
-
def
->[B](y: B): (Substitution, B)
- Implicit
- This member is added by an implicit conversion from Substitution to ArrowAssoc[Substitution] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
apply[T, U](x: T)(implicit ev: Substitutable[Substitution, T, U]): U
Applies this substitution to an object.
Applies this substitution to an object.
- T
The type of x.
- U
The type of x substituted.
- x
The object to be substituted.
- ev
Testifies that applying a Substitution to an element of type T will result in an element of type U.
-
def
asFOLSubstitution: FOLSubstitution
- Definition Classes
- PreSubstitution
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
compose(that: Substitution): Substitution
Compose two substitutions such that
(a compose b)(x) == a(b(x))
. -
def
domain: Set[Var]
- Definition Classes
- PreSubstitution
-
def
ensuring(cond: (Substitution) ⇒ Boolean, msg: ⇒ Any): Substitution
- Implicit
- This member is added by an implicit conversion from Substitution to Ensuring[Substitution] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: (Substitution) ⇒ Boolean): Substitution
- Implicit
- This member is added by an implicit conversion from Substitution to Ensuring[Substitution] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean, msg: ⇒ Any): Substitution
- Implicit
- This member is added by an implicit conversion from Substitution to Ensuring[Substitution] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean): Substitution
- Implicit
- This member is added by an implicit conversion from Substitution to Ensuring[Substitution] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(a: Any): Boolean
- Definition Classes
- PreSubstitution → AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from Substitution to StringFormat[Substitution] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- PreSubstitution → AnyRef → Any
-
def
isEmpty: Boolean
- Definition Classes
- PreSubstitution
-
def
isIdentity: Boolean
- Definition Classes
- PreSubstitution
- def isInjective(dom: Set[Var]): Boolean
- def isInjectiveOnDomain: Boolean
-
def
isInjectiveRenaming: Boolean
- Definition Classes
- PreSubstitution
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isRenaming: Boolean
- Definition Classes
- PreSubstitution
-
val
map: Map[Var, Expr]
- Definition Classes
- PreSubstitution
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
range: Set[Var]
- Definition Classes
- PreSubstitution
- def restrict(newDomain: Iterable[Var]): Substitution
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- PreSubstitution → AnyRef → Any
-
def
toSubstitution: Substitution
- Definition Classes
- PreSubstitution
-
val
typeMap: Map[TVar, Ty]
- Definition Classes
- PreSubstitution
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
→[B](y: B): (Substitution, B)
- Implicit
- This member is added by an implicit conversion from Substitution to ArrowAssoc[Substitution] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
Shadowed Implicit Value Members
-
def
+(other: String): String
- Implicit
- This member is added by an implicit conversion from Substitution to any2stringadd[Substitution] performed by method any2stringadd in scala.Predef.
- Shadowing
- This implicitly inherited member is shadowed by one or more members in this class.
To access this member you can use a type ascription:(substitution: any2stringadd[Substitution]).+(other)
- Definition Classes
- any2stringadd