eyelang 1.7.7 → 1.7.9

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 (305) hide show
  1. package/README.md +1 -1
  2. package/conformance-report.md +18 -18
  3. package/docs/guide.md +2 -1
  4. package/docs/language-reference.md +12 -0
  5. package/examples/existential-rule.eye +8 -15
  6. package/examples/herbrand-witnesses.eye +31 -0
  7. package/examples/output/existential-rule.eye +2 -2
  8. package/examples/output/herbrand-witnesses.eye +7 -0
  9. package/examples/proof/existential-rule.eye +10 -18
  10. package/package.json +1 -1
  11. package/playground.html +1 -0
  12. package/src/builtins/terms.js +1 -0
  13. package/test/conformance/cases/aggregation/extra_aggregate_max_iri_key.eye +4 -0
  14. package/test/conformance/cases/aggregation/extra_aggregate_min_tie_first.eye +5 -0
  15. package/test/conformance/cases/aggregation/extra_countall_with_filter.eye +5 -0
  16. package/test/conformance/cases/aggregation/extra_findall_repeated_template.eye +4 -0
  17. package/test/conformance/cases/aggregation/extra_sumall_float_template.eye +4 -0
  18. package/test/conformance/cases/arithmetic/extra_acos_one.eye +2 -0
  19. package/test/conformance/cases/arithmetic/extra_asin_zero.eye +2 -0
  20. package/test/conformance/cases/arithmetic/extra_atan2_axis.eye +2 -0
  21. package/test/conformance/cases/arithmetic/extra_difference_leap_day.eye +2 -0
  22. package/test/conformance/cases/arithmetic/extra_difference_same_day.eye +2 -0
  23. package/test/conformance/cases/arithmetic/extra_div_float_exact.eye +2 -0
  24. package/test/conformance/cases/arithmetic/extra_div_integer_trunc.eye +2 -0
  25. package/test/conformance/cases/arithmetic/extra_division_by_zero_fails.eye +2 -0
  26. package/test/conformance/cases/arithmetic/extra_exp_zero.eye +2 -0
  27. package/test/conformance/cases/arithmetic/extra_ge_equal_duration.eye +2 -0
  28. package/test/conformance/cases/arithmetic/extra_le_equal_string.eye +2 -0
  29. package/test/conformance/cases/arithmetic/extra_log_one.eye +2 -0
  30. package/test/conformance/cases/arithmetic/extra_mod_negative_right.eye +2 -0
  31. package/test/conformance/cases/arithmetic/extra_pow_large_integer.eye +2 -0
  32. package/test/conformance/cases/atoms/extra_graphic_backslash_atom.eye +2 -0
  33. package/test/conformance/cases/atoms/extra_iri_mailto_plus.eye +2 -0
  34. package/test/conformance/cases/atoms/extra_iri_uuid_scheme.eye +2 -0
  35. package/test/conformance/cases/atoms/extra_quoted_atom_with_quote_readback.eye +2 -0
  36. package/test/conformance/cases/builtins/extra_difference_end_before_start_fails.eye +2 -0
  37. package/test/conformance/cases/builtins/extra_difference_invalid_date_fails.eye +2 -0
  38. package/test/conformance/cases/builtins/extra_eq_binds_both_sides.eye +2 -0
  39. package/test/conformance/cases/builtins/extra_neq_different_iri_atoms.eye +2 -0
  40. package/test/conformance/cases/builtins/extra_neq_same_iri_fails.eye +2 -0
  41. package/test/conformance/cases/context/extra_holds_atom_parts.eye +2 -0
  42. package/test/conformance/cases/context/extra_holds_ignores_string_parts.eye +2 -0
  43. package/test/conformance/cases/context/extra_holds_list_parts.eye +2 -0
  44. package/test/conformance/cases/context/extra_holds_term_nested_order.eye +2 -0
  45. package/test/conformance/cases/control/extra_forall_bound_check.eye +2 -0
  46. package/test/conformance/cases/control/extra_forall_counterexample_fails.eye +2 -0
  47. package/test/conformance/cases/control/extra_not_unbound_existing_goal_fails.eye +3 -0
  48. package/test/conformance/cases/control/extra_not_unbound_unknown_goal_succeeds.eye +2 -0
  49. package/test/conformance/cases/control/extra_once_empty_fails.eye +2 -0
  50. package/test/conformance/cases/control/extra_once_preserves_binding.eye +2 -0
  51. package/test/conformance/cases/lists/extra_append_all_splits_three.eye +2 -0
  52. package/test/conformance/cases/lists/extra_append_to_improper_tail.eye +2 -0
  53. package/test/conformance/cases/lists/extra_drop_all.eye +2 -0
  54. package/test/conformance/cases/lists/extra_head_and_rest_improper.eye +2 -0
  55. package/test/conformance/cases/lists/extra_last_singleton.eye +2 -0
  56. package/test/conformance/cases/lists/extra_length_improper_fails.eye +2 -0
  57. package/test/conformance/cases/lists/extra_list_to_set_stable_order.eye +2 -0
  58. package/test/conformance/cases/lists/extra_member_repeated_nested.eye +2 -0
  59. package/test/conformance/cases/lists/extra_not_member_compound_fails.eye +2 -0
  60. package/test/conformance/cases/lists/extra_not_member_compound_success.eye +2 -0
  61. package/test/conformance/cases/lists/extra_nth0_duplicate_indexes.eye +2 -0
  62. package/test/conformance/cases/lists/extra_reverse_nested_terms.eye +2 -0
  63. package/test/conformance/cases/lists/extra_select_structured_duplicate.eye +2 -0
  64. package/test/conformance/cases/lists/extra_slice_end.eye +2 -0
  65. package/test/conformance/cases/lists/extra_sort_iri_atoms.eye +2 -0
  66. package/test/conformance/cases/lists/extra_take_all.eye +2 -0
  67. package/test/conformance/cases/materialize/extra_materialize_derived_only_with_same_source.eye +4 -0
  68. package/test/conformance/cases/materialize/extra_materialize_selects_arity.eye +4 -0
  69. package/test/conformance/cases/negation/extra_not_with_bound_fails.eye +3 -0
  70. package/test/conformance/cases/negation/extra_not_with_bound_success.eye +3 -0
  71. package/test/conformance/cases/rules/extra_left_to_right_multiple_bindings.eye +5 -0
  72. package/test/conformance/cases/rules/extra_structured_head_rule.eye +3 -0
  73. package/test/conformance/cases/strings/extra_atom_string_number_input.eye +2 -0
  74. package/test/conformance/cases/strings/extra_join_empty_list.eye +2 -0
  75. package/test/conformance/cases/strings/extra_join_iri_and_atom.eye +2 -0
  76. package/test/conformance/cases/strings/extra_lowercase_iri_atom.eye +2 -0
  77. package/test/conformance/cases/strings/extra_matches_invalid_pattern_fails.eye +2 -0
  78. package/test/conformance/cases/strings/extra_named_regex_optional_missing.eye +2 -0
  79. package/test/conformance/cases/strings/extra_number_string_atom_input.eye +2 -0
  80. package/test/conformance/cases/strings/extra_replace_multiple.eye +2 -0
  81. package/test/conformance/cases/strings/extra_split_empty_separator.eye +2 -0
  82. package/test/conformance/cases/strings/extra_substring_last_char.eye +2 -0
  83. package/test/conformance/cases/strings/extra_term_string_iri_list.eye +2 -0
  84. package/test/conformance/cases/strings/extra_uppercase_mixed_string.eye +2 -0
  85. package/test/conformance/cases/syntax/extra_comments_after_terms.eye +3 -0
  86. package/test/conformance/cases/syntax/extra_nested_parenthesized_body.eye +2 -0
  87. package/test/conformance/cases/table/extra_table_bound_cycle.eye +7 -0
  88. package/test/conformance/cases/table/extra_table_open_call_fallback.eye +5 -0
  89. package/test/conformance/cases/terms/extra_arg_atom_fails.eye +2 -0
  90. package/test/conformance/cases/terms/extra_arg_first_last.eye +2 -0
  91. package/test/conformance/cases/terms/extra_arg_zero_fails.eye +2 -0
  92. package/test/conformance/cases/terms/extra_compound_name_arguments_bad_args_fails.eye +2 -0
  93. package/test/conformance/cases/terms/extra_compound_name_arguments_construct_atom_zero.eye +2 -0
  94. package/test/conformance/cases/terms/extra_compound_name_arguments_construct_iri.eye +2 -0
  95. package/test/conformance/cases/terms/extra_compound_name_arguments_decompose_list.eye +2 -0
  96. package/test/conformance/cases/terms/extra_functor_list_cons.eye +2 -0
  97. package/test/conformance/cases/terms/extra_functor_number_scalar.eye +2 -0
  98. package/test/conformance/cases/terms/extra_functor_string_scalar.eye +2 -0
  99. package/test/conformance/cases/terms/herbrand_witness_different_inputs_distinct.eye +2 -0
  100. package/test/conformance/cases/terms/herbrand_witness_one_input.eye +5 -0
  101. package/test/conformance/cases/terms/herbrand_witness_same_inputs_same_term.eye +2 -0
  102. package/test/conformance/cases/terms/herbrand_witness_two_inputs.eye +5 -0
  103. package/test/conformance/cases/unification/extra_eq_iri_and_quoted_atom.eye +2 -0
  104. package/test/conformance/cases/unification/extra_eq_list_tail_binding.eye +2 -0
  105. package/test/conformance/cases/unification/extra_eq_nested_repeated_fails.eye +2 -0
  106. package/test/conformance/cases/unification/extra_eq_nested_repeated_success.eye +2 -0
  107. package/test/conformance/cases/unification/extra_eq_scalar_number_atom.eye +2 -0
  108. package/test/conformance/cases/unification/extra_eq_scalar_string_number.eye +2 -0
  109. package/test/conformance/cases/unification/extra_neq_compound_arity_mismatch.eye +2 -0
  110. package/test/conformance/cases/unification/extra_neq_scalar_same_lexical_fails.eye +2 -0
  111. package/test/conformance/cases/unification/extra_variable_clause_locality.eye +4 -0
  112. package/test/conformance/cases/variables/extra_anonymous_not_reused.eye +2 -0
  113. package/test/conformance/cases/variables/extra_named_variable_reused.eye +2 -0
  114. package/test/conformance/cases/variables/extra_question_underscore_named_distinct.eye +2 -0
  115. package/test/conformance/cases/variables/extra_question_uppercase_named.eye +2 -0
  116. package/test/conformance/errors/atoms/extra_angle_iri_backslash_rejected.eye +1 -0
  117. package/test/conformance/errors/atoms/extra_angle_iri_pipe_rejected.eye +1 -0
  118. package/test/conformance/errors/atoms/extra_angle_iri_quote_rejected.eye +1 -0
  119. package/test/conformance/errors/lists/extra_missing_tail_after_bar.eye +1 -0
  120. package/test/conformance/errors/lists/extra_unclosed_list_tail.eye +1 -0
  121. package/test/conformance/errors/rules/extra_empty_head_with_body.eye +1 -0
  122. package/test/conformance/errors/rules/extra_rule_without_body.eye +1 -0
  123. package/test/conformance/errors/syntax/extra_bad_backtick_character.eye +1 -0
  124. package/test/conformance/errors/syntax/extra_bad_iri_empty_body.eye +1 -0
  125. package/test/conformance/errors/syntax/extra_bad_list_double_comma.eye +1 -0
  126. package/test/conformance/errors/syntax/extra_bad_list_double_tail.eye +1 -0
  127. package/test/conformance/errors/syntax/extra_bad_number_two_decimal_points.eye +1 -0
  128. package/test/conformance/errors/syntax/extra_double_period_rejected.eye +1 -0
  129. package/test/conformance/errors/syntax/extra_extra_closing_paren.eye +1 -0
  130. package/test/conformance/errors/syntax/extra_missing_closing_rule_body.eye +1 -0
  131. package/test/conformance/errors/syntax/extra_missing_head_rejected.eye +1 -0
  132. package/test/conformance/errors/terms/extra_empty_nested_compound.eye +1 -0
  133. package/test/conformance/errors/terms/extra_empty_top_level_compound.eye +1 -0
  134. package/test/conformance/errors/variables/extra_bare_underscore_in_rule_head.eye +1 -0
  135. package/test/conformance/errors/variables/extra_question_dash_variable.eye +1 -0
  136. package/test/conformance/errors/variables/extra_uppercase_in_list.eye +1 -0
  137. package/test/conformance/expected/aggregation/extra_aggregate_max_iri_key.eye +1 -0
  138. package/test/conformance/expected/aggregation/extra_aggregate_min_tie_first.eye +1 -0
  139. package/test/conformance/expected/aggregation/extra_countall_with_filter.eye +1 -0
  140. package/test/conformance/expected/aggregation/extra_findall_repeated_template.eye +1 -0
  141. package/test/conformance/expected/aggregation/extra_sumall_float_template.eye +1 -0
  142. package/test/conformance/expected/arithmetic/extra_acos_one.eye +1 -0
  143. package/test/conformance/expected/arithmetic/extra_asin_zero.eye +1 -0
  144. package/test/conformance/expected/arithmetic/extra_atan2_axis.eye +1 -0
  145. package/test/conformance/expected/arithmetic/extra_difference_leap_day.eye +1 -0
  146. package/test/conformance/expected/arithmetic/extra_difference_same_day.eye +1 -0
  147. package/test/conformance/expected/arithmetic/extra_div_float_exact.eye +1 -0
  148. package/test/conformance/expected/arithmetic/extra_div_integer_trunc.eye +1 -0
  149. package/test/conformance/expected/arithmetic/extra_division_by_zero_fails.eye +0 -0
  150. package/test/conformance/expected/arithmetic/extra_exp_zero.eye +1 -0
  151. package/test/conformance/expected/arithmetic/extra_ge_equal_duration.eye +1 -0
  152. package/test/conformance/expected/arithmetic/extra_le_equal_string.eye +1 -0
  153. package/test/conformance/expected/arithmetic/extra_log_one.eye +1 -0
  154. package/test/conformance/expected/arithmetic/extra_mod_negative_right.eye +1 -0
  155. package/test/conformance/expected/arithmetic/extra_pow_large_integer.eye +1 -0
  156. package/test/conformance/expected/atoms/extra_graphic_backslash_atom.eye +0 -0
  157. package/test/conformance/expected/atoms/extra_iri_mailto_plus.eye +0 -0
  158. package/test/conformance/expected/atoms/extra_iri_uuid_scheme.eye +0 -0
  159. package/test/conformance/expected/atoms/extra_quoted_atom_with_quote_readback.eye +0 -0
  160. package/test/conformance/expected/builtins/extra_difference_end_before_start_fails.eye +0 -0
  161. package/test/conformance/expected/builtins/extra_difference_invalid_date_fails.eye +0 -0
  162. package/test/conformance/expected/builtins/extra_eq_binds_both_sides.eye +1 -0
  163. package/test/conformance/expected/builtins/extra_neq_different_iri_atoms.eye +1 -0
  164. package/test/conformance/expected/builtins/extra_neq_same_iri_fails.eye +0 -0
  165. package/test/conformance/expected/context/extra_holds_atom_parts.eye +2 -0
  166. package/test/conformance/expected/context/extra_holds_ignores_string_parts.eye +0 -0
  167. package/test/conformance/expected/context/extra_holds_list_parts.eye +2 -0
  168. package/test/conformance/expected/context/extra_holds_term_nested_order.eye +3 -0
  169. package/test/conformance/expected/control/extra_forall_bound_check.eye +1 -0
  170. package/test/conformance/expected/control/extra_forall_counterexample_fails.eye +0 -0
  171. package/test/conformance/expected/control/extra_not_unbound_existing_goal_fails.eye +0 -0
  172. package/test/conformance/expected/control/extra_not_unbound_unknown_goal_succeeds.eye +1 -0
  173. package/test/conformance/expected/control/extra_once_empty_fails.eye +0 -0
  174. package/test/conformance/expected/control/extra_once_preserves_binding.eye +1 -0
  175. package/test/conformance/expected/lists/extra_append_all_splits_three.eye +4 -0
  176. package/test/conformance/expected/lists/extra_append_to_improper_tail.eye +1 -0
  177. package/test/conformance/expected/lists/extra_drop_all.eye +1 -0
  178. package/test/conformance/expected/lists/extra_head_and_rest_improper.eye +1 -0
  179. package/test/conformance/expected/lists/extra_last_singleton.eye +1 -0
  180. package/test/conformance/expected/lists/extra_length_improper_fails.eye +0 -0
  181. package/test/conformance/expected/lists/extra_list_to_set_stable_order.eye +1 -0
  182. package/test/conformance/expected/lists/extra_member_repeated_nested.eye +2 -0
  183. package/test/conformance/expected/lists/extra_not_member_compound_fails.eye +0 -0
  184. package/test/conformance/expected/lists/extra_not_member_compound_success.eye +1 -0
  185. package/test/conformance/expected/lists/extra_nth0_duplicate_indexes.eye +2 -0
  186. package/test/conformance/expected/lists/extra_reverse_nested_terms.eye +1 -0
  187. package/test/conformance/expected/lists/extra_select_structured_duplicate.eye +2 -0
  188. package/test/conformance/expected/lists/extra_slice_end.eye +1 -0
  189. package/test/conformance/expected/lists/extra_sort_iri_atoms.eye +1 -0
  190. package/test/conformance/expected/lists/extra_take_all.eye +1 -0
  191. package/test/conformance/expected/materialize/extra_materialize_derived_only_with_same_source.eye +1 -0
  192. package/test/conformance/expected/materialize/extra_materialize_selects_arity.eye +0 -0
  193. package/test/conformance/expected/negation/extra_not_with_bound_fails.eye +0 -0
  194. package/test/conformance/expected/negation/extra_not_with_bound_success.eye +1 -0
  195. package/test/conformance/expected/rules/extra_left_to_right_multiple_bindings.eye +2 -0
  196. package/test/conformance/expected/rules/extra_structured_head_rule.eye +1 -0
  197. package/test/conformance/expected/strings/extra_atom_string_number_input.eye +1 -0
  198. package/test/conformance/expected/strings/extra_join_empty_list.eye +1 -0
  199. package/test/conformance/expected/strings/extra_join_iri_and_atom.eye +1 -0
  200. package/test/conformance/expected/strings/extra_lowercase_iri_atom.eye +1 -0
  201. package/test/conformance/expected/strings/extra_matches_invalid_pattern_fails.eye +0 -0
  202. package/test/conformance/expected/strings/extra_named_regex_optional_missing.eye +1 -0
  203. package/test/conformance/expected/strings/extra_number_string_atom_input.eye +1 -0
  204. package/test/conformance/expected/strings/extra_replace_multiple.eye +1 -0
  205. package/test/conformance/expected/strings/extra_split_empty_separator.eye +1 -0
  206. package/test/conformance/expected/strings/extra_substring_last_char.eye +1 -0
  207. package/test/conformance/expected/strings/extra_term_string_iri_list.eye +1 -0
  208. package/test/conformance/expected/strings/extra_uppercase_mixed_string.eye +1 -0
  209. package/test/conformance/expected/syntax/extra_comments_after_terms.eye +0 -0
  210. package/test/conformance/expected/syntax/extra_nested_parenthesized_body.eye +1 -0
  211. package/test/conformance/expected/table/extra_table_bound_cycle.eye +2 -0
  212. package/test/conformance/expected/table/extra_table_open_call_fallback.eye +2 -0
  213. package/test/conformance/expected/terms/extra_arg_atom_fails.eye +0 -0
  214. package/test/conformance/expected/terms/extra_arg_first_last.eye +1 -0
  215. package/test/conformance/expected/terms/extra_arg_zero_fails.eye +0 -0
  216. package/test/conformance/expected/terms/extra_compound_name_arguments_bad_args_fails.eye +0 -0
  217. package/test/conformance/expected/terms/extra_compound_name_arguments_construct_atom_zero.eye +1 -0
  218. package/test/conformance/expected/terms/extra_compound_name_arguments_construct_iri.eye +1 -0
  219. package/test/conformance/expected/terms/extra_compound_name_arguments_decompose_list.eye +1 -0
  220. package/test/conformance/expected/terms/extra_functor_list_cons.eye +1 -0
  221. package/test/conformance/expected/terms/extra_functor_number_scalar.eye +1 -0
  222. package/test/conformance/expected/terms/extra_functor_string_scalar.eye +1 -0
  223. package/test/conformance/expected/terms/herbrand_witness_different_inputs_distinct.eye +1 -0
  224. package/test/conformance/expected/terms/herbrand_witness_one_input.eye +2 -0
  225. package/test/conformance/expected/terms/herbrand_witness_same_inputs_same_term.eye +1 -0
  226. package/test/conformance/expected/terms/herbrand_witness_two_inputs.eye +2 -0
  227. package/test/conformance/expected/unification/extra_eq_iri_and_quoted_atom.eye +1 -0
  228. package/test/conformance/expected/unification/extra_eq_list_tail_binding.eye +1 -0
  229. package/test/conformance/expected/unification/extra_eq_nested_repeated_fails.eye +0 -0
  230. package/test/conformance/expected/unification/extra_eq_nested_repeated_success.eye +1 -0
  231. package/test/conformance/expected/unification/extra_eq_scalar_number_atom.eye +1 -0
  232. package/test/conformance/expected/unification/extra_eq_scalar_string_number.eye +1 -0
  233. package/test/conformance/expected/unification/extra_neq_compound_arity_mismatch.eye +1 -0
  234. package/test/conformance/expected/unification/extra_neq_scalar_same_lexical_fails.eye +0 -0
  235. package/test/conformance/expected/unification/extra_variable_clause_locality.eye +2 -0
  236. package/test/conformance/expected/variables/extra_anonymous_not_reused.eye +1 -0
  237. package/test/conformance/expected/variables/extra_named_variable_reused.eye +1 -0
  238. package/test/conformance/expected/variables/extra_question_underscore_named_distinct.eye +1 -0
  239. package/test/conformance/expected/variables/extra_question_uppercase_named.eye +1 -0
  240. package/test/conformance/expected-errors/atoms/extra_angle_iri_backslash_rejected.txt +1 -0
  241. package/test/conformance/expected-errors/atoms/extra_angle_iri_pipe_rejected.txt +1 -0
  242. package/test/conformance/expected-errors/atoms/extra_angle_iri_quote_rejected.txt +1 -0
  243. package/test/conformance/expected-errors/lists/extra_missing_tail_after_bar.txt +1 -0
  244. package/test/conformance/expected-errors/lists/extra_unclosed_list_tail.txt +1 -0
  245. package/test/conformance/expected-errors/rules/extra_empty_head_with_body.txt +1 -0
  246. package/test/conformance/expected-errors/rules/extra_rule_without_body.txt +1 -0
  247. package/test/conformance/expected-errors/syntax/extra_bad_backtick_character.txt +1 -0
  248. package/test/conformance/expected-errors/syntax/extra_bad_iri_empty_body.txt +1 -0
  249. package/test/conformance/expected-errors/syntax/extra_bad_list_double_comma.txt +1 -0
  250. package/test/conformance/expected-errors/syntax/extra_bad_list_double_tail.txt +1 -0
  251. package/test/conformance/expected-errors/syntax/extra_bad_number_two_decimal_points.txt +1 -0
  252. package/test/conformance/expected-errors/syntax/extra_double_period_rejected.txt +1 -0
  253. package/test/conformance/expected-errors/syntax/extra_extra_closing_paren.txt +1 -0
  254. package/test/conformance/expected-errors/syntax/extra_missing_closing_rule_body.txt +1 -0
  255. package/test/conformance/expected-errors/syntax/extra_missing_head_rejected.txt +1 -0
  256. package/test/conformance/expected-errors/terms/extra_empty_nested_compound.txt +1 -0
  257. package/test/conformance/expected-errors/terms/extra_empty_top_level_compound.txt +1 -0
  258. package/test/conformance/expected-errors/variables/extra_bare_underscore_in_rule_head.txt +1 -0
  259. package/test/conformance/expected-errors/variables/extra_question_dash_variable.txt +1 -0
  260. package/test/conformance/expected-errors/variables/extra_uppercase_in_list.txt +1 -0
  261. package/test/conformance/expected-proofs/proofs/extra_aggregate_min.eye +16 -0
  262. package/test/conformance/expected-proofs/proofs/extra_compound_name_arguments.eye +16 -0
  263. package/test/conformance/expected-proofs/proofs/extra_eq_builtin.eye +16 -0
  264. package/test/conformance/expected-proofs/proofs/extra_findall_builtin.eye +16 -0
  265. package/test/conformance/expected-proofs/proofs/extra_forall_builtin.eye +15 -0
  266. package/test/conformance/expected-proofs/proofs/extra_holds_parts.eye +32 -0
  267. package/test/conformance/expected-proofs/proofs/extra_iri_join.eye +16 -0
  268. package/test/conformance/expected-proofs/proofs/extra_negation_success.eye +15 -0
  269. package/test/conformance/expected-proofs/proofs/extra_nested_list_binding.eye +16 -0
  270. package/test/conformance/expected-proofs/proofs/extra_once_member.eye +22 -0
  271. package/test/conformance/expected-proofs/proofs/extra_recursive_path.eye +59 -0
  272. package/test/conformance/expected-proofs/proofs/extra_table_path_bound.eye +57 -0
  273. package/test/conformance/expected-proofs/proofs/herbrand_witness.eye +16 -0
  274. package/test/conformance/expected-warnings/negation/extra_stratified_multiple_negations_quiet.eye +1 -0
  275. package/test/conformance/expected-warnings/negation/extra_stratified_multiple_negations_quiet.txt +0 -0
  276. package/test/conformance/expected-warnings/negation/extra_stratified_negation_with_table_quiet.eye +1 -0
  277. package/test/conformance/expected-warnings/negation/extra_stratified_negation_with_table_quiet.txt +0 -0
  278. package/test/conformance/expected-warnings/negation/extra_unstratified_indirect_self_with_fact.eye +0 -0
  279. package/test/conformance/expected-warnings/negation/extra_unstratified_indirect_self_with_fact.txt +2 -0
  280. package/test/conformance/expected-warnings/negation/extra_unstratified_positive_negative_loop.eye +0 -0
  281. package/test/conformance/expected-warnings/negation/extra_unstratified_positive_negative_loop.txt +2 -0
  282. package/test/conformance/expected-warnings/negation/extra_unstratified_three_cycle_all_negative.eye +0 -0
  283. package/test/conformance/expected-warnings/negation/extra_unstratified_three_cycle_all_negative.txt +4 -0
  284. package/test/conformance/expected-warnings/negation/extra_warning_preserves_empty_stdout.eye +0 -0
  285. package/test/conformance/expected-warnings/negation/extra_warning_preserves_empty_stdout.txt +3 -0
  286. package/test/conformance/proofs/proofs/extra_aggregate_min.eye +4 -0
  287. package/test/conformance/proofs/proofs/extra_compound_name_arguments.eye +2 -0
  288. package/test/conformance/proofs/proofs/extra_eq_builtin.eye +2 -0
  289. package/test/conformance/proofs/proofs/extra_findall_builtin.eye +4 -0
  290. package/test/conformance/proofs/proofs/extra_forall_builtin.eye +2 -0
  291. package/test/conformance/proofs/proofs/extra_holds_parts.eye +2 -0
  292. package/test/conformance/proofs/proofs/extra_iri_join.eye +2 -0
  293. package/test/conformance/proofs/proofs/extra_negation_success.eye +3 -0
  294. package/test/conformance/proofs/proofs/extra_nested_list_binding.eye +2 -0
  295. package/test/conformance/proofs/proofs/extra_once_member.eye +2 -0
  296. package/test/conformance/proofs/proofs/extra_recursive_path.eye +5 -0
  297. package/test/conformance/proofs/proofs/extra_table_path_bound.eye +7 -0
  298. package/test/conformance/proofs/proofs/herbrand_witness.eye +3 -0
  299. package/test/conformance/warnings/negation/extra_stratified_multiple_negations_quiet.eye +4 -0
  300. package/test/conformance/warnings/negation/extra_stratified_negation_with_table_quiet.eye +6 -0
  301. package/test/conformance/warnings/negation/extra_unstratified_indirect_self_with_fact.eye +5 -0
  302. package/test/conformance/warnings/negation/extra_unstratified_positive_negative_loop.eye +5 -0
  303. package/test/conformance/warnings/negation/extra_unstratified_three_cycle_all_negative.eye +5 -0
  304. package/test/conformance/warnings/negation/extra_warning_preserves_empty_stdout.eye +3 -0
  305. package/test/run-regression.mjs +1 -1
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(arg_atom_fails) :- arg(1, atom, ?_).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 3).
2
+ answer(arg_first_last, ?first, ?last) :- arg(1, triple(a, b, c), ?first), arg(3, triple(a, b, c), ?last).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(arg_zero_fails) :- arg(0, pair(a, b), ?_).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(compound_name_arguments_bad_args_fails) :- compound_name_arguments(?_, pair, not_a_list).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(compound_name_arguments_construct_atom_zero, ?x) :- compound_name_arguments(?x, nil, []).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(compound_name_arguments_construct_iri, ?x) :- compound_name_arguments(?x, <urn:example:pair>, [a, b]).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 3).
2
+ answer(compound_name_arguments_decompose_list, ?name, ?args) :- compound_name_arguments([a | b], ?name, ?args).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 3).
2
+ answer(functor_list_cons, ?name, ?arity) :- functor([a, b], ?name, ?arity).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 3).
2
+ answer(functor_number_scalar, ?name, ?arity) :- functor(123, ?name, ?arity).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 3).
2
+ answer(functor_string_scalar, ?name, ?arity) :- functor("hello", ?name, ?arity).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(true) :- neq(registration_of(alice, logic), registration_of(alice, math)).
@@ -0,0 +1,5 @@
1
+ % Existential-style consequence with one universal variable represented as a Herbrand term.
2
+ materialize(answer, 2).
3
+ person(alice).
4
+ person(bob).
5
+ answer(?child, parent_of(?child)) :- person(?child).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(true) :- eq(parent_of(alice), parent_of(alice)).
@@ -0,0 +1,5 @@
1
+ % Existential-style consequence with two universal variables represented as a Herbrand term.
2
+ materialize(answer, 3).
3
+ takes(alice, logic).
4
+ takes(alice, math).
5
+ answer(?student, ?course, registration_of(?student, ?course)) :- takes(?student, ?course).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(eq_iri_and_quoted_atom) :- eq(<urn:example:a>, 'urn:example:a').
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(eq_list_tail_binding, ?tail) :- eq([a, b | ?tail], [a, b, c, d]).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(eq_nested_repeated_fails) :- eq(pair(?x, ?x), pair(a, b)).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(eq_nested_repeated_success, ?x) :- eq(pair(?x, ?x), pair(a, a)).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(eq_scalar_number_atom) :- eq(7, '7').
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(eq_scalar_string_number) :- eq("7", 7).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(neq_compound_arity_mismatch) :- neq(f(a), f(a, b)).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(neq_scalar_same_lexical_fails) :- neq("7", 7).
@@ -0,0 +1,4 @@
1
+ materialize(answer, 2).
2
+ answer(variable_clause_locality, ?x) :- one(?x).
3
+ one(a).
4
+ one(b).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(anonymous_not_reused) :- eq(pair(?_, ?_), pair(a, b)).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(named_variable_reused) :- eq(pair(?x, ?x), pair(a, a)).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 3).
2
+ answer(question_underscore_named_distinct, ?_x, ?_y) :- eq(?_x, a), eq(?_y, b).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(question_uppercase_named, ?X) :- eq(?X, ok).
@@ -0,0 +1 @@
1
+ p(<urn:example:\bad>).
@@ -0,0 +1 @@
1
+ p(<urn:example:|bad>).
@@ -0,0 +1 @@
1
+ p(<urn:example:"bad">).
@@ -0,0 +1 @@
1
+ p(<urn:example:bad{}>).
@@ -0,0 +1 @@
1
+ answer(aggregate_max_iri_key, <urn:example:z>, high).
@@ -0,0 +1 @@
1
+ answer(aggregate_min_tie_first, 1, keep).
@@ -0,0 +1 @@
1
+ answer(countall_with_filter, 2).
@@ -0,0 +1 @@
1
+ answer(findall_repeated_template, [pair(a, a), pair(b, b)]).
@@ -0,0 +1 @@
1
+ answer(sumall_float_template, 3.75).
@@ -0,0 +1 @@
1
+ answer(acos_one, 0.0).
@@ -0,0 +1 @@
1
+ answer(asin_zero, 0.0).
@@ -0,0 +1 @@
1
+ answer(atan2_axis, 0.0).
@@ -0,0 +1 @@
1
+ answer(difference_leap_day, "P2D").
@@ -0,0 +1 @@
1
+ answer(difference_same_day, "P0D").
@@ -0,0 +1 @@
1
+ answer(div_float_exact, 3.0).
@@ -0,0 +1 @@
1
+ answer(div_integer_trunc, 3).
@@ -0,0 +1 @@
1
+ answer(exp_zero, 1.0).
@@ -0,0 +1 @@
1
+ answer(ge_equal_duration).
@@ -0,0 +1 @@
1
+ answer(le_equal_string).
@@ -0,0 +1 @@
1
+ answer(log_one, 0.0).
@@ -0,0 +1 @@
1
+ answer(mod_negative_right, 1).
@@ -0,0 +1 @@
1
+ answer(pow_large_integer, 1024).
@@ -0,0 +1 @@
1
+ answer(eq_binds_both_sides, a, b).
@@ -0,0 +1 @@
1
+ answer(neq_different_iri_atoms).
@@ -0,0 +1,2 @@
1
+ answer(holds_atom_parts, ready, []).
2
+ answer(holds_atom_parts, box, [a]).
@@ -0,0 +1,2 @@
1
+ answer(holds_list_parts, '.', [a, [b]]).
2
+ answer(holds_list_parts, tail, []).
@@ -0,0 +1,3 @@
1
+ answer(holds_term_nested_order, a).
2
+ answer(holds_term_nested_order, b).
3
+ answer(holds_term_nested_order, c).
@@ -0,0 +1 @@
1
+ answer(forall_bound_check).
@@ -0,0 +1 @@
1
+ answer(not_unbound_unknown_goal_succeeds).
@@ -0,0 +1 @@
1
+ answer(once_preserves_binding, a).
@@ -0,0 +1,4 @@
1
+ answer(append_split, pair([], [a, b, c])).
2
+ answer(append_split, pair([a], [b, c])).
3
+ answer(append_split, pair([a, b], [c])).
4
+ answer(append_split, pair([a, b, c], [])).
@@ -0,0 +1 @@
1
+ answer(append_to_improper_tail, [a, b | tail]).
@@ -0,0 +1 @@
1
+ answer(drop_all, []).
@@ -0,0 +1 @@
1
+ answer(head_and_rest_improper, a, b).
@@ -0,0 +1 @@
1
+ answer(last_singleton, only).
@@ -0,0 +1 @@
1
+ answer(list_to_set_stable_order, [b, a, c]).
@@ -0,0 +1,2 @@
1
+ answer(member_repeated_nested, a).
2
+ answer(member_repeated_nested, b).
@@ -0,0 +1 @@
1
+ answer(not_member_compound_success).
@@ -0,0 +1,2 @@
1
+ answer(nth0_duplicate_index, 0).
2
+ answer(nth0_duplicate_index, 2).
@@ -0,0 +1 @@
1
+ answer(reverse_nested_terms, [<urn:example:d>, [b, c], box(a)]).
@@ -0,0 +1,2 @@
1
+ answer(select_structured_duplicate, [box(b), box(a)]).
2
+ answer(select_structured_duplicate, [box(a), box(b)]).
@@ -0,0 +1 @@
1
+ answer(slice_end, [c, d]).
@@ -0,0 +1 @@
1
+ answer(sort_iri_atoms, [<urn:example:a>, <urn:example:b>]).
@@ -0,0 +1 @@
1
+ answer(take_all, [a, b, c]).
@@ -0,0 +1 @@
1
+ answer(not_with_bound_success, b).
@@ -0,0 +1,2 @@
1
+ answer(left_to_right_multiple_bindings, a, one).
2
+ answer(left_to_right_multiple_bindings, a, two).
@@ -0,0 +1 @@
1
+ answer(structured_head_rule, a).
@@ -0,0 +1 @@
1
+ answer(atom_string_number_input, '42').
@@ -0,0 +1 @@
1
+ answer(join_empty_list, "").
@@ -0,0 +1 @@
1
+ answer(join_iri_and_atom, "urn:example:a/path/7").
@@ -0,0 +1 @@
1
+ answer(lowercase_iri_atom, "urn:example:abc").
@@ -0,0 +1 @@
1
+ answer(named_regex_optional_missing, first("a")).
@@ -0,0 +1 @@
1
+ answer(number_string_atom_input, 42).
@@ -0,0 +1 @@
1
+ answer(replace_multiple, "baNANA").
@@ -0,0 +1 @@
1
+ answer(split_empty_separator, ["a", "b"]).
@@ -0,0 +1 @@
1
+ answer(substring_last_char, "d").
@@ -0,0 +1 @@
1
+ answer(term_string_iri_list, "[<urn:example:a>, box(\"B\")]").
@@ -0,0 +1 @@
1
+ answer(uppercase_mixed_string, "ABC-1").
@@ -0,0 +1 @@
1
+ answer(nested_parenthesized_body).
@@ -0,0 +1,2 @@
1
+ reach(a, b).
2
+ reach(a, a).
@@ -0,0 +1,2 @@
1
+ answer(table_open_call_fallback, pair(a, b)).
2
+ answer(table_open_call_fallback, pair(b, c)).
@@ -0,0 +1 @@
1
+ answer(arg_first_last, a, c).
@@ -0,0 +1 @@
1
+ answer(compound_name_arguments_construct_atom_zero, nil).
@@ -0,0 +1 @@
1
+ answer(compound_name_arguments_construct_iri, <urn:example:pair>(a, b)).
@@ -0,0 +1 @@
1
+ answer(compound_name_arguments_decompose_list, '.', [a, b]).
@@ -0,0 +1 @@
1
+ answer(functor_list_cons, '.', 2).
@@ -0,0 +1 @@
1
+ answer(functor_number_scalar, 123, 0).
@@ -0,0 +1 @@
1
+ answer(functor_string_scalar, "hello", 0).
@@ -0,0 +1,2 @@
1
+ answer(alice, parent_of(alice)).
2
+ answer(bob, parent_of(bob)).
@@ -0,0 +1,2 @@
1
+ answer(alice, logic, registration_of(alice, logic)).
2
+ answer(alice, math, registration_of(alice, math)).
@@ -0,0 +1 @@
1
+ answer(eq_iri_and_quoted_atom).
@@ -0,0 +1 @@
1
+ answer(eq_list_tail_binding, [c, d]).
@@ -0,0 +1 @@
1
+ answer(eq_nested_repeated_success, a).
@@ -0,0 +1 @@
1
+ answer(eq_scalar_number_atom).
@@ -0,0 +1 @@
1
+ answer(eq_scalar_string_number).
@@ -0,0 +1 @@
1
+ answer(neq_compound_arity_mismatch).
@@ -0,0 +1,2 @@
1
+ answer(variable_clause_locality, a).
2
+ answer(variable_clause_locality, b).
@@ -0,0 +1 @@
1
+ answer(anonymous_not_reused).
@@ -0,0 +1 @@
1
+ answer(named_variable_reused).
@@ -0,0 +1 @@
1
+ answer(question_underscore_named_distinct, a, b).
@@ -0,0 +1 @@
1
+ answer(question_uppercase_named, ok).
@@ -0,0 +1 @@
1
+ parse line 1: expected ), got urn
@@ -0,0 +1 @@
1
+ parse line 1: expected ), got urn
@@ -0,0 +1 @@
1
+ parse line 1: expected ), got urn
@@ -0,0 +1 @@
1
+ parse line 1: expected ], got )
@@ -0,0 +1 @@
1
+ parse line 1: bad term
@@ -0,0 +1 @@
1
+ parse line 1: bad character "`"
@@ -0,0 +1 @@
1
+ parse line 1: expected ), got urn
@@ -0,0 +1 @@
1
+ parse line 1: expected ], got |