IndexedDirectProductObject(A, S)ΒΆ

indexedp.spad line 112 [edit on github]

Indexed direct products of objects over a set A of generators indexed by an ordered set S. It currently provides the ground for, e.g. FreeModule which lies at the basis of polynomials of all sorts. All items have finite support. If A is a monoid, then only non-zero terms are stored. If A has additive structure, it is propagated coordinatewise to the product. Similarly, comparisons are propagated using lexicographic ordering.

0: % if A has AbelianMonoid

from AbelianMonoid

*: (Integer, %) -> % if A has AbelianGroup

from AbelianGroup

*: (NonNegativeInteger, %) -> % if A has AbelianMonoid

from AbelianMonoid

*: (PositiveInteger, %) -> % if A has AbelianMonoid

from AbelianSemiGroup

+: (%, %) -> % if A has AbelianMonoid

from AbelianSemiGroup

-: % -> % if A has AbelianGroup

from AbelianGroup

-: (%, %) -> % if A has AbelianGroup

from AbelianGroup

<=: (%, %) -> Boolean if S has OrderedSet and A has OrderedAbelianMonoid or S has OrderedSet and A has OrderedAbelianMonoidSup

from PartialOrder

<: (%, %) -> Boolean if S has OrderedSet and A has OrderedAbelianMonoid or S has OrderedSet and A has OrderedAbelianMonoidSup

from PartialOrder

=: (%, %) -> Boolean if A has Hashable and S has Hashable or A has Comparable and S has Comparable or A has AbelianMonoid

from BasicType

>=: (%, %) -> Boolean if S has OrderedSet and A has OrderedAbelianMonoid or S has OrderedSet and A has OrderedAbelianMonoidSup

from PartialOrder

>: (%, %) -> Boolean if S has OrderedSet and A has OrderedAbelianMonoid or S has OrderedSet and A has OrderedAbelianMonoidSup

from PartialOrder

~=: (%, %) -> Boolean if A has Hashable and S has Hashable or A has Comparable and S has Comparable or A has AbelianMonoid

from BasicType

coerce: % -> OutputForm if A has Comparable and S has Comparable or A has AbelianMonoid

from CoercibleTo OutputForm

construct: List Record(k: S, c: A) -> %

from IndexedProductCategory(A, S)

constructOrdered: List Record(k: S, c: A) -> % if S has Comparable

from IndexedProductCategory(A, S)

hash: % -> SingleInteger if A has Hashable and S has Hashable

from Hashable

hashUpdate!: (HashState, %) -> HashState if A has Hashable and S has Hashable

from Hashable

inf: (%, %) -> % if A has OrderedAbelianMonoidSup and S has OrderedSet

from OrderedAbelianMonoidSup

latex: % -> String if A has Comparable and S has Comparable or A has AbelianMonoid

from SetCategory

leadingCoefficient: % -> A if S has Comparable

from IndexedProductCategory(A, S)

leadingMonomial: % -> % if S has Comparable

from IndexedProductCategory(A, S)

leadingSupport: % -> S if S has Comparable

from IndexedProductCategory(A, S)

leadingTerm: % -> Record(k: S, c: A) if S has Comparable

from IndexedProductCategory(A, S)

listOfTerms: % -> List Record(k: S, c: A)

from IndexedDirectProductCategory(A, S)

map: (A -> A, %) -> %

from IndexedProductCategory(A, S)

max: (%, %) -> % if S has OrderedSet and A has OrderedAbelianMonoid or S has OrderedSet and A has OrderedAbelianMonoidSup

from OrderedSet

min: (%, %) -> % if S has OrderedSet and A has OrderedAbelianMonoid or S has OrderedSet and A has OrderedAbelianMonoidSup

from OrderedSet

monomial?: % -> Boolean

from IndexedProductCategory(A, S)

monomial: (A, S) -> %

from IndexedProductCategory(A, S)

numberOfMonomials: % -> NonNegativeInteger

from IndexedDirectProductCategory(A, S)

opposite?: (%, %) -> Boolean if A has AbelianMonoid

from AbelianMonoid

reductum: % -> % if S has Comparable

from IndexedProductCategory(A, S)

sample: % if A has AbelianMonoid

from AbelianMonoid

smaller?: (%, %) -> Boolean if S has OrderedSet and A has OrderedAbelianMonoidSup or A has Comparable and S has Comparable or S has OrderedSet and A has OrderedAbelianMonoid

from Comparable

subtractIfCan: (%, %) -> Union(%, failed) if A has CancellationAbelianMonoid

from CancellationAbelianMonoid

sup: (%, %) -> % if A has OrderedAbelianMonoidSup and S has OrderedSet

from OrderedAbelianMonoidSup

zero?: % -> Boolean if A has AbelianMonoid

from AbelianMonoid

AbelianGroup if A has AbelianGroup

AbelianMonoid if A has AbelianMonoid

AbelianProductCategory A

AbelianSemiGroup if A has AbelianMonoid

BasicType if A has Hashable and S has Hashable or A has Comparable and S has Comparable or A has AbelianMonoid

CancellationAbelianMonoid if A has CancellationAbelianMonoid

CoercibleTo OutputForm if A has Comparable and S has Comparable or A has AbelianMonoid

Comparable if S has OrderedSet and A has OrderedAbelianMonoidSup or A has Comparable and S has Comparable or S has OrderedSet and A has OrderedAbelianMonoid

Hashable if A has Hashable and S has Hashable

IndexedDirectProductCategory(A, S)

IndexedProductCategory(A, S)

OrderedAbelianMonoid if S has OrderedSet and A has OrderedAbelianMonoidSup or S has OrderedSet and A has OrderedAbelianMonoid

OrderedAbelianMonoidSup if A has OrderedAbelianMonoidSup and S has OrderedSet

OrderedAbelianSemiGroup if S has OrderedSet and A has OrderedAbelianMonoid or S has OrderedSet and A has OrderedAbelianMonoidSup

OrderedCancellationAbelianMonoid if A has OrderedAbelianMonoidSup and S has OrderedSet

OrderedSet if S has OrderedSet and A has OrderedAbelianMonoid or S has OrderedSet and A has OrderedAbelianMonoidSup

PartialOrder if S has OrderedSet and A has OrderedAbelianMonoid or S has OrderedSet and A has OrderedAbelianMonoidSup

SetCategory if A has Comparable and S has Comparable or A has AbelianMonoid