eyelang 1.7.6 → 1.7.8

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 (540) hide show
  1. package/conformance-report.md +19 -20
  2. package/package.json +1 -1
  3. package/test/conformance/README.md +2 -0
  4. package/test/conformance/cases/aggregation/extra_aggregate_max_iri_key.eye +4 -0
  5. package/test/conformance/cases/aggregation/extra_aggregate_min_tie_first.eye +5 -0
  6. package/test/conformance/cases/aggregation/extra_countall_with_filter.eye +5 -0
  7. package/test/conformance/cases/aggregation/extra_findall_repeated_template.eye +4 -0
  8. package/test/conformance/cases/aggregation/extra_sumall_float_template.eye +4 -0
  9. package/test/conformance/cases/arithmetic/extra_acos_one.eye +2 -0
  10. package/test/conformance/cases/arithmetic/extra_asin_zero.eye +2 -0
  11. package/test/conformance/cases/arithmetic/extra_atan2_axis.eye +2 -0
  12. package/test/conformance/cases/arithmetic/extra_difference_leap_day.eye +2 -0
  13. package/test/conformance/cases/arithmetic/extra_difference_same_day.eye +2 -0
  14. package/test/conformance/cases/arithmetic/extra_div_float_exact.eye +2 -0
  15. package/test/conformance/cases/arithmetic/extra_div_integer_trunc.eye +2 -0
  16. package/test/conformance/cases/arithmetic/extra_division_by_zero_fails.eye +2 -0
  17. package/test/conformance/cases/arithmetic/extra_exp_zero.eye +2 -0
  18. package/test/conformance/cases/arithmetic/extra_ge_equal_duration.eye +2 -0
  19. package/test/conformance/cases/arithmetic/extra_le_equal_string.eye +2 -0
  20. package/test/conformance/cases/arithmetic/extra_log_one.eye +2 -0
  21. package/test/conformance/cases/arithmetic/extra_mod_negative_right.eye +2 -0
  22. package/test/conformance/cases/arithmetic/extra_pow_large_integer.eye +2 -0
  23. package/test/conformance/cases/atoms/extra_graphic_backslash_atom.eye +2 -0
  24. package/test/conformance/cases/atoms/extra_iri_mailto_plus.eye +2 -0
  25. package/test/conformance/cases/atoms/extra_iri_uuid_scheme.eye +2 -0
  26. package/test/conformance/cases/atoms/extra_quoted_atom_with_quote_readback.eye +2 -0
  27. package/test/conformance/cases/builtins/extra_difference_end_before_start_fails.eye +2 -0
  28. package/test/conformance/cases/builtins/extra_difference_invalid_date_fails.eye +2 -0
  29. package/test/conformance/cases/builtins/extra_eq_binds_both_sides.eye +2 -0
  30. package/test/conformance/cases/builtins/extra_neq_different_iri_atoms.eye +2 -0
  31. package/test/conformance/cases/builtins/extra_neq_same_iri_fails.eye +2 -0
  32. package/test/conformance/cases/context/extra_holds_atom_parts.eye +2 -0
  33. package/test/conformance/cases/context/extra_holds_ignores_string_parts.eye +2 -0
  34. package/test/conformance/cases/context/extra_holds_list_parts.eye +2 -0
  35. package/test/conformance/cases/context/extra_holds_term_nested_order.eye +2 -0
  36. package/test/conformance/cases/control/extra_forall_bound_check.eye +2 -0
  37. package/test/conformance/cases/control/extra_forall_counterexample_fails.eye +2 -0
  38. package/test/conformance/cases/control/extra_not_unbound_existing_goal_fails.eye +3 -0
  39. package/test/conformance/cases/control/extra_not_unbound_unknown_goal_succeeds.eye +2 -0
  40. package/test/conformance/cases/control/extra_once_empty_fails.eye +2 -0
  41. package/test/conformance/cases/control/extra_once_preserves_binding.eye +2 -0
  42. package/test/conformance/cases/lists/extra_append_all_splits_three.eye +2 -0
  43. package/test/conformance/cases/lists/extra_append_to_improper_tail.eye +2 -0
  44. package/test/conformance/cases/lists/extra_drop_all.eye +2 -0
  45. package/test/conformance/cases/lists/extra_head_and_rest_improper.eye +2 -0
  46. package/test/conformance/cases/lists/extra_last_singleton.eye +2 -0
  47. package/test/conformance/cases/lists/extra_length_improper_fails.eye +2 -0
  48. package/test/conformance/cases/lists/extra_list_to_set_stable_order.eye +2 -0
  49. package/test/conformance/cases/lists/extra_member_repeated_nested.eye +2 -0
  50. package/test/conformance/cases/lists/extra_not_member_compound_fails.eye +2 -0
  51. package/test/conformance/cases/lists/extra_not_member_compound_success.eye +2 -0
  52. package/test/conformance/cases/lists/extra_nth0_duplicate_indexes.eye +2 -0
  53. package/test/conformance/cases/lists/extra_reverse_nested_terms.eye +2 -0
  54. package/test/conformance/cases/lists/extra_select_structured_duplicate.eye +2 -0
  55. package/test/conformance/cases/lists/extra_slice_end.eye +2 -0
  56. package/test/conformance/cases/lists/extra_sort_iri_atoms.eye +2 -0
  57. package/test/conformance/cases/lists/extra_take_all.eye +2 -0
  58. package/test/conformance/cases/materialize/extra_materialize_derived_only_with_same_source.eye +4 -0
  59. package/test/conformance/cases/materialize/extra_materialize_selects_arity.eye +4 -0
  60. package/test/conformance/cases/negation/extra_not_with_bound_fails.eye +3 -0
  61. package/test/conformance/cases/negation/extra_not_with_bound_success.eye +3 -0
  62. package/test/conformance/cases/rules/extra_left_to_right_multiple_bindings.eye +5 -0
  63. package/test/conformance/cases/rules/extra_structured_head_rule.eye +3 -0
  64. package/test/conformance/cases/strings/extra_atom_string_number_input.eye +2 -0
  65. package/test/conformance/cases/strings/extra_join_empty_list.eye +2 -0
  66. package/test/conformance/cases/strings/extra_join_iri_and_atom.eye +2 -0
  67. package/test/conformance/cases/strings/extra_lowercase_iri_atom.eye +2 -0
  68. package/test/conformance/cases/strings/extra_matches_invalid_pattern_fails.eye +2 -0
  69. package/test/conformance/cases/strings/extra_named_regex_optional_missing.eye +2 -0
  70. package/test/conformance/cases/strings/extra_number_string_atom_input.eye +2 -0
  71. package/test/conformance/cases/strings/extra_replace_multiple.eye +2 -0
  72. package/test/conformance/cases/strings/extra_split_empty_separator.eye +2 -0
  73. package/test/conformance/cases/strings/extra_substring_last_char.eye +2 -0
  74. package/test/conformance/cases/strings/extra_term_string_iri_list.eye +2 -0
  75. package/test/conformance/cases/strings/extra_uppercase_mixed_string.eye +2 -0
  76. package/test/conformance/cases/syntax/extra_comments_after_terms.eye +3 -0
  77. package/test/conformance/cases/syntax/extra_nested_parenthesized_body.eye +2 -0
  78. package/test/conformance/cases/table/extra_table_bound_cycle.eye +7 -0
  79. package/test/conformance/cases/table/extra_table_open_call_fallback.eye +5 -0
  80. package/test/conformance/cases/terms/extra_arg_atom_fails.eye +2 -0
  81. package/test/conformance/cases/terms/extra_arg_first_last.eye +2 -0
  82. package/test/conformance/cases/terms/extra_arg_zero_fails.eye +2 -0
  83. package/test/conformance/cases/terms/extra_compound_name_arguments_bad_args_fails.eye +2 -0
  84. package/test/conformance/cases/terms/extra_compound_name_arguments_construct_atom_zero.eye +2 -0
  85. package/test/conformance/cases/terms/extra_compound_name_arguments_construct_iri.eye +2 -0
  86. package/test/conformance/cases/terms/extra_compound_name_arguments_decompose_list.eye +2 -0
  87. package/test/conformance/cases/terms/extra_functor_list_cons.eye +2 -0
  88. package/test/conformance/cases/terms/extra_functor_number_scalar.eye +2 -0
  89. package/test/conformance/cases/terms/extra_functor_string_scalar.eye +2 -0
  90. package/test/conformance/cases/unification/extra_eq_iri_and_quoted_atom.eye +2 -0
  91. package/test/conformance/cases/unification/extra_eq_list_tail_binding.eye +2 -0
  92. package/test/conformance/cases/unification/extra_eq_nested_repeated_fails.eye +2 -0
  93. package/test/conformance/cases/unification/extra_eq_nested_repeated_success.eye +2 -0
  94. package/test/conformance/cases/unification/extra_eq_scalar_number_atom.eye +2 -0
  95. package/test/conformance/cases/unification/extra_eq_scalar_string_number.eye +2 -0
  96. package/test/conformance/cases/unification/extra_neq_compound_arity_mismatch.eye +2 -0
  97. package/test/conformance/cases/unification/extra_neq_scalar_same_lexical_fails.eye +2 -0
  98. package/test/conformance/cases/unification/extra_variable_clause_locality.eye +4 -0
  99. package/test/conformance/cases/variables/extra_anonymous_not_reused.eye +2 -0
  100. package/test/conformance/cases/variables/extra_named_variable_reused.eye +2 -0
  101. package/test/conformance/cases/variables/extra_question_underscore_named_distinct.eye +2 -0
  102. package/test/conformance/cases/variables/extra_question_uppercase_named.eye +2 -0
  103. package/test/conformance/errors/atoms/extra_angle_iri_backslash_rejected.eye +1 -0
  104. package/test/conformance/errors/atoms/extra_angle_iri_pipe_rejected.eye +1 -0
  105. package/test/conformance/errors/atoms/extra_angle_iri_quote_rejected.eye +1 -0
  106. package/test/conformance/errors/lists/extra_missing_tail_after_bar.eye +1 -0
  107. package/test/conformance/errors/lists/extra_unclosed_list_tail.eye +1 -0
  108. package/test/conformance/errors/rules/extra_empty_head_with_body.eye +1 -0
  109. package/test/conformance/errors/rules/extra_rule_without_body.eye +1 -0
  110. package/test/conformance/errors/syntax/extra_bad_backtick_character.eye +1 -0
  111. package/test/conformance/errors/syntax/extra_bad_iri_empty_body.eye +1 -0
  112. package/test/conformance/errors/syntax/extra_bad_list_double_comma.eye +1 -0
  113. package/test/conformance/errors/syntax/extra_bad_list_double_tail.eye +1 -0
  114. package/test/conformance/errors/syntax/extra_bad_number_two_decimal_points.eye +1 -0
  115. package/test/conformance/errors/syntax/extra_double_period_rejected.eye +1 -0
  116. package/test/conformance/errors/syntax/extra_extra_closing_paren.eye +1 -0
  117. package/test/conformance/errors/syntax/extra_missing_closing_rule_body.eye +1 -0
  118. package/test/conformance/errors/syntax/extra_missing_head_rejected.eye +1 -0
  119. package/test/conformance/errors/terms/extra_empty_nested_compound.eye +1 -0
  120. package/test/conformance/errors/terms/extra_empty_top_level_compound.eye +1 -0
  121. package/test/conformance/errors/variables/extra_bare_underscore_in_rule_head.eye +1 -0
  122. package/test/conformance/errors/variables/extra_question_dash_variable.eye +1 -0
  123. package/test/conformance/errors/variables/extra_uppercase_in_list.eye +1 -0
  124. package/test/conformance/expected/aggregation/extra_aggregate_max_iri_key.eye +1 -0
  125. package/test/conformance/expected/aggregation/extra_aggregate_min_tie_first.eye +1 -0
  126. package/test/conformance/expected/aggregation/extra_countall_with_filter.eye +1 -0
  127. package/test/conformance/expected/aggregation/extra_findall_repeated_template.eye +1 -0
  128. package/test/conformance/expected/aggregation/extra_sumall_float_template.eye +1 -0
  129. package/test/conformance/expected/arithmetic/extra_acos_one.eye +1 -0
  130. package/test/conformance/expected/arithmetic/extra_asin_zero.eye +1 -0
  131. package/test/conformance/expected/arithmetic/extra_atan2_axis.eye +1 -0
  132. package/test/conformance/expected/arithmetic/extra_difference_leap_day.eye +1 -0
  133. package/test/conformance/expected/arithmetic/extra_difference_same_day.eye +1 -0
  134. package/test/conformance/expected/arithmetic/extra_div_float_exact.eye +1 -0
  135. package/test/conformance/expected/arithmetic/extra_div_integer_trunc.eye +1 -0
  136. package/test/conformance/expected/arithmetic/extra_division_by_zero_fails.eye +0 -0
  137. package/test/conformance/expected/arithmetic/extra_exp_zero.eye +1 -0
  138. package/test/conformance/expected/arithmetic/extra_ge_equal_duration.eye +1 -0
  139. package/test/conformance/expected/arithmetic/extra_le_equal_string.eye +1 -0
  140. package/test/conformance/expected/arithmetic/extra_log_one.eye +1 -0
  141. package/test/conformance/expected/arithmetic/extra_mod_negative_right.eye +1 -0
  142. package/test/conformance/expected/arithmetic/extra_pow_large_integer.eye +1 -0
  143. package/test/conformance/expected/atoms/extra_graphic_backslash_atom.eye +0 -0
  144. package/test/conformance/expected/atoms/extra_iri_mailto_plus.eye +0 -0
  145. package/test/conformance/expected/atoms/extra_iri_uuid_scheme.eye +0 -0
  146. package/test/conformance/expected/atoms/extra_quoted_atom_with_quote_readback.eye +0 -0
  147. package/test/conformance/expected/builtins/extra_difference_end_before_start_fails.eye +0 -0
  148. package/test/conformance/expected/builtins/extra_difference_invalid_date_fails.eye +0 -0
  149. package/test/conformance/expected/builtins/extra_eq_binds_both_sides.eye +1 -0
  150. package/test/conformance/expected/builtins/extra_neq_different_iri_atoms.eye +1 -0
  151. package/test/conformance/expected/builtins/extra_neq_same_iri_fails.eye +0 -0
  152. package/test/conformance/expected/context/extra_holds_atom_parts.eye +2 -0
  153. package/test/conformance/expected/context/extra_holds_ignores_string_parts.eye +0 -0
  154. package/test/conformance/expected/context/extra_holds_list_parts.eye +2 -0
  155. package/test/conformance/expected/context/extra_holds_term_nested_order.eye +3 -0
  156. package/test/conformance/expected/control/extra_forall_bound_check.eye +1 -0
  157. package/test/conformance/expected/control/extra_forall_counterexample_fails.eye +0 -0
  158. package/test/conformance/expected/control/extra_not_unbound_existing_goal_fails.eye +0 -0
  159. package/test/conformance/expected/control/extra_not_unbound_unknown_goal_succeeds.eye +1 -0
  160. package/test/conformance/expected/control/extra_once_empty_fails.eye +0 -0
  161. package/test/conformance/expected/control/extra_once_preserves_binding.eye +1 -0
  162. package/test/conformance/expected/lists/extra_append_all_splits_three.eye +4 -0
  163. package/test/conformance/expected/lists/extra_append_to_improper_tail.eye +1 -0
  164. package/test/conformance/expected/lists/extra_drop_all.eye +1 -0
  165. package/test/conformance/expected/lists/extra_head_and_rest_improper.eye +1 -0
  166. package/test/conformance/expected/lists/extra_last_singleton.eye +1 -0
  167. package/test/conformance/expected/lists/extra_length_improper_fails.eye +0 -0
  168. package/test/conformance/expected/lists/extra_list_to_set_stable_order.eye +1 -0
  169. package/test/conformance/expected/lists/extra_member_repeated_nested.eye +2 -0
  170. package/test/conformance/expected/lists/extra_not_member_compound_fails.eye +0 -0
  171. package/test/conformance/expected/lists/extra_not_member_compound_success.eye +1 -0
  172. package/test/conformance/expected/lists/extra_nth0_duplicate_indexes.eye +2 -0
  173. package/test/conformance/expected/lists/extra_reverse_nested_terms.eye +1 -0
  174. package/test/conformance/expected/lists/extra_select_structured_duplicate.eye +2 -0
  175. package/test/conformance/expected/lists/extra_slice_end.eye +1 -0
  176. package/test/conformance/expected/lists/extra_sort_iri_atoms.eye +1 -0
  177. package/test/conformance/expected/lists/extra_take_all.eye +1 -0
  178. package/test/conformance/expected/materialize/extra_materialize_derived_only_with_same_source.eye +1 -0
  179. package/test/conformance/expected/materialize/extra_materialize_selects_arity.eye +0 -0
  180. package/test/conformance/expected/negation/extra_not_with_bound_fails.eye +0 -0
  181. package/test/conformance/expected/negation/extra_not_with_bound_success.eye +1 -0
  182. package/test/conformance/expected/rules/extra_left_to_right_multiple_bindings.eye +2 -0
  183. package/test/conformance/expected/rules/extra_structured_head_rule.eye +1 -0
  184. package/test/conformance/expected/strings/extra_atom_string_number_input.eye +1 -0
  185. package/test/conformance/expected/strings/extra_join_empty_list.eye +1 -0
  186. package/test/conformance/expected/strings/extra_join_iri_and_atom.eye +1 -0
  187. package/test/conformance/expected/strings/extra_lowercase_iri_atom.eye +1 -0
  188. package/test/conformance/expected/strings/extra_matches_invalid_pattern_fails.eye +0 -0
  189. package/test/conformance/expected/strings/extra_named_regex_optional_missing.eye +1 -0
  190. package/test/conformance/expected/strings/extra_number_string_atom_input.eye +1 -0
  191. package/test/conformance/expected/strings/extra_replace_multiple.eye +1 -0
  192. package/test/conformance/expected/strings/extra_split_empty_separator.eye +1 -0
  193. package/test/conformance/expected/strings/extra_substring_last_char.eye +1 -0
  194. package/test/conformance/expected/strings/extra_term_string_iri_list.eye +1 -0
  195. package/test/conformance/expected/strings/extra_uppercase_mixed_string.eye +1 -0
  196. package/test/conformance/expected/syntax/extra_comments_after_terms.eye +0 -0
  197. package/test/conformance/expected/syntax/extra_nested_parenthesized_body.eye +1 -0
  198. package/test/conformance/expected/table/extra_table_bound_cycle.eye +2 -0
  199. package/test/conformance/expected/table/extra_table_open_call_fallback.eye +2 -0
  200. package/test/conformance/expected/terms/extra_arg_atom_fails.eye +0 -0
  201. package/test/conformance/expected/terms/extra_arg_first_last.eye +1 -0
  202. package/test/conformance/expected/terms/extra_arg_zero_fails.eye +0 -0
  203. package/test/conformance/expected/terms/extra_compound_name_arguments_bad_args_fails.eye +0 -0
  204. package/test/conformance/expected/terms/extra_compound_name_arguments_construct_atom_zero.eye +1 -0
  205. package/test/conformance/expected/terms/extra_compound_name_arguments_construct_iri.eye +1 -0
  206. package/test/conformance/expected/terms/extra_compound_name_arguments_decompose_list.eye +1 -0
  207. package/test/conformance/expected/terms/extra_functor_list_cons.eye +1 -0
  208. package/test/conformance/expected/terms/extra_functor_number_scalar.eye +1 -0
  209. package/test/conformance/expected/terms/extra_functor_string_scalar.eye +1 -0
  210. package/test/conformance/expected/unification/extra_eq_iri_and_quoted_atom.eye +1 -0
  211. package/test/conformance/expected/unification/extra_eq_list_tail_binding.eye +1 -0
  212. package/test/conformance/expected/unification/extra_eq_nested_repeated_fails.eye +0 -0
  213. package/test/conformance/expected/unification/extra_eq_nested_repeated_success.eye +1 -0
  214. package/test/conformance/expected/unification/extra_eq_scalar_number_atom.eye +1 -0
  215. package/test/conformance/expected/unification/extra_eq_scalar_string_number.eye +1 -0
  216. package/test/conformance/expected/unification/extra_neq_compound_arity_mismatch.eye +1 -0
  217. package/test/conformance/expected/unification/extra_neq_scalar_same_lexical_fails.eye +0 -0
  218. package/test/conformance/expected/unification/extra_variable_clause_locality.eye +2 -0
  219. package/test/conformance/expected/variables/extra_anonymous_not_reused.eye +1 -0
  220. package/test/conformance/expected/variables/extra_named_variable_reused.eye +1 -0
  221. package/test/conformance/expected/variables/extra_question_underscore_named_distinct.eye +1 -0
  222. package/test/conformance/expected/variables/extra_question_uppercase_named.eye +1 -0
  223. package/test/conformance/expected-errors/atoms/extra_angle_iri_backslash_rejected.txt +1 -0
  224. package/test/conformance/expected-errors/atoms/extra_angle_iri_pipe_rejected.txt +1 -0
  225. package/test/conformance/expected-errors/atoms/extra_angle_iri_quote_rejected.txt +1 -0
  226. package/test/conformance/expected-errors/lists/extra_missing_tail_after_bar.txt +1 -0
  227. package/test/conformance/expected-errors/lists/extra_unclosed_list_tail.txt +1 -0
  228. package/test/conformance/expected-errors/rules/extra_empty_head_with_body.txt +1 -0
  229. package/test/conformance/expected-errors/rules/extra_rule_without_body.txt +1 -0
  230. package/test/conformance/expected-errors/syntax/extra_bad_backtick_character.txt +1 -0
  231. package/test/conformance/expected-errors/syntax/extra_bad_iri_empty_body.txt +1 -0
  232. package/test/conformance/expected-errors/syntax/extra_bad_list_double_comma.txt +1 -0
  233. package/test/conformance/expected-errors/syntax/extra_bad_list_double_tail.txt +1 -0
  234. package/test/conformance/expected-errors/syntax/extra_bad_number_two_decimal_points.txt +1 -0
  235. package/test/conformance/expected-errors/syntax/extra_double_period_rejected.txt +1 -0
  236. package/test/conformance/expected-errors/syntax/extra_extra_closing_paren.txt +1 -0
  237. package/test/conformance/expected-errors/syntax/extra_missing_closing_rule_body.txt +1 -0
  238. package/test/conformance/expected-errors/syntax/extra_missing_head_rejected.txt +1 -0
  239. package/test/conformance/expected-errors/terms/extra_empty_nested_compound.txt +1 -0
  240. package/test/conformance/expected-errors/terms/extra_empty_top_level_compound.txt +1 -0
  241. package/test/conformance/expected-errors/variables/extra_bare_underscore_in_rule_head.txt +1 -0
  242. package/test/conformance/expected-errors/variables/extra_question_dash_variable.txt +1 -0
  243. package/test/conformance/expected-errors/variables/extra_uppercase_in_list.txt +1 -0
  244. package/test/conformance/expected-proofs/proofs/extra_aggregate_min.eye +16 -0
  245. package/test/conformance/expected-proofs/proofs/extra_compound_name_arguments.eye +16 -0
  246. package/test/conformance/expected-proofs/proofs/extra_eq_builtin.eye +16 -0
  247. package/test/conformance/expected-proofs/proofs/extra_findall_builtin.eye +16 -0
  248. package/test/conformance/expected-proofs/proofs/extra_forall_builtin.eye +15 -0
  249. package/test/conformance/expected-proofs/proofs/extra_holds_parts.eye +32 -0
  250. package/test/conformance/expected-proofs/proofs/extra_iri_join.eye +16 -0
  251. package/test/conformance/expected-proofs/proofs/extra_negation_success.eye +15 -0
  252. package/test/conformance/expected-proofs/proofs/extra_nested_list_binding.eye +16 -0
  253. package/test/conformance/expected-proofs/proofs/extra_once_member.eye +22 -0
  254. package/test/conformance/expected-proofs/proofs/extra_recursive_path.eye +59 -0
  255. package/test/conformance/expected-proofs/proofs/extra_table_path_bound.eye +57 -0
  256. package/test/conformance/expected-warnings/negation/extra_stratified_multiple_negations_quiet.eye +1 -0
  257. package/test/conformance/expected-warnings/negation/extra_stratified_multiple_negations_quiet.txt +0 -0
  258. package/test/conformance/expected-warnings/negation/extra_stratified_negation_with_table_quiet.eye +1 -0
  259. package/test/conformance/expected-warnings/negation/extra_stratified_negation_with_table_quiet.txt +0 -0
  260. package/test/conformance/expected-warnings/negation/extra_unstratified_indirect_self_with_fact.eye +0 -0
  261. package/test/conformance/expected-warnings/negation/extra_unstratified_indirect_self_with_fact.txt +2 -0
  262. package/test/conformance/expected-warnings/negation/extra_unstratified_positive_negative_loop.eye +0 -0
  263. package/test/conformance/expected-warnings/negation/extra_unstratified_positive_negative_loop.txt +2 -0
  264. package/test/conformance/expected-warnings/negation/extra_unstratified_three_cycle_all_negative.eye +0 -0
  265. package/test/conformance/expected-warnings/negation/extra_unstratified_three_cycle_all_negative.txt +4 -0
  266. package/test/conformance/expected-warnings/negation/extra_warning_preserves_empty_stdout.eye +0 -0
  267. package/test/conformance/expected-warnings/negation/extra_warning_preserves_empty_stdout.txt +3 -0
  268. package/test/conformance/proofs/proofs/extra_aggregate_min.eye +4 -0
  269. package/test/conformance/proofs/proofs/extra_compound_name_arguments.eye +2 -0
  270. package/test/conformance/proofs/proofs/extra_eq_builtin.eye +2 -0
  271. package/test/conformance/proofs/proofs/extra_findall_builtin.eye +4 -0
  272. package/test/conformance/proofs/proofs/extra_forall_builtin.eye +2 -0
  273. package/test/conformance/proofs/proofs/extra_holds_parts.eye +2 -0
  274. package/test/conformance/proofs/proofs/extra_iri_join.eye +2 -0
  275. package/test/conformance/proofs/proofs/extra_negation_success.eye +3 -0
  276. package/test/conformance/proofs/proofs/extra_nested_list_binding.eye +2 -0
  277. package/test/conformance/proofs/proofs/extra_once_member.eye +2 -0
  278. package/test/conformance/proofs/proofs/extra_recursive_path.eye +5 -0
  279. package/test/conformance/proofs/proofs/extra_table_path_bound.eye +7 -0
  280. package/test/conformance/warnings/negation/extra_stratified_multiple_negations_quiet.eye +4 -0
  281. package/test/conformance/warnings/negation/extra_stratified_negation_with_table_quiet.eye +6 -0
  282. package/test/conformance/warnings/negation/extra_unstratified_indirect_self_with_fact.eye +5 -0
  283. package/test/conformance/warnings/negation/extra_unstratified_positive_negative_loop.eye +5 -0
  284. package/test/conformance/warnings/negation/extra_unstratified_three_cycle_all_negative.eye +5 -0
  285. package/test/conformance/warnings/negation/extra_warning_preserves_empty_stdout.eye +3 -0
  286. package/test/run-regression.mjs +2 -1
  287. /package/test/conformance/cases/{044_findall_user_goal.eye → aggregation/044_findall_user_goal.eye} +0 -0
  288. /package/test/conformance/cases/{044_findall_user_goal.query → aggregation/044_findall_user_goal.query} +0 -0
  289. /package/test/conformance/cases/{057_countall_empty_and_nonempty.eye → aggregation/057_countall_empty_and_nonempty.eye} +0 -0
  290. /package/test/conformance/cases/{057_countall_empty_and_nonempty.query → aggregation/057_countall_empty_and_nonempty.query} +0 -0
  291. /package/test/conformance/cases/{058_sumall_numeric_template.eye → aggregation/058_sumall_numeric_template.eye} +0 -0
  292. /package/test/conformance/cases/{058_sumall_numeric_template.query → aggregation/058_sumall_numeric_template.query} +0 -0
  293. /package/test/conformance/cases/{059_aggregate_min_template.eye → aggregation/059_aggregate_min_template.eye} +0 -0
  294. /package/test/conformance/cases/{059_aggregate_min_template.query → aggregation/059_aggregate_min_template.query} +0 -0
  295. /package/test/conformance/cases/{060_aggregate_max_compound_key.eye → aggregation/060_aggregate_max_compound_key.eye} +0 -0
  296. /package/test/conformance/cases/{060_aggregate_max_compound_key.query → aggregation/060_aggregate_max_compound_key.query} +0 -0
  297. /package/test/conformance/cases/{075_aggregation_edges.eye → aggregation/075_aggregation_edges.eye} +0 -0
  298. /package/test/conformance/cases/{098_aggregation_nested_templates.eye → aggregation/098_aggregation_nested_templates.eye} +0 -0
  299. /package/test/conformance/cases/{024_numeric_literal_readback.eye → arithmetic/024_numeric_literal_readback.eye} +0 -0
  300. /package/test/conformance/cases/{029_arithmetic_and_comparison.eye → arithmetic/029_arithmetic_and_comparison.eye} +0 -0
  301. /package/test/conformance/cases/{029_arithmetic_and_comparison.query → arithmetic/029_arithmetic_and_comparison.query} +0 -0
  302. /package/test/conformance/cases/{039_numeric_functions.eye → arithmetic/039_numeric_functions.eye} +0 -0
  303. /package/test/conformance/cases/{039_numeric_functions.query → arithmetic/039_numeric_functions.query} +0 -0
  304. /package/test/conformance/cases/{040_between_enumeration.eye → arithmetic/040_between_enumeration.eye} +0 -0
  305. /package/test/conformance/cases/{040_between_enumeration.query → arithmetic/040_between_enumeration.query} +0 -0
  306. /package/test/conformance/cases/{041_smallest_divisor.eye → arithmetic/041_smallest_divisor.eye} +0 -0
  307. /package/test/conformance/cases/{041_smallest_divisor.query → arithmetic/041_smallest_divisor.query} +0 -0
  308. /package/test/conformance/cases/{054_numeric_and_lexical_comparison.eye → arithmetic/054_numeric_and_lexical_comparison.eye} +0 -0
  309. /package/test/conformance/cases/{054_numeric_and_lexical_comparison.query → arithmetic/054_numeric_and_lexical_comparison.query} +0 -0
  310. /package/test/conformance/cases/{061_date_difference.eye → arithmetic/061_date_difference.eye} +0 -0
  311. /package/test/conformance/cases/{062_reusable_numeric_builtins.eye → arithmetic/062_reusable_numeric_builtins.eye} +0 -0
  312. /package/test/conformance/cases/{066_numeric_edges.eye → arithmetic/066_numeric_edges.eye} +0 -0
  313. /package/test/conformance/cases/{079_big_integer_arithmetic.eye → arithmetic/079_big_integer_arithmetic.eye} +0 -0
  314. /package/test/conformance/cases/{080_rounding_modes.eye → arithmetic/080_rounding_modes.eye} +0 -0
  315. /package/test/conformance/cases/{081_zero_safe_numeric_functions.eye → arithmetic/081_zero_safe_numeric_functions.eye} +0 -0
  316. /package/test/conformance/cases/{082_comparison_semantics.eye → arithmetic/082_comparison_semantics.eye} +0 -0
  317. /package/test/conformance/cases/{083_between_modes_and_empty_ranges.eye → arithmetic/083_between_modes_and_empty_ranges.eye} +0 -0
  318. /package/test/conformance/cases/{008_graphic_atoms.eye → atoms/008_graphic_atoms.eye} +0 -0
  319. /package/test/conformance/cases/{008_graphic_atoms.query → atoms/008_graphic_atoms.query} +0 -0
  320. /package/test/conformance/cases/{016_arity_zero_atom.eye → atoms/016_arity_zero_atom.eye} +0 -0
  321. /package/test/conformance/cases/{018_quoted_atom_readback.eye → atoms/018_quoted_atom_readback.eye} +0 -0
  322. /package/test/conformance/cases/{018_quoted_atom_readback.query → atoms/018_quoted_atom_readback.query} +0 -0
  323. /package/test/conformance/cases/{103_angle_iri_atoms.eye → atoms/103_angle_iri_atoms.eye} +0 -0
  324. /package/test/conformance/cases/{037_matching_and_comparison.eye → builtins/037_matching_and_comparison.eye} +0 -0
  325. /package/test/conformance/cases/{037_matching_and_comparison.query → builtins/037_matching_and_comparison.query} +0 -0
  326. /package/test/conformance/cases/{076_composed_reusable_builtins.eye → builtins/076_composed_reusable_builtins.eye} +0 -0
  327. /package/test/conformance/cases/{100_reusable_builtin_workflow.eye → builtins/100_reusable_builtin_workflow.eye} +0 -0
  328. /package/test/conformance/cases/{032_holds_parts.eye → context/032_holds_parts.eye} +0 -0
  329. /package/test/conformance/cases/{051_nested_holds_parts.eye → context/051_nested_holds_parts.eye} +0 -0
  330. /package/test/conformance/cases/{052_holds_member.eye → context/052_holds_member.eye} +0 -0
  331. /package/test/conformance/cases/{094_context_holds_enumeration.eye → context/094_context_holds_enumeration.eye} +0 -0
  332. /package/test/conformance/cases/{014_failure_filters_answers.eye → control/014_failure_filters_answers.eye} +0 -0
  333. /package/test/conformance/cases/{014_failure_filters_answers.query → control/014_failure_filters_answers.query} +0 -0
  334. /package/test/conformance/cases/{043_once_user_predicate.eye → control/043_once_user_predicate.eye} +0 -0
  335. /package/test/conformance/cases/{043_once_user_predicate.query → control/043_once_user_predicate.query} +0 -0
  336. /package/test/conformance/cases/{074_forall_edges.eye → control/074_forall_edges.eye} +0 -0
  337. /package/test/conformance/cases/{097_control_negation_once_forall.eye → control/097_control_negation_once_forall.eye} +0 -0
  338. /package/test/conformance/cases/{104_mode_determinism_declarations.eye → declarations/104_mode_determinism_declarations.eye} +0 -0
  339. /package/test/conformance/cases/{005_list_deconstruction.eye → lists/005_list_deconstruction.eye} +0 -0
  340. /package/test/conformance/cases/{005_list_deconstruction.query → lists/005_list_deconstruction.query} +0 -0
  341. /package/test/conformance/cases/{015_improper_list_unification.eye → lists/015_improper_list_unification.eye} +0 -0
  342. /package/test/conformance/cases/{015_improper_list_unification.query → lists/015_improper_list_unification.query} +0 -0
  343. /package/test/conformance/cases/{020_nested_list_terms.eye → lists/020_nested_list_terms.eye} +0 -0
  344. /package/test/conformance/cases/{020_nested_list_terms.query → lists/020_nested_list_terms.query} +0 -0
  345. /package/test/conformance/cases/{031_lists_aggregation_ordering.eye → lists/031_lists_aggregation_ordering.eye} +0 -0
  346. /package/test/conformance/cases/{031_lists_aggregation_ordering.query → lists/031_lists_aggregation_ordering.query} +0 -0
  347. /package/test/conformance/cases/{035_list_relations.eye → lists/035_list_relations.eye} +0 -0
  348. /package/test/conformance/cases/{035_list_relations.query → lists/035_list_relations.query} +0 -0
  349. /package/test/conformance/cases/{036_append_splits.eye → lists/036_append_splits.eye} +0 -0
  350. /package/test/conformance/cases/{036_append_splits.query → lists/036_append_splits.query} +0 -0
  351. /package/test/conformance/cases/{045_sort_deduplicates_atoms.eye → lists/045_sort_deduplicates_atoms.eye} +0 -0
  352. /package/test/conformance/cases/{045_sort_deduplicates_atoms.query → lists/045_sort_deduplicates_atoms.query} +0 -0
  353. /package/test/conformance/cases/{046_append_bound_prefix_suffix.eye → lists/046_append_bound_prefix_suffix.eye} +0 -0
  354. /package/test/conformance/cases/{046_append_bound_prefix_suffix.query → lists/046_append_bound_prefix_suffix.query} +0 -0
  355. /package/test/conformance/cases/{047_nth0_index_generation.eye → lists/047_nth0_index_generation.eye} +0 -0
  356. /package/test/conformance/cases/{047_nth0_index_generation.query → lists/047_nth0_index_generation.query} +0 -0
  357. /package/test/conformance/cases/{048_set_nth0_edges.eye → lists/048_set_nth0_edges.eye} +0 -0
  358. /package/test/conformance/cases/{048_set_nth0_edges.query → lists/048_set_nth0_edges.query} +0 -0
  359. /package/test/conformance/cases/{049_select_duplicate_occurrences.eye → lists/049_select_duplicate_occurrences.eye} +0 -0
  360. /package/test/conformance/cases/{049_select_duplicate_occurrences.query → lists/049_select_duplicate_occurrences.query} +0 -0
  361. /package/test/conformance/cases/{063_reusable_list_builtins.eye → lists/063_reusable_list_builtins.eye} +0 -0
  362. /package/test/conformance/cases/{067_list_edges.eye → lists/067_list_edges.eye} +0 -0
  363. /package/test/conformance/cases/{068_list_generation_order.eye → lists/068_list_generation_order.eye} +0 -0
  364. /package/test/conformance/cases/{069_list_summaries_and_sets.eye → lists/069_list_summaries_and_sets.eye} +0 -0
  365. /package/test/conformance/cases/{084_append_and_select_composition.eye → lists/084_append_and_select_composition.eye} +0 -0
  366. /package/test/conformance/cases/{085_nth_and_update_edges.eye → lists/085_nth_and_update_edges.eye} +0 -0
  367. /package/test/conformance/cases/{086_slicing_pipeline.eye → lists/086_slicing_pipeline.eye} +0 -0
  368. /package/test/conformance/cases/{087_sort_reverse_length.eye → lists/087_sort_reverse_length.eye} +0 -0
  369. /package/test/conformance/cases/{088_list_summaries_failures.eye → lists/088_list_summaries_failures.eye} +0 -0
  370. /package/test/conformance/cases/{027_default_derived_output.eye → materialize/027_default_derived_output.eye} +0 -0
  371. /package/test/conformance/cases/{028_materialize_focus.eye → materialize/028_materialize_focus.eye} +0 -0
  372. /package/test/conformance/cases/{053_materialize_excludes_source_fact.eye → materialize/053_materialize_excludes_source_fact.eye} +0 -0
  373. /package/test/conformance/cases/{099_materialize_multiple_arities.eye → materialize/099_materialize_multiple_arities.eye} +0 -0
  374. /package/test/conformance/cases/{033_negation_once_generators.eye → negation/033_negation_once_generators.eye} +0 -0
  375. /package/test/conformance/cases/{033_negation_once_generators.query → negation/033_negation_once_generators.query} +0 -0
  376. /package/test/conformance/cases/{042_negation_filter.eye → negation/042_negation_filter.eye} +0 -0
  377. /package/test/conformance/cases/{042_negation_filter.query → negation/042_negation_filter.query} +0 -0
  378. /package/test/conformance/cases/{050_not_member_filter.eye → negation/050_not_member_filter.eye} +0 -0
  379. /package/test/conformance/cases/{050_not_member_filter.query → negation/050_not_member_filter.query} +0 -0
  380. /package/test/conformance/cases/{001_fact_output.eye → rules/001_fact_output.eye} +0 -0
  381. /package/test/conformance/cases/{002_rule_recursion.eye → rules/002_rule_recursion.eye} +0 -0
  382. /package/test/conformance/cases/{002_rule_recursion.query → rules/002_rule_recursion.query} +0 -0
  383. /package/test/conformance/cases/{011_predicate_arity.eye → rules/011_predicate_arity.eye} +0 -0
  384. /package/test/conformance/cases/{011_predicate_arity.query → rules/011_predicate_arity.query} +0 -0
  385. /package/test/conformance/cases/{013_multiple_clauses_order.eye → rules/013_multiple_clauses_order.eye} +0 -0
  386. /package/test/conformance/cases/{013_multiple_clauses_order.query → rules/013_multiple_clauses_order.query} +0 -0
  387. /package/test/conformance/cases/{017_three_step_recursion.eye → rules/017_three_step_recursion.eye} +0 -0
  388. /package/test/conformance/cases/{017_three_step_recursion.query → rules/017_three_step_recursion.query} +0 -0
  389. /package/test/conformance/cases/{022_rule_head_structure.eye → rules/022_rule_head_structure.eye} +0 -0
  390. /package/test/conformance/cases/{077_recursive_path_with_lists.eye → rules/077_recursive_path_with_lists.eye} +0 -0
  391. /package/test/conformance/cases/{078_mutual_recursion_with_arithmetic.eye → rules/078_mutual_recursion_with_arithmetic.eye} +0 -0
  392. /package/test/conformance/cases/{023_quoted_escapes_readback.eye → strings/023_quoted_escapes_readback.eye} +0 -0
  393. /package/test/conformance/cases/{030_strings_and_atoms.eye → strings/030_strings_and_atoms.eye} +0 -0
  394. /package/test/conformance/cases/{030_strings_and_atoms.query → strings/030_strings_and_atoms.query} +0 -0
  395. /package/test/conformance/cases/{055_string_matching_filters.eye → strings/055_string_matching_filters.eye} +0 -0
  396. /package/test/conformance/cases/{055_string_matching_filters.query → strings/055_string_matching_filters.query} +0 -0
  397. /package/test/conformance/cases/{056_string_and_atom_concat.eye → strings/056_string_and_atom_concat.eye} +0 -0
  398. /package/test/conformance/cases/{056_string_and_atom_concat.query → strings/056_string_and_atom_concat.query} +0 -0
  399. /package/test/conformance/cases/{064_reusable_string_builtins.eye → strings/064_reusable_string_builtins.eye} +0 -0
  400. /package/test/conformance/cases/{070_matches_named_captures.eye → strings/070_matches_named_captures.eye} +0 -0
  401. /package/test/conformance/cases/{071_string_edges.eye → strings/071_string_edges.eye} +0 -0
  402. /package/test/conformance/cases/{072_string_conversions.eye → strings/072_string_conversions.eye} +0 -0
  403. /package/test/conformance/cases/{089_string_split_join_pipeline.eye → strings/089_string_split_join_pipeline.eye} +0 -0
  404. /package/test/conformance/cases/{090_string_substring_replace_edges.eye → strings/090_string_substring_replace_edges.eye} +0 -0
  405. /package/test/conformance/cases/{091_string_case_and_trim.eye → strings/091_string_case_and_trim.eye} +0 -0
  406. /package/test/conformance/cases/{092_scalar_string_conversions.eye → strings/092_scalar_string_conversions.eye} +0 -0
  407. /package/test/conformance/cases/{093_regex_named_captures_context.eye → strings/093_regex_named_captures_context.eye} +0 -0
  408. /package/test/conformance/cases/{004_conjunction_and_parentheses.eye → syntax/004_conjunction_and_parentheses.eye} +0 -0
  409. /package/test/conformance/cases/{004_conjunction_and_parentheses.query → syntax/004_conjunction_and_parentheses.query} +0 -0
  410. /package/test/conformance/cases/{006_comma_formula_data.eye → syntax/006_comma_formula_data.eye} +0 -0
  411. /package/test/conformance/cases/{006_comma_formula_data.query → syntax/006_comma_formula_data.query} +0 -0
  412. /package/test/conformance/cases/{009_comments_and_whitespace.eye → syntax/009_comments_and_whitespace.eye} +0 -0
  413. /package/test/conformance/cases/{009_comments_and_whitespace.query → syntax/009_comments_and_whitespace.query} +0 -0
  414. /package/test/conformance/cases/{019_parenthesized_three_conjuncts.eye → syntax/019_parenthesized_three_conjuncts.eye} +0 -0
  415. /package/test/conformance/cases/{019_parenthesized_three_conjuncts.query → syntax/019_parenthesized_three_conjuncts.query} +0 -0
  416. /package/test/conformance/cases/{025_body_parentheses_with_formula_data.eye → syntax/025_body_parentheses_with_formula_data.eye} +0 -0
  417. /package/test/conformance/cases/{038_table_declaration.eye → table/038_table_declaration.eye} +0 -0
  418. /package/test/conformance/cases/{038_table_declaration.query → table/038_table_declaration.query} +0 -0
  419. /package/test/conformance/cases/{102_table_declaration.eye → table/102_table_declaration.eye} +0 -0
  420. /package/test/conformance/cases/{003_terms_and_readback.eye → terms/003_terms_and_readback.eye} +0 -0
  421. /package/test/conformance/cases/{003_terms_and_readback.query → terms/003_terms_and_readback.query} +0 -0
  422. /package/test/conformance/cases/{065_reusable_term_control_builtins.eye → terms/065_reusable_term_control_builtins.eye} +0 -0
  423. /package/test/conformance/cases/{073_term_introspection_edges.eye → terms/073_term_introspection_edges.eye} +0 -0
  424. /package/test/conformance/cases/{095_term_introspection_roundtrip.eye → terms/095_term_introspection_roundtrip.eye} +0 -0
  425. /package/test/conformance/cases/{096_functor_scalar_edges.eye → terms/096_functor_scalar_edges.eye} +0 -0
  426. /package/test/conformance/cases/{012_nested_compound_unification.eye → unification/012_nested_compound_unification.eye} +0 -0
  427. /package/test/conformance/cases/{012_nested_compound_unification.query → unification/012_nested_compound_unification.query} +0 -0
  428. /package/test/conformance/cases/{021_repeated_variable_head.eye → unification/021_repeated_variable_head.eye} +0 -0
  429. /package/test/conformance/cases/{034_equality_and_inequality.eye → unification/034_equality_and_inequality.eye} +0 -0
  430. /package/test/conformance/cases/{034_equality_and_inequality.query → unification/034_equality_and_inequality.query} +0 -0
  431. /package/test/conformance/cases/{007_anonymous_variables.eye → variables/007_anonymous_variables.eye} +0 -0
  432. /package/test/conformance/cases/{007_anonymous_variables.query → variables/007_anonymous_variables.query} +0 -0
  433. /package/test/conformance/cases/{010_variable_scope_and_reuse.eye → variables/010_variable_scope_and_reuse.eye} +0 -0
  434. /package/test/conformance/cases/{010_variable_scope_and_reuse.query → variables/010_variable_scope_and_reuse.query} +0 -0
  435. /package/test/conformance/cases/{026_question_underscore_named_variable_reuse.eye → variables/026_question_underscore_named_variable_reuse.eye} +0 -0
  436. /package/test/conformance/cases/{101_question_mark_variables.eye → variables/101_question_mark_variables.eye} +0 -0
  437. /package/test/conformance/expected/{044_findall_user_goal.eye → aggregation/044_findall_user_goal.eye} +0 -0
  438. /package/test/conformance/expected/{057_countall_empty_and_nonempty.eye → aggregation/057_countall_empty_and_nonempty.eye} +0 -0
  439. /package/test/conformance/expected/{058_sumall_numeric_template.eye → aggregation/058_sumall_numeric_template.eye} +0 -0
  440. /package/test/conformance/expected/{059_aggregate_min_template.eye → aggregation/059_aggregate_min_template.eye} +0 -0
  441. /package/test/conformance/expected/{060_aggregate_max_compound_key.eye → aggregation/060_aggregate_max_compound_key.eye} +0 -0
  442. /package/test/conformance/expected/{075_aggregation_edges.eye → aggregation/075_aggregation_edges.eye} +0 -0
  443. /package/test/conformance/expected/{098_aggregation_nested_templates.eye → aggregation/098_aggregation_nested_templates.eye} +0 -0
  444. /package/test/conformance/expected/{024_numeric_literal_readback.eye → arithmetic/024_numeric_literal_readback.eye} +0 -0
  445. /package/test/conformance/expected/{029_arithmetic_and_comparison.eye → arithmetic/029_arithmetic_and_comparison.eye} +0 -0
  446. /package/test/conformance/expected/{039_numeric_functions.eye → arithmetic/039_numeric_functions.eye} +0 -0
  447. /package/test/conformance/expected/{040_between_enumeration.eye → arithmetic/040_between_enumeration.eye} +0 -0
  448. /package/test/conformance/expected/{041_smallest_divisor.eye → arithmetic/041_smallest_divisor.eye} +0 -0
  449. /package/test/conformance/expected/{054_numeric_and_lexical_comparison.eye → arithmetic/054_numeric_and_lexical_comparison.eye} +0 -0
  450. /package/test/conformance/expected/{061_date_difference.eye → arithmetic/061_date_difference.eye} +0 -0
  451. /package/test/conformance/expected/{062_reusable_numeric_builtins.eye → arithmetic/062_reusable_numeric_builtins.eye} +0 -0
  452. /package/test/conformance/expected/{066_numeric_edges.eye → arithmetic/066_numeric_edges.eye} +0 -0
  453. /package/test/conformance/expected/{079_big_integer_arithmetic.eye → arithmetic/079_big_integer_arithmetic.eye} +0 -0
  454. /package/test/conformance/expected/{080_rounding_modes.eye → arithmetic/080_rounding_modes.eye} +0 -0
  455. /package/test/conformance/expected/{081_zero_safe_numeric_functions.eye → arithmetic/081_zero_safe_numeric_functions.eye} +0 -0
  456. /package/test/conformance/expected/{082_comparison_semantics.eye → arithmetic/082_comparison_semantics.eye} +0 -0
  457. /package/test/conformance/expected/{083_between_modes_and_empty_ranges.eye → arithmetic/083_between_modes_and_empty_ranges.eye} +0 -0
  458. /package/test/conformance/expected/{008_graphic_atoms.eye → atoms/008_graphic_atoms.eye} +0 -0
  459. /package/test/conformance/expected/{016_arity_zero_atom.eye → atoms/016_arity_zero_atom.eye} +0 -0
  460. /package/test/conformance/expected/{018_quoted_atom_readback.eye → atoms/018_quoted_atom_readback.eye} +0 -0
  461. /package/test/conformance/expected/{103_angle_iri_atoms.eye → atoms/103_angle_iri_atoms.eye} +0 -0
  462. /package/test/conformance/expected/{037_matching_and_comparison.eye → builtins/037_matching_and_comparison.eye} +0 -0
  463. /package/test/conformance/expected/{076_composed_reusable_builtins.eye → builtins/076_composed_reusable_builtins.eye} +0 -0
  464. /package/test/conformance/expected/{100_reusable_builtin_workflow.eye → builtins/100_reusable_builtin_workflow.eye} +0 -0
  465. /package/test/conformance/expected/{032_holds_parts.eye → context/032_holds_parts.eye} +0 -0
  466. /package/test/conformance/expected/{051_nested_holds_parts.eye → context/051_nested_holds_parts.eye} +0 -0
  467. /package/test/conformance/expected/{052_holds_member.eye → context/052_holds_member.eye} +0 -0
  468. /package/test/conformance/expected/{094_context_holds_enumeration.eye → context/094_context_holds_enumeration.eye} +0 -0
  469. /package/test/conformance/expected/{014_failure_filters_answers.eye → control/014_failure_filters_answers.eye} +0 -0
  470. /package/test/conformance/expected/{043_once_user_predicate.eye → control/043_once_user_predicate.eye} +0 -0
  471. /package/test/conformance/expected/{074_forall_edges.eye → control/074_forall_edges.eye} +0 -0
  472. /package/test/conformance/expected/{097_control_negation_once_forall.eye → control/097_control_negation_once_forall.eye} +0 -0
  473. /package/test/conformance/expected/{104_mode_determinism_declarations.eye → declarations/104_mode_determinism_declarations.eye} +0 -0
  474. /package/test/conformance/expected/{005_list_deconstruction.eye → lists/005_list_deconstruction.eye} +0 -0
  475. /package/test/conformance/expected/{015_improper_list_unification.eye → lists/015_improper_list_unification.eye} +0 -0
  476. /package/test/conformance/expected/{020_nested_list_terms.eye → lists/020_nested_list_terms.eye} +0 -0
  477. /package/test/conformance/expected/{031_lists_aggregation_ordering.eye → lists/031_lists_aggregation_ordering.eye} +0 -0
  478. /package/test/conformance/expected/{035_list_relations.eye → lists/035_list_relations.eye} +0 -0
  479. /package/test/conformance/expected/{036_append_splits.eye → lists/036_append_splits.eye} +0 -0
  480. /package/test/conformance/expected/{045_sort_deduplicates_atoms.eye → lists/045_sort_deduplicates_atoms.eye} +0 -0
  481. /package/test/conformance/expected/{046_append_bound_prefix_suffix.eye → lists/046_append_bound_prefix_suffix.eye} +0 -0
  482. /package/test/conformance/expected/{047_nth0_index_generation.eye → lists/047_nth0_index_generation.eye} +0 -0
  483. /package/test/conformance/expected/{048_set_nth0_edges.eye → lists/048_set_nth0_edges.eye} +0 -0
  484. /package/test/conformance/expected/{049_select_duplicate_occurrences.eye → lists/049_select_duplicate_occurrences.eye} +0 -0
  485. /package/test/conformance/expected/{063_reusable_list_builtins.eye → lists/063_reusable_list_builtins.eye} +0 -0
  486. /package/test/conformance/expected/{067_list_edges.eye → lists/067_list_edges.eye} +0 -0
  487. /package/test/conformance/expected/{068_list_generation_order.eye → lists/068_list_generation_order.eye} +0 -0
  488. /package/test/conformance/expected/{069_list_summaries_and_sets.eye → lists/069_list_summaries_and_sets.eye} +0 -0
  489. /package/test/conformance/expected/{084_append_and_select_composition.eye → lists/084_append_and_select_composition.eye} +0 -0
  490. /package/test/conformance/expected/{085_nth_and_update_edges.eye → lists/085_nth_and_update_edges.eye} +0 -0
  491. /package/test/conformance/expected/{086_slicing_pipeline.eye → lists/086_slicing_pipeline.eye} +0 -0
  492. /package/test/conformance/expected/{087_sort_reverse_length.eye → lists/087_sort_reverse_length.eye} +0 -0
  493. /package/test/conformance/expected/{088_list_summaries_failures.eye → lists/088_list_summaries_failures.eye} +0 -0
  494. /package/test/conformance/expected/{027_default_derived_output.eye → materialize/027_default_derived_output.eye} +0 -0
  495. /package/test/conformance/expected/{028_materialize_focus.eye → materialize/028_materialize_focus.eye} +0 -0
  496. /package/test/conformance/expected/{053_materialize_excludes_source_fact.eye → materialize/053_materialize_excludes_source_fact.eye} +0 -0
  497. /package/test/conformance/expected/{099_materialize_multiple_arities.eye → materialize/099_materialize_multiple_arities.eye} +0 -0
  498. /package/test/conformance/expected/{033_negation_once_generators.eye → negation/033_negation_once_generators.eye} +0 -0
  499. /package/test/conformance/expected/{042_negation_filter.eye → negation/042_negation_filter.eye} +0 -0
  500. /package/test/conformance/expected/{050_not_member_filter.eye → negation/050_not_member_filter.eye} +0 -0
  501. /package/test/conformance/expected/{001_fact_output.eye → rules/001_fact_output.eye} +0 -0
  502. /package/test/conformance/expected/{002_rule_recursion.eye → rules/002_rule_recursion.eye} +0 -0
  503. /package/test/conformance/expected/{011_predicate_arity.eye → rules/011_predicate_arity.eye} +0 -0
  504. /package/test/conformance/expected/{013_multiple_clauses_order.eye → rules/013_multiple_clauses_order.eye} +0 -0
  505. /package/test/conformance/expected/{017_three_step_recursion.eye → rules/017_three_step_recursion.eye} +0 -0
  506. /package/test/conformance/expected/{022_rule_head_structure.eye → rules/022_rule_head_structure.eye} +0 -0
  507. /package/test/conformance/expected/{077_recursive_path_with_lists.eye → rules/077_recursive_path_with_lists.eye} +0 -0
  508. /package/test/conformance/expected/{078_mutual_recursion_with_arithmetic.eye → rules/078_mutual_recursion_with_arithmetic.eye} +0 -0
  509. /package/test/conformance/expected/{023_quoted_escapes_readback.eye → strings/023_quoted_escapes_readback.eye} +0 -0
  510. /package/test/conformance/expected/{030_strings_and_atoms.eye → strings/030_strings_and_atoms.eye} +0 -0
  511. /package/test/conformance/expected/{055_string_matching_filters.eye → strings/055_string_matching_filters.eye} +0 -0
  512. /package/test/conformance/expected/{056_string_and_atom_concat.eye → strings/056_string_and_atom_concat.eye} +0 -0
  513. /package/test/conformance/expected/{064_reusable_string_builtins.eye → strings/064_reusable_string_builtins.eye} +0 -0
  514. /package/test/conformance/expected/{070_matches_named_captures.eye → strings/070_matches_named_captures.eye} +0 -0
  515. /package/test/conformance/expected/{071_string_edges.eye → strings/071_string_edges.eye} +0 -0
  516. /package/test/conformance/expected/{072_string_conversions.eye → strings/072_string_conversions.eye} +0 -0
  517. /package/test/conformance/expected/{089_string_split_join_pipeline.eye → strings/089_string_split_join_pipeline.eye} +0 -0
  518. /package/test/conformance/expected/{090_string_substring_replace_edges.eye → strings/090_string_substring_replace_edges.eye} +0 -0
  519. /package/test/conformance/expected/{091_string_case_and_trim.eye → strings/091_string_case_and_trim.eye} +0 -0
  520. /package/test/conformance/expected/{092_scalar_string_conversions.eye → strings/092_scalar_string_conversions.eye} +0 -0
  521. /package/test/conformance/expected/{093_regex_named_captures_context.eye → strings/093_regex_named_captures_context.eye} +0 -0
  522. /package/test/conformance/expected/{004_conjunction_and_parentheses.eye → syntax/004_conjunction_and_parentheses.eye} +0 -0
  523. /package/test/conformance/expected/{006_comma_formula_data.eye → syntax/006_comma_formula_data.eye} +0 -0
  524. /package/test/conformance/expected/{009_comments_and_whitespace.eye → syntax/009_comments_and_whitespace.eye} +0 -0
  525. /package/test/conformance/expected/{019_parenthesized_three_conjuncts.eye → syntax/019_parenthesized_three_conjuncts.eye} +0 -0
  526. /package/test/conformance/expected/{025_body_parentheses_with_formula_data.eye → syntax/025_body_parentheses_with_formula_data.eye} +0 -0
  527. /package/test/conformance/expected/{038_table_declaration.eye → table/038_table_declaration.eye} +0 -0
  528. /package/test/conformance/expected/{102_table_declaration.eye → table/102_table_declaration.eye} +0 -0
  529. /package/test/conformance/expected/{003_terms_and_readback.eye → terms/003_terms_and_readback.eye} +0 -0
  530. /package/test/conformance/expected/{065_reusable_term_control_builtins.eye → terms/065_reusable_term_control_builtins.eye} +0 -0
  531. /package/test/conformance/expected/{073_term_introspection_edges.eye → terms/073_term_introspection_edges.eye} +0 -0
  532. /package/test/conformance/expected/{095_term_introspection_roundtrip.eye → terms/095_term_introspection_roundtrip.eye} +0 -0
  533. /package/test/conformance/expected/{096_functor_scalar_edges.eye → terms/096_functor_scalar_edges.eye} +0 -0
  534. /package/test/conformance/expected/{012_nested_compound_unification.eye → unification/012_nested_compound_unification.eye} +0 -0
  535. /package/test/conformance/expected/{021_repeated_variable_head.eye → unification/021_repeated_variable_head.eye} +0 -0
  536. /package/test/conformance/expected/{034_equality_and_inequality.eye → unification/034_equality_and_inequality.eye} +0 -0
  537. /package/test/conformance/expected/{007_anonymous_variables.eye → variables/007_anonymous_variables.eye} +0 -0
  538. /package/test/conformance/expected/{010_variable_scope_and_reuse.eye → variables/010_variable_scope_and_reuse.eye} +0 -0
  539. /package/test/conformance/expected/{026_question_underscore_named_variable_reuse.eye → variables/026_question_underscore_named_variable_reuse.eye} +0 -0
  540. /package/test/conformance/expected/{101_question_mark_variables.eye → variables/101_question_mark_variables.eye} +0 -0
