úÎ!8      The ( function takes a list of integers that B specifies a homogeneous linear Diophantine equation, and returns  the equation'#s minimal, non-negative solutions. AA substitution maps variables into terms. For the show and read B methods, the substitution is a list of maplets, and the variable D and the term in each element of the list are separated by a colon. @An equation is a pair of terms. For the show and read methods, / the two terms are separated by an equal sign. 5A term in a commutative monoid is represented by the > identity element, or as the sum of factors. A factor is the ? product of a positive integer coefficient and a variable. No B variable occurs twice in a term. For the show and read methods, F zero is the identity element, the plus sign is the moniod operation. ) represents the identity element (zero). <A variable is an alphabetic Unicode character followed by a B sequence of alphabetic or numeric digit Unicode characters. The ? show method for a term works correctly when variables satisfy  the  predicate. 2Return a term that consists of a single variable. AMultiply every coefficient in a term by an non-negative integer.  Add two terms. ?Return all variable-coefficient pairs in the term in ascending  variable order. :Convert a list of variable-coefficient pairs into a term. =Construct a substitution from a list of variable-term pairs. <Return all variable-term pairs in ascending variable order. 8Return the result of applying a substitution to a term. Given 0 (t0, t1), return a most general substitution s ; such that s(t0) = s(t1) modulo the equational axioms of a  commutative monoid.  !"#$    %      !"#$cmu-1.3'Algebra.CommutativeMonoid.HomLinDiaphEq%Algebra.CommutativeMonoid.Unification homLinDiaphEq SubstitutionEquationTermideisVarvarmuladdassocssubstmapletsapplyunifyVectorvectorbasisnewMinimalResults nextSearchunnecessaryBrancheslessEqbreadthFirstSearchprodMapletnegtermmgugenChargenSymgenSymsAvoiding isNumToken isVarTokenscan