$SPAD/src/input lword.input

Timothy Daly December 3, 2016

Abstract

Contents

2

1 License

— license —

--Copyright The Numerical Algorithms Group Limited 1991.

———-

— * —

)set break resume
)spool lword.output
)set message test on
)set message auto off
)clear all
--S 1 of 22
a:Symbol :='a
--R
--R
--R   (1)  a
--R                                                                 Type: Symbol
--E 1
--S 2 of 22
b:Symbol :='b
--R
--R
--R   (2)  b
--R                                                                 Type: Symbol
--E 2
--S 3 of 22
c:Symbol :='c
--R
--R
--R   (3)  c
--R                                                                 Type: Symbol
--E 3
--S 4 of 22
lword:= LyndonWord(Symbol)
--R
--R
--R   (4)  LyndonWord(Symbol)
--R                                                                 Type: Domain
--E 4
--S 5 of 22
magma := Magma(Symbol)
--R

--R
--R   (5)  Magma(Symbol)
--R                                                                 Type: Domain
--E 5
--S 6 of 22
word   := OrderedFreeMonoid(Symbol)
--R
--R
--R   (6)  OrderedFreeMonoid(Symbol)
--R                                                                 Type: Domain
--E 6
--S 7 of 22
LyndonWordsList1([a,b,c],3)$lword
--R
--R
--R   (7)
--R   [[[a],[b],[c]], [[a b],[a c],[b c]],
--R       2     2       2                      2    2       2
--R    [[a b],[a c],[a b ],[a b c],[a c b],[a c ],[b c],[b c ]]]
--R                          Type: OneDimensionalArray(List(LyndonWord(Symbol)))
--E 7
--S 8 of 22
LyndonWordsList([a,b,c],3)$lword
--R
--R
--R   (8)
--R                                          2      2        2
--R   [[a], [b], [c], [a b], [a c], [b c], [a b], [a c], [a b ], [a b c], [a c b],
--R        2     2        2
--R    [a c ], [b c], [b c ]]
--R                                               Type: List(LyndonWord(Symbol))
--E 8
--S 9 of 22
lw := LyndonWordsList([a,b],5)$lword
--R
--R
--R   (9)
--R                       2        2     3      2 2       3     4      3 2
--R   [[a], [b], [a b], [a b], [a b ], [a b], [a b ], [a b ], [a b], [a b ],
--R      2          2 3           2       4
--R    [a b a b], [a b ], [a b a b ], [a b ]]
--R                                               Type: List(LyndonWord(Symbol))
--E 9
--S 10 of 22
w1 : word := lw.4 :: word

--R
--R
--R          2
--R   (10)  a b
--R                                              Type: OrderedFreeMonoid(Symbol)
--E 10
--S 11 of 22
w2 : word := lw.5 :: word
--R
--R
--R            2
--R   (11)  a b
--R                                              Type: OrderedFreeMonoid(Symbol)
--E 11
--S 12 of 22
factor(a::word)$lword
--R
--R
--R   (12)  [[a]]
--R                                               Type: List(LyndonWord(Symbol))
--E 12
--S 13 of 22
factor(w1*w2)$lword
--R
--R
--R            2     2
--R   (13)  [[a b a b ]]
--R                                               Type: List(LyndonWord(Symbol))
--E 13
--S 14 of 22
factor(w2*w2)$lword
--R
--R
--R              2      2
--R   (14)  [[a b ],[a b ]]
--R                                               Type: List(LyndonWord(Symbol))
--E 14
--S 15 of 22
factor(w2*w1)$lword
--R
--R
--R              2    2
--R   (15)  [[a b ],[a b]]
--R                                               Type: List(LyndonWord(Symbol))
--E 15

--S 16 of 22
lyndon?(w1)$lword
--R
--R
--R   (16)  true
--R                                                                Type: Boolean
--E 16
--S 17 of 22
lyndon?(w1*w2)$lword
--R
--R
--R   (17)  true
--R                                                                Type: Boolean
--E 17
--S 18 of 22
lyndon?(w2*w1)$lword
--R
--R
--R   (18)  false
--R                                                                Type: Boolean
--E 18
--S 19 of 22
lyndonIfCan(w1)$lword
--R
--R
--R           2
--R   (19)  [a b]
--R                                          Type: Union(LyndonWord(Symbol),...)
--E 19
--S 20 of 22
lyndonIfCan(w2*w1)$lword
--R
--R
--R   (20)  "failed"
--R                                                    Type: Union("failed",...)
--E 20
--S 21 of 22
lyndon(w1)$lword
--R
--R
--R           2
--R   (21)  [a b]
--R                                                     Type: LyndonWord(Symbol)
--E 21

--S 22 of 22
lyndon(w1*w2)$lword
--R
--R
--R           2     2
--R   (22)  [a b a b ]
--R                                                     Type: LyndonWord(Symbol)
--E 22
)spool
)lisp (bye)

———-

References^{[1] nothing}

8