@@ -4,23 +4,22 @@ This report summarizes the file-based conformance corpus under `test/conformance
4
4
 
5
5
  | Category | Positive | Errors | Warnings | Proofs | Total |
6
6
  |---|---:|---:|---:|---:|---:|
7
- | aggregation | 5 | 0 | 0 | 0 | 5 |
8
- | arithmetic | 12 | 0 | 0 | 0 | 12 |
9
- | atoms | 14 | 5 | 0 | 0 | 19 |
10
- | builtins | 2 | 0 | 0 | 0 | 2 |
11
- | context | 3 | 0 | 0 | 0 | 3 |
12
- | control | 5 | 0 | 0 | 0 | 5 |
13
- | declarations | 5 | 0 | 0 | 0 | 5 |
14
- | legacy-numbered | 104 | 0 | 0 | 0 | 104 |
15
- | lists | 18 | 1 | 0 | 0 | 19 |
16
- | materialize | 2 | 0 | 0 | 0 | 2 |
17
- | negation | 3 | 0 | 13 | 0 | 16 |
18
- | proofs | 0 | 0 | 0 | 8 | 8 |
19
- | rules | 2 | 1 | 0 | 0 | 3 |
20
- | strings | 15 | 0 | 0 | 0 | 15 |
21
- | syntax | 4 | 19 | 0 | 0 | 23 |
22
- | table | 2 | 0 | 0 | 0 | 2 |
23
- | terms | 10 | 1 | 0 | 0 | 11 |
24
- | unification | 4 | 0 | 0 | 0 | 4 |
25
- | variables | 8 | 8 | 0 | 0 | 16 |
26
- | **Total** | **218** | **35** | **13** | **8** | **274** |
7
+ | aggregation | 17 | 0 | 0 | 0 | 17 |
8
+ | arithmetic | 40 | 0 | 0 | 0 | 40 |
9
+ | atoms | 22 | 8 | 0 | 0 | 30 |
10
+ | builtins | 10 | 0 | 0 | 0 | 10 |
11
+ | context | 11 | 0 | 0 | 0 | 11 |
12
+ | control | 15 | 0 | 0 | 0 | 15 |
13
+ | declarations | 6 | 0 | 0 | 0 | 6 |
14
+ | lists | 54 | 3 | 0 | 0 | 57 |
15
+ | materialize | 8 | 0 | 0 | 0 | 8 |
16
+ | negation | 8 | 0 | 19 | 0 | 27 |
17
+ | proofs | 0 | 0 | 0 | 20 | 20 |
18
+ | rules | 12 | 3 | 0 | 0 | 15 |
19
+ | strings | 40 | 0 | 0 | 0 | 40 |
20
+ | syntax | 11 | 28 | 0 | 0 | 39 |
21
+ | table | 6 | 0 | 0 | 0 | 6 |
22
+ | terms | 25 | 3 | 0 | 0 | 28 |
23
+ | unification | 16 | 0 | 0 | 0 | 16 |
24
+ | variables | 16 | 11 | 0 | 0 | 27 |
25
+ | **Total** | **317** | **56** | **19** | **20** | **412** |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eyelang",
3
- "version": "1.7.6",
3
+ "version": "1.7.8",
4
4
  "description": "A small Prolog-like logic programming language for rules, goals, answers, and proofs.",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -4,6 +4,8 @@ This directory contains the executable conformance cases for the Eyelang languag
4
4
 
5
5
  The suite is intentionally file-based so another implementation can run the same programs and compare exact standard output, expected errors, expected warnings, and expected proof output. The conformance corpus is part of the public language contract, not just an implementation smoke test.
6
6
 
7
+ All conformance files live under topic directories such as `arithmetic/`, `lists/`, `syntax/`, or `variables/`; new top-level numbered files should not be added. The report uses those directories as coverage categories.
8
+
7
9
  A normal positive case consists of:
8
10
 
9
11
  - `conformance/cases/<name>.eye` — input program;
@@ -0,0 +1,4 @@
1
+ materialize(answer, 3).
2
+ rank(<urn:example:a>, low).
3
+ rank(<urn:example:z>, high).
4
+ answer(aggregate_max_iri_key, ?key, ?value) :- aggregate_max(?k, ?v, rank(?k, ?v), ?key, ?value).
@@ -0,0 +1,5 @@
1
+ materialize(answer, 3).
2
+ score(2, first).
3
+ score(1, keep).
4
+ score(1, also).
5
+ answer(aggregate_min_tie_first, ?key, ?value) :- aggregate_min(?k, ?v, score(?k, ?v), ?key, ?value).
@@ -0,0 +1,5 @@
1
+ materialize(answer, 2).
2
+ num(1).
3
+ num(2).
4
+ num(3).
5
+ answer(countall_with_filter, ?n) :- countall((num(?x), gt(?x, 1)), ?n).
@@ -0,0 +1,4 @@
1
+ materialize(answer, 2).
2
+ item(a).
3
+ item(b).
4
+ answer(findall_repeated_template, ?bag) :- findall(pair(?x, ?x), item(?x), ?bag).
@@ -0,0 +1,4 @@
1
+ materialize(answer, 2).
2
+ val(1.5).
3
+ val(2.25).
4
+ answer(sumall_float_template, ?sum) :- sumall(?x, val(?x), ?sum).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(acos_one, ?x) :- acos(1, ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(asin_zero, ?x) :- asin(0, ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(atan2_axis, ?x) :- atan2(0, 1, ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(difference_leap_day, ?x) :- difference("2024-03-01", "2024-02-28", ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(difference_same_day, ?x) :- difference("2026-06-23", "2026-06-23", ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(div_float_exact, ?x) :- div(7.5, 2.5, ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(div_integer_trunc, ?x) :- div(7, 2, ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(division_by_zero_fails) :- div(1, 0, ?_).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(exp_zero, ?x) :- exp(0, ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(ge_equal_duration) :- ge("P1Y2M3D", "P1Y2M3D").
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(le_equal_string) :- le("abc", "abc").
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(log_one, ?x) :- log(1, ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(mod_negative_right, ?x) :- mod(7, -3, ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(pow_large_integer, ?x) :- pow(2, 10, ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(graphic_backslash_atom, \).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(iri_mailto_plus, <mailto:jos+eyelang@example.org>).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(iri_uuid_scheme, <urn:uuid:123e4567-e89b-12d3-a456-426614174000>).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(quoted_atom_with_quote_readback, 'can''t').
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(difference_end_before_start_fails) :- difference("2024-01-01", "2024-01-02", ?_).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(difference_invalid_date_fails) :- difference("2024-02-30", "2024-02-01", ?_).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 3).
2
+ answer(eq_binds_both_sides, ?x, ?y) :- eq(pair(?x, b), pair(a, ?y)).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(neq_different_iri_atoms) :- neq(<urn:example:a>, <urn:example:b>).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(neq_same_iri_fails) :- neq(<urn:example:a>, 'urn:example:a').
@@ -0,0 +1,2 @@
1
+ materialize(answer, 3).
2
+ answer(holds_atom_parts, ?name, ?args) :- holds((ready, box(a)), ?name, ?args).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(holds_ignores_string_parts) :- holds("not a term", ?_, ?_).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 3).
2
+ answer(holds_list_parts, ?name, ?args) :- holds(([a, b], tail), ?name, ?args).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(holds_term_nested_order, ?x) :- holds((a, (b, c)), ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(forall_bound_check) :- forall(member(?x, [1, 2, 3]), lt(?x, 4)).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(forall_counterexample_fails) :- forall(member(?x, [1, 2, 3]), lt(?x, 3)).
@@ -0,0 +1,3 @@
1
+ materialize(answer, 1).
2
+ p(a).
3
+ answer(not_unbound_existing_goal_fails) :- not(p(?x)).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(not_unbound_unknown_goal_succeeds) :- not(missing(?x)).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(once_empty_fails) :- once(missing).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(once_preserves_binding, ?x) :- once(member(?x, [a, b])).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(append_split, pair(?left, ?right)) :- append(?left, ?right, [a, b, c]).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(append_to_improper_tail, ?x) :- append([a, b], tail, ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(drop_all, ?x) :- drop(3, [a, b, c], ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 3).
2
+ answer(head_and_rest_improper, ?h, ?r) :- head([a | b], ?h), rest([a | b], ?r).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(last_singleton, ?x) :- last([only], ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(length_improper_fails) :- length([a | b], ?_).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(list_to_set_stable_order, ?x) :- list_to_set([b, a, b, c, a], ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(member_repeated_nested, ?x) :- member(pair(?x, ?x), [pair(a, a), pair(a, b), pair(b, b)]).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(not_member_compound_fails) :- not_member(box(a), [box(a), box(b)]).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(not_member_compound_success) :- not_member(box(c), [box(a), box(b)]).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(nth0_duplicate_index, ?i) :- nth0(?i, [a, b, a], a).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(reverse_nested_terms, ?x) :- reverse([box(a), [b, c], <urn:example:d>], ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(select_structured_duplicate, ?rest) :- select(box(a), [box(a), box(b), box(a)], ?rest).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(slice_end, ?x) :- slice(2, 2, [a, b, c, d], ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(sort_iri_atoms, ?x) :- sort([<urn:example:b>, <urn:example:a>], ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(take_all, ?x) :- take(3, [a, b, c], ?x).
@@ -0,0 +1,4 @@
1
+ materialize(answer, 1).
2
+ base(ok).
3
+ answer(source).
4
+ answer(derived) :- base(ok).
@@ -0,0 +1,4 @@
1
+ materialize(item, 2).
2
+ item(a).
3
+ item(a, b).
4
+ item(c, d).
@@ -0,0 +1,3 @@
1
+ materialize(answer, 1).
2
+ known(a).
3
+ answer(not_with_bound_fails) :- not(known(a)).
@@ -0,0 +1,3 @@
1
+ materialize(answer, 2).
2
+ known(a).
3
+ answer(not_with_bound_success, b) :- not(known(b)).
@@ -0,0 +1,5 @@
1
+ materialize(answer, 3).
2
+ left(a).
3
+ right(a, one).
4
+ right(a, two).
5
+ answer(left_to_right_multiple_bindings, ?x, ?y) :- left(?x), right(?x, ?y).
@@ -0,0 +1,3 @@
1
+ materialize(answer, 2).
2
+ pair_key(pair(a, b)).
3
+ answer(structured_head_rule, ?x) :- pair_key(pair(?x, b)).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(atom_string_number_input, ?x) :- atom_string(?x, 42).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(join_empty_list, ?x) :- join([], ",", ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(join_iri_and_atom, ?x) :- join([<urn:example:a>, path, 7], "/", ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(lowercase_iri_atom, ?x) :- lowercase(<URN:EXAMPLE:ABC>, ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(matches_invalid_pattern_fails) :- matches("abc", "[").
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(named_regex_optional_missing, ?x) :- matches("abc", "(?<first>a)(?<missing>z)?", ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(number_string_atom_input, ?x) :- number_string(?x, '42').
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(replace_multiple, ?x) :- replace("banana", "na", "NA", ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(split_empty_separator, ?x) :- split("ab", "", ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(substring_last_char, ?x) :- substring("abcd", 3, 1, ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(term_string_iri_list, ?x) :- term_string([<urn:example:a>, box("B")], ?x).
@@ -0,0 +1,2 @@
1
+ materialize(answer, 2).
2
+ answer(uppercase_mixed_string, ?x) :- uppercase("aBc-1", ?x).
@@ -0,0 +1,3 @@
1
+ % Leading comment
2
+ materialize(answer, 2). % declaration comment
3
+ answer(comments_after_terms, ok). % fact comment
@@ -0,0 +1,2 @@
1
+ materialize(answer, 1).
2
+ answer(nested_parenthesized_body) :- ((eq(a, a), eq(b, b))).
@@ -0,0 +1,7 @@
1
+ materialize(reach, 2).
2
+ table(path, 2).
3
+ edge(a, b).
4
+ edge(b, a).
5
+ path(?x, ?y) :- edge(?x, ?y).
6
+ path(?x, ?z) :- edge(?x, ?y), path(?y, ?z).
7
+ reach(a, ?x) :- path(a, ?x).
@@ -0,0 +1,5 @@
1
+ materialize(answer, 2).
2
+ table(edge, 2).
3
+ edge(a, b).
4
+ edge(b, c).
5
+ answer(table_open_call_fallback, pair(?x, ?y)) :- edge(?x, ?y).
@@ -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(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{}>).