check 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. #******************
  2. #* Dual of type A *
  3. #******************
  4. # Left complement
  5. DualA.left_complement(a12,a12)==a00
  6. DualA.left_complement(a12,a23)==a13
  7. DualA.left_complement(a12,a34)==a34
  8. DualA.left_complement(a12,a24)==a14
  9. DualA.left_complement(a12,a14)==a14
  10. DualA.left_complement(a23,a12)==a12
  11. DualA.left_complement(a23,a23)==a00
  12. DualA.left_complement(a23,a13)==a12
  13. DualA.left_complement(a23,a34)==a24
  14. DualA.left_complement(a23,a24)==a24
  15. DualA.left_complement(a23,a14)==a14
  16. DualA.left_complement(a13,a12)==a23
  17. DualA.left_complement(a13,a23)==a23
  18. DualA.left_complement(a13,a13)==a00
  19. DualA.left_complement(a13,a34)==a14
  20. DualA.left_complement(a13,a24)==a23*a14
  21. DualA.left_complement(a13,a14)==a14
  22. DualA.left_complement(a34,a12)==a12
  23. DualA.left_complement(a34,a23)==a23
  24. DualA.left_complement(a34,a13)==a13
  25. DualA.left_complement(a34,a34)==a00
  26. DualA.left_complement(a34,a24)==a23
  27. DualA.left_complement(a34,a14)==a13
  28. DualA.left_complement(a24,a12)==a12
  29. DualA.left_complement(a24,a23)==a34
  30. DualA.left_complement(a24,a13)==a34*a12
  31. DualA.left_complement(a24,a34)==a34
  32. DualA.left_complement(a24,a24)==a00
  33. DualA.left_complement(a24,a14)==a12
  34. DualA.left_complement(a14,a12)==a24
  35. DualA.left_complement(a14,a23)==a23
  36. DualA.left_complement(a14,a13)==a34
  37. DualA.left_complement(a14,a34)==a34
  38. DualA.left_complement(a14,a24)==a24
  39. DualA.left_complement(a14,a14)==a00
  40. # Right complement
  41. DualA.right_complement(a12,a12)==a00
  42. DualA.right_complement(a12,a23)==a23
  43. DualA.right_complement(a12,a13)==a23
  44. DualA.right_complement(a12,a34)==a34
  45. DualA.right_complement(a12,a24)==a24
  46. DualA.right_complement(a12,a14)==a24
  47. DualA.right_complement(a23,a12)==a13
  48. DualA.right_complement(a23,a23)==a00
  49. DualA.right_complement(a23,a13)==a13
  50. DualA.right_complement(a23,a34)==a34
  51. DualA.right_complement(a23,a24)==a34
  52. DualA.right_complement(a23,a14)==a14
  53. DualA.right_complement(a13,a12)==a12
  54. DualA.right_complement(a13,a23)==a12
  55. DualA.right_complement(a13,a13)==a00
  56. DualA.right_complement(a13,a34)==a34
  57. DualA.right_complement(a13,a24)==a34*a12
  58. DualA.right_complement(a13,a14)==a34
  59. DualA.right_complement(a34,a12)==a12
  60. DualA.right_complement(a34,a23)==a24
  61. DualA.right_complement(a34,a13)==a14
  62. DualA.right_complement(a34,a34)==a00
  63. DualA.right_complement(a34,a24)==a24
  64. DualA.right_complement(a34,a14)==a14
  65. DualA.right_complement(a24,a12)==a14
  66. DualA.right_complement(a24,a23)==a23
  67. DualA.right_complement(a24,a13)==a23*a14
  68. DualA.right_complement(a24,a34)==a23
  69. DualA.right_complement(a24,a24)==a00
  70. DualA.right_complement(a24,a14)==a14
  71. DualA.right_complement(a14,a12)==a12
  72. DualA.right_complement(a14,a23)==a23
  73. DualA.right_complement(a14,a13)==a13
  74. DualA.right_complement(a14,a34)==a13
  75. DualA.right_complement(a14,a24)==a12
  76. DualA.right_complement(a14,a14)==a00
  77. # Garside structure
  78. DualA.left_lcm_complement(a12,a23)==a13
  79. DualA.left_lcm_complement(a12,a12*a23)==a13
  80. DualA.left_lcm_complement(a12,a23*a12)==a23
  81. DualA.left_lcm(a12,a23)==a13*a12
  82. DualA.left_lcm(a12,a12*a23)==a13*a12
  83. DualA.left_lcm(a12,a23*a12)==a23*a12
  84. DualA.right_lcm_complement(a12,a23)==a23
  85. DualA.right_lcm_complement(a12,a12*a23)==a23
  86. DualA.right_lcm_complement(a12,a23*a12)==a23*a12
  87. DualA.right_lcm(a12,a23)==a12*a23
  88. DualA.right_lcm(a12,a12*a23)==a12*a23
  89. DualA.right_lcm(a12,a23*a12)==a12*a23*a12
  90. DualA.left_gcd(a12,a12*a23)==a12
  91. DualA.left_gcd(a12,a23*a12)==a00
  92. DualA.left_gcd(a12*a23,a12*a12*a23)==a12*a23
  93. DualA.right_gcd(a12,a12*a23)==a12
  94. DualA.right_gcd(a12,a23*a12)==a12
  95. DualA.right_gcd(a12*a23,a12*a12*a23)==a12*a23
  96. DualA.left_gcd_x(a12*a23*a34,a12*a23*a12)==(a12*a23,a34)
  97. DualA.left_gcd_x(a12*a23*a12,a12*a23*a34)==(a12*a23,a12)
  98. DualA.right_gcd_x(a12*a23*a34,a12*a23*a12)==(a12*a23,a14)
  99. DualA.right_gcd_x(a12*a23*a12,a12*a23*a34)==(a13*a12,a23)
  100. DualA.is_left_divisible(a12*a23,a12)
  101. DualA.is_left_divisible(a12*a23,a23)
  102. DualA.is_left_divisible(a12*a23,a13)
  103. DualA.is_left_divisible(a12*a23,a14)==false
  104. DualA.is_left_divisible(a12*a23,a12*a12)==false
  105. DualA.is_right_divisible(a12*a23,a12)
  106. DualA.is_right_divisible(a12*a23,a23)
  107. DualA.is_right_divisible(a12*a23,a13)
  108. DualA.is_right_divisible(a12*a23,a14)==false
  109. DualA.is_right_divisible(a12*a23,a12*a12)==false
  110. DualA.is_left_divisible_x(a12*a23,a12)==(true,a23)
  111. DualA.is_left_divisible_x(a12*a23,a23)==(true,a13)
  112. DualA.is_left_divisible_x(a12*a23,a13)==(true,a12)
  113. DualA.is_left_divisible_x(a12*a23,a14)==(false,a00)
  114. DualA.is_left_divisible_x(a12*a23,a12*a12)==(false,a00)
  115. DualA.is_right_divisible_x(a12*a23,a12)==(true,a13)
  116. DualA.is_right_divisible_x(a12*a23,a23)==(true,a12)
  117. DualA.is_right_divisible_x(a12*a23,a13)==(true,a23)
  118. DualA.is_right_divisible_x(a12*a23,a14)==(false,a00)
  119. DualA.is_right_divisible_x(a12*a23,a12*a12)==(false,a00)