eyelang 1.7.17 → 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 (1823) hide show
  1. package/README.md +5 -5
  2. package/docs/guide.md +231 -231
  3. package/docs/language-reference.md +130 -132
  4. package/examples/abstract-interpretation.pl +50 -0
  5. package/examples/access-control-policy.pl +52 -0
  6. package/examples/ackermann.pl +47 -0
  7. package/examples/age.pl +26 -0
  8. package/examples/aliases-and-namespaces.pl +20 -0
  9. package/examples/alignment-demo.pl +44 -0
  10. package/examples/allen-interval-calculus.pl +64 -0
  11. package/examples/ancestor.pl +22 -0
  12. package/examples/animal.pl +21 -0
  13. package/examples/annotation.pl +34 -0
  14. package/examples/auroracare.pl +309 -0
  15. package/examples/backward.pl +11 -0
  16. package/examples/basic-monadic.pl +10032 -0
  17. package/examples/bayes-diagnosis.pl +108 -0
  18. package/examples/bayes-therapy.pl +189 -0
  19. package/examples/beam-deflection.pl +48 -0
  20. package/examples/binomial-vandermonde.pl +49 -0
  21. package/examples/blocks-world-planning.pl +77 -0
  22. package/examples/bmi.pl +232 -0
  23. package/examples/braking-safety-worlds.pl +69 -0
  24. package/examples/buck-converter-design.pl +83 -0
  25. package/examples/cache-performance.pl +56 -0
  26. package/examples/canary-release.pl +51 -0
  27. package/examples/cat-koko.pl +24 -0
  28. package/examples/catalan-convolution.pl +37 -0
  29. package/examples/cdcl-sat-solver.pl +65 -0
  30. package/examples/chart-parser.pl +65 -0
  31. package/examples/clinical-trial-screening.pl +97 -0
  32. package/examples/collatz-1000.pl +45 -0
  33. package/examples/combinatorics-findall-sort.pl +38 -0
  34. package/examples/competitive-enzyme-kinetics.pl +78 -0
  35. package/examples/complex.pl +133 -0
  36. package/examples/composition-of-injective-functions-is-injective.pl +50 -0
  37. package/examples/context-association.pl +53 -0
  38. package/examples/context-schema-audit.pl +46 -0
  39. package/examples/continued-fraction-sqrt2.pl +36 -0
  40. package/examples/control-system.pl +76 -0
  41. package/examples/critical-path-schedule.pl +82 -0
  42. package/examples/cyclic-path.pl +18 -0
  43. package/examples/d3-group.pl +99 -0
  44. package/examples/dairy-energy-balance.pl +66 -0
  45. package/examples/data-negotiation.pl +38 -0
  46. package/examples/deep-taxonomy-10.pl +106 -0
  47. package/examples/deep-taxonomy-100.pl +376 -0
  48. package/examples/deep-taxonomy-1000.pl +3076 -0
  49. package/examples/deep-taxonomy-10000.pl +30076 -0
  50. package/examples/deep-taxonomy-100000.pl +300076 -0
  51. package/examples/delfour.pl +281 -0
  52. package/examples/deontic-logic.pl +52 -0
  53. package/examples/derived-backward-rule.pl +30 -0
  54. package/examples/derived-rule.pl +27 -0
  55. package/examples/diamond-property.pl +38 -0
  56. package/examples/dijkstra-findall-sort.pl +43 -0
  57. package/examples/dijkstra-risk-path.pl +87 -0
  58. package/examples/dijkstra.pl +50 -0
  59. package/examples/dining-philosophers.pl +147 -0
  60. package/examples/dog.pl +25 -0
  61. package/examples/dpv-odrl-purpose-mapping.pl +48 -0
  62. package/examples/drone-corridor-planner.pl +48 -0
  63. package/examples/easter-computus.pl +88 -0
  64. package/examples/electrical-rc-filter.pl +37 -0
  65. package/examples/epidemic-policy.pl +66 -0
  66. package/examples/equality-saturation.pl +84 -0
  67. package/examples/equivalence-classes-overlap-implies-same-class.pl +27 -0
  68. package/examples/eulerian-path.pl +87 -0
  69. package/examples/ev-range-worlds.pl +87 -0
  70. package/examples/existential-rule.pl +14 -0
  71. package/examples/exoplanet-validation-worlds.pl +94 -0
  72. package/examples/expression-eval.pl +45 -0
  73. package/examples/family-cousins.pl +67 -0
  74. package/examples/fastpow.pl +61 -0
  75. package/examples/fft8-numeric.pl +85 -0
  76. package/examples/fibonacci.pl +60 -0
  77. package/examples/field-nitrogen-balance.pl +73 -0
  78. package/examples/flandor.pl +296 -0
  79. package/examples/floating-point.pl +28 -0
  80. package/examples/four-color-map.pl +133 -0
  81. package/examples/fundamental-theorem-arithmetic.pl +119 -0
  82. package/examples/gd-step-certified.pl +162 -0
  83. package/examples/gdpr-compliance.pl +69 -0
  84. package/examples/good-cobbler.pl +16 -0
  85. package/examples/gps.pl +146 -0
  86. package/examples/graph-reachability.pl +33 -0
  87. package/examples/graph.pl +35 -0
  88. package/examples/gray-code-counter.pl +47 -0
  89. package/examples/greatest-lower-bound-uniqueness.pl +30 -0
  90. package/examples/group-inverse-uniqueness.pl +36 -0
  91. package/examples/hamiltonian-path.pl +51 -0
  92. package/examples/hamming-code.pl +109 -0
  93. package/examples/hanoi.pl +19 -0
  94. package/examples/heat-loss.pl +56 -0
  95. package/examples/herbrand-witnesses.pl +31 -0
  96. package/examples/heron-theorem.pl +42 -0
  97. package/examples/ideal-gas-law.pl +39 -0
  98. package/examples/illegitimate-reasoning.pl +88 -0
  99. package/examples/integer-partitions.pl +35 -0
  100. package/examples/intuitionistic-logic-kripke.pl +69 -0
  101. package/examples/job-shop-scheduling.pl +48 -0
  102. package/examples/knapsack-optimization.pl +46 -0
  103. package/examples/knowledge-engineering-alignment-flow.pl +46 -0
  104. package/examples/knuth-bendix-completion.pl +55 -0
  105. package/examples/language.pl +25 -0
  106. package/examples/law-of-cosines.pl +37 -0
  107. package/examples/least-squares-regression.pl +85 -0
  108. package/examples/linear-logic-resources.pl +51 -0
  109. package/examples/list-collection.pl +35 -0
  110. package/examples/lldm.pl +80 -0
  111. package/examples/manufacturing-quality-control.pl +73 -0
  112. package/examples/map-four-color-search.pl +65 -0
  113. package/examples/markov-logic-network.pl +87 -0
  114. package/examples/matrix-chain-order.pl +79 -0
  115. package/examples/matrix-noncommutativity.pl +43 -0
  116. package/examples/microgrid-dispatch.pl +89 -0
  117. package/examples/missionaries-cannibals.pl +53 -0
  118. package/examples/modal-logic-kripke.pl +45 -0
  119. package/examples/modular-exponentiation.pl +35 -0
  120. package/examples/monkey-bananas.pl +45 -0
  121. package/examples/n-queens-8.pl +35 -0
  122. package/examples/network-sla.pl +48 -0
  123. package/examples/newton-raphson.pl +48 -0
  124. package/examples/nixon-diamond.pl +37 -0
  125. package/examples/observability-log-correlation.pl +40 -0
  126. package/examples/odrl-dpv-fpv-trust-flow.pl +51 -0
  127. package/examples/odrl-dpv-healthcare-risk-ranked.pl +270 -0
  128. package/examples/odrl-dpv-risk-ranked.pl +320 -0
  129. package/examples/orbital-transfer-design.pl +116 -0
  130. package/examples/output/language.pl +6 -0
  131. package/examples/output/web-names.pl +3 -0
  132. package/examples/partial-evaluator.pl +74 -0
  133. package/examples/path-discovery.pl +45013 -0
  134. package/examples/peano-arithmetic.pl +33 -0
  135. package/examples/peano-calculus.pl +40 -0
  136. package/examples/peasant.pl +29 -0
  137. package/examples/pell-equation.pl +34 -0
  138. package/examples/pendulum-period.pl +50 -0
  139. package/examples/pointer-analysis.pl +50 -0
  140. package/examples/polynomial.pl +124 -0
  141. package/examples/prime-range.pl +45 -0
  142. package/examples/proof/access-control-policy.pl +158 -0
  143. package/examples/proof/age.pl +71 -0
  144. package/examples/proof/aliases-and-namespaces.pl +78 -0
  145. package/examples/proof/ancestor.pl +140 -0
  146. package/examples/proof/animal.pl +68 -0
  147. package/examples/proof/annotation.pl +80 -0
  148. package/examples/proof/backward.pl +22 -0
  149. package/examples/proof/bayes-diagnosis.pl +208 -0
  150. package/examples/proof/beam-deflection.pl +227 -0
  151. package/examples/proof/cache-performance.pl +310 -0
  152. package/examples/proof/canary-release.pl +172 -0
  153. package/examples/proof/cat-koko.pl +86 -0
  154. package/examples/proof/chart-parser.pl +474 -0
  155. package/examples/proof/clinical-trial-screening.pl +389 -0
  156. package/examples/proof/composition-of-injective-functions-is-injective.pl +258 -0
  157. package/examples/proof/context-association.pl +78 -0
  158. package/examples/proof/data-negotiation.pl +76 -0
  159. package/examples/proof/deontic-logic.pl +109 -0
  160. package/examples/proof/derived-backward-rule.pl +74 -0
  161. package/examples/proof/derived-rule.pl +43 -0
  162. package/examples/proof/diamond-property.pl +307 -0
  163. package/examples/proof/dog.pl +31 -0
  164. package/examples/proof/dpv-odrl-purpose-mapping.pl +348 -0
  165. package/examples/proof/electrical-rc-filter.pl +105 -0
  166. package/examples/proof/epidemic-policy.pl +774 -0
  167. package/examples/proof/equivalence-classes-overlap-implies-same-class.pl +1098 -0
  168. package/examples/proof/existential-rule.pl +32 -0
  169. package/examples/proof/expression-eval.pl +105 -0
  170. package/examples/proof/floating-point.pl +160 -0
  171. package/examples/proof/gdpr-compliance.pl +199 -0
  172. package/examples/proof/good-cobbler.pl +16 -0
  173. package/examples/proof/graph-reachability.pl +151 -0
  174. package/examples/proof/greatest-lower-bound-uniqueness.pl +150 -0
  175. package/examples/proof/group-inverse-uniqueness.pl +84 -0
  176. package/examples/proof/hanoi.pl +185 -0
  177. package/examples/proof/heat-loss.pl +228 -0
  178. package/examples/proof/ideal-gas-law.pl +151 -0
  179. package/examples/proof/intuitionistic-logic-kripke.pl +133 -0
  180. package/examples/proof/linear-logic-resources.pl +205 -0
  181. package/examples/proof/list-collection.pl +52 -0
  182. package/examples/proof/modal-logic-kripke.pl +125 -0
  183. package/examples/proof/nixon-diamond.pl +181 -0
  184. package/examples/proof/proof-contrapositive.pl +78 -0
  185. package/examples/proof/reusable-builtins.pl +124 -0
  186. package/examples/proof/security-incident-correlation.pl +270 -0
  187. package/examples/proof/socket-age.pl +32 -0
  188. package/examples/proof/socket-family.pl +59 -0
  189. package/examples/proof/socrates.pl +38 -0
  190. package/examples/proof/term-tools.pl +95 -0
  191. package/examples/proof/witch.pl +216 -0
  192. package/examples/proof-contrapositive.pl +27 -0
  193. package/examples/quadratic-formula.pl +56 -0
  194. package/examples/radioactive-decay.pl +58 -0
  195. package/examples/register-allocation.pl +77 -0
  196. package/examples/reusable-builtins.pl +36 -0
  197. package/examples/riemann-hypothesis.pl +110 -0
  198. package/examples/route-planning.pl +33 -0
  199. package/examples/sat-solver-dpll.pl +88 -0
  200. package/examples/security-incident-correlation.pl +69 -0
  201. package/examples/send-more-money.pl +71 -0
  202. package/examples/service-impact.pl +41 -0
  203. package/examples/shoelace-polygon-area.pl +22 -0
  204. package/examples/sieve.pl +20 -0
  205. package/examples/skolem-functions.pl +52 -0
  206. package/examples/socket-age.pl +39 -0
  207. package/examples/socket-family.pl +28 -0
  208. package/examples/socrates.pl +19 -0
  209. package/examples/stable-marriage.pl +92 -0
  210. package/examples/statistics-summary.pl +56 -0
  211. package/examples/stirling-bell-numbers.pl +69 -0
  212. package/examples/sudoku-4x4.pl +54 -0
  213. package/examples/superdense-coding.pl +84 -0
  214. package/examples/symbolic-derivative.pl +39 -0
  215. package/examples/term-tools.pl +32 -0
  216. package/examples/totient-summatory.pl +33 -0
  217. package/examples/trust-flow-provenance-threshold.pl +47 -0
  218. package/examples/truth-maintenance-system.pl +62 -0
  219. package/examples/turing.pl +69 -0
  220. package/examples/type-inference.pl +58 -0
  221. package/examples/vector-similarity.pl +60 -0
  222. package/examples/vulnerability-impact.pl +69 -0
  223. package/examples/web-names.pl +39 -0
  224. package/examples/weighted-interval-scheduling.pl +81 -0
  225. package/examples/witch.pl +38 -0
  226. package/examples/wolf-goat-cabbage.pl +56 -0
  227. package/examples/workplace-compliance.pl +41 -0
  228. package/examples/zebra.pl +45 -0
  229. package/package.json +1 -1
  230. package/playground.html +9 -12
  231. package/src/cli.js +2 -2
  232. package/src/parser.js +7 -38
  233. package/src/term.js +18 -10
  234. package/test/conformance/README.md +7 -7
  235. package/test/conformance/cases/aggregation/044_findall_user_goal.pl +6 -0
  236. package/test/conformance/cases/aggregation/044_findall_user_goal.query +1 -1
  237. package/test/conformance/cases/aggregation/057_countall_empty_and_nonempty.pl +4 -0
  238. package/test/conformance/cases/aggregation/057_countall_empty_and_nonempty.query +1 -1
  239. package/test/conformance/cases/aggregation/058_sumall_numeric_template.pl +5 -0
  240. package/test/conformance/cases/aggregation/058_sumall_numeric_template.query +1 -1
  241. package/test/conformance/cases/aggregation/059_aggregate_min_template.pl +5 -0
  242. package/test/conformance/cases/aggregation/059_aggregate_min_template.query +1 -1
  243. package/test/conformance/cases/aggregation/060_aggregate_max_compound_key.pl +5 -0
  244. package/test/conformance/cases/aggregation/060_aggregate_max_compound_key.query +1 -1
  245. package/test/conformance/cases/aggregation/075_aggregation_edges.pl +12 -0
  246. package/test/conformance/cases/aggregation/098_aggregation_nested_templates.pl +11 -0
  247. package/test/conformance/cases/aggregation/aggregate_max_no_answers_fails.pl +2 -0
  248. package/test/conformance/cases/aggregation/aggregate_min_structured_key.pl +5 -0
  249. package/test/conformance/cases/aggregation/countall_zero.pl +2 -0
  250. package/test/conformance/cases/aggregation/extra_aggregate_max_iri_key.pl +4 -0
  251. package/test/conformance/cases/aggregation/extra_aggregate_min_tie_first.pl +5 -0
  252. package/test/conformance/cases/aggregation/extra_countall_with_filter.pl +5 -0
  253. package/test/conformance/cases/aggregation/extra_findall_repeated_template.pl +4 -0
  254. package/test/conformance/cases/aggregation/extra_sumall_float_template.pl +4 -0
  255. package/test/conformance/cases/aggregation/findall_empty_bag.pl +2 -0
  256. package/test/conformance/cases/aggregation/sumall_empty_zero.pl +2 -0
  257. package/test/conformance/cases/arithmetic/024_numeric_literal_readback.pl +6 -0
  258. package/test/conformance/cases/arithmetic/029_arithmetic_and_comparison.pl +11 -0
  259. package/test/conformance/cases/arithmetic/029_arithmetic_and_comparison.query +1 -1
  260. package/test/conformance/cases/arithmetic/039_numeric_functions.pl +9 -0
  261. package/test/conformance/cases/arithmetic/039_numeric_functions.query +1 -1
  262. package/test/conformance/cases/arithmetic/040_between_enumeration.pl +3 -0
  263. package/test/conformance/cases/arithmetic/040_between_enumeration.query +1 -1
  264. package/test/conformance/cases/arithmetic/041_smallest_divisor.pl +3 -0
  265. package/test/conformance/cases/arithmetic/041_smallest_divisor.query +1 -1
  266. package/test/conformance/cases/arithmetic/054_numeric_and_lexical_comparison.query +1 -1
  267. package/test/conformance/cases/arithmetic/061_date_difference.pl +4 -0
  268. package/test/conformance/cases/arithmetic/062_reusable_numeric_builtins.pl +10 -0
  269. package/test/conformance/cases/arithmetic/066_numeric_edges.pl +14 -0
  270. package/test/conformance/cases/arithmetic/079_big_integer_arithmetic.pl +8 -0
  271. package/test/conformance/cases/arithmetic/080_rounding_modes.pl +10 -0
  272. package/test/conformance/cases/arithmetic/081_zero_safe_numeric_functions.pl +9 -0
  273. package/test/conformance/cases/arithmetic/083_between_modes_and_empty_ranges.pl +8 -0
  274. package/test/conformance/cases/arithmetic/between_singleton.pl +2 -0
  275. package/test/conformance/cases/arithmetic/extra_acos_one.pl +2 -0
  276. package/test/conformance/cases/arithmetic/extra_asin_zero.pl +2 -0
  277. package/test/conformance/cases/arithmetic/extra_atan2_axis.pl +2 -0
  278. package/test/conformance/cases/arithmetic/extra_difference_leap_day.pl +2 -0
  279. package/test/conformance/cases/arithmetic/extra_difference_same_day.pl +2 -0
  280. package/test/conformance/cases/arithmetic/extra_div_float_exact.pl +2 -0
  281. package/test/conformance/cases/arithmetic/extra_div_integer_trunc.pl +2 -0
  282. package/test/conformance/cases/arithmetic/extra_division_by_zero_fails.pl +2 -0
  283. package/test/conformance/cases/arithmetic/extra_exp_zero.pl +2 -0
  284. package/test/conformance/cases/arithmetic/extra_log_one.pl +2 -0
  285. package/test/conformance/cases/arithmetic/extra_mod_negative_right.pl +2 -0
  286. package/test/conformance/cases/arithmetic/extra_pow_large_integer.pl +2 -0
  287. package/test/conformance/cases/arithmetic/float_add_and_div.pl +3 -0
  288. package/test/conformance/cases/arithmetic/min_max_mixed.pl +3 -0
  289. package/test/conformance/cases/arithmetic/mod_negative_left.pl +2 -0
  290. package/test/conformance/cases/arithmetic/neg_abs_integer.pl +4 -0
  291. package/test/conformance/cases/arithmetic/pow_negative_exponent_fails.pl +2 -0
  292. package/test/conformance/cases/arithmetic/pow_zero_exponent.pl +2 -0
  293. package/test/conformance/cases/arithmetic/rounding_negative_float.pl +5 -0
  294. package/test/conformance/cases/arithmetic/smallest_divisor_prime.pl +2 -0
  295. package/test/conformance/cases/arithmetic/sqrt_negative_fails.pl +2 -0
  296. package/test/conformance/cases/atoms/008_graphic_atoms.pl +6 -0
  297. package/test/conformance/cases/atoms/008_graphic_atoms.query +1 -1
  298. package/test/conformance/cases/atoms/016_arity_zero_atom.pl +4 -0
  299. package/test/conformance/cases/atoms/018_quoted_atom_readback.pl +6 -0
  300. package/test/conformance/cases/atoms/018_quoted_atom_readback.query +1 -1
  301. package/test/conformance/cases/atoms/103_angle_iri_atoms.pl +7 -0
  302. package/test/conformance/cases/atoms/angle_iri_percent_encoded.pl +2 -0
  303. package/test/conformance/cases/atoms/extra_iri_mailto_plus.pl +2 -0
  304. package/test/conformance/cases/atoms/extra_iri_uuid_scheme.pl +2 -0
  305. package/test/conformance/cases/atoms/graphic_angle_atom_stays_graphic.pl +4 -0
  306. package/test/conformance/cases/atoms/graphic_less_than_atom.pl +4 -0
  307. package/test/conformance/cases/atoms/iri_atoms_in_lists.pl +4 -0
  308. package/test/conformance/cases/atoms/iri_mailto_readback.pl +4 -0
  309. package/test/conformance/cases/atoms/iri_query_fragment_readback.pl +4 -0
  310. package/test/conformance/cases/atoms/iri_quoted_absolute_readback.pl +5 -0
  311. package/test/conformance/cases/atoms/iri_quoted_and_angle_unify.pl +3 -0
  312. package/test/conformance/cases/atoms/iri_urn_readback.pl +4 -0
  313. package/test/conformance/cases/atoms/quoted_urn_iri_readback.pl +4 -0
  314. package/test/conformance/cases/atoms/zero_arity_atom_roundtrip.pl +5 -0
  315. package/test/conformance/cases/builtins/037_matching_and_comparison.query +1 -1
  316. package/test/conformance/cases/builtins/076_composed_reusable_builtins.pl +8 -0
  317. package/test/conformance/cases/builtins/100_reusable_builtin_workflow.pl +10 -0
  318. package/test/conformance/cases/builtins/atom_string_iri_atom.pl +3 -0
  319. package/test/conformance/cases/builtins/eq_unifies_iri_atoms.pl +3 -0
  320. package/test/conformance/cases/builtins/extra_difference_end_before_start_fails.pl +2 -0
  321. package/test/conformance/cases/builtins/extra_difference_invalid_date_fails.pl +2 -0
  322. package/test/conformance/cases/builtins/extra_eq_binds_both_sides.pl +2 -0
  323. package/test/conformance/cases/builtins/extra_neq_different_iri_atoms.pl +2 -0
  324. package/test/conformance/cases/builtins/extra_neq_same_iri_fails.pl +2 -0
  325. package/test/conformance/cases/context/032_holds_parts.pl +4 -0
  326. package/test/conformance/cases/context/051_nested_holds_parts.pl +4 -0
  327. package/test/conformance/cases/context/052_holds_member.pl +3 -0
  328. package/test/conformance/cases/context/094_context_holds_enumeration.pl +7 -0
  329. package/test/conformance/cases/context/extra_holds_atom_parts.pl +2 -0
  330. package/test/conformance/cases/context/extra_holds_ignores_string_parts.pl +2 -0
  331. package/test/conformance/cases/context/extra_holds_list_parts.pl +2 -0
  332. package/test/conformance/cases/context/extra_holds_term_nested_order.pl +2 -0
  333. package/test/conformance/cases/context/holds_parts_from_formula.pl +2 -0
  334. package/test/conformance/cases/control/014_failure_filters_answers.pl +7 -0
  335. package/test/conformance/cases/control/014_failure_filters_answers.query +1 -1
  336. package/test/conformance/cases/control/043_once_user_predicate.pl +5 -0
  337. package/test/conformance/cases/control/043_once_user_predicate.query +1 -1
  338. package/test/conformance/cases/control/074_forall_edges.pl +10 -0
  339. package/test/conformance/cases/control/097_control_negation_once_forall.pl +13 -0
  340. package/test/conformance/cases/control/extra_forall_bound_check.pl +2 -0
  341. package/test/conformance/cases/control/extra_forall_counterexample_fails.pl +2 -0
  342. package/test/conformance/cases/control/extra_not_unbound_existing_goal_fails.pl +3 -0
  343. package/test/conformance/cases/control/extra_not_unbound_unknown_goal_succeeds.pl +2 -0
  344. package/test/conformance/cases/control/extra_once_preserves_binding.pl +2 -0
  345. package/test/conformance/cases/control/forall_detects_counterexample.pl +5 -0
  346. package/test/conformance/cases/control/forall_empty_generator_true.pl +2 -0
  347. package/test/conformance/cases/control/negation_with_bound_generator.pl +5 -0
  348. package/test/conformance/cases/control/once_keeps_first_answer.pl +4 -0
  349. package/test/conformance/cases/declarations/104_mode_determinism_declarations.pl +11 -0
  350. package/test/conformance/cases/declarations/memoize_is_ordinary_fact.pl +4 -0
  351. package/test/conformance/cases/declarations/mode_determinism_are_facts.pl +8 -0
  352. package/test/conformance/cases/declarations/table_is_also_fact.pl +4 -0
  353. package/test/conformance/cases/lists/005_list_deconstruction.pl +6 -0
  354. package/test/conformance/cases/lists/005_list_deconstruction.query +1 -1
  355. package/test/conformance/cases/lists/015_improper_list_unification.pl +6 -0
  356. package/test/conformance/cases/lists/015_improper_list_unification.query +1 -1
  357. package/test/conformance/cases/lists/020_nested_list_terms.pl +5 -0
  358. package/test/conformance/cases/lists/020_nested_list_terms.query +1 -1
  359. package/test/conformance/cases/lists/031_lists_aggregation_ordering.pl +10 -0
  360. package/test/conformance/cases/lists/031_lists_aggregation_ordering.query +1 -1
  361. package/test/conformance/cases/lists/035_list_relations.pl +5 -0
  362. package/test/conformance/cases/lists/035_list_relations.query +1 -1
  363. package/test/conformance/cases/lists/036_append_splits.pl +3 -0
  364. package/test/conformance/cases/lists/036_append_splits.query +1 -1
  365. package/test/conformance/cases/lists/045_sort_deduplicates_atoms.pl +3 -0
  366. package/test/conformance/cases/lists/045_sort_deduplicates_atoms.query +1 -1
  367. package/test/conformance/cases/lists/046_append_bound_prefix_suffix.pl +4 -0
  368. package/test/conformance/cases/lists/046_append_bound_prefix_suffix.query +1 -1
  369. package/test/conformance/cases/lists/047_nth0_index_generation.pl +3 -0
  370. package/test/conformance/cases/lists/047_nth0_index_generation.query +1 -1
  371. package/test/conformance/cases/lists/048_set_nth0_edges.pl +4 -0
  372. package/test/conformance/cases/lists/048_set_nth0_edges.query +1 -1
  373. package/test/conformance/cases/lists/049_select_duplicate_occurrences.pl +3 -0
  374. package/test/conformance/cases/lists/049_select_duplicate_occurrences.query +1 -1
  375. package/test/conformance/cases/lists/063_reusable_list_builtins.pl +11 -0
  376. package/test/conformance/cases/lists/067_list_edges.pl +10 -0
  377. package/test/conformance/cases/lists/068_list_generation_order.pl +7 -0
  378. package/test/conformance/cases/lists/069_list_summaries_and_sets.pl +9 -0
  379. package/test/conformance/cases/lists/084_append_and_select_composition.pl +7 -0
  380. package/test/conformance/cases/lists/085_nth_and_update_edges.pl +8 -0
  381. package/test/conformance/cases/lists/086_slicing_pipeline.pl +10 -0
  382. package/test/conformance/cases/lists/087_sort_reverse_length.pl +8 -0
  383. package/test/conformance/cases/lists/088_list_summaries_failures.pl +8 -0
  384. package/test/conformance/cases/lists/empty_list_term.pl +4 -0
  385. package/test/conformance/cases/lists/extra_append_all_splits_three.pl +2 -0
  386. package/test/conformance/cases/lists/extra_append_to_improper_tail.pl +2 -0
  387. package/test/conformance/cases/lists/extra_drop_all.pl +2 -0
  388. package/test/conformance/cases/lists/extra_head_and_rest_improper.pl +2 -0
  389. package/test/conformance/cases/lists/extra_last_singleton.pl +2 -0
  390. package/test/conformance/cases/lists/extra_length_improper_fails.pl +2 -0
  391. package/test/conformance/cases/lists/extra_list_to_set_stable_order.pl +2 -0
  392. package/test/conformance/cases/lists/extra_member_repeated_nested.pl +2 -0
  393. package/test/conformance/cases/lists/extra_nth0_duplicate_indexes.pl +2 -0
  394. package/test/conformance/cases/lists/extra_reverse_nested_terms.pl +2 -0
  395. package/test/conformance/cases/lists/extra_select_structured_duplicate.pl +2 -0
  396. package/test/conformance/cases/lists/extra_slice_end.pl +2 -0
  397. package/test/conformance/cases/lists/extra_sort_iri_atoms.pl +2 -0
  398. package/test/conformance/cases/lists/extra_take_all.pl +2 -0
  399. package/test/conformance/cases/lists/head_rest_last.pl +4 -0
  400. package/test/conformance/cases/lists/improper_list_readback.pl +4 -0
  401. package/test/conformance/cases/lists/length_empty_and_nested.pl +3 -0
  402. package/test/conformance/cases/lists/list_to_set_structural_duplicates.pl +2 -0
  403. package/test/conformance/cases/lists/list_with_iri_atoms.pl +4 -0
  404. package/test/conformance/cases/lists/min_list_empty_fails.pl +2 -0
  405. package/test/conformance/cases/lists/nth0_out_of_range_fails.pl +2 -0
  406. package/test/conformance/cases/lists/reverse_empty.pl +2 -0
  407. package/test/conformance/cases/lists/select_all_occurrences.pl +2 -0
  408. package/test/conformance/cases/lists/set_nth0_middle.pl +2 -0
  409. package/test/conformance/cases/lists/slice_middle.pl +2 -0
  410. package/test/conformance/cases/lists/slice_out_of_range_fails.pl +2 -0
  411. package/test/conformance/cases/lists/sort_structured_terms.pl +2 -0
  412. package/test/conformance/cases/lists/sum_list_empty_zero.pl +2 -0
  413. package/test/conformance/cases/lists/sum_min_max_list.pl +4 -0
  414. package/test/conformance/cases/lists/take_zero_and_drop_all.pl +3 -0
  415. package/test/conformance/cases/materialize/027_default_derived_output.pl +5 -0
  416. package/test/conformance/cases/materialize/028_materialize_focus.pl +5 -0
  417. package/test/conformance/cases/materialize/053_materialize_excludes_source_fact.pl +6 -0
  418. package/test/conformance/cases/materialize/099_materialize_multiple_arities.pl +8 -0
  419. package/test/conformance/cases/materialize/source_facts_suppressed.pl +5 -0
  420. package/test/conformance/cases/negation/033_negation_once_generators.pl +7 -0
  421. package/test/conformance/cases/negation/033_negation_once_generators.query +1 -1
  422. package/test/conformance/cases/negation/042_negation_filter.pl +7 -0
  423. package/test/conformance/cases/negation/042_negation_filter.query +1 -1
  424. package/test/conformance/cases/negation/050_not_member_filter.pl +6 -0
  425. package/test/conformance/cases/negation/050_not_member_filter.query +1 -1
  426. package/test/conformance/cases/negation/stratified_negation_answers.pl +6 -0
  427. package/test/conformance/cases/rules/001_fact_output.pl +4 -0
  428. package/test/conformance/cases/rules/002_rule_recursion.pl +7 -0
  429. package/test/conformance/cases/rules/002_rule_recursion.query +1 -1
  430. package/test/conformance/cases/rules/011_predicate_arity.pl +6 -0
  431. package/test/conformance/cases/rules/011_predicate_arity.query +1 -1
  432. package/test/conformance/cases/rules/013_multiple_clauses_order.pl +6 -0
  433. package/test/conformance/cases/rules/013_multiple_clauses_order.query +1 -1
  434. package/test/conformance/cases/rules/017_three_step_recursion.pl +8 -0
  435. package/test/conformance/cases/rules/017_three_step_recursion.query +1 -1
  436. package/test/conformance/cases/rules/022_rule_head_structure.pl +5 -0
  437. package/test/conformance/cases/rules/077_recursive_path_with_lists.pl +10 -0
  438. package/test/conformance/cases/rules/078_mutual_recursion_with_arithmetic.pl +7 -0
  439. package/test/conformance/cases/rules/extra_left_to_right_multiple_bindings.pl +5 -0
  440. package/test/conformance/cases/rules/extra_structured_head_rule.pl +3 -0
  441. package/test/conformance/cases/rules/left_to_right_body_binding.pl +4 -0
  442. package/test/conformance/cases/rules/transitive_rule_three_edges.pl +7 -0
  443. package/test/conformance/cases/strings/023_quoted_escapes_readback.pl +5 -0
  444. package/test/conformance/cases/strings/030_strings_and_atoms.pl +4 -0
  445. package/test/conformance/cases/strings/030_strings_and_atoms.query +1 -1
  446. package/test/conformance/cases/strings/055_string_matching_filters.pl +6 -0
  447. package/test/conformance/cases/strings/055_string_matching_filters.query +1 -1
  448. package/test/conformance/cases/strings/056_string_and_atom_concat.pl +3 -0
  449. package/test/conformance/cases/strings/056_string_and_atom_concat.query +1 -1
  450. package/test/conformance/cases/strings/064_reusable_string_builtins.pl +12 -0
  451. package/test/conformance/cases/strings/070_matches_named_captures.pl +13 -0
  452. package/test/conformance/cases/strings/071_string_edges.pl +10 -0
  453. package/test/conformance/cases/strings/072_string_conversions.pl +10 -0
  454. package/test/conformance/cases/strings/089_string_split_join_pipeline.pl +7 -0
  455. package/test/conformance/cases/strings/090_string_substring_replace_edges.pl +9 -0
  456. package/test/conformance/cases/strings/091_string_case_and_trim.pl +7 -0
  457. package/test/conformance/cases/strings/092_scalar_string_conversions.pl +9 -0
  458. package/test/conformance/cases/strings/093_regex_named_captures_context.pl +8 -0
  459. package/test/conformance/cases/strings/atom_string_from_string.pl +2 -0
  460. package/test/conformance/cases/strings/casefold_atoms.pl +3 -0
  461. package/test/conformance/cases/strings/extra_atom_string_number_input.pl +2 -0
  462. package/test/conformance/cases/strings/extra_join_empty_list.pl +2 -0
  463. package/test/conformance/cases/strings/extra_join_iri_and_atom.pl +2 -0
  464. package/test/conformance/cases/strings/extra_lowercase_iri_atom.pl +2 -0
  465. package/test/conformance/cases/strings/extra_named_regex_optional_missing.pl +2 -0
  466. package/test/conformance/cases/strings/extra_number_string_atom_input.pl +2 -0
  467. package/test/conformance/cases/strings/extra_replace_multiple.pl +2 -0
  468. package/test/conformance/cases/strings/extra_split_empty_separator.pl +2 -0
  469. package/test/conformance/cases/strings/extra_substring_last_char.pl +2 -0
  470. package/test/conformance/cases/strings/extra_term_string_iri_list.pl +2 -0
  471. package/test/conformance/cases/strings/extra_uppercase_mixed_string.pl +2 -0
  472. package/test/conformance/cases/strings/join_mixed_scalars.pl +2 -0
  473. package/test/conformance/cases/strings/named_regex_two_groups.pl +2 -0
  474. package/test/conformance/cases/strings/number_string_from_string.pl +2 -0
  475. package/test/conformance/cases/strings/number_string_rejects_non_numeric.pl +2 -0
  476. package/test/conformance/cases/strings/replace_empty_search_no_change.pl +2 -0
  477. package/test/conformance/cases/strings/split_without_separator_match.pl +2 -0
  478. package/test/conformance/cases/strings/substring_out_of_range_fails.pl +2 -0
  479. package/test/conformance/cases/strings/substring_zero_count.pl +2 -0
  480. package/test/conformance/cases/strings/term_string_nested_term.pl +2 -0
  481. package/test/conformance/cases/strings/trim_tabs_and_spaces.pl +3 -0
  482. package/test/conformance/cases/syntax/004_conjunction_and_parentheses.pl +5 -0
  483. package/test/conformance/cases/syntax/004_conjunction_and_parentheses.query +1 -1
  484. package/test/conformance/cases/syntax/006_comma_formula_data.pl +4 -0
  485. package/test/conformance/cases/syntax/006_comma_formula_data.query +1 -1
  486. package/test/conformance/cases/syntax/009_comments_and_whitespace.pl +5 -0
  487. package/test/conformance/cases/syntax/009_comments_and_whitespace.query +1 -1
  488. package/test/conformance/cases/syntax/019_parenthesized_three_conjuncts.pl +7 -0
  489. package/test/conformance/cases/syntax/019_parenthesized_three_conjuncts.query +1 -1
  490. package/test/conformance/cases/syntax/025_body_parentheses_with_formula_data.pl +5 -0
  491. package/test/conformance/cases/syntax/parenthesized_query_style_body.pl +5 -0
  492. package/test/conformance/cases/table/038_table_declaration.pl +8 -0
  493. package/test/conformance/cases/table/038_table_declaration.query +1 -1
  494. package/test/conformance/cases/table/102_table_declaration.pl +11 -0
  495. package/test/conformance/cases/table/extra_table_bound_cycle.pl +7 -0
  496. package/test/conformance/cases/table/extra_table_open_call_fallback.pl +5 -0
  497. package/test/conformance/cases/table/table_does_not_change_answers.pl +7 -0
  498. package/test/conformance/cases/table/tabled_left_recursion_path.pl +7 -0
  499. package/test/conformance/cases/terms/003_terms_and_readback.pl +16 -0
  500. package/test/conformance/cases/terms/003_terms_and_readback.query +1 -1
  501. package/test/conformance/cases/terms/065_reusable_term_control_builtins.pl +11 -0
  502. package/test/conformance/cases/terms/073_term_introspection_edges.pl +11 -0
  503. package/test/conformance/cases/terms/095_term_introspection_roundtrip.pl +8 -0
  504. package/test/conformance/cases/terms/096_functor_scalar_edges.pl +8 -0
  505. package/test/conformance/cases/terms/arg_first_and_second.pl +3 -0
  506. package/test/conformance/cases/terms/arg_zero_fails.pl +2 -0
  507. package/test/conformance/cases/terms/compound_name_arguments_atom_zero_args.pl +3 -0
  508. package/test/conformance/cases/terms/compound_name_arguments_bad_args_fail.pl +2 -0
  509. package/test/conformance/cases/terms/compound_name_arguments_builds_atom_from_empty_args.pl +3 -0
  510. package/test/conformance/cases/terms/compound_name_arguments_builds_compound.pl +2 -0
  511. package/test/conformance/cases/terms/compound_name_arguments_iri_name.pl +2 -0
  512. package/test/conformance/cases/terms/extra_arg_atom_fails.pl +2 -0
  513. package/test/conformance/cases/terms/extra_arg_first_last.pl +2 -0
  514. package/test/conformance/cases/terms/extra_arg_zero_fails.pl +2 -0
  515. package/test/conformance/cases/terms/extra_compound_name_arguments_bad_args_fails.pl +2 -0
  516. package/test/conformance/cases/terms/extra_compound_name_arguments_construct_atom_zero.pl +2 -0
  517. package/test/conformance/cases/terms/extra_compound_name_arguments_construct_iri.pl +2 -0
  518. package/test/conformance/cases/terms/extra_compound_name_arguments_decompose_list.pl +2 -0
  519. package/test/conformance/cases/terms/extra_functor_list_cons.pl +2 -0
  520. package/test/conformance/cases/terms/extra_functor_number_scalar.pl +2 -0
  521. package/test/conformance/cases/terms/extra_functor_string_scalar.pl +2 -0
  522. package/test/conformance/cases/terms/functor_atom_arity_zero.pl +3 -0
  523. package/test/conformance/cases/terms/functor_number_and_string.pl +3 -0
  524. package/test/conformance/cases/terms/herbrand_witness_one_input.pl +5 -0
  525. package/test/conformance/cases/terms/herbrand_witness_two_inputs.pl +5 -0
  526. package/test/conformance/cases/terms/term_string_readback_iri_list.pl +2 -0
  527. package/test/conformance/cases/unification/012_nested_compound_unification.pl +5 -0
  528. package/test/conformance/cases/unification/012_nested_compound_unification.query +1 -1
  529. package/test/conformance/cases/unification/021_repeated_variable_head.pl +7 -0
  530. package/test/conformance/cases/unification/034_equality_and_inequality.pl +6 -0
  531. package/test/conformance/cases/unification/034_equality_and_inequality.query +1 -1
  532. package/test/conformance/cases/unification/extra_eq_iri_and_quoted_atom.pl +2 -0
  533. package/test/conformance/cases/unification/extra_eq_list_tail_binding.pl +2 -0
  534. package/test/conformance/cases/unification/extra_eq_nested_repeated_fails.pl +2 -0
  535. package/test/conformance/cases/unification/extra_eq_nested_repeated_success.pl +2 -0
  536. package/test/conformance/cases/unification/extra_variable_clause_locality.pl +4 -0
  537. package/test/conformance/cases/unification/list_tail_binding.pl +2 -0
  538. package/test/conformance/cases/unification/nested_repeated_variable.pl +2 -0
  539. package/test/conformance/cases/variables/007_anonymous_variables.pl +5 -0
  540. package/test/conformance/cases/variables/007_anonymous_variables.query +1 -1
  541. package/test/conformance/cases/variables/010_variable_scope_and_reuse.pl +8 -0
  542. package/test/conformance/cases/variables/010_variable_scope_and_reuse.query +1 -1
  543. package/test/conformance/cases/variables/026_question_underscore_named_variable_reuse.pl +5 -0
  544. package/test/conformance/cases/variables/101_question_mark_variables.pl +7 -0
  545. package/test/conformance/cases/variables/anonymous_in_two_goals.pl +4 -0
  546. package/test/conformance/cases/variables/clause_local_variable_names.pl +5 -0
  547. package/test/conformance/cases/variables/extra_anonymous_not_reused.pl +2 -0
  548. package/test/conformance/cases/variables/extra_named_variable_reused.pl +2 -0
  549. package/test/conformance/cases/variables/extra_question_underscore_named_distinct.pl +2 -0
  550. package/test/conformance/cases/variables/extra_question_uppercase_named.pl +2 -0
  551. package/test/conformance/cases/variables/question_anonymous_not_reused.pl +6 -0
  552. package/test/conformance/cases/variables/question_underscore_named_reuse.pl +5 -0
  553. package/test/conformance/cases/variables/question_uppercase_variable.pl +4 -0
  554. package/test/conformance/cases/variables/question_variable_digits_and_underscore.pl +2 -0
  555. package/test/conformance/cases/variables/question_variable_uppercase_name.pl +2 -0
  556. package/test/conformance/cases/variables/variable_scope_per_clause.pl +6 -0
  557. package/test/conformance/errors/syntax/bad_question_variable.pl +1 -0
  558. package/test/conformance/errors/variables/bare_underscore_in_list_rejected.pl +1 -0
  559. package/test/conformance/errors/variables/bare_underscore_name_in_compound_rejected.pl +1 -0
  560. package/test/conformance/errors/variables/bare_underscore_rejected.pl +1 -0
  561. package/test/conformance/errors/variables/extra_bare_underscore_in_rule_head.pl +1 -0
  562. package/test/conformance/errors/variables/extra_question_dash_variable.pl +1 -0
  563. package/test/conformance/errors/variables/extra_uppercase_in_list.pl +1 -0
  564. package/test/conformance/errors/variables/question_dot_rejected.pl +1 -0
  565. package/test/conformance/errors/variables/underscore_named_rejected.pl +1 -0
  566. package/test/conformance/errors/variables/uppercase_in_body_rejected.pl +1 -0
  567. package/test/conformance/errors/variables/uppercase_variable_rejected.pl +1 -0
  568. package/test/conformance/expected/aggregation/extra_aggregate_max_iri_key.pl +1 -0
  569. package/test/conformance/expected/atoms/103_angle_iri_atoms.pl +3 -0
  570. package/test/conformance/expected/atoms/iri_atoms_in_lists.pl +1 -0
  571. package/test/conformance/expected/atoms/iri_mailto_readback.pl +1 -0
  572. package/test/conformance/expected/atoms/iri_query_fragment_readback.pl +1 -0
  573. package/test/conformance/expected/atoms/iri_quoted_absolute_readback.pl +2 -0
  574. package/test/conformance/expected/atoms/iri_urn_readback.pl +1 -0
  575. package/test/conformance/expected/atoms/quoted_urn_iri_readback.pl +1 -0
  576. package/test/conformance/expected/builtins/atom_string_iri_atom.pl +1 -0
  577. package/test/conformance/expected/builtins/extra_neq_same_iri_fails.pl +1 -0
  578. package/test/conformance/expected/lists/extra_reverse_nested_terms.pl +1 -0
  579. package/test/conformance/expected/lists/extra_sort_iri_atoms.pl +1 -0
  580. package/test/conformance/expected/lists/list_with_iri_atoms.pl +1 -0
  581. package/test/conformance/expected/strings/extra_join_iri_and_atom.pl +1 -0
  582. package/test/conformance/expected/strings/extra_lowercase_iri_atom.pl +1 -0
  583. package/test/conformance/expected/strings/extra_term_string_iri_list.pl +1 -0
  584. package/test/conformance/expected/strings/term_string_nested_term.pl +1 -0
  585. package/test/conformance/expected/terms/compound_name_arguments_iri_name.pl +1 -0
  586. package/test/conformance/expected/terms/extra_compound_name_arguments_construct_iri.pl +1 -0
  587. package/test/conformance/expected/terms/term_string_readback_iri_list.pl +1 -0
  588. package/test/conformance/expected/unification/extra_eq_nested_repeated_fails.pl +0 -0
  589. package/test/conformance/expected/unification/extra_neq_scalar_same_lexical_fails.pl +0 -0
  590. package/test/conformance/expected-errors/syntax/bad_question_variable.txt +1 -1
  591. package/test/conformance/expected-errors/syntax/uppercase_predicate_rejected.txt +1 -1
  592. package/test/conformance/expected-errors/variables/bare_underscore_in_list_rejected.txt +1 -1
  593. package/test/conformance/expected-errors/variables/bare_underscore_name_in_compound_rejected.txt +1 -1
  594. package/test/conformance/expected-errors/variables/bare_underscore_rejected.txt +1 -1
  595. package/test/conformance/expected-errors/variables/extra_bare_underscore_in_rule_head.txt +1 -1
  596. package/test/conformance/expected-errors/variables/extra_uppercase_in_list.txt +1 -1
  597. package/test/conformance/expected-errors/variables/underscore_named_rejected.txt +1 -1
  598. package/test/conformance/expected-errors/variables/uppercase_in_body_rejected.txt +1 -1
  599. package/test/conformance/expected-errors/variables/uppercase_variable_rejected.txt +1 -1
  600. package/test/conformance/expected-proofs/proofs/bindings_nested_term.pl +16 -0
  601. package/test/conformance/expected-proofs/proofs/builtin_numeric.pl +16 -0
  602. package/test/conformance/expected-proofs/proofs/extra_aggregate_min.pl +16 -0
  603. package/test/conformance/expected-proofs/proofs/extra_compound_name_arguments.pl +16 -0
  604. package/test/conformance/expected-proofs/proofs/extra_eq_builtin.pl +16 -0
  605. package/test/conformance/expected-proofs/proofs/extra_findall_builtin.pl +16 -0
  606. package/test/conformance/expected-proofs/proofs/extra_forall_builtin.pl +15 -0
  607. package/test/conformance/expected-proofs/proofs/extra_holds_parts.pl +32 -0
  608. package/test/conformance/expected-proofs/proofs/extra_iri_join.pl +16 -0
  609. package/test/conformance/expected-proofs/proofs/extra_nested_list_binding.pl +16 -0
  610. package/test/conformance/expected-proofs/proofs/extra_once_member.pl +22 -0
  611. package/test/conformance/expected-proofs/proofs/extra_recursive_path.pl +59 -0
  612. package/test/conformance/expected-proofs/proofs/extra_table_path_bound.pl +57 -0
  613. package/test/conformance/expected-proofs/proofs/herbrand_witness.pl +16 -0
  614. package/test/conformance/expected-proofs/proofs/iri_atom.pl +16 -0
  615. package/test/conformance/expected-proofs/proofs/list_builtin.pl +20 -0
  616. package/test/conformance/expected-proofs/proofs/once_child.pl +22 -0
  617. package/test/conformance/expected-proofs/proofs/rule_fact.pl +16 -0
  618. package/test/conformance/expected-proofs/proofs/table_recursive.pl +59 -0
  619. package/test/conformance/proofs/proofs/bindings_nested_term.pl +4 -0
  620. package/test/conformance/proofs/proofs/builtin_numeric.pl +3 -0
  621. package/test/conformance/proofs/proofs/extra_aggregate_min.pl +4 -0
  622. package/test/conformance/proofs/proofs/extra_compound_name_arguments.pl +2 -0
  623. package/test/conformance/proofs/proofs/extra_eq_builtin.pl +2 -0
  624. package/test/conformance/proofs/proofs/extra_findall_builtin.pl +4 -0
  625. package/test/conformance/proofs/proofs/extra_forall_builtin.pl +2 -0
  626. package/test/conformance/proofs/proofs/extra_holds_parts.pl +2 -0
  627. package/test/conformance/proofs/proofs/extra_iri_join.pl +2 -0
  628. package/test/conformance/proofs/proofs/extra_nested_list_binding.pl +2 -0
  629. package/test/conformance/proofs/proofs/extra_once_member.pl +2 -0
  630. package/test/conformance/proofs/proofs/extra_recursive_path.pl +5 -0
  631. package/test/conformance/proofs/proofs/extra_table_path_bound.pl +7 -0
  632. package/test/conformance/proofs/proofs/herbrand_witness.pl +3 -0
  633. package/test/conformance/proofs/proofs/iri_atom.pl +4 -0
  634. package/test/conformance/proofs/proofs/list_builtin.pl +3 -0
  635. package/test/conformance/proofs/proofs/once_child.pl +5 -0
  636. package/test/conformance/proofs/proofs/rule_fact.pl +4 -0
  637. package/test/conformance/proofs/proofs/table_recursive.pl +7 -0
  638. package/test/conformance/warnings/negation/extra_stratified_negation_with_table_quiet.pl +6 -0
  639. package/test/conformance/warnings/negation/extra_unstratified_indirect_self_with_fact.pl +5 -0
  640. package/test/conformance/warnings/negation/extra_unstratified_positive_negative_loop.pl +5 -0
  641. package/test/conformance/warnings/negation/no_negation_quiet.pl +3 -0
  642. package/test/conformance/warnings/negation/stratified_negative_unknown_after_positive_quiet.pl +3 -0
  643. package/test/conformance/warnings/negation/stratified_two_level_quiet.pl +5 -0
  644. package/test/conformance/warnings/negation/unstratified_three_step.pl +6 -0
  645. package/test/conformance/warnings/negation/unstratified_with_iri_predicates.pl +4 -0
  646. package/test/run-conformance-report.mjs +5 -5
  647. package/test/run-conformance.mjs +9 -9
  648. package/test/run-examples.mjs +51 -51
  649. package/test/run-regression.mjs +95 -95
  650. package/examples/abstract-interpretation.eye +0 -50
  651. package/examples/access-control-policy.eye +0 -52
  652. package/examples/ackermann.eye +0 -47
  653. package/examples/age.eye +0 -26
  654. package/examples/aliases-and-namespaces.eye +0 -20
  655. package/examples/alignment-demo.eye +0 -44
  656. package/examples/allen-interval-calculus.eye +0 -64
  657. package/examples/ancestor.eye +0 -22
  658. package/examples/animal.eye +0 -21
  659. package/examples/annotation.eye +0 -34
  660. package/examples/auroracare.eye +0 -309
  661. package/examples/backward.eye +0 -11
  662. package/examples/basic-monadic.eye +0 -10032
  663. package/examples/bayes-diagnosis.eye +0 -108
  664. package/examples/bayes-therapy.eye +0 -189
  665. package/examples/beam-deflection.eye +0 -48
  666. package/examples/binomial-vandermonde.eye +0 -49
  667. package/examples/blocks-world-planning.eye +0 -77
  668. package/examples/bmi.eye +0 -232
  669. package/examples/braking-safety-worlds.eye +0 -69
  670. package/examples/buck-converter-design.eye +0 -83
  671. package/examples/cache-performance.eye +0 -56
  672. package/examples/canary-release.eye +0 -51
  673. package/examples/cat-koko.eye +0 -24
  674. package/examples/catalan-convolution.eye +0 -37
  675. package/examples/cdcl-sat-solver.eye +0 -65
  676. package/examples/chart-parser.eye +0 -65
  677. package/examples/clinical-trial-screening.eye +0 -97
  678. package/examples/collatz-1000.eye +0 -45
  679. package/examples/combinatorics-findall-sort.eye +0 -38
  680. package/examples/competitive-enzyme-kinetics.eye +0 -78
  681. package/examples/complex.eye +0 -133
  682. package/examples/composition-of-injective-functions-is-injective.eye +0 -50
  683. package/examples/context-association.eye +0 -53
  684. package/examples/context-schema-audit.eye +0 -46
  685. package/examples/continued-fraction-sqrt2.eye +0 -36
  686. package/examples/control-system.eye +0 -76
  687. package/examples/critical-path-schedule.eye +0 -82
  688. package/examples/cyclic-path.eye +0 -18
  689. package/examples/d3-group.eye +0 -99
  690. package/examples/dairy-energy-balance.eye +0 -66
  691. package/examples/data-negotiation.eye +0 -38
  692. package/examples/deep-taxonomy-10.eye +0 -106
  693. package/examples/deep-taxonomy-100.eye +0 -376
  694. package/examples/deep-taxonomy-1000.eye +0 -3076
  695. package/examples/deep-taxonomy-10000.eye +0 -30076
  696. package/examples/deep-taxonomy-100000.eye +0 -300076
  697. package/examples/delfour.eye +0 -281
  698. package/examples/deontic-logic.eye +0 -52
  699. package/examples/derived-backward-rule.eye +0 -30
  700. package/examples/derived-rule.eye +0 -27
  701. package/examples/diamond-property.eye +0 -38
  702. package/examples/dijkstra-findall-sort.eye +0 -43
  703. package/examples/dijkstra-risk-path.eye +0 -87
  704. package/examples/dijkstra.eye +0 -50
  705. package/examples/dining-philosophers.eye +0 -147
  706. package/examples/dog.eye +0 -25
  707. package/examples/dpv-odrl-purpose-mapping.eye +0 -48
  708. package/examples/drone-corridor-planner.eye +0 -48
  709. package/examples/easter-computus.eye +0 -88
  710. package/examples/electrical-rc-filter.eye +0 -37
  711. package/examples/epidemic-policy.eye +0 -66
  712. package/examples/equality-saturation.eye +0 -84
  713. package/examples/equivalence-classes-overlap-implies-same-class.eye +0 -27
  714. package/examples/eulerian-path.eye +0 -87
  715. package/examples/ev-range-worlds.eye +0 -87
  716. package/examples/existential-rule.eye +0 -14
  717. package/examples/exoplanet-validation-worlds.eye +0 -94
  718. package/examples/expression-eval.eye +0 -45
  719. package/examples/family-cousins.eye +0 -67
  720. package/examples/fastpow.eye +0 -61
  721. package/examples/fft8-numeric.eye +0 -85
  722. package/examples/fibonacci.eye +0 -60
  723. package/examples/field-nitrogen-balance.eye +0 -73
  724. package/examples/flandor.eye +0 -296
  725. package/examples/floating-point.eye +0 -28
  726. package/examples/four-color-map.eye +0 -133
  727. package/examples/fundamental-theorem-arithmetic.eye +0 -119
  728. package/examples/gd-step-certified.eye +0 -162
  729. package/examples/gdpr-compliance.eye +0 -69
  730. package/examples/good-cobbler.eye +0 -16
  731. package/examples/gps.eye +0 -146
  732. package/examples/graph-reachability.eye +0 -33
  733. package/examples/graph.eye +0 -35
  734. package/examples/gray-code-counter.eye +0 -47
  735. package/examples/greatest-lower-bound-uniqueness.eye +0 -30
  736. package/examples/group-inverse-uniqueness.eye +0 -36
  737. package/examples/hamiltonian-path.eye +0 -51
  738. package/examples/hamming-code.eye +0 -109
  739. package/examples/hanoi.eye +0 -19
  740. package/examples/heat-loss.eye +0 -56
  741. package/examples/herbrand-witnesses.eye +0 -31
  742. package/examples/heron-theorem.eye +0 -42
  743. package/examples/ideal-gas-law.eye +0 -39
  744. package/examples/illegitimate-reasoning.eye +0 -88
  745. package/examples/integer-partitions.eye +0 -35
  746. package/examples/intuitionistic-logic-kripke.eye +0 -69
  747. package/examples/job-shop-scheduling.eye +0 -48
  748. package/examples/knapsack-optimization.eye +0 -46
  749. package/examples/knowledge-engineering-alignment-flow.eye +0 -46
  750. package/examples/knuth-bendix-completion.eye +0 -55
  751. package/examples/language.eye +0 -25
  752. package/examples/law-of-cosines.eye +0 -37
  753. package/examples/least-squares-regression.eye +0 -85
  754. package/examples/linear-logic-resources.eye +0 -51
  755. package/examples/list-collection.eye +0 -35
  756. package/examples/lldm.eye +0 -80
  757. package/examples/manufacturing-quality-control.eye +0 -73
  758. package/examples/map-four-color-search.eye +0 -65
  759. package/examples/markov-logic-network.eye +0 -87
  760. package/examples/matrix-chain-order.eye +0 -79
  761. package/examples/matrix-noncommutativity.eye +0 -43
  762. package/examples/microgrid-dispatch.eye +0 -89
  763. package/examples/missionaries-cannibals.eye +0 -53
  764. package/examples/modal-logic-kripke.eye +0 -45
  765. package/examples/modular-exponentiation.eye +0 -35
  766. package/examples/monkey-bananas.eye +0 -45
  767. package/examples/n-queens-8.eye +0 -35
  768. package/examples/network-sla.eye +0 -48
  769. package/examples/newton-raphson.eye +0 -48
  770. package/examples/nixon-diamond.eye +0 -37
  771. package/examples/observability-log-correlation.eye +0 -40
  772. package/examples/odrl-dpv-fpv-trust-flow.eye +0 -51
  773. package/examples/odrl-dpv-healthcare-risk-ranked.eye +0 -270
  774. package/examples/odrl-dpv-risk-ranked.eye +0 -320
  775. package/examples/orbital-transfer-design.eye +0 -116
  776. package/examples/output/language.eye +0 -6
  777. package/examples/output/web-names.eye +0 -3
  778. package/examples/partial-evaluator.eye +0 -74
  779. package/examples/path-discovery.eye +0 -45013
  780. package/examples/peano-arithmetic.eye +0 -33
  781. package/examples/peano-calculus.eye +0 -40
  782. package/examples/peasant.eye +0 -29
  783. package/examples/pell-equation.eye +0 -34
  784. package/examples/pendulum-period.eye +0 -50
  785. package/examples/pointer-analysis.eye +0 -50
  786. package/examples/polynomial.eye +0 -124
  787. package/examples/prime-range.eye +0 -45
  788. package/examples/proof/access-control-policy.eye +0 -158
  789. package/examples/proof/age.eye +0 -71
  790. package/examples/proof/aliases-and-namespaces.eye +0 -78
  791. package/examples/proof/ancestor.eye +0 -140
  792. package/examples/proof/animal.eye +0 -68
  793. package/examples/proof/annotation.eye +0 -80
  794. package/examples/proof/backward.eye +0 -22
  795. package/examples/proof/bayes-diagnosis.eye +0 -208
  796. package/examples/proof/beam-deflection.eye +0 -227
  797. package/examples/proof/cache-performance.eye +0 -310
  798. package/examples/proof/canary-release.eye +0 -172
  799. package/examples/proof/cat-koko.eye +0 -86
  800. package/examples/proof/chart-parser.eye +0 -474
  801. package/examples/proof/clinical-trial-screening.eye +0 -389
  802. package/examples/proof/composition-of-injective-functions-is-injective.eye +0 -258
  803. package/examples/proof/context-association.eye +0 -78
  804. package/examples/proof/data-negotiation.eye +0 -76
  805. package/examples/proof/deontic-logic.eye +0 -109
  806. package/examples/proof/derived-backward-rule.eye +0 -74
  807. package/examples/proof/derived-rule.eye +0 -43
  808. package/examples/proof/diamond-property.eye +0 -307
  809. package/examples/proof/dog.eye +0 -31
  810. package/examples/proof/dpv-odrl-purpose-mapping.eye +0 -348
  811. package/examples/proof/electrical-rc-filter.eye +0 -105
  812. package/examples/proof/epidemic-policy.eye +0 -774
  813. package/examples/proof/equivalence-classes-overlap-implies-same-class.eye +0 -1098
  814. package/examples/proof/existential-rule.eye +0 -32
  815. package/examples/proof/expression-eval.eye +0 -105
  816. package/examples/proof/floating-point.eye +0 -160
  817. package/examples/proof/gdpr-compliance.eye +0 -199
  818. package/examples/proof/good-cobbler.eye +0 -16
  819. package/examples/proof/graph-reachability.eye +0 -151
  820. package/examples/proof/greatest-lower-bound-uniqueness.eye +0 -150
  821. package/examples/proof/group-inverse-uniqueness.eye +0 -84
  822. package/examples/proof/hanoi.eye +0 -185
  823. package/examples/proof/heat-loss.eye +0 -228
  824. package/examples/proof/ideal-gas-law.eye +0 -151
  825. package/examples/proof/intuitionistic-logic-kripke.eye +0 -133
  826. package/examples/proof/linear-logic-resources.eye +0 -205
  827. package/examples/proof/list-collection.eye +0 -52
  828. package/examples/proof/modal-logic-kripke.eye +0 -125
  829. package/examples/proof/nixon-diamond.eye +0 -181
  830. package/examples/proof/proof-contrapositive.eye +0 -78
  831. package/examples/proof/reusable-builtins.eye +0 -124
  832. package/examples/proof/security-incident-correlation.eye +0 -270
  833. package/examples/proof/socket-age.eye +0 -32
  834. package/examples/proof/socket-family.eye +0 -59
  835. package/examples/proof/socrates.eye +0 -38
  836. package/examples/proof/term-tools.eye +0 -95
  837. package/examples/proof/witch.eye +0 -216
  838. package/examples/proof-contrapositive.eye +0 -27
  839. package/examples/quadratic-formula.eye +0 -56
  840. package/examples/radioactive-decay.eye +0 -58
  841. package/examples/register-allocation.eye +0 -77
  842. package/examples/reusable-builtins.eye +0 -36
  843. package/examples/riemann-hypothesis.eye +0 -110
  844. package/examples/route-planning.eye +0 -33
  845. package/examples/sat-solver-dpll.eye +0 -88
  846. package/examples/security-incident-correlation.eye +0 -69
  847. package/examples/send-more-money.eye +0 -71
  848. package/examples/service-impact.eye +0 -41
  849. package/examples/shoelace-polygon-area.eye +0 -22
  850. package/examples/sieve.eye +0 -20
  851. package/examples/skolem-functions.eye +0 -52
  852. package/examples/socket-age.eye +0 -39
  853. package/examples/socket-family.eye +0 -28
  854. package/examples/socrates.eye +0 -19
  855. package/examples/stable-marriage.eye +0 -92
  856. package/examples/statistics-summary.eye +0 -56
  857. package/examples/stirling-bell-numbers.eye +0 -69
  858. package/examples/sudoku-4x4.eye +0 -54
  859. package/examples/superdense-coding.eye +0 -84
  860. package/examples/symbolic-derivative.eye +0 -39
  861. package/examples/term-tools.eye +0 -32
  862. package/examples/totient-summatory.eye +0 -33
  863. package/examples/trust-flow-provenance-threshold.eye +0 -47
  864. package/examples/truth-maintenance-system.eye +0 -62
  865. package/examples/turing.eye +0 -69
  866. package/examples/type-inference.eye +0 -58
  867. package/examples/vector-similarity.eye +0 -60
  868. package/examples/vulnerability-impact.eye +0 -69
  869. package/examples/web-names.eye +0 -39
  870. package/examples/weighted-interval-scheduling.eye +0 -81
  871. package/examples/witch.eye +0 -38
  872. package/examples/wolf-goat-cabbage.eye +0 -56
  873. package/examples/workplace-compliance.eye +0 -41
  874. package/examples/zebra.eye +0 -45
  875. package/test/conformance/cases/aggregation/044_findall_user_goal.eye +0 -6
  876. package/test/conformance/cases/aggregation/057_countall_empty_and_nonempty.eye +0 -4
  877. package/test/conformance/cases/aggregation/058_sumall_numeric_template.eye +0 -5
  878. package/test/conformance/cases/aggregation/059_aggregate_min_template.eye +0 -5
  879. package/test/conformance/cases/aggregation/060_aggregate_max_compound_key.eye +0 -5
  880. package/test/conformance/cases/aggregation/075_aggregation_edges.eye +0 -12
  881. package/test/conformance/cases/aggregation/098_aggregation_nested_templates.eye +0 -11
  882. package/test/conformance/cases/aggregation/aggregate_max_no_answers_fails.eye +0 -2
  883. package/test/conformance/cases/aggregation/aggregate_min_structured_key.eye +0 -5
  884. package/test/conformance/cases/aggregation/countall_zero.eye +0 -2
  885. package/test/conformance/cases/aggregation/extra_aggregate_max_iri_key.eye +0 -4
  886. package/test/conformance/cases/aggregation/extra_aggregate_min_tie_first.eye +0 -5
  887. package/test/conformance/cases/aggregation/extra_countall_with_filter.eye +0 -5
  888. package/test/conformance/cases/aggregation/extra_findall_repeated_template.eye +0 -4
  889. package/test/conformance/cases/aggregation/extra_sumall_float_template.eye +0 -4
  890. package/test/conformance/cases/aggregation/findall_empty_bag.eye +0 -2
  891. package/test/conformance/cases/aggregation/sumall_empty_zero.eye +0 -2
  892. package/test/conformance/cases/arithmetic/024_numeric_literal_readback.eye +0 -6
  893. package/test/conformance/cases/arithmetic/029_arithmetic_and_comparison.eye +0 -11
  894. package/test/conformance/cases/arithmetic/039_numeric_functions.eye +0 -9
  895. package/test/conformance/cases/arithmetic/040_between_enumeration.eye +0 -3
  896. package/test/conformance/cases/arithmetic/041_smallest_divisor.eye +0 -3
  897. package/test/conformance/cases/arithmetic/061_date_difference.eye +0 -4
  898. package/test/conformance/cases/arithmetic/062_reusable_numeric_builtins.eye +0 -10
  899. package/test/conformance/cases/arithmetic/066_numeric_edges.eye +0 -14
  900. package/test/conformance/cases/arithmetic/079_big_integer_arithmetic.eye +0 -8
  901. package/test/conformance/cases/arithmetic/080_rounding_modes.eye +0 -10
  902. package/test/conformance/cases/arithmetic/081_zero_safe_numeric_functions.eye +0 -9
  903. package/test/conformance/cases/arithmetic/083_between_modes_and_empty_ranges.eye +0 -8
  904. package/test/conformance/cases/arithmetic/between_singleton.eye +0 -2
  905. package/test/conformance/cases/arithmetic/extra_acos_one.eye +0 -2
  906. package/test/conformance/cases/arithmetic/extra_asin_zero.eye +0 -2
  907. package/test/conformance/cases/arithmetic/extra_atan2_axis.eye +0 -2
  908. package/test/conformance/cases/arithmetic/extra_difference_leap_day.eye +0 -2
  909. package/test/conformance/cases/arithmetic/extra_difference_same_day.eye +0 -2
  910. package/test/conformance/cases/arithmetic/extra_div_float_exact.eye +0 -2
  911. package/test/conformance/cases/arithmetic/extra_div_integer_trunc.eye +0 -2
  912. package/test/conformance/cases/arithmetic/extra_division_by_zero_fails.eye +0 -2
  913. package/test/conformance/cases/arithmetic/extra_exp_zero.eye +0 -2
  914. package/test/conformance/cases/arithmetic/extra_log_one.eye +0 -2
  915. package/test/conformance/cases/arithmetic/extra_mod_negative_right.eye +0 -2
  916. package/test/conformance/cases/arithmetic/extra_pow_large_integer.eye +0 -2
  917. package/test/conformance/cases/arithmetic/float_add_and_div.eye +0 -3
  918. package/test/conformance/cases/arithmetic/min_max_mixed.eye +0 -3
  919. package/test/conformance/cases/arithmetic/mod_negative_left.eye +0 -2
  920. package/test/conformance/cases/arithmetic/neg_abs_integer.eye +0 -4
  921. package/test/conformance/cases/arithmetic/pow_negative_exponent_fails.eye +0 -2
  922. package/test/conformance/cases/arithmetic/pow_zero_exponent.eye +0 -2
  923. package/test/conformance/cases/arithmetic/rounding_negative_float.eye +0 -5
  924. package/test/conformance/cases/arithmetic/smallest_divisor_prime.eye +0 -2
  925. package/test/conformance/cases/arithmetic/sqrt_negative_fails.eye +0 -2
  926. package/test/conformance/cases/atoms/008_graphic_atoms.eye +0 -6
  927. package/test/conformance/cases/atoms/016_arity_zero_atom.eye +0 -4
  928. package/test/conformance/cases/atoms/018_quoted_atom_readback.eye +0 -6
  929. package/test/conformance/cases/atoms/103_angle_iri_atoms.eye +0 -7
  930. package/test/conformance/cases/atoms/angle_iri_percent_encoded.eye +0 -2
  931. package/test/conformance/cases/atoms/extra_iri_mailto_plus.eye +0 -2
  932. package/test/conformance/cases/atoms/extra_iri_uuid_scheme.eye +0 -2
  933. package/test/conformance/cases/atoms/graphic_angle_atom_stays_graphic.eye +0 -4
  934. package/test/conformance/cases/atoms/graphic_less_than_atom.eye +0 -4
  935. package/test/conformance/cases/atoms/iri_atoms_in_lists.eye +0 -4
  936. package/test/conformance/cases/atoms/iri_mailto_readback.eye +0 -4
  937. package/test/conformance/cases/atoms/iri_query_fragment_readback.eye +0 -4
  938. package/test/conformance/cases/atoms/iri_quoted_absolute_readback.eye +0 -5
  939. package/test/conformance/cases/atoms/iri_quoted_and_angle_unify.eye +0 -3
  940. package/test/conformance/cases/atoms/iri_urn_readback.eye +0 -4
  941. package/test/conformance/cases/atoms/quoted_urn_iri_readback.eye +0 -4
  942. package/test/conformance/cases/atoms/zero_arity_atom_roundtrip.eye +0 -5
  943. package/test/conformance/cases/builtins/076_composed_reusable_builtins.eye +0 -8
  944. package/test/conformance/cases/builtins/100_reusable_builtin_workflow.eye +0 -10
  945. package/test/conformance/cases/builtins/atom_string_iri_atom.eye +0 -3
  946. package/test/conformance/cases/builtins/eq_unifies_iri_atoms.eye +0 -3
  947. package/test/conformance/cases/builtins/extra_difference_end_before_start_fails.eye +0 -2
  948. package/test/conformance/cases/builtins/extra_difference_invalid_date_fails.eye +0 -2
  949. package/test/conformance/cases/builtins/extra_eq_binds_both_sides.eye +0 -2
  950. package/test/conformance/cases/builtins/extra_neq_different_iri_atoms.eye +0 -2
  951. package/test/conformance/cases/builtins/extra_neq_same_iri_fails.eye +0 -2
  952. package/test/conformance/cases/context/032_holds_parts.eye +0 -4
  953. package/test/conformance/cases/context/051_nested_holds_parts.eye +0 -4
  954. package/test/conformance/cases/context/052_holds_member.eye +0 -3
  955. package/test/conformance/cases/context/094_context_holds_enumeration.eye +0 -7
  956. package/test/conformance/cases/context/extra_holds_atom_parts.eye +0 -2
  957. package/test/conformance/cases/context/extra_holds_ignores_string_parts.eye +0 -2
  958. package/test/conformance/cases/context/extra_holds_list_parts.eye +0 -2
  959. package/test/conformance/cases/context/extra_holds_term_nested_order.eye +0 -2
  960. package/test/conformance/cases/context/holds_parts_from_formula.eye +0 -2
  961. package/test/conformance/cases/control/014_failure_filters_answers.eye +0 -7
  962. package/test/conformance/cases/control/043_once_user_predicate.eye +0 -5
  963. package/test/conformance/cases/control/074_forall_edges.eye +0 -10
  964. package/test/conformance/cases/control/097_control_negation_once_forall.eye +0 -13
  965. package/test/conformance/cases/control/extra_forall_bound_check.eye +0 -2
  966. package/test/conformance/cases/control/extra_forall_counterexample_fails.eye +0 -2
  967. package/test/conformance/cases/control/extra_not_unbound_existing_goal_fails.eye +0 -3
  968. package/test/conformance/cases/control/extra_not_unbound_unknown_goal_succeeds.eye +0 -2
  969. package/test/conformance/cases/control/extra_once_preserves_binding.eye +0 -2
  970. package/test/conformance/cases/control/forall_detects_counterexample.eye +0 -5
  971. package/test/conformance/cases/control/forall_empty_generator_true.eye +0 -2
  972. package/test/conformance/cases/control/negation_with_bound_generator.eye +0 -5
  973. package/test/conformance/cases/control/once_keeps_first_answer.eye +0 -4
  974. package/test/conformance/cases/declarations/104_mode_determinism_declarations.eye +0 -11
  975. package/test/conformance/cases/declarations/memoize_is_ordinary_fact.eye +0 -4
  976. package/test/conformance/cases/declarations/mode_determinism_are_facts.eye +0 -8
  977. package/test/conformance/cases/declarations/table_is_also_fact.eye +0 -4
  978. package/test/conformance/cases/lists/005_list_deconstruction.eye +0 -6
  979. package/test/conformance/cases/lists/015_improper_list_unification.eye +0 -6
  980. package/test/conformance/cases/lists/020_nested_list_terms.eye +0 -5
  981. package/test/conformance/cases/lists/031_lists_aggregation_ordering.eye +0 -10
  982. package/test/conformance/cases/lists/035_list_relations.eye +0 -5
  983. package/test/conformance/cases/lists/036_append_splits.eye +0 -3
  984. package/test/conformance/cases/lists/045_sort_deduplicates_atoms.eye +0 -3
  985. package/test/conformance/cases/lists/046_append_bound_prefix_suffix.eye +0 -4
  986. package/test/conformance/cases/lists/047_nth0_index_generation.eye +0 -3
  987. package/test/conformance/cases/lists/048_set_nth0_edges.eye +0 -4
  988. package/test/conformance/cases/lists/049_select_duplicate_occurrences.eye +0 -3
  989. package/test/conformance/cases/lists/063_reusable_list_builtins.eye +0 -11
  990. package/test/conformance/cases/lists/067_list_edges.eye +0 -10
  991. package/test/conformance/cases/lists/068_list_generation_order.eye +0 -7
  992. package/test/conformance/cases/lists/069_list_summaries_and_sets.eye +0 -9
  993. package/test/conformance/cases/lists/084_append_and_select_composition.eye +0 -7
  994. package/test/conformance/cases/lists/085_nth_and_update_edges.eye +0 -8
  995. package/test/conformance/cases/lists/086_slicing_pipeline.eye +0 -10
  996. package/test/conformance/cases/lists/087_sort_reverse_length.eye +0 -8
  997. package/test/conformance/cases/lists/088_list_summaries_failures.eye +0 -8
  998. package/test/conformance/cases/lists/empty_list_term.eye +0 -4
  999. package/test/conformance/cases/lists/extra_append_all_splits_three.eye +0 -2
  1000. package/test/conformance/cases/lists/extra_append_to_improper_tail.eye +0 -2
  1001. package/test/conformance/cases/lists/extra_drop_all.eye +0 -2
  1002. package/test/conformance/cases/lists/extra_head_and_rest_improper.eye +0 -2
  1003. package/test/conformance/cases/lists/extra_last_singleton.eye +0 -2
  1004. package/test/conformance/cases/lists/extra_length_improper_fails.eye +0 -2
  1005. package/test/conformance/cases/lists/extra_list_to_set_stable_order.eye +0 -2
  1006. package/test/conformance/cases/lists/extra_member_repeated_nested.eye +0 -2
  1007. package/test/conformance/cases/lists/extra_nth0_duplicate_indexes.eye +0 -2
  1008. package/test/conformance/cases/lists/extra_reverse_nested_terms.eye +0 -2
  1009. package/test/conformance/cases/lists/extra_select_structured_duplicate.eye +0 -2
  1010. package/test/conformance/cases/lists/extra_slice_end.eye +0 -2
  1011. package/test/conformance/cases/lists/extra_sort_iri_atoms.eye +0 -2
  1012. package/test/conformance/cases/lists/extra_take_all.eye +0 -2
  1013. package/test/conformance/cases/lists/head_rest_last.eye +0 -4
  1014. package/test/conformance/cases/lists/improper_list_readback.eye +0 -4
  1015. package/test/conformance/cases/lists/length_empty_and_nested.eye +0 -3
  1016. package/test/conformance/cases/lists/list_to_set_structural_duplicates.eye +0 -2
  1017. package/test/conformance/cases/lists/list_with_iri_atoms.eye +0 -4
  1018. package/test/conformance/cases/lists/min_list_empty_fails.eye +0 -2
  1019. package/test/conformance/cases/lists/nth0_out_of_range_fails.eye +0 -2
  1020. package/test/conformance/cases/lists/reverse_empty.eye +0 -2
  1021. package/test/conformance/cases/lists/select_all_occurrences.eye +0 -2
  1022. package/test/conformance/cases/lists/set_nth0_middle.eye +0 -2
  1023. package/test/conformance/cases/lists/slice_middle.eye +0 -2
  1024. package/test/conformance/cases/lists/slice_out_of_range_fails.eye +0 -2
  1025. package/test/conformance/cases/lists/sort_structured_terms.eye +0 -2
  1026. package/test/conformance/cases/lists/sum_list_empty_zero.eye +0 -2
  1027. package/test/conformance/cases/lists/sum_min_max_list.eye +0 -4
  1028. package/test/conformance/cases/lists/take_zero_and_drop_all.eye +0 -3
  1029. package/test/conformance/cases/materialize/027_default_derived_output.eye +0 -5
  1030. package/test/conformance/cases/materialize/028_materialize_focus.eye +0 -5
  1031. package/test/conformance/cases/materialize/053_materialize_excludes_source_fact.eye +0 -6
  1032. package/test/conformance/cases/materialize/099_materialize_multiple_arities.eye +0 -8
  1033. package/test/conformance/cases/materialize/source_facts_suppressed.eye +0 -5
  1034. package/test/conformance/cases/negation/033_negation_once_generators.eye +0 -7
  1035. package/test/conformance/cases/negation/042_negation_filter.eye +0 -7
  1036. package/test/conformance/cases/negation/050_not_member_filter.eye +0 -6
  1037. package/test/conformance/cases/negation/stratified_negation_answers.eye +0 -6
  1038. package/test/conformance/cases/rules/001_fact_output.eye +0 -4
  1039. package/test/conformance/cases/rules/002_rule_recursion.eye +0 -7
  1040. package/test/conformance/cases/rules/011_predicate_arity.eye +0 -6
  1041. package/test/conformance/cases/rules/013_multiple_clauses_order.eye +0 -6
  1042. package/test/conformance/cases/rules/017_three_step_recursion.eye +0 -8
  1043. package/test/conformance/cases/rules/022_rule_head_structure.eye +0 -5
  1044. package/test/conformance/cases/rules/077_recursive_path_with_lists.eye +0 -10
  1045. package/test/conformance/cases/rules/078_mutual_recursion_with_arithmetic.eye +0 -7
  1046. package/test/conformance/cases/rules/extra_left_to_right_multiple_bindings.eye +0 -5
  1047. package/test/conformance/cases/rules/extra_structured_head_rule.eye +0 -3
  1048. package/test/conformance/cases/rules/left_to_right_body_binding.eye +0 -4
  1049. package/test/conformance/cases/rules/transitive_rule_three_edges.eye +0 -7
  1050. package/test/conformance/cases/strings/023_quoted_escapes_readback.eye +0 -5
  1051. package/test/conformance/cases/strings/030_strings_and_atoms.eye +0 -4
  1052. package/test/conformance/cases/strings/055_string_matching_filters.eye +0 -6
  1053. package/test/conformance/cases/strings/056_string_and_atom_concat.eye +0 -3
  1054. package/test/conformance/cases/strings/064_reusable_string_builtins.eye +0 -12
  1055. package/test/conformance/cases/strings/070_matches_named_captures.eye +0 -13
  1056. package/test/conformance/cases/strings/071_string_edges.eye +0 -10
  1057. package/test/conformance/cases/strings/072_string_conversions.eye +0 -10
  1058. package/test/conformance/cases/strings/089_string_split_join_pipeline.eye +0 -7
  1059. package/test/conformance/cases/strings/090_string_substring_replace_edges.eye +0 -9
  1060. package/test/conformance/cases/strings/091_string_case_and_trim.eye +0 -7
  1061. package/test/conformance/cases/strings/092_scalar_string_conversions.eye +0 -9
  1062. package/test/conformance/cases/strings/093_regex_named_captures_context.eye +0 -8
  1063. package/test/conformance/cases/strings/atom_string_from_string.eye +0 -2
  1064. package/test/conformance/cases/strings/casefold_atoms.eye +0 -3
  1065. package/test/conformance/cases/strings/extra_atom_string_number_input.eye +0 -2
  1066. package/test/conformance/cases/strings/extra_join_empty_list.eye +0 -2
  1067. package/test/conformance/cases/strings/extra_join_iri_and_atom.eye +0 -2
  1068. package/test/conformance/cases/strings/extra_lowercase_iri_atom.eye +0 -2
  1069. package/test/conformance/cases/strings/extra_named_regex_optional_missing.eye +0 -2
  1070. package/test/conformance/cases/strings/extra_number_string_atom_input.eye +0 -2
  1071. package/test/conformance/cases/strings/extra_replace_multiple.eye +0 -2
  1072. package/test/conformance/cases/strings/extra_split_empty_separator.eye +0 -2
  1073. package/test/conformance/cases/strings/extra_substring_last_char.eye +0 -2
  1074. package/test/conformance/cases/strings/extra_term_string_iri_list.eye +0 -2
  1075. package/test/conformance/cases/strings/extra_uppercase_mixed_string.eye +0 -2
  1076. package/test/conformance/cases/strings/join_mixed_scalars.eye +0 -2
  1077. package/test/conformance/cases/strings/named_regex_two_groups.eye +0 -2
  1078. package/test/conformance/cases/strings/number_string_from_string.eye +0 -2
  1079. package/test/conformance/cases/strings/number_string_rejects_non_numeric.eye +0 -2
  1080. package/test/conformance/cases/strings/replace_empty_search_no_change.eye +0 -2
  1081. package/test/conformance/cases/strings/split_without_separator_match.eye +0 -2
  1082. package/test/conformance/cases/strings/substring_out_of_range_fails.eye +0 -2
  1083. package/test/conformance/cases/strings/substring_zero_count.eye +0 -2
  1084. package/test/conformance/cases/strings/term_string_nested_term.eye +0 -2
  1085. package/test/conformance/cases/strings/trim_tabs_and_spaces.eye +0 -3
  1086. package/test/conformance/cases/syntax/004_conjunction_and_parentheses.eye +0 -5
  1087. package/test/conformance/cases/syntax/006_comma_formula_data.eye +0 -4
  1088. package/test/conformance/cases/syntax/009_comments_and_whitespace.eye +0 -5
  1089. package/test/conformance/cases/syntax/019_parenthesized_three_conjuncts.eye +0 -7
  1090. package/test/conformance/cases/syntax/025_body_parentheses_with_formula_data.eye +0 -5
  1091. package/test/conformance/cases/syntax/parenthesized_query_style_body.eye +0 -5
  1092. package/test/conformance/cases/table/038_table_declaration.eye +0 -8
  1093. package/test/conformance/cases/table/102_table_declaration.eye +0 -11
  1094. package/test/conformance/cases/table/extra_table_bound_cycle.eye +0 -7
  1095. package/test/conformance/cases/table/extra_table_open_call_fallback.eye +0 -5
  1096. package/test/conformance/cases/table/table_does_not_change_answers.eye +0 -7
  1097. package/test/conformance/cases/table/tabled_left_recursion_path.eye +0 -7
  1098. package/test/conformance/cases/terms/003_terms_and_readback.eye +0 -16
  1099. package/test/conformance/cases/terms/065_reusable_term_control_builtins.eye +0 -11
  1100. package/test/conformance/cases/terms/073_term_introspection_edges.eye +0 -11
  1101. package/test/conformance/cases/terms/095_term_introspection_roundtrip.eye +0 -8
  1102. package/test/conformance/cases/terms/096_functor_scalar_edges.eye +0 -8
  1103. package/test/conformance/cases/terms/arg_first_and_second.eye +0 -3
  1104. package/test/conformance/cases/terms/arg_zero_fails.eye +0 -2
  1105. package/test/conformance/cases/terms/compound_name_arguments_atom_zero_args.eye +0 -3
  1106. package/test/conformance/cases/terms/compound_name_arguments_bad_args_fail.eye +0 -2
  1107. package/test/conformance/cases/terms/compound_name_arguments_builds_atom_from_empty_args.eye +0 -3
  1108. package/test/conformance/cases/terms/compound_name_arguments_builds_compound.eye +0 -2
  1109. package/test/conformance/cases/terms/compound_name_arguments_iri_name.eye +0 -2
  1110. package/test/conformance/cases/terms/extra_arg_atom_fails.eye +0 -2
  1111. package/test/conformance/cases/terms/extra_arg_first_last.eye +0 -2
  1112. package/test/conformance/cases/terms/extra_arg_zero_fails.eye +0 -2
  1113. package/test/conformance/cases/terms/extra_compound_name_arguments_bad_args_fails.eye +0 -2
  1114. package/test/conformance/cases/terms/extra_compound_name_arguments_construct_atom_zero.eye +0 -2
  1115. package/test/conformance/cases/terms/extra_compound_name_arguments_construct_iri.eye +0 -2
  1116. package/test/conformance/cases/terms/extra_compound_name_arguments_decompose_list.eye +0 -2
  1117. package/test/conformance/cases/terms/extra_functor_list_cons.eye +0 -2
  1118. package/test/conformance/cases/terms/extra_functor_number_scalar.eye +0 -2
  1119. package/test/conformance/cases/terms/extra_functor_string_scalar.eye +0 -2
  1120. package/test/conformance/cases/terms/functor_atom_arity_zero.eye +0 -3
  1121. package/test/conformance/cases/terms/functor_number_and_string.eye +0 -3
  1122. package/test/conformance/cases/terms/herbrand_witness_one_input.eye +0 -5
  1123. package/test/conformance/cases/terms/herbrand_witness_two_inputs.eye +0 -5
  1124. package/test/conformance/cases/terms/term_string_readback_iri_list.eye +0 -2
  1125. package/test/conformance/cases/unification/012_nested_compound_unification.eye +0 -5
  1126. package/test/conformance/cases/unification/021_repeated_variable_head.eye +0 -7
  1127. package/test/conformance/cases/unification/034_equality_and_inequality.eye +0 -6
  1128. package/test/conformance/cases/unification/extra_eq_iri_and_quoted_atom.eye +0 -2
  1129. package/test/conformance/cases/unification/extra_eq_list_tail_binding.eye +0 -2
  1130. package/test/conformance/cases/unification/extra_eq_nested_repeated_fails.eye +0 -2
  1131. package/test/conformance/cases/unification/extra_eq_nested_repeated_success.eye +0 -2
  1132. package/test/conformance/cases/unification/extra_variable_clause_locality.eye +0 -4
  1133. package/test/conformance/cases/unification/list_tail_binding.eye +0 -2
  1134. package/test/conformance/cases/unification/nested_repeated_variable.eye +0 -2
  1135. package/test/conformance/cases/variables/007_anonymous_variables.eye +0 -5
  1136. package/test/conformance/cases/variables/010_variable_scope_and_reuse.eye +0 -8
  1137. package/test/conformance/cases/variables/026_question_underscore_named_variable_reuse.eye +0 -5
  1138. package/test/conformance/cases/variables/101_question_mark_variables.eye +0 -7
  1139. package/test/conformance/cases/variables/anonymous_in_two_goals.eye +0 -4
  1140. package/test/conformance/cases/variables/clause_local_variable_names.eye +0 -5
  1141. package/test/conformance/cases/variables/extra_anonymous_not_reused.eye +0 -2
  1142. package/test/conformance/cases/variables/extra_named_variable_reused.eye +0 -2
  1143. package/test/conformance/cases/variables/extra_question_underscore_named_distinct.eye +0 -2
  1144. package/test/conformance/cases/variables/extra_question_uppercase_named.eye +0 -2
  1145. package/test/conformance/cases/variables/question_anonymous_not_reused.eye +0 -6
  1146. package/test/conformance/cases/variables/question_underscore_named_reuse.eye +0 -5
  1147. package/test/conformance/cases/variables/question_uppercase_variable.eye +0 -4
  1148. package/test/conformance/cases/variables/question_variable_digits_and_underscore.eye +0 -2
  1149. package/test/conformance/cases/variables/question_variable_uppercase_name.eye +0 -2
  1150. package/test/conformance/cases/variables/variable_scope_per_clause.eye +0 -6
  1151. package/test/conformance/errors/syntax/bad_question_variable.eye +0 -1
  1152. package/test/conformance/errors/variables/bare_underscore_in_list_rejected.eye +0 -1
  1153. package/test/conformance/errors/variables/bare_underscore_name_in_compound_rejected.eye +0 -1
  1154. package/test/conformance/errors/variables/bare_underscore_rejected.eye +0 -1
  1155. package/test/conformance/errors/variables/extra_bare_underscore_in_rule_head.eye +0 -1
  1156. package/test/conformance/errors/variables/extra_question_dash_variable.eye +0 -1
  1157. package/test/conformance/errors/variables/extra_uppercase_in_list.eye +0 -1
  1158. package/test/conformance/errors/variables/question_dot_rejected.eye +0 -1
  1159. package/test/conformance/errors/variables/underscore_named_rejected.eye +0 -1
  1160. package/test/conformance/errors/variables/uppercase_in_body_rejected.eye +0 -1
  1161. package/test/conformance/errors/variables/uppercase_variable_rejected.eye +0 -1
  1162. package/test/conformance/expected/aggregation/extra_aggregate_max_iri_key.eye +0 -1
  1163. package/test/conformance/expected/atoms/103_angle_iri_atoms.eye +0 -3
  1164. package/test/conformance/expected/atoms/iri_atoms_in_lists.eye +0 -1
  1165. package/test/conformance/expected/atoms/iri_mailto_readback.eye +0 -1
  1166. package/test/conformance/expected/atoms/iri_query_fragment_readback.eye +0 -1
  1167. package/test/conformance/expected/atoms/iri_quoted_absolute_readback.eye +0 -2
  1168. package/test/conformance/expected/atoms/iri_urn_readback.eye +0 -1
  1169. package/test/conformance/expected/atoms/quoted_urn_iri_readback.eye +0 -1
  1170. package/test/conformance/expected/builtins/atom_string_iri_atom.eye +0 -1
  1171. package/test/conformance/expected/lists/extra_reverse_nested_terms.eye +0 -1
  1172. package/test/conformance/expected/lists/extra_sort_iri_atoms.eye +0 -1
  1173. package/test/conformance/expected/lists/list_with_iri_atoms.eye +0 -1
  1174. package/test/conformance/expected/strings/extra_join_iri_and_atom.eye +0 -1
  1175. package/test/conformance/expected/strings/extra_lowercase_iri_atom.eye +0 -1
  1176. package/test/conformance/expected/strings/extra_term_string_iri_list.eye +0 -1
  1177. package/test/conformance/expected/strings/term_string_nested_term.eye +0 -1
  1178. package/test/conformance/expected/terms/compound_name_arguments_iri_name.eye +0 -1
  1179. package/test/conformance/expected/terms/extra_compound_name_arguments_construct_iri.eye +0 -1
  1180. package/test/conformance/expected/terms/term_string_readback_iri_list.eye +0 -1
  1181. package/test/conformance/expected/unification/extra_eq_iri_and_quoted_atom.eye +0 -1
  1182. package/test/conformance/expected/variables/question_variable_digits_and_underscore.eye +0 -1
  1183. package/test/conformance/expected/variables/question_variable_uppercase_name.eye +0 -1
  1184. package/test/conformance/expected-proofs/proofs/bindings_nested_term.eye +0 -16
  1185. package/test/conformance/expected-proofs/proofs/builtin_numeric.eye +0 -16
  1186. package/test/conformance/expected-proofs/proofs/extra_aggregate_min.eye +0 -16
  1187. package/test/conformance/expected-proofs/proofs/extra_compound_name_arguments.eye +0 -16
  1188. package/test/conformance/expected-proofs/proofs/extra_eq_builtin.eye +0 -16
  1189. package/test/conformance/expected-proofs/proofs/extra_findall_builtin.eye +0 -16
  1190. package/test/conformance/expected-proofs/proofs/extra_forall_builtin.eye +0 -15
  1191. package/test/conformance/expected-proofs/proofs/extra_holds_parts.eye +0 -32
  1192. package/test/conformance/expected-proofs/proofs/extra_iri_join.eye +0 -16
  1193. package/test/conformance/expected-proofs/proofs/extra_nested_list_binding.eye +0 -16
  1194. package/test/conformance/expected-proofs/proofs/extra_once_member.eye +0 -22
  1195. package/test/conformance/expected-proofs/proofs/extra_recursive_path.eye +0 -59
  1196. package/test/conformance/expected-proofs/proofs/extra_table_path_bound.eye +0 -57
  1197. package/test/conformance/expected-proofs/proofs/herbrand_witness.eye +0 -16
  1198. package/test/conformance/expected-proofs/proofs/iri_atom.eye +0 -16
  1199. package/test/conformance/expected-proofs/proofs/list_builtin.eye +0 -20
  1200. package/test/conformance/expected-proofs/proofs/once_child.eye +0 -22
  1201. package/test/conformance/expected-proofs/proofs/rule_fact.eye +0 -16
  1202. package/test/conformance/expected-proofs/proofs/table_recursive.eye +0 -59
  1203. package/test/conformance/proofs/proofs/bindings_nested_term.eye +0 -4
  1204. package/test/conformance/proofs/proofs/builtin_numeric.eye +0 -3
  1205. package/test/conformance/proofs/proofs/extra_aggregate_min.eye +0 -4
  1206. package/test/conformance/proofs/proofs/extra_compound_name_arguments.eye +0 -2
  1207. package/test/conformance/proofs/proofs/extra_eq_builtin.eye +0 -2
  1208. package/test/conformance/proofs/proofs/extra_findall_builtin.eye +0 -4
  1209. package/test/conformance/proofs/proofs/extra_forall_builtin.eye +0 -2
  1210. package/test/conformance/proofs/proofs/extra_holds_parts.eye +0 -2
  1211. package/test/conformance/proofs/proofs/extra_iri_join.eye +0 -2
  1212. package/test/conformance/proofs/proofs/extra_nested_list_binding.eye +0 -2
  1213. package/test/conformance/proofs/proofs/extra_once_member.eye +0 -2
  1214. package/test/conformance/proofs/proofs/extra_recursive_path.eye +0 -5
  1215. package/test/conformance/proofs/proofs/extra_table_path_bound.eye +0 -7
  1216. package/test/conformance/proofs/proofs/herbrand_witness.eye +0 -3
  1217. package/test/conformance/proofs/proofs/iri_atom.eye +0 -4
  1218. package/test/conformance/proofs/proofs/list_builtin.eye +0 -3
  1219. package/test/conformance/proofs/proofs/once_child.eye +0 -5
  1220. package/test/conformance/proofs/proofs/rule_fact.eye +0 -4
  1221. package/test/conformance/proofs/proofs/table_recursive.eye +0 -7
  1222. package/test/conformance/warnings/negation/extra_stratified_negation_with_table_quiet.eye +0 -6
  1223. package/test/conformance/warnings/negation/extra_unstratified_indirect_self_with_fact.eye +0 -5
  1224. package/test/conformance/warnings/negation/extra_unstratified_positive_negative_loop.eye +0 -5
  1225. package/test/conformance/warnings/negation/no_negation_quiet.eye +0 -3
  1226. package/test/conformance/warnings/negation/stratified_negative_unknown_after_positive_quiet.eye +0 -3
  1227. package/test/conformance/warnings/negation/stratified_two_level_quiet.eye +0 -5
  1228. package/test/conformance/warnings/negation/unstratified_three_step.eye +0 -6
  1229. package/test/conformance/warnings/negation/unstratified_with_iri_predicates.eye +0 -4
  1230. /package/examples/output/{abstract-interpretation.eye → abstract-interpretation.pl} +0 -0
  1231. /package/examples/output/{access-control-policy.eye → access-control-policy.pl} +0 -0
  1232. /package/examples/output/{ackermann.eye → ackermann.pl} +0 -0
  1233. /package/examples/output/{age.eye → age.pl} +0 -0
  1234. /package/examples/output/{aliases-and-namespaces.eye → aliases-and-namespaces.pl} +0 -0
  1235. /package/examples/output/{alignment-demo.eye → alignment-demo.pl} +0 -0
  1236. /package/examples/output/{allen-interval-calculus.eye → allen-interval-calculus.pl} +0 -0
  1237. /package/examples/output/{ancestor.eye → ancestor.pl} +0 -0
  1238. /package/examples/output/{animal.eye → animal.pl} +0 -0
  1239. /package/examples/output/{annotation.eye → annotation.pl} +0 -0
  1240. /package/examples/output/{auroracare.eye → auroracare.pl} +0 -0
  1241. /package/examples/output/{backward.eye → backward.pl} +0 -0
  1242. /package/examples/output/{basic-monadic.eye → basic-monadic.pl} +0 -0
  1243. /package/examples/output/{bayes-diagnosis.eye → bayes-diagnosis.pl} +0 -0
  1244. /package/examples/output/{bayes-therapy.eye → bayes-therapy.pl} +0 -0
  1245. /package/examples/output/{beam-deflection.eye → beam-deflection.pl} +0 -0
  1246. /package/examples/output/{binomial-vandermonde.eye → binomial-vandermonde.pl} +0 -0
  1247. /package/examples/output/{blocks-world-planning.eye → blocks-world-planning.pl} +0 -0
  1248. /package/examples/output/{bmi.eye → bmi.pl} +0 -0
  1249. /package/examples/output/{braking-safety-worlds.eye → braking-safety-worlds.pl} +0 -0
  1250. /package/examples/output/{buck-converter-design.eye → buck-converter-design.pl} +0 -0
  1251. /package/examples/output/{cache-performance.eye → cache-performance.pl} +0 -0
  1252. /package/examples/output/{canary-release.eye → canary-release.pl} +0 -0
  1253. /package/examples/output/{cat-koko.eye → cat-koko.pl} +0 -0
  1254. /package/examples/output/{catalan-convolution.eye → catalan-convolution.pl} +0 -0
  1255. /package/examples/output/{cdcl-sat-solver.eye → cdcl-sat-solver.pl} +0 -0
  1256. /package/examples/output/{chart-parser.eye → chart-parser.pl} +0 -0
  1257. /package/examples/output/{clinical-trial-screening.eye → clinical-trial-screening.pl} +0 -0
  1258. /package/examples/output/{collatz-1000.eye → collatz-1000.pl} +0 -0
  1259. /package/examples/output/{combinatorics-findall-sort.eye → combinatorics-findall-sort.pl} +0 -0
  1260. /package/examples/output/{competitive-enzyme-kinetics.eye → competitive-enzyme-kinetics.pl} +0 -0
  1261. /package/examples/output/{complex.eye → complex.pl} +0 -0
  1262. /package/examples/output/{composition-of-injective-functions-is-injective.eye → composition-of-injective-functions-is-injective.pl} +0 -0
  1263. /package/examples/output/{context-association.eye → context-association.pl} +0 -0
  1264. /package/examples/output/{context-schema-audit.eye → context-schema-audit.pl} +0 -0
  1265. /package/examples/output/{continued-fraction-sqrt2.eye → continued-fraction-sqrt2.pl} +0 -0
  1266. /package/examples/output/{control-system.eye → control-system.pl} +0 -0
  1267. /package/examples/output/{critical-path-schedule.eye → critical-path-schedule.pl} +0 -0
  1268. /package/examples/output/{cyclic-path.eye → cyclic-path.pl} +0 -0
  1269. /package/examples/output/{d3-group.eye → d3-group.pl} +0 -0
  1270. /package/examples/output/{dairy-energy-balance.eye → dairy-energy-balance.pl} +0 -0
  1271. /package/examples/output/{data-negotiation.eye → data-negotiation.pl} +0 -0
  1272. /package/examples/output/{deep-taxonomy-10.eye → deep-taxonomy-10.pl} +0 -0
  1273. /package/examples/output/{deep-taxonomy-100.eye → deep-taxonomy-100.pl} +0 -0
  1274. /package/examples/output/{deep-taxonomy-1000.eye → deep-taxonomy-1000.pl} +0 -0
  1275. /package/examples/output/{deep-taxonomy-10000.eye → deep-taxonomy-10000.pl} +0 -0
  1276. /package/examples/output/{deep-taxonomy-100000.eye → deep-taxonomy-100000.pl} +0 -0
  1277. /package/examples/output/{delfour.eye → delfour.pl} +0 -0
  1278. /package/examples/output/{deontic-logic.eye → deontic-logic.pl} +0 -0
  1279. /package/examples/output/{derived-backward-rule.eye → derived-backward-rule.pl} +0 -0
  1280. /package/examples/output/{derived-rule.eye → derived-rule.pl} +0 -0
  1281. /package/examples/output/{diamond-property.eye → diamond-property.pl} +0 -0
  1282. /package/examples/output/{dijkstra-findall-sort.eye → dijkstra-findall-sort.pl} +0 -0
  1283. /package/examples/output/{dijkstra-risk-path.eye → dijkstra-risk-path.pl} +0 -0
  1284. /package/examples/output/{dijkstra.eye → dijkstra.pl} +0 -0
  1285. /package/examples/output/{dining-philosophers.eye → dining-philosophers.pl} +0 -0
  1286. /package/examples/output/{dog.eye → dog.pl} +0 -0
  1287. /package/examples/output/{dpv-odrl-purpose-mapping.eye → dpv-odrl-purpose-mapping.pl} +0 -0
  1288. /package/examples/output/{drone-corridor-planner.eye → drone-corridor-planner.pl} +0 -0
  1289. /package/examples/output/{easter-computus.eye → easter-computus.pl} +0 -0
  1290. /package/examples/output/{electrical-rc-filter.eye → electrical-rc-filter.pl} +0 -0
  1291. /package/examples/output/{epidemic-policy.eye → epidemic-policy.pl} +0 -0
  1292. /package/examples/output/{equality-saturation.eye → equality-saturation.pl} +0 -0
  1293. /package/examples/output/{equivalence-classes-overlap-implies-same-class.eye → equivalence-classes-overlap-implies-same-class.pl} +0 -0
  1294. /package/examples/output/{eulerian-path.eye → eulerian-path.pl} +0 -0
  1295. /package/examples/output/{ev-range-worlds.eye → ev-range-worlds.pl} +0 -0
  1296. /package/examples/output/{existential-rule.eye → existential-rule.pl} +0 -0
  1297. /package/examples/output/{exoplanet-validation-worlds.eye → exoplanet-validation-worlds.pl} +0 -0
  1298. /package/examples/output/{expression-eval.eye → expression-eval.pl} +0 -0
  1299. /package/examples/output/{family-cousins.eye → family-cousins.pl} +0 -0
  1300. /package/examples/output/{fastpow.eye → fastpow.pl} +0 -0
  1301. /package/examples/output/{fft8-numeric.eye → fft8-numeric.pl} +0 -0
  1302. /package/examples/output/{fibonacci.eye → fibonacci.pl} +0 -0
  1303. /package/examples/output/{field-nitrogen-balance.eye → field-nitrogen-balance.pl} +0 -0
  1304. /package/examples/output/{flandor.eye → flandor.pl} +0 -0
  1305. /package/examples/output/{floating-point.eye → floating-point.pl} +0 -0
  1306. /package/examples/output/{four-color-map.eye → four-color-map.pl} +0 -0
  1307. /package/examples/output/{fundamental-theorem-arithmetic.eye → fundamental-theorem-arithmetic.pl} +0 -0
  1308. /package/examples/output/{gd-step-certified.eye → gd-step-certified.pl} +0 -0
  1309. /package/examples/output/{gdpr-compliance.eye → gdpr-compliance.pl} +0 -0
  1310. /package/examples/output/{good-cobbler.eye → good-cobbler.pl} +0 -0
  1311. /package/examples/output/{gps.eye → gps.pl} +0 -0
  1312. /package/examples/output/{graph-reachability.eye → graph-reachability.pl} +0 -0
  1313. /package/examples/output/{graph.eye → graph.pl} +0 -0
  1314. /package/examples/output/{gray-code-counter.eye → gray-code-counter.pl} +0 -0
  1315. /package/examples/output/{greatest-lower-bound-uniqueness.eye → greatest-lower-bound-uniqueness.pl} +0 -0
  1316. /package/examples/output/{group-inverse-uniqueness.eye → group-inverse-uniqueness.pl} +0 -0
  1317. /package/examples/output/{hamiltonian-path.eye → hamiltonian-path.pl} +0 -0
  1318. /package/examples/output/{hamming-code.eye → hamming-code.pl} +0 -0
  1319. /package/examples/output/{hanoi.eye → hanoi.pl} +0 -0
  1320. /package/examples/output/{heat-loss.eye → heat-loss.pl} +0 -0
  1321. /package/examples/output/{herbrand-witnesses.eye → herbrand-witnesses.pl} +0 -0
  1322. /package/examples/output/{heron-theorem.eye → heron-theorem.pl} +0 -0
  1323. /package/examples/output/{ideal-gas-law.eye → ideal-gas-law.pl} +0 -0
  1324. /package/examples/output/{illegitimate-reasoning.eye → illegitimate-reasoning.pl} +0 -0
  1325. /package/examples/output/{integer-partitions.eye → integer-partitions.pl} +0 -0
  1326. /package/examples/output/{intuitionistic-logic-kripke.eye → intuitionistic-logic-kripke.pl} +0 -0
  1327. /package/examples/output/{job-shop-scheduling.eye → job-shop-scheduling.pl} +0 -0
  1328. /package/examples/output/{knapsack-optimization.eye → knapsack-optimization.pl} +0 -0
  1329. /package/examples/output/{knowledge-engineering-alignment-flow.eye → knowledge-engineering-alignment-flow.pl} +0 -0
  1330. /package/examples/output/{knuth-bendix-completion.eye → knuth-bendix-completion.pl} +0 -0
  1331. /package/examples/output/{law-of-cosines.eye → law-of-cosines.pl} +0 -0
  1332. /package/examples/output/{least-squares-regression.eye → least-squares-regression.pl} +0 -0
  1333. /package/examples/output/{linear-logic-resources.eye → linear-logic-resources.pl} +0 -0
  1334. /package/examples/output/{list-collection.eye → list-collection.pl} +0 -0
  1335. /package/examples/output/{lldm.eye → lldm.pl} +0 -0
  1336. /package/examples/output/{manufacturing-quality-control.eye → manufacturing-quality-control.pl} +0 -0
  1337. /package/examples/output/{map-four-color-search.eye → map-four-color-search.pl} +0 -0
  1338. /package/examples/output/{markov-logic-network.eye → markov-logic-network.pl} +0 -0
  1339. /package/examples/output/{matrix-chain-order.eye → matrix-chain-order.pl} +0 -0
  1340. /package/examples/output/{matrix-noncommutativity.eye → matrix-noncommutativity.pl} +0 -0
  1341. /package/examples/output/{microgrid-dispatch.eye → microgrid-dispatch.pl} +0 -0
  1342. /package/examples/output/{missionaries-cannibals.eye → missionaries-cannibals.pl} +0 -0
  1343. /package/examples/output/{modal-logic-kripke.eye → modal-logic-kripke.pl} +0 -0
  1344. /package/examples/output/{modular-exponentiation.eye → modular-exponentiation.pl} +0 -0
  1345. /package/examples/output/{monkey-bananas.eye → monkey-bananas.pl} +0 -0
  1346. /package/examples/output/{n-queens-8.eye → n-queens-8.pl} +0 -0
  1347. /package/examples/output/{network-sla.eye → network-sla.pl} +0 -0
  1348. /package/examples/output/{newton-raphson.eye → newton-raphson.pl} +0 -0
  1349. /package/examples/output/{nixon-diamond.eye → nixon-diamond.pl} +0 -0
  1350. /package/examples/output/{observability-log-correlation.eye → observability-log-correlation.pl} +0 -0
  1351. /package/examples/output/{odrl-dpv-fpv-trust-flow.eye → odrl-dpv-fpv-trust-flow.pl} +0 -0
  1352. /package/examples/output/{odrl-dpv-healthcare-risk-ranked.eye → odrl-dpv-healthcare-risk-ranked.pl} +0 -0
  1353. /package/examples/output/{odrl-dpv-risk-ranked.eye → odrl-dpv-risk-ranked.pl} +0 -0
  1354. /package/examples/output/{orbital-transfer-design.eye → orbital-transfer-design.pl} +0 -0
  1355. /package/examples/output/{partial-evaluator.eye → partial-evaluator.pl} +0 -0
  1356. /package/examples/output/{path-discovery.eye → path-discovery.pl} +0 -0
  1357. /package/examples/output/{peano-arithmetic.eye → peano-arithmetic.pl} +0 -0
  1358. /package/examples/output/{peano-calculus.eye → peano-calculus.pl} +0 -0
  1359. /package/examples/output/{peasant.eye → peasant.pl} +0 -0
  1360. /package/examples/output/{pell-equation.eye → pell-equation.pl} +0 -0
  1361. /package/examples/output/{pendulum-period.eye → pendulum-period.pl} +0 -0
  1362. /package/examples/output/{pointer-analysis.eye → pointer-analysis.pl} +0 -0
  1363. /package/examples/output/{polynomial.eye → polynomial.pl} +0 -0
  1364. /package/examples/output/{prime-range.eye → prime-range.pl} +0 -0
  1365. /package/examples/output/{proof-contrapositive.eye → proof-contrapositive.pl} +0 -0
  1366. /package/examples/output/{quadratic-formula.eye → quadratic-formula.pl} +0 -0
  1367. /package/examples/output/{radioactive-decay.eye → radioactive-decay.pl} +0 -0
  1368. /package/examples/output/{register-allocation.eye → register-allocation.pl} +0 -0
  1369. /package/examples/output/{reusable-builtins.eye → reusable-builtins.pl} +0 -0
  1370. /package/examples/output/{riemann-hypothesis.eye → riemann-hypothesis.pl} +0 -0
  1371. /package/examples/output/{route-planning.eye → route-planning.pl} +0 -0
  1372. /package/examples/output/{sat-solver-dpll.eye → sat-solver-dpll.pl} +0 -0
  1373. /package/examples/output/{security-incident-correlation.eye → security-incident-correlation.pl} +0 -0
  1374. /package/examples/output/{send-more-money.eye → send-more-money.pl} +0 -0
  1375. /package/examples/output/{service-impact.eye → service-impact.pl} +0 -0
  1376. /package/examples/output/{shoelace-polygon-area.eye → shoelace-polygon-area.pl} +0 -0
  1377. /package/examples/output/{sieve.eye → sieve.pl} +0 -0
  1378. /package/examples/output/{skolem-functions.eye → skolem-functions.pl} +0 -0
  1379. /package/examples/output/{socket-age.eye → socket-age.pl} +0 -0
  1380. /package/examples/output/{socket-family.eye → socket-family.pl} +0 -0
  1381. /package/examples/output/{socrates.eye → socrates.pl} +0 -0
  1382. /package/examples/output/{stable-marriage.eye → stable-marriage.pl} +0 -0
  1383. /package/examples/output/{statistics-summary.eye → statistics-summary.pl} +0 -0
  1384. /package/examples/output/{stirling-bell-numbers.eye → stirling-bell-numbers.pl} +0 -0
  1385. /package/examples/output/{sudoku-4x4.eye → sudoku-4x4.pl} +0 -0
  1386. /package/examples/output/{superdense-coding.eye → superdense-coding.pl} +0 -0
  1387. /package/examples/output/{symbolic-derivative.eye → symbolic-derivative.pl} +0 -0
  1388. /package/examples/output/{term-tools.eye → term-tools.pl} +0 -0
  1389. /package/examples/output/{totient-summatory.eye → totient-summatory.pl} +0 -0
  1390. /package/examples/output/{trust-flow-provenance-threshold.eye → trust-flow-provenance-threshold.pl} +0 -0
  1391. /package/examples/output/{truth-maintenance-system.eye → truth-maintenance-system.pl} +0 -0
  1392. /package/examples/output/{turing.eye → turing.pl} +0 -0
  1393. /package/examples/output/{type-inference.eye → type-inference.pl} +0 -0
  1394. /package/examples/output/{vector-similarity.eye → vector-similarity.pl} +0 -0
  1395. /package/examples/output/{vulnerability-impact.eye → vulnerability-impact.pl} +0 -0
  1396. /package/examples/output/{weighted-interval-scheduling.eye → weighted-interval-scheduling.pl} +0 -0
  1397. /package/examples/output/{witch.eye → witch.pl} +0 -0
  1398. /package/examples/output/{wolf-goat-cabbage.eye → wolf-goat-cabbage.pl} +0 -0
  1399. /package/examples/output/{workplace-compliance.eye → workplace-compliance.pl} +0 -0
  1400. /package/examples/output/{zebra.eye → zebra.pl} +0 -0
  1401. /package/test/conformance/cases/arithmetic/{054_numeric_and_lexical_comparison.eye → 054_numeric_and_lexical_comparison.pl} +0 -0
  1402. /package/test/conformance/cases/arithmetic/{082_comparison_semantics.eye → 082_comparison_semantics.pl} +0 -0
  1403. /package/test/conformance/cases/arithmetic/{between_bound_value.eye → between_bound_value.pl} +0 -0
  1404. /package/test/conformance/cases/arithmetic/{duration_comparison.eye → duration_comparison.pl} +0 -0
  1405. /package/test/conformance/cases/arithmetic/{extra_ge_equal_duration.eye → extra_ge_equal_duration.pl} +0 -0
  1406. /package/test/conformance/cases/arithmetic/{extra_le_equal_string.eye → extra_le_equal_string.pl} +0 -0
  1407. /package/test/conformance/cases/atoms/{extra_graphic_backslash_atom.eye → extra_graphic_backslash_atom.pl} +0 -0
  1408. /package/test/conformance/cases/atoms/{extra_quoted_atom_with_quote_readback.eye → extra_quoted_atom_with_quote_readback.pl} +0 -0
  1409. /package/test/conformance/cases/atoms/{graphic_atom_predicate.eye → graphic_atom_predicate.pl} +0 -0
  1410. /package/test/conformance/cases/atoms/{iri_as_predicate_name_quoted.eye → iri_as_predicate_name_quoted.pl} +0 -0
  1411. /package/test/conformance/cases/atoms/{quoted_relative_iri_not_angle.eye → quoted_relative_iri_not_angle.pl} +0 -0
  1412. /package/test/conformance/cases/builtins/{037_matching_and_comparison.eye → 037_matching_and_comparison.pl} +0 -0
  1413. /package/test/conformance/cases/context/{holds_compound_formula.eye → holds_compound_formula.pl} +0 -0
  1414. /package/test/conformance/cases/context/{holds_fails_when_missing.eye → holds_fails_when_missing.pl} +0 -0
  1415. /package/test/conformance/cases/control/{double_negation_ground_goal.eye → double_negation_ground_goal.pl} +0 -0
  1416. /package/test/conformance/cases/control/{extra_once_empty_fails.eye → extra_once_empty_fails.pl} +0 -0
  1417. /package/test/conformance/cases/declarations/{det_semidet_do_not_emit_without_materialize.eye → det_semidet_do_not_emit_without_materialize.pl} +0 -0
  1418. /package/test/conformance/cases/declarations/{mode_ignored_when_arity_mismatch.eye → mode_ignored_when_arity_mismatch.pl} +0 -0
  1419. /package/test/conformance/cases/lists/{extra_not_member_compound_fails.eye → extra_not_member_compound_fails.pl} +0 -0
  1420. /package/test/conformance/cases/lists/{extra_not_member_compound_success.eye → extra_not_member_compound_success.pl} +0 -0
  1421. /package/test/conformance/cases/lists/{nth0_known_value.eye → nth0_known_value.pl} +0 -0
  1422. /package/test/conformance/cases/materialize/{arity_specific_outputs.eye → arity_specific_outputs.pl} +0 -0
  1423. /package/test/conformance/cases/materialize/{extra_materialize_derived_only_with_same_source.eye → extra_materialize_derived_only_with_same_source.pl} +0 -0
  1424. /package/test/conformance/cases/materialize/{extra_materialize_selects_arity.eye → extra_materialize_selects_arity.pl} +0 -0
  1425. /package/test/conformance/cases/negation/{extra_not_with_bound_fails.eye → extra_not_with_bound_fails.pl} +0 -0
  1426. /package/test/conformance/cases/negation/{extra_not_with_bound_success.eye → extra_not_with_bound_success.pl} +0 -0
  1427. /package/test/conformance/cases/negation/{not_known_goal_fails.eye → not_known_goal_fails.pl} +0 -0
  1428. /package/test/conformance/cases/negation/{not_unknown_goal_succeeds.eye → not_unknown_goal_succeeds.pl} +0 -0
  1429. /package/test/conformance/cases/strings/{contains_empty_needle.eye → contains_empty_needle.pl} +0 -0
  1430. /package/test/conformance/cases/strings/{extra_matches_invalid_pattern_fails.eye → extra_matches_invalid_pattern_fails.pl} +0 -0
  1431. /package/test/conformance/cases/strings/{matches_simple_alternation.eye → matches_simple_alternation.pl} +0 -0
  1432. /package/test/conformance/cases/strings/{not_matches_simple_pattern.eye → not_matches_simple_pattern.pl} +0 -0
  1433. /package/test/conformance/cases/syntax/{comments_inside_program.eye → comments_inside_program.pl} +0 -0
  1434. /package/test/conformance/cases/syntax/{extra_comments_after_terms.eye → extra_comments_after_terms.pl} +0 -0
  1435. /package/test/conformance/cases/syntax/{extra_nested_parenthesized_body.eye → extra_nested_parenthesized_body.pl} +0 -0
  1436. /package/test/conformance/cases/syntax/{quoted_atom_with_newline_escape.eye → quoted_atom_with_newline_escape.pl} +0 -0
  1437. /package/test/conformance/cases/syntax/{string_with_tab_escape.eye → string_with_tab_escape.pl} +0 -0
  1438. /package/test/conformance/cases/terms/{herbrand_witness_different_inputs_distinct.eye → herbrand_witness_different_inputs_distinct.pl} +0 -0
  1439. /package/test/conformance/cases/terms/{herbrand_witness_same_inputs_same_term.eye → herbrand_witness_same_inputs_same_term.pl} +0 -0
  1440. /package/test/conformance/cases/unification/{compound_arity_mismatch_fails.eye → compound_arity_mismatch_fails.pl} +0 -0
  1441. /package/test/conformance/cases/unification/{extra_eq_scalar_number_atom.eye → extra_eq_scalar_number_atom.pl} +0 -0
  1442. /package/test/conformance/cases/unification/{extra_eq_scalar_string_number.eye → extra_eq_scalar_string_number.pl} +0 -0
  1443. /package/test/conformance/cases/unification/{extra_neq_compound_arity_mismatch.eye → extra_neq_compound_arity_mismatch.pl} +0 -0
  1444. /package/test/conformance/cases/unification/{extra_neq_scalar_same_lexical_fails.eye → extra_neq_scalar_same_lexical_fails.pl} +0 -0
  1445. /package/test/conformance/cases/unification/{scalar_cross_type_same_lexical_value.eye → scalar_cross_type_same_lexical_value.pl} +0 -0
  1446. /package/test/conformance/errors/atoms/{extra_angle_iri_backslash_rejected.eye → extra_angle_iri_backslash_rejected.pl} +0 -0
  1447. /package/test/conformance/errors/atoms/{extra_angle_iri_pipe_rejected.eye → extra_angle_iri_pipe_rejected.pl} +0 -0
  1448. /package/test/conformance/errors/atoms/{extra_angle_iri_quote_rejected.eye → extra_angle_iri_quote_rejected.pl} +0 -0
  1449. /package/test/conformance/errors/atoms/{hash_comment_not_atom_at_line_start.eye → hash_comment_not_atom_at_line_start.pl} +0 -0
  1450. /package/test/conformance/errors/atoms/{relative_angle_name_rejected.eye → relative_angle_name_rejected.pl} +0 -0
  1451. /package/test/conformance/errors/atoms/{space_in_angle_iri_rejected.eye → space_in_angle_iri_rejected.pl} +0 -0
  1452. /package/test/conformance/errors/atoms/{unclosed_angle_iri_rejected.eye → unclosed_angle_iri_rejected.pl} +0 -0
  1453. /package/test/conformance/errors/atoms/{zero_arity_compound_rejected.eye → zero_arity_compound_rejected.pl} +0 -0
  1454. /package/test/conformance/errors/lists/{extra_missing_tail_after_bar.eye → extra_missing_tail_after_bar.pl} +0 -0
  1455. /package/test/conformance/errors/lists/{extra_unclosed_list_tail.eye → extra_unclosed_list_tail.pl} +0 -0
  1456. /package/test/conformance/errors/lists/{missing_list_tail.eye → missing_list_tail.pl} +0 -0
  1457. /package/test/conformance/errors/rules/{extra_empty_head_with_body.eye → extra_empty_head_with_body.pl} +0 -0
  1458. /package/test/conformance/errors/rules/{extra_rule_without_body.eye → extra_rule_without_body.pl} +0 -0
  1459. /package/test/conformance/errors/rules/{rule_head_cannot_be_empty_parentheses.eye → rule_head_cannot_be_empty_parentheses.pl} +0 -0
  1460. /package/test/conformance/errors/syntax/{angle_iri_with_space_rejected.eye → angle_iri_with_space_rejected.pl} +0 -0
  1461. /package/test/conformance/errors/syntax/{bad_question_digit_variable.eye → bad_question_digit_variable.pl} +0 -0
  1462. /package/test/conformance/errors/syntax/{colon_name_rejected.eye → colon_name_rejected.pl} +0 -0
  1463. /package/test/conformance/errors/syntax/{empty_body_after_rule_marker.eye → empty_body_after_rule_marker.pl} +0 -0
  1464. /package/test/conformance/errors/syntax/{empty_compound_nested.eye → empty_compound_nested.pl} +0 -0
  1465. /package/test/conformance/errors/syntax/{extra_bad_backtick_character.eye → extra_bad_backtick_character.pl} +0 -0
  1466. /package/test/conformance/errors/syntax/{extra_bad_iri_empty_body.eye → extra_bad_iri_empty_body.pl} +0 -0
  1467. /package/test/conformance/errors/syntax/{extra_bad_list_double_comma.eye → extra_bad_list_double_comma.pl} +0 -0
  1468. /package/test/conformance/errors/syntax/{extra_bad_list_double_tail.eye → extra_bad_list_double_tail.pl} +0 -0
  1469. /package/test/conformance/errors/syntax/{extra_bad_number_two_decimal_points.eye → extra_bad_number_two_decimal_points.pl} +0 -0
  1470. /package/test/conformance/errors/syntax/{extra_double_period_rejected.eye → extra_double_period_rejected.pl} +0 -0
  1471. /package/test/conformance/errors/syntax/{extra_extra_closing_paren.eye → extra_extra_closing_paren.pl} +0 -0
  1472. /package/test/conformance/errors/syntax/{extra_missing_closing_rule_body.eye → extra_missing_closing_rule_body.pl} +0 -0
  1473. /package/test/conformance/errors/syntax/{extra_missing_head_rejected.eye → extra_missing_head_rejected.pl} +0 -0
  1474. /package/test/conformance/errors/syntax/{missing_final_dot_rejected.eye → missing_final_dot_rejected.pl} +0 -0
  1475. /package/test/conformance/errors/syntax/{missing_period.eye → missing_period.pl} +0 -0
  1476. /package/test/conformance/errors/syntax/{relative_angle_iri_rejected.eye → relative_angle_iri_rejected.pl} +0 -0
  1477. /package/test/conformance/errors/syntax/{trailing_comma_in_body.eye → trailing_comma_in_body.pl} +0 -0
  1478. /package/test/conformance/errors/syntax/{unclosed_compound.eye → unclosed_compound.pl} +0 -0
  1479. /package/test/conformance/errors/syntax/{unclosed_list.eye → unclosed_list.pl} +0 -0
  1480. /package/test/conformance/errors/syntax/{unclosed_list_rejected.eye → unclosed_list_rejected.pl} +0 -0
  1481. /package/test/conformance/errors/syntax/{unclosed_quoted_atom.eye → unclosed_quoted_atom.pl} +0 -0
  1482. /package/test/conformance/errors/syntax/{unclosed_quoted_atom_rejected.eye → unclosed_quoted_atom_rejected.pl} +0 -0
  1483. /package/test/conformance/errors/syntax/{unclosed_string.eye → unclosed_string.pl} +0 -0
  1484. /package/test/conformance/errors/syntax/{unquoted_colon_predicate.eye → unquoted_colon_predicate.pl} +0 -0
  1485. /package/test/conformance/errors/syntax/{unquoted_dotted_predicate.eye → unquoted_dotted_predicate.pl} +0 -0
  1486. /package/test/conformance/errors/syntax/{uppercase_predicate_rejected.eye → uppercase_predicate_rejected.pl} +0 -0
  1487. /package/test/conformance/errors/terms/{extra_empty_nested_compound.eye → extra_empty_nested_compound.pl} +0 -0
  1488. /package/test/conformance/errors/terms/{extra_empty_top_level_compound.eye → extra_empty_top_level_compound.pl} +0 -0
  1489. /package/test/conformance/errors/terms/{zero_arity_compound_nested_rejected.eye → zero_arity_compound_nested_rejected.pl} +0 -0
  1490. /package/test/conformance/errors/variables/{question_digit_rejected.eye → question_digit_rejected.pl} +0 -0
  1491. /package/test/conformance/expected/aggregation/{044_findall_user_goal.eye → 044_findall_user_goal.pl} +0 -0
  1492. /package/test/conformance/expected/aggregation/{057_countall_empty_and_nonempty.eye → 057_countall_empty_and_nonempty.pl} +0 -0
  1493. /package/test/conformance/expected/aggregation/{058_sumall_numeric_template.eye → 058_sumall_numeric_template.pl} +0 -0
  1494. /package/test/conformance/expected/aggregation/{059_aggregate_min_template.eye → 059_aggregate_min_template.pl} +0 -0
  1495. /package/test/conformance/expected/aggregation/{060_aggregate_max_compound_key.eye → 060_aggregate_max_compound_key.pl} +0 -0
  1496. /package/test/conformance/expected/aggregation/{075_aggregation_edges.eye → 075_aggregation_edges.pl} +0 -0
  1497. /package/test/conformance/expected/aggregation/{098_aggregation_nested_templates.eye → 098_aggregation_nested_templates.pl} +0 -0
  1498. /package/test/conformance/expected/aggregation/{aggregate_max_no_answers_fails.eye → aggregate_max_no_answers_fails.pl} +0 -0
  1499. /package/test/conformance/expected/aggregation/{aggregate_min_structured_key.eye → aggregate_min_structured_key.pl} +0 -0
  1500. /package/test/conformance/expected/aggregation/{countall_zero.eye → countall_zero.pl} +0 -0
  1501. /package/test/conformance/expected/aggregation/{extra_aggregate_min_tie_first.eye → extra_aggregate_min_tie_first.pl} +0 -0
  1502. /package/test/conformance/expected/aggregation/{extra_countall_with_filter.eye → extra_countall_with_filter.pl} +0 -0
  1503. /package/test/conformance/expected/aggregation/{extra_findall_repeated_template.eye → extra_findall_repeated_template.pl} +0 -0
  1504. /package/test/conformance/expected/aggregation/{extra_sumall_float_template.eye → extra_sumall_float_template.pl} +0 -0
  1505. /package/test/conformance/expected/aggregation/{findall_empty_bag.eye → findall_empty_bag.pl} +0 -0
  1506. /package/test/conformance/expected/aggregation/{sumall_empty_zero.eye → sumall_empty_zero.pl} +0 -0
  1507. /package/test/conformance/expected/arithmetic/{024_numeric_literal_readback.eye → 024_numeric_literal_readback.pl} +0 -0
  1508. /package/test/conformance/expected/arithmetic/{029_arithmetic_and_comparison.eye → 029_arithmetic_and_comparison.pl} +0 -0
  1509. /package/test/conformance/expected/arithmetic/{039_numeric_functions.eye → 039_numeric_functions.pl} +0 -0
  1510. /package/test/conformance/expected/arithmetic/{040_between_enumeration.eye → 040_between_enumeration.pl} +0 -0
  1511. /package/test/conformance/expected/arithmetic/{041_smallest_divisor.eye → 041_smallest_divisor.pl} +0 -0
  1512. /package/test/conformance/expected/arithmetic/{054_numeric_and_lexical_comparison.eye → 054_numeric_and_lexical_comparison.pl} +0 -0
  1513. /package/test/conformance/expected/arithmetic/{061_date_difference.eye → 061_date_difference.pl} +0 -0
  1514. /package/test/conformance/expected/arithmetic/{062_reusable_numeric_builtins.eye → 062_reusable_numeric_builtins.pl} +0 -0
  1515. /package/test/conformance/expected/arithmetic/{066_numeric_edges.eye → 066_numeric_edges.pl} +0 -0
  1516. /package/test/conformance/expected/arithmetic/{079_big_integer_arithmetic.eye → 079_big_integer_arithmetic.pl} +0 -0
  1517. /package/test/conformance/expected/arithmetic/{080_rounding_modes.eye → 080_rounding_modes.pl} +0 -0
  1518. /package/test/conformance/expected/arithmetic/{081_zero_safe_numeric_functions.eye → 081_zero_safe_numeric_functions.pl} +0 -0
  1519. /package/test/conformance/expected/arithmetic/{082_comparison_semantics.eye → 082_comparison_semantics.pl} +0 -0
  1520. /package/test/conformance/expected/arithmetic/{083_between_modes_and_empty_ranges.eye → 083_between_modes_and_empty_ranges.pl} +0 -0
  1521. /package/test/conformance/expected/arithmetic/{between_bound_value.eye → between_bound_value.pl} +0 -0
  1522. /package/test/conformance/expected/arithmetic/{between_singleton.eye → between_singleton.pl} +0 -0
  1523. /package/test/conformance/expected/arithmetic/{duration_comparison.eye → duration_comparison.pl} +0 -0
  1524. /package/test/conformance/expected/arithmetic/{extra_acos_one.eye → extra_acos_one.pl} +0 -0
  1525. /package/test/conformance/expected/arithmetic/{extra_asin_zero.eye → extra_asin_zero.pl} +0 -0
  1526. /package/test/conformance/expected/arithmetic/{extra_atan2_axis.eye → extra_atan2_axis.pl} +0 -0
  1527. /package/test/conformance/expected/arithmetic/{extra_difference_leap_day.eye → extra_difference_leap_day.pl} +0 -0
  1528. /package/test/conformance/expected/arithmetic/{extra_difference_same_day.eye → extra_difference_same_day.pl} +0 -0
  1529. /package/test/conformance/expected/arithmetic/{extra_div_float_exact.eye → extra_div_float_exact.pl} +0 -0
  1530. /package/test/conformance/expected/arithmetic/{extra_div_integer_trunc.eye → extra_div_integer_trunc.pl} +0 -0
  1531. /package/test/conformance/expected/arithmetic/{extra_division_by_zero_fails.eye → extra_division_by_zero_fails.pl} +0 -0
  1532. /package/test/conformance/expected/arithmetic/{extra_exp_zero.eye → extra_exp_zero.pl} +0 -0
  1533. /package/test/conformance/expected/arithmetic/{extra_ge_equal_duration.eye → extra_ge_equal_duration.pl} +0 -0
  1534. /package/test/conformance/expected/arithmetic/{extra_le_equal_string.eye → extra_le_equal_string.pl} +0 -0
  1535. /package/test/conformance/expected/arithmetic/{extra_log_one.eye → extra_log_one.pl} +0 -0
  1536. /package/test/conformance/expected/arithmetic/{extra_mod_negative_right.eye → extra_mod_negative_right.pl} +0 -0
  1537. /package/test/conformance/expected/arithmetic/{extra_pow_large_integer.eye → extra_pow_large_integer.pl} +0 -0
  1538. /package/test/conformance/expected/arithmetic/{float_add_and_div.eye → float_add_and_div.pl} +0 -0
  1539. /package/test/conformance/expected/arithmetic/{min_max_mixed.eye → min_max_mixed.pl} +0 -0
  1540. /package/test/conformance/expected/arithmetic/{mod_negative_left.eye → mod_negative_left.pl} +0 -0
  1541. /package/test/conformance/expected/arithmetic/{neg_abs_integer.eye → neg_abs_integer.pl} +0 -0
  1542. /package/test/conformance/expected/arithmetic/{pow_negative_exponent_fails.eye → pow_negative_exponent_fails.pl} +0 -0
  1543. /package/test/conformance/expected/arithmetic/{pow_zero_exponent.eye → pow_zero_exponent.pl} +0 -0
  1544. /package/test/conformance/expected/arithmetic/{rounding_negative_float.eye → rounding_negative_float.pl} +0 -0
  1545. /package/test/conformance/expected/arithmetic/{smallest_divisor_prime.eye → smallest_divisor_prime.pl} +0 -0
  1546. /package/test/conformance/expected/arithmetic/{sqrt_negative_fails.eye → sqrt_negative_fails.pl} +0 -0
  1547. /package/test/conformance/expected/atoms/{008_graphic_atoms.eye → 008_graphic_atoms.pl} +0 -0
  1548. /package/test/conformance/expected/atoms/{016_arity_zero_atom.eye → 016_arity_zero_atom.pl} +0 -0
  1549. /package/test/conformance/expected/atoms/{018_quoted_atom_readback.eye → 018_quoted_atom_readback.pl} +0 -0
  1550. /package/test/conformance/expected/atoms/{angle_iri_percent_encoded.eye → angle_iri_percent_encoded.pl} +0 -0
  1551. /package/test/conformance/expected/atoms/{extra_graphic_backslash_atom.eye → extra_graphic_backslash_atom.pl} +0 -0
  1552. /package/test/conformance/expected/atoms/{extra_iri_mailto_plus.eye → extra_iri_mailto_plus.pl} +0 -0
  1553. /package/test/conformance/expected/atoms/{extra_iri_uuid_scheme.eye → extra_iri_uuid_scheme.pl} +0 -0
  1554. /package/test/conformance/expected/atoms/{extra_quoted_atom_with_quote_readback.eye → extra_quoted_atom_with_quote_readback.pl} +0 -0
  1555. /package/test/conformance/expected/atoms/{graphic_angle_atom_stays_graphic.eye → graphic_angle_atom_stays_graphic.pl} +0 -0
  1556. /package/test/conformance/expected/atoms/{graphic_atom_predicate.eye → graphic_atom_predicate.pl} +0 -0
  1557. /package/test/conformance/expected/atoms/{graphic_less_than_atom.eye → graphic_less_than_atom.pl} +0 -0
  1558. /package/test/conformance/expected/atoms/{iri_as_predicate_name_quoted.eye → iri_as_predicate_name_quoted.pl} +0 -0
  1559. /package/test/conformance/expected/atoms/{quoted_relative_iri_not_angle.eye → iri_quoted_and_angle_unify.pl} +0 -0
  1560. /package/test/conformance/expected/{builtins/extra_difference_end_before_start_fails.eye → atoms/quoted_relative_iri_not_angle.pl} +0 -0
  1561. /package/test/conformance/expected/atoms/{zero_arity_atom_roundtrip.eye → zero_arity_atom_roundtrip.pl} +0 -0
  1562. /package/test/conformance/expected/builtins/{037_matching_and_comparison.eye → 037_matching_and_comparison.pl} +0 -0
  1563. /package/test/conformance/expected/builtins/{076_composed_reusable_builtins.eye → 076_composed_reusable_builtins.pl} +0 -0
  1564. /package/test/conformance/expected/builtins/{100_reusable_builtin_workflow.eye → 100_reusable_builtin_workflow.pl} +0 -0
  1565. /package/test/conformance/expected/builtins/{extra_difference_invalid_date_fails.eye → eq_unifies_iri_atoms.pl} +0 -0
  1566. /package/test/conformance/expected/builtins/{extra_neq_same_iri_fails.eye → extra_difference_end_before_start_fails.pl} +0 -0
  1567. /package/test/conformance/expected/{context/extra_holds_ignores_string_parts.eye → builtins/extra_difference_invalid_date_fails.pl} +0 -0
  1568. /package/test/conformance/expected/builtins/{extra_eq_binds_both_sides.eye → extra_eq_binds_both_sides.pl} +0 -0
  1569. /package/test/conformance/expected/builtins/{extra_neq_different_iri_atoms.eye → extra_neq_different_iri_atoms.pl} +0 -0
  1570. /package/test/conformance/expected/context/{032_holds_parts.eye → 032_holds_parts.pl} +0 -0
  1571. /package/test/conformance/expected/context/{051_nested_holds_parts.eye → 051_nested_holds_parts.pl} +0 -0
  1572. /package/test/conformance/expected/context/{052_holds_member.eye → 052_holds_member.pl} +0 -0
  1573. /package/test/conformance/expected/context/{094_context_holds_enumeration.eye → 094_context_holds_enumeration.pl} +0 -0
  1574. /package/test/conformance/expected/context/{extra_holds_atom_parts.eye → extra_holds_atom_parts.pl} +0 -0
  1575. /package/test/conformance/expected/{control/extra_forall_counterexample_fails.eye → context/extra_holds_ignores_string_parts.pl} +0 -0
  1576. /package/test/conformance/expected/context/{extra_holds_list_parts.eye → extra_holds_list_parts.pl} +0 -0
  1577. /package/test/conformance/expected/context/{extra_holds_term_nested_order.eye → extra_holds_term_nested_order.pl} +0 -0
  1578. /package/test/conformance/expected/{atoms/iri_quoted_and_angle_unify.eye → context/holds_compound_formula.pl} +0 -0
  1579. /package/test/conformance/expected/{builtins/eq_unifies_iri_atoms.eye → context/holds_fails_when_missing.pl} +0 -0
  1580. /package/test/conformance/expected/context/{holds_parts_from_formula.eye → holds_parts_from_formula.pl} +0 -0
  1581. /package/test/conformance/expected/control/{014_failure_filters_answers.eye → 014_failure_filters_answers.pl} +0 -0
  1582. /package/test/conformance/expected/control/{043_once_user_predicate.eye → 043_once_user_predicate.pl} +0 -0
  1583. /package/test/conformance/expected/control/{074_forall_edges.eye → 074_forall_edges.pl} +0 -0
  1584. /package/test/conformance/expected/control/{097_control_negation_once_forall.eye → 097_control_negation_once_forall.pl} +0 -0
  1585. /package/test/conformance/expected/{context/holds_compound_formula.eye → control/double_negation_ground_goal.pl} +0 -0
  1586. /package/test/conformance/expected/control/{extra_forall_bound_check.eye → extra_forall_bound_check.pl} +0 -0
  1587. /package/test/conformance/expected/control/{extra_not_unbound_existing_goal_fails.eye → extra_forall_counterexample_fails.pl} +0 -0
  1588. /package/test/conformance/expected/control/{extra_once_empty_fails.eye → extra_not_unbound_existing_goal_fails.pl} +0 -0
  1589. /package/test/conformance/expected/control/{extra_not_unbound_unknown_goal_succeeds.eye → extra_not_unbound_unknown_goal_succeeds.pl} +0 -0
  1590. /package/test/conformance/expected/{lists/extra_length_improper_fails.eye → control/extra_once_empty_fails.pl} +0 -0
  1591. /package/test/conformance/expected/control/{extra_once_preserves_binding.eye → extra_once_preserves_binding.pl} +0 -0
  1592. /package/test/conformance/expected/{context/holds_fails_when_missing.eye → control/forall_detects_counterexample.pl} +0 -0
  1593. /package/test/conformance/expected/control/{double_negation_ground_goal.eye → forall_empty_generator_true.pl} +0 -0
  1594. /package/test/conformance/expected/control/{negation_with_bound_generator.eye → negation_with_bound_generator.pl} +0 -0
  1595. /package/test/conformance/expected/control/{once_keeps_first_answer.eye → once_keeps_first_answer.pl} +0 -0
  1596. /package/test/conformance/expected/declarations/{104_mode_determinism_declarations.eye → 104_mode_determinism_declarations.pl} +0 -0
  1597. /package/test/conformance/expected/{control/forall_detects_counterexample.eye → declarations/det_semidet_do_not_emit_without_materialize.pl} +0 -0
  1598. /package/test/conformance/expected/declarations/{memoize_is_ordinary_fact.eye → memoize_is_ordinary_fact.pl} +0 -0
  1599. /package/test/conformance/expected/declarations/{mode_determinism_are_facts.eye → mode_determinism_are_facts.pl} +0 -0
  1600. /package/test/conformance/expected/{control/forall_empty_generator_true.eye → declarations/mode_ignored_when_arity_mismatch.pl} +0 -0
  1601. /package/test/conformance/expected/declarations/{table_is_also_fact.eye → table_is_also_fact.pl} +0 -0
  1602. /package/test/conformance/expected/lists/{005_list_deconstruction.eye → 005_list_deconstruction.pl} +0 -0
  1603. /package/test/conformance/expected/lists/{015_improper_list_unification.eye → 015_improper_list_unification.pl} +0 -0
  1604. /package/test/conformance/expected/lists/{020_nested_list_terms.eye → 020_nested_list_terms.pl} +0 -0
  1605. /package/test/conformance/expected/lists/{031_lists_aggregation_ordering.eye → 031_lists_aggregation_ordering.pl} +0 -0
  1606. /package/test/conformance/expected/lists/{035_list_relations.eye → 035_list_relations.pl} +0 -0
  1607. /package/test/conformance/expected/lists/{036_append_splits.eye → 036_append_splits.pl} +0 -0
  1608. /package/test/conformance/expected/lists/{045_sort_deduplicates_atoms.eye → 045_sort_deduplicates_atoms.pl} +0 -0
  1609. /package/test/conformance/expected/lists/{046_append_bound_prefix_suffix.eye → 046_append_bound_prefix_suffix.pl} +0 -0
  1610. /package/test/conformance/expected/lists/{047_nth0_index_generation.eye → 047_nth0_index_generation.pl} +0 -0
  1611. /package/test/conformance/expected/lists/{048_set_nth0_edges.eye → 048_set_nth0_edges.pl} +0 -0
  1612. /package/test/conformance/expected/lists/{049_select_duplicate_occurrences.eye → 049_select_duplicate_occurrences.pl} +0 -0
  1613. /package/test/conformance/expected/lists/{063_reusable_list_builtins.eye → 063_reusable_list_builtins.pl} +0 -0
  1614. /package/test/conformance/expected/lists/{067_list_edges.eye → 067_list_edges.pl} +0 -0
  1615. /package/test/conformance/expected/lists/{068_list_generation_order.eye → 068_list_generation_order.pl} +0 -0
  1616. /package/test/conformance/expected/lists/{069_list_summaries_and_sets.eye → 069_list_summaries_and_sets.pl} +0 -0
  1617. /package/test/conformance/expected/lists/{084_append_and_select_composition.eye → 084_append_and_select_composition.pl} +0 -0
  1618. /package/test/conformance/expected/lists/{085_nth_and_update_edges.eye → 085_nth_and_update_edges.pl} +0 -0
  1619. /package/test/conformance/expected/lists/{086_slicing_pipeline.eye → 086_slicing_pipeline.pl} +0 -0
  1620. /package/test/conformance/expected/lists/{087_sort_reverse_length.eye → 087_sort_reverse_length.pl} +0 -0
  1621. /package/test/conformance/expected/lists/{088_list_summaries_failures.eye → 088_list_summaries_failures.pl} +0 -0
  1622. /package/test/conformance/expected/lists/{empty_list_term.eye → empty_list_term.pl} +0 -0
  1623. /package/test/conformance/expected/lists/{extra_append_all_splits_three.eye → extra_append_all_splits_three.pl} +0 -0
  1624. /package/test/conformance/expected/lists/{extra_append_to_improper_tail.eye → extra_append_to_improper_tail.pl} +0 -0
  1625. /package/test/conformance/expected/lists/{extra_drop_all.eye → extra_drop_all.pl} +0 -0
  1626. /package/test/conformance/expected/lists/{extra_head_and_rest_improper.eye → extra_head_and_rest_improper.pl} +0 -0
  1627. /package/test/conformance/expected/lists/{extra_last_singleton.eye → extra_last_singleton.pl} +0 -0
  1628. /package/test/conformance/expected/lists/{extra_not_member_compound_fails.eye → extra_length_improper_fails.pl} +0 -0
  1629. /package/test/conformance/expected/lists/{extra_list_to_set_stable_order.eye → extra_list_to_set_stable_order.pl} +0 -0
  1630. /package/test/conformance/expected/lists/{extra_member_repeated_nested.eye → extra_member_repeated_nested.pl} +0 -0
  1631. /package/test/conformance/expected/lists/{slice_middle.eye → extra_not_member_compound_fails.pl} +0 -0
  1632. /package/test/conformance/expected/lists/{extra_not_member_compound_success.eye → extra_not_member_compound_success.pl} +0 -0
  1633. /package/test/conformance/expected/lists/{extra_nth0_duplicate_indexes.eye → extra_nth0_duplicate_indexes.pl} +0 -0
  1634. /package/test/conformance/expected/lists/{extra_select_structured_duplicate.eye → extra_select_structured_duplicate.pl} +0 -0
  1635. /package/test/conformance/expected/lists/{extra_slice_end.eye → extra_slice_end.pl} +0 -0
  1636. /package/test/conformance/expected/lists/{extra_take_all.eye → extra_take_all.pl} +0 -0
  1637. /package/test/conformance/expected/lists/{head_rest_last.eye → head_rest_last.pl} +0 -0
  1638. /package/test/conformance/expected/lists/{improper_list_readback.eye → improper_list_readback.pl} +0 -0
  1639. /package/test/conformance/expected/lists/{length_empty_and_nested.eye → length_empty_and_nested.pl} +0 -0
  1640. /package/test/conformance/expected/lists/{list_to_set_structural_duplicates.eye → list_to_set_structural_duplicates.pl} +0 -0
  1641. /package/test/conformance/expected/{declarations/det_semidet_do_not_emit_without_materialize.eye → lists/min_list_empty_fails.pl} +0 -0
  1642. /package/test/conformance/expected/{declarations/mode_ignored_when_arity_mismatch.eye → lists/nth0_known_value.pl} +0 -0
  1643. /package/test/conformance/expected/lists/{min_list_empty_fails.eye → nth0_out_of_range_fails.pl} +0 -0
  1644. /package/test/conformance/expected/lists/{reverse_empty.eye → reverse_empty.pl} +0 -0
  1645. /package/test/conformance/expected/lists/{select_all_occurrences.eye → select_all_occurrences.pl} +0 -0
  1646. /package/test/conformance/expected/lists/{set_nth0_middle.eye → set_nth0_middle.pl} +0 -0
  1647. /package/test/conformance/expected/{materialize/arity_specific_outputs.eye → lists/slice_middle.pl} +0 -0
  1648. /package/test/conformance/expected/lists/{nth0_known_value.eye → slice_out_of_range_fails.pl} +0 -0
  1649. /package/test/conformance/expected/lists/{sort_structured_terms.eye → sort_structured_terms.pl} +0 -0
  1650. /package/test/conformance/expected/lists/{sum_list_empty_zero.eye → sum_list_empty_zero.pl} +0 -0
  1651. /package/test/conformance/expected/lists/{sum_min_max_list.eye → sum_min_max_list.pl} +0 -0
  1652. /package/test/conformance/expected/lists/{take_zero_and_drop_all.eye → take_zero_and_drop_all.pl} +0 -0
  1653. /package/test/conformance/expected/materialize/{027_default_derived_output.eye → 027_default_derived_output.pl} +0 -0
  1654. /package/test/conformance/expected/materialize/{028_materialize_focus.eye → 028_materialize_focus.pl} +0 -0
  1655. /package/test/conformance/expected/materialize/{053_materialize_excludes_source_fact.eye → 053_materialize_excludes_source_fact.pl} +0 -0
  1656. /package/test/conformance/expected/materialize/{099_materialize_multiple_arities.eye → 099_materialize_multiple_arities.pl} +0 -0
  1657. /package/test/conformance/expected/materialize/{extra_materialize_selects_arity.eye → arity_specific_outputs.pl} +0 -0
  1658. /package/test/conformance/expected/materialize/{extra_materialize_derived_only_with_same_source.eye → extra_materialize_derived_only_with_same_source.pl} +0 -0
  1659. /package/test/conformance/expected/{negation/extra_not_with_bound_fails.eye → materialize/extra_materialize_selects_arity.pl} +0 -0
  1660. /package/test/conformance/expected/materialize/{source_facts_suppressed.eye → source_facts_suppressed.pl} +0 -0
  1661. /package/test/conformance/expected/negation/{033_negation_once_generators.eye → 033_negation_once_generators.pl} +0 -0
  1662. /package/test/conformance/expected/negation/{042_negation_filter.eye → 042_negation_filter.pl} +0 -0
  1663. /package/test/conformance/expected/negation/{050_not_member_filter.eye → 050_not_member_filter.pl} +0 -0
  1664. /package/test/conformance/expected/negation/{not_known_goal_fails.eye → extra_not_with_bound_fails.pl} +0 -0
  1665. /package/test/conformance/expected/negation/{extra_not_with_bound_success.eye → extra_not_with_bound_success.pl} +0 -0
  1666. /package/test/conformance/expected/{strings/extra_matches_invalid_pattern_fails.eye → negation/not_known_goal_fails.pl} +0 -0
  1667. /package/test/conformance/expected/{lists/nth0_out_of_range_fails.eye → negation/not_unknown_goal_succeeds.pl} +0 -0
  1668. /package/test/conformance/expected/negation/{stratified_negation_answers.eye → stratified_negation_answers.pl} +0 -0
  1669. /package/test/conformance/expected/rules/{001_fact_output.eye → 001_fact_output.pl} +0 -0
  1670. /package/test/conformance/expected/rules/{002_rule_recursion.eye → 002_rule_recursion.pl} +0 -0
  1671. /package/test/conformance/expected/rules/{011_predicate_arity.eye → 011_predicate_arity.pl} +0 -0
  1672. /package/test/conformance/expected/rules/{013_multiple_clauses_order.eye → 013_multiple_clauses_order.pl} +0 -0
  1673. /package/test/conformance/expected/rules/{017_three_step_recursion.eye → 017_three_step_recursion.pl} +0 -0
  1674. /package/test/conformance/expected/rules/{022_rule_head_structure.eye → 022_rule_head_structure.pl} +0 -0
  1675. /package/test/conformance/expected/rules/{077_recursive_path_with_lists.eye → 077_recursive_path_with_lists.pl} +0 -0
  1676. /package/test/conformance/expected/rules/{078_mutual_recursion_with_arithmetic.eye → 078_mutual_recursion_with_arithmetic.pl} +0 -0
  1677. /package/test/conformance/expected/rules/{extra_left_to_right_multiple_bindings.eye → extra_left_to_right_multiple_bindings.pl} +0 -0
  1678. /package/test/conformance/expected/rules/{extra_structured_head_rule.eye → extra_structured_head_rule.pl} +0 -0
  1679. /package/test/conformance/expected/rules/{left_to_right_body_binding.eye → left_to_right_body_binding.pl} +0 -0
  1680. /package/test/conformance/expected/rules/{transitive_rule_three_edges.eye → transitive_rule_three_edges.pl} +0 -0
  1681. /package/test/conformance/expected/strings/{023_quoted_escapes_readback.eye → 023_quoted_escapes_readback.pl} +0 -0
  1682. /package/test/conformance/expected/strings/{030_strings_and_atoms.eye → 030_strings_and_atoms.pl} +0 -0
  1683. /package/test/conformance/expected/strings/{055_string_matching_filters.eye → 055_string_matching_filters.pl} +0 -0
  1684. /package/test/conformance/expected/strings/{056_string_and_atom_concat.eye → 056_string_and_atom_concat.pl} +0 -0
  1685. /package/test/conformance/expected/strings/{064_reusable_string_builtins.eye → 064_reusable_string_builtins.pl} +0 -0
  1686. /package/test/conformance/expected/strings/{070_matches_named_captures.eye → 070_matches_named_captures.pl} +0 -0
  1687. /package/test/conformance/expected/strings/{071_string_edges.eye → 071_string_edges.pl} +0 -0
  1688. /package/test/conformance/expected/strings/{072_string_conversions.eye → 072_string_conversions.pl} +0 -0
  1689. /package/test/conformance/expected/strings/{089_string_split_join_pipeline.eye → 089_string_split_join_pipeline.pl} +0 -0
  1690. /package/test/conformance/expected/strings/{090_string_substring_replace_edges.eye → 090_string_substring_replace_edges.pl} +0 -0
  1691. /package/test/conformance/expected/strings/{091_string_case_and_trim.eye → 091_string_case_and_trim.pl} +0 -0
  1692. /package/test/conformance/expected/strings/{092_scalar_string_conversions.eye → 092_scalar_string_conversions.pl} +0 -0
  1693. /package/test/conformance/expected/strings/{093_regex_named_captures_context.eye → 093_regex_named_captures_context.pl} +0 -0
  1694. /package/test/conformance/expected/strings/{atom_string_from_string.eye → atom_string_from_string.pl} +0 -0
  1695. /package/test/conformance/expected/strings/{casefold_atoms.eye → casefold_atoms.pl} +0 -0
  1696. /package/test/conformance/expected/{lists/slice_out_of_range_fails.eye → strings/contains_empty_needle.pl} +0 -0
  1697. /package/test/conformance/expected/strings/{extra_atom_string_number_input.eye → extra_atom_string_number_input.pl} +0 -0
  1698. /package/test/conformance/expected/strings/{extra_join_empty_list.eye → extra_join_empty_list.pl} +0 -0
  1699. /package/test/conformance/expected/{syntax/comments_inside_program.eye → strings/extra_matches_invalid_pattern_fails.pl} +0 -0
  1700. /package/test/conformance/expected/strings/{extra_named_regex_optional_missing.eye → extra_named_regex_optional_missing.pl} +0 -0
  1701. /package/test/conformance/expected/strings/{extra_number_string_atom_input.eye → extra_number_string_atom_input.pl} +0 -0
  1702. /package/test/conformance/expected/strings/{extra_replace_multiple.eye → extra_replace_multiple.pl} +0 -0
  1703. /package/test/conformance/expected/strings/{extra_split_empty_separator.eye → extra_split_empty_separator.pl} +0 -0
  1704. /package/test/conformance/expected/strings/{extra_substring_last_char.eye → extra_substring_last_char.pl} +0 -0
  1705. /package/test/conformance/expected/strings/{extra_uppercase_mixed_string.eye → extra_uppercase_mixed_string.pl} +0 -0
  1706. /package/test/conformance/expected/strings/{join_mixed_scalars.eye → join_mixed_scalars.pl} +0 -0
  1707. /package/test/conformance/expected/{negation/not_unknown_goal_succeeds.eye → strings/matches_simple_alternation.pl} +0 -0
  1708. /package/test/conformance/expected/strings/{named_regex_two_groups.eye → named_regex_two_groups.pl} +0 -0
  1709. /package/test/conformance/expected/strings/{contains_empty_needle.eye → not_matches_simple_pattern.pl} +0 -0
  1710. /package/test/conformance/expected/strings/{number_string_from_string.eye → number_string_from_string.pl} +0 -0
  1711. /package/test/conformance/expected/strings/{matches_simple_alternation.eye → number_string_rejects_non_numeric.pl} +0 -0
  1712. /package/test/conformance/expected/strings/{replace_empty_search_no_change.eye → replace_empty_search_no_change.pl} +0 -0
  1713. /package/test/conformance/expected/strings/{split_without_separator_match.eye → split_without_separator_match.pl} +0 -0
  1714. /package/test/conformance/expected/strings/{not_matches_simple_pattern.eye → substring_out_of_range_fails.pl} +0 -0
  1715. /package/test/conformance/expected/strings/{substring_zero_count.eye → substring_zero_count.pl} +0 -0
  1716. /package/test/conformance/expected/strings/{trim_tabs_and_spaces.eye → trim_tabs_and_spaces.pl} +0 -0
  1717. /package/test/conformance/expected/syntax/{004_conjunction_and_parentheses.eye → 004_conjunction_and_parentheses.pl} +0 -0
  1718. /package/test/conformance/expected/syntax/{006_comma_formula_data.eye → 006_comma_formula_data.pl} +0 -0
  1719. /package/test/conformance/expected/syntax/{009_comments_and_whitespace.eye → 009_comments_and_whitespace.pl} +0 -0
  1720. /package/test/conformance/expected/syntax/{019_parenthesized_three_conjuncts.eye → 019_parenthesized_three_conjuncts.pl} +0 -0
  1721. /package/test/conformance/expected/syntax/{025_body_parentheses_with_formula_data.eye → 025_body_parentheses_with_formula_data.pl} +0 -0
  1722. /package/test/conformance/expected/syntax/{extra_comments_after_terms.eye → comments_inside_program.pl} +0 -0
  1723. /package/test/conformance/expected/syntax/{quoted_atom_with_newline_escape.eye → extra_comments_after_terms.pl} +0 -0
  1724. /package/test/conformance/expected/syntax/{extra_nested_parenthesized_body.eye → extra_nested_parenthesized_body.pl} +0 -0
  1725. /package/test/conformance/expected/{strings/number_string_rejects_non_numeric.eye → syntax/parenthesized_query_style_body.pl} +0 -0
  1726. /package/test/conformance/expected/syntax/{string_with_tab_escape.eye → quoted_atom_with_newline_escape.pl} +0 -0
  1727. /package/test/conformance/expected/{terms/extra_arg_atom_fails.eye → syntax/string_with_tab_escape.pl} +0 -0
  1728. /package/test/conformance/expected/table/{038_table_declaration.eye → 038_table_declaration.pl} +0 -0
  1729. /package/test/conformance/expected/table/{102_table_declaration.eye → 102_table_declaration.pl} +0 -0
  1730. /package/test/conformance/expected/table/{extra_table_bound_cycle.eye → extra_table_bound_cycle.pl} +0 -0
  1731. /package/test/conformance/expected/table/{extra_table_open_call_fallback.eye → extra_table_open_call_fallback.pl} +0 -0
  1732. /package/test/conformance/expected/table/{table_does_not_change_answers.eye → table_does_not_change_answers.pl} +0 -0
  1733. /package/test/conformance/expected/table/{tabled_left_recursion_path.eye → tabled_left_recursion_path.pl} +0 -0
  1734. /package/test/conformance/expected/terms/{003_terms_and_readback.eye → 003_terms_and_readback.pl} +0 -0
  1735. /package/test/conformance/expected/terms/{065_reusable_term_control_builtins.eye → 065_reusable_term_control_builtins.pl} +0 -0
  1736. /package/test/conformance/expected/terms/{073_term_introspection_edges.eye → 073_term_introspection_edges.pl} +0 -0
  1737. /package/test/conformance/expected/terms/{095_term_introspection_roundtrip.eye → 095_term_introspection_roundtrip.pl} +0 -0
  1738. /package/test/conformance/expected/terms/{096_functor_scalar_edges.eye → 096_functor_scalar_edges.pl} +0 -0
  1739. /package/test/conformance/expected/terms/{arg_first_and_second.eye → arg_first_and_second.pl} +0 -0
  1740. /package/test/conformance/expected/{strings/substring_out_of_range_fails.eye → terms/arg_zero_fails.pl} +0 -0
  1741. /package/test/conformance/expected/terms/{compound_name_arguments_atom_zero_args.eye → compound_name_arguments_atom_zero_args.pl} +0 -0
  1742. /package/test/conformance/expected/{syntax/parenthesized_query_style_body.eye → terms/compound_name_arguments_bad_args_fail.pl} +0 -0
  1743. /package/test/conformance/expected/terms/{compound_name_arguments_builds_atom_from_empty_args.eye → compound_name_arguments_builds_atom_from_empty_args.pl} +0 -0
  1744. /package/test/conformance/expected/terms/{compound_name_arguments_builds_compound.eye → compound_name_arguments_builds_compound.pl} +0 -0
  1745. /package/test/conformance/expected/terms/{extra_arg_zero_fails.eye → extra_arg_atom_fails.pl} +0 -0
  1746. /package/test/conformance/expected/terms/{extra_arg_first_last.eye → extra_arg_first_last.pl} +0 -0
  1747. /package/test/conformance/expected/terms/{extra_compound_name_arguments_bad_args_fails.eye → extra_arg_zero_fails.pl} +0 -0
  1748. /package/test/conformance/expected/{unification/extra_eq_nested_repeated_fails.eye → terms/extra_compound_name_arguments_bad_args_fails.pl} +0 -0
  1749. /package/test/conformance/expected/terms/{extra_compound_name_arguments_construct_atom_zero.eye → extra_compound_name_arguments_construct_atom_zero.pl} +0 -0
  1750. /package/test/conformance/expected/terms/{extra_compound_name_arguments_decompose_list.eye → extra_compound_name_arguments_decompose_list.pl} +0 -0
  1751. /package/test/conformance/expected/terms/{extra_functor_list_cons.eye → extra_functor_list_cons.pl} +0 -0
  1752. /package/test/conformance/expected/terms/{extra_functor_number_scalar.eye → extra_functor_number_scalar.pl} +0 -0
  1753. /package/test/conformance/expected/terms/{extra_functor_string_scalar.eye → extra_functor_string_scalar.pl} +0 -0
  1754. /package/test/conformance/expected/terms/{functor_atom_arity_zero.eye → functor_atom_arity_zero.pl} +0 -0
  1755. /package/test/conformance/expected/terms/{functor_number_and_string.eye → functor_number_and_string.pl} +0 -0
  1756. /package/test/conformance/expected/terms/{herbrand_witness_different_inputs_distinct.eye → herbrand_witness_different_inputs_distinct.pl} +0 -0
  1757. /package/test/conformance/expected/terms/{herbrand_witness_one_input.eye → herbrand_witness_one_input.pl} +0 -0
  1758. /package/test/conformance/expected/terms/{herbrand_witness_same_inputs_same_term.eye → herbrand_witness_same_inputs_same_term.pl} +0 -0
  1759. /package/test/conformance/expected/terms/{herbrand_witness_two_inputs.eye → herbrand_witness_two_inputs.pl} +0 -0
  1760. /package/test/conformance/expected/unification/{012_nested_compound_unification.eye → 012_nested_compound_unification.pl} +0 -0
  1761. /package/test/conformance/expected/unification/{021_repeated_variable_head.eye → 021_repeated_variable_head.pl} +0 -0
  1762. /package/test/conformance/expected/unification/{034_equality_and_inequality.eye → 034_equality_and_inequality.pl} +0 -0
  1763. /package/test/conformance/expected/{terms/arg_zero_fails.eye → unification/compound_arity_mismatch_fails.pl} +0 -0
  1764. /package/test/conformance/expected/unification/{extra_neq_scalar_same_lexical_fails.eye → extra_eq_iri_and_quoted_atom.pl} +0 -0
  1765. /package/test/conformance/expected/unification/{extra_eq_list_tail_binding.eye → extra_eq_list_tail_binding.pl} +0 -0
  1766. /package/test/conformance/expected/unification/{extra_eq_nested_repeated_success.eye → extra_eq_nested_repeated_success.pl} +0 -0
  1767. /package/test/conformance/expected/unification/{extra_eq_scalar_number_atom.eye → extra_eq_scalar_number_atom.pl} +0 -0
  1768. /package/test/conformance/expected/unification/{extra_eq_scalar_string_number.eye → extra_eq_scalar_string_number.pl} +0 -0
  1769. /package/test/conformance/expected/unification/{extra_neq_compound_arity_mismatch.eye → extra_neq_compound_arity_mismatch.pl} +0 -0
  1770. /package/test/conformance/expected/unification/{extra_variable_clause_locality.eye → extra_variable_clause_locality.pl} +0 -0
  1771. /package/test/conformance/expected/unification/{list_tail_binding.eye → list_tail_binding.pl} +0 -0
  1772. /package/test/conformance/expected/unification/{nested_repeated_variable.eye → nested_repeated_variable.pl} +0 -0
  1773. /package/test/conformance/expected/unification/{scalar_cross_type_same_lexical_value.eye → scalar_cross_type_same_lexical_value.pl} +0 -0
  1774. /package/test/conformance/expected/variables/{007_anonymous_variables.eye → 007_anonymous_variables.pl} +0 -0
  1775. /package/test/conformance/expected/variables/{010_variable_scope_and_reuse.eye → 010_variable_scope_and_reuse.pl} +0 -0
  1776. /package/test/conformance/expected/variables/{026_question_underscore_named_variable_reuse.eye → 026_question_underscore_named_variable_reuse.pl} +0 -0
  1777. /package/test/conformance/expected/variables/{101_question_mark_variables.eye → 101_question_mark_variables.pl} +0 -0
  1778. /package/test/conformance/expected/{terms/compound_name_arguments_bad_args_fail.eye → variables/anonymous_in_two_goals.pl} +0 -0
  1779. /package/test/conformance/expected/variables/{clause_local_variable_names.eye → clause_local_variable_names.pl} +0 -0
  1780. /package/test/conformance/expected/variables/{extra_anonymous_not_reused.eye → extra_anonymous_not_reused.pl} +0 -0
  1781. /package/test/conformance/expected/variables/{extra_named_variable_reused.eye → extra_named_variable_reused.pl} +0 -0
  1782. /package/test/conformance/expected/variables/{extra_question_underscore_named_distinct.eye → extra_question_underscore_named_distinct.pl} +0 -0
  1783. /package/test/conformance/expected/variables/{extra_question_uppercase_named.eye → extra_question_uppercase_named.pl} +0 -0
  1784. /package/test/conformance/expected/variables/{question_anonymous_not_reused.eye → question_anonymous_not_reused.pl} +0 -0
  1785. /package/test/conformance/expected/variables/{question_underscore_named_reuse.eye → question_underscore_named_reuse.pl} +0 -0
  1786. /package/test/conformance/expected/{unification/compound_arity_mismatch_fails.eye → variables/question_uppercase_variable.pl} +0 -0
  1787. /package/test/conformance/expected/variables/{anonymous_in_two_goals.eye → question_variable_digits_and_underscore.pl} +0 -0
  1788. /package/test/conformance/expected/variables/{question_uppercase_variable.eye → question_variable_uppercase_name.pl} +0 -0
  1789. /package/test/conformance/expected/variables/{variable_scope_per_clause.eye → variable_scope_per_clause.pl} +0 -0
  1790. /package/test/conformance/expected-proofs/proofs/{conjunction_order.eye → conjunction_order.pl} +0 -0
  1791. /package/test/conformance/expected-proofs/proofs/{extra_negation_success.eye → extra_negation_success.pl} +0 -0
  1792. /package/test/conformance/expected-warnings/negation/{extra_stratified_multiple_negations_quiet.eye → extra_stratified_multiple_negations_quiet.pl} +0 -0
  1793. /package/test/conformance/expected-warnings/negation/{extra_stratified_negation_with_table_quiet.eye → extra_stratified_negation_with_table_quiet.pl} +0 -0
  1794. /package/test/conformance/expected-warnings/negation/{extra_unstratified_indirect_self_with_fact.eye → extra_unstratified_indirect_self_with_fact.pl} +0 -0
  1795. /package/test/conformance/expected-warnings/negation/{extra_unstratified_positive_negative_loop.eye → extra_unstratified_positive_negative_loop.pl} +0 -0
  1796. /package/test/conformance/expected-warnings/negation/{extra_unstratified_three_cycle_all_negative.eye → extra_unstratified_three_cycle_all_negative.pl} +0 -0
  1797. /package/test/conformance/expected-warnings/negation/{extra_warning_preserves_empty_stdout.eye → extra_warning_preserves_empty_stdout.pl} +0 -0
  1798. /package/test/conformance/expected-warnings/negation/{negative_unknown_group_quiet.eye → negative_unknown_group_quiet.pl} +0 -0
  1799. /package/test/conformance/expected-warnings/negation/{no_negation_quiet.eye → no_negation_quiet.pl} +0 -0
  1800. /package/test/conformance/expected-warnings/negation/{stratified_negative_unknown_after_positive_quiet.eye → stratified_negative_unknown_after_positive_quiet.pl} +0 -0
  1801. /package/test/conformance/expected-warnings/negation/{stratified_quiet.eye → stratified_quiet.pl} +0 -0
  1802. /package/test/conformance/expected-warnings/negation/{stratified_two_level_quiet.eye → stratified_two_level_quiet.pl} +0 -0
  1803. /package/test/conformance/expected-warnings/negation/{unstratified_mutual.eye → unstratified_mutual.pl} +0 -0
  1804. /package/test/conformance/expected-warnings/negation/{unstratified_positive_prefix.eye → unstratified_positive_prefix.pl} +0 -0
  1805. /package/test/conformance/expected-warnings/negation/{unstratified_self.eye → unstratified_self.pl} +0 -0
  1806. /package/test/conformance/expected-warnings/negation/{unstratified_three_step.eye → unstratified_three_step.pl} +0 -0
  1807. /package/test/conformance/expected-warnings/negation/{unstratified_two_arity_cycle.eye → unstratified_two_arity_cycle.pl} +0 -0
  1808. /package/test/conformance/expected-warnings/negation/{unstratified_two_independent_cycles.eye → unstratified_two_independent_cycles.pl} +0 -0
  1809. /package/test/conformance/expected-warnings/negation/{unstratified_with_iri_predicates.eye → unstratified_with_iri_predicates.pl} +0 -0
  1810. /package/test/conformance/expected-warnings/negation/{warning_preserves_multiple_stdout_answers.eye → warning_preserves_multiple_stdout_answers.pl} +0 -0
  1811. /package/test/conformance/proofs/proofs/{conjunction_order.eye → conjunction_order.pl} +0 -0
  1812. /package/test/conformance/proofs/proofs/{extra_negation_success.eye → extra_negation_success.pl} +0 -0
  1813. /package/test/conformance/warnings/negation/{extra_stratified_multiple_negations_quiet.eye → extra_stratified_multiple_negations_quiet.pl} +0 -0
  1814. /package/test/conformance/warnings/negation/{extra_unstratified_three_cycle_all_negative.eye → extra_unstratified_three_cycle_all_negative.pl} +0 -0
  1815. /package/test/conformance/warnings/negation/{extra_warning_preserves_empty_stdout.eye → extra_warning_preserves_empty_stdout.pl} +0 -0
  1816. /package/test/conformance/warnings/negation/{negative_unknown_group_quiet.eye → negative_unknown_group_quiet.pl} +0 -0
  1817. /package/test/conformance/warnings/negation/{stratified_quiet.eye → stratified_quiet.pl} +0 -0
  1818. /package/test/conformance/warnings/negation/{unstratified_mutual.eye → unstratified_mutual.pl} +0 -0
  1819. /package/test/conformance/warnings/negation/{unstratified_positive_prefix.eye → unstratified_positive_prefix.pl} +0 -0
  1820. /package/test/conformance/warnings/negation/{unstratified_self.eye → unstratified_self.pl} +0 -0
  1821. /package/test/conformance/warnings/negation/{unstratified_two_arity_cycle.eye → unstratified_two_arity_cycle.pl} +0 -0
  1822. /package/test/conformance/warnings/negation/{unstratified_two_independent_cycles.eye → unstratified_two_independent_cycles.pl} +0 -0
  1823. /package/test/conformance/warnings/negation/{warning_preserves_multiple_stdout_answers.eye → warning_preserves_multiple_stdout_answers.pl} +0 -0
