This library provides predicates for linearization of FASILL programs.
A term or atom is linear if it does not contain multiple occurrences of the same variable. Any term or atom that is not linear is said to be nonlinear. Given a nonlinear atom , the linearization of is a process by which the structure is computed, where: is a linear atom built from by replacing each one of the multiple occurrences of the same variable by new fresh variables ; and is a set of proximity constrains (with ). The operator "" is asserting the similarity of two terms and . Now, let be a rule and be the linearization of , where , . For a set of rules, .
Given a FASILL program , where is a set of rules, is a similarity relation, and is a complete lattice. Let be a cut value. The set of rules which are similar to the rules in , for a level , are reflecting the meaning induced by the similarity relation into the set of rules . Note that the concept of extended program, , is a purely instrumental notion, which does not take part in the definition of the operational semantics of the language.
For more details see:
This predicate renames the expression Expression, replacing the variables of the expression by fresh variables. Renamed is the expression Expression with fresh variables.
This predicate succeeds when ?Substitution is a FASILL substitution of variables and Body is the linearized body of the substitution.
This predicate succeeds linearizing the FASILL rule Rule. This predicate has the side effect of retracting the rule Rule and asserting the new linearized rule.
This predicate succeeds when Rule is a FASILL rule and Linearized is a linearized rule of Rule.
This predicate succeeds linearizing the FASILL rule with identifier Id. This predicate has the side effect of retracting the rule and asserting the new linearized rule.
This predicate succeeds when Id is the identifier of a FASILL rule and Linearized is a linearized rule.
This predicate succeeds linearizing the FASILL rules of the current program. This predicate has the side effect of retracting the rules and asserting the new linearized rules.
This predicate succeeds when ExtendedTerm is an extended term of Term with truth degree TD. It can be used to generate, by reevaluation, all possible extended terms of a given term.
This predicate succeeds extending the FASILL rule Rule. This predicate has the side effect of retracting the rule Rule and asserting the new extended rules.
This predicate succeeds when Rule is a FASILL rule and Extended is an extended rule of Rule.
This predicate succeeds extending the FASILL rule with identifier Id. This predicate has the side effect of retracting the rule and asserting the new extended rules.
This predicate succeeds when Id is the identifier of a FASILL rule and Extended is a extended rule.
This predicate succeeds extending the FASILL rules of the current program. This predicate has the side effect of retracting the rules and asserting the new extended rules.