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.
- package/README.md +1 -1
- package/conformance-report.md +18 -18
- package/docs/guide.md +2 -1
- package/docs/language-reference.md +12 -0
- package/examples/existential-rule.eye +8 -15
- package/examples/herbrand-witnesses.eye +31 -0
- package/examples/output/existential-rule.eye +2 -2
- package/examples/output/herbrand-witnesses.eye +7 -0
- package/examples/proof/existential-rule.eye +10 -18
- package/package.json +1 -1
- package/playground.html +1 -0
- package/src/builtins/terms.js +1 -0
- package/test/conformance/cases/aggregation/extra_aggregate_max_iri_key.eye +4 -0
- package/test/conformance/cases/aggregation/extra_aggregate_min_tie_first.eye +5 -0
- package/test/conformance/cases/aggregation/extra_countall_with_filter.eye +5 -0
- package/test/conformance/cases/aggregation/extra_findall_repeated_template.eye +4 -0
- package/test/conformance/cases/aggregation/extra_sumall_float_template.eye +4 -0
- package/test/conformance/cases/arithmetic/extra_acos_one.eye +2 -0
- package/test/conformance/cases/arithmetic/extra_asin_zero.eye +2 -0
- package/test/conformance/cases/arithmetic/extra_atan2_axis.eye +2 -0
- package/test/conformance/cases/arithmetic/extra_difference_leap_day.eye +2 -0
- package/test/conformance/cases/arithmetic/extra_difference_same_day.eye +2 -0
- package/test/conformance/cases/arithmetic/extra_div_float_exact.eye +2 -0
- package/test/conformance/cases/arithmetic/extra_div_integer_trunc.eye +2 -0
- package/test/conformance/cases/arithmetic/extra_division_by_zero_fails.eye +2 -0
- package/test/conformance/cases/arithmetic/extra_exp_zero.eye +2 -0
- package/test/conformance/cases/arithmetic/extra_ge_equal_duration.eye +2 -0
- package/test/conformance/cases/arithmetic/extra_le_equal_string.eye +2 -0
- package/test/conformance/cases/arithmetic/extra_log_one.eye +2 -0
- package/test/conformance/cases/arithmetic/extra_mod_negative_right.eye +2 -0
- package/test/conformance/cases/arithmetic/extra_pow_large_integer.eye +2 -0
- package/test/conformance/cases/atoms/extra_graphic_backslash_atom.eye +2 -0
- package/test/conformance/cases/atoms/extra_iri_mailto_plus.eye +2 -0
- package/test/conformance/cases/atoms/extra_iri_uuid_scheme.eye +2 -0
- package/test/conformance/cases/atoms/extra_quoted_atom_with_quote_readback.eye +2 -0
- package/test/conformance/cases/builtins/extra_difference_end_before_start_fails.eye +2 -0
- package/test/conformance/cases/builtins/extra_difference_invalid_date_fails.eye +2 -0
- package/test/conformance/cases/builtins/extra_eq_binds_both_sides.eye +2 -0
- package/test/conformance/cases/builtins/extra_neq_different_iri_atoms.eye +2 -0
- package/test/conformance/cases/builtins/extra_neq_same_iri_fails.eye +2 -0
- package/test/conformance/cases/context/extra_holds_atom_parts.eye +2 -0
- package/test/conformance/cases/context/extra_holds_ignores_string_parts.eye +2 -0
- package/test/conformance/cases/context/extra_holds_list_parts.eye +2 -0
- package/test/conformance/cases/context/extra_holds_term_nested_order.eye +2 -0
- package/test/conformance/cases/control/extra_forall_bound_check.eye +2 -0
- package/test/conformance/cases/control/extra_forall_counterexample_fails.eye +2 -0
- package/test/conformance/cases/control/extra_not_unbound_existing_goal_fails.eye +3 -0
- package/test/conformance/cases/control/extra_not_unbound_unknown_goal_succeeds.eye +2 -0
- package/test/conformance/cases/control/extra_once_empty_fails.eye +2 -0
- package/test/conformance/cases/control/extra_once_preserves_binding.eye +2 -0
- package/test/conformance/cases/lists/extra_append_all_splits_three.eye +2 -0
- package/test/conformance/cases/lists/extra_append_to_improper_tail.eye +2 -0
- package/test/conformance/cases/lists/extra_drop_all.eye +2 -0
- package/test/conformance/cases/lists/extra_head_and_rest_improper.eye +2 -0
- package/test/conformance/cases/lists/extra_last_singleton.eye +2 -0
- package/test/conformance/cases/lists/extra_length_improper_fails.eye +2 -0
- package/test/conformance/cases/lists/extra_list_to_set_stable_order.eye +2 -0
- package/test/conformance/cases/lists/extra_member_repeated_nested.eye +2 -0
- package/test/conformance/cases/lists/extra_not_member_compound_fails.eye +2 -0
- package/test/conformance/cases/lists/extra_not_member_compound_success.eye +2 -0
- package/test/conformance/cases/lists/extra_nth0_duplicate_indexes.eye +2 -0
- package/test/conformance/cases/lists/extra_reverse_nested_terms.eye +2 -0
- package/test/conformance/cases/lists/extra_select_structured_duplicate.eye +2 -0
- package/test/conformance/cases/lists/extra_slice_end.eye +2 -0
- package/test/conformance/cases/lists/extra_sort_iri_atoms.eye +2 -0
- package/test/conformance/cases/lists/extra_take_all.eye +2 -0
- package/test/conformance/cases/materialize/extra_materialize_derived_only_with_same_source.eye +4 -0
- package/test/conformance/cases/materialize/extra_materialize_selects_arity.eye +4 -0
- package/test/conformance/cases/negation/extra_not_with_bound_fails.eye +3 -0
- package/test/conformance/cases/negation/extra_not_with_bound_success.eye +3 -0
- package/test/conformance/cases/rules/extra_left_to_right_multiple_bindings.eye +5 -0
- package/test/conformance/cases/rules/extra_structured_head_rule.eye +3 -0
- package/test/conformance/cases/strings/extra_atom_string_number_input.eye +2 -0
- package/test/conformance/cases/strings/extra_join_empty_list.eye +2 -0
- package/test/conformance/cases/strings/extra_join_iri_and_atom.eye +2 -0
- package/test/conformance/cases/strings/extra_lowercase_iri_atom.eye +2 -0
- package/test/conformance/cases/strings/extra_matches_invalid_pattern_fails.eye +2 -0
- package/test/conformance/cases/strings/extra_named_regex_optional_missing.eye +2 -0
- package/test/conformance/cases/strings/extra_number_string_atom_input.eye +2 -0
- package/test/conformance/cases/strings/extra_replace_multiple.eye +2 -0
- package/test/conformance/cases/strings/extra_split_empty_separator.eye +2 -0
- package/test/conformance/cases/strings/extra_substring_last_char.eye +2 -0
- package/test/conformance/cases/strings/extra_term_string_iri_list.eye +2 -0
- package/test/conformance/cases/strings/extra_uppercase_mixed_string.eye +2 -0
- package/test/conformance/cases/syntax/extra_comments_after_terms.eye +3 -0
- package/test/conformance/cases/syntax/extra_nested_parenthesized_body.eye +2 -0
- package/test/conformance/cases/table/extra_table_bound_cycle.eye +7 -0
- package/test/conformance/cases/table/extra_table_open_call_fallback.eye +5 -0
- package/test/conformance/cases/terms/extra_arg_atom_fails.eye +2 -0
- package/test/conformance/cases/terms/extra_arg_first_last.eye +2 -0
- package/test/conformance/cases/terms/extra_arg_zero_fails.eye +2 -0
- package/test/conformance/cases/terms/extra_compound_name_arguments_bad_args_fails.eye +2 -0
- package/test/conformance/cases/terms/extra_compound_name_arguments_construct_atom_zero.eye +2 -0
- package/test/conformance/cases/terms/extra_compound_name_arguments_construct_iri.eye +2 -0
- package/test/conformance/cases/terms/extra_compound_name_arguments_decompose_list.eye +2 -0
- package/test/conformance/cases/terms/extra_functor_list_cons.eye +2 -0
- package/test/conformance/cases/terms/extra_functor_number_scalar.eye +2 -0
- package/test/conformance/cases/terms/extra_functor_string_scalar.eye +2 -0
- package/test/conformance/cases/terms/herbrand_witness_different_inputs_distinct.eye +2 -0
- package/test/conformance/cases/terms/herbrand_witness_one_input.eye +5 -0
- package/test/conformance/cases/terms/herbrand_witness_same_inputs_same_term.eye +2 -0
- package/test/conformance/cases/terms/herbrand_witness_two_inputs.eye +5 -0
- package/test/conformance/cases/unification/extra_eq_iri_and_quoted_atom.eye +2 -0
- package/test/conformance/cases/unification/extra_eq_list_tail_binding.eye +2 -0
- package/test/conformance/cases/unification/extra_eq_nested_repeated_fails.eye +2 -0
- package/test/conformance/cases/unification/extra_eq_nested_repeated_success.eye +2 -0
- package/test/conformance/cases/unification/extra_eq_scalar_number_atom.eye +2 -0
- package/test/conformance/cases/unification/extra_eq_scalar_string_number.eye +2 -0
- package/test/conformance/cases/unification/extra_neq_compound_arity_mismatch.eye +2 -0
- package/test/conformance/cases/unification/extra_neq_scalar_same_lexical_fails.eye +2 -0
- package/test/conformance/cases/unification/extra_variable_clause_locality.eye +4 -0
- package/test/conformance/cases/variables/extra_anonymous_not_reused.eye +2 -0
- package/test/conformance/cases/variables/extra_named_variable_reused.eye +2 -0
- package/test/conformance/cases/variables/extra_question_underscore_named_distinct.eye +2 -0
- package/test/conformance/cases/variables/extra_question_uppercase_named.eye +2 -0
- package/test/conformance/errors/atoms/extra_angle_iri_backslash_rejected.eye +1 -0
- package/test/conformance/errors/atoms/extra_angle_iri_pipe_rejected.eye +1 -0
- package/test/conformance/errors/atoms/extra_angle_iri_quote_rejected.eye +1 -0
- package/test/conformance/errors/lists/extra_missing_tail_after_bar.eye +1 -0
- package/test/conformance/errors/lists/extra_unclosed_list_tail.eye +1 -0
- package/test/conformance/errors/rules/extra_empty_head_with_body.eye +1 -0
- package/test/conformance/errors/rules/extra_rule_without_body.eye +1 -0
- package/test/conformance/errors/syntax/extra_bad_backtick_character.eye +1 -0
- package/test/conformance/errors/syntax/extra_bad_iri_empty_body.eye +1 -0
- package/test/conformance/errors/syntax/extra_bad_list_double_comma.eye +1 -0
- package/test/conformance/errors/syntax/extra_bad_list_double_tail.eye +1 -0
- package/test/conformance/errors/syntax/extra_bad_number_two_decimal_points.eye +1 -0
- package/test/conformance/errors/syntax/extra_double_period_rejected.eye +1 -0
- package/test/conformance/errors/syntax/extra_extra_closing_paren.eye +1 -0
- package/test/conformance/errors/syntax/extra_missing_closing_rule_body.eye +1 -0
- package/test/conformance/errors/syntax/extra_missing_head_rejected.eye +1 -0
- package/test/conformance/errors/terms/extra_empty_nested_compound.eye +1 -0
- package/test/conformance/errors/terms/extra_empty_top_level_compound.eye +1 -0
- package/test/conformance/errors/variables/extra_bare_underscore_in_rule_head.eye +1 -0
- package/test/conformance/errors/variables/extra_question_dash_variable.eye +1 -0
- package/test/conformance/errors/variables/extra_uppercase_in_list.eye +1 -0
- package/test/conformance/expected/aggregation/extra_aggregate_max_iri_key.eye +1 -0
- package/test/conformance/expected/aggregation/extra_aggregate_min_tie_first.eye +1 -0
- package/test/conformance/expected/aggregation/extra_countall_with_filter.eye +1 -0
- package/test/conformance/expected/aggregation/extra_findall_repeated_template.eye +1 -0
- package/test/conformance/expected/aggregation/extra_sumall_float_template.eye +1 -0
- package/test/conformance/expected/arithmetic/extra_acos_one.eye +1 -0
- package/test/conformance/expected/arithmetic/extra_asin_zero.eye +1 -0
- package/test/conformance/expected/arithmetic/extra_atan2_axis.eye +1 -0
- package/test/conformance/expected/arithmetic/extra_difference_leap_day.eye +1 -0
- package/test/conformance/expected/arithmetic/extra_difference_same_day.eye +1 -0
- package/test/conformance/expected/arithmetic/extra_div_float_exact.eye +1 -0
- package/test/conformance/expected/arithmetic/extra_div_integer_trunc.eye +1 -0
- package/test/conformance/expected/arithmetic/extra_division_by_zero_fails.eye +0 -0
- package/test/conformance/expected/arithmetic/extra_exp_zero.eye +1 -0
- package/test/conformance/expected/arithmetic/extra_ge_equal_duration.eye +1 -0
- package/test/conformance/expected/arithmetic/extra_le_equal_string.eye +1 -0
- package/test/conformance/expected/arithmetic/extra_log_one.eye +1 -0
- package/test/conformance/expected/arithmetic/extra_mod_negative_right.eye +1 -0
- package/test/conformance/expected/arithmetic/extra_pow_large_integer.eye +1 -0
- package/test/conformance/expected/atoms/extra_graphic_backslash_atom.eye +0 -0
- package/test/conformance/expected/atoms/extra_iri_mailto_plus.eye +0 -0
- package/test/conformance/expected/atoms/extra_iri_uuid_scheme.eye +0 -0
- package/test/conformance/expected/atoms/extra_quoted_atom_with_quote_readback.eye +0 -0
- package/test/conformance/expected/builtins/extra_difference_end_before_start_fails.eye +0 -0
- package/test/conformance/expected/builtins/extra_difference_invalid_date_fails.eye +0 -0
- package/test/conformance/expected/builtins/extra_eq_binds_both_sides.eye +1 -0
- package/test/conformance/expected/builtins/extra_neq_different_iri_atoms.eye +1 -0
- package/test/conformance/expected/builtins/extra_neq_same_iri_fails.eye +0 -0
- package/test/conformance/expected/context/extra_holds_atom_parts.eye +2 -0
- package/test/conformance/expected/context/extra_holds_ignores_string_parts.eye +0 -0
- package/test/conformance/expected/context/extra_holds_list_parts.eye +2 -0
- package/test/conformance/expected/context/extra_holds_term_nested_order.eye +3 -0
- package/test/conformance/expected/control/extra_forall_bound_check.eye +1 -0
- package/test/conformance/expected/control/extra_forall_counterexample_fails.eye +0 -0
- package/test/conformance/expected/control/extra_not_unbound_existing_goal_fails.eye +0 -0
- package/test/conformance/expected/control/extra_not_unbound_unknown_goal_succeeds.eye +1 -0
- package/test/conformance/expected/control/extra_once_empty_fails.eye +0 -0
- package/test/conformance/expected/control/extra_once_preserves_binding.eye +1 -0
- package/test/conformance/expected/lists/extra_append_all_splits_three.eye +4 -0
- package/test/conformance/expected/lists/extra_append_to_improper_tail.eye +1 -0
- package/test/conformance/expected/lists/extra_drop_all.eye +1 -0
- package/test/conformance/expected/lists/extra_head_and_rest_improper.eye +1 -0
- package/test/conformance/expected/lists/extra_last_singleton.eye +1 -0
- package/test/conformance/expected/lists/extra_length_improper_fails.eye +0 -0
- package/test/conformance/expected/lists/extra_list_to_set_stable_order.eye +1 -0
- package/test/conformance/expected/lists/extra_member_repeated_nested.eye +2 -0
- package/test/conformance/expected/lists/extra_not_member_compound_fails.eye +0 -0
- package/test/conformance/expected/lists/extra_not_member_compound_success.eye +1 -0
- package/test/conformance/expected/lists/extra_nth0_duplicate_indexes.eye +2 -0
- package/test/conformance/expected/lists/extra_reverse_nested_terms.eye +1 -0
- package/test/conformance/expected/lists/extra_select_structured_duplicate.eye +2 -0
- package/test/conformance/expected/lists/extra_slice_end.eye +1 -0
- package/test/conformance/expected/lists/extra_sort_iri_atoms.eye +1 -0
- package/test/conformance/expected/lists/extra_take_all.eye +1 -0
- package/test/conformance/expected/materialize/extra_materialize_derived_only_with_same_source.eye +1 -0
- package/test/conformance/expected/materialize/extra_materialize_selects_arity.eye +0 -0
- package/test/conformance/expected/negation/extra_not_with_bound_fails.eye +0 -0
- package/test/conformance/expected/negation/extra_not_with_bound_success.eye +1 -0
- package/test/conformance/expected/rules/extra_left_to_right_multiple_bindings.eye +2 -0
- package/test/conformance/expected/rules/extra_structured_head_rule.eye +1 -0
- package/test/conformance/expected/strings/extra_atom_string_number_input.eye +1 -0
- package/test/conformance/expected/strings/extra_join_empty_list.eye +1 -0
- package/test/conformance/expected/strings/extra_join_iri_and_atom.eye +1 -0
- package/test/conformance/expected/strings/extra_lowercase_iri_atom.eye +1 -0
- package/test/conformance/expected/strings/extra_matches_invalid_pattern_fails.eye +0 -0
- package/test/conformance/expected/strings/extra_named_regex_optional_missing.eye +1 -0
- package/test/conformance/expected/strings/extra_number_string_atom_input.eye +1 -0
- package/test/conformance/expected/strings/extra_replace_multiple.eye +1 -0
- package/test/conformance/expected/strings/extra_split_empty_separator.eye +1 -0
- package/test/conformance/expected/strings/extra_substring_last_char.eye +1 -0
- package/test/conformance/expected/strings/extra_term_string_iri_list.eye +1 -0
- package/test/conformance/expected/strings/extra_uppercase_mixed_string.eye +1 -0
- package/test/conformance/expected/syntax/extra_comments_after_terms.eye +0 -0
- package/test/conformance/expected/syntax/extra_nested_parenthesized_body.eye +1 -0
- package/test/conformance/expected/table/extra_table_bound_cycle.eye +2 -0
- package/test/conformance/expected/table/extra_table_open_call_fallback.eye +2 -0
- package/test/conformance/expected/terms/extra_arg_atom_fails.eye +0 -0
- package/test/conformance/expected/terms/extra_arg_first_last.eye +1 -0
- package/test/conformance/expected/terms/extra_arg_zero_fails.eye +0 -0
- package/test/conformance/expected/terms/extra_compound_name_arguments_bad_args_fails.eye +0 -0
- package/test/conformance/expected/terms/extra_compound_name_arguments_construct_atom_zero.eye +1 -0
- package/test/conformance/expected/terms/extra_compound_name_arguments_construct_iri.eye +1 -0
- package/test/conformance/expected/terms/extra_compound_name_arguments_decompose_list.eye +1 -0
- package/test/conformance/expected/terms/extra_functor_list_cons.eye +1 -0
- package/test/conformance/expected/terms/extra_functor_number_scalar.eye +1 -0
- package/test/conformance/expected/terms/extra_functor_string_scalar.eye +1 -0
- package/test/conformance/expected/terms/herbrand_witness_different_inputs_distinct.eye +1 -0
- package/test/conformance/expected/terms/herbrand_witness_one_input.eye +2 -0
- package/test/conformance/expected/terms/herbrand_witness_same_inputs_same_term.eye +1 -0
- package/test/conformance/expected/terms/herbrand_witness_two_inputs.eye +2 -0
- package/test/conformance/expected/unification/extra_eq_iri_and_quoted_atom.eye +1 -0
- package/test/conformance/expected/unification/extra_eq_list_tail_binding.eye +1 -0
- package/test/conformance/expected/unification/extra_eq_nested_repeated_fails.eye +0 -0
- package/test/conformance/expected/unification/extra_eq_nested_repeated_success.eye +1 -0
- package/test/conformance/expected/unification/extra_eq_scalar_number_atom.eye +1 -0
- package/test/conformance/expected/unification/extra_eq_scalar_string_number.eye +1 -0
- package/test/conformance/expected/unification/extra_neq_compound_arity_mismatch.eye +1 -0
- package/test/conformance/expected/unification/extra_neq_scalar_same_lexical_fails.eye +0 -0
- package/test/conformance/expected/unification/extra_variable_clause_locality.eye +2 -0
- package/test/conformance/expected/variables/extra_anonymous_not_reused.eye +1 -0
- package/test/conformance/expected/variables/extra_named_variable_reused.eye +1 -0
- package/test/conformance/expected/variables/extra_question_underscore_named_distinct.eye +1 -0
- package/test/conformance/expected/variables/extra_question_uppercase_named.eye +1 -0
- package/test/conformance/expected-errors/atoms/extra_angle_iri_backslash_rejected.txt +1 -0
- package/test/conformance/expected-errors/atoms/extra_angle_iri_pipe_rejected.txt +1 -0
- package/test/conformance/expected-errors/atoms/extra_angle_iri_quote_rejected.txt +1 -0
- package/test/conformance/expected-errors/lists/extra_missing_tail_after_bar.txt +1 -0
- package/test/conformance/expected-errors/lists/extra_unclosed_list_tail.txt +1 -0
- package/test/conformance/expected-errors/rules/extra_empty_head_with_body.txt +1 -0
- package/test/conformance/expected-errors/rules/extra_rule_without_body.txt +1 -0
- package/test/conformance/expected-errors/syntax/extra_bad_backtick_character.txt +1 -0
- package/test/conformance/expected-errors/syntax/extra_bad_iri_empty_body.txt +1 -0
- package/test/conformance/expected-errors/syntax/extra_bad_list_double_comma.txt +1 -0
- package/test/conformance/expected-errors/syntax/extra_bad_list_double_tail.txt +1 -0
- package/test/conformance/expected-errors/syntax/extra_bad_number_two_decimal_points.txt +1 -0
- package/test/conformance/expected-errors/syntax/extra_double_period_rejected.txt +1 -0
- package/test/conformance/expected-errors/syntax/extra_extra_closing_paren.txt +1 -0
- package/test/conformance/expected-errors/syntax/extra_missing_closing_rule_body.txt +1 -0
- package/test/conformance/expected-errors/syntax/extra_missing_head_rejected.txt +1 -0
- package/test/conformance/expected-errors/terms/extra_empty_nested_compound.txt +1 -0
- package/test/conformance/expected-errors/terms/extra_empty_top_level_compound.txt +1 -0
- package/test/conformance/expected-errors/variables/extra_bare_underscore_in_rule_head.txt +1 -0
- package/test/conformance/expected-errors/variables/extra_question_dash_variable.txt +1 -0
- package/test/conformance/expected-errors/variables/extra_uppercase_in_list.txt +1 -0
- package/test/conformance/expected-proofs/proofs/extra_aggregate_min.eye +16 -0
- package/test/conformance/expected-proofs/proofs/extra_compound_name_arguments.eye +16 -0
- package/test/conformance/expected-proofs/proofs/extra_eq_builtin.eye +16 -0
- package/test/conformance/expected-proofs/proofs/extra_findall_builtin.eye +16 -0
- package/test/conformance/expected-proofs/proofs/extra_forall_builtin.eye +15 -0
- package/test/conformance/expected-proofs/proofs/extra_holds_parts.eye +32 -0
- package/test/conformance/expected-proofs/proofs/extra_iri_join.eye +16 -0
- package/test/conformance/expected-proofs/proofs/extra_negation_success.eye +15 -0
- package/test/conformance/expected-proofs/proofs/extra_nested_list_binding.eye +16 -0
- package/test/conformance/expected-proofs/proofs/extra_once_member.eye +22 -0
- package/test/conformance/expected-proofs/proofs/extra_recursive_path.eye +59 -0
- package/test/conformance/expected-proofs/proofs/extra_table_path_bound.eye +57 -0
- package/test/conformance/expected-proofs/proofs/herbrand_witness.eye +16 -0
- package/test/conformance/expected-warnings/negation/extra_stratified_multiple_negations_quiet.eye +1 -0
- package/test/conformance/expected-warnings/negation/extra_stratified_multiple_negations_quiet.txt +0 -0
- package/test/conformance/expected-warnings/negation/extra_stratified_negation_with_table_quiet.eye +1 -0
- package/test/conformance/expected-warnings/negation/extra_stratified_negation_with_table_quiet.txt +0 -0
- package/test/conformance/expected-warnings/negation/extra_unstratified_indirect_self_with_fact.eye +0 -0
- package/test/conformance/expected-warnings/negation/extra_unstratified_indirect_self_with_fact.txt +2 -0
- package/test/conformance/expected-warnings/negation/extra_unstratified_positive_negative_loop.eye +0 -0
- package/test/conformance/expected-warnings/negation/extra_unstratified_positive_negative_loop.txt +2 -0
- package/test/conformance/expected-warnings/negation/extra_unstratified_three_cycle_all_negative.eye +0 -0
- package/test/conformance/expected-warnings/negation/extra_unstratified_three_cycle_all_negative.txt +4 -0
- package/test/conformance/expected-warnings/negation/extra_warning_preserves_empty_stdout.eye +0 -0
- package/test/conformance/expected-warnings/negation/extra_warning_preserves_empty_stdout.txt +3 -0
- package/test/conformance/proofs/proofs/extra_aggregate_min.eye +4 -0
- package/test/conformance/proofs/proofs/extra_compound_name_arguments.eye +2 -0
- package/test/conformance/proofs/proofs/extra_eq_builtin.eye +2 -0
- package/test/conformance/proofs/proofs/extra_findall_builtin.eye +4 -0
- package/test/conformance/proofs/proofs/extra_forall_builtin.eye +2 -0
- package/test/conformance/proofs/proofs/extra_holds_parts.eye +2 -0
- package/test/conformance/proofs/proofs/extra_iri_join.eye +2 -0
- package/test/conformance/proofs/proofs/extra_negation_success.eye +3 -0
- package/test/conformance/proofs/proofs/extra_nested_list_binding.eye +2 -0
- package/test/conformance/proofs/proofs/extra_once_member.eye +2 -0
- package/test/conformance/proofs/proofs/extra_recursive_path.eye +5 -0
- package/test/conformance/proofs/proofs/extra_table_path_bound.eye +7 -0
- package/test/conformance/proofs/proofs/herbrand_witness.eye +3 -0
- package/test/conformance/warnings/negation/extra_stratified_multiple_negations_quiet.eye +4 -0
- package/test/conformance/warnings/negation/extra_stratified_negation_with_table_quiet.eye +6 -0
- package/test/conformance/warnings/negation/extra_unstratified_indirect_self_with_fact.eye +5 -0
- package/test/conformance/warnings/negation/extra_unstratified_positive_negative_loop.eye +5 -0
- package/test/conformance/warnings/negation/extra_unstratified_three_cycle_all_negative.eye +5 -0
- package/test/conformance/warnings/negation/extra_warning_preserves_empty_stdout.eye +3 -0
- package/test/run-regression.mjs +1 -1
|
@@ -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: expected ., got )
|
|
@@ -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: zero-arity compound syntax is not supported; use atom "f" for arity zero data
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
parse line 1: zero-arity compound syntax is not supported; use atom "p" for arity zero data
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
parse line 1: bad character "_"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
parse line 1: expected ), got -
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
parse line 1: bad character "A"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
answer(aggregate_min, 1, a).
|
|
2
|
+
why(
|
|
3
|
+
answer(aggregate_min, 1, a),
|
|
4
|
+
proof(
|
|
5
|
+
goal(answer(aggregate_min, 1, a)),
|
|
6
|
+
by(rule("<stdin>", clause(4))),
|
|
7
|
+
bindings([binding("?key", 1), binding("?value", a)]),
|
|
8
|
+
uses([
|
|
9
|
+
proof(
|
|
10
|
+
goal(aggregate_min(?k, ?v, score(?k, ?v), 1, a)),
|
|
11
|
+
by(builtin(aggregate_min, 5))
|
|
12
|
+
)
|
|
13
|
+
])
|
|
14
|
+
)
|
|
15
|
+
).
|
|
16
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
answer(compound_name_arguments, box, [a, b]).
|
|
2
|
+
why(
|
|
3
|
+
answer(compound_name_arguments, box, [a, b]),
|
|
4
|
+
proof(
|
|
5
|
+
goal(answer(compound_name_arguments, box, [a, b])),
|
|
6
|
+
by(rule("<stdin>", clause(2))),
|
|
7
|
+
bindings([binding("?name", box), binding("?args", [a, b])]),
|
|
8
|
+
uses([
|
|
9
|
+
proof(
|
|
10
|
+
goal(compound_name_arguments(box(a, b), box, [a, b])),
|
|
11
|
+
by(builtin(compound_name_arguments, 3))
|
|
12
|
+
)
|
|
13
|
+
])
|
|
14
|
+
)
|
|
15
|
+
).
|
|
16
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
answer(eq_builtin, a).
|
|
2
|
+
why(
|
|
3
|
+
answer(eq_builtin, a),
|
|
4
|
+
proof(
|
|
5
|
+
goal(answer(eq_builtin, a)),
|
|
6
|
+
by(rule("<stdin>", clause(2))),
|
|
7
|
+
bindings([binding("?x", a)]),
|
|
8
|
+
uses([
|
|
9
|
+
proof(
|
|
10
|
+
goal(eq(pair(a, b), pair(a, b))),
|
|
11
|
+
by(builtin(eq, 2))
|
|
12
|
+
)
|
|
13
|
+
])
|
|
14
|
+
)
|
|
15
|
+
).
|
|
16
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
answer(findall_builtin, [a, b]).
|
|
2
|
+
why(
|
|
3
|
+
answer(findall_builtin, [a, b]),
|
|
4
|
+
proof(
|
|
5
|
+
goal(answer(findall_builtin, [a, b])),
|
|
6
|
+
by(rule("<stdin>", clause(4))),
|
|
7
|
+
bindings([binding("?bag", [a, b])]),
|
|
8
|
+
uses([
|
|
9
|
+
proof(
|
|
10
|
+
goal(findall(?x, item(?x), [a, b])),
|
|
11
|
+
by(builtin(findall, 3))
|
|
12
|
+
)
|
|
13
|
+
])
|
|
14
|
+
)
|
|
15
|
+
).
|
|
16
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
answer(holds_parts, alpha, []).
|
|
2
|
+
why(
|
|
3
|
+
answer(holds_parts, alpha, []),
|
|
4
|
+
proof(
|
|
5
|
+
goal(answer(holds_parts, alpha, [])),
|
|
6
|
+
by(rule("<stdin>", clause(2))),
|
|
7
|
+
bindings([binding("?name", alpha), binding("?args", [])]),
|
|
8
|
+
uses([
|
|
9
|
+
proof(
|
|
10
|
+
goal(holds((alpha, beta(2)), alpha, [])),
|
|
11
|
+
by(builtin(holds, 3))
|
|
12
|
+
)
|
|
13
|
+
])
|
|
14
|
+
)
|
|
15
|
+
).
|
|
16
|
+
|
|
17
|
+
answer(holds_parts, beta, [2]).
|
|
18
|
+
why(
|
|
19
|
+
answer(holds_parts, beta, [2]),
|
|
20
|
+
proof(
|
|
21
|
+
goal(answer(holds_parts, beta, [2])),
|
|
22
|
+
by(rule("<stdin>", clause(2))),
|
|
23
|
+
bindings([binding("?name", beta), binding("?args", [2])]),
|
|
24
|
+
uses([
|
|
25
|
+
proof(
|
|
26
|
+
goal(holds((alpha, beta(2)), beta, [2])),
|
|
27
|
+
by(builtin(holds, 3))
|
|
28
|
+
)
|
|
29
|
+
])
|
|
30
|
+
)
|
|
31
|
+
).
|
|
32
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
answer(iri_join, <urn:example:alice>).
|
|
2
|
+
why(
|
|
3
|
+
answer(iri_join, <urn:example:alice>),
|
|
4
|
+
proof(
|
|
5
|
+
goal(answer(iri_join, <urn:example:alice>)),
|
|
6
|
+
by(rule("<stdin>", clause(2))),
|
|
7
|
+
bindings([binding("?who", <urn:example:alice>)]),
|
|
8
|
+
uses([
|
|
9
|
+
proof(
|
|
10
|
+
goal(eq(<urn:example:alice>, <urn:example:alice>)),
|
|
11
|
+
by(builtin(eq, 2))
|
|
12
|
+
)
|
|
13
|
+
])
|
|
14
|
+
)
|
|
15
|
+
).
|
|
16
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
answer(nested_list_binding, [c]).
|
|
2
|
+
why(
|
|
3
|
+
answer(nested_list_binding, [c]),
|
|
4
|
+
proof(
|
|
5
|
+
goal(answer(nested_list_binding, [c])),
|
|
6
|
+
by(rule("<stdin>", clause(2))),
|
|
7
|
+
bindings([binding("?tail", [c])]),
|
|
8
|
+
uses([
|
|
9
|
+
proof(
|
|
10
|
+
goal(eq([a, b, c], [a, b, c])),
|
|
11
|
+
by(builtin(eq, 2))
|
|
12
|
+
)
|
|
13
|
+
])
|
|
14
|
+
)
|
|
15
|
+
).
|
|
16
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
answer(once_member, a).
|
|
2
|
+
why(
|
|
3
|
+
answer(once_member, a),
|
|
4
|
+
proof(
|
|
5
|
+
goal(answer(once_member, a)),
|
|
6
|
+
by(rule("<stdin>", clause(2))),
|
|
7
|
+
bindings([binding("?x", a)]),
|
|
8
|
+
uses([
|
|
9
|
+
proof(
|
|
10
|
+
goal(once(member(a, [a, b, c]))),
|
|
11
|
+
by(builtin(once, 1)),
|
|
12
|
+
uses([
|
|
13
|
+
proof(
|
|
14
|
+
goal(member(a, [a, b, c])),
|
|
15
|
+
by(builtin(member, 2))
|
|
16
|
+
)
|
|
17
|
+
])
|
|
18
|
+
)
|
|
19
|
+
])
|
|
20
|
+
)
|
|
21
|
+
).
|
|
22
|
+
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
path(a, b).
|
|
2
|
+
why(
|
|
3
|
+
path(a, b),
|
|
4
|
+
proof(
|
|
5
|
+
goal(path(a, b)),
|
|
6
|
+
by(rule("<stdin>", clause(4))),
|
|
7
|
+
bindings([binding("?x", a), binding("?y", b)]),
|
|
8
|
+
uses([
|
|
9
|
+
proof(
|
|
10
|
+
goal(edge(a, b)),
|
|
11
|
+
by(fact("<stdin>", clause(2)))
|
|
12
|
+
)
|
|
13
|
+
])
|
|
14
|
+
)
|
|
15
|
+
).
|
|
16
|
+
|
|
17
|
+
path(b, c).
|
|
18
|
+
why(
|
|
19
|
+
path(b, c),
|
|
20
|
+
proof(
|
|
21
|
+
goal(path(b, c)),
|
|
22
|
+
by(rule("<stdin>", clause(4))),
|
|
23
|
+
bindings([binding("?x", b), binding("?y", c)]),
|
|
24
|
+
uses([
|
|
25
|
+
proof(
|
|
26
|
+
goal(edge(b, c)),
|
|
27
|
+
by(fact("<stdin>", clause(3)))
|
|
28
|
+
)
|
|
29
|
+
])
|
|
30
|
+
)
|
|
31
|
+
).
|
|
32
|
+
|
|
33
|
+
path(a, c).
|
|
34
|
+
why(
|
|
35
|
+
path(a, c),
|
|
36
|
+
proof(
|
|
37
|
+
goal(path(a, c)),
|
|
38
|
+
by(rule("<stdin>", clause(5))),
|
|
39
|
+
bindings([binding("?x", a), binding("?z", c), binding("?y", b)]),
|
|
40
|
+
uses([
|
|
41
|
+
proof(
|
|
42
|
+
goal(edge(a, b)),
|
|
43
|
+
by(fact("<stdin>", clause(2)))
|
|
44
|
+
),
|
|
45
|
+
proof(
|
|
46
|
+
goal(path(b, c)),
|
|
47
|
+
by(rule("<stdin>", clause(4))),
|
|
48
|
+
bindings([binding("?x", b), binding("?y", c)]),
|
|
49
|
+
uses([
|
|
50
|
+
proof(
|
|
51
|
+
goal(edge(b, c)),
|
|
52
|
+
by(fact("<stdin>", clause(3)))
|
|
53
|
+
)
|
|
54
|
+
])
|
|
55
|
+
)
|
|
56
|
+
])
|
|
57
|
+
)
|
|
58
|
+
).
|
|
59
|
+
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
answer(table_path_bound, b).
|
|
2
|
+
why(
|
|
3
|
+
answer(table_path_bound, b),
|
|
4
|
+
proof(
|
|
5
|
+
goal(answer(table_path_bound, b)),
|
|
6
|
+
by(rule("<stdin>", clause(7))),
|
|
7
|
+
bindings([binding("?x", b)]),
|
|
8
|
+
uses([
|
|
9
|
+
proof(
|
|
10
|
+
goal(path(a, b)),
|
|
11
|
+
by(rule("<stdin>", clause(5))),
|
|
12
|
+
bindings([binding("?x", a), binding("?y", b)]),
|
|
13
|
+
uses([
|
|
14
|
+
proof(
|
|
15
|
+
goal(edge(a, b)),
|
|
16
|
+
by(fact("<stdin>", clause(3)))
|
|
17
|
+
)
|
|
18
|
+
])
|
|
19
|
+
)
|
|
20
|
+
])
|
|
21
|
+
)
|
|
22
|
+
).
|
|
23
|
+
|
|
24
|
+
answer(table_path_bound, c).
|
|
25
|
+
why(
|
|
26
|
+
answer(table_path_bound, c),
|
|
27
|
+
proof(
|
|
28
|
+
goal(answer(table_path_bound, c)),
|
|
29
|
+
by(rule("<stdin>", clause(7))),
|
|
30
|
+
bindings([binding("?x", c)]),
|
|
31
|
+
uses([
|
|
32
|
+
proof(
|
|
33
|
+
goal(path(a, c)),
|
|
34
|
+
by(rule("<stdin>", clause(6))),
|
|
35
|
+
bindings([binding("?x", a), binding("?z", c), binding("?y", b)]),
|
|
36
|
+
uses([
|
|
37
|
+
proof(
|
|
38
|
+
goal(edge(a, b)),
|
|
39
|
+
by(fact("<stdin>", clause(3)))
|
|
40
|
+
),
|
|
41
|
+
proof(
|
|
42
|
+
goal(path(b, c)),
|
|
43
|
+
by(rule("<stdin>", clause(5))),
|
|
44
|
+
bindings([binding("?x", b), binding("?y", c)]),
|
|
45
|
+
uses([
|
|
46
|
+
proof(
|
|
47
|
+
goal(edge(b, c)),
|
|
48
|
+
by(fact("<stdin>", clause(4)))
|
|
49
|
+
)
|
|
50
|
+
])
|
|
51
|
+
)
|
|
52
|
+
])
|
|
53
|
+
)
|
|
54
|
+
])
|
|
55
|
+
)
|
|
56
|
+
).
|
|
57
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
has_parent(alice, parent_of(alice)).
|
|
2
|
+
why(
|
|
3
|
+
has_parent(alice, parent_of(alice)),
|
|
4
|
+
proof(
|
|
5
|
+
goal(has_parent(alice, parent_of(alice))),
|
|
6
|
+
by(rule("<stdin>", clause(2))),
|
|
7
|
+
bindings([binding("?child", alice)]),
|
|
8
|
+
uses([
|
|
9
|
+
proof(
|
|
10
|
+
goal(person(alice)),
|
|
11
|
+
by(fact("<stdin>", clause(1)))
|
|
12
|
+
)
|
|
13
|
+
])
|
|
14
|
+
)
|
|
15
|
+
).
|
|
16
|
+
|
package/test/conformance/expected-warnings/negation/extra_stratified_multiple_negations_quiet.eye
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
answer(ok).
|
package/test/conformance/expected-warnings/negation/extra_stratified_multiple_negations_quiet.txt
ADDED
|
File without changes
|
package/test/conformance/expected-warnings/negation/extra_stratified_negation_with_table_quiet.eye
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
open(b).
|
package/test/conformance/expected-warnings/negation/extra_stratified_negation_with_table_quiet.txt
ADDED
|
File without changes
|
package/test/conformance/expected-warnings/negation/extra_unstratified_indirect_self_with_fact.eye
ADDED
|
File without changes
|
package/test/conformance/expected-warnings/negation/extra_unstratified_positive_negative_loop.eye
ADDED
|
File without changes
|
package/test/conformance/expected-warnings/negation/extra_unstratified_three_cycle_all_negative.eye
ADDED
|
File without changes
|
|
File without changes
|
package/test/run-regression.mjs
CHANGED
|
@@ -371,7 +371,7 @@ function documentationSyncCases() {
|
|
|
371
371
|
run: () => {
|
|
372
372
|
const report = buildConformanceReport();
|
|
373
373
|
assertArrayEqual(report.issues, [], 'conformance report issues');
|
|
374
|
-
assertEqual(report.total.total >=
|
|
374
|
+
assertEqual(report.total.total >= 400, true, 'conformance case count');
|
|
375
375
|
assertEqual(report.total.positive + report.total.errors + report.total.warnings + report.total.proofs, report.total.total, 'conformance total');
|
|
376
376
|
assertEqual(report.rows.some((row) => row.category === 'legacy-numbered'), false, 'legacy-numbered category');
|
|
377
377
|
const text = formatConformanceReport(report);
|