@@ -78,7 +78,7 @@ An **atomic formula** is a predicate application such as `parent(pat, jan)` or `
78
78
 
79
79
  This distinction is normative: `pat` is an atom constant and can appear as a term argument; `parent(pat, jan)` is an atomic formula and can appear as a fact, rule head, or goal. A compound term such as `pair(pat, jan)` has the same surface shape as an atomic formula, but its role is determined by context: as data it is a compound term, and as a clause head or goal it is an atomic formula with predicate symbol `pair/2`.
80
80
 
81
- A **clause** is either a fact such as `parent(pat, jan).` or a rule such as `ancestor(?x, ?y) :- parent(?x, ?y).`.
81
+ A **clause** is either a fact such as `parent(pat, jan).` or a rule such as `ancestor(X, Y) :- parent(X, Y).`.
82
82
 
83
83
  A **goal** is an atomic formula, a built-in call, or a comma conjunction.
84
84
 
@@ -92,7 +92,7 @@ Eyelang is designed to be:
92
92
 
93
93
  - small enough to embed and audit;
94
94
  - deterministic in textual output order after duplicate suppression;
95
- - useful for relation-style `p(?s, ?o)` output through ordinary predicate names;
95
+ - useful for relation-style `p(S, O)` output through ordinary predicate names;
96
96
  - practical for examples involving recursion, lists, arithmetic, strings, aggregation, finite search, and context-valued data.
97
97
 
98
98
  Non-goals include complete ISO Prolog compatibility, operator declarations, module systems, dynamic database updates, cut-based control, and full bottom-up closure semantics.
@@ -123,18 +123,18 @@ A colon outside `:-` is not part of the language. Namespace-like names SHOULD be
123
123
 
124
124
  ### 3.4 Variables
125
125
 
126
- A variable is either the bare anonymous variable `?`, or starts with `?` followed by an ASCII letter or underscore and then zero or more ASCII letters, digits, or underscores. This N3/SPARQL-style spelling is the only source-level variable spelling in eyelang.
126
+ A variable is either the bare anonymous variable `_`, or starts with an uppercase ASCII letter or underscore and then zero or more ASCII letters, digits, or underscores. This is the source-level variable spelling used by ISO Prolog.
127
127
 
128
128
  Examples:
129
129
 
130
130
  ```eyelang
