seam-lang 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1331) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +71 -0
  3. package/bin/seam.js +7 -0
  4. package/conformance-report.md +25 -0
  5. package/docs/compact-reasoning-workbench.md +35 -0
  6. package/docs/guide.md +621 -0
  7. package/docs/language-reference.md +773 -0
  8. package/examples/abstract-interpretation.pl +50 -0
  9. package/examples/access-control-policy.pl +52 -0
  10. package/examples/ackermann.pl +47 -0
  11. package/examples/age.pl +26 -0
  12. package/examples/aliases-and-namespaces.pl +20 -0
  13. package/examples/alignment-demo.pl +44 -0
  14. package/examples/allen-interval-calculus.pl +64 -0
  15. package/examples/ancestor.pl +22 -0
  16. package/examples/animal.pl +21 -0
  17. package/examples/annotation.pl +34 -0
  18. package/examples/auroracare.pl +309 -0
  19. package/examples/backward.pl +11 -0
  20. package/examples/basic-monadic.pl +10032 -0
  21. package/examples/bayes-diagnosis.pl +108 -0
  22. package/examples/bayes-therapy.pl +189 -0
  23. package/examples/beam-deflection.pl +48 -0
  24. package/examples/binomial-vandermonde.pl +49 -0
  25. package/examples/blocks-world-planning.pl +77 -0
  26. package/examples/bmi.pl +232 -0
  27. package/examples/braking-safety-worlds.pl +69 -0
  28. package/examples/buck-converter-design.pl +83 -0
  29. package/examples/cache-performance.pl +56 -0
  30. package/examples/canary-release.pl +51 -0
  31. package/examples/cat-koko.pl +24 -0
  32. package/examples/catalan-convolution.pl +37 -0
  33. package/examples/cdcl-sat-solver.pl +65 -0
  34. package/examples/chart-parser.pl +65 -0
  35. package/examples/clinical-trial-screening.pl +97 -0
  36. package/examples/collatz-1000.pl +45 -0
  37. package/examples/combinatorics-findall-sort.pl +38 -0
  38. package/examples/competitive-enzyme-kinetics.pl +78 -0
  39. package/examples/complex.pl +133 -0
  40. package/examples/composition-of-injective-functions-is-injective.pl +50 -0
  41. package/examples/context-association.pl +53 -0
  42. package/examples/context-schema-audit.pl +46 -0
  43. package/examples/continued-fraction-sqrt2.pl +36 -0
  44. package/examples/control-system.pl +76 -0
  45. package/examples/critical-path-schedule.pl +82 -0
  46. package/examples/cyclic-path.pl +18 -0
  47. package/examples/d3-group.pl +99 -0
  48. package/examples/dairy-energy-balance.pl +66 -0
  49. package/examples/data-negotiation.pl +38 -0
  50. package/examples/deep-taxonomy-10.pl +106 -0
  51. package/examples/deep-taxonomy-100.pl +376 -0
  52. package/examples/deep-taxonomy-1000.pl +3076 -0
  53. package/examples/deep-taxonomy-10000.pl +30076 -0
  54. package/examples/deep-taxonomy-100000.pl +300076 -0
  55. package/examples/delfour.pl +281 -0
  56. package/examples/deontic-logic.pl +52 -0
  57. package/examples/derived-backward-rule.pl +30 -0
  58. package/examples/derived-rule.pl +27 -0
  59. package/examples/diamond-property.pl +38 -0
  60. package/examples/dijkstra-findall-sort.pl +43 -0
  61. package/examples/dijkstra-risk-path.pl +87 -0
  62. package/examples/dijkstra.pl +50 -0
  63. package/examples/dining-philosophers.pl +147 -0
  64. package/examples/dog.pl +25 -0
  65. package/examples/dpv-odrl-purpose-mapping.pl +48 -0
  66. package/examples/drone-corridor-planner.pl +48 -0
  67. package/examples/easter-computus.pl +88 -0
  68. package/examples/electrical-rc-filter.pl +37 -0
  69. package/examples/epidemic-policy.pl +66 -0
  70. package/examples/equality-saturation.pl +84 -0
  71. package/examples/equivalence-classes-overlap-implies-same-class.pl +27 -0
  72. package/examples/eulerian-path.pl +87 -0
  73. package/examples/ev-range-worlds.pl +87 -0
  74. package/examples/existential-rule.pl +14 -0
  75. package/examples/exoplanet-validation-worlds.pl +94 -0
  76. package/examples/expression-eval.pl +45 -0
  77. package/examples/family-cousins.pl +67 -0
  78. package/examples/fastpow.pl +61 -0
  79. package/examples/fft8-numeric.pl +85 -0
  80. package/examples/fibonacci.pl +60 -0
  81. package/examples/field-nitrogen-balance.pl +73 -0
  82. package/examples/flandor.pl +296 -0
  83. package/examples/floating-point.pl +28 -0
  84. package/examples/four-color-map.pl +133 -0
  85. package/examples/fundamental-theorem-arithmetic.pl +119 -0
  86. package/examples/gd-step-certified.pl +162 -0
  87. package/examples/gdpr-compliance.pl +69 -0
  88. package/examples/good-cobbler.pl +16 -0
  89. package/examples/gps.pl +146 -0
  90. package/examples/graph-reachability.pl +33 -0
  91. package/examples/graph.pl +35 -0
  92. package/examples/gray-code-counter.pl +47 -0
  93. package/examples/greatest-lower-bound-uniqueness.pl +30 -0
  94. package/examples/group-inverse-uniqueness.pl +36 -0
  95. package/examples/hamiltonian-path.pl +51 -0
  96. package/examples/hamming-code.pl +109 -0
  97. package/examples/hanoi.pl +19 -0
  98. package/examples/heat-loss.pl +56 -0
  99. package/examples/herbrand-witnesses.pl +31 -0
  100. package/examples/heron-theorem.pl +42 -0
  101. package/examples/ideal-gas-law.pl +39 -0
  102. package/examples/illegitimate-reasoning.pl +88 -0
  103. package/examples/integer-partitions.pl +35 -0
  104. package/examples/intuitionistic-logic-kripke.pl +69 -0
  105. package/examples/job-shop-scheduling.pl +48 -0
  106. package/examples/knapsack-optimization.pl +46 -0
  107. package/examples/knowledge-engineering-alignment-flow.pl +46 -0
  108. package/examples/knuth-bendix-completion.pl +55 -0
  109. package/examples/language.pl +25 -0
  110. package/examples/law-of-cosines.pl +37 -0
  111. package/examples/least-squares-regression.pl +85 -0
  112. package/examples/linear-logic-resources.pl +51 -0
  113. package/examples/list-collection.pl +35 -0
  114. package/examples/lldm.pl +80 -0
  115. package/examples/manufacturing-quality-control.pl +73 -0
  116. package/examples/map-four-color-search.pl +65 -0
  117. package/examples/markov-logic-network.pl +87 -0
  118. package/examples/matrix-chain-order.pl +79 -0
  119. package/examples/matrix-noncommutativity.pl +43 -0
  120. package/examples/microgrid-dispatch.pl +89 -0
  121. package/examples/missionaries-cannibals.pl +53 -0
  122. package/examples/modal-logic-kripke.pl +45 -0
  123. package/examples/modular-exponentiation.pl +35 -0
  124. package/examples/monkey-bananas.pl +45 -0
  125. package/examples/n-queens-8.pl +35 -0
  126. package/examples/network-sla.pl +48 -0
  127. package/examples/newton-raphson.pl +48 -0
  128. package/examples/nixon-diamond.pl +37 -0
  129. package/examples/observability-log-correlation.pl +40 -0
  130. package/examples/odrl-dpv-fpv-trust-flow.pl +51 -0
  131. package/examples/odrl-dpv-healthcare-risk-ranked.pl +270 -0
  132. package/examples/odrl-dpv-risk-ranked.pl +320 -0
  133. package/examples/orbital-transfer-design.pl +116 -0
  134. package/examples/output/abstract-interpretation.pl +16 -0
  135. package/examples/output/access-control-policy.pl +2 -0
  136. package/examples/output/ackermann.pl +12 -0
  137. package/examples/output/age.pl +2 -0
  138. package/examples/output/aliases-and-namespaces.pl +5 -0
  139. package/examples/output/alignment-demo.pl +32 -0
  140. package/examples/output/allen-interval-calculus.pl +154 -0
  141. package/examples/output/ancestor.pl +6 -0
  142. package/examples/output/animal.pl +4 -0
  143. package/examples/output/annotation.pl +4 -0
  144. package/examples/output/auroracare.pl +117 -0
  145. package/examples/output/backward.pl +1 -0
  146. package/examples/output/basic-monadic.pl +1518 -0
  147. package/examples/output/bayes-diagnosis.pl +13 -0
  148. package/examples/output/bayes-therapy.pl +23 -0
  149. package/examples/output/beam-deflection.pl +5 -0
  150. package/examples/output/binomial-vandermonde.pl +4 -0
  151. package/examples/output/blocks-world-planning.pl +4 -0
  152. package/examples/output/bmi.pl +32 -0
  153. package/examples/output/braking-safety-worlds.pl +18 -0
  154. package/examples/output/buck-converter-design.pl +6 -0
  155. package/examples/output/cache-performance.pl +4 -0
  156. package/examples/output/canary-release.pl +5 -0
  157. package/examples/output/cat-koko.pl +3 -0
  158. package/examples/output/catalan-convolution.pl +4 -0
  159. package/examples/output/cdcl-sat-solver.pl +7 -0
  160. package/examples/output/chart-parser.pl +6 -0
  161. package/examples/output/clinical-trial-screening.pl +9 -0
  162. package/examples/output/collatz-1000.pl +1000 -0
  163. package/examples/output/combinatorics-findall-sort.pl +2 -0
  164. package/examples/output/competitive-enzyme-kinetics.pl +6 -0
  165. package/examples/output/complex.pl +6 -0
  166. package/examples/output/composition-of-injective-functions-is-injective.pl +2 -0
  167. package/examples/output/context-association.pl +3 -0
  168. package/examples/output/context-schema-audit.pl +12 -0
  169. package/examples/output/continued-fraction-sqrt2.pl +4 -0
  170. package/examples/output/control-system.pl +6 -0
  171. package/examples/output/critical-path-schedule.pl +19 -0
  172. package/examples/output/cyclic-path.pl +16 -0
  173. package/examples/output/d3-group.pl +2 -0
  174. package/examples/output/dairy-energy-balance.pl +13 -0
  175. package/examples/output/data-negotiation.pl +1 -0
  176. package/examples/output/deep-taxonomy-10.pl +16 -0
  177. package/examples/output/deep-taxonomy-100.pl +16 -0
  178. package/examples/output/deep-taxonomy-1000.pl +16 -0
  179. package/examples/output/deep-taxonomy-10000.pl +16 -0
  180. package/examples/output/deep-taxonomy-100000.pl +16 -0
  181. package/examples/output/delfour.pl +31 -0
  182. package/examples/output/deontic-logic.pl +4 -0
  183. package/examples/output/derived-backward-rule.pl +3 -0
  184. package/examples/output/derived-rule.pl +2 -0
  185. package/examples/output/diamond-property.pl +4 -0
  186. package/examples/output/dijkstra-findall-sort.pl +2 -0
  187. package/examples/output/dijkstra-risk-path.pl +29 -0
  188. package/examples/output/dijkstra.pl +16 -0
  189. package/examples/output/dining-philosophers.pl +350 -0
  190. package/examples/output/dog.pl +1 -0
  191. package/examples/output/dpv-odrl-purpose-mapping.pl +18 -0
  192. package/examples/output/drone-corridor-planner.pl +17 -0
  193. package/examples/output/easter-computus.pl +30 -0
  194. package/examples/output/electrical-rc-filter.pl +3 -0
  195. package/examples/output/epidemic-policy.pl +14 -0
  196. package/examples/output/equality-saturation.pl +5 -0
  197. package/examples/output/equivalence-classes-overlap-implies-same-class.pl +18 -0
  198. package/examples/output/eulerian-path.pl +3 -0
  199. package/examples/output/ev-range-worlds.pl +19 -0
  200. package/examples/output/existential-rule.pl +2 -0
  201. package/examples/output/exoplanet-validation-worlds.pl +22 -0
  202. package/examples/output/expression-eval.pl +1 -0
  203. package/examples/output/family-cousins.pl +28 -0
  204. package/examples/output/fastpow.pl +6 -0
  205. package/examples/output/fft8-numeric.pl +4 -0
  206. package/examples/output/fibonacci.pl +6 -0
  207. package/examples/output/field-nitrogen-balance.pl +21 -0
  208. package/examples/output/flandor.pl +43 -0
  209. package/examples/output/floating-point.pl +9 -0
  210. package/examples/output/four-color-map.pl +3 -0
  211. package/examples/output/fundamental-theorem-arithmetic.pl +9 -0
  212. package/examples/output/gd-step-certified.pl +79 -0
  213. package/examples/output/gdpr-compliance.pl +6 -0
  214. package/examples/output/good-cobbler.pl +1 -0
  215. package/examples/output/gps.pl +21 -0
  216. package/examples/output/graph-reachability.pl +3 -0
  217. package/examples/output/graph.pl +21 -0
  218. package/examples/output/gray-code-counter.pl +1 -0
  219. package/examples/output/greatest-lower-bound-uniqueness.pl +2 -0
  220. package/examples/output/group-inverse-uniqueness.pl +2 -0
  221. package/examples/output/hamiltonian-path.pl +121 -0
  222. package/examples/output/hamming-code.pl +6 -0
  223. package/examples/output/hanoi.pl +1 -0
  224. package/examples/output/heat-loss.pl +5 -0
  225. package/examples/output/herbrand-witnesses.pl +7 -0
  226. package/examples/output/heron-theorem.pl +4 -0
  227. package/examples/output/ideal-gas-law.pl +3 -0
  228. package/examples/output/illegitimate-reasoning.pl +15 -0
  229. package/examples/output/integer-partitions.pl +4 -0
  230. package/examples/output/intuitionistic-logic-kripke.pl +5 -0
  231. package/examples/output/job-shop-scheduling.pl +3 -0
  232. package/examples/output/knapsack-optimization.pl +4 -0
  233. package/examples/output/knowledge-engineering-alignment-flow.pl +17 -0
  234. package/examples/output/knuth-bendix-completion.pl +7 -0
  235. package/examples/output/language.pl +6 -0
  236. package/examples/output/law-of-cosines.pl +3 -0
  237. package/examples/output/least-squares-regression.pl +5 -0
  238. package/examples/output/linear-logic-resources.pl +2 -0
  239. package/examples/output/list-collection.pl +3 -0
  240. package/examples/output/lldm.pl +6 -0
  241. package/examples/output/manufacturing-quality-control.pl +6 -0
  242. package/examples/output/map-four-color-search.pl +1 -0
  243. package/examples/output/markov-logic-network.pl +32 -0
  244. package/examples/output/matrix-chain-order.pl +4 -0
  245. package/examples/output/matrix-noncommutativity.pl +3 -0
  246. package/examples/output/microgrid-dispatch.pl +6 -0
  247. package/examples/output/missionaries-cannibals.pl +3 -0
  248. package/examples/output/modal-logic-kripke.pl +4 -0
  249. package/examples/output/modular-exponentiation.pl +4 -0
  250. package/examples/output/monkey-bananas.pl +5 -0
  251. package/examples/output/n-queens-8.pl +1 -0
  252. package/examples/output/network-sla.pl +4 -0
  253. package/examples/output/newton-raphson.pl +3 -0
  254. package/examples/output/nixon-diamond.pl +5 -0
  255. package/examples/output/observability-log-correlation.pl +28 -0
  256. package/examples/output/odrl-dpv-fpv-trust-flow.pl +9 -0
  257. package/examples/output/odrl-dpv-healthcare-risk-ranked.pl +42 -0
  258. package/examples/output/odrl-dpv-risk-ranked.pl +120 -0
  259. package/examples/output/orbital-transfer-design.pl +7 -0
  260. package/examples/output/partial-evaluator.pl +4 -0
  261. package/examples/output/path-discovery.pl +3 -0
  262. package/examples/output/peano-arithmetic.pl +3 -0
  263. package/examples/output/peano-calculus.pl +3 -0
  264. package/examples/output/peasant.pl +10 -0
  265. package/examples/output/pell-equation.pl +4 -0
  266. package/examples/output/pendulum-period.pl +4 -0
  267. package/examples/output/pointer-analysis.pl +8 -0
  268. package/examples/output/polynomial.pl +14 -0
  269. package/examples/output/prime-range.pl +3 -0
  270. package/examples/output/proof-contrapositive.pl +3 -0
  271. package/examples/output/quadratic-formula.pl +6 -0
  272. package/examples/output/radioactive-decay.pl +5 -0
  273. package/examples/output/register-allocation.pl +8 -0
  274. package/examples/output/reusable-builtins.pl +5 -0
  275. package/examples/output/riemann-hypothesis.pl +12 -0
  276. package/examples/output/route-planning.pl +4 -0
  277. package/examples/output/sat-solver-dpll.pl +11 -0
  278. package/examples/output/security-incident-correlation.pl +3 -0
  279. package/examples/output/send-more-money.pl +3 -0
  280. package/examples/output/service-impact.pl +11 -0
  281. package/examples/output/shoelace-polygon-area.pl +1 -0
  282. package/examples/output/sieve.pl +1 -0
  283. package/examples/output/skolem-functions.pl +16 -0
  284. package/examples/output/socket-age.pl +1 -0
  285. package/examples/output/socket-family.pl +3 -0
  286. package/examples/output/socrates.pl +2 -0
  287. package/examples/output/stable-marriage.pl +2 -0
  288. package/examples/output/statistics-summary.pl +4 -0
  289. package/examples/output/stirling-bell-numbers.pl +4 -0
  290. package/examples/output/sudoku-4x4.pl +2 -0
  291. package/examples/output/superdense-coding.pl +6 -0
  292. package/examples/output/symbolic-derivative.pl +4 -0
  293. package/examples/output/term-tools.pl +6 -0
  294. package/examples/output/totient-summatory.pl +4 -0
  295. package/examples/output/trust-flow-provenance-threshold.pl +6 -0
  296. package/examples/output/truth-maintenance-system.pl +25 -0
  297. package/examples/output/turing.pl +12 -0
  298. package/examples/output/type-inference.pl +8 -0
  299. package/examples/output/vector-similarity.pl +4 -0
  300. package/examples/output/vulnerability-impact.pl +20 -0
  301. package/examples/output/web-names.pl +3 -0
  302. package/examples/output/weighted-interval-scheduling.pl +5 -0
  303. package/examples/output/witch.pl +7 -0
  304. package/examples/output/wolf-goat-cabbage.pl +3 -0
  305. package/examples/output/workplace-compliance.pl +4 -0
  306. package/examples/output/zebra.pl +3 -0
  307. package/examples/partial-evaluator.pl +74 -0
  308. package/examples/path-discovery.pl +45013 -0
  309. package/examples/peano-arithmetic.pl +33 -0
  310. package/examples/peano-calculus.pl +40 -0
  311. package/examples/peasant.pl +29 -0
  312. package/examples/pell-equation.pl +34 -0
  313. package/examples/pendulum-period.pl +50 -0
  314. package/examples/pointer-analysis.pl +50 -0
  315. package/examples/polynomial.pl +124 -0
  316. package/examples/prime-range.pl +45 -0
  317. package/examples/proof/access-control-policy.pl +158 -0
  318. package/examples/proof/age.pl +71 -0
  319. package/examples/proof/aliases-and-namespaces.pl +78 -0
  320. package/examples/proof/ancestor.pl +140 -0
  321. package/examples/proof/animal.pl +68 -0
  322. package/examples/proof/annotation.pl +80 -0
  323. package/examples/proof/backward.pl +22 -0
  324. package/examples/proof/bayes-diagnosis.pl +208 -0
  325. package/examples/proof/beam-deflection.pl +227 -0
  326. package/examples/proof/cache-performance.pl +310 -0
  327. package/examples/proof/canary-release.pl +172 -0
  328. package/examples/proof/cat-koko.pl +86 -0
  329. package/examples/proof/chart-parser.pl +474 -0
  330. package/examples/proof/clinical-trial-screening.pl +389 -0
  331. package/examples/proof/composition-of-injective-functions-is-injective.pl +258 -0
  332. package/examples/proof/context-association.pl +78 -0
  333. package/examples/proof/data-negotiation.pl +76 -0
  334. package/examples/proof/deontic-logic.pl +109 -0
  335. package/examples/proof/derived-backward-rule.pl +74 -0
  336. package/examples/proof/derived-rule.pl +43 -0
  337. package/examples/proof/diamond-property.pl +307 -0
  338. package/examples/proof/dog.pl +31 -0
  339. package/examples/proof/dpv-odrl-purpose-mapping.pl +348 -0
  340. package/examples/proof/electrical-rc-filter.pl +105 -0
  341. package/examples/proof/epidemic-policy.pl +774 -0
  342. package/examples/proof/equivalence-classes-overlap-implies-same-class.pl +1098 -0
  343. package/examples/proof/existential-rule.pl +32 -0
  344. package/examples/proof/expression-eval.pl +105 -0
  345. package/examples/proof/floating-point.pl +160 -0
  346. package/examples/proof/gdpr-compliance.pl +199 -0
  347. package/examples/proof/good-cobbler.pl +16 -0
  348. package/examples/proof/graph-reachability.pl +151 -0
  349. package/examples/proof/greatest-lower-bound-uniqueness.pl +150 -0
  350. package/examples/proof/group-inverse-uniqueness.pl +84 -0
  351. package/examples/proof/hanoi.pl +185 -0
  352. package/examples/proof/heat-loss.pl +228 -0
  353. package/examples/proof/ideal-gas-law.pl +151 -0
  354. package/examples/proof/intuitionistic-logic-kripke.pl +133 -0
  355. package/examples/proof/linear-logic-resources.pl +205 -0
  356. package/examples/proof/list-collection.pl +52 -0
  357. package/examples/proof/modal-logic-kripke.pl +125 -0
  358. package/examples/proof/nixon-diamond.pl +181 -0
  359. package/examples/proof/proof-contrapositive.pl +78 -0
  360. package/examples/proof/reusable-builtins.pl +124 -0
  361. package/examples/proof/security-incident-correlation.pl +270 -0
  362. package/examples/proof/socket-age.pl +32 -0
  363. package/examples/proof/socket-family.pl +59 -0
  364. package/examples/proof/socrates.pl +38 -0
  365. package/examples/proof/term-tools.pl +95 -0
  366. package/examples/proof/witch.pl +216 -0
  367. package/examples/proof-contrapositive.pl +27 -0
  368. package/examples/quadratic-formula.pl +56 -0
  369. package/examples/radioactive-decay.pl +58 -0
  370. package/examples/register-allocation.pl +77 -0
  371. package/examples/reusable-builtins.pl +36 -0
  372. package/examples/riemann-hypothesis.pl +110 -0
  373. package/examples/route-planning.pl +33 -0
  374. package/examples/sat-solver-dpll.pl +88 -0
  375. package/examples/security-incident-correlation.pl +69 -0
  376. package/examples/send-more-money.pl +71 -0
  377. package/examples/service-impact.pl +41 -0
  378. package/examples/shoelace-polygon-area.pl +22 -0
  379. package/examples/sieve.pl +20 -0
  380. package/examples/skolem-functions.pl +52 -0
  381. package/examples/socket-age.pl +39 -0
  382. package/examples/socket-family.pl +28 -0
  383. package/examples/socrates.pl +19 -0
  384. package/examples/stable-marriage.pl +92 -0
  385. package/examples/statistics-summary.pl +56 -0
  386. package/examples/stirling-bell-numbers.pl +69 -0
  387. package/examples/sudoku-4x4.pl +54 -0
  388. package/examples/superdense-coding.pl +84 -0
  389. package/examples/symbolic-derivative.pl +39 -0
  390. package/examples/term-tools.pl +32 -0
  391. package/examples/totient-summatory.pl +33 -0
  392. package/examples/trust-flow-provenance-threshold.pl +47 -0
  393. package/examples/truth-maintenance-system.pl +62 -0
  394. package/examples/turing.pl +69 -0
  395. package/examples/type-inference.pl +58 -0
  396. package/examples/vector-similarity.pl +60 -0
  397. package/examples/vulnerability-impact.pl +69 -0
  398. package/examples/web-names.pl +39 -0
  399. package/examples/weighted-interval-scheduling.pl +81 -0
  400. package/examples/witch.pl +38 -0
  401. package/examples/wolf-goat-cabbage.pl +56 -0
  402. package/examples/workplace-compliance.pl +41 -0
  403. package/examples/zebra.pl +45 -0
  404. package/index.d.ts +230 -0
  405. package/index.js +4 -0
  406. package/package.json +51 -0
  407. package/playground.html +1259 -0
  408. package/src/bin.js +7 -0
  409. package/src/builtins/aggregation.js +81 -0
  410. package/src/builtins/arithmetic.js +208 -0
  411. package/src/builtins/context.js +42 -0
  412. package/src/builtins/control.js +43 -0
  413. package/src/builtins/core.js +78 -0
  414. package/src/builtins/lists.js +283 -0
  415. package/src/builtins/registry.js +48 -0
  416. package/src/builtins/strings.js +234 -0
  417. package/src/builtins/terms.js +69 -0
  418. package/src/cli.js +194 -0
  419. package/src/explain.js +324 -0
  420. package/src/hash.js +294 -0
  421. package/src/index.js +47 -0
  422. package/src/parser.js +465 -0
  423. package/src/program.js +447 -0
  424. package/src/solver.js +453 -0
  425. package/src/term.js +349 -0
  426. package/test/conformance/README.md +72 -0
  427. package/test/conformance/cases/aggregation/044_findall_user_goal.pl +6 -0
  428. package/test/conformance/cases/aggregation/044_findall_user_goal.query +1 -0
  429. package/test/conformance/cases/aggregation/057_countall_empty_and_nonempty.pl +4 -0
  430. package/test/conformance/cases/aggregation/057_countall_empty_and_nonempty.query +1 -0
  431. package/test/conformance/cases/aggregation/058_sumall_numeric_template.pl +5 -0
  432. package/test/conformance/cases/aggregation/058_sumall_numeric_template.query +1 -0
  433. package/test/conformance/cases/aggregation/059_aggregate_min_template.pl +5 -0
  434. package/test/conformance/cases/aggregation/059_aggregate_min_template.query +1 -0
  435. package/test/conformance/cases/aggregation/060_aggregate_max_compound_key.pl +5 -0
  436. package/test/conformance/cases/aggregation/060_aggregate_max_compound_key.query +1 -0
  437. package/test/conformance/cases/aggregation/075_aggregation_edges.pl +12 -0
  438. package/test/conformance/cases/aggregation/098_aggregation_nested_templates.pl +11 -0
  439. package/test/conformance/cases/aggregation/aggregate_max_no_answers_fails.pl +2 -0
  440. package/test/conformance/cases/aggregation/aggregate_min_structured_key.pl +5 -0
  441. package/test/conformance/cases/aggregation/countall_zero.pl +2 -0
  442. package/test/conformance/cases/aggregation/extra_aggregate_max_iri_key.pl +4 -0
  443. package/test/conformance/cases/aggregation/extra_aggregate_min_tie_first.pl +5 -0
  444. package/test/conformance/cases/aggregation/extra_countall_with_filter.pl +5 -0
  445. package/test/conformance/cases/aggregation/extra_findall_repeated_template.pl +4 -0
  446. package/test/conformance/cases/aggregation/extra_sumall_float_template.pl +4 -0
  447. package/test/conformance/cases/aggregation/findall_empty_bag.pl +2 -0
  448. package/test/conformance/cases/aggregation/sumall_empty_zero.pl +2 -0
  449. package/test/conformance/cases/arithmetic/024_numeric_literal_readback.pl +6 -0
  450. package/test/conformance/cases/arithmetic/029_arithmetic_and_comparison.pl +11 -0
  451. package/test/conformance/cases/arithmetic/029_arithmetic_and_comparison.query +1 -0
  452. package/test/conformance/cases/arithmetic/039_numeric_functions.pl +9 -0
  453. package/test/conformance/cases/arithmetic/039_numeric_functions.query +1 -0
  454. package/test/conformance/cases/arithmetic/040_between_enumeration.pl +3 -0
  455. package/test/conformance/cases/arithmetic/040_between_enumeration.query +1 -0
  456. package/test/conformance/cases/arithmetic/041_smallest_divisor.pl +3 -0
  457. package/test/conformance/cases/arithmetic/041_smallest_divisor.query +1 -0
  458. package/test/conformance/cases/arithmetic/054_numeric_and_lexical_comparison.pl +5 -0
  459. package/test/conformance/cases/arithmetic/054_numeric_and_lexical_comparison.query +1 -0
  460. package/test/conformance/cases/arithmetic/061_date_difference.pl +4 -0
  461. package/test/conformance/cases/arithmetic/062_reusable_numeric_builtins.pl +10 -0
  462. package/test/conformance/cases/arithmetic/066_numeric_edges.pl +14 -0
  463. package/test/conformance/cases/arithmetic/079_big_integer_arithmetic.pl +8 -0
  464. package/test/conformance/cases/arithmetic/080_rounding_modes.pl +10 -0
  465. package/test/conformance/cases/arithmetic/081_zero_safe_numeric_functions.pl +9 -0
  466. package/test/conformance/cases/arithmetic/082_comparison_semantics.pl +10 -0
  467. package/test/conformance/cases/arithmetic/083_between_modes_and_empty_ranges.pl +8 -0
  468. package/test/conformance/cases/arithmetic/between_bound_value.pl +2 -0
  469. package/test/conformance/cases/arithmetic/between_singleton.pl +2 -0
  470. package/test/conformance/cases/arithmetic/duration_comparison.pl +2 -0
  471. package/test/conformance/cases/arithmetic/extra_acos_one.pl +2 -0
  472. package/test/conformance/cases/arithmetic/extra_asin_zero.pl +2 -0
  473. package/test/conformance/cases/arithmetic/extra_atan2_axis.pl +2 -0
  474. package/test/conformance/cases/arithmetic/extra_difference_leap_day.pl +2 -0
  475. package/test/conformance/cases/arithmetic/extra_difference_same_day.pl +2 -0
  476. package/test/conformance/cases/arithmetic/extra_div_float_exact.pl +2 -0
  477. package/test/conformance/cases/arithmetic/extra_div_integer_trunc.pl +2 -0
  478. package/test/conformance/cases/arithmetic/extra_division_by_zero_fails.pl +2 -0
  479. package/test/conformance/cases/arithmetic/extra_exp_zero.pl +2 -0
  480. package/test/conformance/cases/arithmetic/extra_ge_equal_duration.pl +2 -0
  481. package/test/conformance/cases/arithmetic/extra_le_equal_string.pl +2 -0
  482. package/test/conformance/cases/arithmetic/extra_log_one.pl +2 -0
  483. package/test/conformance/cases/arithmetic/extra_mod_negative_right.pl +2 -0
  484. package/test/conformance/cases/arithmetic/extra_pow_large_integer.pl +2 -0
  485. package/test/conformance/cases/arithmetic/float_add_and_div.pl +3 -0
  486. package/test/conformance/cases/arithmetic/min_max_mixed.pl +3 -0
  487. package/test/conformance/cases/arithmetic/mod_negative_left.pl +2 -0
  488. package/test/conformance/cases/arithmetic/neg_abs_integer.pl +4 -0
  489. package/test/conformance/cases/arithmetic/pow_negative_exponent_fails.pl +2 -0
  490. package/test/conformance/cases/arithmetic/pow_zero_exponent.pl +2 -0
  491. package/test/conformance/cases/arithmetic/rounding_negative_float.pl +5 -0
  492. package/test/conformance/cases/arithmetic/smallest_divisor_prime.pl +2 -0
  493. package/test/conformance/cases/arithmetic/sqrt_negative_fails.pl +2 -0
  494. package/test/conformance/cases/atoms/008_graphic_atoms.pl +6 -0
  495. package/test/conformance/cases/atoms/008_graphic_atoms.query +1 -0
  496. package/test/conformance/cases/atoms/016_arity_zero_atom.pl +4 -0
  497. package/test/conformance/cases/atoms/018_quoted_atom_readback.pl +6 -0
  498. package/test/conformance/cases/atoms/018_quoted_atom_readback.query +1 -0
  499. package/test/conformance/cases/atoms/103_angle_iri_atoms.pl +7 -0
  500. package/test/conformance/cases/atoms/angle_iri_percent_encoded.pl +2 -0
  501. package/test/conformance/cases/atoms/extra_graphic_backslash_atom.pl +2 -0
  502. package/test/conformance/cases/atoms/extra_iri_mailto_plus.pl +2 -0
  503. package/test/conformance/cases/atoms/extra_iri_uuid_scheme.pl +2 -0
  504. package/test/conformance/cases/atoms/extra_quoted_atom_with_quote_readback.pl +2 -0
  505. package/test/conformance/cases/atoms/graphic_angle_atom_stays_graphic.pl +4 -0
  506. package/test/conformance/cases/atoms/graphic_atom_predicate.pl +3 -0
  507. package/test/conformance/cases/atoms/graphic_less_than_atom.pl +4 -0
  508. package/test/conformance/cases/atoms/iri_as_predicate_name_quoted.pl +3 -0
  509. package/test/conformance/cases/atoms/iri_atoms_in_lists.pl +4 -0
  510. package/test/conformance/cases/atoms/iri_mailto_readback.pl +4 -0
  511. package/test/conformance/cases/atoms/iri_query_fragment_readback.pl +4 -0
  512. package/test/conformance/cases/atoms/iri_quoted_absolute_readback.pl +5 -0
  513. package/test/conformance/cases/atoms/iri_quoted_and_angle_unify.pl +3 -0
  514. package/test/conformance/cases/atoms/iri_urn_readback.pl +4 -0
  515. package/test/conformance/cases/atoms/quoted_relative_iri_not_angle.pl +2 -0
  516. package/test/conformance/cases/atoms/quoted_urn_iri_readback.pl +4 -0
  517. package/test/conformance/cases/atoms/zero_arity_atom_roundtrip.pl +5 -0
  518. package/test/conformance/cases/builtins/037_matching_and_comparison.pl +7 -0
  519. package/test/conformance/cases/builtins/037_matching_and_comparison.query +1 -0
  520. package/test/conformance/cases/builtins/076_composed_reusable_builtins.pl +8 -0
  521. package/test/conformance/cases/builtins/100_reusable_builtin_workflow.pl +10 -0
  522. package/test/conformance/cases/builtins/atom_string_iri_atom.pl +3 -0
  523. package/test/conformance/cases/builtins/eq_unifies_iri_atoms.pl +3 -0
  524. package/test/conformance/cases/builtins/extra_difference_end_before_start_fails.pl +2 -0
  525. package/test/conformance/cases/builtins/extra_difference_invalid_date_fails.pl +2 -0
  526. package/test/conformance/cases/builtins/extra_eq_binds_both_sides.pl +2 -0
  527. package/test/conformance/cases/builtins/extra_neq_different_iri_atoms.pl +2 -0
  528. package/test/conformance/cases/builtins/extra_neq_same_iri_fails.pl +2 -0
  529. package/test/conformance/cases/context/032_holds_parts.pl +4 -0
  530. package/test/conformance/cases/context/051_nested_holds_parts.pl +4 -0
  531. package/test/conformance/cases/context/052_holds_member.pl +3 -0
  532. package/test/conformance/cases/context/094_context_holds_enumeration.pl +7 -0
  533. package/test/conformance/cases/context/extra_holds_atom_parts.pl +2 -0
  534. package/test/conformance/cases/context/extra_holds_ignores_string_parts.pl +2 -0
  535. package/test/conformance/cases/context/extra_holds_list_parts.pl +2 -0
  536. package/test/conformance/cases/context/extra_holds_term_nested_order.pl +2 -0
  537. package/test/conformance/cases/context/holds_compound_formula.pl +2 -0
  538. package/test/conformance/cases/context/holds_fails_when_missing.pl +2 -0
  539. package/test/conformance/cases/context/holds_parts_from_formula.pl +2 -0
  540. package/test/conformance/cases/control/014_failure_filters_answers.pl +7 -0
  541. package/test/conformance/cases/control/014_failure_filters_answers.query +1 -0
  542. package/test/conformance/cases/control/043_once_user_predicate.pl +5 -0
  543. package/test/conformance/cases/control/043_once_user_predicate.query +1 -0
  544. package/test/conformance/cases/control/074_forall_edges.pl +10 -0
  545. package/test/conformance/cases/control/097_control_negation_once_forall.pl +13 -0
  546. package/test/conformance/cases/control/double_negation_ground_goal.pl +3 -0
  547. package/test/conformance/cases/control/extra_forall_bound_check.pl +2 -0
  548. package/test/conformance/cases/control/extra_forall_counterexample_fails.pl +2 -0
  549. package/test/conformance/cases/control/extra_not_unbound_existing_goal_fails.pl +3 -0
  550. package/test/conformance/cases/control/extra_not_unbound_unknown_goal_succeeds.pl +2 -0
  551. package/test/conformance/cases/control/extra_once_empty_fails.pl +2 -0
  552. package/test/conformance/cases/control/extra_once_preserves_binding.pl +2 -0
  553. package/test/conformance/cases/control/forall_detects_counterexample.pl +5 -0
  554. package/test/conformance/cases/control/forall_empty_generator_true.pl +2 -0
  555. package/test/conformance/cases/control/negation_with_bound_generator.pl +5 -0
  556. package/test/conformance/cases/control/once_keeps_first_answer.pl +4 -0
  557. package/test/conformance/cases/declarations/104_mode_determinism_declarations.pl +11 -0
  558. package/test/conformance/cases/declarations/det_semidet_do_not_emit_without_materialize.pl +5 -0
  559. package/test/conformance/cases/declarations/memoize_is_ordinary_fact.pl +4 -0
  560. package/test/conformance/cases/declarations/mode_determinism_are_facts.pl +8 -0
  561. package/test/conformance/cases/declarations/mode_ignored_when_arity_mismatch.pl +5 -0
  562. package/test/conformance/cases/declarations/table_is_also_fact.pl +4 -0
  563. package/test/conformance/cases/lists/005_list_deconstruction.pl +6 -0
  564. package/test/conformance/cases/lists/005_list_deconstruction.query +1 -0
  565. package/test/conformance/cases/lists/015_improper_list_unification.pl +6 -0
  566. package/test/conformance/cases/lists/015_improper_list_unification.query +1 -0
  567. package/test/conformance/cases/lists/020_nested_list_terms.pl +5 -0
  568. package/test/conformance/cases/lists/020_nested_list_terms.query +1 -0
  569. package/test/conformance/cases/lists/031_lists_aggregation_ordering.pl +10 -0
  570. package/test/conformance/cases/lists/031_lists_aggregation_ordering.query +1 -0
  571. package/test/conformance/cases/lists/035_list_relations.pl +5 -0
  572. package/test/conformance/cases/lists/035_list_relations.query +1 -0
  573. package/test/conformance/cases/lists/036_append_splits.pl +3 -0
  574. package/test/conformance/cases/lists/036_append_splits.query +1 -0
  575. package/test/conformance/cases/lists/045_sort_deduplicates_atoms.pl +3 -0
  576. package/test/conformance/cases/lists/045_sort_deduplicates_atoms.query +1 -0
  577. package/test/conformance/cases/lists/046_append_bound_prefix_suffix.pl +4 -0
  578. package/test/conformance/cases/lists/046_append_bound_prefix_suffix.query +1 -0
  579. package/test/conformance/cases/lists/047_nth0_index_generation.pl +3 -0
  580. package/test/conformance/cases/lists/047_nth0_index_generation.query +1 -0
  581. package/test/conformance/cases/lists/048_set_nth0_edges.pl +4 -0
  582. package/test/conformance/cases/lists/048_set_nth0_edges.query +1 -0
  583. package/test/conformance/cases/lists/049_select_duplicate_occurrences.pl +3 -0
  584. package/test/conformance/cases/lists/049_select_duplicate_occurrences.query +1 -0
  585. package/test/conformance/cases/lists/063_reusable_list_builtins.pl +11 -0
  586. package/test/conformance/cases/lists/067_list_edges.pl +10 -0
  587. package/test/conformance/cases/lists/068_list_generation_order.pl +7 -0
  588. package/test/conformance/cases/lists/069_list_summaries_and_sets.pl +9 -0
  589. package/test/conformance/cases/lists/084_append_and_select_composition.pl +7 -0
  590. package/test/conformance/cases/lists/085_nth_and_update_edges.pl +8 -0
  591. package/test/conformance/cases/lists/086_slicing_pipeline.pl +10 -0
  592. package/test/conformance/cases/lists/087_sort_reverse_length.pl +8 -0
  593. package/test/conformance/cases/lists/088_list_summaries_failures.pl +8 -0
  594. package/test/conformance/cases/lists/empty_list_term.pl +4 -0
  595. package/test/conformance/cases/lists/extra_append_all_splits_three.pl +2 -0
  596. package/test/conformance/cases/lists/extra_append_to_improper_tail.pl +2 -0
  597. package/test/conformance/cases/lists/extra_drop_all.pl +2 -0
  598. package/test/conformance/cases/lists/extra_head_and_rest_improper.pl +2 -0
  599. package/test/conformance/cases/lists/extra_last_singleton.pl +2 -0
  600. package/test/conformance/cases/lists/extra_length_improper_fails.pl +2 -0
  601. package/test/conformance/cases/lists/extra_list_to_set_stable_order.pl +2 -0
  602. package/test/conformance/cases/lists/extra_member_repeated_nested.pl +2 -0
  603. package/test/conformance/cases/lists/extra_not_member_compound_fails.pl +2 -0
  604. package/test/conformance/cases/lists/extra_not_member_compound_success.pl +2 -0
  605. package/test/conformance/cases/lists/extra_nth0_duplicate_indexes.pl +2 -0
  606. package/test/conformance/cases/lists/extra_reverse_nested_terms.pl +2 -0
  607. package/test/conformance/cases/lists/extra_select_structured_duplicate.pl +2 -0
  608. package/test/conformance/cases/lists/extra_slice_end.pl +2 -0
  609. package/test/conformance/cases/lists/extra_sort_iri_atoms.pl +2 -0
  610. package/test/conformance/cases/lists/extra_take_all.pl +2 -0
  611. package/test/conformance/cases/lists/head_rest_last.pl +4 -0
  612. package/test/conformance/cases/lists/improper_list_readback.pl +4 -0
  613. package/test/conformance/cases/lists/length_empty_and_nested.pl +3 -0
  614. package/test/conformance/cases/lists/list_to_set_structural_duplicates.pl +2 -0
  615. package/test/conformance/cases/lists/list_with_iri_atoms.pl +4 -0
  616. package/test/conformance/cases/lists/min_list_empty_fails.pl +2 -0
  617. package/test/conformance/cases/lists/nth0_known_value.pl +2 -0
  618. package/test/conformance/cases/lists/nth0_out_of_range_fails.pl +2 -0
  619. package/test/conformance/cases/lists/reverse_empty.pl +2 -0
  620. package/test/conformance/cases/lists/select_all_occurrences.pl +2 -0
  621. package/test/conformance/cases/lists/set_nth0_middle.pl +2 -0
  622. package/test/conformance/cases/lists/slice_middle.pl +2 -0
  623. package/test/conformance/cases/lists/slice_out_of_range_fails.pl +2 -0
  624. package/test/conformance/cases/lists/sort_structured_terms.pl +2 -0
  625. package/test/conformance/cases/lists/sum_list_empty_zero.pl +2 -0
  626. package/test/conformance/cases/lists/sum_min_max_list.pl +4 -0
  627. package/test/conformance/cases/lists/take_zero_and_drop_all.pl +3 -0
  628. package/test/conformance/cases/materialize/027_default_derived_output.pl +5 -0
  629. package/test/conformance/cases/materialize/028_materialize_focus.pl +5 -0
  630. package/test/conformance/cases/materialize/053_materialize_excludes_source_fact.pl +6 -0
  631. package/test/conformance/cases/materialize/099_materialize_multiple_arities.pl +8 -0
  632. package/test/conformance/cases/materialize/arity_specific_outputs.pl +4 -0
  633. package/test/conformance/cases/materialize/extra_materialize_derived_only_with_same_source.pl +4 -0
  634. package/test/conformance/cases/materialize/extra_materialize_selects_arity.pl +4 -0
  635. package/test/conformance/cases/materialize/source_facts_suppressed.pl +5 -0
  636. package/test/conformance/cases/negation/033_negation_once_generators.pl +7 -0
  637. package/test/conformance/cases/negation/033_negation_once_generators.query +1 -0
  638. package/test/conformance/cases/negation/042_negation_filter.pl +7 -0
  639. package/test/conformance/cases/negation/042_negation_filter.query +1 -0
  640. package/test/conformance/cases/negation/050_not_member_filter.pl +6 -0
  641. package/test/conformance/cases/negation/050_not_member_filter.query +1 -0
  642. package/test/conformance/cases/negation/extra_not_with_bound_fails.pl +3 -0
  643. package/test/conformance/cases/negation/extra_not_with_bound_success.pl +3 -0
  644. package/test/conformance/cases/negation/not_known_goal_fails.pl +4 -0
  645. package/test/conformance/cases/negation/not_unknown_goal_succeeds.pl +3 -0
  646. package/test/conformance/cases/negation/stratified_negation_answers.pl +6 -0
  647. package/test/conformance/cases/rules/001_fact_output.pl +4 -0
  648. package/test/conformance/cases/rules/002_rule_recursion.pl +7 -0
  649. package/test/conformance/cases/rules/002_rule_recursion.query +1 -0
  650. package/test/conformance/cases/rules/011_predicate_arity.pl +6 -0
  651. package/test/conformance/cases/rules/011_predicate_arity.query +1 -0
  652. package/test/conformance/cases/rules/013_multiple_clauses_order.pl +6 -0
  653. package/test/conformance/cases/rules/013_multiple_clauses_order.query +1 -0
  654. package/test/conformance/cases/rules/017_three_step_recursion.pl +8 -0
  655. package/test/conformance/cases/rules/017_three_step_recursion.query +1 -0
  656. package/test/conformance/cases/rules/022_rule_head_structure.pl +5 -0
  657. package/test/conformance/cases/rules/077_recursive_path_with_lists.pl +10 -0
  658. package/test/conformance/cases/rules/078_mutual_recursion_with_arithmetic.pl +7 -0
  659. package/test/conformance/cases/rules/extra_left_to_right_multiple_bindings.pl +5 -0
  660. package/test/conformance/cases/rules/extra_structured_head_rule.pl +3 -0
  661. package/test/conformance/cases/rules/left_to_right_body_binding.pl +4 -0
  662. package/test/conformance/cases/rules/transitive_rule_three_edges.pl +7 -0
  663. package/test/conformance/cases/strings/023_quoted_escapes_readback.pl +5 -0
  664. package/test/conformance/cases/strings/030_strings_and_atoms.pl +4 -0
  665. package/test/conformance/cases/strings/030_strings_and_atoms.query +1 -0
  666. package/test/conformance/cases/strings/055_string_matching_filters.pl +6 -0
  667. package/test/conformance/cases/strings/055_string_matching_filters.query +1 -0
  668. package/test/conformance/cases/strings/056_string_and_atom_concat.pl +3 -0
  669. package/test/conformance/cases/strings/056_string_and_atom_concat.query +1 -0
  670. package/test/conformance/cases/strings/064_reusable_string_builtins.pl +12 -0
  671. package/test/conformance/cases/strings/070_matches_named_captures.pl +13 -0
  672. package/test/conformance/cases/strings/071_string_edges.pl +10 -0
  673. package/test/conformance/cases/strings/072_string_conversions.pl +10 -0
  674. package/test/conformance/cases/strings/089_string_split_join_pipeline.pl +7 -0
  675. package/test/conformance/cases/strings/090_string_substring_replace_edges.pl +9 -0
  676. package/test/conformance/cases/strings/091_string_case_and_trim.pl +7 -0
  677. package/test/conformance/cases/strings/092_scalar_string_conversions.pl +9 -0
  678. package/test/conformance/cases/strings/093_regex_named_captures_context.pl +8 -0
  679. package/test/conformance/cases/strings/atom_string_from_string.pl +2 -0
  680. package/test/conformance/cases/strings/casefold_atoms.pl +3 -0
  681. package/test/conformance/cases/strings/contains_empty_needle.pl +2 -0
  682. package/test/conformance/cases/strings/extra_atom_string_number_input.pl +2 -0
  683. package/test/conformance/cases/strings/extra_join_empty_list.pl +2 -0
  684. package/test/conformance/cases/strings/extra_join_iri_and_atom.pl +2 -0
  685. package/test/conformance/cases/strings/extra_lowercase_iri_atom.pl +2 -0
  686. package/test/conformance/cases/strings/extra_matches_invalid_pattern_fails.pl +2 -0
  687. package/test/conformance/cases/strings/extra_named_regex_optional_missing.pl +2 -0
  688. package/test/conformance/cases/strings/extra_number_string_atom_input.pl +2 -0
  689. package/test/conformance/cases/strings/extra_replace_multiple.pl +2 -0
  690. package/test/conformance/cases/strings/extra_split_empty_separator.pl +2 -0
  691. package/test/conformance/cases/strings/extra_substring_last_char.pl +2 -0
  692. package/test/conformance/cases/strings/extra_term_string_iri_list.pl +2 -0
  693. package/test/conformance/cases/strings/extra_uppercase_mixed_string.pl +2 -0
  694. package/test/conformance/cases/strings/join_mixed_scalars.pl +2 -0
  695. package/test/conformance/cases/strings/matches_simple_alternation.pl +2 -0
  696. package/test/conformance/cases/strings/named_regex_two_groups.pl +2 -0
  697. package/test/conformance/cases/strings/not_matches_simple_pattern.pl +2 -0
  698. package/test/conformance/cases/strings/number_string_from_string.pl +2 -0
  699. package/test/conformance/cases/strings/number_string_rejects_non_numeric.pl +2 -0
  700. package/test/conformance/cases/strings/replace_empty_search_no_change.pl +2 -0
  701. package/test/conformance/cases/strings/split_without_separator_match.pl +2 -0
  702. package/test/conformance/cases/strings/substring_out_of_range_fails.pl +2 -0
  703. package/test/conformance/cases/strings/substring_zero_count.pl +2 -0
  704. package/test/conformance/cases/strings/term_string_nested_term.pl +2 -0
  705. package/test/conformance/cases/strings/trim_tabs_and_spaces.pl +3 -0
  706. package/test/conformance/cases/syntax/004_conjunction_and_parentheses.pl +5 -0
  707. package/test/conformance/cases/syntax/004_conjunction_and_parentheses.query +1 -0
  708. package/test/conformance/cases/syntax/006_comma_formula_data.pl +4 -0
  709. package/test/conformance/cases/syntax/006_comma_formula_data.query +1 -0
  710. package/test/conformance/cases/syntax/009_comments_and_whitespace.pl +5 -0
  711. package/test/conformance/cases/syntax/009_comments_and_whitespace.query +1 -0
  712. package/test/conformance/cases/syntax/019_parenthesized_three_conjuncts.pl +7 -0
  713. package/test/conformance/cases/syntax/019_parenthesized_three_conjuncts.query +1 -0
  714. package/test/conformance/cases/syntax/025_body_parentheses_with_formula_data.pl +5 -0
  715. package/test/conformance/cases/syntax/comments_inside_program.pl +4 -0
  716. package/test/conformance/cases/syntax/extra_comments_after_terms.pl +3 -0
  717. package/test/conformance/cases/syntax/extra_nested_parenthesized_body.pl +2 -0
  718. package/test/conformance/cases/syntax/parenthesized_query_style_body.pl +5 -0
  719. package/test/conformance/cases/syntax/quoted_atom_with_newline_escape.pl +3 -0
  720. package/test/conformance/cases/syntax/string_with_tab_escape.pl +2 -0
  721. package/test/conformance/cases/table/038_table_declaration.pl +8 -0
  722. package/test/conformance/cases/table/038_table_declaration.query +1 -0
  723. package/test/conformance/cases/table/102_table_declaration.pl +11 -0
  724. package/test/conformance/cases/table/extra_table_bound_cycle.pl +7 -0
  725. package/test/conformance/cases/table/extra_table_open_call_fallback.pl +5 -0
  726. package/test/conformance/cases/table/table_does_not_change_answers.pl +7 -0
  727. package/test/conformance/cases/table/tabled_left_recursion_path.pl +7 -0
  728. package/test/conformance/cases/terms/003_terms_and_readback.pl +16 -0
  729. package/test/conformance/cases/terms/003_terms_and_readback.query +1 -0
  730. package/test/conformance/cases/terms/065_reusable_term_control_builtins.pl +11 -0
  731. package/test/conformance/cases/terms/073_term_introspection_edges.pl +11 -0
  732. package/test/conformance/cases/terms/095_term_introspection_roundtrip.pl +8 -0
  733. package/test/conformance/cases/terms/096_functor_scalar_edges.pl +8 -0
  734. package/test/conformance/cases/terms/arg_first_and_second.pl +3 -0
  735. package/test/conformance/cases/terms/arg_zero_fails.pl +2 -0
  736. package/test/conformance/cases/terms/compound_name_arguments_atom_zero_args.pl +3 -0
  737. package/test/conformance/cases/terms/compound_name_arguments_bad_args_fail.pl +2 -0
  738. package/test/conformance/cases/terms/compound_name_arguments_builds_atom_from_empty_args.pl +3 -0
  739. package/test/conformance/cases/terms/compound_name_arguments_builds_compound.pl +2 -0
  740. package/test/conformance/cases/terms/compound_name_arguments_iri_name.pl +2 -0
  741. package/test/conformance/cases/terms/extra_arg_atom_fails.pl +2 -0
  742. package/test/conformance/cases/terms/extra_arg_first_last.pl +2 -0
  743. package/test/conformance/cases/terms/extra_arg_zero_fails.pl +2 -0
  744. package/test/conformance/cases/terms/extra_compound_name_arguments_bad_args_fails.pl +2 -0
  745. package/test/conformance/cases/terms/extra_compound_name_arguments_construct_atom_zero.pl +2 -0
  746. package/test/conformance/cases/terms/extra_compound_name_arguments_construct_iri.pl +2 -0
  747. package/test/conformance/cases/terms/extra_compound_name_arguments_decompose_list.pl +2 -0
  748. package/test/conformance/cases/terms/extra_functor_list_cons.pl +2 -0
  749. package/test/conformance/cases/terms/extra_functor_number_scalar.pl +2 -0
  750. package/test/conformance/cases/terms/extra_functor_string_scalar.pl +2 -0
  751. package/test/conformance/cases/terms/functor_atom_arity_zero.pl +3 -0
  752. package/test/conformance/cases/terms/functor_number_and_string.pl +3 -0
  753. package/test/conformance/cases/terms/herbrand_witness_different_inputs_distinct.pl +2 -0
  754. package/test/conformance/cases/terms/herbrand_witness_one_input.pl +5 -0
  755. package/test/conformance/cases/terms/herbrand_witness_same_inputs_same_term.pl +2 -0
  756. package/test/conformance/cases/terms/herbrand_witness_two_inputs.pl +5 -0
  757. package/test/conformance/cases/terms/term_string_readback_iri_list.pl +2 -0
  758. package/test/conformance/cases/unification/012_nested_compound_unification.pl +5 -0
  759. package/test/conformance/cases/unification/012_nested_compound_unification.query +1 -0
  760. package/test/conformance/cases/unification/021_repeated_variable_head.pl +7 -0
  761. package/test/conformance/cases/unification/034_equality_and_inequality.pl +6 -0
  762. package/test/conformance/cases/unification/034_equality_and_inequality.query +1 -0
  763. package/test/conformance/cases/unification/compound_arity_mismatch_fails.pl +2 -0
  764. package/test/conformance/cases/unification/extra_eq_iri_and_quoted_atom.pl +2 -0
  765. package/test/conformance/cases/unification/extra_eq_list_tail_binding.pl +2 -0
  766. package/test/conformance/cases/unification/extra_eq_nested_repeated_fails.pl +2 -0
  767. package/test/conformance/cases/unification/extra_eq_nested_repeated_success.pl +2 -0
  768. package/test/conformance/cases/unification/extra_eq_scalar_number_atom.pl +2 -0
  769. package/test/conformance/cases/unification/extra_eq_scalar_string_number.pl +2 -0
  770. package/test/conformance/cases/unification/extra_neq_compound_arity_mismatch.pl +2 -0
  771. package/test/conformance/cases/unification/extra_neq_scalar_same_lexical_fails.pl +2 -0
  772. package/test/conformance/cases/unification/extra_variable_clause_locality.pl +4 -0
  773. package/test/conformance/cases/unification/list_tail_binding.pl +2 -0
  774. package/test/conformance/cases/unification/nested_repeated_variable.pl +2 -0
  775. package/test/conformance/cases/unification/scalar_cross_type_same_lexical_value.pl +3 -0
  776. package/test/conformance/cases/variables/007_anonymous_variables.pl +5 -0
  777. package/test/conformance/cases/variables/007_anonymous_variables.query +1 -0
  778. package/test/conformance/cases/variables/010_variable_scope_and_reuse.pl +8 -0
  779. package/test/conformance/cases/variables/010_variable_scope_and_reuse.query +1 -0
  780. package/test/conformance/cases/variables/026_question_underscore_named_variable_reuse.pl +5 -0
  781. package/test/conformance/cases/variables/101_question_mark_variables.pl +7 -0
  782. package/test/conformance/cases/variables/anonymous_in_two_goals.pl +4 -0
  783. package/test/conformance/cases/variables/clause_local_variable_names.pl +5 -0
  784. package/test/conformance/cases/variables/extra_anonymous_not_reused.pl +2 -0
  785. package/test/conformance/cases/variables/extra_named_variable_reused.pl +2 -0
  786. package/test/conformance/cases/variables/extra_question_underscore_named_distinct.pl +2 -0
  787. package/test/conformance/cases/variables/extra_question_uppercase_named.pl +2 -0
  788. package/test/conformance/cases/variables/question_anonymous_not_reused.pl +6 -0
  789. package/test/conformance/cases/variables/question_underscore_named_reuse.pl +5 -0
  790. package/test/conformance/cases/variables/question_uppercase_variable.pl +4 -0
  791. package/test/conformance/cases/variables/question_variable_digits_and_underscore.pl +2 -0
  792. package/test/conformance/cases/variables/question_variable_uppercase_name.pl +2 -0
  793. package/test/conformance/cases/variables/variable_scope_per_clause.pl +6 -0
  794. package/test/conformance/errors/atoms/extra_angle_iri_backslash_rejected.pl +1 -0
  795. package/test/conformance/errors/atoms/extra_angle_iri_pipe_rejected.pl +1 -0
  796. package/test/conformance/errors/atoms/extra_angle_iri_quote_rejected.pl +1 -0
  797. package/test/conformance/errors/atoms/hash_comment_not_atom_at_line_start.pl +1 -0
  798. package/test/conformance/errors/atoms/relative_angle_name_rejected.pl +1 -0
  799. package/test/conformance/errors/atoms/space_in_angle_iri_rejected.pl +1 -0
  800. package/test/conformance/errors/atoms/unclosed_angle_iri_rejected.pl +1 -0
  801. package/test/conformance/errors/atoms/zero_arity_compound_rejected.pl +1 -0
  802. package/test/conformance/errors/lists/extra_missing_tail_after_bar.pl +1 -0
  803. package/test/conformance/errors/lists/extra_unclosed_list_tail.pl +1 -0
  804. package/test/conformance/errors/lists/missing_list_tail.pl +1 -0
  805. package/test/conformance/errors/rules/extra_empty_head_with_body.pl +1 -0
  806. package/test/conformance/errors/rules/extra_rule_without_body.pl +1 -0
  807. package/test/conformance/errors/rules/rule_head_cannot_be_empty_parentheses.pl +1 -0
  808. package/test/conformance/errors/syntax/angle_iri_with_space_rejected.pl +1 -0
  809. package/test/conformance/errors/syntax/bad_question_digit_variable.pl +1 -0
  810. package/test/conformance/errors/syntax/bad_question_variable.pl +1 -0
  811. package/test/conformance/errors/syntax/colon_name_rejected.pl +1 -0
  812. package/test/conformance/errors/syntax/empty_body_after_rule_marker.pl +1 -0
  813. package/test/conformance/errors/syntax/empty_compound_nested.pl +1 -0
  814. package/test/conformance/errors/syntax/extra_bad_backtick_character.pl +1 -0
  815. package/test/conformance/errors/syntax/extra_bad_iri_empty_body.pl +1 -0
  816. package/test/conformance/errors/syntax/extra_bad_list_double_comma.pl +1 -0
  817. package/test/conformance/errors/syntax/extra_bad_list_double_tail.pl +1 -0
  818. package/test/conformance/errors/syntax/extra_bad_number_two_decimal_points.pl +1 -0
  819. package/test/conformance/errors/syntax/extra_double_period_rejected.pl +1 -0
  820. package/test/conformance/errors/syntax/extra_extra_closing_paren.pl +1 -0
  821. package/test/conformance/errors/syntax/extra_missing_closing_rule_body.pl +1 -0
  822. package/test/conformance/errors/syntax/extra_missing_head_rejected.pl +1 -0
  823. package/test/conformance/errors/syntax/missing_final_dot_rejected.pl +1 -0
  824. package/test/conformance/errors/syntax/missing_period.pl +1 -0
  825. package/test/conformance/errors/syntax/relative_angle_iri_rejected.pl +1 -0
  826. package/test/conformance/errors/syntax/trailing_comma_in_body.pl +1 -0
  827. package/test/conformance/errors/syntax/unclosed_compound.pl +1 -0
  828. package/test/conformance/errors/syntax/unclosed_list.pl +1 -0
  829. package/test/conformance/errors/syntax/unclosed_list_rejected.pl +1 -0
  830. package/test/conformance/errors/syntax/unclosed_quoted_atom.pl +1 -0
  831. package/test/conformance/errors/syntax/unclosed_quoted_atom_rejected.pl +1 -0
  832. package/test/conformance/errors/syntax/unclosed_string.pl +1 -0
  833. package/test/conformance/errors/syntax/unquoted_colon_predicate.pl +1 -0
  834. package/test/conformance/errors/syntax/unquoted_dotted_predicate.pl +1 -0
  835. package/test/conformance/errors/syntax/uppercase_predicate_rejected.pl +1 -0
  836. package/test/conformance/errors/terms/extra_empty_nested_compound.pl +1 -0
  837. package/test/conformance/errors/terms/extra_empty_top_level_compound.pl +1 -0
  838. package/test/conformance/errors/terms/zero_arity_compound_nested_rejected.pl +1 -0
  839. package/test/conformance/errors/variables/bare_underscore_in_list_rejected.pl +1 -0
  840. package/test/conformance/errors/variables/bare_underscore_name_in_compound_rejected.pl +1 -0
  841. package/test/conformance/errors/variables/bare_underscore_rejected.pl +1 -0
  842. package/test/conformance/errors/variables/extra_bare_underscore_in_rule_head.pl +1 -0
  843. package/test/conformance/errors/variables/extra_question_dash_variable.pl +1 -0
  844. package/test/conformance/errors/variables/extra_uppercase_in_list.pl +1 -0
  845. package/test/conformance/errors/variables/question_digit_rejected.pl +1 -0
  846. package/test/conformance/errors/variables/question_dot_rejected.pl +1 -0
  847. package/test/conformance/errors/variables/underscore_named_rejected.pl +1 -0
  848. package/test/conformance/errors/variables/uppercase_in_body_rejected.pl +1 -0
  849. package/test/conformance/errors/variables/uppercase_variable_rejected.pl +1 -0
  850. package/test/conformance/expected/aggregation/044_findall_user_goal.pl +1 -0
  851. package/test/conformance/expected/aggregation/057_countall_empty_and_nonempty.pl +1 -0
  852. package/test/conformance/expected/aggregation/058_sumall_numeric_template.pl +1 -0
  853. package/test/conformance/expected/aggregation/059_aggregate_min_template.pl +1 -0
  854. package/test/conformance/expected/aggregation/060_aggregate_max_compound_key.pl +1 -0
  855. package/test/conformance/expected/aggregation/075_aggregation_edges.pl +7 -0
  856. package/test/conformance/expected/aggregation/098_aggregation_nested_templates.pl +5 -0
  857. package/test/conformance/expected/aggregation/aggregate_max_no_answers_fails.pl +1 -0
  858. package/test/conformance/expected/aggregation/aggregate_min_structured_key.pl +1 -0
  859. package/test/conformance/expected/aggregation/countall_zero.pl +1 -0
  860. package/test/conformance/expected/aggregation/extra_aggregate_max_iri_key.pl +1 -0
  861. package/test/conformance/expected/aggregation/extra_aggregate_min_tie_first.pl +1 -0
  862. package/test/conformance/expected/aggregation/extra_countall_with_filter.pl +1 -0
  863. package/test/conformance/expected/aggregation/extra_findall_repeated_template.pl +1 -0
  864. package/test/conformance/expected/aggregation/extra_sumall_float_template.pl +1 -0
  865. package/test/conformance/expected/aggregation/findall_empty_bag.pl +1 -0
  866. package/test/conformance/expected/aggregation/sumall_empty_zero.pl +1 -0
  867. package/test/conformance/expected/arithmetic/024_numeric_literal_readback.pl +3 -0
  868. package/test/conformance/expected/arithmetic/029_arithmetic_and_comparison.pl +9 -0
  869. package/test/conformance/expected/arithmetic/039_numeric_functions.pl +7 -0
  870. package/test/conformance/expected/arithmetic/040_between_enumeration.pl +3 -0
  871. package/test/conformance/expected/arithmetic/041_smallest_divisor.pl +1 -0
  872. package/test/conformance/expected/arithmetic/054_numeric_and_lexical_comparison.pl +3 -0
  873. package/test/conformance/expected/arithmetic/061_date_difference.pl +2 -0
  874. package/test/conformance/expected/arithmetic/062_reusable_numeric_builtins.pl +8 -0
  875. package/test/conformance/expected/arithmetic/066_numeric_edges.pl +12 -0
  876. package/test/conformance/expected/arithmetic/079_big_integer_arithmetic.pl +6 -0
  877. package/test/conformance/expected/arithmetic/080_rounding_modes.pl +8 -0
  878. package/test/conformance/expected/arithmetic/081_zero_safe_numeric_functions.pl +7 -0
  879. package/test/conformance/expected/arithmetic/082_comparison_semantics.pl +8 -0
  880. package/test/conformance/expected/arithmetic/083_between_modes_and_empty_ranges.pl +8 -0
  881. package/test/conformance/expected/arithmetic/between_bound_value.pl +1 -0
  882. package/test/conformance/expected/arithmetic/between_singleton.pl +1 -0
  883. package/test/conformance/expected/arithmetic/duration_comparison.pl +1 -0
  884. package/test/conformance/expected/arithmetic/extra_acos_one.pl +1 -0
  885. package/test/conformance/expected/arithmetic/extra_asin_zero.pl +1 -0
  886. package/test/conformance/expected/arithmetic/extra_atan2_axis.pl +1 -0
  887. package/test/conformance/expected/arithmetic/extra_difference_leap_day.pl +1 -0
  888. package/test/conformance/expected/arithmetic/extra_difference_same_day.pl +1 -0
  889. package/test/conformance/expected/arithmetic/extra_div_float_exact.pl +1 -0
  890. package/test/conformance/expected/arithmetic/extra_div_integer_trunc.pl +1 -0
  891. package/test/conformance/expected/arithmetic/extra_division_by_zero_fails.pl +0 -0
  892. package/test/conformance/expected/arithmetic/extra_exp_zero.pl +1 -0
  893. package/test/conformance/expected/arithmetic/extra_ge_equal_duration.pl +1 -0
  894. package/test/conformance/expected/arithmetic/extra_le_equal_string.pl +1 -0
  895. package/test/conformance/expected/arithmetic/extra_log_one.pl +1 -0
  896. package/test/conformance/expected/arithmetic/extra_mod_negative_right.pl +1 -0
  897. package/test/conformance/expected/arithmetic/extra_pow_large_integer.pl +1 -0
  898. package/test/conformance/expected/arithmetic/float_add_and_div.pl +2 -0
  899. package/test/conformance/expected/arithmetic/min_max_mixed.pl +2 -0
  900. package/test/conformance/expected/arithmetic/mod_negative_left.pl +1 -0
  901. package/test/conformance/expected/arithmetic/neg_abs_integer.pl +2 -0
  902. package/test/conformance/expected/arithmetic/pow_negative_exponent_fails.pl +1 -0
  903. package/test/conformance/expected/arithmetic/pow_zero_exponent.pl +1 -0
  904. package/test/conformance/expected/arithmetic/rounding_negative_float.pl +4 -0
  905. package/test/conformance/expected/arithmetic/smallest_divisor_prime.pl +1 -0
  906. package/test/conformance/expected/arithmetic/sqrt_negative_fails.pl +1 -0
  907. package/test/conformance/expected/atoms/008_graphic_atoms.pl +3 -0
  908. package/test/conformance/expected/atoms/016_arity_zero_atom.pl +1 -0
  909. package/test/conformance/expected/atoms/018_quoted_atom_readback.pl +3 -0
  910. package/test/conformance/expected/atoms/103_angle_iri_atoms.pl +3 -0
  911. package/test/conformance/expected/atoms/angle_iri_percent_encoded.pl +0 -0
  912. package/test/conformance/expected/atoms/extra_graphic_backslash_atom.pl +0 -0
  913. package/test/conformance/expected/atoms/extra_iri_mailto_plus.pl +0 -0
  914. package/test/conformance/expected/atoms/extra_iri_uuid_scheme.pl +0 -0
  915. package/test/conformance/expected/atoms/extra_quoted_atom_with_quote_readback.pl +0 -0
  916. package/test/conformance/expected/atoms/graphic_angle_atom_stays_graphic.pl +1 -0
  917. package/test/conformance/expected/atoms/graphic_atom_predicate.pl +1 -0
  918. package/test/conformance/expected/atoms/graphic_less_than_atom.pl +1 -0
  919. package/test/conformance/expected/atoms/iri_as_predicate_name_quoted.pl +1 -0
  920. package/test/conformance/expected/atoms/iri_atoms_in_lists.pl +1 -0
  921. package/test/conformance/expected/atoms/iri_mailto_readback.pl +1 -0
  922. package/test/conformance/expected/atoms/iri_query_fragment_readback.pl +1 -0
  923. package/test/conformance/expected/atoms/iri_quoted_absolute_readback.pl +2 -0
  924. package/test/conformance/expected/atoms/iri_quoted_and_angle_unify.pl +0 -0
  925. package/test/conformance/expected/atoms/iri_urn_readback.pl +1 -0
  926. package/test/conformance/expected/atoms/quoted_relative_iri_not_angle.pl +0 -0
  927. package/test/conformance/expected/atoms/quoted_urn_iri_readback.pl +1 -0
  928. package/test/conformance/expected/atoms/zero_arity_atom_roundtrip.pl +3 -0
  929. package/test/conformance/expected/builtins/037_matching_and_comparison.pl +5 -0
  930. package/test/conformance/expected/builtins/076_composed_reusable_builtins.pl +5 -0
  931. package/test/conformance/expected/builtins/100_reusable_builtin_workflow.pl +6 -0
  932. package/test/conformance/expected/builtins/atom_string_iri_atom.pl +1 -0
  933. package/test/conformance/expected/builtins/eq_unifies_iri_atoms.pl +0 -0
  934. package/test/conformance/expected/builtins/extra_difference_end_before_start_fails.pl +0 -0
  935. package/test/conformance/expected/builtins/extra_difference_invalid_date_fails.pl +0 -0
  936. package/test/conformance/expected/builtins/extra_eq_binds_both_sides.pl +1 -0
  937. package/test/conformance/expected/builtins/extra_neq_different_iri_atoms.pl +1 -0
  938. package/test/conformance/expected/builtins/extra_neq_same_iri_fails.pl +1 -0
  939. package/test/conformance/expected/context/032_holds_parts.pl +3 -0
  940. package/test/conformance/expected/context/051_nested_holds_parts.pl +3 -0
  941. package/test/conformance/expected/context/052_holds_member.pl +2 -0
  942. package/test/conformance/expected/context/094_context_holds_enumeration.pl +8 -0
  943. package/test/conformance/expected/context/extra_holds_atom_parts.pl +2 -0
  944. package/test/conformance/expected/context/extra_holds_ignores_string_parts.pl +0 -0
  945. package/test/conformance/expected/context/extra_holds_list_parts.pl +2 -0
  946. package/test/conformance/expected/context/extra_holds_term_nested_order.pl +3 -0
  947. package/test/conformance/expected/context/holds_compound_formula.pl +1 -0
  948. package/test/conformance/expected/context/holds_fails_when_missing.pl +1 -0
  949. package/test/conformance/expected/context/holds_parts_from_formula.pl +2 -0
  950. package/test/conformance/expected/control/014_failure_filters_answers.pl +1 -0
  951. package/test/conformance/expected/control/043_once_user_predicate.pl +1 -0
  952. package/test/conformance/expected/control/074_forall_edges.pl +5 -0
  953. package/test/conformance/expected/control/097_control_negation_once_forall.pl +5 -0
  954. package/test/conformance/expected/control/double_negation_ground_goal.pl +1 -0
  955. package/test/conformance/expected/control/extra_forall_bound_check.pl +1 -0
  956. package/test/conformance/expected/control/extra_forall_counterexample_fails.pl +0 -0
  957. package/test/conformance/expected/control/extra_not_unbound_existing_goal_fails.pl +0 -0
  958. package/test/conformance/expected/control/extra_not_unbound_unknown_goal_succeeds.pl +1 -0
  959. package/test/conformance/expected/control/extra_once_empty_fails.pl +0 -0
  960. package/test/conformance/expected/control/extra_once_preserves_binding.pl +1 -0
  961. package/test/conformance/expected/control/forall_detects_counterexample.pl +1 -0
  962. package/test/conformance/expected/control/forall_empty_generator_true.pl +1 -0
  963. package/test/conformance/expected/control/negation_with_bound_generator.pl +1 -0
  964. package/test/conformance/expected/control/once_keeps_first_answer.pl +1 -0
  965. package/test/conformance/expected/declarations/104_mode_determinism_declarations.pl +4 -0
  966. package/test/conformance/expected/declarations/det_semidet_do_not_emit_without_materialize.pl +1 -0
  967. package/test/conformance/expected/declarations/memoize_is_ordinary_fact.pl +1 -0
  968. package/test/conformance/expected/declarations/mode_determinism_are_facts.pl +3 -0
  969. package/test/conformance/expected/declarations/mode_ignored_when_arity_mismatch.pl +1 -0
  970. package/test/conformance/expected/declarations/table_is_also_fact.pl +1 -0
  971. package/test/conformance/expected/lists/005_list_deconstruction.pl +2 -0
  972. package/test/conformance/expected/lists/015_improper_list_unification.pl +3 -0
  973. package/test/conformance/expected/lists/020_nested_list_terms.pl +2 -0
  974. package/test/conformance/expected/lists/031_lists_aggregation_ordering.pl +9 -0
  975. package/test/conformance/expected/lists/035_list_relations.pl +4 -0
  976. package/test/conformance/expected/lists/036_append_splits.pl +3 -0
  977. package/test/conformance/expected/lists/045_sort_deduplicates_atoms.pl +1 -0
  978. package/test/conformance/expected/lists/046_append_bound_prefix_suffix.pl +2 -0
  979. package/test/conformance/expected/lists/047_nth0_index_generation.pl +1 -0
  980. package/test/conformance/expected/lists/048_set_nth0_edges.pl +2 -0
  981. package/test/conformance/expected/lists/049_select_duplicate_occurrences.pl +2 -0
  982. package/test/conformance/expected/lists/063_reusable_list_builtins.pl +9 -0
  983. package/test/conformance/expected/lists/067_list_edges.pl +8 -0
  984. package/test/conformance/expected/lists/068_list_generation_order.pl +10 -0
  985. package/test/conformance/expected/lists/069_list_summaries_and_sets.pl +7 -0
  986. package/test/conformance/expected/lists/084_append_and_select_composition.pl +10 -0
  987. package/test/conformance/expected/lists/085_nth_and_update_edges.pl +8 -0
  988. package/test/conformance/expected/lists/086_slicing_pipeline.pl +7 -0
  989. package/test/conformance/expected/lists/087_sort_reverse_length.pl +6 -0
  990. package/test/conformance/expected/lists/088_list_summaries_failures.pl +6 -0
  991. package/test/conformance/expected/lists/empty_list_term.pl +1 -0
  992. package/test/conformance/expected/lists/extra_append_all_splits_three.pl +4 -0
  993. package/test/conformance/expected/lists/extra_append_to_improper_tail.pl +1 -0
  994. package/test/conformance/expected/lists/extra_drop_all.pl +1 -0
  995. package/test/conformance/expected/lists/extra_head_and_rest_improper.pl +1 -0
  996. package/test/conformance/expected/lists/extra_last_singleton.pl +1 -0
  997. package/test/conformance/expected/lists/extra_length_improper_fails.pl +0 -0
  998. package/test/conformance/expected/lists/extra_list_to_set_stable_order.pl +1 -0
  999. package/test/conformance/expected/lists/extra_member_repeated_nested.pl +2 -0
  1000. package/test/conformance/expected/lists/extra_not_member_compound_fails.pl +0 -0
  1001. package/test/conformance/expected/lists/extra_not_member_compound_success.pl +1 -0
  1002. package/test/conformance/expected/lists/extra_nth0_duplicate_indexes.pl +2 -0
  1003. package/test/conformance/expected/lists/extra_reverse_nested_terms.pl +1 -0
  1004. package/test/conformance/expected/lists/extra_select_structured_duplicate.pl +2 -0
  1005. package/test/conformance/expected/lists/extra_slice_end.pl +1 -0
  1006. package/test/conformance/expected/lists/extra_sort_iri_atoms.pl +1 -0
  1007. package/test/conformance/expected/lists/extra_take_all.pl +1 -0
  1008. package/test/conformance/expected/lists/head_rest_last.pl +3 -0
  1009. package/test/conformance/expected/lists/improper_list_readback.pl +1 -0
  1010. package/test/conformance/expected/lists/length_empty_and_nested.pl +2 -0
  1011. package/test/conformance/expected/lists/list_to_set_structural_duplicates.pl +1 -0
  1012. package/test/conformance/expected/lists/list_with_iri_atoms.pl +1 -0
  1013. package/test/conformance/expected/lists/min_list_empty_fails.pl +1 -0
  1014. package/test/conformance/expected/lists/nth0_known_value.pl +1 -0
  1015. package/test/conformance/expected/lists/nth0_out_of_range_fails.pl +1 -0
  1016. package/test/conformance/expected/lists/reverse_empty.pl +1 -0
  1017. package/test/conformance/expected/lists/select_all_occurrences.pl +3 -0
  1018. package/test/conformance/expected/lists/set_nth0_middle.pl +1 -0
  1019. package/test/conformance/expected/lists/slice_middle.pl +0 -0
  1020. package/test/conformance/expected/lists/slice_out_of_range_fails.pl +1 -0
  1021. package/test/conformance/expected/lists/sort_structured_terms.pl +1 -0
  1022. package/test/conformance/expected/lists/sum_list_empty_zero.pl +1 -0
  1023. package/test/conformance/expected/lists/sum_min_max_list.pl +3 -0
  1024. package/test/conformance/expected/lists/take_zero_and_drop_all.pl +2 -0
  1025. package/test/conformance/expected/materialize/027_default_derived_output.pl +3 -0
  1026. package/test/conformance/expected/materialize/028_materialize_focus.pl +1 -0
  1027. package/test/conformance/expected/materialize/053_materialize_excludes_source_fact.pl +1 -0
  1028. package/test/conformance/expected/materialize/099_materialize_multiple_arities.pl +4 -0
  1029. package/test/conformance/expected/materialize/arity_specific_outputs.pl +0 -0
  1030. package/test/conformance/expected/materialize/extra_materialize_derived_only_with_same_source.pl +1 -0
  1031. package/test/conformance/expected/materialize/extra_materialize_selects_arity.pl +0 -0
  1032. package/test/conformance/expected/materialize/source_facts_suppressed.pl +1 -0
  1033. package/test/conformance/expected/negation/033_negation_once_generators.pl +2 -0
  1034. package/test/conformance/expected/negation/042_negation_filter.pl +2 -0
  1035. package/test/conformance/expected/negation/050_not_member_filter.pl +1 -0
  1036. package/test/conformance/expected/negation/extra_not_with_bound_fails.pl +0 -0
  1037. package/test/conformance/expected/negation/extra_not_with_bound_success.pl +1 -0
  1038. package/test/conformance/expected/negation/not_known_goal_fails.pl +0 -0
  1039. package/test/conformance/expected/negation/not_unknown_goal_succeeds.pl +1 -0
  1040. package/test/conformance/expected/negation/stratified_negation_answers.pl +1 -0
  1041. package/test/conformance/expected/rules/001_fact_output.pl +1 -0
  1042. package/test/conformance/expected/rules/002_rule_recursion.pl +2 -0
  1043. package/test/conformance/expected/rules/011_predicate_arity.pl +2 -0
  1044. package/test/conformance/expected/rules/013_multiple_clauses_order.pl +2 -0
  1045. package/test/conformance/expected/rules/017_three_step_recursion.pl +3 -0
  1046. package/test/conformance/expected/rules/022_rule_head_structure.pl +2 -0
  1047. package/test/conformance/expected/rules/077_recursive_path_with_lists.pl +3 -0
  1048. package/test/conformance/expected/rules/078_mutual_recursion_with_arithmetic.pl +7 -0
  1049. package/test/conformance/expected/rules/extra_left_to_right_multiple_bindings.pl +2 -0
  1050. package/test/conformance/expected/rules/extra_structured_head_rule.pl +1 -0
  1051. package/test/conformance/expected/rules/left_to_right_body_binding.pl +1 -0
  1052. package/test/conformance/expected/rules/transitive_rule_three_edges.pl +6 -0
  1053. package/test/conformance/expected/strings/023_quoted_escapes_readback.pl +2 -0
  1054. package/test/conformance/expected/strings/030_strings_and_atoms.pl +2 -0
  1055. package/test/conformance/expected/strings/055_string_matching_filters.pl +2 -0
  1056. package/test/conformance/expected/strings/056_string_and_atom_concat.pl +1 -0
  1057. package/test/conformance/expected/strings/064_reusable_string_builtins.pl +10 -0
  1058. package/test/conformance/expected/strings/070_matches_named_captures.pl +1 -0
  1059. package/test/conformance/expected/strings/071_string_edges.pl +8 -0
  1060. package/test/conformance/expected/strings/072_string_conversions.pl +8 -0
  1061. package/test/conformance/expected/strings/089_string_split_join_pipeline.pl +4 -0
  1062. package/test/conformance/expected/strings/090_string_substring_replace_edges.pl +7 -0
  1063. package/test/conformance/expected/strings/091_string_case_and_trim.pl +5 -0
  1064. package/test/conformance/expected/strings/092_scalar_string_conversions.pl +7 -0
  1065. package/test/conformance/expected/strings/093_regex_named_captures_context.pl +5 -0
  1066. package/test/conformance/expected/strings/atom_string_from_string.pl +1 -0
  1067. package/test/conformance/expected/strings/casefold_atoms.pl +2 -0
  1068. package/test/conformance/expected/strings/contains_empty_needle.pl +1 -0
  1069. package/test/conformance/expected/strings/extra_atom_string_number_input.pl +1 -0
  1070. package/test/conformance/expected/strings/extra_join_empty_list.pl +1 -0
  1071. package/test/conformance/expected/strings/extra_join_iri_and_atom.pl +1 -0
  1072. package/test/conformance/expected/strings/extra_lowercase_iri_atom.pl +1 -0
  1073. package/test/conformance/expected/strings/extra_matches_invalid_pattern_fails.pl +0 -0
  1074. package/test/conformance/expected/strings/extra_named_regex_optional_missing.pl +1 -0
  1075. package/test/conformance/expected/strings/extra_number_string_atom_input.pl +1 -0
  1076. package/test/conformance/expected/strings/extra_replace_multiple.pl +1 -0
  1077. package/test/conformance/expected/strings/extra_split_empty_separator.pl +1 -0
  1078. package/test/conformance/expected/strings/extra_substring_last_char.pl +1 -0
  1079. package/test/conformance/expected/strings/extra_term_string_iri_list.pl +1 -0
  1080. package/test/conformance/expected/strings/extra_uppercase_mixed_string.pl +1 -0
  1081. package/test/conformance/expected/strings/join_mixed_scalars.pl +1 -0
  1082. package/test/conformance/expected/strings/matches_simple_alternation.pl +1 -0
  1083. package/test/conformance/expected/strings/named_regex_two_groups.pl +1 -0
  1084. package/test/conformance/expected/strings/not_matches_simple_pattern.pl +1 -0
  1085. package/test/conformance/expected/strings/number_string_from_string.pl +1 -0
  1086. package/test/conformance/expected/strings/number_string_rejects_non_numeric.pl +1 -0
  1087. package/test/conformance/expected/strings/replace_empty_search_no_change.pl +1 -0
  1088. package/test/conformance/expected/strings/split_without_separator_match.pl +1 -0
  1089. package/test/conformance/expected/strings/substring_out_of_range_fails.pl +1 -0
  1090. package/test/conformance/expected/strings/substring_zero_count.pl +1 -0
  1091. package/test/conformance/expected/strings/term_string_nested_term.pl +1 -0
  1092. package/test/conformance/expected/strings/trim_tabs_and_spaces.pl +1 -0
  1093. package/test/conformance/expected/syntax/004_conjunction_and_parentheses.pl +1 -0
  1094. package/test/conformance/expected/syntax/006_comma_formula_data.pl +1 -0
  1095. package/test/conformance/expected/syntax/009_comments_and_whitespace.pl +2 -0
  1096. package/test/conformance/expected/syntax/019_parenthesized_three_conjuncts.pl +1 -0
  1097. package/test/conformance/expected/syntax/025_body_parentheses_with_formula_data.pl +1 -0
  1098. package/test/conformance/expected/syntax/comments_inside_program.pl +0 -0
  1099. package/test/conformance/expected/syntax/extra_comments_after_terms.pl +0 -0
  1100. package/test/conformance/expected/syntax/extra_nested_parenthesized_body.pl +1 -0
  1101. package/test/conformance/expected/syntax/parenthesized_query_style_body.pl +1 -0
  1102. package/test/conformance/expected/syntax/quoted_atom_with_newline_escape.pl +0 -0
  1103. package/test/conformance/expected/syntax/string_with_tab_escape.pl +0 -0
  1104. package/test/conformance/expected/table/038_table_declaration.pl +2 -0
  1105. package/test/conformance/expected/table/102_table_declaration.pl +6 -0
  1106. package/test/conformance/expected/table/extra_table_bound_cycle.pl +2 -0
  1107. package/test/conformance/expected/table/extra_table_open_call_fallback.pl +2 -0
  1108. package/test/conformance/expected/table/table_does_not_change_answers.pl +3 -0
  1109. package/test/conformance/expected/table/tabled_left_recursion_path.pl +1 -0
  1110. package/test/conformance/expected/terms/003_terms_and_readback.pl +13 -0
  1111. package/test/conformance/expected/terms/065_reusable_term_control_builtins.pl +6 -0
  1112. package/test/conformance/expected/terms/073_term_introspection_edges.pl +9 -0
  1113. package/test/conformance/expected/terms/095_term_introspection_roundtrip.pl +6 -0
  1114. package/test/conformance/expected/terms/096_functor_scalar_edges.pl +6 -0
  1115. package/test/conformance/expected/terms/arg_first_and_second.pl +2 -0
  1116. package/test/conformance/expected/terms/arg_zero_fails.pl +1 -0
  1117. package/test/conformance/expected/terms/compound_name_arguments_atom_zero_args.pl +1 -0
  1118. package/test/conformance/expected/terms/compound_name_arguments_bad_args_fail.pl +1 -0
  1119. package/test/conformance/expected/terms/compound_name_arguments_builds_atom_from_empty_args.pl +1 -0
  1120. package/test/conformance/expected/terms/compound_name_arguments_builds_compound.pl +1 -0
  1121. package/test/conformance/expected/terms/compound_name_arguments_iri_name.pl +1 -0
  1122. package/test/conformance/expected/terms/extra_arg_atom_fails.pl +0 -0
  1123. package/test/conformance/expected/terms/extra_arg_first_last.pl +1 -0
  1124. package/test/conformance/expected/terms/extra_arg_zero_fails.pl +0 -0
  1125. package/test/conformance/expected/terms/extra_compound_name_arguments_bad_args_fails.pl +0 -0
  1126. package/test/conformance/expected/terms/extra_compound_name_arguments_construct_atom_zero.pl +1 -0
  1127. package/test/conformance/expected/terms/extra_compound_name_arguments_construct_iri.pl +1 -0
  1128. package/test/conformance/expected/terms/extra_compound_name_arguments_decompose_list.pl +1 -0
  1129. package/test/conformance/expected/terms/extra_functor_list_cons.pl +1 -0
  1130. package/test/conformance/expected/terms/extra_functor_number_scalar.pl +1 -0
  1131. package/test/conformance/expected/terms/extra_functor_string_scalar.pl +1 -0
  1132. package/test/conformance/expected/terms/functor_atom_arity_zero.pl +1 -0
  1133. package/test/conformance/expected/terms/functor_number_and_string.pl +2 -0
  1134. package/test/conformance/expected/terms/herbrand_witness_different_inputs_distinct.pl +1 -0
  1135. package/test/conformance/expected/terms/herbrand_witness_one_input.pl +2 -0
  1136. package/test/conformance/expected/terms/herbrand_witness_same_inputs_same_term.pl +1 -0
  1137. package/test/conformance/expected/terms/herbrand_witness_two_inputs.pl +2 -0
  1138. package/test/conformance/expected/terms/term_string_readback_iri_list.pl +1 -0
  1139. package/test/conformance/expected/unification/012_nested_compound_unification.pl +2 -0
  1140. package/test/conformance/expected/unification/021_repeated_variable_head.pl +2 -0
  1141. package/test/conformance/expected/unification/034_equality_and_inequality.pl +4 -0
  1142. package/test/conformance/expected/unification/compound_arity_mismatch_fails.pl +1 -0
  1143. package/test/conformance/expected/unification/extra_eq_iri_and_quoted_atom.pl +0 -0
  1144. package/test/conformance/expected/unification/extra_eq_list_tail_binding.pl +1 -0
  1145. package/test/conformance/expected/unification/extra_eq_nested_repeated_fails.pl +0 -0
  1146. package/test/conformance/expected/unification/extra_eq_nested_repeated_success.pl +1 -0
  1147. package/test/conformance/expected/unification/extra_eq_scalar_number_atom.pl +1 -0
  1148. package/test/conformance/expected/unification/extra_eq_scalar_string_number.pl +1 -0
  1149. package/test/conformance/expected/unification/extra_neq_compound_arity_mismatch.pl +1 -0
  1150. package/test/conformance/expected/unification/extra_neq_scalar_same_lexical_fails.pl +0 -0
  1151. package/test/conformance/expected/unification/extra_variable_clause_locality.pl +2 -0
  1152. package/test/conformance/expected/unification/list_tail_binding.pl +1 -0
  1153. package/test/conformance/expected/unification/nested_repeated_variable.pl +1 -0
  1154. package/test/conformance/expected/unification/scalar_cross_type_same_lexical_value.pl +2 -0
  1155. package/test/conformance/expected/variables/007_anonymous_variables.pl +1 -0
  1156. package/test/conformance/expected/variables/010_variable_scope_and_reuse.pl +2 -0
  1157. package/test/conformance/expected/variables/026_question_underscore_named_variable_reuse.pl +1 -0
  1158. package/test/conformance/expected/variables/101_question_mark_variables.pl +3 -0
  1159. package/test/conformance/expected/variables/anonymous_in_two_goals.pl +1 -0
  1160. package/test/conformance/expected/variables/clause_local_variable_names.pl +2 -0
  1161. package/test/conformance/expected/variables/extra_anonymous_not_reused.pl +1 -0
  1162. package/test/conformance/expected/variables/extra_named_variable_reused.pl +1 -0
  1163. package/test/conformance/expected/variables/extra_question_underscore_named_distinct.pl +1 -0
  1164. package/test/conformance/expected/variables/extra_question_uppercase_named.pl +1 -0
  1165. package/test/conformance/expected/variables/question_anonymous_not_reused.pl +4 -0
  1166. package/test/conformance/expected/variables/question_underscore_named_reuse.pl +1 -0
  1167. package/test/conformance/expected/variables/question_uppercase_variable.pl +1 -0
  1168. package/test/conformance/expected/variables/question_variable_digits_and_underscore.pl +1 -0
  1169. package/test/conformance/expected/variables/question_variable_uppercase_name.pl +1 -0
  1170. package/test/conformance/expected/variables/variable_scope_per_clause.pl +2 -0
  1171. package/test/conformance/expected-errors/atoms/extra_angle_iri_backslash_rejected.txt +1 -0
  1172. package/test/conformance/expected-errors/atoms/extra_angle_iri_pipe_rejected.txt +1 -0
  1173. package/test/conformance/expected-errors/atoms/extra_angle_iri_quote_rejected.txt +1 -0
  1174. package/test/conformance/expected-errors/atoms/hash_comment_not_atom_at_line_start.txt +1 -0
  1175. package/test/conformance/expected-errors/atoms/relative_angle_name_rejected.txt +1 -0
  1176. package/test/conformance/expected-errors/atoms/space_in_angle_iri_rejected.txt +1 -0
  1177. package/test/conformance/expected-errors/atoms/unclosed_angle_iri_rejected.txt +1 -0
  1178. package/test/conformance/expected-errors/atoms/zero_arity_compound_rejected.txt +1 -0
  1179. package/test/conformance/expected-errors/lists/extra_missing_tail_after_bar.txt +1 -0
  1180. package/test/conformance/expected-errors/lists/extra_unclosed_list_tail.txt +1 -0
  1181. package/test/conformance/expected-errors/lists/missing_list_tail.txt +1 -0
  1182. package/test/conformance/expected-errors/rules/extra_empty_head_with_body.txt +1 -0
  1183. package/test/conformance/expected-errors/rules/extra_rule_without_body.txt +1 -0
  1184. package/test/conformance/expected-errors/rules/rule_head_cannot_be_empty_parentheses.txt +1 -0
  1185. package/test/conformance/expected-errors/syntax/angle_iri_with_space_rejected.txt +1 -0
  1186. package/test/conformance/expected-errors/syntax/bad_question_digit_variable.txt +1 -0
  1187. package/test/conformance/expected-errors/syntax/bad_question_variable.txt +1 -0
  1188. package/test/conformance/expected-errors/syntax/colon_name_rejected.txt +1 -0
  1189. package/test/conformance/expected-errors/syntax/empty_body_after_rule_marker.txt +1 -0
  1190. package/test/conformance/expected-errors/syntax/empty_compound_nested.txt +1 -0
  1191. package/test/conformance/expected-errors/syntax/extra_bad_backtick_character.txt +1 -0
  1192. package/test/conformance/expected-errors/syntax/extra_bad_iri_empty_body.txt +1 -0
  1193. package/test/conformance/expected-errors/syntax/extra_bad_list_double_comma.txt +1 -0
  1194. package/test/conformance/expected-errors/syntax/extra_bad_list_double_tail.txt +1 -0
  1195. package/test/conformance/expected-errors/syntax/extra_bad_number_two_decimal_points.txt +1 -0
  1196. package/test/conformance/expected-errors/syntax/extra_double_period_rejected.txt +1 -0
  1197. package/test/conformance/expected-errors/syntax/extra_extra_closing_paren.txt +1 -0
  1198. package/test/conformance/expected-errors/syntax/extra_missing_closing_rule_body.txt +1 -0
  1199. package/test/conformance/expected-errors/syntax/extra_missing_head_rejected.txt +1 -0
  1200. package/test/conformance/expected-errors/syntax/missing_final_dot_rejected.txt +1 -0
  1201. package/test/conformance/expected-errors/syntax/missing_period.txt +1 -0
  1202. package/test/conformance/expected-errors/syntax/relative_angle_iri_rejected.txt +1 -0
  1203. package/test/conformance/expected-errors/syntax/trailing_comma_in_body.txt +1 -0
  1204. package/test/conformance/expected-errors/syntax/unclosed_compound.txt +1 -0
  1205. package/test/conformance/expected-errors/syntax/unclosed_list.txt +1 -0
  1206. package/test/conformance/expected-errors/syntax/unclosed_list_rejected.txt +1 -0
  1207. package/test/conformance/expected-errors/syntax/unclosed_quoted_atom.txt +1 -0
  1208. package/test/conformance/expected-errors/syntax/unclosed_quoted_atom_rejected.txt +1 -0
  1209. package/test/conformance/expected-errors/syntax/unclosed_string.txt +1 -0
  1210. package/test/conformance/expected-errors/syntax/unquoted_colon_predicate.txt +1 -0
  1211. package/test/conformance/expected-errors/syntax/unquoted_dotted_predicate.txt +1 -0
  1212. package/test/conformance/expected-errors/syntax/uppercase_predicate_rejected.txt +1 -0
  1213. package/test/conformance/expected-errors/terms/extra_empty_nested_compound.txt +1 -0
  1214. package/test/conformance/expected-errors/terms/extra_empty_top_level_compound.txt +1 -0
  1215. package/test/conformance/expected-errors/terms/zero_arity_compound_nested_rejected.txt +1 -0
  1216. package/test/conformance/expected-errors/variables/bare_underscore_in_list_rejected.txt +1 -0
  1217. package/test/conformance/expected-errors/variables/bare_underscore_name_in_compound_rejected.txt +1 -0
  1218. package/test/conformance/expected-errors/variables/bare_underscore_rejected.txt +1 -0
  1219. package/test/conformance/expected-errors/variables/extra_bare_underscore_in_rule_head.txt +1 -0
  1220. package/test/conformance/expected-errors/variables/extra_question_dash_variable.txt +1 -0
  1221. package/test/conformance/expected-errors/variables/extra_uppercase_in_list.txt +1 -0
  1222. package/test/conformance/expected-errors/variables/question_digit_rejected.txt +1 -0
  1223. package/test/conformance/expected-errors/variables/question_dot_rejected.txt +1 -0
  1224. package/test/conformance/expected-errors/variables/underscore_named_rejected.txt +1 -0
  1225. package/test/conformance/expected-errors/variables/uppercase_in_body_rejected.txt +1 -0
  1226. package/test/conformance/expected-errors/variables/uppercase_variable_rejected.txt +1 -0
  1227. package/test/conformance/expected-proofs/proofs/bindings_nested_term.pl +16 -0
  1228. package/test/conformance/expected-proofs/proofs/builtin_numeric.pl +16 -0
  1229. package/test/conformance/expected-proofs/proofs/conjunction_order.pl +19 -0
  1230. package/test/conformance/expected-proofs/proofs/extra_aggregate_min.pl +16 -0
  1231. package/test/conformance/expected-proofs/proofs/extra_compound_name_arguments.pl +16 -0
  1232. package/test/conformance/expected-proofs/proofs/extra_eq_builtin.pl +16 -0
  1233. package/test/conformance/expected-proofs/proofs/extra_findall_builtin.pl +16 -0
  1234. package/test/conformance/expected-proofs/proofs/extra_forall_builtin.pl +15 -0
  1235. package/test/conformance/expected-proofs/proofs/extra_holds_parts.pl +32 -0
  1236. package/test/conformance/expected-proofs/proofs/extra_iri_join.pl +16 -0
  1237. package/test/conformance/expected-proofs/proofs/extra_negation_success.pl +15 -0
  1238. package/test/conformance/expected-proofs/proofs/extra_nested_list_binding.pl +16 -0
  1239. package/test/conformance/expected-proofs/proofs/extra_once_member.pl +22 -0
  1240. package/test/conformance/expected-proofs/proofs/extra_recursive_path.pl +59 -0
  1241. package/test/conformance/expected-proofs/proofs/extra_table_path_bound.pl +57 -0
  1242. package/test/conformance/expected-proofs/proofs/herbrand_witness.pl +16 -0
  1243. package/test/conformance/expected-proofs/proofs/iri_atom.pl +16 -0
  1244. package/test/conformance/expected-proofs/proofs/list_builtin.pl +20 -0
  1245. package/test/conformance/expected-proofs/proofs/once_child.pl +22 -0
  1246. package/test/conformance/expected-proofs/proofs/rule_fact.pl +16 -0
  1247. package/test/conformance/expected-proofs/proofs/table_recursive.pl +59 -0
  1248. package/test/conformance/expected-warnings/negation/extra_stratified_multiple_negations_quiet.pl +1 -0
  1249. package/test/conformance/expected-warnings/negation/extra_stratified_multiple_negations_quiet.txt +0 -0
  1250. package/test/conformance/expected-warnings/negation/extra_stratified_negation_with_table_quiet.pl +1 -0
  1251. package/test/conformance/expected-warnings/negation/extra_stratified_negation_with_table_quiet.txt +0 -0
  1252. package/test/conformance/expected-warnings/negation/extra_unstratified_indirect_self_with_fact.pl +0 -0
  1253. package/test/conformance/expected-warnings/negation/extra_unstratified_indirect_self_with_fact.txt +2 -0
  1254. package/test/conformance/expected-warnings/negation/extra_unstratified_positive_negative_loop.pl +0 -0
  1255. package/test/conformance/expected-warnings/negation/extra_unstratified_positive_negative_loop.txt +2 -0
  1256. package/test/conformance/expected-warnings/negation/extra_unstratified_three_cycle_all_negative.pl +0 -0
  1257. package/test/conformance/expected-warnings/negation/extra_unstratified_three_cycle_all_negative.txt +4 -0
  1258. package/test/conformance/expected-warnings/negation/extra_warning_preserves_empty_stdout.pl +0 -0
  1259. package/test/conformance/expected-warnings/negation/extra_warning_preserves_empty_stdout.txt +3 -0
  1260. package/test/conformance/expected-warnings/negation/negative_unknown_group_quiet.pl +1 -0
  1261. package/test/conformance/expected-warnings/negation/negative_unknown_group_quiet.txt +0 -0
  1262. package/test/conformance/expected-warnings/negation/no_negation_quiet.pl +1 -0
  1263. package/test/conformance/expected-warnings/negation/no_negation_quiet.txt +0 -0
  1264. package/test/conformance/expected-warnings/negation/stratified_negative_unknown_after_positive_quiet.pl +1 -0
  1265. package/test/conformance/expected-warnings/negation/stratified_negative_unknown_after_positive_quiet.txt +0 -0
  1266. package/test/conformance/expected-warnings/negation/stratified_quiet.pl +1 -0
  1267. package/test/conformance/expected-warnings/negation/stratified_quiet.txt +0 -0
  1268. package/test/conformance/expected-warnings/negation/stratified_two_level_quiet.pl +1 -0
  1269. package/test/conformance/expected-warnings/negation/stratified_two_level_quiet.txt +0 -0
  1270. package/test/conformance/expected-warnings/negation/unstratified_mutual.pl +0 -0
  1271. package/test/conformance/expected-warnings/negation/unstratified_mutual.txt +3 -0
  1272. package/test/conformance/expected-warnings/negation/unstratified_positive_prefix.pl +0 -0
  1273. package/test/conformance/expected-warnings/negation/unstratified_positive_prefix.txt +2 -0
  1274. package/test/conformance/expected-warnings/negation/unstratified_self.pl +0 -0
  1275. package/test/conformance/expected-warnings/negation/unstratified_self.txt +2 -0
  1276. package/test/conformance/expected-warnings/negation/unstratified_three_step.pl +1 -0
  1277. package/test/conformance/expected-warnings/negation/unstratified_three_step.txt +2 -0
  1278. package/test/conformance/expected-warnings/negation/unstratified_two_arity_cycle.pl +0 -0
  1279. package/test/conformance/expected-warnings/negation/unstratified_two_arity_cycle.txt +3 -0
  1280. package/test/conformance/expected-warnings/negation/unstratified_two_independent_cycles.pl +0 -0
  1281. package/test/conformance/expected-warnings/negation/unstratified_two_independent_cycles.txt +5 -0
  1282. package/test/conformance/expected-warnings/negation/unstratified_with_iri_predicates.pl +0 -0
  1283. package/test/conformance/expected-warnings/negation/unstratified_with_iri_predicates.txt +3 -0
  1284. package/test/conformance/expected-warnings/negation/warning_preserves_multiple_stdout_answers.pl +0 -0
  1285. package/test/conformance/expected-warnings/negation/warning_preserves_multiple_stdout_answers.txt +3 -0
  1286. package/test/conformance/proofs/proofs/bindings_nested_term.pl +4 -0
  1287. package/test/conformance/proofs/proofs/builtin_numeric.pl +3 -0
  1288. package/test/conformance/proofs/proofs/conjunction_order.pl +5 -0
  1289. package/test/conformance/proofs/proofs/extra_aggregate_min.pl +4 -0
  1290. package/test/conformance/proofs/proofs/extra_compound_name_arguments.pl +2 -0
  1291. package/test/conformance/proofs/proofs/extra_eq_builtin.pl +2 -0
  1292. package/test/conformance/proofs/proofs/extra_findall_builtin.pl +4 -0
  1293. package/test/conformance/proofs/proofs/extra_forall_builtin.pl +2 -0
  1294. package/test/conformance/proofs/proofs/extra_holds_parts.pl +2 -0
  1295. package/test/conformance/proofs/proofs/extra_iri_join.pl +2 -0
  1296. package/test/conformance/proofs/proofs/extra_negation_success.pl +3 -0
  1297. package/test/conformance/proofs/proofs/extra_nested_list_binding.pl +2 -0
  1298. package/test/conformance/proofs/proofs/extra_once_member.pl +2 -0
  1299. package/test/conformance/proofs/proofs/extra_recursive_path.pl +5 -0
  1300. package/test/conformance/proofs/proofs/extra_table_path_bound.pl +7 -0
  1301. package/test/conformance/proofs/proofs/herbrand_witness.pl +3 -0
  1302. package/test/conformance/proofs/proofs/iri_atom.pl +4 -0
  1303. package/test/conformance/proofs/proofs/list_builtin.pl +3 -0
  1304. package/test/conformance/proofs/proofs/once_child.pl +5 -0
  1305. package/test/conformance/proofs/proofs/rule_fact.pl +4 -0
  1306. package/test/conformance/proofs/proofs/table_recursive.pl +7 -0
  1307. package/test/conformance/warnings/negation/extra_stratified_multiple_negations_quiet.pl +4 -0
  1308. package/test/conformance/warnings/negation/extra_stratified_negation_with_table_quiet.pl +6 -0
  1309. package/test/conformance/warnings/negation/extra_unstratified_indirect_self_with_fact.pl +5 -0
  1310. package/test/conformance/warnings/negation/extra_unstratified_positive_negative_loop.pl +5 -0
  1311. package/test/conformance/warnings/negation/extra_unstratified_three_cycle_all_negative.pl +5 -0
  1312. package/test/conformance/warnings/negation/extra_warning_preserves_empty_stdout.pl +3 -0
  1313. package/test/conformance/warnings/negation/negative_unknown_group_quiet.pl +2 -0
  1314. package/test/conformance/warnings/negation/no_negation_quiet.pl +3 -0
  1315. package/test/conformance/warnings/negation/stratified_negative_unknown_after_positive_quiet.pl +3 -0
  1316. package/test/conformance/warnings/negation/stratified_quiet.pl +4 -0
  1317. package/test/conformance/warnings/negation/stratified_two_level_quiet.pl +5 -0
  1318. package/test/conformance/warnings/negation/unstratified_mutual.pl +5 -0
  1319. package/test/conformance/warnings/negation/unstratified_positive_prefix.pl +5 -0
  1320. package/test/conformance/warnings/negation/unstratified_self.pl +4 -0
  1321. package/test/conformance/warnings/negation/unstratified_three_step.pl +6 -0
  1322. package/test/conformance/warnings/negation/unstratified_two_arity_cycle.pl +4 -0
  1323. package/test/conformance/warnings/negation/unstratified_two_independent_cycles.pl +6 -0
  1324. package/test/conformance/warnings/negation/unstratified_with_iri_predicates.pl +4 -0
  1325. package/test/conformance/warnings/negation/warning_preserves_multiple_stdout_answers.pl +5 -0
  1326. package/test/run-all.mjs +20 -0
  1327. package/test/run-conformance-report.mjs +120 -0
  1328. package/test/run-conformance.mjs +189 -0
  1329. package/test/run-examples.mjs +155 -0
  1330. package/test/run-regression.mjs +1251 -0
  1331. package/test/test-style.mjs +94 -0
