check 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. #*******************
  2. #* Artin of type A *
  3. #*******************
  4. # Garside element
  5. ArtinA.garside_element(0)==a0
  6. Delta1=ArtinA.garside_element(1)
  7. Delta2=ArtinA.garside_element(2)
  8. Delta3=ArtinA.garside_element(3)
  9. Delta4=ArtinA.garside_element(4)
  10. Delta1==a1
  11. Delta2==a1*a2*Delta1
  12. Delta3==a1*a2*a3*Delta2
  13. Delta4==a1*a2*a3*a4*Delta3
  14. #******************
  15. #* Dual of type A *
  16. #******************
  17. # Left complement
  18. DualA.left_complement(a12,a12)==a00
  19. DualA.left_complement(a12,a23)==a13
  20. DualA.left_complement(a12,a34)==a34
  21. DualA.left_complement(a12,a24)==a14
  22. DualA.left_complement(a12,a14)==a14
  23. DualA.left_complement(a23,a12)==a12
  24. DualA.left_complement(a23,a23)==a00
  25. DualA.left_complement(a23,a13)==a12
  26. DualA.left_complement(a23,a34)==a24
  27. DualA.left_complement(a23,a24)==a24
  28. DualA.left_complement(a23,a14)==a14
  29. DualA.left_complement(a13,a12)==a23
  30. DualA.left_complement(a13,a23)==a23
  31. DualA.left_complement(a13,a13)==a00
  32. DualA.left_complement(a13,a34)==a14
  33. DualA.left_complement(a13,a24)==a23*a14
  34. DualA.left_complement(a13,a14)==a14
  35. DualA.left_complement(a34,a12)==a12
  36. DualA.left_complement(a34,a23)==a23
  37. DualA.left_complement(a34,a13)==a13
  38. DualA.left_complement(a34,a34)==a00
  39. DualA.left_complement(a34,a24)==a23
  40. DualA.left_complement(a34,a14)==a13
  41. DualA.left_complement(a24,a12)==a12
  42. DualA.left_complement(a24,a23)==a34
  43. DualA.left_complement(a24,a13)==a34*a12
  44. DualA.left_complement(a24,a34)==a34
  45. DualA.left_complement(a24,a24)==a00
  46. DualA.left_complement(a24,a14)==a12
  47. DualA.left_complement(a14,a12)==a24
  48. DualA.left_complement(a14,a23)==a23
  49. DualA.left_complement(a14,a13)==a34
  50. DualA.left_complement(a14,a34)==a34
  51. DualA.left_complement(a14,a24)==a24
  52. DualA.left_complement(a14,a14)==a00
  53. # Right complement
  54. DualA.right_complement(a12,a12)==a00
  55. DualA.right_complement(a12,a23)==a23
  56. DualA.right_complement(a12,a13)==a23
  57. DualA.right_complement(a12,a34)==a34
  58. DualA.right_complement(a12,a24)==a24
  59. DualA.right_complement(a12,a14)==a24
  60. DualA.right_complement(a23,a12)==a13
  61. DualA.right_complement(a23,a23)==a00
  62. DualA.right_complement(a23,a13)==a13
  63. DualA.right_complement(a23,a34)==a34
  64. DualA.right_complement(a23,a24)==a34
  65. DualA.right_complement(a23,a14)==a14
  66. DualA.right_complement(a13,a12)==a12
  67. DualA.right_complement(a13,a23)==a12
  68. DualA.right_complement(a13,a13)==a00
  69. DualA.right_complement(a13,a34)==a34
  70. DualA.right_complement(a13,a24)==a34*a12
  71. DualA.right_complement(a13,a14)==a34
  72. DualA.right_complement(a34,a12)==a12
  73. DualA.right_complement(a34,a23)==a24
  74. DualA.right_complement(a34,a13)==a14
  75. DualA.right_complement(a34,a34)==a00
  76. DualA.right_complement(a34,a24)==a24
  77. DualA.right_complement(a34,a14)==a14
  78. DualA.right_complement(a24,a12)==a14
  79. DualA.right_complement(a24,a23)==a23
  80. DualA.right_complement(a24,a13)==a23*a14
  81. DualA.right_complement(a24,a34)==a23
  82. DualA.right_complement(a24,a24)==a00
  83. DualA.right_complement(a24,a14)==a14
  84. DualA.right_complement(a14,a12)==a12
  85. DualA.right_complement(a14,a23)==a23
  86. DualA.right_complement(a14,a13)==a13
  87. DualA.right_complement(a14,a34)==a13
  88. DualA.right_complement(a14,a24)==a12
  89. DualA.right_complement(a14,a14)==a00
  90. # Garside structure
  91. DualA.left_lcm_complement(a12,a23)==a13
  92. DualA.left_lcm_complement(a12,a12*a23)==a13
  93. DualA.left_lcm_complement(a12,a23*a12)==a23
  94. DualA.left_lcm(a12,a23)==a13*a12
  95. DualA.left_lcm(a12,a12*a23)==a13*a12
  96. DualA.left_lcm(a12,a23*a12)==a23*a12
  97. DualA.right_lcm_complement(a12,a23)==a23
  98. DualA.right_lcm_complement(a12,a12*a23)==a23
  99. DualA.right_lcm_complement(a12,a23*a12)==a23*a12
  100. DualA.right_lcm(a12,a23)==a12*a23
  101. DualA.right_lcm(a12,a12*a23)==a12*a23
  102. DualA.right_lcm(a12,a23*a12)==a12*a23*a12
  103. DualA.left_gcd(a12,a12*a23)==a12
  104. DualA.left_gcd(a12,a23*a12)==a00
  105. DualA.left_gcd(a12*a23,a12*a12*a23)==a12*a23
  106. DualA.right_gcd(a12,a12*a23)==a12
  107. DualA.right_gcd(a12,a23*a12)==a12
  108. DualA.right_gcd(a12*a23,a12*a12*a23)==a12*a23
  109. DualA.left_gcd_x(a12*a23*a34,a12*a23*a12)==(a12*a23,a34)
  110. DualA.left_gcd_x(a12*a23*a12,a12*a23*a34)==(a12*a23,a12)
  111. DualA.right_gcd_x(a12*a23*a34,a12*a23*a12)==(a12*a23,a14)
  112. DualA.right_gcd_x(a12*a23*a12,a12*a23*a34)==(a13*a12,a23)
  113. DualA.is_left_divisible(a12*a23,a12)
  114. DualA.is_left_divisible(a12*a23,a23)
  115. DualA.is_left_divisible(a12*a23,a13)
  116. DualA.is_left_divisible(a12*a23,a14)==false
  117. DualA.is_left_divisible(a12*a23,a12*a12)==false
  118. DualA.is_right_divisible(a12*a23,a12)
  119. DualA.is_right_divisible(a12*a23,a23)
  120. DualA.is_right_divisible(a12*a23,a13)
  121. DualA.is_right_divisible(a12*a23,a14)==false
  122. DualA.is_right_divisible(a12*a23,a12*a12)==false
  123. DualA.is_left_divisible_x(a12*a23,a12)==(true,a23)
  124. DualA.is_left_divisible_x(a12*a23,a23)==(true,a13)
  125. DualA.is_left_divisible_x(a12*a23,a13)==(true,a12)
  126. DualA.is_left_divisible_x(a12*a23,a14)==(false,a00)
  127. DualA.is_left_divisible_x(a12*a23,a12*a12)==(false,a00)
  128. DualA.is_right_divisible_x(a12*a23,a12)==(true,a13)
  129. DualA.is_right_divisible_x(a12*a23,a23)==(true,a12)
  130. DualA.is_right_divisible_x(a12*a23,a13)==(true,a23)
  131. DualA.is_right_divisible_x(a12*a23,a14)==(false,a00)
  132. DualA.is_right_divisible_x(a12*a23,a12*a12)==(false,a00)
  133. # Garise automorphism
  134. DualA.phi(2,a12)==a23
  135. DualA.phi(2,a23)==a13
  136. DualA.phi(2,a13)==a12
  137. DualA.phi(2,a12,2)==a13
  138. DualA.phi(2,a23,2)==a12
  139. DualA.phi(2,a13,2)==a23
  140. DualA.phi(2,a12,-1)==a13
  141. DualA.phi(2,a23,-1)==a12
  142. DualA.phi(2,a13,-1)==a23
  143. DualA.phi(2,a12,-4)==a13
  144. DualA.phi(2,a23,-4)==a12
  145. DualA.phi(2,a13,-4)==a23
  146. DualA.phi(2,A12)==A23
  147. DualA.phi(2,A23)==A13
  148. DualA.phi(2,A13)==A12
  149. DualA.phi(2,a12*A13)==a23*A12
  150. # Garside element
  151. DualA.garside_element(0)==a00
  152. delta1=DualA.garside_element(1)
  153. delta2=DualA.garside_element(2)
  154. delta3=DualA.garside_element(3)
  155. delta4=DualA.garside_element(4)
  156. delta1==a12
  157. delta2==delta1*a23
  158. delta3==delta2*a34
  159. delta4==delta3*a45
  160. # phi-tail
  161. DualA.phi_tail(1,delta2)==delta1
  162. DualA.phi_tail(2,delta3)==delta2
  163. DualA.phi_tail(3,delta4)==delta3
  164. DualA.phi_tail(1,delta2*delta2)==delta1*delta1
  165. DualA.phi_tail(2,delta3*delta3)===delta2*delta2
  166. DualA.phi_tail(3,delta4*delta4)===delta3*delta3
  167. # phi-splitting
  168. DualA.phi_splitting(1,delta2)==[a12,a00,delta1]
  169. DualA.phi_splitting(1,delta2*delta2)==[a12,a12,a00,delta1*delta1]
  170. DualA.phi_splitting(2,a12)==[a12]
  171. DualA.phi_splitting(2,a23)==[a23]
  172. DualA.phi_splitting(2,a13)==[a13]
  173. DualA.phi_splitting(2,a34)==[a23,a00]
  174. DualA.phi_splitting(2,a24)==[a13,a00]
  175. DualA.phi_splitting(2,a14)==[a23,a00,a00]
  176. DualA.phi_splitting(2,delta3)==[a23,a00,delta2]