131
- ?x
132
- ?person
133
- ?_thing
134
- ?
131
+ X
132
+ Person
133
+ _thing
134
+ _
135
135
  ```
136
136
 
137
- Each bare `?` anonymous variable occurrence is fresh. A bare `_` is not a variable in eyelang source.
137
+ Each bare `_` anonymous variable occurrence is fresh. A name such as `_thing` is a named variable and is reused within its clause.
138
138
 
139
139
  ### 3.5 Atom constants
140
140
 
@@ -150,15 +150,15 @@ case_123
150
150
  'a-b'
151
151
  ```
152
152
 
153
- Absolute IRI atom constants MAY also be written between angle brackets. The content must be an absolute IRI-like lexical value with a scheme such as `https:` or `urn:`. Eyelang stores the content as the atom value and prints absolute IRI atoms with angle brackets on read-back:
153
+ IRI-shaped atom constants SHOULD be written as quoted atoms containing the angle brackets. This keeps the surface syntax ISO Prolog-compatible while preserving the visible web identifier text:
154
154
 
155
155
  ```eyelang
156
- <https://example.org/alice>
157
- <urn:example:bob>
158
- triple(<https://example.org/alice>, <https://schema.org/name>, "Alice").
156
+ '<https://example.org/alice>'
157
+ '<urn:example:bob>'
158
+ triple('<https://example.org/alice>', '<https://schema.org/name>', "Alice").
159
159
  ```
