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.