check 5.4 KB

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