160
160
 
161
- Quoted absolute IRI atoms remain valid input, but read-back normalizes them to angle-bracket syntax. For example, `'https://example.org/alice'` prints as `<https://example.org/alice>`.
161
+ Unquoted angle-bracket IRI syntax is not part of the source language. If the angle brackets are part of the atom name, include them inside the quoted atom, for example `'<https://example.org/alice>'`.
162
162
 
163
163
  A quoted atom constant is enclosed in single quotes. A single quote inside a quoted atom constant is represented by doubling it:
164
164
 
@@ -174,7 +174,7 @@ A graphic atom constant is one or more graphic characters from this set:
174
174
  #$&*+-/<=>@^~\
175
175
  ```
176
176
 
177
- Angle-bracket IRI syntax is recognized only for absolute IRI-like contents. Graphic atoms such as `<=>`, `<`, and `>=` remain graphic atoms.
177
+ Graphic atoms such as `<=>`, `<`, and `>=` remain graphic atoms. Longer names containing letters or punctuation outside the graphic set should be quoted, for example `'<abc>'`.
178
178
 
179
179
  ### 3.6 Strings
180
180
 
@@ -228,7 +228,7 @@ The syntax `nil()` is intentionally rejected so eyelang source and read-back out
228
228
 
229
229
  ### 5.1 Variables
230
230
 
231
- Variables are scoped to a single clause or selected goal. A variable in a rule head and body denotes the same logical variable within that clause. Names preserve their spelling, so repeated `?x` occurrences in one clause refer to the same variable.
231
+ Variables are scoped to a single clause or selected goal. A variable in a rule head and body denotes the same logical variable within that clause. Names preserve their spelling, so repeated `X` occurrences in one clause refer to the same variable.
232
232
 
233
233
  ### 5.2 Atom constants, strings, and numbers
234
234
 
@@ -279,12 +279,12 @@ parent(pat, jan).
279
279
  A rule has a head and a body:
280
280
 
281
281
  ```eyelang
