The free monoid on a set S is the monoid of finite products of
the form reduce(*, [si ^ ni])
where the si's are in S, and the ni's
are nonnegative integers. The multiplication is not commutative.
When S is an OrderedSet, then FreeMonoid(S) has order: for two
elements x
and y
the relation x < y
holds if either length(x) < length(y)
holds or if these lengths
are equal and if x
is smaller than y
w.r.t. the
lexicographical ordering induced by S
.
fricas
)sh FreeMonoid
FreeMonoid(S: SetCategory) is a domain constructor
Abbreviation for FreeMonoid is FMONOID
This constructor is not exposed in this frame.
------------------------------- Operations --------------------------------
?*? : (%, S) -> % ?*? : (S, %) -> %
?*? : (%, %) -> % ?=? : (%, %) -> Boolean
1 : () -> % ?^? : (%, PositiveInteger) -> %
coerce : S -> % coerce : % -> OutputForm
first : % -> S hash : % -> SingleInteger
hclf : (%, %) -> % hcrf : (%, %) -> %
latex : % -> String length : % -> NonNegativeInteger
mapGen : ((S -> S), %) -> % mirror : % -> %
nthFactor : (%, Integer) -> S one? : % -> Boolean
recip : % -> Union(%,"failed") rest : % -> %
retract : % -> S sample : () -> %
size : % -> NonNegativeInteger ?~=? : (%, %) -> Boolean
?<? : (%, %) -> Boolean if S has ORDSET
?<=? : (%, %) -> Boolean if S has ORDSET
?>? : (%, %) -> Boolean if S has ORDSET
?>=? : (%, %) -> Boolean if S has ORDSET
?^? : (S, NonNegativeInteger) -> %
?^? : (%, NonNegativeInteger) -> %
divide : (%, %) -> Union(Record(lm: %,rm: %),"failed")
factors : % -> List(Record(gen: S,exp: NonNegativeInteger))
hashUpdate! : (HashState, %) -> HashState
leftPower : (%, NonNegativeInteger) -> %
leftPower : (%, PositiveInteger) -> %
leftRecip : % -> Union(%,"failed")
lexico : (%, %) -> Boolean if S has ORDSET
lquo : (%, S) -> Union(%,"failed")
lquo : (%, %) -> Union(%,"failed")
mapExpon : ((NonNegativeInteger -> NonNegativeInteger), %) -> %
max : (%, %) -> % if S has ORDSET
min : (%, %) -> % if S has ORDSET
nthExpon : (%, Integer) -> NonNegativeInteger
overlap : (%, %) -> Record(lm: %,mm: %,rm: %)
retractIfCan : % -> Union(S,"failed")
rightPower : (%, NonNegativeInteger) -> %
rightPower : (%, PositiveInteger) -> %
rightRecip : % -> Union(%,"failed")
rquo : (%, S) -> Union(%,"failed")
rquo : (%, %) -> Union(%,"failed")
smaller? : (%, %) -> Boolean if S has COMPAR
varList : % -> List(S) if S has BASTYPE