úÎ(y&‡     (C) 2009 John D. RamsdellGPLSafe VÿfA solution to a linear equation is a partial map from variables to terms, and a term is a pair of lists of integers, the variable part of the term followed by the constant part. The variable part may specify variables not in the input. In other words, the length of the coefficents in the answer may exceed the length of the coefficients in the input.‰A linear equation with integer coefficients is represented as a pair of lists of non-zero integers, the coefficients and the constants.QFind integer solutions to a linear equation or fail when there are no solutions.(C) 2009 John D. RamsdellGPLSafe%åÆA substitution maps variables into terms. For the show and read methods, the substitution is a list of maplets, and the variable and the term in each element of the list are separated by a colon.nAn equation is a pair of terms. For the show and read methods, the two terms are separated by an equal sign.ÿ^A term in an Abelian group is represented by the identity element, or as the sum of factors. A factor is the product of a non-zero integer coefficient and a variable. No variable occurs twice in a term. For the show and read methods, zero is the identity element, the plus sign is the group operation, and the minus sign is the group inverse.( represents the identity element (zero).ÂA variable is an alphabetic Unicode character followed by a sequence of alphabetic or numeric digit Unicode characters. The show method for a term works correctly when variables satisfy the  predicate. 1Return a term that consists of a single variable. 3Multiply every coefficient in a term by an integer. Add two terms. OReturn all variable-coefficient pairs in the term in ascending variable order.9Convert 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.7Return the result of applying a substitution to a term.Given ™ (t0, t1), return a most general substitution s such that s(t0) = s(t1) modulo the equational axioms of an Abelian group. Unification always succeeds.Given x (t0, t1), return a most general substitution s such that s(t0) = t1 modulo the equational axioms of an Abelian group.    !"#      !!"agum-2.7-9CHvROMW8ks9rxtH6G9Yp3Algebra.AbelianGroup.IntLinEq(Algebra.AbelianGroup.UnificationMatchingSubstLinEqintLinEq SubstitutionEquationTermideisVarvarmuladdassocssubstmapletsapplyunifymatch $fReadTerm $fShowTerm$fReadEquation$fShowEquation$fReadSubstitution$fShowSubstitution $fReadMaplet $fShowMaplet$fEqTerm $fEqEquation$fEqSubstitution $fEqMaplettermMaplet