282
- ancestor(?x, ?y) :-
283
- parent(?x, ?y).
282
+ ancestor(X, Y) :-
283
+ parent(X, Y).
284
284
 
285
- ancestor(?x, ?z) :-
286
- parent(?x, ?y),
287
- ancestor(?y, ?z).
285
+ ancestor(X, Z) :-
286
+ parent(X, Y),
287
+ ancestor(Y, Z).
288
288
  ```
289
289
 
290
290
  Clauses with the same predicate name and arity define one predicate group. Predicate name and arity are both significant: `p/1` and `p/2` are different predicates.
@@ -322,10 +322,10 @@ parent(pat, jan).
322
322
  places the ground atomic formula `parent(pat, jan)` in the interpretation. A rule such as:
323
323
 
324
324
  ```eyelang
325
- ancestor(?x, ?z) :- parent(?x, ?y), ancestor(?y, ?z).
325
+ ancestor(X, Z) :- parent(X, Y), ancestor(Y, Z).
326
326
  ```
327
327
 
328
- is read universally over Herbrand terms: for every substitution of `?x`, `?y`, and `?z` by ground Herbrand terms, if both ground body atomic formulas are true, then the ground head atomic formula is true. The declarative meaning of a pure program is the **least Herbrand model**: the smallest set of ground atomic formulas that contains all facts and is closed under all rules.
328
+ is read universally over Herbrand terms: for every substitution of `X`, `Y`, and `Z` by ground Herbrand terms, if both ground body atomic formulas are true, then the ground head atomic formula is true. The declarative meaning of a pure program is the **least Herbrand model**: the smallest set of ground atomic formulas that contains all facts and is closed under all rules.
329
329
 
330
330
  Equivalently, the least Herbrand model is obtained by repeatedly applying the immediate-consequence operation: start with the source facts, add every ground rule head whose ground body is already true, and continue to the least fixed point. This definition is mathematical; an implementation does not have to compute the model bottom-up.
331
331
 
@@ -336,11 +336,11 @@ Variables do not range over external objects, records, pointers, or host-languag
336
336
  eyelang has no blank nodes and no existential variables in rule heads. Existential-style consequences SHOULD be represented by explicit Herbrand witness terms written directly in rule heads:
337
337
 
338
338
  ```eyelang
