|
|
last edited 6 years ago by Bill Page |
1 | ||
Editor: Bill Page
Time: 2018/07/06 22:32:42 GMT+0 |
||
Note: |
changed: - The free monoid on a set S is the monoid of finite products of the form <code>reduce(*, [si ^ ni])</code> 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 <code>x</code> and <code>y</code> the relation <code>x < y</code> holds if either <code>length(x) < length(y)</code> holds or if these lengths are equal and if <code>x</code> is smaller than <code>y</code> w.r.t. the lexicographical ordering induced by <code>S</code>. \begin{axiom} )sh FreeMonoid \end{axiom}
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
.
)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