1==================================================================== 2Magma examples 3==================================================================== 4 5Initialisations 6 7 x:Symbol :='x 8 x 9 Type: Symbol 10 11 y:Symbol :='y 12 y 13 Type: Symbol 14 15 z:Symbol :='z 16 z 17 Type: Symbol 18 19 word := OrderedFreeMonoid(Symbol) 20 OrderedFreeMonoid Symbol 21 Type: Domain 22 23 tree := Magma(Symbol) 24 Magma Symbol 25 Type: Domain 26 27Let's make some trees 28 29 a:tree := x*x 30 [x,x] 31 Type: Magma Symbol 32 33 b:tree := y*y 34 [y,y] 35 Type: Magma Symbol 36 37 c:tree := a*b 38 [[x,x],[y,y]] 39 Type: Magma Symbol 40 41Query the trees 42 43 left c 44 [x,x] 45 Type: Magma Symbol 46 47 right c 48 [y,y] 49 Type: Magma Symbol 50 51 length c 52 4 53 Type: PositiveInteger 54 55Coerce to the monoid 56 57 c::word 58 2 2 59 x y 60 Type: OrderedFreeMonoid Symbol 61 62Check ordering 63 64 a < b 65 true 66 Type: Boolean 67 68 a < c 69 true 70 Type: Boolean 71 72 b < c 73 true 74 Type: Boolean 75 76Navigate the tree 77 78 first c 79 x 80 Type: Symbol 81 82 rest c 83 [x,[y,y]] 84 Type: Magma Symbol 85 86 rest rest c 87 [y,y] 88 Type: Magma Symbol 89 90Check ordering 91 92 ax:tree := a*x 93 [[x,x],x] 94 Type: Magma Symbol 95 96 xa:tree := x*a 97 [x,[x,x]] 98 Type: Magma Symbol 99 100 xa < ax 101 true 102 Type: Boolean 103 104 lexico(xa,ax) 105 false 106 Type: Boolean 107 108See Also: 109o )show Magma 110 111