339
- has_parent(?child, parent_of(?child)) :-
340
- person(?child).
339
+ has_parent(Child, parent_of(Child)) :-
340
+ person(Child).
341
341
 
342
- registration(?student, ?course, registration_of(?student, ?course)) :-
343
- takes(?student, ?course).
342
+ registration(Student, Course, registration_of(Student, Course)) :-
343
+ takes(Student, Course).
344
344
  ```
345
345
 
346
346
  These rules may derive `parent_of(alice)` or `registration_of(alice, logic)` as ordinary visible Herbrand terms. The witness is deterministic: the same functor and inputs produce the same term, while different inputs produce different terms by normal syntactic identity. This is the practical executable form of existential-style consequences in Eyelang; it does not introduce hidden blank nodes or special quantifier syntax.
@@ -349,7 +349,7 @@ These rules may derive `parent_of(alice)` or `registration_of(alice, logic)` as
349
349
 
350
350
  Because the domain is Herbrand, equality in the pure language is syntactic identity of terms after substitution. Two distinct atom constants are distinct. Two compound terms are equal only when they have the same functor, the same arity, and pairwise equal arguments. Lists follow the same rule through their `[]` and `./2` representation.
351
351
 
352
- Operationally, eyelang uses first-order unification to find substitutions. The implementation does not perform an occurs check, so cyclic terms are not part of the portable Herbrand reading even if a particular implementation can temporarily construct recursive bindings internally. Portable programs SHOULD avoid relying on occurs-check-sensitive cases such as `eq(?x, f(?x))`.
352
+ Operationally, eyelang uses first-order unification to find substitutions. The implementation does not perform an occurs check, so cyclic terms are not part of the portable Herbrand reading even if a particular implementation can temporarily construct recursive bindings internally. Portable programs SHOULD avoid relying on occurs-check-sensitive cases such as `eq(X, f(X))`.
353
353
 
354
354
  ### 8.3 Goal-directed execution versus model-theoretic meaning
355
355
 
@@ -361,9 +361,9 @@ Default CLI output is also a host behavior, not a separate semantics. It asks br
361
361
 
362
362
  Built-ins are specified relations or operations added to the Herbrand core. A built-in call in a goal has the syntax of an atomic formula, but its success relation is specified procedurally here rather than by source clauses. Some built-ins, such as `eq/2`, `append/3`, `member/2`, and `length/2`, can be understood as relations over Herbrand terms. Others, such as arithmetic, string matching, date/time predicates, aggregation, `once/1`, and negation-as-failure, are operational extensions whose behavior is defined by this specification rather than by pure least-Herbrand-model semantics alone.
363
363
 
364
- Arithmetic and string built-ins do not introduce a separate semantic universe. They inspect the lexical values of already represented Herbrand constants and, when they succeed, bind output arguments to eyelang terms such as numbers, strings, or atom constants. For example, `add(2, 3, ?x)` may bind `?x` to the number term `5`; it does not mean that variables range over host-language numbers outside the Herbrand universe.
364
+ Arithmetic and string built-ins do not introduce a separate semantic universe. They inspect the lexical values of already represented Herbrand constants and, when they succeed, bind output arguments to eyelang terms such as numbers, strings, or atom constants. For example, `add(2, 3, X)` may bind `X` to the number term `5`; it does not mean that variables range over host-language numbers outside the Herbrand universe.
365
365
 
366
- Negation-as-failure `not(?goal)` is especially operational: it succeeds when the current goal-directed search finds no solution for `?goal`. It is not classical negation and should not be read as adding negative facts to the Herbrand model. Programs using negation SHOULD keep the negated goal sufficiently ground and finite.
366
+ Negation-as-failure `not(Goal)` is especially operational: it succeeds when the current goal-directed search finds no solution for `Goal`. It is not classical negation and should not be read as adding negative facts to the Herbrand model. Programs using negation SHOULD keep the negated goal sufficiently ground and finite.
367
367
 
368
368
  ### 8.5 Stratified negation
369
369
 
@@ -372,15 +372,15 @@ Portable programs using user-defined predicates under `not/1` SHOULD be **strati
372
372
  For example, this is stratified because `open/1` depends negatively on `closed/1`, but `closed/1` does not depend back on `open/1`:
373
373
 
374
374
  ```eyelang
