This library provides basic predicates for substitutions manipulation. A substitution is a mapping from variables to FASILL terms.
The implementation of this library uses association lists (library(assoc)
) to represent substitutions.
This predicate succeeds when Substitution is an empty substitution.
This predicate translates Substitution to a list List of Variable-Value pairs.
This predicate translates List of Variable-Value pairs into a substitution Substitution.
This predicate adds a new binding Var/Term to the substitution SubstitutionIn, producing the new substitution SubtitutionOut.
This predicate succeeds if Var-Term is a binding in Substitution.
This predicate succeeds when Substitution is the initial substitution for the goal Goal, where each variable X in goal Goal is binded to itself (X/X).
This predicate composes both substitutions, Substitution1 and Substitution2 in SubstitutionOut.
This predicate applies the substitution Substitution to the expression ExpressionIn. ExpressionOut is the resulting expression.
This predicate writes a FASILL substitution Substitution for the standard output.