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