375
- closed(?x) :- blocked(?x).
376
- open(?x) :- candidate(?x), not(closed(?x)).
375
+ closed(X) :- blocked(X).
376
+ open(X) :- candidate(X), not(closed(X)).
377
377
  ```
378
378
 
379
379
  This is not stratified because `p/1` and `q/1` form a cycle that contains a negative dependency:
380
380
 
381
381
  ```eyelang
382
- p(?x) :- q(?x).
383
- q(?x) :- not(p(?x)).
382
+ p(X) :- q(X).
383
+ q(X) :- not(p(X)).
384
384
  ```
385
385
 
386
386
  The JavaScript implementation records stratification metadata on `Program` instances: `stratifiedNegation`, `negationStratificationErrors`, `negationDependencies`, and per-group `negationStratum`. This diagnostic is computed lazily when one of those properties or helper methods is first read, or eagerly when parsing with `{ analyzeNegation: true }` or `{ strictNegation: true }`. The CLI option `-w` / `--warnings` requests this diagnostic and prints non-fatal warnings to stderr. Embedders that want to reject non-portable negation can parse with `{ strictNegation: true }` or call `program.assertStratifiedNegation()`.
@@ -397,36 +397,36 @@ Implementations MAY provide additional built-ins, but such built-ins are impleme
397
397
 
398
398
  | Built-in | Meaning |
399
399
  |---|---|
400
- | `eq(?a, ?b)` | Succeeds when `?a` and `?b` unify. |
401
- | `neq(?a, ?b)` | Succeeds when `?a` and `?b` do not unify. |
400
+ | `eq(A, B)` | Succeeds when `A` and `B` unify. |
401
+ | `neq(A, B)` | Succeeds when `A` and `B` do not unify. |
402
402
 
403
403
  ### 9.2 Arithmetic
404
404
 
405
405
  | Built-in | Meaning |
406
406
  |---|---|
407
- | `neg(?a, ?b)` | `?b` is the numeric negation of `?a`. |
408
- | `abs(?a, ?b)` | `?b` is the absolute value of `?a`. |
409
- | `sin(?a, ?b)`, `cos(?a, ?b)`, `tan(?a, ?b)` | Trigonometric floating functions. |
410
- | `asin(?a, ?b)`, `acos(?a, ?b)`, `atan2(?y, ?x, ?angle)` | Inverse trigonometric floating functions. |
411
- | `sqrt(?a, ?b)` | Square root. Fails for negative inputs. |
412
- | `floor(?a, ?b)`, `ceiling(?a, ?b)`, `trunc(?a, ?b)`, `rounded(?a, ?b)` | Integer-valued numeric rounding functions. |
413
- | `exp(?a, ?b)`, `log(?a, ?b)` | Natural exponent and logarithm. `log/2` fails for non-positive inputs. |
414
- | `add(?a, ?b, ?c)` | `?c = ?a + ?b`. |
415
- | `sub(?a, ?b, ?c)` | `?c = ?a - ?b`. |
416
- | `mul(?a, ?b, ?c)` | `?c = ?a * ?b`. |
417
- | `div(?a, ?b, ?c)` | `?c = ?a / ?b`; integer inputs use integer division. |
418
- | `mod(?a, ?b, ?c)` | Integer remainder. |
419
- | `pow(?a, ?b, ?c)` | `?c = ?a^?b`. |
420
- | `min(?a, ?b, ?c)`, `max(?a, ?b, ?c)` | Numeric minimum and maximum. |
407
+ | `neg(A, B)` | `B` is the numeric negation of `A`. |
408
+ | `abs(A, B)` | `B` is the absolute value of `A`. |
409
+ | `sin(A, B)`, `cos(A, B)`, `tan(A, B)` | Trigonometric floating functions. |
410
+ | `asin(A, B)`, `acos(A, B)`, `atan2(Y, X, Angle)` | Inverse trigonometric floating functions. |
411
+ | `sqrt(A, B)` | Square root. Fails for negative inputs. |
412
+ | `floor(A, B)`, `ceiling(A, B)`, `trunc(A, B)`, `rounded(A, B)` | Integer-valued numeric rounding functions. |
413
+ | `exp(A, B)`, `log(A, B)` | Natural exponent and logarithm. `log/2` fails for non-positive inputs. |
414
+ | `add(A, B, C)` | `C = A + B`. |
415
+ | `sub(A, B, C)` | `C = A - B`. |
416
+ | `mul(A, B, C)` | `C = A * B`. |
417
+ | `div(A, B, C)` | `C = A / B`; integer inputs use integer division. |
418
+ | `mod(A, B, C)` | Integer remainder. |
419
+ | `pow(A, B, C)` | `C = A^B`. |
420
+ | `min(A, B, C)`, `max(A, B, C)` | Numeric minimum and maximum. |
421
421
 
422
422
  ### 9.3 Comparison
423
423
 
424
424
  | Built-in | Meaning |
425
425
  |---|---|
426
- | `lt(?a, ?b)` | `?a < ?b`. |
427
- | `gt(?a, ?b)` | `?a > ?b`. |
428
- | `le(?a, ?b)` | `?a =< ?b`. |
429
- | `ge(?a, ?b)` | `?a >= ?b`. |
426
+ | `lt(A, B)` | `A < B`. |
427
+ | `gt(A, B)` | `A > B`. |
428
+ | `le(A, B)` | `A =< B`. |
429
+ | `ge(A, B)` | `A >= B`. |
430
430
 
431
431
  Comparisons interpret numeric-looking terms numerically. Other scalar terms are compared lexically.
432
432
 
@@ -434,66 +434,66 @@ Comparisons interpret numeric-looking terms numerically. Other scalar terms are
434
434
 
435
435
  | Built-in | Meaning |
436
436
  |---|---|
437
- | `local_time(?t)` | Binds `?t` to the local date string. For deterministic runs, `EYELANG_LOCAL_TIME=YYYY-MM-DD` overrides the current date. |
438
- | `difference(?a, ?b, ?d)` | Computes an ISO-like date/duration difference. |
437
+ | `local_time(T)` | Binds `T` to the local date string. For deterministic runs, `EYELANG_LOCAL_TIME=YYYY-MM-DD` overrides the current date. |
438
+ | `difference(A, B, D)` | Computes an ISO-like date/duration difference. |
439
439
 
440
440
  ### 9.5 Generators
441
441
 
442
442
  | Built-in | Meaning |
443
443
  |---|---|
444
- | `between(?low, ?high, ?x)` | Enumerates integers from `?low` through `?high`. |
445
- | `smallest_divisor_from(?n, ?start, ?d)` | Finds a divisor of `?n` starting at `?start`. |
444
+ | `between(Low, High, X)` | Enumerates integers from `Low` through `High`. |
445
+ | `smallest_divisor_from(N, Start, D)` | Finds a divisor of `N` starting at `Start`. |
446
446
 
447
447
  ### 9.6 Strings and atom constants
448
448
 
449
449
  | Built-in | Meaning |
450
450
  |---|---|
451
- | `str_concat(?a, ?b, ?c)` | String concatenation. |
452
- | `contains(?text, ?needle)` | `?text` contains `?needle`. |
453
- | `matches(?text, ?pattern)` | Text matches a simple implementation regex/search pattern. |
454
- | `matches(?text, ?pattern, ?context)` | `?text` matches a JavaScript regular expression with named capture groups; `?context` is a comma context containing one unary term per matched capture group. |
455
- | `not_matches(?text, ?pattern)` | Negation of `matches/2`. |
456
- | `split(?text, ?separator, ?parts)` | Splits text into a proper list of strings. |
457
- | `join(?parts, ?separator, ?text)` | Joins a proper list of scalar terms into a string. |
458
- | `substring(?text, ?start, ?length, ?out)` | Extracts a zero-based substring. |
459
- | `replace(?text, ?search, ?replacement, ?out)` | Replaces all non-empty literal occurrences of `?search`. |
460
- | `lowercase(?text, ?out)`, `uppercase(?text, ?out)`, `trim(?text, ?out)` | Text normalization helpers. |
461
- | `number_string(?number, ?string)` | Converts a number to a string or parses a numeric string into a number. |
462
- | `atom_string(?atom, ?string)` | Converts between atom constants and strings. |
463
- | `term_string(?term, ?string)` | Renders a ground term as its eyelang source string. |
451
+ | `str_concat(A, B, C)` | String concatenation. |
452
+ | `contains(Text, Needle)` | `Text` contains `Needle`. |
453
+ | `matches(Text, Pattern)` | Text matches a simple implementation regex/search pattern. |
454
+ | `matches(Text, Pattern, Context)` | `Text` matches a JavaScript regular expression with named capture groups; `Context` is a comma context containing one unary term per matched capture group. |
455
+ | `not_matches(Text, Pattern)` | Negation of `matches/2`. |
456
+ | `split(Text, Separator, Parts)` | Splits text into a proper list of strings. |
457
+ | `join(Parts, Separator, Text)` | Joins a proper list of scalar terms into a string. |
458
+ | `substring(Text, Start, Length, Out)` | Extracts a zero-based substring. |
459
+ | `replace(Text, Search, Replacement, Out)` | Replaces all non-empty literal occurrences of `Search`. |
460
+ | `lowercase(Text, Out)`, `uppercase(Text, Out)`, `trim(Text, Out)` | Text normalization helpers. |
461
+ | `number_string(Number, String)` | Converts a number to a string or parses a numeric string into a number. |
462
+ | `atom_string(Atom, String)` | Converts between atom constants and strings. |
463
+ | `term_string(Term, String)` | Renders a ground term as its eyelang source string. |
464
464
 
465
465
  ### 9.7 Lists
466
466
 
467
467
  | Built-in | Meaning |
468
468
  |---|---|
469
- | `append(?a, ?b, ?c)` | List append/split relation. |
470
- | `nth0(?index, ?list, ?value)` | Zero-based list lookup. |
471
- | `set_nth0(?index, ?list, ?value, ?out)` | Functional list update. |
472
- | `head(?list, ?head)` | Head of a non-empty list. |
473
- | `rest(?list, ?tail)` | Tail of a non-empty list. |
474
- | `last(?list, ?last)` | Last element of a non-empty proper list. |
475
- | `take(?n, ?list, ?prefix)` | First `?n` items of a proper list. |
476
- | `drop(?n, ?list, ?suffix)` | Proper-list suffix after dropping `?n` items. |
477
- | `slice(?start, ?length, ?list, ?slice)` | Zero-based proper-list slice. |
478
- | `member(?x, ?list)` | Member generator. |
479
- | `select(?x, ?list, ?rest)` | Selects one occurrence. |
480
- | `not_member(?x, ?list)` | Succeeds when `?x` is not a member. |
481
- | `reverse(?a, ?b)` | Reverses a proper list. |
482
- | `length(?list, ?n)` | Proper-list length. |
483
- | `sum_list(?list, ?sum)` | Numeric sum of a proper list; empty lists produce `0`. |
484
- | `min_list(?list, ?min)`, `max_list(?list, ?max)` | Minimum and maximum under standard term ordering. |
485
- | `list_to_set(?list, ?set)` | Removes duplicates while preserving the first occurrence order. |
486
- | `sort(?input, ?output)` | Sorts and deduplicates a proper list. |
469
+ | `append(A, B, C)` | List append/split relation. |
470
+ | `nth0(Index, List, Value)` | Zero-based list lookup. |
471
+ | `set_nth0(Index, List, Value, Out)` | Functional list update. |
472
+ | `head(List, Head)` | Head of a non-empty list. |
473
+ | `rest(List, Tail)` | Tail of a non-empty list. |
474
+ | `last(List, Last)` | Last element of a non-empty proper list. |
475
+ | `take(N, List, Prefix)` | First `N` items of a proper list. |
476
+ | `drop(N, List, Suffix)` | Proper-list suffix after dropping `N` items. |
477
+ | `slice(Start, Length, List, Slice)` | Zero-based proper-list slice. |
478
+ | `member(X, List)` | Member generator. |
479
+ | `select(X, List, Rest)` | Selects one occurrence. |
480
+ | `not_member(X, List)` | Succeeds when `X` is not a member. |
481
+ | `reverse(A, B)` | Reverses a proper list. |
482
+ | `length(List, N)` | Proper-list length. |
483
+ | `sum_list(List, Sum)` | Numeric sum of a proper list; empty lists produce `0`. |
484
+ | `min_list(List, Min)`, `max_list(List, Max)` | Minimum and maximum under standard term ordering. |
485
+ | `list_to_set(List, Set)` | Removes duplicates while preserving the first occurrence order. |
486
+ | `sort(Input, Output)` | Sorts and deduplicates a proper list. |
487
487
 
488
488
  ### 9.8 Aggregation and ordering
489
489
 
490
490
  | Built-in | Meaning |
491
491
  |---|---|
492
- | `findall(?template, ?goal, ?bag)` | Collects all templates for solutions of `?goal`. |
493
- | `countall(?goal, ?count)` | Counts solutions of `?goal`; empty solution sets produce `0`. |
494
- | `sumall(?template, ?goal, ?sum)` | Sums numeric `?template` values over solutions of `?goal`; empty solution sets produce `0`. |
495
- | `aggregate_min(?key, ?template, ?goal, ?bestkey, ?besttemplate)` | Selects the solution of `?goal` with the smallest resolved `?key`, returning that key and the corresponding resolved `?template`. Fails when `?goal` has no solutions. |
496
- | `aggregate_max(?key, ?template, ?goal, ?bestkey, ?besttemplate)` | Selects the solution of `?goal` with the largest resolved `?key`, returning that key and the corresponding resolved `?template`. Fails when `?goal` has no solutions. |
492
+ | `findall(Template, Goal, Bag)` | Collects all templates for solutions of `Goal`. |
493
+ | `countall(Goal, Count)` | Counts solutions of `Goal`; empty solution sets produce `0`. |
494
+ | `sumall(Template, Goal, Sum)` | Sums numeric `Template` values over solutions of `Goal`; empty solution sets produce `0`. |
495
+ | `aggregate_min(Key, Template, Goal, Bestkey, Besttemplate)` | Selects the solution of `Goal` with the smallest resolved `Key`, returning that key and the corresponding resolved `Template`. Fails when `Goal` has no solutions. |
496
+ | `aggregate_max(Key, Template, Goal, Bestkey, Besttemplate)` | Selects the solution of `Goal` with the largest resolved `Key`, returning that key and the corresponding resolved `Template`. Fails when `Goal` has no solutions. |
497
497
 
498
498
  ### 9.9 Context and term inspection
499
499
 
@@ -501,34 +501,34 @@ Context terms are data representations of atomic formulas and comma conjunctions
501
501
 
502
502
  | Built-in | Meaning |
503
503
  |---|---|
504
- | `holds(?context, ?term)` | Enumerates member terms inside a context term and unifies each member with `?term`. |
505
- | `holds(?context, ?name, ?args)` | Enumerates context members of any arity, exposing each member as atom constant `?name` plus a proper argument list `?args`. |
506
- | `functor(?term, ?name, ?arity)` | Decomposes a non-variable term into its name and arity. |
507
- | `arg(?index, ?term, ?arg)` | Extracts the 1-based argument of a compound term. |
508
- | `compound_name_arguments(?term, ?name, ?args)` | Decomposes a compound term, treats an atom as a zero-argument term, or constructs a term from an atom name and proper argument list. Empty `?args` constructs an atom. |
504
+ | `holds(Context, Term)` | Enumerates member terms inside a context term and unifies each member with `Term`. |
505
+ | `holds(Context, Name, Args)` | Enumerates context members of any arity, exposing each member as atom constant `Name` plus a proper argument list `Args`. |
506
+ | `functor(Term, Name, Arity)` | Decomposes a non-variable term into its name and arity. |
507
+ | `arg(Index, Term, Arg)` | Extracts the 1-based argument of a compound term. |
508
+ | `compound_name_arguments(Term, Name, Args)` | Decomposes a compound term, treats an atom as a zero-argument term, or constructs a term from an atom name and proper argument list. Empty `Args` constructs an atom. |
509
509
 
510
510
  Example:
511
511
 
512
512
  ```eyelang
