freshCopy

abstract override fun freshCopy(): EmptyList

Returns a fresh copy of this object, that is, an instance of T which is equal to the current one in any aspect, except for variables directly or indirectly contained into this object, which are refreshed. This means the method could return this object itself, if no variable is present, or a new object with freshly generated variables.

Variables are refreshed consistently, meaning that, if more variables exists within this object having the same name, all fresh copies of such variables will have the same complete name.

Example: "f(X, g(X))".freshCopy() returns something like "f(X_1, g(X_1))" instead of "f(X_1, g(X_2))"

Notice that, if the current object is ground, the same object may be returned as a result by this method.

Return

a fresh copy of the current object which is different because variables are consistently renamed


abstract override fun freshCopy(scope: Scope): EmptyList

Returns a fresh copy of this object, similarly to freshCopy(), possibly reusing variables from the provided scope, if any

Return

a fresh copy of the current object which is different because variables are consistently renamed

Parameters

scope

the Scope containing variables to be used in copying

See also