DifferentialSparseMultivariatePolynomial(R, S, V)
dpolcat.spad line 407
[edit on github]
DifferentialSparseMultivariatePolynomial implements an ordinary differential polynomial ring by combining a domain belonging to the category DifferentialVariableCategory with the domain SparseMultivariatePolynomial.
- * : (%, %) -> %
- from Magma
- * : (%, R) -> %
- from RightModule(R)
- * : (%, Fraction(Integer)) -> % if R has Algebra(Fraction(Integer))
- from RightModule(Fraction(Integer))
- * : (%, Integer) -> % if R has LinearlyExplicitOver(Integer)
- from RightModule(Integer)
- * : (R, %) -> %
- from LeftModule(R)
- * : (Fraction(Integer), %) -> % if R has Algebra(Fraction(Integer))
- from LeftModule(Fraction(Integer))
- * : (Integer, %) -> %
- from AbelianGroup
- * : (NonNegativeInteger, %) -> %
- from AbelianMonoid
- * : (PositiveInteger, %) -> %
- from AbelianSemiGroup
- + : (%, %) -> %
- from AbelianSemiGroup
- - : % -> %
- from AbelianGroup
- - : (%, %) -> %
- from AbelianGroup
- / : (%, R) -> % if R has Field
- from AbelianMonoidRing(R, IndexedExponents(V))
- 0 : () -> %
- from AbelianMonoid
- 1 : () -> %
- from MagmaWithUnit
- = : (%, %) -> Boolean
- from BasicType
- D : % -> % if R has DifferentialRing
- from DifferentialRing
- D : (%, V) -> %
- from PartialDifferentialRing(V)
- D : (%, V, NonNegativeInteger) -> %
- from PartialDifferentialRing(V)
- D : (%, List(V)) -> %
- from PartialDifferentialRing(V)
- D : (%, List(V), List(NonNegativeInteger)) -> %
- from PartialDifferentialRing(V)
- D : (%, List(Symbol)) -> % if R has PartialDifferentialRing(Symbol)
- from PartialDifferentialRing(Symbol)
- D : (%, List(Symbol), List(NonNegativeInteger)) -> % if R has PartialDifferentialRing(Symbol)
- from PartialDifferentialRing(Symbol)
- D : (%, Mapping(R, R)) -> %
- from DifferentialExtension(R)
- D : (%, Mapping(R, R), NonNegativeInteger) -> %
- from DifferentialExtension(R)
- D : (%, NonNegativeInteger) -> % if R has DifferentialRing
- from DifferentialRing
- D : (%, Symbol) -> % if R has PartialDifferentialRing(Symbol)
- from PartialDifferentialRing(Symbol)
- D : (%, Symbol, NonNegativeInteger) -> % if R has PartialDifferentialRing(Symbol)
- from PartialDifferentialRing(Symbol)
- ^ : (%, NonNegativeInteger) -> %
- from MagmaWithUnit
- ^ : (%, PositiveInteger) -> %
- from Magma
- annihilate? : (%, %) -> Boolean
- from Rng
- antiCommutator : (%, %) -> %
- from NonAssociativeSemiRng
- associates? : (%, %) -> Boolean if R has EntireRing
- from EntireRing
- associator : (%, %, %) -> %
- from NonAssociativeRng
- binomThmExpt : (%, %, NonNegativeInteger) -> % if % has CommutativeRing
- from FiniteAbelianMonoidRing(R, IndexedExponents(V))
- characteristic : () -> NonNegativeInteger
- from NonAssociativeRing
- charthRoot : % -> Union(%, "failed") if % has CharacteristicNonZero and R has PolynomialFactorizationExplicit or R has CharacteristicNonZero
- from CharacteristicNonZero
- coefficient : (%, V, NonNegativeInteger) -> %
- from MaybeSkewPolynomialCategory(R, IndexedExponents(V), V)
- coefficient : (%, List(V), List(NonNegativeInteger)) -> %
- from MaybeSkewPolynomialCategory(R, IndexedExponents(V), V)
- coefficient : (%, IndexedExponents(V)) -> R
- from AbelianMonoidRing(R, IndexedExponents(V))
- coefficients : % -> List(R)
- from FreeModuleCategory(R, IndexedExponents(V))
- coerce : % -> % if R has CommutativeRing
- from Algebra(%)
- coerce : R -> %
- from Algebra(R)
- coerce : S -> %
- from CoercibleFrom(S)
- coerce : V -> %
- from CoercibleFrom(V)
- coerce : Fraction(Integer) -> % if R has RetractableTo(Fraction(Integer)) or R has Algebra(Fraction(Integer))
- from Algebra(Fraction(Integer))
- coerce : Integer -> %
- from NonAssociativeRing
- coerce : SparseMultivariatePolynomial(R, S) -> %
- from CoercibleFrom(SparseMultivariatePolynomial(R, S))
- coerce : % -> OutputForm
- from CoercibleTo(OutputForm)
- commutator : (%, %) -> %
- from NonAssociativeRng
- conditionP : Matrix(%) -> Union(Vector(%), "failed") if % has CharacteristicNonZero and R has PolynomialFactorizationExplicit
- from PolynomialFactorizationExplicit
- construct : List(Record(k : IndexedExponents(V), c : R)) -> %
- from IndexedProductCategory(R, IndexedExponents(V))
- constructOrdered : List(Record(k : IndexedExponents(V), c : R)) -> %
- from IndexedProductCategory(R, IndexedExponents(V))
- content : (%, V) -> % if R has GcdDomain
- from PolynomialCategory(R, IndexedExponents(V), V)
- content : % -> R if R has GcdDomain
- from FiniteAbelianMonoidRing(R, IndexedExponents(V))
- convert : % -> InputForm if V has ConvertibleTo(InputForm) and R has ConvertibleTo(InputForm)
- from ConvertibleTo(InputForm)
- convert : % -> Pattern(Float) if V has ConvertibleTo(Pattern(Float)) and R has ConvertibleTo(Pattern(Float))
- from ConvertibleTo(Pattern(Float))
- convert : % -> Pattern(Integer) if V has ConvertibleTo(Pattern(Integer)) and R has ConvertibleTo(Pattern(Integer))
- from ConvertibleTo(Pattern(Integer))
- degree : % -> IndexedExponents(V)
- from AbelianMonoidRing(R, IndexedExponents(V))
- degree : (%, List(V)) -> List(NonNegativeInteger)
- from MaybeSkewPolynomialCategory(R, IndexedExponents(V), V)
- degree : (%, S) -> NonNegativeInteger
- from DifferentialPolynomialCategory(R, S, V, IndexedExponents(V))
- degree : (%, V) -> NonNegativeInteger
- from MaybeSkewPolynomialCategory(R, IndexedExponents(V), V)
- differentialVariables : % -> List(S)
- from DifferentialPolynomialCategory(R, S, V, IndexedExponents(V))
- differentiate : % -> % if R has DifferentialRing
- from DifferentialRing
- differentiate : (%, V) -> %
- from PartialDifferentialRing(V)
- differentiate : (%, V, NonNegativeInteger) -> %
- from PartialDifferentialRing(V)
- differentiate : (%, List(V)) -> %
- from PartialDifferentialRing(V)
- differentiate : (%, List(V), List(NonNegativeInteger)) -> %
- from PartialDifferentialRing(V)
- differentiate : (%, List(Symbol)) -> % if R has PartialDifferentialRing(Symbol)
- from PartialDifferentialRing(Symbol)
- differentiate : (%, List(Symbol), List(NonNegativeInteger)) -> % if R has PartialDifferentialRing(Symbol)
- from PartialDifferentialRing(Symbol)
- differentiate : (%, Mapping(R, R)) -> %
- from DifferentialExtension(R)
- differentiate : (%, Mapping(R, R), NonNegativeInteger) -> %
- from DifferentialExtension(R)
- differentiate : (%, NonNegativeInteger) -> % if R has DifferentialRing
- from DifferentialRing
- differentiate : (%, Symbol) -> % if R has PartialDifferentialRing(Symbol)
- from PartialDifferentialRing(Symbol)
- differentiate : (%, Symbol, NonNegativeInteger) -> % if R has PartialDifferentialRing(Symbol)
- from PartialDifferentialRing(Symbol)
- discriminant : (%, V) -> % if R has CommutativeRing
- from PolynomialCategory(R, IndexedExponents(V), V)
- eval : (%, %, %) -> %
- from InnerEvalable(%, %)
- eval : (%, S, %) -> % if R has DifferentialRing
- from InnerEvalable(S, %)
- eval : (%, S, R) -> % if R has DifferentialRing
- from InnerEvalable(S, R)
- eval : (%, V, %) -> %
- from InnerEvalable(V, %)
- eval : (%, V, R) -> %
- from InnerEvalable(V, R)
- eval : (%, Equation(%)) -> %
- from Evalable(%)
- eval : (%, List(%), List(%)) -> %
- from InnerEvalable(%, %)
- eval : (%, List(S), List(%)) -> % if R has DifferentialRing
- from InnerEvalable(S, %)
- eval : (%, List(S), List(R)) -> % if R has DifferentialRing
- from InnerEvalable(S, R)
- eval : (%, List(V), List(%)) -> %
- from InnerEvalable(V, %)
- eval : (%, List(V), List(R)) -> %
- from InnerEvalable(V, R)
- eval : (%, List(Equation(%))) -> %
- from Evalable(%)
- exquo : (%, %) -> Union(%, "failed") if R has EntireRing
- from EntireRing
- exquo : (%, R) -> Union(%, "failed") if R has EntireRing
- from FiniteAbelianMonoidRing(R, IndexedExponents(V))
- factor : % -> Factored(%) if R has PolynomialFactorizationExplicit
- from UniqueFactorizationDomain
- factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PolynomialFactorizationExplicit
- from PolynomialFactorizationExplicit
- factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PolynomialFactorizationExplicit
- from PolynomialFactorizationExplicit
- fmecg : (%, IndexedExponents(V), R, %) -> %
- from FiniteAbelianMonoidRing(R, IndexedExponents(V))
- gcd : (%, %) -> % if R has GcdDomain
- from GcdDomain
- gcd : List(%) -> % if R has GcdDomain
- from GcdDomain
- gcdPolynomial : (SparseUnivariatePolynomial(%), SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%) if R has GcdDomain
- from PolynomialFactorizationExplicit
- ground : % -> R
- from FiniteAbelianMonoidRing(R, IndexedExponents(V))
- ground? : % -> Boolean
- from FiniteAbelianMonoidRing(R, IndexedExponents(V))
- hash : % -> SingleInteger if R has Hashable and V has Hashable
- from Hashable
- hashUpdate! : (HashState, %) -> HashState if R has Hashable and V has Hashable
- from Hashable
- initial : % -> %
- from DifferentialPolynomialCategory(R, S, V, IndexedExponents(V))
- isExpt : % -> Union(Record(var : V, exponent : NonNegativeInteger), "failed")
- from PolynomialCategory(R, IndexedExponents(V), V)
- isPlus : % -> Union(List(%), "failed")
- from PolynomialCategory(R, IndexedExponents(V), V)
- isTimes : % -> Union(List(%), "failed")
- from PolynomialCategory(R, IndexedExponents(V), V)
- isobaric? : % -> Boolean
- from DifferentialPolynomialCategory(R, S, V, IndexedExponents(V))
- latex : % -> String
- from SetCategory
- lcm : (%, %) -> % if R has GcdDomain
- from GcdDomain
- lcm : List(%) -> % if R has GcdDomain
- from GcdDomain
- lcmCoef : (%, %) -> Record(llcm_res : %, coeff1 : %, coeff2 : %) if R has GcdDomain
- from LeftOreRing
- leader : % -> V
- from DifferentialPolynomialCategory(R, S, V, IndexedExponents(V))
- leadingCoefficient : % -> R
- from IndexedProductCategory(R, IndexedExponents(V))
- leadingMonomial : % -> %
- from IndexedProductCategory(R, IndexedExponents(V))
- leadingSupport : % -> IndexedExponents(V)
- from IndexedProductCategory(R, IndexedExponents(V))
- leadingTerm : % -> Record(k : IndexedExponents(V), c : R)
- from IndexedProductCategory(R, IndexedExponents(V))
- leftPower : (%, NonNegativeInteger) -> %
- from MagmaWithUnit
- leftPower : (%, PositiveInteger) -> %
- from Magma
- leftRecip : % -> Union(%, "failed")
- from MagmaWithUnit
- linearExtend : (Mapping(R, IndexedExponents(V)), %) -> R if R has CommutativeRing
- from FreeModuleCategory(R, IndexedExponents(V))
- listOfTerms : % -> List(Record(k : IndexedExponents(V), c : R))
- from IndexedDirectProductCategory(R, IndexedExponents(V))
- mainVariable : % -> Union(V, "failed")
- from MaybeSkewPolynomialCategory(R, IndexedExponents(V), V)
- makeVariable : % -> Mapping(%, NonNegativeInteger) if R has DifferentialRing
- from DifferentialPolynomialCategory(R, S, V, IndexedExponents(V))
- makeVariable : S -> Mapping(%, NonNegativeInteger)
- from DifferentialPolynomialCategory(R, S, V, IndexedExponents(V))
- map : (Mapping(R, R), %) -> %
- from IndexedProductCategory(R, IndexedExponents(V))
- mapExponents : (Mapping(IndexedExponents(V), IndexedExponents(V)), %) -> %
- from FiniteAbelianMonoidRing(R, IndexedExponents(V))
- minimumDegree : % -> IndexedExponents(V)
- from FiniteAbelianMonoidRing(R, IndexedExponents(V))
- minimumDegree : (%, List(V)) -> List(NonNegativeInteger)
- from PolynomialCategory(R, IndexedExponents(V), V)
- minimumDegree : (%, V) -> NonNegativeInteger
- from PolynomialCategory(R, IndexedExponents(V), V)
- monicDivide : (%, %, V) -> Record(quotient : %, remainder : %)
- from PolynomialCategory(R, IndexedExponents(V), V)
- monomial : (%, V, NonNegativeInteger) -> %
- from MaybeSkewPolynomialCategory(R, IndexedExponents(V), V)
- monomial : (%, List(V), List(NonNegativeInteger)) -> %
- from MaybeSkewPolynomialCategory(R, IndexedExponents(V), V)
- monomial : (R, IndexedExponents(V)) -> %
- from IndexedProductCategory(R, IndexedExponents(V))
- monomial? : % -> Boolean
- from IndexedProductCategory(R, IndexedExponents(V))
- monomials : % -> List(%)
- from MaybeSkewPolynomialCategory(R, IndexedExponents(V), V)
- multivariate : (SparseUnivariatePolynomial(%), V) -> %
- from PolynomialCategory(R, IndexedExponents(V), V)
- multivariate : (SparseUnivariatePolynomial(R), V) -> %
- from PolynomialCategory(R, IndexedExponents(V), V)
- numberOfMonomials : % -> NonNegativeInteger
- from IndexedDirectProductCategory(R, IndexedExponents(V))
- one? : % -> Boolean
- from MagmaWithUnit
- opposite? : (%, %) -> Boolean
- from AbelianMonoid
- order : % -> NonNegativeInteger
- from DifferentialPolynomialCategory(R, S, V, IndexedExponents(V))
- order : (%, S) -> NonNegativeInteger
- from DifferentialPolynomialCategory(R, S, V, IndexedExponents(V))
- patternMatch : (%, Pattern(Float), PatternMatchResult(Float, %)) -> PatternMatchResult(Float, %) if V has PatternMatchable(Float) and R has PatternMatchable(Float)
- from PatternMatchable(Float)
- patternMatch : (%, Pattern(Integer), PatternMatchResult(Integer, %)) -> PatternMatchResult(Integer, %) if V has PatternMatchable(Integer) and R has PatternMatchable(Integer)
- from PatternMatchable(Integer)
- plenaryPower : (%, PositiveInteger) -> % if R has CommutativeRing or R has Algebra(Fraction(Integer))
- from NonAssociativeAlgebra(%)
- pomopo! : (%, R, IndexedExponents(V), %) -> %
- from FiniteAbelianMonoidRing(R, IndexedExponents(V))
- prime? : % -> Boolean if R has PolynomialFactorizationExplicit
- from UniqueFactorizationDomain
- primitiveMonomials : % -> List(%)
- from MaybeSkewPolynomialCategory(R, IndexedExponents(V), V)
- primitivePart : % -> % if R has GcdDomain
- from PolynomialCategory(R, IndexedExponents(V), V)
- primitivePart : (%, V) -> % if R has GcdDomain
- from PolynomialCategory(R, IndexedExponents(V), V)
- recip : % -> Union(%, "failed")
- from MagmaWithUnit
- reducedSystem : Matrix(%) -> Matrix(R)
- from LinearlyExplicitOver(R)
- reducedSystem : Matrix(%) -> Matrix(Integer) if R has LinearlyExplicitOver(Integer)
- from LinearlyExplicitOver(Integer)
- reducedSystem : (Matrix(%), Vector(%)) -> Record(mat : Matrix(R), vec : Vector(R))
- from LinearlyExplicitOver(R)
- reducedSystem : (Matrix(%), Vector(%)) -> Record(mat : Matrix(Integer), vec : Vector(Integer)) if R has LinearlyExplicitOver(Integer)
- from LinearlyExplicitOver(Integer)
- reductum : % -> %
- from IndexedProductCategory(R, IndexedExponents(V))
- resultant : (%, %, V) -> % if R has CommutativeRing
- from PolynomialCategory(R, IndexedExponents(V), V)
- retract : % -> R
- from RetractableTo(R)
- retract : % -> S
- from RetractableTo(S)
- retract : % -> V
- from RetractableTo(V)
- retract : % -> Fraction(Integer) if R has RetractableTo(Fraction(Integer))
- from RetractableTo(Fraction(Integer))
- retract : % -> Integer if R has RetractableTo(Integer)
- from RetractableTo(Integer)
- retract : % -> SparseMultivariatePolynomial(R, S)
- from RetractableTo(SparseMultivariatePolynomial(R, S))
- retractIfCan : % -> Union(R, "failed")
- from RetractableTo(R)
- retractIfCan : % -> Union(S, "failed")
- from RetractableTo(S)
- retractIfCan : % -> Union(V, "failed")
- from RetractableTo(V)
- retractIfCan : % -> Union(Fraction(Integer), "failed") if R has RetractableTo(Fraction(Integer))
- from RetractableTo(Fraction(Integer))
- retractIfCan : % -> Union(Integer, "failed") if R has RetractableTo(Integer)
- from RetractableTo(Integer)
- retractIfCan : % -> Union(SparseMultivariatePolynomial(R, S), "failed")
- from RetractableTo(SparseMultivariatePolynomial(R, S))
- rightPower : (%, NonNegativeInteger) -> %
- from MagmaWithUnit
- rightPower : (%, PositiveInteger) -> %
- from Magma
- rightRecip : % -> Union(%, "failed")
- from MagmaWithUnit
- sample : () -> %
- from AbelianMonoid
- separant : % -> %
- from DifferentialPolynomialCategory(R, S, V, IndexedExponents(V))
- smaller? : (%, %) -> Boolean if R has Comparable
- from Comparable
- solveLinearPolynomialEquation : (List(SparseUnivariatePolynomial(%)), SparseUnivariatePolynomial(%)) -> Union(List(SparseUnivariatePolynomial(%)), "failed") if R has PolynomialFactorizationExplicit
- from PolynomialFactorizationExplicit
- squareFree : % -> Factored(%) if R has GcdDomain
- from PolynomialCategory(R, IndexedExponents(V), V)
- squareFreePart : % -> % if R has GcdDomain
- from PolynomialCategory(R, IndexedExponents(V), V)
- squareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%)) if R has PolynomialFactorizationExplicit
- from PolynomialFactorizationExplicit
- subtractIfCan : (%, %) -> Union(%, "failed")
- from CancellationAbelianMonoid
- support : % -> List(IndexedExponents(V))
- from FreeModuleCategory(R, IndexedExponents(V))
- totalDegree : % -> NonNegativeInteger
- from MaybeSkewPolynomialCategory(R, IndexedExponents(V), V)
- totalDegree : (%, List(V)) -> NonNegativeInteger
- from MaybeSkewPolynomialCategory(R, IndexedExponents(V), V)
- totalDegreeSorted : (%, List(V)) -> NonNegativeInteger
- from MaybeSkewPolynomialCategory(R, IndexedExponents(V), V)
- unit? : % -> Boolean if R has EntireRing
- from EntireRing
- unitCanonical : % -> % if R has EntireRing
- from EntireRing
- unitNormal : % -> Record(unit : %, canonical : %, associate : %) if R has EntireRing
- from EntireRing
- univariate : (%, V) -> SparseUnivariatePolynomial(%)
- from PolynomialCategory(R, IndexedExponents(V), V)
- univariate : % -> SparseUnivariatePolynomial(R)
- from PolynomialCategory(R, IndexedExponents(V), V)
- variables : % -> List(V)
- from MaybeSkewPolynomialCategory(R, IndexedExponents(V), V)
- weight : % -> NonNegativeInteger
- from DifferentialPolynomialCategory(R, S, V, IndexedExponents(V))
- weight : (%, S) -> NonNegativeInteger
- from DifferentialPolynomialCategory(R, S, V, IndexedExponents(V))
- weights : % -> List(NonNegativeInteger)
- from DifferentialPolynomialCategory(R, S, V, IndexedExponents(V))
- weights : (%, S) -> List(NonNegativeInteger)
- from DifferentialPolynomialCategory(R, S, V, IndexedExponents(V))
- zero? : % -> Boolean
- from AbelianMonoid
- ~= : (%, %) -> Boolean
- from BasicType
PatternMatchable(Integer)
CharacteristicNonZero
Module(Fraction(Integer))
NonAssociativeSemiRing
RetractableTo(SparseMultivariatePolynomial(R, S))
LeftModule(R)
CoercibleFrom(V)
BiModule(%, %)
AbelianProductCategory(R)
ConvertibleTo(InputForm)
canonicalUnitNormal
Rng
CoercibleFrom(Integer)
TwoSidedRecip
FullyRetractableTo(R)
SemiRing
EntireRing
NonAssociativeAlgebra(Fraction(Integer))
FreeModuleCategory(R, IndexedExponents(V))
unitsKnown
FullyLinearlyExplicitOver(R)
PatternMatchable(Float)
PolynomialCategory(R, IndexedExponents(V), V)
DifferentialPolynomialCategory(R, S, V, IndexedExponents(V))
IndexedProductCategory(R, IndexedExponents(V))
AbelianSemiGroup
noZeroDivisors
CoercibleFrom(R)
CoercibleFrom(S)
InnerEvalable(S, %)
SemiGroup
Magma
GcdDomain
IntegralDomain
LeftModule(%)
InnerEvalable(V, R)
UniqueFactorizationDomain
PartialDifferentialRing(Symbol)
CharacteristicZero
Module(R)
CoercibleFrom(Fraction(Integer))
Algebra(%)
InnerEvalable(S, R)
DifferentialRing
BiModule(R, R)
RightModule(Fraction(Integer))
PartialDifferentialRing(V)
InnerEvalable(V, %)
RightModule(R)
NonAssociativeRng
CommutativeRing
NonAssociativeSemiRng
CancellationAbelianMonoid
RetractableTo(Integer)
LinearlyExplicitOver(R)
AbelianMonoidRing(R, IndexedExponents(V))
SetCategory
CommutativeStar
AbelianMonoid
MagmaWithUnit
Comparable
NonAssociativeRing
RightModule(%)
VariablesCommuteWithCoefficients
NonAssociativeAlgebra(%)
Hashable
RetractableTo(S)
CoercibleFrom(SparseMultivariatePolynomial(R, S))
Module(%)
CoercibleTo(OutputForm)
DifferentialExtension(R)
MaybeSkewPolynomialCategory(R, IndexedExponents(V), V)
FiniteAbelianMonoidRing(R, IndexedExponents(V))
ConvertibleTo(Pattern(Float))
SemiRng
LinearlyExplicitOver(Integer)
Monoid
PolynomialFactorizationExplicit
NonAssociativeAlgebra(R)
LeftOreRing
Algebra(R)
Algebra(Fraction(Integer))
BasicType
Ring
RightModule(Integer)
IndexedDirectProductCategory(R, IndexedExponents(V))
InnerEvalable(%, %)
LeftModule(Fraction(Integer))
Evalable(%)
BiModule(Fraction(Integer), Fraction(Integer))
RetractableTo(Fraction(Integer))
RetractableTo(R)
RetractableTo(V)
ConvertibleTo(Pattern(Integer))
AbelianGroup