513
- holds((name(alice, "Alice"), knows(alice, bob)), name(?s, ?o)).
514
- holds((ready, name(alice, "Alice"), route(alice, bob, 7)), ?name, ?args).
513
+ holds((name(alice, "Alice"), knows(alice, bob)), name(S, O)).
514
+ holds((ready, name(alice, "Alice"), route(alice, bob, 7)), Name, Args).
515
515
  functor(route(alice, bob, 7), route, 3).
516
516
  arg(2, route(alice, bob, 7), bob).
517
- compound_name_arguments(?term, route, [alice, bob, 7]).
517
+ compound_name_arguments(Term, route, [alice, bob, 7]).
518
518
  compound_name_arguments(nil, nil, []).
519
519
  ```
520
520
 
521
521
  The first goal can yield `holds((name(alice, "Alice"), knows(alice, bob)), name(alice, "Alice")).` The second can yield `holds((ready, name(alice, "Alice"), route(alice, bob, 7)), ready, []).`, `holds((ready, name(alice, "Alice"), route(alice, bob, 7)), name, [alice, "Alice"]).`, and `holds((ready, name(alice, "Alice"), route(alice, bob, 7)), route, [alice, bob, 7]).`
522
522
 
523
- `holds/3` is the appropriate form for schema-style introspection because it exposes the predicate name and all arguments without assuming a fixed arity. For example, a single rule can inspect `heartbeat`, `source(sensor17)`, `temperature(sensor17, 38)`, and `signature(sensor17, sha256, ?hash, ?time)` as `heartbeat/0`, `source/1`, `temperature/2`, and `signature/4`; see [`context-schema-audit.eye`](../examples/context-schema-audit.eye).
523
+ `holds/3` is the appropriate form for schema-style introspection because it exposes the predicate name and all arguments without assuming a fixed arity. For example, a single rule can inspect `heartbeat`, `source(sensor17)`, `temperature(sensor17, 38)`, and `signature(sensor17, sha256, Hash, Time)` as `heartbeat/0`, `source/1`, `temperature/2`, and `signature/4`; see [`context-schema-audit.pl`](../examples/context-schema-audit.pl).
524
524
 
525
525
  ### 9.10 Search control
526
526
 
527
527
  | Built-in | Meaning |
528
528
  |---|---|
529
- | `not(?goal)` | Negation as failure. Succeeds when `?goal` has no solution. Portable user-defined negation should be stratified. |
530
- | `once(?goal)` | Succeeds with at most the first solution of `?goal`. |
531
- | `forall(?generator, ?test)` | Succeeds when every solution of `?generator` also satisfies `?test`; succeeds vacuously when `?generator` has no solutions. |
529
+ | `not(Goal)` | Negation as failure. Succeeds when `Goal` has no solution. Portable user-defined negation should be stratified. |
530
+ | `once(Goal)` | Succeeds with at most the first solution of `Goal`. |
531
+ | `forall(Generator, Test)` | Succeeds when every solution of `Generator` also satisfies `Test`; succeeds vacuously when `Generator` has no solutions. |
532
532
 
533
533
  ## 10. Implementation-specific built-ins
534
534
 
@@ -538,7 +538,7 @@ Implementation-specific built-ins are not required for conformance to this speci
538
538
 
539
539
  An implementation-specific built-in SHOULD obey the same surface-language discipline as standard built-ins:
540
540
 
541
- - it is called using ordinary atomic-formula syntax, for example `some_extension(?a, ?b)`;
541
+ - it is called using ordinary atomic-formula syntax, for example `some_extension(A, B)`;
542
542
  - its arguments and results are eyelang terms from the Herbrand universe;
543
543
  - it succeeds, fails, and binds variables as a relation over eyelang terms;
544
544
  - it SHOULD document its intended modes, especially which arguments must be ground before it runs deterministically;
@@ -593,13 +593,13 @@ semidet(edge, 2).
593
593
 
594
594
  `mode/3`, `det/2`, and `semidet/2` are advisory declarations. They describe a predicate group's intended calling pattern and determinism, but they do not change proof search or answer output. Because they are ordinary facts, programs may also query them.
595
595
 
596
- For `mode(?name, ?arity, ?modes)`, the first argument MUST be an atom constant naming the predicate, the second argument MUST be a non-negative integer arity, and the third argument MUST be a proper list whose length is equal to the arity. Portable mode atoms are:
596
+ For `mode(Name, Arity, Modes)`, the first argument MUST be an atom constant naming the predicate, the second argument MUST be a non-negative integer arity, and the third argument MUST be a proper list whose length is equal to the arity. Portable mode atoms are:
597
597
 
598
598
  - `in`: the argument is expected to be supplied by the caller;
599
599
  - `out`: the argument is expected to be produced by the predicate;
600
600
  - `any`: no portable mode commitment is made for that argument.
601
601
 
602
- `det(?name, ?arity)` declares that a predicate is intended to produce exactly one answer for calls in its documented modes. `semidet(?name, ?arity)` declares that a predicate is intended to produce zero or one answer. This specification does not require runtime enforcement; hosts MAY use these declarations for linting, documentation, indexing decisions, or editor support.
602
+ `det(Name, Arity)` declares that a predicate is intended to produce exactly one answer for calls in its documented modes. `semidet(Name, Arity)` declares that a predicate is intended to produce zero or one answer. This specification does not require runtime enforcement; hosts MAY use these declarations for linting, documentation, indexing decisions, or editor support.
603
603
 
604
604
  Example:
605
605
 
@@ -623,16 +623,16 @@ In this specification, sockets are a portable **programming pattern** expressed
623
623
  The minimal socket vocabulary is:
624
624
 
625
625
  ```eyelang
626
- socket(?name, ?contract).
627
- plug(?provider, ?name).
628
- provides(?signature).
629
- requires(?signature).
626
+ socket(Name, Contract).
627
+ plug(Provider, Name).
628
+ provides(Signature).
629
+ requires(Signature).
630
630
  ```
631
631
 
632
- `?name` and `?provider` are ordinary eyelang terms, usually atom constants. `?contract` is an ordinary eyelang term that describes the expected or offered knowledge. A portable signature form is:
632
+ `Name` and `Provider` are ordinary eyelang terms, usually atom constants. `Contract` is an ordinary eyelang term that describes the expected or offered knowledge. A portable signature form is:
633
633
 
634
634
  ```eyelang
635
- predicate(?predicatename, ?arity)
635
+ predicate(Predicatename, Arity)
636
636
  ```
637
637
 
638
638
  For example:
@@ -657,12 +657,12 @@ plug(family_file, family_source).
657
657
  parent(pat, jan).
658
658
  parent(jan, emma).
659
659
 
660
- ancestor(?x, ?y) :-
661
- parent(?x, ?y).
660
+ ancestor(X, Y) :-
661
+ parent(X, Y).
662
662
 
663
- ancestor(?x, ?z) :-
664
- parent(?x, ?y),
665
- ancestor(?y, ?z).
663
+ ancestor(X, Z) :-
664
+ parent(X, Y),
665
+ ancestor(Y, Z).
666
666
  ```
667
667
 
668
668
  The `ancestor/2` rules do not depend on a particular storage mechanism for `parent/2`. In a small test, the provider may be the same file. In an embedded host, it may be a database adapter, a document extractor, a remote service, or another eyelang module. The socket facts make that boundary explicit without changing the logical meaning of the rules.
@@ -693,7 +693,7 @@ Default host output behavior is:
693
693
 
694
694
  ### 13.1 Explanation output
695
695
 
696
- When proof output is enabled, each answer SHOULD be followed by a machine-readable `why/2` fact. Explanation output is ordinary eyelang syntax whose second argument is a nested abstract proof term such as `proof(goal(?g), by(?method), bindings(?bindings), uses(?proofs))`; implementations SHOULD print `goal(...)` and `by(...)` on separate lines for readability. A proof term preserves the answer goal, derivation method, relevant bindings, and nested uses while omitting proof IDs. User clauses SHOULD be referenced explicitly as `fact(?filename, clause(?n))` or `rule(?filename, clause(?n))`, where `?n` is the 1-based clause number within that source. Built-ins SHOULD be referenced as `builtin(?name, ?arity)` because they do not come from source clauses. Explanation output is outside the logical semantics of the input program and MUST NOT change the set of answers.
696
+ When proof output is enabled, each answer SHOULD be followed by a machine-readable `why/2` fact. Explanation output is ordinary eyelang syntax whose second argument is a nested abstract proof term such as `proof(goal(G), by(Method), bindings(Bindings), uses(Proofs))`; implementations SHOULD print `goal(...)` and `by(...)` on separate lines for readability. A proof term preserves the answer goal, derivation method, relevant bindings, and nested uses while omitting proof IDs. User clauses SHOULD be referenced explicitly as `fact(Filename, clause(N))` or `rule(Filename, clause(N))`, where `N` is the 1-based clause number within that source. Built-ins SHOULD be referenced as `builtin(Name, Arity)` because they do not come from source clauses. Explanation output is outside the logical semantics of the input program and MUST NOT change the set of answers.
697
697
 
698
698
  ## 14. Conformance
699
699
 
@@ -714,13 +714,11 @@ A conforming eyelang implementation supports the standard language described abo
714
714
 
715
715
  Browser execution, package layout, CLI URL loading, and any implementation-specific built-ins described in host documentation are outside this conformance surface unless separately standardized.
716
716
 
717
- Conformance cases live in the repository under `test/conformance/`. They are run by `npm test` before the example suite, and can be run alone with `node test/run-conformance.mjs`. Positive cases have input programs under `conformance/cases/` and exact expected standard-output files under `conformance/expected/`; both use `.eye` so expected output remains eyelang-readable. Expected-error cases live under `conformance/errors/` with exact messages under `conformance/expected-errors/`. Expected-warning cases live under `conformance/warnings/` with exact `--warnings` stdout and stderr files under `conformance/expected-warnings/`. The corpus is grouped by language area, including arithmetic, strings, lists, terms, atoms, variables, negation, declarations, materialization, rules, syntax, and errors.
717
+ Conformance cases live in the repository under `test/conformance/`. They are run by `npm test` before the example suite, and can be run alone with `node test/run-conformance.mjs`. Positive cases have input programs under `conformance/cases/` and exact expected standard-output files under `conformance/expected/`; both use `.pl` so expected output remains eyelang-readable. Expected-error cases live under `conformance/errors/` with exact messages under `conformance/expected-errors/`. Expected-warning cases live under `conformance/warnings/` with exact `--warnings` stdout and stderr files under `conformance/expected-warnings/`. The corpus is grouped by language area, including arithmetic, strings, lists, terms, atoms, variables, negation, declarations, materialization, rules, syntax, and errors.
718
718
 
719
719
  ## 15. Relationship to ISO Prolog
720
720
 
721
- eyelang source is intended to be familiar to Prolog readers, but eyelang is not ISO Prolog and intentionally avoids some ISO-compatible source spellings. Notable differences include:
722
-
723
- - `?x` variables are the only variable spelling; traditional Prolog `X` and `_` variables are rejected;
721
+ eyelang source is intended to be familiar to Prolog readers and uses ISO Prolog-compatible variable and quoted-atom spelling, but eyelang is not ISO Prolog. Notable differences include:
724
722
  - no operators or operator declarations;
725
723
  - no zero-arity compound syntax such as `nil()`;
726
724
  - no cut;
@@ -731,7 +729,7 @@ eyelang source is intended to be familiar to Prolog readers, but eyelang is not
731
729
  - no variables in functor or predicate position;
732
730
  - no occurs check in unification.
733
731
 
734
- Programs intended to be portable to eyelang SHOULD use `?` variables, avoid ISO-specific syntax, and keep terms explicit. Atom names that are not plain lowercase-starting names, graphic atom tokens, or angle-bracket absolute IRI atoms SHOULD be written as quoted atoms, for example `'a-b'`.
732
+ Programs intended to be portable to eyelang SHOULD use uppercase or underscore variables, avoid ISO-specific features that eyelang does not implement, and keep terms explicit. Atom names that are not plain lowercase-starting names or graphic atom tokens SHOULD be written as quoted atoms, for example `'a-b'` or `'<abc>'`.
735
733
 
736
734
  ## 16. Examples
737
735
 
@@ -741,29 +739,29 @@ Programs intended to be portable to eyelang SHOULD use `?` variables, avoid ISO-
741
739
  parent(pat, jan).
742
740
  parent(jan, emma).
743
741
 
744
- ancestor(?x, ?y) :- parent(?x, ?y).
745
- ancestor(?x, ?z) :- parent(?x, ?y), ancestor(?y, ?z).
742
+ ancestor(X, Y) :- parent(X, Y).
743
+ ancestor(X, Z) :- parent(X, Y), ancestor(Y, Z).
746
744
  ```
747
745
 
748
746
  ### 16.2 Arithmetic
749
747
 
750
748
  ```eyelang
751
- square(?x, ?y) :- mul(?x, ?x, ?y).
752
- answer(three, ?y) :- square(3, ?y).
749
+ square(X, Y) :- mul(X, X, Y).
750
+ answer(three, Y) :- square(3, Y).
753
751
  ```
754
752
 
755
753
  ### 16.3 Lists
756
754
 
757
755
  ```eyelang
758
- first([?x | ?_rest], ?x).
759
- answer(example, ?x) :- first([a, b, c], ?x).
756
+ first([X | _rest], X).
757
+ answer(example, X) :- first([a, b, c], X).
760
758
  ```
761
759
 
762
760
  ### 16.4 Negation as failure
763
761
 
764
762
  ```eyelang
765
763
  closed(b).
766
- open(?x) :- not(closed(?x)).
764
+ open(X) :- not(closed(X)).
767
765
  status(a, open) :- open(a).
768
766
  ```
769
767
 
@@ -0,0 +1,50 @@
1
+ % Abstract interpretation over a tiny imperative program.
2
+ %
3
+ % The concrete program is:
4
+ %
5
+ % x := input();
6
+ % if x < 0 then y := -x else y := x;
7
+ % z := 10 / y;
8
+ %
9
+ % Instead of executing the program for every integer input, this example tracks
10
+ % only the abstract sign of each variable: neg, zero, or pos. The analysis is
11
+ % deliberately conservative: if the join point can see y = zero on any path, the
12
+ % division is reported as a possible division-by-zero warning.
13
+
14
+ materialize(absState, 3).
15
+ materialize(absWarning, 2).
16
+ materialize(absConclusion, 2).
17
+
18
+ table(abs_state, 3).
19
+
20
+ % The abstract domain.
21
+ input_sign(neg).
22
+ input_sign(zero).
23
+ input_sign(pos).
24
+
25
+ % The input statement gives x any of the three abstract signs.
26
+ abs_state(input, x, Sign) :- input_sign(Sign).
27
+
28
+ % The branch refines the sign of x. The negative branch only receives neg; the
29
+ % non-negative branch receives zero or pos.
30
+ abs_state(negative_branch, x, neg) :- abs_state(input, x, neg).
31
+ abs_state(nonnegative_branch, x, zero) :- abs_state(input, x, zero).
32
+ abs_state(nonnegative_branch, x, pos) :- abs_state(input, x, pos).
33
+
34
+ % Transfer functions for assignments. In the negative branch, y := -x turns a
35
+ % negative x into a positive y. In the non-negative branch, y := x preserves the
36
+ % zero/positive information.
37
+ abs_state(negative_branch, y, pos) :- abs_state(negative_branch, x, neg).
38
+ abs_state(nonnegative_branch, y, Sign) :- abs_state(nonnegative_branch, x, Sign).
39
+
40
+ % The join point merges abstract states from both branches.
41
+ abs_state(join, Var, Sign) :- abs_state(negative_branch, Var, Sign).
42
+ abs_state(join, Var, Sign) :- abs_state(nonnegative_branch, Var, Sign).
43
+
44
+ % A possible zero denominator is enough to raise a conservative warning.
45
+ possible_division_by_zero(join) :- abs_state(join, y, zero).
46
+
47
+ absState(Point, Var, sign(Sign)) :- abs_state(Point, Var, Sign).
48
+ absWarning(division_by_zero, Point) :- possible_division_by_zero(Point).
49
+ absConclusion(case, "abstract interpretation keeps all feasible signs and warns because y may be zero") :-
50
+ possible_division_by_zero(join).
@@ -0,0 +1,52 @@
1
+ % Access control policy example adapted from Eyelet input/access-control-policy.pl.
2
+ %
3
+ % This version avoids findall/3 by expressing allOf/anyOf/noneOf checks as
4
+ % finite logical conditions. The universal allOf/noneOf checks use negation
5
+ % as failure over bound policy facts.
6
+
7
+ % Output declarations: materialize/2 selects the relations written to this example's golden output.
8
+ materialize(policy, 2).
9
+ materialize(status, 2).
10
+ materialize(reason, 2).
11
+
12
+ % Program structure: facts set up the scenario, and rules derive the materialized conclusions.
13
+ policy_request(test1, policy_x).
14
+ has(test1, claim_a).
15
+ has(test1, claim_b).
16
+ has(test1, claim_c).
17
+
18
+ policy(policy_x).
19
+ allOf(policy_x, claim_a).
20
+ allOf(policy_x, claim_b).
21
+ anyOf(policy_x, claim_c).
22
+ noneOf(policy_x, claim_d).
23
+
24
+ % Derivation rules: each rule below contributes one logical step toward the displayed results.
25
+ passes_all_of(Request, Policy) :-
26
+ policy_request(Request, Policy),
27
+ policy(Policy),
28
+ not((allOf(Policy, Claim), not(has(Request, Claim)))).
29
+
30
+ passes_any_of(Request, Policy) :-
31
+ policy_request(Request, Policy),
32
+ policy(Policy),
33
+ anyOf(Policy, Claim),
34
+ has(Request, Claim).
35
+
36
+ passes_none_of(Request, Policy) :-
37
+ policy_request(Request, Policy),
38
+ policy(Policy),
39
+ not((noneOf(Policy, Claim), has(Request, Claim))).
40
+
41
+ passes_policy(Request, Policy) :-
42
+ passes_all_of(Request, Policy),
43
+ passes_any_of(Request, Policy),
44
+ passes_none_of(Request, Policy).
45
+
46
+ policy(test1, policy_x).
47
+
48
+ status(test1, policy_passed) :-
49
+ passes_policy(test1, policy_x).
50
+
51
+ reason(test1, "all required claims are present, one allowed claim is present, and no forbidden claim is present") :-
52
+ passes_policy(test1, policy_x).