@@ -0,0 +1,3076 @@
1
+ % =============================================================================================================================
2
+ % Deep Taxonomy - depth 1000 - expanded N3-style seam
3
+ %
4
+ % Adjacent rules mirror the Eyeling N3 deep-taxonomy chain. Each step derives
5
+ % the next taxonomy class together with two side labels.
6
+ % =============================================================================================================================
7
+
8
+ % Output declarations: materialize/2 selects the relations written to this example's golden output.
9
+ materialize(is, 2).
10
+ materialize(answer, 2).
11
+ materialize(reason, 2).
12
+ materialize(result, 2).
13
+ materialize(checkPassed, 2).
14
+ materialize(arc, 2).
15
+
16
+ % Program structure: facts set up the scenario, and rules derive the materialized conclusions.
17
+ % fact
18
+
19
+ a(ind, n0).
20
+
21
+ % terminal rule
22
+
23
+ % Derivation rules: each rule below contributes one logical step toward the displayed results.
24
+ is(test, true) :- once(a(ind, a2)).
25
+ a(X, a2) :- a(X, n1000).
26
+
27
+ % Adjacent N3-style taxonomy rules.
28
+
29
+ a(X, n1) :- a(X, n0).
30
+ a(X, i1) :- a(X, n0).
31
+ a(X, j1) :- a(X, n0).
32
+ a(X, n2) :- a(X, n1).
33
+ a(X, i2) :- a(X, n1).
34
+ a(X, j2) :- a(X, n1).
35
+ a(X, n3) :- a(X, n2).
36
+ a(X, i3) :- a(X, n2).
37
+ a(X, j3) :- a(X, n2).
38
+ a(X, n4) :- a(X, n3).
39
+ a(X, i4) :- a(X, n3).
40
+ a(X, j4) :- a(X, n3).
41
+ a(X, n5) :- a(X, n4).
42
+ a(X, i5) :- a(X, n4).
43
+ a(X, j5) :- a(X, n4).
44
+ a(X, n6) :- a(X, n5).
45
+ a(X, i6) :- a(X, n5).
46
+ a(X, j6) :- a(X, n5).
47
+ a(X, n7) :- a(X, n6).
48
+ a(X, i7) :- a(X, n6).
49
+ a(X, j7) :- a(X, n6).
50
+ a(X, n8) :- a(X, n7).
51
+ a(X, i8) :- a(X, n7).
52
+ a(X, j8) :- a(X, n7).
53
+ a(X, n9) :- a(X, n8).
54
+ a(X, i9) :- a(X, n8).
55
+ a(X, j9) :- a(X, n8).
56
+ a(X, n10) :- a(X, n9).
57
+ a(X, i10) :- a(X, n9).
58
+ a(X, j10) :- a(X, n9).
59
+ a(X, n11) :- a(X, n10).
60
+ a(X, i11) :- a(X, n10).
61
+ a(X, j11) :- a(X, n10).
62
+ a(X, n12) :- a(X, n11).
63
+ a(X, i12) :- a(X, n11).
64
+ a(X, j12) :- a(X, n11).
65
+ a(X, n13) :- a(X, n12).
66
+ a(X, i13) :- a(X, n12).
67
+ a(X, j13) :- a(X, n12).
68
+ a(X, n14) :- a(X, n13).
69
+ a(X, i14) :- a(X, n13).
70
+ a(X, j14) :- a(X, n13).
71
+ a(X, n15) :- a(X, n14).
72
+ a(X, i15) :- a(X, n14).
73
+ a(X, j15) :- a(X, n14).
74
+ a(X, n16) :- a(X, n15).
75
+ a(X, i16) :- a(X, n15).
76
+ a(X, j16) :- a(X, n15).
77
+ a(X, n17) :- a(X, n16).
78
+ a(X, i17) :- a(X, n16).
79
+ a(X, j17) :- a(X, n16).
80
+ a(X, n18) :- a(X, n17).
81
+ a(X, i18) :- a(X, n17).
82
+ a(X, j18) :- a(X, n17).
83
+ a(X, n19) :- a(X, n18).
84
+ a(X, i19) :- a(X, n18).
85
+ a(X, j19) :- a(X, n18).
86
+ a(X, n20) :- a(X, n19).
87
+ a(X, i20) :- a(X, n19).
88
+ a(X, j20) :- a(X, n19).
89
+ a(X, n21) :- a(X, n20).
90
+ a(X, i21) :- a(X, n20).
91
+ a(X, j21) :- a(X, n20).
92
+ a(X, n22) :- a(X, n21).
93
+ a(X, i22) :- a(X, n21).
94
+ a(X, j22) :- a(X, n21).
95
+ a(X, n23) :- a(X, n22).
96
+ a(X, i23) :- a(X, n22).
97
+ a(X, j23) :- a(X, n22).
98
+ a(X, n24) :- a(X, n23).
99
+ a(X, i24) :- a(X, n23).
100
+ a(X, j24) :- a(X, n23).
101
+ a(X, n25) :- a(X, n24).
102
+ a(X, i25) :- a(X, n24).
103
+ a(X, j25) :- a(X, n24).
104
+ a(X, n26) :- a(X, n25).
105
+ a(X, i26) :- a(X, n25).
106
+ a(X, j26) :- a(X, n25).
107
+ a(X, n27) :- a(X, n26).
108
+ a(X, i27) :- a(X, n26).
109
+ a(X, j27) :- a(X, n26).
110
+ a(X, n28) :- a(X, n27).
111
+ a(X, i28) :- a(X, n27).
112
+ a(X, j28) :- a(X, n27).
113
+ a(X, n29) :- a(X, n28).
114
+ a(X, i29) :- a(X, n28).
115
+ a(X, j29) :- a(X, n28).
116
+ a(X, n30) :- a(X, n29).
117
+ a(X, i30) :- a(X, n29).
118
+ a(X, j30) :- a(X, n29).
119
+ a(X, n31) :- a(X, n30).
120
+ a(X, i31) :- a(X, n30).
121
+ a(X, j31) :- a(X, n30).
122
+ a(X, n32) :- a(X, n31).
123
+ a(X, i32) :- a(X, n31).
124
+ a(X, j32) :- a(X, n31).
125
+ a(X, n33) :- a(X, n32).
126
+ a(X, i33) :- a(X, n32).
127
+ a(X, j33) :- a(X, n32).
128
+ a(X, n34) :- a(X, n33).
129
+ a(X, i34) :- a(X, n33).
130
+ a(X, j34) :- a(X, n33).
131
+ a(X, n35) :- a(X, n34).
132
+ a(X, i35) :- a(X, n34).
133
+ a(X, j35) :- a(X, n34).
134
+ a(X, n36) :- a(X, n35).
135
+ a(X, i36) :- a(X, n35).
136
+ a(X, j36) :- a(X, n35).
137
+ a(X, n37) :- a(X, n36).
138
+ a(X, i37) :- a(X, n36).
139
+ a(X, j37) :- a(X, n36).
140
+ a(X, n38) :- a(X, n37).
141
+ a(X, i38) :- a(X, n37).
142
+ a(X, j38) :- a(X, n37).
143
+ a(X, n39) :- a(X, n38).
144
+ a(X, i39) :- a(X, n38).
145
+ a(X, j39) :- a(X, n38).
146
+ a(X, n40) :- a(X, n39).
147
+ a(X, i40) :- a(X, n39).
148
+ a(X, j40) :- a(X, n39).
149
+ a(X, n41) :- a(X, n40).
150
+ a(X, i41) :- a(X, n40).
151
+ a(X, j41) :- a(X, n40).
152
+ a(X, n42) :- a(X, n41).
153
+ a(X, i42) :- a(X, n41).
154
+ a(X, j42) :- a(X, n41).
155
+ a(X, n43) :- a(X, n42).
156
+ a(X, i43) :- a(X, n42).
157
+ a(X, j43) :- a(X, n42).
158
+ a(X, n44) :- a(X, n43).
159
+ a(X, i44) :- a(X, n43).
160
+ a(X, j44) :- a(X, n43).
161
+ a(X, n45) :- a(X, n44).
162
+ a(X, i45) :- a(X, n44).
163
+ a(X, j45) :- a(X, n44).
164
+ a(X, n46) :- a(X, n45).
165
+ a(X, i46) :- a(X, n45).
166
+ a(X, j46) :- a(X, n45).
167
+ a(X, n47) :- a(X, n46).
168
+ a(X, i47) :- a(X, n46).
169
+ a(X, j47) :- a(X, n46).
170
+ a(X, n48) :- a(X, n47).
171
+ a(X, i48) :- a(X, n47).
172
+ a(X, j48) :- a(X, n47).
173
+ a(X, n49) :- a(X, n48).
174
+ a(X, i49) :- a(X, n48).
175
+ a(X, j49) :- a(X, n48).
176
+ a(X, n50) :- a(X, n49).
177
+ a(X, i50) :- a(X, n49).
178
+ a(X, j50) :- a(X, n49).
179
+ a(X, n51) :- a(X, n50).
180
+ a(X, i51) :- a(X, n50).
181
+ a(X, j51) :- a(X, n50).
182
+ a(X, n52) :- a(X, n51).
183
+ a(X, i52) :- a(X, n51).
184
+ a(X, j52) :- a(X, n51).
185
+ a(X, n53) :- a(X, n52).
186
+ a(X, i53) :- a(X, n52).
187
+ a(X, j53) :- a(X, n52).
188
+ a(X, n54) :- a(X, n53).
189
+ a(X, i54) :- a(X, n53).
190
+ a(X, j54) :- a(X, n53).
191
+ a(X, n55) :- a(X, n54).
192
+ a(X, i55) :- a(X, n54).
193
+ a(X, j55) :- a(X, n54).
194
+ a(X, n56) :- a(X, n55).
195
+ a(X, i56) :- a(X, n55).
196
+ a(X, j56) :- a(X, n55).
197
+ a(X, n57) :- a(X, n56).
198
+ a(X, i57) :- a(X, n56).
199
+ a(X, j57) :- a(X, n56).
200
+ a(X, n58) :- a(X, n57).
201
+ a(X, i58) :- a(X, n57).
202
+ a(X, j58) :- a(X, n57).
203
+ a(X, n59) :- a(X, n58).
204
+ a(X, i59) :- a(X, n58).
205
+ a(X, j59) :- a(X, n58).
206
+ a(X, n60) :- a(X, n59).
207
+ a(X, i60) :- a(X, n59).
208
+ a(X, j60) :- a(X, n59).
209
+ a(X, n61) :- a(X, n60).
210
+ a(X, i61) :- a(X, n60).
211
+ a(X, j61) :- a(X, n60).
212
+ a(X, n62) :- a(X, n61).
213
+ a(X, i62) :- a(X, n61).
214
+ a(X, j62) :- a(X, n61).
215
+ a(X, n63) :- a(X, n62).
216
+ a(X, i63) :- a(X, n62).
217
+ a(X, j63) :- a(X, n62).
218
+ a(X, n64) :- a(X, n63).
219
+ a(X, i64) :- a(X, n63).
220
+ a(X, j64) :- a(X, n63).
221
+ a(X, n65) :- a(X, n64).
222
+ a(X, i65) :- a(X, n64).
223
+ a(X, j65) :- a(X, n64).
224
+ a(X, n66) :- a(X, n65).
225
+ a(X, i66) :- a(X, n65).
226
+ a(X, j66) :- a(X, n65).
227
+ a(X, n67) :- a(X, n66).
228
+ a(X, i67) :- a(X, n66).
229
+ a(X, j67) :- a(X, n66).
230
+ a(X, n68) :- a(X, n67).
231
+ a(X, i68) :- a(X, n67).
232
+ a(X, j68) :- a(X, n67).
233
+ a(X, n69) :- a(X, n68).
234
+ a(X, i69) :- a(X, n68).
235
+ a(X, j69) :- a(X, n68).
236
+ a(X, n70) :- a(X, n69).
237
+ a(X, i70) :- a(X, n69).
238
+ a(X, j70) :- a(X, n69).
239
+ a(X, n71) :- a(X, n70).
240
+ a(X, i71) :- a(X, n70).
241
+ a(X, j71) :- a(X, n70).
242
+ a(X, n72) :- a(X, n71).
243
+ a(X, i72) :- a(X, n71).
244
+ a(X, j72) :- a(X, n71).
245
+ a(X, n73) :- a(X, n72).
246
+ a(X, i73) :- a(X, n72).
247
+ a(X, j73) :- a(X, n72).
248
+ a(X, n74) :- a(X, n73).
249
+ a(X, i74) :- a(X, n73).
250
+ a(X, j74) :- a(X, n73).
251
+ a(X, n75) :- a(X, n74).
252
+ a(X, i75) :- a(X, n74).
253
+ a(X, j75) :- a(X, n74).
254
+ a(X, n76) :- a(X, n75).
255
+ a(X, i76) :- a(X, n75).
256
+ a(X, j76) :- a(X, n75).
257
+ a(X, n77) :- a(X, n76).
258
+ a(X, i77) :- a(X, n76).
259
+ a(X, j77) :- a(X, n76).
260
+ a(X, n78) :- a(X, n77).
261
+ a(X, i78) :- a(X, n77).
262
+ a(X, j78) :- a(X, n77).
263
+ a(X, n79) :- a(X, n78).
264
+ a(X, i79) :- a(X, n78).
265
+ a(X, j79) :- a(X, n78).
266
+ a(X, n80) :- a(X, n79).
267
+ a(X, i80) :- a(X, n79).
268
+ a(X, j80) :- a(X, n79).
269
+ a(X, n81) :- a(X, n80).
270
+ a(X, i81) :- a(X, n80).
271
+ a(X, j81) :- a(X, n80).
272
+ a(X, n82) :- a(X, n81).
273
+ a(X, i82) :- a(X, n81).
274
+ a(X, j82) :- a(X, n81).
275
+ a(X, n83) :- a(X, n82).
276
+ a(X, i83) :- a(X, n82).
277
+ a(X, j83) :- a(X, n82).
278
+ a(X, n84) :- a(X, n83).
279
+ a(X, i84) :- a(X, n83).
280
+ a(X, j84) :- a(X, n83).
281
+ a(X, n85) :- a(X, n84).
282
+ a(X, i85) :- a(X, n84).
283
+ a(X, j85) :- a(X, n84).
284
+ a(X, n86) :- a(X, n85).
285
+ a(X, i86) :- a(X, n85).
286
+ a(X, j86) :- a(X, n85).
287
+ a(X, n87) :- a(X, n86).
288
+ a(X, i87) :- a(X, n86).
289
+ a(X, j87) :- a(X, n86).
290
+ a(X, n88) :- a(X, n87).
291
+ a(X, i88) :- a(X, n87).
292
+ a(X, j88) :- a(X, n87).
293
+ a(X, n89) :- a(X, n88).
294
+ a(X, i89) :- a(X, n88).
295
+ a(X, j89) :- a(X, n88).
296
+ a(X, n90) :- a(X, n89).
297
+ a(X, i90) :- a(X, n89).
298
+ a(X, j90) :- a(X, n89).
299
+ a(X, n91) :- a(X, n90).
300
+ a(X, i91) :- a(X, n90).
301
+ a(X, j91) :- a(X, n90).
302
+ a(X, n92) :- a(X, n91).
303
+ a(X, i92) :- a(X, n91).
304
+ a(X, j92) :- a(X, n91).
305
+ a(X, n93) :- a(X, n92).
306
+ a(X, i93) :- a(X, n92).
307
+ a(X, j93) :- a(X, n92).
308
+ a(X, n94) :- a(X, n93).
309
+ a(X, i94) :- a(X, n93).
310
+ a(X, j94) :- a(X, n93).
311
+ a(X, n95) :- a(X, n94).
312
+ a(X, i95) :- a(X, n94).
313
+ a(X, j95) :- a(X, n94).
314
+ a(X, n96) :- a(X, n95).
315
+ a(X, i96) :- a(X, n95).
316
+ a(X, j96) :- a(X, n95).
317
+ a(X, n97) :- a(X, n96).
318
+ a(X, i97) :- a(X, n96).
319
+ a(X, j97) :- a(X, n96).
320
+ a(X, n98) :- a(X, n97).
321
+ a(X, i98) :- a(X, n97).
322
+ a(X, j98) :- a(X, n97).
323
+ a(X, n99) :- a(X, n98).
324
+ a(X, i99) :- a(X, n98).
325
+ a(X, j99) :- a(X, n98).
326
+ a(X, n100) :- a(X, n99).
327
+ a(X, i100) :- a(X, n99).
328
+ a(X, j100) :- a(X, n99).
329
+ a(X, n101) :- a(X, n100).
330
+ a(X, i101) :- a(X, n100).
331
+ a(X, j101) :- a(X, n100).
332
+ a(X, n102) :- a(X, n101).
333
+ a(X, i102) :- a(X, n101).
334
+ a(X, j102) :- a(X, n101).
335
+ a(X, n103) :- a(X, n102).
336
+ a(X, i103) :- a(X, n102).
337
+ a(X, j103) :- a(X, n102).
338
+ a(X, n104) :- a(X, n103).
339
+ a(X, i104) :- a(X, n103).
340
+ a(X, j104) :- a(X, n103).
341
+ a(X, n105) :- a(X, n104).
342
+ a(X, i105) :- a(X, n104).
343
+ a(X, j105) :- a(X, n104).
344
+ a(X, n106) :- a(X, n105).
345
+ a(X, i106) :- a(X, n105).
346
+ a(X, j106) :- a(X, n105).
347
+ a(X, n107) :- a(X, n106).
348
+ a(X, i107) :- a(X, n106).
349
+ a(X, j107) :- a(X, n106).
350
+ a(X, n108) :- a(X, n107).
351
+ a(X, i108) :- a(X, n107).
352
+ a(X, j108) :- a(X, n107).
353
+ a(X, n109) :- a(X, n108).
354
+ a(X, i109) :- a(X, n108).
355
+ a(X, j109) :- a(X, n108).
356
+ a(X, n110) :- a(X, n109).
357
+ a(X, i110) :- a(X, n109).
358
+ a(X, j110) :- a(X, n109).
359
+ a(X, n111) :- a(X, n110).
360
+ a(X, i111) :- a(X, n110).
361
+ a(X, j111) :- a(X, n110).
362
+ a(X, n112) :- a(X, n111).
363
+ a(X, i112) :- a(X, n111).
364
+ a(X, j112) :- a(X, n111).
365
+ a(X, n113) :- a(X, n112).
366
+ a(X, i113) :- a(X, n112).
367
+ a(X, j113) :- a(X, n112).
368
+ a(X, n114) :- a(X, n113).
369
+ a(X, i114) :- a(X, n113).
370
+ a(X, j114) :- a(X, n113).
371
+ a(X, n115) :- a(X, n114).
372
+ a(X, i115) :- a(X, n114).
373
+ a(X, j115) :- a(X, n114).
374
+ a(X, n116) :- a(X, n115).
375
+ a(X, i116) :- a(X, n115).
376
+ a(X, j116) :- a(X, n115).
377
+ a(X, n117) :- a(X, n116).
378
+ a(X, i117) :- a(X, n116).
379
+ a(X, j117) :- a(X, n116).
380
+ a(X, n118) :- a(X, n117).
381
+ a(X, i118) :- a(X, n117).
382
+ a(X, j118) :- a(X, n117).
383
+ a(X, n119) :- a(X, n118).
384
+ a(X, i119) :- a(X, n118).
385
+ a(X, j119) :- a(X, n118).
386
+ a(X, n120) :- a(X, n119).
387
+ a(X, i120) :- a(X, n119).
388
+ a(X, j120) :- a(X, n119).
389
+ a(X, n121) :- a(X, n120).
390
+ a(X, i121) :- a(X, n120).
391
+ a(X, j121) :- a(X, n120).
392
+ a(X, n122) :- a(X, n121).
393
+ a(X, i122) :- a(X, n121).
394
+ a(X, j122) :- a(X, n121).
395
+ a(X, n123) :- a(X, n122).
396
+ a(X, i123) :- a(X, n122).
397
+ a(X, j123) :- a(X, n122).
398
+ a(X, n124) :- a(X, n123).
399
+ a(X, i124) :- a(X, n123).
400
+ a(X, j124) :- a(X, n123).
401
+ a(X, n125) :- a(X, n124).
402
+ a(X, i125) :- a(X, n124).
403
+ a(X, j125) :- a(X, n124).
404
+ a(X, n126) :- a(X, n125).
405
+ a(X, i126) :- a(X, n125).
406
+ a(X, j126) :- a(X, n125).
407
+ a(X, n127) :- a(X, n126).
408
+ a(X, i127) :- a(X, n126).
409
+ a(X, j127) :- a(X, n126).
410
+ a(X, n128) :- a(X, n127).
411
+ a(X, i128) :- a(X, n127).
412
+ a(X, j128) :- a(X, n127).
413
+ a(X, n129) :- a(X, n128).
414
+ a(X, i129) :- a(X, n128).
415
+ a(X, j129) :- a(X, n128).
416
+ a(X, n130) :- a(X, n129).
417
+ a(X, i130) :- a(X, n129).
418
+ a(X, j130) :- a(X, n129).
419
+ a(X, n131) :- a(X, n130).
420
+ a(X, i131) :- a(X, n130).
421
+ a(X, j131) :- a(X, n130).
422
+ a(X, n132) :- a(X, n131).
423
+ a(X, i132) :- a(X, n131).
424
+ a(X, j132) :- a(X, n131).
425
+ a(X, n133) :- a(X, n132).
426
+ a(X, i133) :- a(X, n132).
427
+ a(X, j133) :- a(X, n132).
428
+ a(X, n134) :- a(X, n133).
429
+ a(X, i134) :- a(X, n133).
430
+ a(X, j134) :- a(X, n133).
431
+ a(X, n135) :- a(X, n134).
432
+ a(X, i135) :- a(X, n134).
433
+ a(X, j135) :- a(X, n134).
434
+ a(X, n136) :- a(X, n135).
435
+ a(X, i136) :- a(X, n135).
436
+ a(X, j136) :- a(X, n135).
437
+ a(X, n137) :- a(X, n136).
438
+ a(X, i137) :- a(X, n136).
439
+ a(X, j137) :- a(X, n136).
440
+ a(X, n138) :- a(X, n137).
441
+ a(X, i138) :- a(X, n137).
442
+ a(X, j138) :- a(X, n137).
443
+ a(X, n139) :- a(X, n138).
444
+ a(X, i139) :- a(X, n138).
445
+ a(X, j139) :- a(X, n138).
446
+ a(X, n140) :- a(X, n139).
447
+ a(X, i140) :- a(X, n139).
448
+ a(X, j140) :- a(X, n139).
449
+ a(X, n141) :- a(X, n140).
450
+ a(X, i141) :- a(X, n140).
451
+ a(X, j141) :- a(X, n140).
452
+ a(X, n142) :- a(X, n141).
453
+ a(X, i142) :- a(X, n141).
454
+ a(X, j142) :- a(X, n141).
455
+ a(X, n143) :- a(X, n142).
456
+ a(X, i143) :- a(X, n142).
457
+ a(X, j143) :- a(X, n142).
458
+ a(X, n144) :- a(X, n143).
459
+ a(X, i144) :- a(X, n143).
460
+ a(X, j144) :- a(X, n143).
461
+ a(X, n145) :- a(X, n144).
462
+ a(X, i145) :- a(X, n144).
463
+ a(X, j145) :- a(X, n144).
464
+ a(X, n146) :- a(X, n145).
465
+ a(X, i146) :- a(X, n145).
466
+ a(X, j146) :- a(X, n145).
467
+ a(X, n147) :- a(X, n146).
468
+ a(X, i147) :- a(X, n146).
469
+ a(X, j147) :- a(X, n146).
470
+ a(X, n148) :- a(X, n147).
471
+ a(X, i148) :- a(X, n147).
472
+ a(X, j148) :- a(X, n147).
473
+ a(X, n149) :- a(X, n148).
474
+ a(X, i149) :- a(X, n148).
475
+ a(X, j149) :- a(X, n148).
476
+ a(X, n150) :- a(X, n149).
477
+ a(X, i150) :- a(X, n149).
478
+ a(X, j150) :- a(X, n149).
479
+ a(X, n151) :- a(X, n150).
480
+ a(X, i151) :- a(X, n150).
481
+ a(X, j151) :- a(X, n150).
482
+ a(X, n152) :- a(X, n151).
483
+ a(X, i152) :- a(X, n151).
484
+ a(X, j152) :- a(X, n151).
485
+ a(X, n153) :- a(X, n152).
486
+ a(X, i153) :- a(X, n152).
487
+ a(X, j153) :- a(X, n152).
488
+ a(X, n154) :- a(X, n153).
489
+ a(X, i154) :- a(X, n153).
490
+ a(X, j154) :- a(X, n153).
491
+ a(X, n155) :- a(X, n154).
492
+ a(X, i155) :- a(X, n154).
493
+ a(X, j155) :- a(X, n154).
494
+ a(X, n156) :- a(X, n155).
495
+ a(X, i156) :- a(X, n155).
496
+ a(X, j156) :- a(X, n155).
497
+ a(X, n157) :- a(X, n156).
498
+ a(X, i157) :- a(X, n156).
499
+ a(X, j157) :- a(X, n156).
500
+ a(X, n158) :- a(X, n157).
501
+ a(X, i158) :- a(X, n157).
502
+ a(X, j158) :- a(X, n157).
503
+ a(X, n159) :- a(X, n158).
504
+ a(X, i159) :- a(X, n158).
505
+ a(X, j159) :- a(X, n158).
506
+ a(X, n160) :- a(X, n159).
507
+ a(X, i160) :- a(X, n159).
508
+ a(X, j160) :- a(X, n159).
509
+ a(X, n161) :- a(X, n160).
510
+ a(X, i161) :- a(X, n160).
511
+ a(X, j161) :- a(X, n160).
512
+ a(X, n162) :- a(X, n161).
513
+ a(X, i162) :- a(X, n161).
514
+ a(X, j162) :- a(X, n161).
515
+ a(X, n163) :- a(X, n162).
516
+ a(X, i163) :- a(X, n162).
517
+ a(X, j163) :- a(X, n162).
518
+ a(X, n164) :- a(X, n163).
519
+ a(X, i164) :- a(X, n163).
520
+ a(X, j164) :- a(X, n163).
521
+ a(X, n165) :- a(X, n164).
522
+ a(X, i165) :- a(X, n164).
523
+ a(X, j165) :- a(X, n164).
524
+ a(X, n166) :- a(X, n165).
525
+ a(X, i166) :- a(X, n165).
526
+ a(X, j166) :- a(X, n165).
527
+ a(X, n167) :- a(X, n166).
528
+ a(X, i167) :- a(X, n166).
529
+ a(X, j167) :- a(X, n166).
530
+ a(X, n168) :- a(X, n167).
531
+ a(X, i168) :- a(X, n167).
532
+ a(X, j168) :- a(X, n167).
533
+ a(X, n169) :- a(X, n168).
534
+ a(X, i169) :- a(X, n168).
535
+ a(X, j169) :- a(X, n168).
536
+ a(X, n170) :- a(X, n169).
537
+ a(X, i170) :- a(X, n169).
538
+ a(X, j170) :- a(X, n169).
539
+ a(X, n171) :- a(X, n170).
540
+ a(X, i171) :- a(X, n170).
541
+ a(X, j171) :- a(X, n170).
542
+ a(X, n172) :- a(X, n171).
543
+ a(X, i172) :- a(X, n171).
544
+ a(X, j172) :- a(X, n171).
545
+ a(X, n173) :- a(X, n172).
546
+ a(X, i173) :- a(X, n172).
547
+ a(X, j173) :- a(X, n172).
548
+ a(X, n174) :- a(X, n173).
549
+ a(X, i174) :- a(X, n173).
550
+ a(X, j174) :- a(X, n173).
551
+ a(X, n175) :- a(X, n174).
552
+ a(X, i175) :- a(X, n174).
553
+ a(X, j175) :- a(X, n174).
554
+ a(X, n176) :- a(X, n175).
555
+ a(X, i176) :- a(X, n175).
556
+ a(X, j176) :- a(X, n175).
557
+ a(X, n177) :- a(X, n176).
558
+ a(X, i177) :- a(X, n176).
559
+ a(X, j177) :- a(X, n176).
560
+ a(X, n178) :- a(X, n177).
561
+ a(X, i178) :- a(X, n177).
562
+ a(X, j178) :- a(X, n177).
563
+ a(X, n179) :- a(X, n178).
564
+ a(X, i179) :- a(X, n178).
565
+ a(X, j179) :- a(X, n178).
566
+ a(X, n180) :- a(X, n179).
567
+ a(X, i180) :- a(X, n179).
568
+ a(X, j180) :- a(X, n179).
569
+ a(X, n181) :- a(X, n180).
570
+ a(X, i181) :- a(X, n180).
571
+ a(X, j181) :- a(X, n180).
572
+ a(X, n182) :- a(X, n181).
573
+ a(X, i182) :- a(X, n181).
574
+ a(X, j182) :- a(X, n181).
575
+ a(X, n183) :- a(X, n182).
576
+ a(X, i183) :- a(X, n182).
577
+ a(X, j183) :- a(X, n182).
578
+ a(X, n184) :- a(X, n183).
579
+ a(X, i184) :- a(X, n183).
580
+ a(X, j184) :- a(X, n183).
581
+ a(X, n185) :- a(X, n184).
582
+ a(X, i185) :- a(X, n184).
583
+ a(X, j185) :- a(X, n184).
584
+ a(X, n186) :- a(X, n185).
585
+ a(X, i186) :- a(X, n185).
586
+ a(X, j186) :- a(X, n185).
587
+ a(X, n187) :- a(X, n186).
588
+ a(X, i187) :- a(X, n186).
589
+ a(X, j187) :- a(X, n186).
590
+ a(X, n188) :- a(X, n187).
591
+ a(X, i188) :- a(X, n187).
592
+ a(X, j188) :- a(X, n187).
593
+ a(X, n189) :- a(X, n188).
594
+ a(X, i189) :- a(X, n188).
595
+ a(X, j189) :- a(X, n188).
596
+ a(X, n190) :- a(X, n189).
597
+ a(X, i190) :- a(X, n189).
598
+ a(X, j190) :- a(X, n189).
599
+ a(X, n191) :- a(X, n190).
600
+ a(X, i191) :- a(X, n190).
601
+ a(X, j191) :- a(X, n190).
602
+ a(X, n192) :- a(X, n191).
603
+ a(X, i192) :- a(X, n191).
604
+ a(X, j192) :- a(X, n191).
605
+ a(X, n193) :- a(X, n192).
606
+ a(X, i193) :- a(X, n192).
607
+ a(X, j193) :- a(X, n192).
608
+ a(X, n194) :- a(X, n193).
609
+ a(X, i194) :- a(X, n193).
610
+ a(X, j194) :- a(X, n193).
611
+ a(X, n195) :- a(X, n194).
612
+ a(X, i195) :- a(X, n194).
613
+ a(X, j195) :- a(X, n194).
614
+ a(X, n196) :- a(X, n195).
615
+ a(X, i196) :- a(X, n195).
616
+ a(X, j196) :- a(X, n195).
617
+ a(X, n197) :- a(X, n196).
618
+ a(X, i197) :- a(X, n196).
619
+ a(X, j197) :- a(X, n196).
620
+ a(X, n198) :- a(X, n197).
621
+ a(X, i198) :- a(X, n197).
622
+ a(X, j198) :- a(X, n197).
623
+ a(X, n199) :- a(X, n198).
624
+ a(X, i199) :- a(X, n198).
625
+ a(X, j199) :- a(X, n198).
626
+ a(X, n200) :- a(X, n199).
627
+ a(X, i200) :- a(X, n199).
628
+ a(X, j200) :- a(X, n199).
629
+ a(X, n201) :- a(X, n200).
630
+ a(X, i201) :- a(X, n200).
631
+ a(X, j201) :- a(X, n200).
632
+ a(X, n202) :- a(X, n201).
633
+ a(X, i202) :- a(X, n201).
634
+ a(X, j202) :- a(X, n201).
635
+ a(X, n203) :- a(X, n202).
636
+ a(X, i203) :- a(X, n202).
637
+ a(X, j203) :- a(X, n202).
638
+ a(X, n204) :- a(X, n203).
639
+ a(X, i204) :- a(X, n203).
640
+ a(X, j204) :- a(X, n203).
641
+ a(X, n205) :- a(X, n204).
642
+ a(X, i205) :- a(X, n204).
643
+ a(X, j205) :- a(X, n204).
644
+ a(X, n206) :- a(X, n205).
645
+ a(X, i206) :- a(X, n205).
646
+ a(X, j206) :- a(X, n205).
647
+ a(X, n207) :- a(X, n206).
648
+ a(X, i207) :- a(X, n206).
649
+ a(X, j207) :- a(X, n206).
650
+ a(X, n208) :- a(X, n207).
651
+ a(X, i208) :- a(X, n207).
652
+ a(X, j208) :- a(X, n207).
653
+ a(X, n209) :- a(X, n208).
654
+ a(X, i209) :- a(X, n208).
655
+ a(X, j209) :- a(X, n208).
656
+ a(X, n210) :- a(X, n209).
657
+ a(X, i210) :- a(X, n209).
658
+ a(X, j210) :- a(X, n209).
659
+ a(X, n211) :- a(X, n210).
660
+ a(X, i211) :- a(X, n210).
661
+ a(X, j211) :- a(X, n210).
662
+ a(X, n212) :- a(X, n211).
663
+ a(X, i212) :- a(X, n211).
664
+ a(X, j212) :- a(X, n211).
665
+ a(X, n213) :- a(X, n212).
666
+ a(X, i213) :- a(X, n212).
667
+ a(X, j213) :- a(X, n212).
668
+ a(X, n214) :- a(X, n213).
669
+ a(X, i214) :- a(X, n213).
670
+ a(X, j214) :- a(X, n213).
671
+ a(X, n215) :- a(X, n214).
672
+ a(X, i215) :- a(X, n214).
673
+ a(X, j215) :- a(X, n214).
674
+ a(X, n216) :- a(X, n215).
675
+ a(X, i216) :- a(X, n215).
676
+ a(X, j216) :- a(X, n215).
677
+ a(X, n217) :- a(X, n216).
678
+ a(X, i217) :- a(X, n216).
679
+ a(X, j217) :- a(X, n216).
680
+ a(X, n218) :- a(X, n217).
681
+ a(X, i218) :- a(X, n217).
682
+ a(X, j218) :- a(X, n217).
683
+ a(X, n219) :- a(X, n218).
684
+ a(X, i219) :- a(X, n218).
685
+ a(X, j219) :- a(X, n218).
686
+ a(X, n220) :- a(X, n219).
687
+ a(X, i220) :- a(X, n219).
688
+ a(X, j220) :- a(X, n219).
689
+ a(X, n221) :- a(X, n220).
690
+ a(X, i221) :- a(X, n220).
691
+ a(X, j221) :- a(X, n220).
692
+ a(X, n222) :- a(X, n221).
693
+ a(X, i222) :- a(X, n221).
694
+ a(X, j222) :- a(X, n221).
695
+ a(X, n223) :- a(X, n222).
696
+ a(X, i223) :- a(X, n222).
697
+ a(X, j223) :- a(X, n222).
698
+ a(X, n224) :- a(X, n223).
699
+ a(X, i224) :- a(X, n223).
700
+ a(X, j224) :- a(X, n223).
701
+ a(X, n225) :- a(X, n224).
702
+ a(X, i225) :- a(X, n224).
703
+ a(X, j225) :- a(X, n224).
704
+ a(X, n226) :- a(X, n225).
705
+ a(X, i226) :- a(X, n225).
706
+ a(X, j226) :- a(X, n225).
707
+ a(X, n227) :- a(X, n226).
708
+ a(X, i227) :- a(X, n226).
709
+ a(X, j227) :- a(X, n226).
710
+ a(X, n228) :- a(X, n227).
711
+ a(X, i228) :- a(X, n227).
712
+ a(X, j228) :- a(X, n227).
713
+ a(X, n229) :- a(X, n228).
714
+ a(X, i229) :- a(X, n228).
715
+ a(X, j229) :- a(X, n228).
716
+ a(X, n230) :- a(X, n229).
717
+ a(X, i230) :- a(X, n229).
718
+ a(X, j230) :- a(X, n229).
719
+ a(X, n231) :- a(X, n230).
720
+ a(X, i231) :- a(X, n230).
721
+ a(X, j231) :- a(X, n230).
722
+ a(X, n232) :- a(X, n231).
723
+ a(X, i232) :- a(X, n231).
724
+ a(X, j232) :- a(X, n231).
725
+ a(X, n233) :- a(X, n232).
726
+ a(X, i233) :- a(X, n232).
727
+ a(X, j233) :- a(X, n232).
728
+ a(X, n234) :- a(X, n233).
729
+ a(X, i234) :- a(X, n233).
730
+ a(X, j234) :- a(X, n233).
731
+ a(X, n235) :- a(X, n234).
732
+ a(X, i235) :- a(X, n234).
733
+ a(X, j235) :- a(X, n234).
734
+ a(X, n236) :- a(X, n235).
735
+ a(X, i236) :- a(X, n235).
736
+ a(X, j236) :- a(X, n235).
737
+ a(X, n237) :- a(X, n236).
738
+ a(X, i237) :- a(X, n236).
739
+ a(X, j237) :- a(X, n236).
740
+ a(X, n238) :- a(X, n237).
741
+ a(X, i238) :- a(X, n237).
742
+ a(X, j238) :- a(X, n237).
743
+ a(X, n239) :- a(X, n238).
744
+ a(X, i239) :- a(X, n238).
745
+ a(X, j239) :- a(X, n238).
746
+ a(X, n240) :- a(X, n239).
747
+ a(X, i240) :- a(X, n239).
748
+ a(X, j240) :- a(X, n239).
749
+ a(X, n241) :- a(X, n240).
750
+ a(X, i241) :- a(X, n240).
751
+ a(X, j241) :- a(X, n240).
752
+ a(X, n242) :- a(X, n241).
753
+ a(X, i242) :- a(X, n241).
754
+ a(X, j242) :- a(X, n241).
755
+ a(X, n243) :- a(X, n242).
756
+ a(X, i243) :- a(X, n242).
757
+ a(X, j243) :- a(X, n242).
758
+ a(X, n244) :- a(X, n243).
759
+ a(X, i244) :- a(X, n243).
760
+ a(X, j244) :- a(X, n243).
761
+ a(X, n245) :- a(X, n244).
762
+ a(X, i245) :- a(X, n244).
763
+ a(X, j245) :- a(X, n244).
764
+ a(X, n246) :- a(X, n245).
765
+ a(X, i246) :- a(X, n245).
766
+ a(X, j246) :- a(X, n245).
767
+ a(X, n247) :- a(X, n246).
768
+ a(X, i247) :- a(X, n246).
769
+ a(X, j247) :- a(X, n246).
770
+ a(X, n248) :- a(X, n247).
771
+ a(X, i248) :- a(X, n247).
772
+ a(X, j248) :- a(X, n247).
773
+ a(X, n249) :- a(X, n248).
774
+ a(X, i249) :- a(X, n248).
775
+ a(X, j249) :- a(X, n248).
776
+ a(X, n250) :- a(X, n249).
777
+ a(X, i250) :- a(X, n249).
778
+ a(X, j250) :- a(X, n249).
779
+ a(X, n251) :- a(X, n250).
780
+ a(X, i251) :- a(X, n250).
781
+ a(X, j251) :- a(X, n250).
782
+ a(X, n252) :- a(X, n251).
783
+ a(X, i252) :- a(X, n251).
784
+ a(X, j252) :- a(X, n251).
785
+ a(X, n253) :- a(X, n252).
786
+ a(X, i253) :- a(X, n252).
787
+ a(X, j253) :- a(X, n252).
788
+ a(X, n254) :- a(X, n253).
789
+ a(X, i254) :- a(X, n253).
790
+ a(X, j254) :- a(X, n253).
791
+ a(X, n255) :- a(X, n254).
792
+ a(X, i255) :- a(X, n254).
793
+ a(X, j255) :- a(X, n254).
794
+ a(X, n256) :- a(X, n255).
795
+ a(X, i256) :- a(X, n255).
796
+ a(X, j256) :- a(X, n255).
797
+ a(X, n257) :- a(X, n256).
798
+ a(X, i257) :- a(X, n256).
799
+ a(X, j257) :- a(X, n256).
800
+ a(X, n258) :- a(X, n257).
801
+ a(X, i258) :- a(X, n257).
802
+ a(X, j258) :- a(X, n257).
803
+ a(X, n259) :- a(X, n258).
804
+ a(X, i259) :- a(X, n258).
805
+ a(X, j259) :- a(X, n258).
806
+ a(X, n260) :- a(X, n259).
807
+ a(X, i260) :- a(X, n259).
808
+ a(X, j260) :- a(X, n259).
809
+ a(X, n261) :- a(X, n260).
810
+ a(X, i261) :- a(X, n260).
811
+ a(X, j261) :- a(X, n260).
812
+ a(X, n262) :- a(X, n261).
813
+ a(X, i262) :- a(X, n261).
814
+ a(X, j262) :- a(X, n261).
815
+ a(X, n263) :- a(X, n262).
816
+ a(X, i263) :- a(X, n262).
817
+ a(X, j263) :- a(X, n262).
818
+ a(X, n264) :- a(X, n263).
819
+ a(X, i264) :- a(X, n263).
820
+ a(X, j264) :- a(X, n263).
821
+ a(X, n265) :- a(X, n264).
822
+ a(X, i265) :- a(X, n264).
823
+ a(X, j265) :- a(X, n264).
824
+ a(X, n266) :- a(X, n265).
825
+ a(X, i266) :- a(X, n265).
826
+ a(X, j266) :- a(X, n265).
827
+ a(X, n267) :- a(X, n266).
828
+ a(X, i267) :- a(X, n266).
829
+ a(X, j267) :- a(X, n266).
830
+ a(X, n268) :- a(X, n267).
831
+ a(X, i268) :- a(X, n267).
832
+ a(X, j268) :- a(X, n267).
833
+ a(X, n269) :- a(X, n268).
834
+ a(X, i269) :- a(X, n268).
835
+ a(X, j269) :- a(X, n268).
836
+ a(X, n270) :- a(X, n269).
837
+ a(X, i270) :- a(X, n269).
838
+ a(X, j270) :- a(X, n269).
839
+ a(X, n271) :- a(X, n270).
840
+ a(X, i271) :- a(X, n270).
841
+ a(X, j271) :- a(X, n270).
842
+ a(X, n272) :- a(X, n271).
843
+ a(X, i272) :- a(X, n271).
844
+ a(X, j272) :- a(X, n271).
845
+ a(X, n273) :- a(X, n272).
846
+ a(X, i273) :- a(X, n272).
847
+ a(X, j273) :- a(X, n272).
848
+ a(X, n274) :- a(X, n273).
849
+ a(X, i274) :- a(X, n273).
850
+ a(X, j274) :- a(X, n273).
851
+ a(X, n275) :- a(X, n274).
852
+ a(X, i275) :- a(X, n274).
853
+ a(X, j275) :- a(X, n274).
854
+ a(X, n276) :- a(X, n275).
855
+ a(X, i276) :- a(X, n275).
856
+ a(X, j276) :- a(X, n275).
857
+ a(X, n277) :- a(X, n276).
858
+ a(X, i277) :- a(X, n276).
859
+ a(X, j277) :- a(X, n276).
860
+ a(X, n278) :- a(X, n277).
861
+ a(X, i278) :- a(X, n277).
862
+ a(X, j278) :- a(X, n277).
863
+ a(X, n279) :- a(X, n278).
864
+ a(X, i279) :- a(X, n278).
865
+ a(X, j279) :- a(X, n278).
866
+ a(X, n280) :- a(X, n279).
867
+ a(X, i280) :- a(X, n279).
868
+ a(X, j280) :- a(X, n279).
869
+ a(X, n281) :- a(X, n280).
870
+ a(X, i281) :- a(X, n280).
871
+ a(X, j281) :- a(X, n280).
872
+ a(X, n282) :- a(X, n281).
873
+ a(X, i282) :- a(X, n281).
874
+ a(X, j282) :- a(X, n281).
875
+ a(X, n283) :- a(X, n282).
876
+ a(X, i283) :- a(X, n282).
877
+ a(X, j283) :- a(X, n282).
878
+ a(X, n284) :- a(X, n283).
879
+ a(X, i284) :- a(X, n283).
880
+ a(X, j284) :- a(X, n283).
881
+ a(X, n285) :- a(X, n284).
882
+ a(X, i285) :- a(X, n284).
883
+ a(X, j285) :- a(X, n284).
884
+ a(X, n286) :- a(X, n285).
885
+ a(X, i286) :- a(X, n285).
886
+ a(X, j286) :- a(X, n285).
887
+ a(X, n287) :- a(X, n286).
888
+ a(X, i287) :- a(X, n286).
889
+ a(X, j287) :- a(X, n286).
890
+ a(X, n288) :- a(X, n287).
891
+ a(X, i288) :- a(X, n287).
892
+ a(X, j288) :- a(X, n287).
893
+ a(X, n289) :- a(X, n288).
894
+ a(X, i289) :- a(X, n288).
895
+ a(X, j289) :- a(X, n288).
896
+ a(X, n290) :- a(X, n289).
897
+ a(X, i290) :- a(X, n289).
898
+ a(X, j290) :- a(X, n289).
899
+ a(X, n291) :- a(X, n290).
900
+ a(X, i291) :- a(X, n290).
901
+ a(X, j291) :- a(X, n290).
902
+ a(X, n292) :- a(X, n291).
903
+ a(X, i292) :- a(X, n291).
904
+ a(X, j292) :- a(X, n291).
905
+ a(X, n293) :- a(X, n292).
906
+ a(X, i293) :- a(X, n292).
907
+ a(X, j293) :- a(X, n292).
908
+ a(X, n294) :- a(X, n293).
909
+ a(X, i294) :- a(X, n293).
910
+ a(X, j294) :- a(X, n293).
911
+ a(X, n295) :- a(X, n294).
912
+ a(X, i295) :- a(X, n294).
913
+ a(X, j295) :- a(X, n294).
914
+ a(X, n296) :- a(X, n295).
915
+ a(X, i296) :- a(X, n295).
916
+ a(X, j296) :- a(X, n295).
917
+ a(X, n297) :- a(X, n296).
918
+ a(X, i297) :- a(X, n296).
919
+ a(X, j297) :- a(X, n296).
920
+ a(X, n298) :- a(X, n297).
921
+ a(X, i298) :- a(X, n297).
922
+ a(X, j298) :- a(X, n297).
923
+ a(X, n299) :- a(X, n298).
924
+ a(X, i299) :- a(X, n298).
925
+ a(X, j299) :- a(X, n298).
926
+ a(X, n300) :- a(X, n299).
927
+ a(X, i300) :- a(X, n299).
928
+ a(X, j300) :- a(X, n299).
929
+ a(X, n301) :- a(X, n300).
930
+ a(X, i301) :- a(X, n300).
931
+ a(X, j301) :- a(X, n300).
932
+ a(X, n302) :- a(X, n301).
933
+ a(X, i302) :- a(X, n301).
934
+ a(X, j302) :- a(X, n301).
935
+ a(X, n303) :- a(X, n302).
936
+ a(X, i303) :- a(X, n302).
937
+ a(X, j303) :- a(X, n302).
938
+ a(X, n304) :- a(X, n303).
939
+ a(X, i304) :- a(X, n303).
940
+ a(X, j304) :- a(X, n303).
941
+ a(X, n305) :- a(X, n304).
942
+ a(X, i305) :- a(X, n304).
943
+ a(X, j305) :- a(X, n304).
944
+ a(X, n306) :- a(X, n305).
945
+ a(X, i306) :- a(X, n305).
946
+ a(X, j306) :- a(X, n305).
947
+ a(X, n307) :- a(X, n306).
948
+ a(X, i307) :- a(X, n306).
949
+ a(X, j307) :- a(X, n306).
950
+ a(X, n308) :- a(X, n307).
951
+ a(X, i308) :- a(X, n307).
952
+ a(X, j308) :- a(X, n307).
953
+ a(X, n309) :- a(X, n308).
954
+ a(X, i309) :- a(X, n308).
955
+ a(X, j309) :- a(X, n308).
956
+ a(X, n310) :- a(X, n309).
957
+ a(X, i310) :- a(X, n309).
958
+ a(X, j310) :- a(X, n309).
959
+ a(X, n311) :- a(X, n310).
960
+ a(X, i311) :- a(X, n310).
961
+ a(X, j311) :- a(X, n310).
962
+ a(X, n312) :- a(X, n311).
963
+ a(X, i312) :- a(X, n311).
964
+ a(X, j312) :- a(X, n311).
965
+ a(X, n313) :- a(X, n312).
966
+ a(X, i313) :- a(X, n312).
967
+ a(X, j313) :- a(X, n312).
968
+ a(X, n314) :- a(X, n313).
969
+ a(X, i314) :- a(X, n313).
970
+ a(X, j314) :- a(X, n313).
971
+ a(X, n315) :- a(X, n314).
972
+ a(X, i315) :- a(X, n314).
973
+ a(X, j315) :- a(X, n314).
974
+ a(X, n316) :- a(X, n315).
975
+ a(X, i316) :- a(X, n315).
976
+ a(X, j316) :- a(X, n315).
977
+ a(X, n317) :- a(X, n316).
978
+ a(X, i317) :- a(X, n316).
979
+ a(X, j317) :- a(X, n316).
980
+ a(X, n318) :- a(X, n317).
981
+ a(X, i318) :- a(X, n317).
982
+ a(X, j318) :- a(X, n317).
983
+ a(X, n319) :- a(X, n318).
984
+ a(X, i319) :- a(X, n318).
985
+ a(X, j319) :- a(X, n318).
986
+ a(X, n320) :- a(X, n319).
987
+ a(X, i320) :- a(X, n319).
988
+ a(X, j320) :- a(X, n319).
989
+ a(X, n321) :- a(X, n320).
990
+ a(X, i321) :- a(X, n320).
991
+ a(X, j321) :- a(X, n320).
992
+ a(X, n322) :- a(X, n321).
993
+ a(X, i322) :- a(X, n321).
994
+ a(X, j322) :- a(X, n321).
995
+ a(X, n323) :- a(X, n322).
996
+ a(X, i323) :- a(X, n322).
997
+ a(X, j323) :- a(X, n322).
998
+ a(X, n324) :- a(X, n323).
999
+ a(X, i324) :- a(X, n323).
1000
+ a(X, j324) :- a(X, n323).
1001
+ a(X, n325) :- a(X, n324).
1002
+ a(X, i325) :- a(X, n324).
1003
+ a(X, j325) :- a(X, n324).
1004
+ a(X, n326) :- a(X, n325).
1005
+ a(X, i326) :- a(X, n325).
1006
+ a(X, j326) :- a(X, n325).
1007
+ a(X, n327) :- a(X, n326).
1008
+ a(X, i327) :- a(X, n326).
1009
+ a(X, j327) :- a(X, n326).
1010
+ a(X, n328) :- a(X, n327).
1011
+ a(X, i328) :- a(X, n327).
1012
+ a(X, j328) :- a(X, n327).
1013
+ a(X, n329) :- a(X, n328).
1014
+ a(X, i329) :- a(X, n328).
1015
+ a(X, j329) :- a(X, n328).
1016
+ a(X, n330) :- a(X, n329).
1017
+ a(X, i330) :- a(X, n329).
1018
+ a(X, j330) :- a(X, n329).
1019
+ a(X, n331) :- a(X, n330).
1020
+ a(X, i331) :- a(X, n330).
1021
+ a(X, j331) :- a(X, n330).
1022
+ a(X, n332) :- a(X, n331).
1023
+ a(X, i332) :- a(X, n331).
1024
+ a(X, j332) :- a(X, n331).
1025
+ a(X, n333) :- a(X, n332).
1026
+ a(X, i333) :- a(X, n332).
1027
+ a(X, j333) :- a(X, n332).
1028
+ a(X, n334) :- a(X, n333).
1029
+ a(X, i334) :- a(X, n333).
1030
+ a(X, j334) :- a(X, n333).
1031
+ a(X, n335) :- a(X, n334).
1032
+ a(X, i335) :- a(X, n334).
1033
+ a(X, j335) :- a(X, n334).
1034
+ a(X, n336) :- a(X, n335).
1035
+ a(X, i336) :- a(X, n335).
1036
+ a(X, j336) :- a(X, n335).
1037
+ a(X, n337) :- a(X, n336).
1038
+ a(X, i337) :- a(X, n336).
1039
+ a(X, j337) :- a(X, n336).
1040
+ a(X, n338) :- a(X, n337).
1041
+ a(X, i338) :- a(X, n337).
1042
+ a(X, j338) :- a(X, n337).
1043
+ a(X, n339) :- a(X, n338).
1044
+ a(X, i339) :- a(X, n338).
1045
+ a(X, j339) :- a(X, n338).
1046
+ a(X, n340) :- a(X, n339).
1047
+ a(X, i340) :- a(X, n339).
1048
+ a(X, j340) :- a(X, n339).
1049
+ a(X, n341) :- a(X, n340).
1050
+ a(X, i341) :- a(X, n340).
1051
+ a(X, j341) :- a(X, n340).
1052
+ a(X, n342) :- a(X, n341).
1053
+ a(X, i342) :- a(X, n341).
1054
+ a(X, j342) :- a(X, n341).
1055
+ a(X, n343) :- a(X, n342).
1056
+ a(X, i343) :- a(X, n342).
1057
+ a(X, j343) :- a(X, n342).
1058
+ a(X, n344) :- a(X, n343).
1059
+ a(X, i344) :- a(X, n343).
1060
+ a(X, j344) :- a(X, n343).
1061
+ a(X, n345) :- a(X, n344).
1062
+ a(X, i345) :- a(X, n344).
1063
+ a(X, j345) :- a(X, n344).
1064
+ a(X, n346) :- a(X, n345).
1065
+ a(X, i346) :- a(X, n345).
1066
+ a(X, j346) :- a(X, n345).
1067
+ a(X, n347) :- a(X, n346).
1068
+ a(X, i347) :- a(X, n346).
1069
+ a(X, j347) :- a(X, n346).
1070
+ a(X, n348) :- a(X, n347).
1071
+ a(X, i348) :- a(X, n347).
1072
+ a(X, j348) :- a(X, n347).
1073
+ a(X, n349) :- a(X, n348).
1074
+ a(X, i349) :- a(X, n348).
1075
+ a(X, j349) :- a(X, n348).
1076
+ a(X, n350) :- a(X, n349).
1077
+ a(X, i350) :- a(X, n349).
1078
+ a(X, j350) :- a(X, n349).
1079
+ a(X, n351) :- a(X, n350).
1080
+ a(X, i351) :- a(X, n350).
1081
+ a(X, j351) :- a(X, n350).
1082
+ a(X, n352) :- a(X, n351).
1083
+ a(X, i352) :- a(X, n351).
1084
+ a(X, j352) :- a(X, n351).
1085
+ a(X, n353) :- a(X, n352).
1086
+ a(X, i353) :- a(X, n352).
1087
+ a(X, j353) :- a(X, n352).
1088
+ a(X, n354) :- a(X, n353).
1089
+ a(X, i354) :- a(X, n353).
1090
+ a(X, j354) :- a(X, n353).
1091
+ a(X, n355) :- a(X, n354).
1092
+ a(X, i355) :- a(X, n354).
1093
+ a(X, j355) :- a(X, n354).
1094
+ a(X, n356) :- a(X, n355).
1095
+ a(X, i356) :- a(X, n355).
1096
+ a(X, j356) :- a(X, n355).
1097
+ a(X, n357) :- a(X, n356).
1098
+ a(X, i357) :- a(X, n356).
1099
+ a(X, j357) :- a(X, n356).
1100
+ a(X, n358) :- a(X, n357).
1101
+ a(X, i358) :- a(X, n357).
1102
+ a(X, j358) :- a(X, n357).
1103
+ a(X, n359) :- a(X, n358).
1104
+ a(X, i359) :- a(X, n358).
1105
+ a(X, j359) :- a(X, n358).
1106
+ a(X, n360) :- a(X, n359).
1107
+ a(X, i360) :- a(X, n359).
1108
+ a(X, j360) :- a(X, n359).
1109
+ a(X, n361) :- a(X, n360).
1110
+ a(X, i361) :- a(X, n360).
1111
+ a(X, j361) :- a(X, n360).
1112
+ a(X, n362) :- a(X, n361).
1113
+ a(X, i362) :- a(X, n361).
1114
+ a(X, j362) :- a(X, n361).
1115
+ a(X, n363) :- a(X, n362).
1116
+ a(X, i363) :- a(X, n362).
1117
+ a(X, j363) :- a(X, n362).
1118
+ a(X, n364) :- a(X, n363).
1119
+ a(X, i364) :- a(X, n363).
1120
+ a(X, j364) :- a(X, n363).
1121
+ a(X, n365) :- a(X, n364).
1122
+ a(X, i365) :- a(X, n364).
1123
+ a(X, j365) :- a(X, n364).
1124
+ a(X, n366) :- a(X, n365).
1125
+ a(X, i366) :- a(X, n365).
1126
+ a(X, j366) :- a(X, n365).
1127
+ a(X, n367) :- a(X, n366).
1128
+ a(X, i367) :- a(X, n366).
1129
+ a(X, j367) :- a(X, n366).
1130
+ a(X, n368) :- a(X, n367).
1131
+ a(X, i368) :- a(X, n367).
1132
+ a(X, j368) :- a(X, n367).
1133
+ a(X, n369) :- a(X, n368).
1134
+ a(X, i369) :- a(X, n368).
1135
+ a(X, j369) :- a(X, n368).
1136
+ a(X, n370) :- a(X, n369).
1137
+ a(X, i370) :- a(X, n369).
1138
+ a(X, j370) :- a(X, n369).
1139
+ a(X, n371) :- a(X, n370).
1140
+ a(X, i371) :- a(X, n370).
1141
+ a(X, j371) :- a(X, n370).
1142
+ a(X, n372) :- a(X, n371).
1143
+ a(X, i372) :- a(X, n371).
1144
+ a(X, j372) :- a(X, n371).
1145
+ a(X, n373) :- a(X, n372).
1146
+ a(X, i373) :- a(X, n372).
1147
+ a(X, j373) :- a(X, n372).
1148
+ a(X, n374) :- a(X, n373).
1149
+ a(X, i374) :- a(X, n373).
1150
+ a(X, j374) :- a(X, n373).
1151
+ a(X, n375) :- a(X, n374).
1152
+ a(X, i375) :- a(X, n374).
1153
+ a(X, j375) :- a(X, n374).
1154
+ a(X, n376) :- a(X, n375).
1155
+ a(X, i376) :- a(X, n375).
1156
+ a(X, j376) :- a(X, n375).
1157
+ a(X, n377) :- a(X, n376).
1158
+ a(X, i377) :- a(X, n376).
1159
+ a(X, j377) :- a(X, n376).
1160
+ a(X, n378) :- a(X, n377).
1161
+ a(X, i378) :- a(X, n377).
1162
+ a(X, j378) :- a(X, n377).
1163
+ a(X, n379) :- a(X, n378).
1164
+ a(X, i379) :- a(X, n378).
1165
+ a(X, j379) :- a(X, n378).
1166
+ a(X, n380) :- a(X, n379).
1167
+ a(X, i380) :- a(X, n379).
1168
+ a(X, j380) :- a(X, n379).
1169
+ a(X, n381) :- a(X, n380).
1170
+ a(X, i381) :- a(X, n380).
1171
+ a(X, j381) :- a(X, n380).
1172
+ a(X, n382) :- a(X, n381).
1173
+ a(X, i382) :- a(X, n381).
1174
+ a(X, j382) :- a(X, n381).
1175
+ a(X, n383) :- a(X, n382).
1176
+ a(X, i383) :- a(X, n382).
1177
+ a(X, j383) :- a(X, n382).
1178
+ a(X, n384) :- a(X, n383).
1179
+ a(X, i384) :- a(X, n383).
1180
+ a(X, j384) :- a(X, n383).
1181
+ a(X, n385) :- a(X, n384).
1182
+ a(X, i385) :- a(X, n384).
1183
+ a(X, j385) :- a(X, n384).
1184
+ a(X, n386) :- a(X, n385).
1185
+ a(X, i386) :- a(X, n385).
1186
+ a(X, j386) :- a(X, n385).
1187
+ a(X, n387) :- a(X, n386).
1188
+ a(X, i387) :- a(X, n386).
1189
+ a(X, j387) :- a(X, n386).
1190
+ a(X, n388) :- a(X, n387).
1191
+ a(X, i388) :- a(X, n387).
1192
+ a(X, j388) :- a(X, n387).
1193
+ a(X, n389) :- a(X, n388).
1194
+ a(X, i389) :- a(X, n388).
1195
+ a(X, j389) :- a(X, n388).
1196
+ a(X, n390) :- a(X, n389).
1197
+ a(X, i390) :- a(X, n389).
1198
+ a(X, j390) :- a(X, n389).
1199
+ a(X, n391) :- a(X, n390).
1200
+ a(X, i391) :- a(X, n390).
1201
+ a(X, j391) :- a(X, n390).
1202
+ a(X, n392) :- a(X, n391).
1203
+ a(X, i392) :- a(X, n391).
1204
+ a(X, j392) :- a(X, n391).
1205
+ a(X, n393) :- a(X, n392).
1206
+ a(X, i393) :- a(X, n392).
1207
+ a(X, j393) :- a(X, n392).
1208
+ a(X, n394) :- a(X, n393).
1209
+ a(X, i394) :- a(X, n393).
1210
+ a(X, j394) :- a(X, n393).
1211
+ a(X, n395) :- a(X, n394).
1212
+ a(X, i395) :- a(X, n394).
1213
+ a(X, j395) :- a(X, n394).
1214
+ a(X, n396) :- a(X, n395).
1215
+ a(X, i396) :- a(X, n395).
1216
+ a(X, j396) :- a(X, n395).
1217
+ a(X, n397) :- a(X, n396).
1218
+ a(X, i397) :- a(X, n396).
1219
+ a(X, j397) :- a(X, n396).
1220
+ a(X, n398) :- a(X, n397).
1221
+ a(X, i398) :- a(X, n397).
1222
+ a(X, j398) :- a(X, n397).
1223
+ a(X, n399) :- a(X, n398).
1224
+ a(X, i399) :- a(X, n398).
1225
+ a(X, j399) :- a(X, n398).
1226
+ a(X, n400) :- a(X, n399).
1227
+ a(X, i400) :- a(X, n399).
1228
+ a(X, j400) :- a(X, n399).
1229
+ a(X, n401) :- a(X, n400).
1230
+ a(X, i401) :- a(X, n400).
1231
+ a(X, j401) :- a(X, n400).
1232
+ a(X, n402) :- a(X, n401).
1233
+ a(X, i402) :- a(X, n401).
1234
+ a(X, j402) :- a(X, n401).
1235
+ a(X, n403) :- a(X, n402).
1236
+ a(X, i403) :- a(X, n402).
1237
+ a(X, j403) :- a(X, n402).
1238
+ a(X, n404) :- a(X, n403).
1239
+ a(X, i404) :- a(X, n403).
1240
+ a(X, j404) :- a(X, n403).
1241
+ a(X, n405) :- a(X, n404).
1242
+ a(X, i405) :- a(X, n404).
1243
+ a(X, j405) :- a(X, n404).
1244
+ a(X, n406) :- a(X, n405).
1245
+ a(X, i406) :- a(X, n405).
1246
+ a(X, j406) :- a(X, n405).
1247
+ a(X, n407) :- a(X, n406).
1248
+ a(X, i407) :- a(X, n406).
1249
+ a(X, j407) :- a(X, n406).
1250
+ a(X, n408) :- a(X, n407).
1251
+ a(X, i408) :- a(X, n407).
1252
+ a(X, j408) :- a(X, n407).
1253
+ a(X, n409) :- a(X, n408).
1254
+ a(X, i409) :- a(X, n408).
1255
+ a(X, j409) :- a(X, n408).
1256
+ a(X, n410) :- a(X, n409).
1257
+ a(X, i410) :- a(X, n409).
1258
+ a(X, j410) :- a(X, n409).
1259
+ a(X, n411) :- a(X, n410).
1260
+ a(X, i411) :- a(X, n410).
1261
+ a(X, j411) :- a(X, n410).
1262
+ a(X, n412) :- a(X, n411).
1263
+ a(X, i412) :- a(X, n411).
1264
+ a(X, j412) :- a(X, n411).
1265
+ a(X, n413) :- a(X, n412).
1266
+ a(X, i413) :- a(X, n412).
1267
+ a(X, j413) :- a(X, n412).
1268
+ a(X, n414) :- a(X, n413).
1269
+ a(X, i414) :- a(X, n413).
1270
+ a(X, j414) :- a(X, n413).
1271
+ a(X, n415) :- a(X, n414).
1272
+ a(X, i415) :- a(X, n414).
1273
+ a(X, j415) :- a(X, n414).
1274
+ a(X, n416) :- a(X, n415).
1275
+ a(X, i416) :- a(X, n415).
1276
+ a(X, j416) :- a(X, n415).
1277
+ a(X, n417) :- a(X, n416).
1278
+ a(X, i417) :- a(X, n416).
1279
+ a(X, j417) :- a(X, n416).
1280
+ a(X, n418) :- a(X, n417).
1281
+ a(X, i418) :- a(X, n417).
1282
+ a(X, j418) :- a(X, n417).
1283
+ a(X, n419) :- a(X, n418).
1284
+ a(X, i419) :- a(X, n418).
1285
+ a(X, j419) :- a(X, n418).
1286
+ a(X, n420) :- a(X, n419).
1287
+ a(X, i420) :- a(X, n419).
1288
+ a(X, j420) :- a(X, n419).
1289
+ a(X, n421) :- a(X, n420).
1290
+ a(X, i421) :- a(X, n420).
1291
+ a(X, j421) :- a(X, n420).
1292
+ a(X, n422) :- a(X, n421).
1293
+ a(X, i422) :- a(X, n421).
1294
+ a(X, j422) :- a(X, n421).
1295
+ a(X, n423) :- a(X, n422).
1296
+ a(X, i423) :- a(X, n422).
1297
+ a(X, j423) :- a(X, n422).
1298
+ a(X, n424) :- a(X, n423).
1299
+ a(X, i424) :- a(X, n423).
1300
+ a(X, j424) :- a(X, n423).
1301
+ a(X, n425) :- a(X, n424).
1302
+ a(X, i425) :- a(X, n424).
1303
+ a(X, j425) :- a(X, n424).
1304
+ a(X, n426) :- a(X, n425).
1305
+ a(X, i426) :- a(X, n425).
1306
+ a(X, j426) :- a(X, n425).
1307
+ a(X, n427) :- a(X, n426).
1308
+ a(X, i427) :- a(X, n426).
1309
+ a(X, j427) :- a(X, n426).
1310
+ a(X, n428) :- a(X, n427).
1311
+ a(X, i428) :- a(X, n427).
1312
+ a(X, j428) :- a(X, n427).
1313
+ a(X, n429) :- a(X, n428).
1314
+ a(X, i429) :- a(X, n428).
1315
+ a(X, j429) :- a(X, n428).
1316
+ a(X, n430) :- a(X, n429).
1317
+ a(X, i430) :- a(X, n429).
1318
+ a(X, j430) :- a(X, n429).
1319
+ a(X, n431) :- a(X, n430).
1320
+ a(X, i431) :- a(X, n430).
1321
+ a(X, j431) :- a(X, n430).
1322
+ a(X, n432) :- a(X, n431).
1323
+ a(X, i432) :- a(X, n431).
1324
+ a(X, j432) :- a(X, n431).
1325
+ a(X, n433) :- a(X, n432).
1326
+ a(X, i433) :- a(X, n432).
1327
+ a(X, j433) :- a(X, n432).
1328
+ a(X, n434) :- a(X, n433).
1329
+ a(X, i434) :- a(X, n433).
1330
+ a(X, j434) :- a(X, n433).
1331
+ a(X, n435) :- a(X, n434).
1332
+ a(X, i435) :- a(X, n434).
1333
+ a(X, j435) :- a(X, n434).
1334
+ a(X, n436) :- a(X, n435).
1335
+ a(X, i436) :- a(X, n435).
1336
+ a(X, j436) :- a(X, n435).
1337
+ a(X, n437) :- a(X, n436).
1338
+ a(X, i437) :- a(X, n436).
1339
+ a(X, j437) :- a(X, n436).
1340
+ a(X, n438) :- a(X, n437).
1341
+ a(X, i438) :- a(X, n437).
1342
+ a(X, j438) :- a(X, n437).
1343
+ a(X, n439) :- a(X, n438).
1344
+ a(X, i439) :- a(X, n438).
1345
+ a(X, j439) :- a(X, n438).
1346
+ a(X, n440) :- a(X, n439).
1347
+ a(X, i440) :- a(X, n439).
1348
+ a(X, j440) :- a(X, n439).
1349
+ a(X, n441) :- a(X, n440).
1350
+ a(X, i441) :- a(X, n440).
1351
+ a(X, j441) :- a(X, n440).
1352
+ a(X, n442) :- a(X, n441).
1353
+ a(X, i442) :- a(X, n441).
1354
+ a(X, j442) :- a(X, n441).
1355
+ a(X, n443) :- a(X, n442).
1356
+ a(X, i443) :- a(X, n442).
1357
+ a(X, j443) :- a(X, n442).
1358
+ a(X, n444) :- a(X, n443).
1359
+ a(X, i444) :- a(X, n443).
1360
+ a(X, j444) :- a(X, n443).
1361
+ a(X, n445) :- a(X, n444).
1362
+ a(X, i445) :- a(X, n444).
1363
+ a(X, j445) :- a(X, n444).
1364
+ a(X, n446) :- a(X, n445).
1365
+ a(X, i446) :- a(X, n445).
1366
+ a(X, j446) :- a(X, n445).
1367
+ a(X, n447) :- a(X, n446).
1368
+ a(X, i447) :- a(X, n446).
1369
+ a(X, j447) :- a(X, n446).
1370
+ a(X, n448) :- a(X, n447).
1371
+ a(X, i448) :- a(X, n447).
1372
+ a(X, j448) :- a(X, n447).
1373
+ a(X, n449) :- a(X, n448).
1374
+ a(X, i449) :- a(X, n448).
1375
+ a(X, j449) :- a(X, n448).
1376
+ a(X, n450) :- a(X, n449).
1377
+ a(X, i450) :- a(X, n449).
1378
+ a(X, j450) :- a(X, n449).
1379
+ a(X, n451) :- a(X, n450).
1380
+ a(X, i451) :- a(X, n450).
1381
+ a(X, j451) :- a(X, n450).
1382
+ a(X, n452) :- a(X, n451).
1383
+ a(X, i452) :- a(X, n451).
1384
+ a(X, j452) :- a(X, n451).
1385
+ a(X, n453) :- a(X, n452).
1386
+ a(X, i453) :- a(X, n452).
1387
+ a(X, j453) :- a(X, n452).
1388
+ a(X, n454) :- a(X, n453).
1389
+ a(X, i454) :- a(X, n453).
1390
+ a(X, j454) :- a(X, n453).
1391
+ a(X, n455) :- a(X, n454).
1392
+ a(X, i455) :- a(X, n454).
1393
+ a(X, j455) :- a(X, n454).
1394
+ a(X, n456) :- a(X, n455).
1395
+ a(X, i456) :- a(X, n455).
1396
+ a(X, j456) :- a(X, n455).
1397
+ a(X, n457) :- a(X, n456).
1398
+ a(X, i457) :- a(X, n456).
1399
+ a(X, j457) :- a(X, n456).
1400
+ a(X, n458) :- a(X, n457).
1401
+ a(X, i458) :- a(X, n457).
1402
+ a(X, j458) :- a(X, n457).
1403
+ a(X, n459) :- a(X, n458).
1404
+ a(X, i459) :- a(X, n458).
1405
+ a(X, j459) :- a(X, n458).
1406
+ a(X, n460) :- a(X, n459).
1407
+ a(X, i460) :- a(X, n459).
1408
+ a(X, j460) :- a(X, n459).
1409
+ a(X, n461) :- a(X, n460).
1410
+ a(X, i461) :- a(X, n460).
1411
+ a(X, j461) :- a(X, n460).
1412
+ a(X, n462) :- a(X, n461).
1413
+ a(X, i462) :- a(X, n461).
1414
+ a(X, j462) :- a(X, n461).
1415
+ a(X, n463) :- a(X, n462).
1416
+ a(X, i463) :- a(X, n462).
1417
+ a(X, j463) :- a(X, n462).
1418
+ a(X, n464) :- a(X, n463).
1419
+ a(X, i464) :- a(X, n463).
1420
+ a(X, j464) :- a(X, n463).
1421
+ a(X, n465) :- a(X, n464).
1422
+ a(X, i465) :- a(X, n464).
1423
+ a(X, j465) :- a(X, n464).
1424
+ a(X, n466) :- a(X, n465).
1425
+ a(X, i466) :- a(X, n465).
1426
+ a(X, j466) :- a(X, n465).
1427
+ a(X, n467) :- a(X, n466).
1428
+ a(X, i467) :- a(X, n466).
1429
+ a(X, j467) :- a(X, n466).
1430
+ a(X, n468) :- a(X, n467).
1431
+ a(X, i468) :- a(X, n467).
1432
+ a(X, j468) :- a(X, n467).
1433
+ a(X, n469) :- a(X, n468).
1434
+ a(X, i469) :- a(X, n468).
1435
+ a(X, j469) :- a(X, n468).
1436
+ a(X, n470) :- a(X, n469).
1437
+ a(X, i470) :- a(X, n469).
1438
+ a(X, j470) :- a(X, n469).
1439
+ a(X, n471) :- a(X, n470).
1440
+ a(X, i471) :- a(X, n470).
1441
+ a(X, j471) :- a(X, n470).
1442
+ a(X, n472) :- a(X, n471).
1443
+ a(X, i472) :- a(X, n471).
1444
+ a(X, j472) :- a(X, n471).
1445
+ a(X, n473) :- a(X, n472).
1446
+ a(X, i473) :- a(X, n472).
1447
+ a(X, j473) :- a(X, n472).
1448
+ a(X, n474) :- a(X, n473).
1449
+ a(X, i474) :- a(X, n473).
1450
+ a(X, j474) :- a(X, n473).
1451
+ a(X, n475) :- a(X, n474).
1452
+ a(X, i475) :- a(X, n474).
1453
+ a(X, j475) :- a(X, n474).
1454
+ a(X, n476) :- a(X, n475).
1455
+ a(X, i476) :- a(X, n475).
1456
+ a(X, j476) :- a(X, n475).
1457
+ a(X, n477) :- a(X, n476).
1458
+ a(X, i477) :- a(X, n476).
1459
+ a(X, j477) :- a(X, n476).
1460
+ a(X, n478) :- a(X, n477).
1461
+ a(X, i478) :- a(X, n477).
1462
+ a(X, j478) :- a(X, n477).
1463
+ a(X, n479) :- a(X, n478).
1464
+ a(X, i479) :- a(X, n478).
1465
+ a(X, j479) :- a(X, n478).
1466
+ a(X, n480) :- a(X, n479).
1467
+ a(X, i480) :- a(X, n479).
1468
+ a(X, j480) :- a(X, n479).
1469
+ a(X, n481) :- a(X, n480).
1470
+ a(X, i481) :- a(X, n480).
1471
+ a(X, j481) :- a(X, n480).
1472
+ a(X, n482) :- a(X, n481).
1473
+ a(X, i482) :- a(X, n481).
1474
+ a(X, j482) :- a(X, n481).
1475
+ a(X, n483) :- a(X, n482).
1476
+ a(X, i483) :- a(X, n482).
1477
+ a(X, j483) :- a(X, n482).
1478
+ a(X, n484) :- a(X, n483).
1479
+ a(X, i484) :- a(X, n483).
1480
+ a(X, j484) :- a(X, n483).
1481
+ a(X, n485) :- a(X, n484).
1482
+ a(X, i485) :- a(X, n484).
1483
+ a(X, j485) :- a(X, n484).
1484
+ a(X, n486) :- a(X, n485).
1485
+ a(X, i486) :- a(X, n485).
1486
+ a(X, j486) :- a(X, n485).
1487
+ a(X, n487) :- a(X, n486).
1488
+ a(X, i487) :- a(X, n486).
1489
+ a(X, j487) :- a(X, n486).
1490
+ a(X, n488) :- a(X, n487).
1491
+ a(X, i488) :- a(X, n487).
1492
+ a(X, j488) :- a(X, n487).
1493
+ a(X, n489) :- a(X, n488).
1494
+ a(X, i489) :- a(X, n488).
1495
+ a(X, j489) :- a(X, n488).
1496
+ a(X, n490) :- a(X, n489).
1497
+ a(X, i490) :- a(X, n489).
1498
+ a(X, j490) :- a(X, n489).
1499
+ a(X, n491) :- a(X, n490).
1500
+ a(X, i491) :- a(X, n490).
1501
+ a(X, j491) :- a(X, n490).
1502
+ a(X, n492) :- a(X, n491).
1503
+ a(X, i492) :- a(X, n491).
1504
+ a(X, j492) :- a(X, n491).
1505
+ a(X, n493) :- a(X, n492).
1506
+ a(X, i493) :- a(X, n492).
1507
+ a(X, j493) :- a(X, n492).
1508
+ a(X, n494) :- a(X, n493).
1509
+ a(X, i494) :- a(X, n493).
1510
+ a(X, j494) :- a(X, n493).
1511
+ a(X, n495) :- a(X, n494).
1512
+ a(X, i495) :- a(X, n494).
1513
+ a(X, j495) :- a(X, n494).
1514
+ a(X, n496) :- a(X, n495).
1515
+ a(X, i496) :- a(X, n495).
1516
+ a(X, j496) :- a(X, n495).
1517
+ a(X, n497) :- a(X, n496).
1518
+ a(X, i497) :- a(X, n496).
1519
+ a(X, j497) :- a(X, n496).
1520
+ a(X, n498) :- a(X, n497).
1521
+ a(X, i498) :- a(X, n497).
1522
+ a(X, j498) :- a(X, n497).
1523
+ a(X, n499) :- a(X, n498).
1524
+ a(X, i499) :- a(X, n498).
1525
+ a(X, j499) :- a(X, n498).
1526
+ a(X, n500) :- a(X, n499).
1527
+ a(X, i500) :- a(X, n499).
1528
+ a(X, j500) :- a(X, n499).
1529
+ a(X, n501) :- a(X, n500).
1530
+ a(X, i501) :- a(X, n500).
1531
+ a(X, j501) :- a(X, n500).
1532
+ a(X, n502) :- a(X, n501).
1533
+ a(X, i502) :- a(X, n501).
1534
+ a(X, j502) :- a(X, n501).
1535
+ a(X, n503) :- a(X, n502).
1536
+ a(X, i503) :- a(X, n502).
1537
+ a(X, j503) :- a(X, n502).
1538
+ a(X, n504) :- a(X, n503).
1539
+ a(X, i504) :- a(X, n503).
1540
+ a(X, j504) :- a(X, n503).
1541
+ a(X, n505) :- a(X, n504).
1542
+ a(X, i505) :- a(X, n504).
1543
+ a(X, j505) :- a(X, n504).
1544
+ a(X, n506) :- a(X, n505).
1545
+ a(X, i506) :- a(X, n505).
1546
+ a(X, j506) :- a(X, n505).
1547
+ a(X, n507) :- a(X, n506).
1548
+ a(X, i507) :- a(X, n506).
1549
+ a(X, j507) :- a(X, n506).
1550
+ a(X, n508) :- a(X, n507).
1551
+ a(X, i508) :- a(X, n507).
1552
+ a(X, j508) :- a(X, n507).
1553
+ a(X, n509) :- a(X, n508).
1554
+ a(X, i509) :- a(X, n508).
1555
+ a(X, j509) :- a(X, n508).
1556
+ a(X, n510) :- a(X, n509).
1557
+ a(X, i510) :- a(X, n509).
1558
+ a(X, j510) :- a(X, n509).
1559
+ a(X, n511) :- a(X, n510).
1560
+ a(X, i511) :- a(X, n510).
1561
+ a(X, j511) :- a(X, n510).
1562
+ a(X, n512) :- a(X, n511).
1563
+ a(X, i512) :- a(X, n511).
1564
+ a(X, j512) :- a(X, n511).
1565
+ a(X, n513) :- a(X, n512).
1566
+ a(X, i513) :- a(X, n512).
1567
+ a(X, j513) :- a(X, n512).
1568
+ a(X, n514) :- a(X, n513).
1569
+ a(X, i514) :- a(X, n513).
1570
+ a(X, j514) :- a(X, n513).
1571
+ a(X, n515) :- a(X, n514).
1572
+ a(X, i515) :- a(X, n514).
1573
+ a(X, j515) :- a(X, n514).
1574
+ a(X, n516) :- a(X, n515).
1575
+ a(X, i516) :- a(X, n515).
1576
+ a(X, j516) :- a(X, n515).
1577
+ a(X, n517) :- a(X, n516).
1578
+ a(X, i517) :- a(X, n516).
1579
+ a(X, j517) :- a(X, n516).
1580
+ a(X, n518) :- a(X, n517).
1581
+ a(X, i518) :- a(X, n517).
1582
+ a(X, j518) :- a(X, n517).
1583
+ a(X, n519) :- a(X, n518).
1584
+ a(X, i519) :- a(X, n518).
1585
+ a(X, j519) :- a(X, n518).
1586
+ a(X, n520) :- a(X, n519).
1587
+ a(X, i520) :- a(X, n519).
1588
+ a(X, j520) :- a(X, n519).
1589
+ a(X, n521) :- a(X, n520).
1590
+ a(X, i521) :- a(X, n520).
1591
+ a(X, j521) :- a(X, n520).
1592
+ a(X, n522) :- a(X, n521).
1593
+ a(X, i522) :- a(X, n521).
1594
+ a(X, j522) :- a(X, n521).
1595
+ a(X, n523) :- a(X, n522).
1596
+ a(X, i523) :- a(X, n522).
1597
+ a(X, j523) :- a(X, n522).
1598
+ a(X, n524) :- a(X, n523).
1599
+ a(X, i524) :- a(X, n523).
1600
+ a(X, j524) :- a(X, n523).
1601
+ a(X, n525) :- a(X, n524).
1602
+ a(X, i525) :- a(X, n524).
1603
+ a(X, j525) :- a(X, n524).
1604
+ a(X, n526) :- a(X, n525).
1605
+ a(X, i526) :- a(X, n525).
1606
+ a(X, j526) :- a(X, n525).
1607
+ a(X, n527) :- a(X, n526).
1608
+ a(X, i527) :- a(X, n526).
1609
+ a(X, j527) :- a(X, n526).
1610
+ a(X, n528) :- a(X, n527).
1611
+ a(X, i528) :- a(X, n527).
1612
+ a(X, j528) :- a(X, n527).
1613
+ a(X, n529) :- a(X, n528).
1614
+ a(X, i529) :- a(X, n528).
1615
+ a(X, j529) :- a(X, n528).
1616
+ a(X, n530) :- a(X, n529).
1617
+ a(X, i530) :- a(X, n529).
1618
+ a(X, j530) :- a(X, n529).
1619
+ a(X, n531) :- a(X, n530).
1620
+ a(X, i531) :- a(X, n530).
1621
+ a(X, j531) :- a(X, n530).
1622
+ a(X, n532) :- a(X, n531).
1623
+ a(X, i532) :- a(X, n531).
1624
+ a(X, j532) :- a(X, n531).
1625
+ a(X, n533) :- a(X, n532).
1626
+ a(X, i533) :- a(X, n532).
1627
+ a(X, j533) :- a(X, n532).
1628
+ a(X, n534) :- a(X, n533).
1629
+ a(X, i534) :- a(X, n533).
1630
+ a(X, j534) :- a(X, n533).
1631
+ a(X, n535) :- a(X, n534).
1632
+ a(X, i535) :- a(X, n534).
1633
+ a(X, j535) :- a(X, n534).
1634
+ a(X, n536) :- a(X, n535).
1635
+ a(X, i536) :- a(X, n535).
1636
+ a(X, j536) :- a(X, n535).
1637
+ a(X, n537) :- a(X, n536).
1638
+ a(X, i537) :- a(X, n536).
1639
+ a(X, j537) :- a(X, n536).
1640
+ a(X, n538) :- a(X, n537).
1641
+ a(X, i538) :- a(X, n537).
1642
+ a(X, j538) :- a(X, n537).
1643
+ a(X, n539) :- a(X, n538).
1644
+ a(X, i539) :- a(X, n538).
1645
+ a(X, j539) :- a(X, n538).
1646
+ a(X, n540) :- a(X, n539).
1647
+ a(X, i540) :- a(X, n539).
1648
+ a(X, j540) :- a(X, n539).
1649
+ a(X, n541) :- a(X, n540).
1650
+ a(X, i541) :- a(X, n540).
1651
+ a(X, j541) :- a(X, n540).
1652
+ a(X, n542) :- a(X, n541).
1653
+ a(X, i542) :- a(X, n541).
1654
+ a(X, j542) :- a(X, n541).
1655
+ a(X, n543) :- a(X, n542).
1656
+ a(X, i543) :- a(X, n542).
1657
+ a(X, j543) :- a(X, n542).
1658
+ a(X, n544) :- a(X, n543).
1659
+ a(X, i544) :- a(X, n543).
1660
+ a(X, j544) :- a(X, n543).
1661
+ a(X, n545) :- a(X, n544).
1662
+ a(X, i545) :- a(X, n544).
1663
+ a(X, j545) :- a(X, n544).
1664
+ a(X, n546) :- a(X, n545).
1665
+ a(X, i546) :- a(X, n545).
1666
+ a(X, j546) :- a(X, n545).
1667
+ a(X, n547) :- a(X, n546).
1668
+ a(X, i547) :- a(X, n546).
1669
+ a(X, j547) :- a(X, n546).
1670
+ a(X, n548) :- a(X, n547).
1671
+ a(X, i548) :- a(X, n547).
1672
+ a(X, j548) :- a(X, n547).
1673
+ a(X, n549) :- a(X, n548).
1674
+ a(X, i549) :- a(X, n548).
1675
+ a(X, j549) :- a(X, n548).
1676
+ a(X, n550) :- a(X, n549).
1677
+ a(X, i550) :- a(X, n549).
1678
+ a(X, j550) :- a(X, n549).
1679
+ a(X, n551) :- a(X, n550).
1680
+ a(X, i551) :- a(X, n550).
1681
+ a(X, j551) :- a(X, n550).
1682
+ a(X, n552) :- a(X, n551).
1683
+ a(X, i552) :- a(X, n551).
1684
+ a(X, j552) :- a(X, n551).
1685
+ a(X, n553) :- a(X, n552).
1686
+ a(X, i553) :- a(X, n552).
1687
+ a(X, j553) :- a(X, n552).
1688
+ a(X, n554) :- a(X, n553).
1689
+ a(X, i554) :- a(X, n553).
1690
+ a(X, j554) :- a(X, n553).
1691
+ a(X, n555) :- a(X, n554).
1692
+ a(X, i555) :- a(X, n554).
1693
+ a(X, j555) :- a(X, n554).
1694
+ a(X, n556) :- a(X, n555).
1695
+ a(X, i556) :- a(X, n555).
1696
+ a(X, j556) :- a(X, n555).
1697
+ a(X, n557) :- a(X, n556).
1698
+ a(X, i557) :- a(X, n556).
1699
+ a(X, j557) :- a(X, n556).
1700
+ a(X, n558) :- a(X, n557).
1701
+ a(X, i558) :- a(X, n557).
1702
+ a(X, j558) :- a(X, n557).
1703
+ a(X, n559) :- a(X, n558).
1704
+ a(X, i559) :- a(X, n558).
1705
+ a(X, j559) :- a(X, n558).
1706
+ a(X, n560) :- a(X, n559).
1707
+ a(X, i560) :- a(X, n559).
1708
+ a(X, j560) :- a(X, n559).
1709
+ a(X, n561) :- a(X, n560).
1710
+ a(X, i561) :- a(X, n560).
1711
+ a(X, j561) :- a(X, n560).
1712
+ a(X, n562) :- a(X, n561).
1713
+ a(X, i562) :- a(X, n561).
1714
+ a(X, j562) :- a(X, n561).
1715
+ a(X, n563) :- a(X, n562).
1716
+ a(X, i563) :- a(X, n562).
1717
+ a(X, j563) :- a(X, n562).
1718
+ a(X, n564) :- a(X, n563).
1719
+ a(X, i564) :- a(X, n563).
1720
+ a(X, j564) :- a(X, n563).
1721
+ a(X, n565) :- a(X, n564).
1722
+ a(X, i565) :- a(X, n564).
1723
+ a(X, j565) :- a(X, n564).
1724
+ a(X, n566) :- a(X, n565).
1725
+ a(X, i566) :- a(X, n565).
1726
+ a(X, j566) :- a(X, n565).
1727
+ a(X, n567) :- a(X, n566).
1728
+ a(X, i567) :- a(X, n566).
1729
+ a(X, j567) :- a(X, n566).
1730
+ a(X, n568) :- a(X, n567).
1731
+ a(X, i568) :- a(X, n567).
1732
+ a(X, j568) :- a(X, n567).
1733
+ a(X, n569) :- a(X, n568).
1734
+ a(X, i569) :- a(X, n568).
1735
+ a(X, j569) :- a(X, n568).
1736
+ a(X, n570) :- a(X, n569).
1737
+ a(X, i570) :- a(X, n569).
1738
+ a(X, j570) :- a(X, n569).
1739
+ a(X, n571) :- a(X, n570).
1740
+ a(X, i571) :- a(X, n570).
1741
+ a(X, j571) :- a(X, n570).
1742
+ a(X, n572) :- a(X, n571).
1743
+ a(X, i572) :- a(X, n571).
1744
+ a(X, j572) :- a(X, n571).
1745
+ a(X, n573) :- a(X, n572).
1746
+ a(X, i573) :- a(X, n572).
1747
+ a(X, j573) :- a(X, n572).
1748
+ a(X, n574) :- a(X, n573).
1749
+ a(X, i574) :- a(X, n573).
1750
+ a(X, j574) :- a(X, n573).
1751
+ a(X, n575) :- a(X, n574).
1752
+ a(X, i575) :- a(X, n574).
1753
+ a(X, j575) :- a(X, n574).
1754
+ a(X, n576) :- a(X, n575).
1755
+ a(X, i576) :- a(X, n575).
1756
+ a(X, j576) :- a(X, n575).
1757
+ a(X, n577) :- a(X, n576).
1758
+ a(X, i577) :- a(X, n576).
1759
+ a(X, j577) :- a(X, n576).
1760
+ a(X, n578) :- a(X, n577).
1761
+ a(X, i578) :- a(X, n577).
1762
+ a(X, j578) :- a(X, n577).
1763
+ a(X, n579) :- a(X, n578).
1764
+ a(X, i579) :- a(X, n578).
1765
+ a(X, j579) :- a(X, n578).
1766
+ a(X, n580) :- a(X, n579).
1767
+ a(X, i580) :- a(X, n579).
1768
+ a(X, j580) :- a(X, n579).
1769
+ a(X, n581) :- a(X, n580).
1770
+ a(X, i581) :- a(X, n580).
1771
+ a(X, j581) :- a(X, n580).
1772
+ a(X, n582) :- a(X, n581).
1773
+ a(X, i582) :- a(X, n581).
1774
+ a(X, j582) :- a(X, n581).
1775
+ a(X, n583) :- a(X, n582).
1776
+ a(X, i583) :- a(X, n582).
1777
+ a(X, j583) :- a(X, n582).
1778
+ a(X, n584) :- a(X, n583).
1779
+ a(X, i584) :- a(X, n583).
1780
+ a(X, j584) :- a(X, n583).
1781
+ a(X, n585) :- a(X, n584).
1782
+ a(X, i585) :- a(X, n584).
1783
+ a(X, j585) :- a(X, n584).
1784
+ a(X, n586) :- a(X, n585).
1785
+ a(X, i586) :- a(X, n585).
1786
+ a(X, j586) :- a(X, n585).
1787
+ a(X, n587) :- a(X, n586).
1788
+ a(X, i587) :- a(X, n586).
1789
+ a(X, j587) :- a(X, n586).
1790
+ a(X, n588) :- a(X, n587).
1791
+ a(X, i588) :- a(X, n587).
1792
+ a(X, j588) :- a(X, n587).
1793
+ a(X, n589) :- a(X, n588).
1794
+ a(X, i589) :- a(X, n588).
1795
+ a(X, j589) :- a(X, n588).
1796
+ a(X, n590) :- a(X, n589).
1797
+ a(X, i590) :- a(X, n589).
1798
+ a(X, j590) :- a(X, n589).
1799
+ a(X, n591) :- a(X, n590).
1800
+ a(X, i591) :- a(X, n590).
1801
+ a(X, j591) :- a(X, n590).
1802
+ a(X, n592) :- a(X, n591).
1803
+ a(X, i592) :- a(X, n591).
1804
+ a(X, j592) :- a(X, n591).
1805
+ a(X, n593) :- a(X, n592).
1806
+ a(X, i593) :- a(X, n592).
1807
+ a(X, j593) :- a(X, n592).
1808
+ a(X, n594) :- a(X, n593).
1809
+ a(X, i594) :- a(X, n593).
1810
+ a(X, j594) :- a(X, n593).
1811
+ a(X, n595) :- a(X, n594).
1812
+ a(X, i595) :- a(X, n594).
1813
+ a(X, j595) :- a(X, n594).
1814
+ a(X, n596) :- a(X, n595).
1815
+ a(X, i596) :- a(X, n595).
1816
+ a(X, j596) :- a(X, n595).
1817
+ a(X, n597) :- a(X, n596).
1818
+ a(X, i597) :- a(X, n596).
1819
+ a(X, j597) :- a(X, n596).
1820
+ a(X, n598) :- a(X, n597).
1821
+ a(X, i598) :- a(X, n597).
1822
+ a(X, j598) :- a(X, n597).
1823
+ a(X, n599) :- a(X, n598).
1824
+ a(X, i599) :- a(X, n598).
1825
+ a(X, j599) :- a(X, n598).
1826
+ a(X, n600) :- a(X, n599).
1827
+ a(X, i600) :- a(X, n599).
1828
+ a(X, j600) :- a(X, n599).
1829
+ a(X, n601) :- a(X, n600).
1830
+ a(X, i601) :- a(X, n600).
1831
+ a(X, j601) :- a(X, n600).
1832
+ a(X, n602) :- a(X, n601).
1833
+ a(X, i602) :- a(X, n601).
1834
+ a(X, j602) :- a(X, n601).
1835
+ a(X, n603) :- a(X, n602).
1836
+ a(X, i603) :- a(X, n602).
1837
+ a(X, j603) :- a(X, n602).
1838
+ a(X, n604) :- a(X, n603).
1839
+ a(X, i604) :- a(X, n603).
1840
+ a(X, j604) :- a(X, n603).
1841
+ a(X, n605) :- a(X, n604).
1842
+ a(X, i605) :- a(X, n604).
1843
+ a(X, j605) :- a(X, n604).
1844
+ a(X, n606) :- a(X, n605).
1845
+ a(X, i606) :- a(X, n605).
1846
+ a(X, j606) :- a(X, n605).
1847
+ a(X, n607) :- a(X, n606).
1848
+ a(X, i607) :- a(X, n606).
1849
+ a(X, j607) :- a(X, n606).
1850
+ a(X, n608) :- a(X, n607).
1851
+ a(X, i608) :- a(X, n607).
1852
+ a(X, j608) :- a(X, n607).
1853
+ a(X, n609) :- a(X, n608).
1854
+ a(X, i609) :- a(X, n608).
1855
+ a(X, j609) :- a(X, n608).
1856
+ a(X, n610) :- a(X, n609).
1857
+ a(X, i610) :- a(X, n609).
1858
+ a(X, j610) :- a(X, n609).
1859
+ a(X, n611) :- a(X, n610).
1860
+ a(X, i611) :- a(X, n610).
1861
+ a(X, j611) :- a(X, n610).
1862
+ a(X, n612) :- a(X, n611).
1863
+ a(X, i612) :- a(X, n611).
1864
+ a(X, j612) :- a(X, n611).
1865
+ a(X, n613) :- a(X, n612).
1866
+ a(X, i613) :- a(X, n612).
1867
+ a(X, j613) :- a(X, n612).
1868
+ a(X, n614) :- a(X, n613).
1869
+ a(X, i614) :- a(X, n613).
1870
+ a(X, j614) :- a(X, n613).
1871
+ a(X, n615) :- a(X, n614).
1872
+ a(X, i615) :- a(X, n614).
1873
+ a(X, j615) :- a(X, n614).
1874
+ a(X, n616) :- a(X, n615).
1875
+ a(X, i616) :- a(X, n615).
1876
+ a(X, j616) :- a(X, n615).
1877
+ a(X, n617) :- a(X, n616).
1878
+ a(X, i617) :- a(X, n616).
1879
+ a(X, j617) :- a(X, n616).
1880
+ a(X, n618) :- a(X, n617).
1881
+ a(X, i618) :- a(X, n617).
1882
+ a(X, j618) :- a(X, n617).
1883
+ a(X, n619) :- a(X, n618).
1884
+ a(X, i619) :- a(X, n618).
1885
+ a(X, j619) :- a(X, n618).
1886
+ a(X, n620) :- a(X, n619).
1887
+ a(X, i620) :- a(X, n619).
1888
+ a(X, j620) :- a(X, n619).
1889
+ a(X, n621) :- a(X, n620).
1890
+ a(X, i621) :- a(X, n620).
1891
+ a(X, j621) :- a(X, n620).
1892
+ a(X, n622) :- a(X, n621).
1893
+ a(X, i622) :- a(X, n621).
1894
+ a(X, j622) :- a(X, n621).
1895
+ a(X, n623) :- a(X, n622).
1896
+ a(X, i623) :- a(X, n622).
1897
+ a(X, j623) :- a(X, n622).
1898
+ a(X, n624) :- a(X, n623).
1899
+ a(X, i624) :- a(X, n623).
1900
+ a(X, j624) :- a(X, n623).
1901
+ a(X, n625) :- a(X, n624).
1902
+ a(X, i625) :- a(X, n624).
1903
+ a(X, j625) :- a(X, n624).
1904
+ a(X, n626) :- a(X, n625).
1905
+ a(X, i626) :- a(X, n625).
1906
+ a(X, j626) :- a(X, n625).
1907
+ a(X, n627) :- a(X, n626).
1908
+ a(X, i627) :- a(X, n626).
1909
+ a(X, j627) :- a(X, n626).
1910
+ a(X, n628) :- a(X, n627).
1911
+ a(X, i628) :- a(X, n627).
1912
+ a(X, j628) :- a(X, n627).
1913
+ a(X, n629) :- a(X, n628).
1914
+ a(X, i629) :- a(X, n628).
1915
+ a(X, j629) :- a(X, n628).
1916
+ a(X, n630) :- a(X, n629).
1917
+ a(X, i630) :- a(X, n629).
1918
+ a(X, j630) :- a(X, n629).
1919
+ a(X, n631) :- a(X, n630).
1920
+ a(X, i631) :- a(X, n630).
1921
+ a(X, j631) :- a(X, n630).
1922
+ a(X, n632) :- a(X, n631).
1923
+ a(X, i632) :- a(X, n631).
1924
+ a(X, j632) :- a(X, n631).
1925
+ a(X, n633) :- a(X, n632).
1926
+ a(X, i633) :- a(X, n632).
1927
+ a(X, j633) :- a(X, n632).
1928
+ a(X, n634) :- a(X, n633).
1929
+ a(X, i634) :- a(X, n633).
1930
+ a(X, j634) :- a(X, n633).
1931
+ a(X, n635) :- a(X, n634).
1932
+ a(X, i635) :- a(X, n634).
1933
+ a(X, j635) :- a(X, n634).
1934
+ a(X, n636) :- a(X, n635).
1935
+ a(X, i636) :- a(X, n635).
1936
+ a(X, j636) :- a(X, n635).
1937
+ a(X, n637) :- a(X, n636).
1938
+ a(X, i637) :- a(X, n636).
1939
+ a(X, j637) :- a(X, n636).
1940
+ a(X, n638) :- a(X, n637).
1941
+ a(X, i638) :- a(X, n637).
1942
+ a(X, j638) :- a(X, n637).
1943
+ a(X, n639) :- a(X, n638).
1944
+ a(X, i639) :- a(X, n638).
1945
+ a(X, j639) :- a(X, n638).
1946
+ a(X, n640) :- a(X, n639).
1947
+ a(X, i640) :- a(X, n639).
1948
+ a(X, j640) :- a(X, n639).
1949
+ a(X, n641) :- a(X, n640).
1950
+ a(X, i641) :- a(X, n640).
1951
+ a(X, j641) :- a(X, n640).
1952
+ a(X, n642) :- a(X, n641).
1953
+ a(X, i642) :- a(X, n641).
1954
+ a(X, j642) :- a(X, n641).
1955
+ a(X, n643) :- a(X, n642).
1956
+ a(X, i643) :- a(X, n642).
1957
+ a(X, j643) :- a(X, n642).
1958
+ a(X, n644) :- a(X, n643).
1959
+ a(X, i644) :- a(X, n643).
1960
+ a(X, j644) :- a(X, n643).
1961
+ a(X, n645) :- a(X, n644).
1962
+ a(X, i645) :- a(X, n644).
1963
+ a(X, j645) :- a(X, n644).
1964
+ a(X, n646) :- a(X, n645).
1965
+ a(X, i646) :- a(X, n645).
1966
+ a(X, j646) :- a(X, n645).
1967
+ a(X, n647) :- a(X, n646).
1968
+ a(X, i647) :- a(X, n646).
1969
+ a(X, j647) :- a(X, n646).
1970
+ a(X, n648) :- a(X, n647).
1971
+ a(X, i648) :- a(X, n647).
1972
+ a(X, j648) :- a(X, n647).
1973
+ a(X, n649) :- a(X, n648).
1974
+ a(X, i649) :- a(X, n648).
1975
+ a(X, j649) :- a(X, n648).
1976
+ a(X, n650) :- a(X, n649).
1977
+ a(X, i650) :- a(X, n649).
1978
+ a(X, j650) :- a(X, n649).
1979
+ a(X, n651) :- a(X, n650).
1980
+ a(X, i651) :- a(X, n650).
1981
+ a(X, j651) :- a(X, n650).
1982
+ a(X, n652) :- a(X, n651).
1983
+ a(X, i652) :- a(X, n651).
1984
+ a(X, j652) :- a(X, n651).
1985
+ a(X, n653) :- a(X, n652).
1986
+ a(X, i653) :- a(X, n652).
1987
+ a(X, j653) :- a(X, n652).
1988
+ a(X, n654) :- a(X, n653).
1989
+ a(X, i654) :- a(X, n653).
1990
+ a(X, j654) :- a(X, n653).
1991
+ a(X, n655) :- a(X, n654).
1992
+ a(X, i655) :- a(X, n654).
1993
+ a(X, j655) :- a(X, n654).
1994
+ a(X, n656) :- a(X, n655).
1995
+ a(X, i656) :- a(X, n655).
1996
+ a(X, j656) :- a(X, n655).
1997
+ a(X, n657) :- a(X, n656).
1998
+ a(X, i657) :- a(X, n656).
1999
+ a(X, j657) :- a(X, n656).
2000
+ a(X, n658) :- a(X, n657).
2001
+ a(X, i658) :- a(X, n657).
2002
+ a(X, j658) :- a(X, n657).
2003
+ a(X, n659) :- a(X, n658).
2004
+ a(X, i659) :- a(X, n658).
2005
+ a(X, j659) :- a(X, n658).
2006
+ a(X, n660) :- a(X, n659).
2007
+ a(X, i660) :- a(X, n659).
2008
+ a(X, j660) :- a(X, n659).
2009
+ a(X, n661) :- a(X, n660).
2010
+ a(X, i661) :- a(X, n660).
2011
+ a(X, j661) :- a(X, n660).
2012
+ a(X, n662) :- a(X, n661).
2013
+ a(X, i662) :- a(X, n661).
2014
+ a(X, j662) :- a(X, n661).
2015
+ a(X, n663) :- a(X, n662).
2016
+ a(X, i663) :- a(X, n662).
2017
+ a(X, j663) :- a(X, n662).
2018
+ a(X, n664) :- a(X, n663).
2019
+ a(X, i664) :- a(X, n663).
2020
+ a(X, j664) :- a(X, n663).
2021
+ a(X, n665) :- a(X, n664).
2022
+ a(X, i665) :- a(X, n664).
2023
+ a(X, j665) :- a(X, n664).
2024
+ a(X, n666) :- a(X, n665).
2025
+ a(X, i666) :- a(X, n665).
2026
+ a(X, j666) :- a(X, n665).
2027
+ a(X, n667) :- a(X, n666).
2028
+ a(X, i667) :- a(X, n666).
2029
+ a(X, j667) :- a(X, n666).
2030
+ a(X, n668) :- a(X, n667).
2031
+ a(X, i668) :- a(X, n667).
2032
+ a(X, j668) :- a(X, n667).
2033
+ a(X, n669) :- a(X, n668).
2034
+ a(X, i669) :- a(X, n668).
2035
+ a(X, j669) :- a(X, n668).
2036
+ a(X, n670) :- a(X, n669).
2037
+ a(X, i670) :- a(X, n669).
2038
+ a(X, j670) :- a(X, n669).
2039
+ a(X, n671) :- a(X, n670).
2040
+ a(X, i671) :- a(X, n670).
2041
+ a(X, j671) :- a(X, n670).
2042
+ a(X, n672) :- a(X, n671).
2043
+ a(X, i672) :- a(X, n671).
2044
+ a(X, j672) :- a(X, n671).
2045
+ a(X, n673) :- a(X, n672).
2046
+ a(X, i673) :- a(X, n672).
2047
+ a(X, j673) :- a(X, n672).
2048
+ a(X, n674) :- a(X, n673).
2049
+ a(X, i674) :- a(X, n673).
2050
+ a(X, j674) :- a(X, n673).
2051
+ a(X, n675) :- a(X, n674).
2052
+ a(X, i675) :- a(X, n674).
2053
+ a(X, j675) :- a(X, n674).
2054
+ a(X, n676) :- a(X, n675).
2055
+ a(X, i676) :- a(X, n675).
2056
+ a(X, j676) :- a(X, n675).
2057
+ a(X, n677) :- a(X, n676).
2058
+ a(X, i677) :- a(X, n676).
2059
+ a(X, j677) :- a(X, n676).
2060
+ a(X, n678) :- a(X, n677).
2061
+ a(X, i678) :- a(X, n677).
2062
+ a(X, j678) :- a(X, n677).
2063
+ a(X, n679) :- a(X, n678).
2064
+ a(X, i679) :- a(X, n678).
2065
+ a(X, j679) :- a(X, n678).
2066
+ a(X, n680) :- a(X, n679).
2067
+ a(X, i680) :- a(X, n679).
2068
+ a(X, j680) :- a(X, n679).
2069
+ a(X, n681) :- a(X, n680).
2070
+ a(X, i681) :- a(X, n680).
2071
+ a(X, j681) :- a(X, n680).
2072
+ a(X, n682) :- a(X, n681).
2073
+ a(X, i682) :- a(X, n681).
2074
+ a(X, j682) :- a(X, n681).
2075
+ a(X, n683) :- a(X, n682).
2076
+ a(X, i683) :- a(X, n682).
2077
+ a(X, j683) :- a(X, n682).
2078
+ a(X, n684) :- a(X, n683).
2079
+ a(X, i684) :- a(X, n683).
2080
+ a(X, j684) :- a(X, n683).
2081
+ a(X, n685) :- a(X, n684).
2082
+ a(X, i685) :- a(X, n684).
2083
+ a(X, j685) :- a(X, n684).
2084
+ a(X, n686) :- a(X, n685).
2085
+ a(X, i686) :- a(X, n685).
2086
+ a(X, j686) :- a(X, n685).
2087
+ a(X, n687) :- a(X, n686).
2088
+ a(X, i687) :- a(X, n686).
2089
+ a(X, j687) :- a(X, n686).
2090
+ a(X, n688) :- a(X, n687).
2091
+ a(X, i688) :- a(X, n687).
2092
+ a(X, j688) :- a(X, n687).
2093
+ a(X, n689) :- a(X, n688).
2094
+ a(X, i689) :- a(X, n688).
2095
+ a(X, j689) :- a(X, n688).
2096
+ a(X, n690) :- a(X, n689).
2097
+ a(X, i690) :- a(X, n689).
2098
+ a(X, j690) :- a(X, n689).
2099
+ a(X, n691) :- a(X, n690).
2100
+ a(X, i691) :- a(X, n690).
2101
+ a(X, j691) :- a(X, n690).
2102
+ a(X, n692) :- a(X, n691).
2103
+ a(X, i692) :- a(X, n691).
2104
+ a(X, j692) :- a(X, n691).
2105
+ a(X, n693) :- a(X, n692).
2106
+ a(X, i693) :- a(X, n692).
2107
+ a(X, j693) :- a(X, n692).
2108
+ a(X, n694) :- a(X, n693).
2109
+ a(X, i694) :- a(X, n693).
2110
+ a(X, j694) :- a(X, n693).
2111
+ a(X, n695) :- a(X, n694).
2112
+ a(X, i695) :- a(X, n694).
2113
+ a(X, j695) :- a(X, n694).
2114
+ a(X, n696) :- a(X, n695).
2115
+ a(X, i696) :- a(X, n695).
2116
+ a(X, j696) :- a(X, n695).
2117
+ a(X, n697) :- a(X, n696).
2118
+ a(X, i697) :- a(X, n696).
2119
+ a(X, j697) :- a(X, n696).
2120
+ a(X, n698) :- a(X, n697).
2121
+ a(X, i698) :- a(X, n697).
2122
+ a(X, j698) :- a(X, n697).
2123
+ a(X, n699) :- a(X, n698).
2124
+ a(X, i699) :- a(X, n698).
2125
+ a(X, j699) :- a(X, n698).
2126
+ a(X, n700) :- a(X, n699).
2127
+ a(X, i700) :- a(X, n699).
2128
+ a(X, j700) :- a(X, n699).
2129
+ a(X, n701) :- a(X, n700).
2130
+ a(X, i701) :- a(X, n700).
2131
+ a(X, j701) :- a(X, n700).
2132
+ a(X, n702) :- a(X, n701).
2133
+ a(X, i702) :- a(X, n701).
2134
+ a(X, j702) :- a(X, n701).
2135
+ a(X, n703) :- a(X, n702).
2136
+ a(X, i703) :- a(X, n702).
2137
+ a(X, j703) :- a(X, n702).
2138
+ a(X, n704) :- a(X, n703).
2139
+ a(X, i704) :- a(X, n703).
2140
+ a(X, j704) :- a(X, n703).
2141
+ a(X, n705) :- a(X, n704).
2142
+ a(X, i705) :- a(X, n704).
2143
+ a(X, j705) :- a(X, n704).
2144
+ a(X, n706) :- a(X, n705).
2145
+ a(X, i706) :- a(X, n705).
2146
+ a(X, j706) :- a(X, n705).
2147
+ a(X, n707) :- a(X, n706).
2148
+ a(X, i707) :- a(X, n706).
2149
+ a(X, j707) :- a(X, n706).
2150
+ a(X, n708) :- a(X, n707).
2151
+ a(X, i708) :- a(X, n707).
2152
+ a(X, j708) :- a(X, n707).
2153
+ a(X, n709) :- a(X, n708).
2154
+ a(X, i709) :- a(X, n708).
2155
+ a(X, j709) :- a(X, n708).
2156
+ a(X, n710) :- a(X, n709).
2157
+ a(X, i710) :- a(X, n709).
2158
+ a(X, j710) :- a(X, n709).
2159
+ a(X, n711) :- a(X, n710).
2160
+ a(X, i711) :- a(X, n710).
2161
+ a(X, j711) :- a(X, n710).
2162
+ a(X, n712) :- a(X, n711).
2163
+ a(X, i712) :- a(X, n711).
2164
+ a(X, j712) :- a(X, n711).
2165
+ a(X, n713) :- a(X, n712).
2166
+ a(X, i713) :- a(X, n712).
2167
+ a(X, j713) :- a(X, n712).
2168
+ a(X, n714) :- a(X, n713).
2169
+ a(X, i714) :- a(X, n713).
2170
+ a(X, j714) :- a(X, n713).
2171
+ a(X, n715) :- a(X, n714).
2172
+ a(X, i715) :- a(X, n714).
2173
+ a(X, j715) :- a(X, n714).
2174
+ a(X, n716) :- a(X, n715).
2175
+ a(X, i716) :- a(X, n715).
2176
+ a(X, j716) :- a(X, n715).
2177
+ a(X, n717) :- a(X, n716).
2178
+ a(X, i717) :- a(X, n716).
2179
+ a(X, j717) :- a(X, n716).
2180
+ a(X, n718) :- a(X, n717).
2181
+ a(X, i718) :- a(X, n717).
2182
+ a(X, j718) :- a(X, n717).
2183
+ a(X, n719) :- a(X, n718).
2184
+ a(X, i719) :- a(X, n718).
2185
+ a(X, j719) :- a(X, n718).
2186
+ a(X, n720) :- a(X, n719).
2187
+ a(X, i720) :- a(X, n719).
2188
+ a(X, j720) :- a(X, n719).
2189
+ a(X, n721) :- a(X, n720).
2190
+ a(X, i721) :- a(X, n720).
2191
+ a(X, j721) :- a(X, n720).
2192
+ a(X, n722) :- a(X, n721).
2193
+ a(X, i722) :- a(X, n721).
2194
+ a(X, j722) :- a(X, n721).
2195
+ a(X, n723) :- a(X, n722).
2196
+ a(X, i723) :- a(X, n722).
2197
+ a(X, j723) :- a(X, n722).
2198
+ a(X, n724) :- a(X, n723).
2199
+ a(X, i724) :- a(X, n723).
2200
+ a(X, j724) :- a(X, n723).
2201
+ a(X, n725) :- a(X, n724).
2202
+ a(X, i725) :- a(X, n724).
2203
+ a(X, j725) :- a(X, n724).
2204
+ a(X, n726) :- a(X, n725).
2205
+ a(X, i726) :- a(X, n725).
2206
+ a(X, j726) :- a(X, n725).
2207
+ a(X, n727) :- a(X, n726).
2208
+ a(X, i727) :- a(X, n726).
2209
+ a(X, j727) :- a(X, n726).
2210
+ a(X, n728) :- a(X, n727).
2211
+ a(X, i728) :- a(X, n727).
2212
+ a(X, j728) :- a(X, n727).
2213
+ a(X, n729) :- a(X, n728).
2214
+ a(X, i729) :- a(X, n728).
2215
+ a(X, j729) :- a(X, n728).
2216
+ a(X, n730) :- a(X, n729).
2217
+ a(X, i730) :- a(X, n729).
2218
+ a(X, j730) :- a(X, n729).
2219
+ a(X, n731) :- a(X, n730).
2220
+ a(X, i731) :- a(X, n730).
2221
+ a(X, j731) :- a(X, n730).
2222
+ a(X, n732) :- a(X, n731).
2223
+ a(X, i732) :- a(X, n731).
2224
+ a(X, j732) :- a(X, n731).
2225
+ a(X, n733) :- a(X, n732).
2226
+ a(X, i733) :- a(X, n732).
2227
+ a(X, j733) :- a(X, n732).
2228
+ a(X, n734) :- a(X, n733).
2229
+ a(X, i734) :- a(X, n733).
2230
+ a(X, j734) :- a(X, n733).
2231
+ a(X, n735) :- a(X, n734).
2232
+ a(X, i735) :- a(X, n734).
2233
+ a(X, j735) :- a(X, n734).
2234
+ a(X, n736) :- a(X, n735).
2235
+ a(X, i736) :- a(X, n735).
2236
+ a(X, j736) :- a(X, n735).
2237
+ a(X, n737) :- a(X, n736).
2238
+ a(X, i737) :- a(X, n736).
2239
+ a(X, j737) :- a(X, n736).
2240
+ a(X, n738) :- a(X, n737).
2241
+ a(X, i738) :- a(X, n737).
2242
+ a(X, j738) :- a(X, n737).
2243
+ a(X, n739) :- a(X, n738).
2244
+ a(X, i739) :- a(X, n738).
2245
+ a(X, j739) :- a(X, n738).
2246
+ a(X, n740) :- a(X, n739).
2247
+ a(X, i740) :- a(X, n739).
2248
+ a(X, j740) :- a(X, n739).
2249
+ a(X, n741) :- a(X, n740).
2250
+ a(X, i741) :- a(X, n740).
2251
+ a(X, j741) :- a(X, n740).
2252
+ a(X, n742) :- a(X, n741).
2253
+ a(X, i742) :- a(X, n741).
2254
+ a(X, j742) :- a(X, n741).
2255
+ a(X, n743) :- a(X, n742).
2256
+ a(X, i743) :- a(X, n742).
2257
+ a(X, j743) :- a(X, n742).
2258
+ a(X, n744) :- a(X, n743).
2259
+ a(X, i744) :- a(X, n743).
2260
+ a(X, j744) :- a(X, n743).
2261
+ a(X, n745) :- a(X, n744).
2262
+ a(X, i745) :- a(X, n744).
2263
+ a(X, j745) :- a(X, n744).
2264
+ a(X, n746) :- a(X, n745).
2265
+ a(X, i746) :- a(X, n745).
2266
+ a(X, j746) :- a(X, n745).
2267
+ a(X, n747) :- a(X, n746).
2268
+ a(X, i747) :- a(X, n746).
2269
+ a(X, j747) :- a(X, n746).
2270
+ a(X, n748) :- a(X, n747).
2271
+ a(X, i748) :- a(X, n747).
2272
+ a(X, j748) :- a(X, n747).
2273
+ a(X, n749) :- a(X, n748).
2274
+ a(X, i749) :- a(X, n748).
2275
+ a(X, j749) :- a(X, n748).
2276
+ a(X, n750) :- a(X, n749).
2277
+ a(X, i750) :- a(X, n749).
2278
+ a(X, j750) :- a(X, n749).
2279
+ a(X, n751) :- a(X, n750).
2280
+ a(X, i751) :- a(X, n750).
2281
+ a(X, j751) :- a(X, n750).
2282
+ a(X, n752) :- a(X, n751).
2283
+ a(X, i752) :- a(X, n751).
2284
+ a(X, j752) :- a(X, n751).
2285
+ a(X, n753) :- a(X, n752).
2286
+ a(X, i753) :- a(X, n752).
2287
+ a(X, j753) :- a(X, n752).
2288
+ a(X, n754) :- a(X, n753).
2289
+ a(X, i754) :- a(X, n753).
2290
+ a(X, j754) :- a(X, n753).
2291
+ a(X, n755) :- a(X, n754).
2292
+ a(X, i755) :- a(X, n754).
2293
+ a(X, j755) :- a(X, n754).
2294
+ a(X, n756) :- a(X, n755).
2295
+ a(X, i756) :- a(X, n755).
2296
+ a(X, j756) :- a(X, n755).
2297
+ a(X, n757) :- a(X, n756).
2298
+ a(X, i757) :- a(X, n756).
2299
+ a(X, j757) :- a(X, n756).
2300
+ a(X, n758) :- a(X, n757).
2301
+ a(X, i758) :- a(X, n757).
2302
+ a(X, j758) :- a(X, n757).
2303
+ a(X, n759) :- a(X, n758).
2304
+ a(X, i759) :- a(X, n758).
2305
+ a(X, j759) :- a(X, n758).
2306
+ a(X, n760) :- a(X, n759).
2307
+ a(X, i760) :- a(X, n759).
2308
+ a(X, j760) :- a(X, n759).
2309
+ a(X, n761) :- a(X, n760).
2310
+ a(X, i761) :- a(X, n760).
2311
+ a(X, j761) :- a(X, n760).
2312
+ a(X, n762) :- a(X, n761).
2313
+ a(X, i762) :- a(X, n761).
2314
+ a(X, j762) :- a(X, n761).
2315
+ a(X, n763) :- a(X, n762).
2316
+ a(X, i763) :- a(X, n762).
2317
+ a(X, j763) :- a(X, n762).
2318
+ a(X, n764) :- a(X, n763).
2319
+ a(X, i764) :- a(X, n763).
2320
+ a(X, j764) :- a(X, n763).
2321
+ a(X, n765) :- a(X, n764).
2322
+ a(X, i765) :- a(X, n764).
2323
+ a(X, j765) :- a(X, n764).
2324
+ a(X, n766) :- a(X, n765).
2325
+ a(X, i766) :- a(X, n765).
2326
+ a(X, j766) :- a(X, n765).
2327
+ a(X, n767) :- a(X, n766).
2328
+ a(X, i767) :- a(X, n766).
2329
+ a(X, j767) :- a(X, n766).
2330
+ a(X, n768) :- a(X, n767).
2331
+ a(X, i768) :- a(X, n767).
2332
+ a(X, j768) :- a(X, n767).
2333
+ a(X, n769) :- a(X, n768).
2334
+ a(X, i769) :- a(X, n768).
2335
+ a(X, j769) :- a(X, n768).
2336
+ a(X, n770) :- a(X, n769).
2337
+ a(X, i770) :- a(X, n769).
2338
+ a(X, j770) :- a(X, n769).
2339
+ a(X, n771) :- a(X, n770).
2340
+ a(X, i771) :- a(X, n770).
2341
+ a(X, j771) :- a(X, n770).
2342
+ a(X, n772) :- a(X, n771).
2343
+ a(X, i772) :- a(X, n771).
2344
+ a(X, j772) :- a(X, n771).
2345
+ a(X, n773) :- a(X, n772).
2346
+ a(X, i773) :- a(X, n772).
2347
+ a(X, j773) :- a(X, n772).
2348
+ a(X, n774) :- a(X, n773).
2349
+ a(X, i774) :- a(X, n773).
2350
+ a(X, j774) :- a(X, n773).
2351
+ a(X, n775) :- a(X, n774).
2352
+ a(X, i775) :- a(X, n774).
2353
+ a(X, j775) :- a(X, n774).
2354
+ a(X, n776) :- a(X, n775).
2355
+ a(X, i776) :- a(X, n775).
2356
+ a(X, j776) :- a(X, n775).
2357
+ a(X, n777) :- a(X, n776).
2358
+ a(X, i777) :- a(X, n776).
2359
+ a(X, j777) :- a(X, n776).
2360
+ a(X, n778) :- a(X, n777).
2361
+ a(X, i778) :- a(X, n777).
2362
+ a(X, j778) :- a(X, n777).
2363
+ a(X, n779) :- a(X, n778).
2364
+ a(X, i779) :- a(X, n778).
2365
+ a(X, j779) :- a(X, n778).
2366
+ a(X, n780) :- a(X, n779).
2367
+ a(X, i780) :- a(X, n779).
2368
+ a(X, j780) :- a(X, n779).
2369
+ a(X, n781) :- a(X, n780).
2370
+ a(X, i781) :- a(X, n780).
2371
+ a(X, j781) :- a(X, n780).
2372
+ a(X, n782) :- a(X, n781).
2373
+ a(X, i782) :- a(X, n781).
2374
+ a(X, j782) :- a(X, n781).
2375
+ a(X, n783) :- a(X, n782).
2376
+ a(X, i783) :- a(X, n782).
2377
+ a(X, j783) :- a(X, n782).
2378
+ a(X, n784) :- a(X, n783).
2379
+ a(X, i784) :- a(X, n783).
2380
+ a(X, j784) :- a(X, n783).
2381
+ a(X, n785) :- a(X, n784).
2382
+ a(X, i785) :- a(X, n784).
2383
+ a(X, j785) :- a(X, n784).
2384
+ a(X, n786) :- a(X, n785).
2385
+ a(X, i786) :- a(X, n785).
2386
+ a(X, j786) :- a(X, n785).
2387
+ a(X, n787) :- a(X, n786).
2388
+ a(X, i787) :- a(X, n786).
2389
+ a(X, j787) :- a(X, n786).
2390
+ a(X, n788) :- a(X, n787).
2391
+ a(X, i788) :- a(X, n787).
2392
+ a(X, j788) :- a(X, n787).
2393
+ a(X, n789) :- a(X, n788).
2394
+ a(X, i789) :- a(X, n788).
2395
+ a(X, j789) :- a(X, n788).
2396
+ a(X, n790) :- a(X, n789).
2397
+ a(X, i790) :- a(X, n789).
2398
+ a(X, j790) :- a(X, n789).
2399
+ a(X, n791) :- a(X, n790).
2400
+ a(X, i791) :- a(X, n790).
2401
+ a(X, j791) :- a(X, n790).
2402
+ a(X, n792) :- a(X, n791).
2403
+ a(X, i792) :- a(X, n791).
2404
+ a(X, j792) :- a(X, n791).
2405
+ a(X, n793) :- a(X, n792).
2406
+ a(X, i793) :- a(X, n792).
2407
+ a(X, j793) :- a(X, n792).
2408
+ a(X, n794) :- a(X, n793).
2409
+ a(X, i794) :- a(X, n793).
2410
+ a(X, j794) :- a(X, n793).
2411
+ a(X, n795) :- a(X, n794).
2412
+ a(X, i795) :- a(X, n794).
2413
+ a(X, j795) :- a(X, n794).
2414
+ a(X, n796) :- a(X, n795).
2415
+ a(X, i796) :- a(X, n795).
2416
+ a(X, j796) :- a(X, n795).
2417
+ a(X, n797) :- a(X, n796).
2418
+ a(X, i797) :- a(X, n796).
2419
+ a(X, j797) :- a(X, n796).
2420
+ a(X, n798) :- a(X, n797).
2421
+ a(X, i798) :- a(X, n797).
2422
+ a(X, j798) :- a(X, n797).
2423
+ a(X, n799) :- a(X, n798).
2424
+ a(X, i799) :- a(X, n798).
2425
+ a(X, j799) :- a(X, n798).
2426
+ a(X, n800) :- a(X, n799).
2427
+ a(X, i800) :- a(X, n799).
2428
+ a(X, j800) :- a(X, n799).
2429
+ a(X, n801) :- a(X, n800).
2430
+ a(X, i801) :- a(X, n800).
2431
+ a(X, j801) :- a(X, n800).
2432
+ a(X, n802) :- a(X, n801).
2433
+ a(X, i802) :- a(X, n801).
2434
+ a(X, j802) :- a(X, n801).
2435
+ a(X, n803) :- a(X, n802).
2436
+ a(X, i803) :- a(X, n802).
2437
+ a(X, j803) :- a(X, n802).
2438
+ a(X, n804) :- a(X, n803).
2439
+ a(X, i804) :- a(X, n803).
2440
+ a(X, j804) :- a(X, n803).
2441
+ a(X, n805) :- a(X, n804).
2442
+ a(X, i805) :- a(X, n804).
2443
+ a(X, j805) :- a(X, n804).
2444
+ a(X, n806) :- a(X, n805).
2445
+ a(X, i806) :- a(X, n805).
2446
+ a(X, j806) :- a(X, n805).
2447
+ a(X, n807) :- a(X, n806).
2448
+ a(X, i807) :- a(X, n806).
2449
+ a(X, j807) :- a(X, n806).
2450
+ a(X, n808) :- a(X, n807).
2451
+ a(X, i808) :- a(X, n807).
2452
+ a(X, j808) :- a(X, n807).
2453
+ a(X, n809) :- a(X, n808).
2454
+ a(X, i809) :- a(X, n808).
2455
+ a(X, j809) :- a(X, n808).
2456
+ a(X, n810) :- a(X, n809).
2457
+ a(X, i810) :- a(X, n809).
2458
+ a(X, j810) :- a(X, n809).
2459
+ a(X, n811) :- a(X, n810).
2460
+ a(X, i811) :- a(X, n810).
2461
+ a(X, j811) :- a(X, n810).
2462
+ a(X, n812) :- a(X, n811).
2463
+ a(X, i812) :- a(X, n811).
2464
+ a(X, j812) :- a(X, n811).
2465
+ a(X, n813) :- a(X, n812).
2466
+ a(X, i813) :- a(X, n812).
2467
+ a(X, j813) :- a(X, n812).
2468
+ a(X, n814) :- a(X, n813).
2469
+ a(X, i814) :- a(X, n813).
2470
+ a(X, j814) :- a(X, n813).
2471
+ a(X, n815) :- a(X, n814).
2472
+ a(X, i815) :- a(X, n814).
2473
+ a(X, j815) :- a(X, n814).
2474
+ a(X, n816) :- a(X, n815).
2475
+ a(X, i816) :- a(X, n815).
2476
+ a(X, j816) :- a(X, n815).
2477
+ a(X, n817) :- a(X, n816).
2478
+ a(X, i817) :- a(X, n816).
2479
+ a(X, j817) :- a(X, n816).
2480
+ a(X, n818) :- a(X, n817).
2481
+ a(X, i818) :- a(X, n817).
2482
+ a(X, j818) :- a(X, n817).
2483
+ a(X, n819) :- a(X, n818).
2484
+ a(X, i819) :- a(X, n818).
2485
+ a(X, j819) :- a(X, n818).
2486
+ a(X, n820) :- a(X, n819).
2487
+ a(X, i820) :- a(X, n819).
2488
+ a(X, j820) :- a(X, n819).
2489
+ a(X, n821) :- a(X, n820).
2490
+ a(X, i821) :- a(X, n820).
2491
+ a(X, j821) :- a(X, n820).
2492
+ a(X, n822) :- a(X, n821).
2493
+ a(X, i822) :- a(X, n821).
2494
+ a(X, j822) :- a(X, n821).
2495
+ a(X, n823) :- a(X, n822).
2496
+ a(X, i823) :- a(X, n822).
2497
+ a(X, j823) :- a(X, n822).
2498
+ a(X, n824) :- a(X, n823).
2499
+ a(X, i824) :- a(X, n823).
2500
+ a(X, j824) :- a(X, n823).
2501
+ a(X, n825) :- a(X, n824).
2502
+ a(X, i825) :- a(X, n824).
2503
+ a(X, j825) :- a(X, n824).
2504
+ a(X, n826) :- a(X, n825).
2505
+ a(X, i826) :- a(X, n825).
2506
+ a(X, j826) :- a(X, n825).
2507
+ a(X, n827) :- a(X, n826).
2508
+ a(X, i827) :- a(X, n826).
2509
+ a(X, j827) :- a(X, n826).
2510
+ a(X, n828) :- a(X, n827).
2511
+ a(X, i828) :- a(X, n827).
2512
+ a(X, j828) :- a(X, n827).
2513
+ a(X, n829) :- a(X, n828).
2514
+ a(X, i829) :- a(X, n828).
2515
+ a(X, j829) :- a(X, n828).
2516
+ a(X, n830) :- a(X, n829).
2517
+ a(X, i830) :- a(X, n829).
2518
+ a(X, j830) :- a(X, n829).
2519
+ a(X, n831) :- a(X, n830).
2520
+ a(X, i831) :- a(X, n830).
2521
+ a(X, j831) :- a(X, n830).
2522
+ a(X, n832) :- a(X, n831).
2523
+ a(X, i832) :- a(X, n831).
2524
+ a(X, j832) :- a(X, n831).
2525
+ a(X, n833) :- a(X, n832).
2526
+ a(X, i833) :- a(X, n832).
2527
+ a(X, j833) :- a(X, n832).
2528
+ a(X, n834) :- a(X, n833).
2529
+ a(X, i834) :- a(X, n833).
2530
+ a(X, j834) :- a(X, n833).
2531
+ a(X, n835) :- a(X, n834).
2532
+ a(X, i835) :- a(X, n834).
2533
+ a(X, j835) :- a(X, n834).
2534
+ a(X, n836) :- a(X, n835).
2535
+ a(X, i836) :- a(X, n835).
2536
+ a(X, j836) :- a(X, n835).
2537
+ a(X, n837) :- a(X, n836).
2538
+ a(X, i837) :- a(X, n836).
2539
+ a(X, j837) :- a(X, n836).
2540
+ a(X, n838) :- a(X, n837).
2541
+ a(X, i838) :- a(X, n837).
2542
+ a(X, j838) :- a(X, n837).
2543
+ a(X, n839) :- a(X, n838).
2544
+ a(X, i839) :- a(X, n838).
2545
+ a(X, j839) :- a(X, n838).
2546
+ a(X, n840) :- a(X, n839).
2547
+ a(X, i840) :- a(X, n839).
2548
+ a(X, j840) :- a(X, n839).
2549
+ a(X, n841) :- a(X, n840).
2550
+ a(X, i841) :- a(X, n840).
2551
+ a(X, j841) :- a(X, n840).
2552
+ a(X, n842) :- a(X, n841).
2553
+ a(X, i842) :- a(X, n841).
2554
+ a(X, j842) :- a(X, n841).
2555
+ a(X, n843) :- a(X, n842).
2556
+ a(X, i843) :- a(X, n842).
2557
+ a(X, j843) :- a(X, n842).
2558
+ a(X, n844) :- a(X, n843).
2559
+ a(X, i844) :- a(X, n843).
2560
+ a(X, j844) :- a(X, n843).
2561
+ a(X, n845) :- a(X, n844).
2562
+ a(X, i845) :- a(X, n844).
2563
+ a(X, j845) :- a(X, n844).
2564
+ a(X, n846) :- a(X, n845).
2565
+ a(X, i846) :- a(X, n845).
2566
+ a(X, j846) :- a(X, n845).
2567
+ a(X, n847) :- a(X, n846).
2568
+ a(X, i847) :- a(X, n846).
2569
+ a(X, j847) :- a(X, n846).
2570
+ a(X, n848) :- a(X, n847).
2571
+ a(X, i848) :- a(X, n847).
2572
+ a(X, j848) :- a(X, n847).
2573
+ a(X, n849) :- a(X, n848).
2574
+ a(X, i849) :- a(X, n848).
2575
+ a(X, j849) :- a(X, n848).
2576
+ a(X, n850) :- a(X, n849).
2577
+ a(X, i850) :- a(X, n849).
2578
+ a(X, j850) :- a(X, n849).
2579
+ a(X, n851) :- a(X, n850).
2580
+ a(X, i851) :- a(X, n850).
2581
+ a(X, j851) :- a(X, n850).
2582
+ a(X, n852) :- a(X, n851).
2583
+ a(X, i852) :- a(X, n851).
2584
+ a(X, j852) :- a(X, n851).
2585
+ a(X, n853) :- a(X, n852).
2586
+ a(X, i853) :- a(X, n852).
2587
+ a(X, j853) :- a(X, n852).
2588
+ a(X, n854) :- a(X, n853).
2589
+ a(X, i854) :- a(X, n853).
2590
+ a(X, j854) :- a(X, n853).
2591
+ a(X, n855) :- a(X, n854).
2592
+ a(X, i855) :- a(X, n854).
2593
+ a(X, j855) :- a(X, n854).
2594
+ a(X, n856) :- a(X, n855).
2595
+ a(X, i856) :- a(X, n855).
2596
+ a(X, j856) :- a(X, n855).
2597
+ a(X, n857) :- a(X, n856).
2598
+ a(X, i857) :- a(X, n856).
2599
+ a(X, j857) :- a(X, n856).
2600
+ a(X, n858) :- a(X, n857).
2601
+ a(X, i858) :- a(X, n857).
2602
+ a(X, j858) :- a(X, n857).
2603
+ a(X, n859) :- a(X, n858).
2604
+ a(X, i859) :- a(X, n858).
2605
+ a(X, j859) :- a(X, n858).
2606
+ a(X, n860) :- a(X, n859).
2607
+ a(X, i860) :- a(X, n859).
2608
+ a(X, j860) :- a(X, n859).
2609
+ a(X, n861) :- a(X, n860).
2610
+ a(X, i861) :- a(X, n860).
2611
+ a(X, j861) :- a(X, n860).
2612
+ a(X, n862) :- a(X, n861).
2613
+ a(X, i862) :- a(X, n861).
2614
+ a(X, j862) :- a(X, n861).
2615
+ a(X, n863) :- a(X, n862).
2616
+ a(X, i863) :- a(X, n862).
2617
+ a(X, j863) :- a(X, n862).
2618
+ a(X, n864) :- a(X, n863).
2619
+ a(X, i864) :- a(X, n863).
2620
+ a(X, j864) :- a(X, n863).
2621
+ a(X, n865) :- a(X, n864).
2622
+ a(X, i865) :- a(X, n864).
2623
+ a(X, j865) :- a(X, n864).
2624
+ a(X, n866) :- a(X, n865).
2625
+ a(X, i866) :- a(X, n865).
2626
+ a(X, j866) :- a(X, n865).
2627
+ a(X, n867) :- a(X, n866).
2628
+ a(X, i867) :- a(X, n866).
2629
+ a(X, j867) :- a(X, n866).
2630
+ a(X, n868) :- a(X, n867).
2631
+ a(X, i868) :- a(X, n867).
2632
+ a(X, j868) :- a(X, n867).
2633
+ a(X, n869) :- a(X, n868).
2634
+ a(X, i869) :- a(X, n868).
2635
+ a(X, j869) :- a(X, n868).
2636
+ a(X, n870) :- a(X, n869).
2637
+ a(X, i870) :- a(X, n869).
2638
+ a(X, j870) :- a(X, n869).
2639
+ a(X, n871) :- a(X, n870).
2640
+ a(X, i871) :- a(X, n870).
2641
+ a(X, j871) :- a(X, n870).
2642
+ a(X, n872) :- a(X, n871).
2643
+ a(X, i872) :- a(X, n871).
2644
+ a(X, j872) :- a(X, n871).
2645
+ a(X, n873) :- a(X, n872).
2646
+ a(X, i873) :- a(X, n872).
2647
+ a(X, j873) :- a(X, n872).
2648
+ a(X, n874) :- a(X, n873).
2649
+ a(X, i874) :- a(X, n873).
2650
+ a(X, j874) :- a(X, n873).
2651
+ a(X, n875) :- a(X, n874).
2652
+ a(X, i875) :- a(X, n874).
2653
+ a(X, j875) :- a(X, n874).
2654
+ a(X, n876) :- a(X, n875).
2655
+ a(X, i876) :- a(X, n875).
2656
+ a(X, j876) :- a(X, n875).
2657
+ a(X, n877) :- a(X, n876).
2658
+ a(X, i877) :- a(X, n876).
2659
+ a(X, j877) :- a(X, n876).
2660
+ a(X, n878) :- a(X, n877).
2661
+ a(X, i878) :- a(X, n877).
2662
+ a(X, j878) :- a(X, n877).
2663
+ a(X, n879) :- a(X, n878).
2664
+ a(X, i879) :- a(X, n878).
2665
+ a(X, j879) :- a(X, n878).
2666
+ a(X, n880) :- a(X, n879).
2667
+ a(X, i880) :- a(X, n879).
2668
+ a(X, j880) :- a(X, n879).
2669
+ a(X, n881) :- a(X, n880).
2670
+ a(X, i881) :- a(X, n880).
2671
+ a(X, j881) :- a(X, n880).
2672
+ a(X, n882) :- a(X, n881).
2673
+ a(X, i882) :- a(X, n881).
2674
+ a(X, j882) :- a(X, n881).
2675
+ a(X, n883) :- a(X, n882).
2676
+ a(X, i883) :- a(X, n882).
2677
+ a(X, j883) :- a(X, n882).
2678
+ a(X, n884) :- a(X, n883).
2679
+ a(X, i884) :- a(X, n883).
2680
+ a(X, j884) :- a(X, n883).
2681
+ a(X, n885) :- a(X, n884).
2682
+ a(X, i885) :- a(X, n884).
2683
+ a(X, j885) :- a(X, n884).
2684
+ a(X, n886) :- a(X, n885).
2685
+ a(X, i886) :- a(X, n885).
2686
+ a(X, j886) :- a(X, n885).
2687
+ a(X, n887) :- a(X, n886).
2688
+ a(X, i887) :- a(X, n886).
2689
+ a(X, j887) :- a(X, n886).
2690
+ a(X, n888) :- a(X, n887).
2691
+ a(X, i888) :- a(X, n887).
2692
+ a(X, j888) :- a(X, n887).
2693
+ a(X, n889) :- a(X, n888).
2694
+ a(X, i889) :- a(X, n888).
2695
+ a(X, j889) :- a(X, n888).
2696
+ a(X, n890) :- a(X, n889).
2697
+ a(X, i890) :- a(X, n889).
2698
+ a(X, j890) :- a(X, n889).
2699
+ a(X, n891) :- a(X, n890).
2700
+ a(X, i891) :- a(X, n890).
2701
+ a(X, j891) :- a(X, n890).
2702
+ a(X, n892) :- a(X, n891).
2703
+ a(X, i892) :- a(X, n891).
2704
+ a(X, j892) :- a(X, n891).
2705
+ a(X, n893) :- a(X, n892).
2706
+ a(X, i893) :- a(X, n892).
2707
+ a(X, j893) :- a(X, n892).
2708
+ a(X, n894) :- a(X, n893).
2709
+ a(X, i894) :- a(X, n893).
2710
+ a(X, j894) :- a(X, n893).
2711
+ a(X, n895) :- a(X, n894).
2712
+ a(X, i895) :- a(X, n894).
2713
+ a(X, j895) :- a(X, n894).
2714
+ a(X, n896) :- a(X, n895).
2715
+ a(X, i896) :- a(X, n895).
2716
+ a(X, j896) :- a(X, n895).
2717
+ a(X, n897) :- a(X, n896).
2718
+ a(X, i897) :- a(X, n896).
2719
+ a(X, j897) :- a(X, n896).
2720
+ a(X, n898) :- a(X, n897).
2721
+ a(X, i898) :- a(X, n897).
2722
+ a(X, j898) :- a(X, n897).
2723
+ a(X, n899) :- a(X, n898).
2724
+ a(X, i899) :- a(X, n898).
2725
+ a(X, j899) :- a(X, n898).
2726
+ a(X, n900) :- a(X, n899).
2727
+ a(X, i900) :- a(X, n899).
2728
+ a(X, j900) :- a(X, n899).
2729
+ a(X, n901) :- a(X, n900).
2730
+ a(X, i901) :- a(X, n900).
2731
+ a(X, j901) :- a(X, n900).
2732
+ a(X, n902) :- a(X, n901).
2733
+ a(X, i902) :- a(X, n901).
2734
+ a(X, j902) :- a(X, n901).
2735
+ a(X, n903) :- a(X, n902).
2736
+ a(X, i903) :- a(X, n902).
2737
+ a(X, j903) :- a(X, n902).
2738
+ a(X, n904) :- a(X, n903).
2739
+ a(X, i904) :- a(X, n903).
2740
+ a(X, j904) :- a(X, n903).
2741
+ a(X, n905) :- a(X, n904).
2742
+ a(X, i905) :- a(X, n904).
2743
+ a(X, j905) :- a(X, n904).
2744
+ a(X, n906) :- a(X, n905).
2745
+ a(X, i906) :- a(X, n905).
2746
+ a(X, j906) :- a(X, n905).
2747
+ a(X, n907) :- a(X, n906).
2748
+ a(X, i907) :- a(X, n906).
2749
+ a(X, j907) :- a(X, n906).
2750
+ a(X, n908) :- a(X, n907).
2751
+ a(X, i908) :- a(X, n907).
2752
+ a(X, j908) :- a(X, n907).
2753
+ a(X, n909) :- a(X, n908).
2754
+ a(X, i909) :- a(X, n908).
2755
+ a(X, j909) :- a(X, n908).
2756
+ a(X, n910) :- a(X, n909).
2757
+ a(X, i910) :- a(X, n909).
2758
+ a(X, j910) :- a(X, n909).
2759
+ a(X, n911) :- a(X, n910).
2760
+ a(X, i911) :- a(X, n910).
2761
+ a(X, j911) :- a(X, n910).
2762
+ a(X, n912) :- a(X, n911).
2763
+ a(X, i912) :- a(X, n911).
2764
+ a(X, j912) :- a(X, n911).
2765
+ a(X, n913) :- a(X, n912).
2766
+ a(X, i913) :- a(X, n912).
2767
+ a(X, j913) :- a(X, n912).
2768
+ a(X, n914) :- a(X, n913).
2769
+ a(X, i914) :- a(X, n913).
2770
+ a(X, j914) :- a(X, n913).
2771
+ a(X, n915) :- a(X, n914).
2772
+ a(X, i915) :- a(X, n914).
2773
+ a(X, j915) :- a(X, n914).
2774
+ a(X, n916) :- a(X, n915).
2775
+ a(X, i916) :- a(X, n915).
2776
+ a(X, j916) :- a(X, n915).
2777
+ a(X, n917) :- a(X, n916).
2778
+ a(X, i917) :- a(X, n916).
2779
+ a(X, j917) :- a(X, n916).
2780
+ a(X, n918) :- a(X, n917).
2781
+ a(X, i918) :- a(X, n917).
2782
+ a(X, j918) :- a(X, n917).
2783
+ a(X, n919) :- a(X, n918).
2784
+ a(X, i919) :- a(X, n918).
2785
+ a(X, j919) :- a(X, n918).
2786
+ a(X, n920) :- a(X, n919).
2787
+ a(X, i920) :- a(X, n919).
2788
+ a(X, j920) :- a(X, n919).
2789
+ a(X, n921) :- a(X, n920).
2790
+ a(X, i921) :- a(X, n920).
2791
+ a(X, j921) :- a(X, n920).
2792
+ a(X, n922) :- a(X, n921).
2793
+ a(X, i922) :- a(X, n921).
2794
+ a(X, j922) :- a(X, n921).
2795
+ a(X, n923) :- a(X, n922).
2796
+ a(X, i923) :- a(X, n922).
2797
+ a(X, j923) :- a(X, n922).
2798
+ a(X, n924) :- a(X, n923).
2799
+ a(X, i924) :- a(X, n923).
2800
+ a(X, j924) :- a(X, n923).
2801
+ a(X, n925) :- a(X, n924).
2802
+ a(X, i925) :- a(X, n924).
2803
+ a(X, j925) :- a(X, n924).
2804
+ a(X, n926) :- a(X, n925).
2805
+ a(X, i926) :- a(X, n925).
2806
+ a(X, j926) :- a(X, n925).
2807
+ a(X, n927) :- a(X, n926).
2808
+ a(X, i927) :- a(X, n926).
2809
+ a(X, j927) :- a(X, n926).
2810
+ a(X, n928) :- a(X, n927).
2811
+ a(X, i928) :- a(X, n927).
2812
+ a(X, j928) :- a(X, n927).
2813
+ a(X, n929) :- a(X, n928).
2814
+ a(X, i929) :- a(X, n928).
2815
+ a(X, j929) :- a(X, n928).
2816
+ a(X, n930) :- a(X, n929).
2817
+ a(X, i930) :- a(X, n929).
2818
+ a(X, j930) :- a(X, n929).
2819
+ a(X, n931) :- a(X, n930).
2820
+ a(X, i931) :- a(X, n930).
2821
+ a(X, j931) :- a(X, n930).
2822
+ a(X, n932) :- a(X, n931).
2823
+ a(X, i932) :- a(X, n931).
2824
+ a(X, j932) :- a(X, n931).
2825
+ a(X, n933) :- a(X, n932).
2826
+ a(X, i933) :- a(X, n932).
2827
+ a(X, j933) :- a(X, n932).
2828
+ a(X, n934) :- a(X, n933).
2829
+ a(X, i934) :- a(X, n933).
2830
+ a(X, j934) :- a(X, n933).
2831
+ a(X, n935) :- a(X, n934).
2832
+ a(X, i935) :- a(X, n934).
2833
+ a(X, j935) :- a(X, n934).
2834
+ a(X, n936) :- a(X, n935).
2835
+ a(X, i936) :- a(X, n935).
2836
+ a(X, j936) :- a(X, n935).
2837
+ a(X, n937) :- a(X, n936).
2838
+ a(X, i937) :- a(X, n936).
2839
+ a(X, j937) :- a(X, n936).
2840
+ a(X, n938) :- a(X, n937).
2841
+ a(X, i938) :- a(X, n937).
2842
+ a(X, j938) :- a(X, n937).
2843
+ a(X, n939) :- a(X, n938).
2844
+ a(X, i939) :- a(X, n938).
2845
+ a(X, j939) :- a(X, n938).
2846
+ a(X, n940) :- a(X, n939).
2847
+ a(X, i940) :- a(X, n939).
2848
+ a(X, j940) :- a(X, n939).
2849
+ a(X, n941) :- a(X, n940).
2850
+ a(X, i941) :- a(X, n940).
2851
+ a(X, j941) :- a(X, n940).
2852
+ a(X, n942) :- a(X, n941).
2853
+ a(X, i942) :- a(X, n941).
2854
+ a(X, j942) :- a(X, n941).
2855
+ a(X, n943) :- a(X, n942).
2856
+ a(X, i943) :- a(X, n942).
2857
+ a(X, j943) :- a(X, n942).
2858
+ a(X, n944) :- a(X, n943).
2859
+ a(X, i944) :- a(X, n943).
2860
+ a(X, j944) :- a(X, n943).
2861
+ a(X, n945) :- a(X, n944).
2862
+ a(X, i945) :- a(X, n944).
2863
+ a(X, j945) :- a(X, n944).
2864
+ a(X, n946) :- a(X, n945).
2865
+ a(X, i946) :- a(X, n945).
2866
+ a(X, j946) :- a(X, n945).
2867
+ a(X, n947) :- a(X, n946).
2868
+ a(X, i947) :- a(X, n946).
2869
+ a(X, j947) :- a(X, n946).
2870
+ a(X, n948) :- a(X, n947).
2871
+ a(X, i948) :- a(X, n947).
2872
+ a(X, j948) :- a(X, n947).
2873
+ a(X, n949) :- a(X, n948).
2874
+ a(X, i949) :- a(X, n948).
2875
+ a(X, j949) :- a(X, n948).
2876
+ a(X, n950) :- a(X, n949).
2877
+ a(X, i950) :- a(X, n949).
2878
+ a(X, j950) :- a(X, n949).
2879
+ a(X, n951) :- a(X, n950).
2880
+ a(X, i951) :- a(X, n950).
2881
+ a(X, j951) :- a(X, n950).
2882
+ a(X, n952) :- a(X, n951).
2883
+ a(X, i952) :- a(X, n951).
2884
+ a(X, j952) :- a(X, n951).
2885
+ a(X, n953) :- a(X, n952).
2886
+ a(X, i953) :- a(X, n952).
2887
+ a(X, j953) :- a(X, n952).
2888
+ a(X, n954) :- a(X, n953).
2889
+ a(X, i954) :- a(X, n953).
2890
+ a(X, j954) :- a(X, n953).
2891
+ a(X, n955) :- a(X, n954).
2892
+ a(X, i955) :- a(X, n954).
2893
+ a(X, j955) :- a(X, n954).
2894
+ a(X, n956) :- a(X, n955).
2895
+ a(X, i956) :- a(X, n955).
2896
+ a(X, j956) :- a(X, n955).
2897
+ a(X, n957) :- a(X, n956).
2898
+ a(X, i957) :- a(X, n956).
2899
+ a(X, j957) :- a(X, n956).
2900
+ a(X, n958) :- a(X, n957).
2901
+ a(X, i958) :- a(X, n957).
2902
+ a(X, j958) :- a(X, n957).
2903
+ a(X, n959) :- a(X, n958).
2904
+ a(X, i959) :- a(X, n958).
2905
+ a(X, j959) :- a(X, n958).
2906
+ a(X, n960) :- a(X, n959).
2907
+ a(X, i960) :- a(X, n959).
2908
+ a(X, j960) :- a(X, n959).
2909
+ a(X, n961) :- a(X, n960).
2910
+ a(X, i961) :- a(X, n960).
2911
+ a(X, j961) :- a(X, n960).
2912
+ a(X, n962) :- a(X, n961).
2913
+ a(X, i962) :- a(X, n961).
2914
+ a(X, j962) :- a(X, n961).
2915
+ a(X, n963) :- a(X, n962).
2916
+ a(X, i963) :- a(X, n962).
2917
+ a(X, j963) :- a(X, n962).
2918
+ a(X, n964) :- a(X, n963).
2919
+ a(X, i964) :- a(X, n963).
2920
+ a(X, j964) :- a(X, n963).
2921
+ a(X, n965) :- a(X, n964).
2922
+ a(X, i965) :- a(X, n964).
2923
+ a(X, j965) :- a(X, n964).
2924
+ a(X, n966) :- a(X, n965).
2925
+ a(X, i966) :- a(X, n965).
2926
+ a(X, j966) :- a(X, n965).
2927
+ a(X, n967) :- a(X, n966).
2928
+ a(X, i967) :- a(X, n966).
2929
+ a(X, j967) :- a(X, n966).
2930
+ a(X, n968) :- a(X, n967).
2931
+ a(X, i968) :- a(X, n967).
2932
+ a(X, j968) :- a(X, n967).
2933
+ a(X, n969) :- a(X, n968).
2934
+ a(X, i969) :- a(X, n968).
2935
+ a(X, j969) :- a(X, n968).
2936
+ a(X, n970) :- a(X, n969).
2937
+ a(X, i970) :- a(X, n969).
2938
+ a(X, j970) :- a(X, n969).
2939
+ a(X, n971) :- a(X, n970).
2940
+ a(X, i971) :- a(X, n970).
2941
+ a(X, j971) :- a(X, n970).
2942
+ a(X, n972) :- a(X, n971).
2943
+ a(X, i972) :- a(X, n971).
2944
+ a(X, j972) :- a(X, n971).
2945
+ a(X, n973) :- a(X, n972).
2946
+ a(X, i973) :- a(X, n972).
2947
+ a(X, j973) :- a(X, n972).
2948
+ a(X, n974) :- a(X, n973).
2949
+ a(X, i974) :- a(X, n973).
2950
+ a(X, j974) :- a(X, n973).
2951
+ a(X, n975) :- a(X, n974).
2952
+ a(X, i975) :- a(X, n974).
2953
+ a(X, j975) :- a(X, n974).
2954
+ a(X, n976) :- a(X, n975).
2955
+ a(X, i976) :- a(X, n975).
2956
+ a(X, j976) :- a(X, n975).
2957
+ a(X, n977) :- a(X, n976).
2958
+ a(X, i977) :- a(X, n976).
2959
+ a(X, j977) :- a(X, n976).
2960
+ a(X, n978) :- a(X, n977).
2961
+ a(X, i978) :- a(X, n977).
2962
+ a(X, j978) :- a(X, n977).
2963
+ a(X, n979) :- a(X, n978).
2964
+ a(X, i979) :- a(X, n978).
2965
+ a(X, j979) :- a(X, n978).
2966
+ a(X, n980) :- a(X, n979).
2967
+ a(X, i980) :- a(X, n979).
2968
+ a(X, j980) :- a(X, n979).
2969
+ a(X, n981) :- a(X, n980).
2970
+ a(X, i981) :- a(X, n980).
2971
+ a(X, j981) :- a(X, n980).
2972
+ a(X, n982) :- a(X, n981).
2973
+ a(X, i982) :- a(X, n981).
2974
+ a(X, j982) :- a(X, n981).
2975
+ a(X, n983) :- a(X, n982).
2976
+ a(X, i983) :- a(X, n982).
2977
+ a(X, j983) :- a(X, n982).
2978
+ a(X, n984) :- a(X, n983).
2979
+ a(X, i984) :- a(X, n983).
2980
+ a(X, j984) :- a(X, n983).
2981
+ a(X, n985) :- a(X, n984).
2982
+ a(X, i985) :- a(X, n984).
2983
+ a(X, j985) :- a(X, n984).
2984
+ a(X, n986) :- a(X, n985).
2985
+ a(X, i986) :- a(X, n985).
2986
+ a(X, j986) :- a(X, n985).
2987
+ a(X, n987) :- a(X, n986).
2988
+ a(X, i987) :- a(X, n986).
2989
+ a(X, j987) :- a(X, n986).
2990
+ a(X, n988) :- a(X, n987).
2991
+ a(X, i988) :- a(X, n987).
2992
+ a(X, j988) :- a(X, n987).
2993
+ a(X, n989) :- a(X, n988).
2994
+ a(X, i989) :- a(X, n988).
2995
+ a(X, j989) :- a(X, n988).
2996
+ a(X, n990) :- a(X, n989).
2997
+ a(X, i990) :- a(X, n989).
2998
+ a(X, j990) :- a(X, n989).
2999
+ a(X, n991) :- a(X, n990).
3000
+ a(X, i991) :- a(X, n990).
3001
+ a(X, j991) :- a(X, n990).
3002
+ a(X, n992) :- a(X, n991).
3003
+ a(X, i992) :- a(X, n991).
3004
+ a(X, j992) :- a(X, n991).
3005
+ a(X, n993) :- a(X, n992).
3006
+ a(X, i993) :- a(X, n992).
3007
+ a(X, j993) :- a(X, n992).
3008
+ a(X, n994) :- a(X, n993).
3009
+ a(X, i994) :- a(X, n993).
3010
+ a(X, j994) :- a(X, n993).
3011
+ a(X, n995) :- a(X, n994).
3012
+ a(X, i995) :- a(X, n994).
3013
+ a(X, j995) :- a(X, n994).
3014
+ a(X, n996) :- a(X, n995).
3015
+ a(X, i996) :- a(X, n995).
3016
+ a(X, j996) :- a(X, n995).
3017
+ a(X, n997) :- a(X, n996).
3018
+ a(X, i997) :- a(X, n996).
3019
+ a(X, j997) :- a(X, n996).
3020
+ a(X, n998) :- a(X, n997).
3021
+ a(X, i998) :- a(X, n997).
3022
+ a(X, j998) :- a(X, n997).
3023
+ a(X, n999) :- a(X, n998).
3024
+ a(X, i999) :- a(X, n998).
3025
+ a(X, j999) :- a(X, n998).
3026
+ a(X, n1000) :- a(X, n999).
3027
+ a(X, i1000) :- a(X, n999).
3028
+ a(X, j1000) :- a(X, n999).
3029
+
3030
+ % ARC checks
3031
+
3032
+ arc(check1, "C1 OK - the starting classification n0 is present.") :-
3033
+ once(a(ind, n0)).
3034
+
3035
+ arc(check2, "C2 OK - the first expansion produced n1 together with side labels i1 and j1.") :-
3036
+ once(a(ind, n1)),
3037
+ once(a(ind, i1)),
3038
+ once(a(ind, j1)).
3039
+
3040
+ arc(check3, "C3 OK - the chain reaches the midpoint n500 and still carries both side-label branches.") :-
3041
+ once(a(ind, n500)),
3042
+ once(a(ind, i500)),
3043
+ once(a(ind, j500)).
3044
+
3045
+ arc(check4, "C4 OK - the final taxonomy step from n999 to n1000 was completed.") :-
3046
+ once(a(ind, n999)),
3047
+ once(a(ind, n1000)).
3048
+
3049
+ arc(check5, "C5 OK - once n1000 is reached, the terminal class a2 is derived.") :-
3050
+ once(a(ind, n1000)),
3051
+ once(a(ind, a2)).
3052
+
3053
+ arc(check6, "C6 OK - the success flag is raised only after the terminal class a2 is present.") :-
3054
+ once(a(ind, a2)),
3055
+ once(is(test, true)).
3056
+
3057
+ % ARC report
3058
+
3059
+ answer(report, "The test succeeds: starting from one individual classified as n0, the rules eventually classify it as n1000 and then as a2.") :-
3060
+ once(is(test, true)).
3061
+
3062
+ reason(report, "The adjacent rules mirror the Eyeling N3 deep-taxonomy-1000 chain: each rule advances one taxonomy level and adds the matching side labels.") :-
3063
+ once(a(ind, a2)),
3064
+ once(is(test, true)).
3065
+
3066
+ checkPassed(report, Check) :-
3067
+ arc(Check, _message).
3068
+
3069
+ result(report, success) :-
3070
+ once(is(test, true)),
3071
+ once(arc(check1, _c1)),
3072
+ once(arc(check2, _c2)),
3073
+ once(arc(check3, _c3)),
3074
+ once(arc(check4, _c4)),
3075
+ once(arc(check5, _c5)),
3076
+ once(arc(check6, _c6)).