eyelang 1.7.17 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/docs/guide.md +231 -231
- package/docs/language-reference.md +130 -132
- package/examples/abstract-interpretation.pl +50 -0
- package/examples/access-control-policy.pl +52 -0
- package/examples/ackermann.pl +47 -0
- package/examples/age.pl +26 -0
- package/examples/aliases-and-namespaces.pl +20 -0
- package/examples/alignment-demo.pl +44 -0
- package/examples/allen-interval-calculus.pl +64 -0
- package/examples/ancestor.pl +22 -0
- package/examples/animal.pl +21 -0
- package/examples/annotation.pl +34 -0
- package/examples/auroracare.pl +309 -0
- package/examples/backward.pl +11 -0
- package/examples/basic-monadic.pl +10032 -0
- package/examples/bayes-diagnosis.pl +108 -0
- package/examples/bayes-therapy.pl +189 -0
- package/examples/beam-deflection.pl +48 -0
- package/examples/binomial-vandermonde.pl +49 -0
- package/examples/blocks-world-planning.pl +77 -0
- package/examples/bmi.pl +232 -0
- package/examples/braking-safety-worlds.pl +69 -0
- package/examples/buck-converter-design.pl +83 -0
- package/examples/cache-performance.pl +56 -0
- package/examples/canary-release.pl +51 -0
- package/examples/cat-koko.pl +24 -0
- package/examples/catalan-convolution.pl +37 -0
- package/examples/cdcl-sat-solver.pl +65 -0
- package/examples/chart-parser.pl +65 -0
- package/examples/clinical-trial-screening.pl +97 -0
- package/examples/collatz-1000.pl +45 -0
- package/examples/combinatorics-findall-sort.pl +38 -0
- package/examples/competitive-enzyme-kinetics.pl +78 -0
- package/examples/complex.pl +133 -0
- package/examples/composition-of-injective-functions-is-injective.pl +50 -0
- package/examples/context-association.pl +53 -0
- package/examples/context-schema-audit.pl +46 -0
- package/examples/continued-fraction-sqrt2.pl +36 -0
- package/examples/control-system.pl +76 -0
- package/examples/critical-path-schedule.pl +82 -0
- package/examples/cyclic-path.pl +18 -0
- package/examples/d3-group.pl +99 -0
- package/examples/dairy-energy-balance.pl +66 -0
- package/examples/data-negotiation.pl +38 -0
- package/examples/deep-taxonomy-10.pl +106 -0
- package/examples/deep-taxonomy-100.pl +376 -0
- package/examples/deep-taxonomy-1000.pl +3076 -0
- package/examples/deep-taxonomy-10000.pl +30076 -0
- package/examples/deep-taxonomy-100000.pl +300076 -0
- package/examples/delfour.pl +281 -0
- package/examples/deontic-logic.pl +52 -0
- package/examples/derived-backward-rule.pl +30 -0
- package/examples/derived-rule.pl +27 -0
- package/examples/diamond-property.pl +38 -0
- package/examples/dijkstra-findall-sort.pl +43 -0
- package/examples/dijkstra-risk-path.pl +87 -0
- package/examples/dijkstra.pl +50 -0
- package/examples/dining-philosophers.pl +147 -0
- package/examples/dog.pl +25 -0
- package/examples/dpv-odrl-purpose-mapping.pl +48 -0
- package/examples/drone-corridor-planner.pl +48 -0
- package/examples/easter-computus.pl +88 -0
- package/examples/electrical-rc-filter.pl +37 -0
- package/examples/epidemic-policy.pl +66 -0
- package/examples/equality-saturation.pl +84 -0
- package/examples/equivalence-classes-overlap-implies-same-class.pl +27 -0
- package/examples/eulerian-path.pl +87 -0
- package/examples/ev-range-worlds.pl +87 -0
- package/examples/existential-rule.pl +14 -0
- package/examples/exoplanet-validation-worlds.pl +94 -0
- package/examples/expression-eval.pl +45 -0
- package/examples/family-cousins.pl +67 -0
- package/examples/fastpow.pl +61 -0
- package/examples/fft8-numeric.pl +85 -0
- package/examples/fibonacci.pl +60 -0
- package/examples/field-nitrogen-balance.pl +73 -0
- package/examples/flandor.pl +296 -0
- package/examples/floating-point.pl +28 -0
- package/examples/four-color-map.pl +133 -0
- package/examples/fundamental-theorem-arithmetic.pl +119 -0
- package/examples/gd-step-certified.pl +162 -0
- package/examples/gdpr-compliance.pl +69 -0
- package/examples/good-cobbler.pl +16 -0
- package/examples/gps.pl +146 -0
- package/examples/graph-reachability.pl +33 -0
- package/examples/graph.pl +35 -0
- package/examples/gray-code-counter.pl +47 -0
- package/examples/greatest-lower-bound-uniqueness.pl +30 -0
- package/examples/group-inverse-uniqueness.pl +36 -0
- package/examples/hamiltonian-path.pl +51 -0
- package/examples/hamming-code.pl +109 -0
- package/examples/hanoi.pl +19 -0
- package/examples/heat-loss.pl +56 -0
- package/examples/herbrand-witnesses.pl +31 -0
- package/examples/heron-theorem.pl +42 -0
- package/examples/ideal-gas-law.pl +39 -0
- package/examples/illegitimate-reasoning.pl +88 -0
- package/examples/integer-partitions.pl +35 -0
- package/examples/intuitionistic-logic-kripke.pl +69 -0
- package/examples/job-shop-scheduling.pl +48 -0
- package/examples/knapsack-optimization.pl +46 -0
- package/examples/knowledge-engineering-alignment-flow.pl +46 -0
- package/examples/knuth-bendix-completion.pl +55 -0
- package/examples/language.pl +25 -0
- package/examples/law-of-cosines.pl +37 -0
- package/examples/least-squares-regression.pl +85 -0
- package/examples/linear-logic-resources.pl +51 -0
- package/examples/list-collection.pl +35 -0
- package/examples/lldm.pl +80 -0
- package/examples/manufacturing-quality-control.pl +73 -0
- package/examples/map-four-color-search.pl +65 -0
- package/examples/markov-logic-network.pl +87 -0
- package/examples/matrix-chain-order.pl +79 -0
- package/examples/matrix-noncommutativity.pl +43 -0
- package/examples/microgrid-dispatch.pl +89 -0
- package/examples/missionaries-cannibals.pl +53 -0
- package/examples/modal-logic-kripke.pl +45 -0
- package/examples/modular-exponentiation.pl +35 -0
- package/examples/monkey-bananas.pl +45 -0
- package/examples/n-queens-8.pl +35 -0
- package/examples/network-sla.pl +48 -0
- package/examples/newton-raphson.pl +48 -0
- package/examples/nixon-diamond.pl +37 -0
- package/examples/observability-log-correlation.pl +40 -0
- package/examples/odrl-dpv-fpv-trust-flow.pl +51 -0
- package/examples/odrl-dpv-healthcare-risk-ranked.pl +270 -0
- package/examples/odrl-dpv-risk-ranked.pl +320 -0
- package/examples/orbital-transfer-design.pl +116 -0
- package/examples/output/language.pl +6 -0
- package/examples/output/web-names.pl +3 -0
- package/examples/partial-evaluator.pl +74 -0
- package/examples/path-discovery.pl +45013 -0
- package/examples/peano-arithmetic.pl +33 -0
- package/examples/peano-calculus.pl +40 -0
- package/examples/peasant.pl +29 -0
- package/examples/pell-equation.pl +34 -0
- package/examples/pendulum-period.pl +50 -0
- package/examples/pointer-analysis.pl +50 -0
- package/examples/polynomial.pl +124 -0
- package/examples/prime-range.pl +45 -0
- package/examples/proof/access-control-policy.pl +158 -0
- package/examples/proof/age.pl +71 -0
- package/examples/proof/aliases-and-namespaces.pl +78 -0
- package/examples/proof/ancestor.pl +140 -0
- package/examples/proof/animal.pl +68 -0
- package/examples/proof/annotation.pl +80 -0
- package/examples/proof/backward.pl +22 -0
- package/examples/proof/bayes-diagnosis.pl +208 -0
- package/examples/proof/beam-deflection.pl +227 -0
- package/examples/proof/cache-performance.pl +310 -0
- package/examples/proof/canary-release.pl +172 -0
- package/examples/proof/cat-koko.pl +86 -0
- package/examples/proof/chart-parser.pl +474 -0
- package/examples/proof/clinical-trial-screening.pl +389 -0
- package/examples/proof/composition-of-injective-functions-is-injective.pl +258 -0
- package/examples/proof/context-association.pl +78 -0
- package/examples/proof/data-negotiation.pl +76 -0
- package/examples/proof/deontic-logic.pl +109 -0
- package/examples/proof/derived-backward-rule.pl +74 -0
- package/examples/proof/derived-rule.pl +43 -0
- package/examples/proof/diamond-property.pl +307 -0
- package/examples/proof/dog.pl +31 -0
- package/examples/proof/dpv-odrl-purpose-mapping.pl +348 -0
- package/examples/proof/electrical-rc-filter.pl +105 -0
- package/examples/proof/epidemic-policy.pl +774 -0
- package/examples/proof/equivalence-classes-overlap-implies-same-class.pl +1098 -0
- package/examples/proof/existential-rule.pl +32 -0
- package/examples/proof/expression-eval.pl +105 -0
- package/examples/proof/floating-point.pl +160 -0
- package/examples/proof/gdpr-compliance.pl +199 -0
- package/examples/proof/good-cobbler.pl +16 -0
- package/examples/proof/graph-reachability.pl +151 -0
- package/examples/proof/greatest-lower-bound-uniqueness.pl +150 -0
- package/examples/proof/group-inverse-uniqueness.pl +84 -0
- package/examples/proof/hanoi.pl +185 -0
- package/examples/proof/heat-loss.pl +228 -0
- package/examples/proof/ideal-gas-law.pl +151 -0
- package/examples/proof/intuitionistic-logic-kripke.pl +133 -0
- package/examples/proof/linear-logic-resources.pl +205 -0
- package/examples/proof/list-collection.pl +52 -0
- package/examples/proof/modal-logic-kripke.pl +125 -0
- package/examples/proof/nixon-diamond.pl +181 -0
- package/examples/proof/proof-contrapositive.pl +78 -0
- package/examples/proof/reusable-builtins.pl +124 -0
- package/examples/proof/security-incident-correlation.pl +270 -0
- package/examples/proof/socket-age.pl +32 -0
- package/examples/proof/socket-family.pl +59 -0
- package/examples/proof/socrates.pl +38 -0
- package/examples/proof/term-tools.pl +95 -0
- package/examples/proof/witch.pl +216 -0
- package/examples/proof-contrapositive.pl +27 -0
- package/examples/quadratic-formula.pl +56 -0
- package/examples/radioactive-decay.pl +58 -0
- package/examples/register-allocation.pl +77 -0
- package/examples/reusable-builtins.pl +36 -0
- package/examples/riemann-hypothesis.pl +110 -0
- package/examples/route-planning.pl +33 -0
- package/examples/sat-solver-dpll.pl +88 -0
- package/examples/security-incident-correlation.pl +69 -0
- package/examples/send-more-money.pl +71 -0
- package/examples/service-impact.pl +41 -0
- package/examples/shoelace-polygon-area.pl +22 -0
- package/examples/sieve.pl +20 -0
- package/examples/skolem-functions.pl +52 -0
- package/examples/socket-age.pl +39 -0
- package/examples/socket-family.pl +28 -0
- package/examples/socrates.pl +19 -0
- package/examples/stable-marriage.pl +92 -0
- package/examples/statistics-summary.pl +56 -0
- package/examples/stirling-bell-numbers.pl +69 -0
- package/examples/sudoku-4x4.pl +54 -0
- package/examples/superdense-coding.pl +84 -0
- package/examples/symbolic-derivative.pl +39 -0
- package/examples/term-tools.pl +32 -0
- package/examples/totient-summatory.pl +33 -0
- package/examples/trust-flow-provenance-threshold.pl +47 -0
- package/examples/truth-maintenance-system.pl +62 -0
- package/examples/turing.pl +69 -0
- package/examples/type-inference.pl +58 -0
- package/examples/vector-similarity.pl +60 -0
- package/examples/vulnerability-impact.pl +69 -0
- package/examples/web-names.pl +39 -0
- package/examples/weighted-interval-scheduling.pl +81 -0
- package/examples/witch.pl +38 -0
- package/examples/wolf-goat-cabbage.pl +56 -0
- package/examples/workplace-compliance.pl +41 -0
- package/examples/zebra.pl +45 -0
- package/package.json +1 -1
- package/playground.html +9 -12
- package/src/cli.js +2 -2
- package/src/parser.js +7 -38
- package/src/term.js +18 -10
- package/test/conformance/README.md +7 -7
- package/test/conformance/cases/aggregation/044_findall_user_goal.pl +6 -0
- package/test/conformance/cases/aggregation/044_findall_user_goal.query +1 -1
- package/test/conformance/cases/aggregation/057_countall_empty_and_nonempty.pl +4 -0
- package/test/conformance/cases/aggregation/057_countall_empty_and_nonempty.query +1 -1
- package/test/conformance/cases/aggregation/058_sumall_numeric_template.pl +5 -0
- package/test/conformance/cases/aggregation/058_sumall_numeric_template.query +1 -1
- package/test/conformance/cases/aggregation/059_aggregate_min_template.pl +5 -0
- package/test/conformance/cases/aggregation/059_aggregate_min_template.query +1 -1
- package/test/conformance/cases/aggregation/060_aggregate_max_compound_key.pl +5 -0
- package/test/conformance/cases/aggregation/060_aggregate_max_compound_key.query +1 -1
- package/test/conformance/cases/aggregation/075_aggregation_edges.pl +12 -0
- package/test/conformance/cases/aggregation/098_aggregation_nested_templates.pl +11 -0
- package/test/conformance/cases/aggregation/aggregate_max_no_answers_fails.pl +2 -0
- package/test/conformance/cases/aggregation/aggregate_min_structured_key.pl +5 -0
- package/test/conformance/cases/aggregation/countall_zero.pl +2 -0
- package/test/conformance/cases/aggregation/extra_aggregate_max_iri_key.pl +4 -0
- package/test/conformance/cases/aggregation/extra_aggregate_min_tie_first.pl +5 -0
- package/test/conformance/cases/aggregation/extra_countall_with_filter.pl +5 -0
- package/test/conformance/cases/aggregation/extra_findall_repeated_template.pl +4 -0
- package/test/conformance/cases/aggregation/extra_sumall_float_template.pl +4 -0
- package/test/conformance/cases/aggregation/findall_empty_bag.pl +2 -0
- package/test/conformance/cases/aggregation/sumall_empty_zero.pl +2 -0
- package/test/conformance/cases/arithmetic/024_numeric_literal_readback.pl +6 -0
- package/test/conformance/cases/arithmetic/029_arithmetic_and_comparison.pl +11 -0
- package/test/conformance/cases/arithmetic/029_arithmetic_and_comparison.query +1 -1
- package/test/conformance/cases/arithmetic/039_numeric_functions.pl +9 -0
- package/test/conformance/cases/arithmetic/039_numeric_functions.query +1 -1
- package/test/conformance/cases/arithmetic/040_between_enumeration.pl +3 -0
- package/test/conformance/cases/arithmetic/040_between_enumeration.query +1 -1
- package/test/conformance/cases/arithmetic/041_smallest_divisor.pl +3 -0
- package/test/conformance/cases/arithmetic/041_smallest_divisor.query +1 -1
- package/test/conformance/cases/arithmetic/054_numeric_and_lexical_comparison.query +1 -1
- package/test/conformance/cases/arithmetic/061_date_difference.pl +4 -0
- package/test/conformance/cases/arithmetic/062_reusable_numeric_builtins.pl +10 -0
- package/test/conformance/cases/arithmetic/066_numeric_edges.pl +14 -0
- package/test/conformance/cases/arithmetic/079_big_integer_arithmetic.pl +8 -0
- package/test/conformance/cases/arithmetic/080_rounding_modes.pl +10 -0
- package/test/conformance/cases/arithmetic/081_zero_safe_numeric_functions.pl +9 -0
- package/test/conformance/cases/arithmetic/083_between_modes_and_empty_ranges.pl +8 -0
- package/test/conformance/cases/arithmetic/between_singleton.pl +2 -0
- package/test/conformance/cases/arithmetic/extra_acos_one.pl +2 -0
- package/test/conformance/cases/arithmetic/extra_asin_zero.pl +2 -0
- package/test/conformance/cases/arithmetic/extra_atan2_axis.pl +2 -0
- package/test/conformance/cases/arithmetic/extra_difference_leap_day.pl +2 -0
- package/test/conformance/cases/arithmetic/extra_difference_same_day.pl +2 -0
- package/test/conformance/cases/arithmetic/extra_div_float_exact.pl +2 -0
- package/test/conformance/cases/arithmetic/extra_div_integer_trunc.pl +2 -0
- package/test/conformance/cases/arithmetic/extra_division_by_zero_fails.pl +2 -0
- package/test/conformance/cases/arithmetic/extra_exp_zero.pl +2 -0
- package/test/conformance/cases/arithmetic/extra_log_one.pl +2 -0
- package/test/conformance/cases/arithmetic/extra_mod_negative_right.pl +2 -0
- package/test/conformance/cases/arithmetic/extra_pow_large_integer.pl +2 -0
- package/test/conformance/cases/arithmetic/float_add_and_div.pl +3 -0
- package/test/conformance/cases/arithmetic/min_max_mixed.pl +3 -0
- package/test/conformance/cases/arithmetic/mod_negative_left.pl +2 -0
- package/test/conformance/cases/arithmetic/neg_abs_integer.pl +4 -0
- package/test/conformance/cases/arithmetic/pow_negative_exponent_fails.pl +2 -0
- package/test/conformance/cases/arithmetic/pow_zero_exponent.pl +2 -0
- package/test/conformance/cases/arithmetic/rounding_negative_float.pl +5 -0
- package/test/conformance/cases/arithmetic/smallest_divisor_prime.pl +2 -0
- package/test/conformance/cases/arithmetic/sqrt_negative_fails.pl +2 -0
- package/test/conformance/cases/atoms/008_graphic_atoms.pl +6 -0
- package/test/conformance/cases/atoms/008_graphic_atoms.query +1 -1
- package/test/conformance/cases/atoms/016_arity_zero_atom.pl +4 -0
- package/test/conformance/cases/atoms/018_quoted_atom_readback.pl +6 -0
- package/test/conformance/cases/atoms/018_quoted_atom_readback.query +1 -1
- package/test/conformance/cases/atoms/103_angle_iri_atoms.pl +7 -0
- package/test/conformance/cases/atoms/angle_iri_percent_encoded.pl +2 -0
- package/test/conformance/cases/atoms/extra_iri_mailto_plus.pl +2 -0
- package/test/conformance/cases/atoms/extra_iri_uuid_scheme.pl +2 -0
- package/test/conformance/cases/atoms/graphic_angle_atom_stays_graphic.pl +4 -0
- package/test/conformance/cases/atoms/graphic_less_than_atom.pl +4 -0
- package/test/conformance/cases/atoms/iri_atoms_in_lists.pl +4 -0
- package/test/conformance/cases/atoms/iri_mailto_readback.pl +4 -0
- package/test/conformance/cases/atoms/iri_query_fragment_readback.pl +4 -0
- package/test/conformance/cases/atoms/iri_quoted_absolute_readback.pl +5 -0
- package/test/conformance/cases/atoms/iri_quoted_and_angle_unify.pl +3 -0
- package/test/conformance/cases/atoms/iri_urn_readback.pl +4 -0
- package/test/conformance/cases/atoms/quoted_urn_iri_readback.pl +4 -0
- package/test/conformance/cases/atoms/zero_arity_atom_roundtrip.pl +5 -0
- package/test/conformance/cases/builtins/037_matching_and_comparison.query +1 -1
- package/test/conformance/cases/builtins/076_composed_reusable_builtins.pl +8 -0
- package/test/conformance/cases/builtins/100_reusable_builtin_workflow.pl +10 -0
- package/test/conformance/cases/builtins/atom_string_iri_atom.pl +3 -0
- package/test/conformance/cases/builtins/eq_unifies_iri_atoms.pl +3 -0
- package/test/conformance/cases/builtins/extra_difference_end_before_start_fails.pl +2 -0
- package/test/conformance/cases/builtins/extra_difference_invalid_date_fails.pl +2 -0
- package/test/conformance/cases/builtins/extra_eq_binds_both_sides.pl +2 -0
- package/test/conformance/cases/builtins/extra_neq_different_iri_atoms.pl +2 -0
- package/test/conformance/cases/builtins/extra_neq_same_iri_fails.pl +2 -0
- package/test/conformance/cases/context/032_holds_parts.pl +4 -0
- package/test/conformance/cases/context/051_nested_holds_parts.pl +4 -0
- package/test/conformance/cases/context/052_holds_member.pl +3 -0
- package/test/conformance/cases/context/094_context_holds_enumeration.pl +7 -0
- package/test/conformance/cases/context/extra_holds_atom_parts.pl +2 -0
- package/test/conformance/cases/context/extra_holds_ignores_string_parts.pl +2 -0
- package/test/conformance/cases/context/extra_holds_list_parts.pl +2 -0
- package/test/conformance/cases/context/extra_holds_term_nested_order.pl +2 -0
- package/test/conformance/cases/context/holds_parts_from_formula.pl +2 -0
- package/test/conformance/cases/control/014_failure_filters_answers.pl +7 -0
- package/test/conformance/cases/control/014_failure_filters_answers.query +1 -1
- package/test/conformance/cases/control/043_once_user_predicate.pl +5 -0
- package/test/conformance/cases/control/043_once_user_predicate.query +1 -1
- package/test/conformance/cases/control/074_forall_edges.pl +10 -0
- package/test/conformance/cases/control/097_control_negation_once_forall.pl +13 -0
- package/test/conformance/cases/control/extra_forall_bound_check.pl +2 -0
- package/test/conformance/cases/control/extra_forall_counterexample_fails.pl +2 -0
- package/test/conformance/cases/control/extra_not_unbound_existing_goal_fails.pl +3 -0
- package/test/conformance/cases/control/extra_not_unbound_unknown_goal_succeeds.pl +2 -0
- package/test/conformance/cases/control/extra_once_preserves_binding.pl +2 -0
- package/test/conformance/cases/control/forall_detects_counterexample.pl +5 -0
- package/test/conformance/cases/control/forall_empty_generator_true.pl +2 -0
- package/test/conformance/cases/control/negation_with_bound_generator.pl +5 -0
- package/test/conformance/cases/control/once_keeps_first_answer.pl +4 -0
- package/test/conformance/cases/declarations/104_mode_determinism_declarations.pl +11 -0
- package/test/conformance/cases/declarations/memoize_is_ordinary_fact.pl +4 -0
- package/test/conformance/cases/declarations/mode_determinism_are_facts.pl +8 -0
- package/test/conformance/cases/declarations/table_is_also_fact.pl +4 -0
- package/test/conformance/cases/lists/005_list_deconstruction.pl +6 -0
- package/test/conformance/cases/lists/005_list_deconstruction.query +1 -1
- package/test/conformance/cases/lists/015_improper_list_unification.pl +6 -0
- package/test/conformance/cases/lists/015_improper_list_unification.query +1 -1
- package/test/conformance/cases/lists/020_nested_list_terms.pl +5 -0
- package/test/conformance/cases/lists/020_nested_list_terms.query +1 -1
- package/test/conformance/cases/lists/031_lists_aggregation_ordering.pl +10 -0
- package/test/conformance/cases/lists/031_lists_aggregation_ordering.query +1 -1
- package/test/conformance/cases/lists/035_list_relations.pl +5 -0
- package/test/conformance/cases/lists/035_list_relations.query +1 -1
- package/test/conformance/cases/lists/036_append_splits.pl +3 -0
- package/test/conformance/cases/lists/036_append_splits.query +1 -1
- package/test/conformance/cases/lists/045_sort_deduplicates_atoms.pl +3 -0
- package/test/conformance/cases/lists/045_sort_deduplicates_atoms.query +1 -1
- package/test/conformance/cases/lists/046_append_bound_prefix_suffix.pl +4 -0
- package/test/conformance/cases/lists/046_append_bound_prefix_suffix.query +1 -1
- package/test/conformance/cases/lists/047_nth0_index_generation.pl +3 -0
- package/test/conformance/cases/lists/047_nth0_index_generation.query +1 -1
- package/test/conformance/cases/lists/048_set_nth0_edges.pl +4 -0
- package/test/conformance/cases/lists/048_set_nth0_edges.query +1 -1
- package/test/conformance/cases/lists/049_select_duplicate_occurrences.pl +3 -0
- package/test/conformance/cases/lists/049_select_duplicate_occurrences.query +1 -1
- package/test/conformance/cases/lists/063_reusable_list_builtins.pl +11 -0
- package/test/conformance/cases/lists/067_list_edges.pl +10 -0
- package/test/conformance/cases/lists/068_list_generation_order.pl +7 -0
- package/test/conformance/cases/lists/069_list_summaries_and_sets.pl +9 -0
- package/test/conformance/cases/lists/084_append_and_select_composition.pl +7 -0
- package/test/conformance/cases/lists/085_nth_and_update_edges.pl +8 -0
- package/test/conformance/cases/lists/086_slicing_pipeline.pl +10 -0
- package/test/conformance/cases/lists/087_sort_reverse_length.pl +8 -0
- package/test/conformance/cases/lists/088_list_summaries_failures.pl +8 -0
- package/test/conformance/cases/lists/empty_list_term.pl +4 -0
- package/test/conformance/cases/lists/extra_append_all_splits_three.pl +2 -0
- package/test/conformance/cases/lists/extra_append_to_improper_tail.pl +2 -0
- package/test/conformance/cases/lists/extra_drop_all.pl +2 -0
- package/test/conformance/cases/lists/extra_head_and_rest_improper.pl +2 -0
- package/test/conformance/cases/lists/extra_last_singleton.pl +2 -0
- package/test/conformance/cases/lists/extra_length_improper_fails.pl +2 -0
- package/test/conformance/cases/lists/extra_list_to_set_stable_order.pl +2 -0
- package/test/conformance/cases/lists/extra_member_repeated_nested.pl +2 -0
- package/test/conformance/cases/lists/extra_nth0_duplicate_indexes.pl +2 -0
- package/test/conformance/cases/lists/extra_reverse_nested_terms.pl +2 -0
- package/test/conformance/cases/lists/extra_select_structured_duplicate.pl +2 -0
- package/test/conformance/cases/lists/extra_slice_end.pl +2 -0
- package/test/conformance/cases/lists/extra_sort_iri_atoms.pl +2 -0
- package/test/conformance/cases/lists/extra_take_all.pl +2 -0
- package/test/conformance/cases/lists/head_rest_last.pl +4 -0
- package/test/conformance/cases/lists/improper_list_readback.pl +4 -0
- package/test/conformance/cases/lists/length_empty_and_nested.pl +3 -0
- package/test/conformance/cases/lists/list_to_set_structural_duplicates.pl +2 -0
- package/test/conformance/cases/lists/list_with_iri_atoms.pl +4 -0
- package/test/conformance/cases/lists/min_list_empty_fails.pl +2 -0
- package/test/conformance/cases/lists/nth0_out_of_range_fails.pl +2 -0
- package/test/conformance/cases/lists/reverse_empty.pl +2 -0
- package/test/conformance/cases/lists/select_all_occurrences.pl +2 -0
- package/test/conformance/cases/lists/set_nth0_middle.pl +2 -0
- package/test/conformance/cases/lists/slice_middle.pl +2 -0
- package/test/conformance/cases/lists/slice_out_of_range_fails.pl +2 -0
- package/test/conformance/cases/lists/sort_structured_terms.pl +2 -0
- package/test/conformance/cases/lists/sum_list_empty_zero.pl +2 -0
- package/test/conformance/cases/lists/sum_min_max_list.pl +4 -0
- package/test/conformance/cases/lists/take_zero_and_drop_all.pl +3 -0
- package/test/conformance/cases/materialize/027_default_derived_output.pl +5 -0
- package/test/conformance/cases/materialize/028_materialize_focus.pl +5 -0
- package/test/conformance/cases/materialize/053_materialize_excludes_source_fact.pl +6 -0
- package/test/conformance/cases/materialize/099_materialize_multiple_arities.pl +8 -0
- package/test/conformance/cases/materialize/source_facts_suppressed.pl +5 -0
- package/test/conformance/cases/negation/033_negation_once_generators.pl +7 -0
- package/test/conformance/cases/negation/033_negation_once_generators.query +1 -1
- package/test/conformance/cases/negation/042_negation_filter.pl +7 -0
- package/test/conformance/cases/negation/042_negation_filter.query +1 -1
- package/test/conformance/cases/negation/050_not_member_filter.pl +6 -0
- package/test/conformance/cases/negation/050_not_member_filter.query +1 -1
- package/test/conformance/cases/negation/stratified_negation_answers.pl +6 -0
- package/test/conformance/cases/rules/001_fact_output.pl +4 -0
- package/test/conformance/cases/rules/002_rule_recursion.pl +7 -0
- package/test/conformance/cases/rules/002_rule_recursion.query +1 -1
- package/test/conformance/cases/rules/011_predicate_arity.pl +6 -0
- package/test/conformance/cases/rules/011_predicate_arity.query +1 -1
- package/test/conformance/cases/rules/013_multiple_clauses_order.pl +6 -0
- package/test/conformance/cases/rules/013_multiple_clauses_order.query +1 -1
- package/test/conformance/cases/rules/017_three_step_recursion.pl +8 -0
- package/test/conformance/cases/rules/017_three_step_recursion.query +1 -1
- package/test/conformance/cases/rules/022_rule_head_structure.pl +5 -0
- package/test/conformance/cases/rules/077_recursive_path_with_lists.pl +10 -0
- package/test/conformance/cases/rules/078_mutual_recursion_with_arithmetic.pl +7 -0
- package/test/conformance/cases/rules/extra_left_to_right_multiple_bindings.pl +5 -0
- package/test/conformance/cases/rules/extra_structured_head_rule.pl +3 -0
- package/test/conformance/cases/rules/left_to_right_body_binding.pl +4 -0
- package/test/conformance/cases/rules/transitive_rule_three_edges.pl +7 -0
- package/test/conformance/cases/strings/023_quoted_escapes_readback.pl +5 -0
- package/test/conformance/cases/strings/030_strings_and_atoms.pl +4 -0
- package/test/conformance/cases/strings/030_strings_and_atoms.query +1 -1
- package/test/conformance/cases/strings/055_string_matching_filters.pl +6 -0
- package/test/conformance/cases/strings/055_string_matching_filters.query +1 -1
- package/test/conformance/cases/strings/056_string_and_atom_concat.pl +3 -0
- package/test/conformance/cases/strings/056_string_and_atom_concat.query +1 -1
- package/test/conformance/cases/strings/064_reusable_string_builtins.pl +12 -0
- package/test/conformance/cases/strings/070_matches_named_captures.pl +13 -0
- package/test/conformance/cases/strings/071_string_edges.pl +10 -0
- package/test/conformance/cases/strings/072_string_conversions.pl +10 -0
- package/test/conformance/cases/strings/089_string_split_join_pipeline.pl +7 -0
- package/test/conformance/cases/strings/090_string_substring_replace_edges.pl +9 -0
- package/test/conformance/cases/strings/091_string_case_and_trim.pl +7 -0
- package/test/conformance/cases/strings/092_scalar_string_conversions.pl +9 -0
- package/test/conformance/cases/strings/093_regex_named_captures_context.pl +8 -0
- package/test/conformance/cases/strings/atom_string_from_string.pl +2 -0
- package/test/conformance/cases/strings/casefold_atoms.pl +3 -0
- package/test/conformance/cases/strings/extra_atom_string_number_input.pl +2 -0
- package/test/conformance/cases/strings/extra_join_empty_list.pl +2 -0
- package/test/conformance/cases/strings/extra_join_iri_and_atom.pl +2 -0
- package/test/conformance/cases/strings/extra_lowercase_iri_atom.pl +2 -0
- package/test/conformance/cases/strings/extra_named_regex_optional_missing.pl +2 -0
- package/test/conformance/cases/strings/extra_number_string_atom_input.pl +2 -0
- package/test/conformance/cases/strings/extra_replace_multiple.pl +2 -0
- package/test/conformance/cases/strings/extra_split_empty_separator.pl +2 -0
- package/test/conformance/cases/strings/extra_substring_last_char.pl +2 -0
- package/test/conformance/cases/strings/extra_term_string_iri_list.pl +2 -0
- package/test/conformance/cases/strings/extra_uppercase_mixed_string.pl +2 -0
- package/test/conformance/cases/strings/join_mixed_scalars.pl +2 -0
- package/test/conformance/cases/strings/named_regex_two_groups.pl +2 -0
- package/test/conformance/cases/strings/number_string_from_string.pl +2 -0
- package/test/conformance/cases/strings/number_string_rejects_non_numeric.pl +2 -0
- package/test/conformance/cases/strings/replace_empty_search_no_change.pl +2 -0
- package/test/conformance/cases/strings/split_without_separator_match.pl +2 -0
- package/test/conformance/cases/strings/substring_out_of_range_fails.pl +2 -0
- package/test/conformance/cases/strings/substring_zero_count.pl +2 -0
- package/test/conformance/cases/strings/term_string_nested_term.pl +2 -0
- package/test/conformance/cases/strings/trim_tabs_and_spaces.pl +3 -0
- package/test/conformance/cases/syntax/004_conjunction_and_parentheses.pl +5 -0
- package/test/conformance/cases/syntax/004_conjunction_and_parentheses.query +1 -1
- package/test/conformance/cases/syntax/006_comma_formula_data.pl +4 -0
- package/test/conformance/cases/syntax/006_comma_formula_data.query +1 -1
- package/test/conformance/cases/syntax/009_comments_and_whitespace.pl +5 -0
- package/test/conformance/cases/syntax/009_comments_and_whitespace.query +1 -1
- package/test/conformance/cases/syntax/019_parenthesized_three_conjuncts.pl +7 -0
- package/test/conformance/cases/syntax/019_parenthesized_three_conjuncts.query +1 -1
- package/test/conformance/cases/syntax/025_body_parentheses_with_formula_data.pl +5 -0
- package/test/conformance/cases/syntax/parenthesized_query_style_body.pl +5 -0
- package/test/conformance/cases/table/038_table_declaration.pl +8 -0
- package/test/conformance/cases/table/038_table_declaration.query +1 -1
- package/test/conformance/cases/table/102_table_declaration.pl +11 -0
- package/test/conformance/cases/table/extra_table_bound_cycle.pl +7 -0
- package/test/conformance/cases/table/extra_table_open_call_fallback.pl +5 -0
- package/test/conformance/cases/table/table_does_not_change_answers.pl +7 -0
- package/test/conformance/cases/table/tabled_left_recursion_path.pl +7 -0
- package/test/conformance/cases/terms/003_terms_and_readback.pl +16 -0
- package/test/conformance/cases/terms/003_terms_and_readback.query +1 -1
- package/test/conformance/cases/terms/065_reusable_term_control_builtins.pl +11 -0
- package/test/conformance/cases/terms/073_term_introspection_edges.pl +11 -0
- package/test/conformance/cases/terms/095_term_introspection_roundtrip.pl +8 -0
- package/test/conformance/cases/terms/096_functor_scalar_edges.pl +8 -0
- package/test/conformance/cases/terms/arg_first_and_second.pl +3 -0
- package/test/conformance/cases/terms/arg_zero_fails.pl +2 -0
- package/test/conformance/cases/terms/compound_name_arguments_atom_zero_args.pl +3 -0
- package/test/conformance/cases/terms/compound_name_arguments_bad_args_fail.pl +2 -0
- package/test/conformance/cases/terms/compound_name_arguments_builds_atom_from_empty_args.pl +3 -0
- package/test/conformance/cases/terms/compound_name_arguments_builds_compound.pl +2 -0
- package/test/conformance/cases/terms/compound_name_arguments_iri_name.pl +2 -0
- package/test/conformance/cases/terms/extra_arg_atom_fails.pl +2 -0
- package/test/conformance/cases/terms/extra_arg_first_last.pl +2 -0
- package/test/conformance/cases/terms/extra_arg_zero_fails.pl +2 -0
- package/test/conformance/cases/terms/extra_compound_name_arguments_bad_args_fails.pl +2 -0
- package/test/conformance/cases/terms/extra_compound_name_arguments_construct_atom_zero.pl +2 -0
- package/test/conformance/cases/terms/extra_compound_name_arguments_construct_iri.pl +2 -0
- package/test/conformance/cases/terms/extra_compound_name_arguments_decompose_list.pl +2 -0
- package/test/conformance/cases/terms/extra_functor_list_cons.pl +2 -0
- package/test/conformance/cases/terms/extra_functor_number_scalar.pl +2 -0
- package/test/conformance/cases/terms/extra_functor_string_scalar.pl +2 -0
- package/test/conformance/cases/terms/functor_atom_arity_zero.pl +3 -0
- package/test/conformance/cases/terms/functor_number_and_string.pl +3 -0
- package/test/conformance/cases/terms/herbrand_witness_one_input.pl +5 -0
- package/test/conformance/cases/terms/herbrand_witness_two_inputs.pl +5 -0
- package/test/conformance/cases/terms/term_string_readback_iri_list.pl +2 -0
- package/test/conformance/cases/unification/012_nested_compound_unification.pl +5 -0
- package/test/conformance/cases/unification/012_nested_compound_unification.query +1 -1
- package/test/conformance/cases/unification/021_repeated_variable_head.pl +7 -0
- package/test/conformance/cases/unification/034_equality_and_inequality.pl +6 -0
- package/test/conformance/cases/unification/034_equality_and_inequality.query +1 -1
- package/test/conformance/cases/unification/extra_eq_iri_and_quoted_atom.pl +2 -0
- package/test/conformance/cases/unification/extra_eq_list_tail_binding.pl +2 -0
- package/test/conformance/cases/unification/extra_eq_nested_repeated_fails.pl +2 -0
- package/test/conformance/cases/unification/extra_eq_nested_repeated_success.pl +2 -0
- package/test/conformance/cases/unification/extra_variable_clause_locality.pl +4 -0
- package/test/conformance/cases/unification/list_tail_binding.pl +2 -0
- package/test/conformance/cases/unification/nested_repeated_variable.pl +2 -0
- package/test/conformance/cases/variables/007_anonymous_variables.pl +5 -0
- package/test/conformance/cases/variables/007_anonymous_variables.query +1 -1
- package/test/conformance/cases/variables/010_variable_scope_and_reuse.pl +8 -0
- package/test/conformance/cases/variables/010_variable_scope_and_reuse.query +1 -1
- package/test/conformance/cases/variables/026_question_underscore_named_variable_reuse.pl +5 -0
- package/test/conformance/cases/variables/101_question_mark_variables.pl +7 -0
- package/test/conformance/cases/variables/anonymous_in_two_goals.pl +4 -0
- package/test/conformance/cases/variables/clause_local_variable_names.pl +5 -0
- package/test/conformance/cases/variables/extra_anonymous_not_reused.pl +2 -0
- package/test/conformance/cases/variables/extra_named_variable_reused.pl +2 -0
- package/test/conformance/cases/variables/extra_question_underscore_named_distinct.pl +2 -0
- package/test/conformance/cases/variables/extra_question_uppercase_named.pl +2 -0
- package/test/conformance/cases/variables/question_anonymous_not_reused.pl +6 -0
- package/test/conformance/cases/variables/question_underscore_named_reuse.pl +5 -0
- package/test/conformance/cases/variables/question_uppercase_variable.pl +4 -0
- package/test/conformance/cases/variables/question_variable_digits_and_underscore.pl +2 -0
- package/test/conformance/cases/variables/question_variable_uppercase_name.pl +2 -0
- package/test/conformance/cases/variables/variable_scope_per_clause.pl +6 -0
- package/test/conformance/errors/syntax/bad_question_variable.pl +1 -0
- package/test/conformance/errors/variables/bare_underscore_in_list_rejected.pl +1 -0
- package/test/conformance/errors/variables/bare_underscore_name_in_compound_rejected.pl +1 -0
- package/test/conformance/errors/variables/bare_underscore_rejected.pl +1 -0
- package/test/conformance/errors/variables/extra_bare_underscore_in_rule_head.pl +1 -0
- package/test/conformance/errors/variables/extra_question_dash_variable.pl +1 -0
- package/test/conformance/errors/variables/extra_uppercase_in_list.pl +1 -0
- package/test/conformance/errors/variables/question_dot_rejected.pl +1 -0
- package/test/conformance/errors/variables/underscore_named_rejected.pl +1 -0
- package/test/conformance/errors/variables/uppercase_in_body_rejected.pl +1 -0
- package/test/conformance/errors/variables/uppercase_variable_rejected.pl +1 -0
- package/test/conformance/expected/aggregation/extra_aggregate_max_iri_key.pl +1 -0
- package/test/conformance/expected/atoms/103_angle_iri_atoms.pl +3 -0
- package/test/conformance/expected/atoms/iri_atoms_in_lists.pl +1 -0
- package/test/conformance/expected/atoms/iri_mailto_readback.pl +1 -0
- package/test/conformance/expected/atoms/iri_query_fragment_readback.pl +1 -0
- package/test/conformance/expected/atoms/iri_quoted_absolute_readback.pl +2 -0
- package/test/conformance/expected/atoms/iri_urn_readback.pl +1 -0
- package/test/conformance/expected/atoms/quoted_urn_iri_readback.pl +1 -0
- package/test/conformance/expected/builtins/atom_string_iri_atom.pl +1 -0
- package/test/conformance/expected/builtins/extra_neq_same_iri_fails.pl +1 -0
- package/test/conformance/expected/lists/extra_reverse_nested_terms.pl +1 -0
- package/test/conformance/expected/lists/extra_sort_iri_atoms.pl +1 -0
- package/test/conformance/expected/lists/list_with_iri_atoms.pl +1 -0
- package/test/conformance/expected/strings/extra_join_iri_and_atom.pl +1 -0
- package/test/conformance/expected/strings/extra_lowercase_iri_atom.pl +1 -0
- package/test/conformance/expected/strings/extra_term_string_iri_list.pl +1 -0
- package/test/conformance/expected/strings/term_string_nested_term.pl +1 -0
- package/test/conformance/expected/terms/compound_name_arguments_iri_name.pl +1 -0
- package/test/conformance/expected/terms/extra_compound_name_arguments_construct_iri.pl +1 -0
- package/test/conformance/expected/terms/term_string_readback_iri_list.pl +1 -0
- package/test/conformance/expected/unification/extra_eq_nested_repeated_fails.pl +0 -0
- package/test/conformance/expected/unification/extra_neq_scalar_same_lexical_fails.pl +0 -0
- package/test/conformance/expected-errors/syntax/bad_question_variable.txt +1 -1
- package/test/conformance/expected-errors/syntax/uppercase_predicate_rejected.txt +1 -1
- package/test/conformance/expected-errors/variables/bare_underscore_in_list_rejected.txt +1 -1
- package/test/conformance/expected-errors/variables/bare_underscore_name_in_compound_rejected.txt +1 -1
- package/test/conformance/expected-errors/variables/bare_underscore_rejected.txt +1 -1
- package/test/conformance/expected-errors/variables/extra_bare_underscore_in_rule_head.txt +1 -1
- package/test/conformance/expected-errors/variables/extra_uppercase_in_list.txt +1 -1
- package/test/conformance/expected-errors/variables/underscore_named_rejected.txt +1 -1
- package/test/conformance/expected-errors/variables/uppercase_in_body_rejected.txt +1 -1
- package/test/conformance/expected-errors/variables/uppercase_variable_rejected.txt +1 -1
- package/test/conformance/expected-proofs/proofs/bindings_nested_term.pl +16 -0
- package/test/conformance/expected-proofs/proofs/builtin_numeric.pl +16 -0
- package/test/conformance/expected-proofs/proofs/extra_aggregate_min.pl +16 -0
- package/test/conformance/expected-proofs/proofs/extra_compound_name_arguments.pl +16 -0
- package/test/conformance/expected-proofs/proofs/extra_eq_builtin.pl +16 -0
- package/test/conformance/expected-proofs/proofs/extra_findall_builtin.pl +16 -0
- package/test/conformance/expected-proofs/proofs/extra_forall_builtin.pl +15 -0
- package/test/conformance/expected-proofs/proofs/extra_holds_parts.pl +32 -0
- package/test/conformance/expected-proofs/proofs/extra_iri_join.pl +16 -0
- package/test/conformance/expected-proofs/proofs/extra_nested_list_binding.pl +16 -0
- package/test/conformance/expected-proofs/proofs/extra_once_member.pl +22 -0
- package/test/conformance/expected-proofs/proofs/extra_recursive_path.pl +59 -0
- package/test/conformance/expected-proofs/proofs/extra_table_path_bound.pl +57 -0
- package/test/conformance/expected-proofs/proofs/herbrand_witness.pl +16 -0
- package/test/conformance/expected-proofs/proofs/iri_atom.pl +16 -0
- package/test/conformance/expected-proofs/proofs/list_builtin.pl +20 -0
- package/test/conformance/expected-proofs/proofs/once_child.pl +22 -0
- package/test/conformance/expected-proofs/proofs/rule_fact.pl +16 -0
- package/test/conformance/expected-proofs/proofs/table_recursive.pl +59 -0
- package/test/conformance/proofs/proofs/bindings_nested_term.pl +4 -0
- package/test/conformance/proofs/proofs/builtin_numeric.pl +3 -0
- package/test/conformance/proofs/proofs/extra_aggregate_min.pl +4 -0
- package/test/conformance/proofs/proofs/extra_compound_name_arguments.pl +2 -0
- package/test/conformance/proofs/proofs/extra_eq_builtin.pl +2 -0
- package/test/conformance/proofs/proofs/extra_findall_builtin.pl +4 -0
- package/test/conformance/proofs/proofs/extra_forall_builtin.pl +2 -0
- package/test/conformance/proofs/proofs/extra_holds_parts.pl +2 -0
- package/test/conformance/proofs/proofs/extra_iri_join.pl +2 -0
- package/test/conformance/proofs/proofs/extra_nested_list_binding.pl +2 -0
- package/test/conformance/proofs/proofs/extra_once_member.pl +2 -0
- package/test/conformance/proofs/proofs/extra_recursive_path.pl +5 -0
- package/test/conformance/proofs/proofs/extra_table_path_bound.pl +7 -0
- package/test/conformance/proofs/proofs/herbrand_witness.pl +3 -0
- package/test/conformance/proofs/proofs/iri_atom.pl +4 -0
- package/test/conformance/proofs/proofs/list_builtin.pl +3 -0
- package/test/conformance/proofs/proofs/once_child.pl +5 -0
- package/test/conformance/proofs/proofs/rule_fact.pl +4 -0
- package/test/conformance/proofs/proofs/table_recursive.pl +7 -0
- package/test/conformance/warnings/negation/extra_stratified_negation_with_table_quiet.pl +6 -0
- package/test/conformance/warnings/negation/extra_unstratified_indirect_self_with_fact.pl +5 -0
- package/test/conformance/warnings/negation/extra_unstratified_positive_negative_loop.pl +5 -0
- package/test/conformance/warnings/negation/no_negation_quiet.pl +3 -0
- package/test/conformance/warnings/negation/stratified_negative_unknown_after_positive_quiet.pl +3 -0
- package/test/conformance/warnings/negation/stratified_two_level_quiet.pl +5 -0
- package/test/conformance/warnings/negation/unstratified_three_step.pl +6 -0
- package/test/conformance/warnings/negation/unstratified_with_iri_predicates.pl +4 -0
- package/test/run-conformance-report.mjs +5 -5
- package/test/run-conformance.mjs +9 -9
- package/test/run-examples.mjs +51 -51
- package/test/run-regression.mjs +95 -95
- package/examples/abstract-interpretation.eye +0 -50
- package/examples/access-control-policy.eye +0 -52
- package/examples/ackermann.eye +0 -47
- package/examples/age.eye +0 -26
- package/examples/aliases-and-namespaces.eye +0 -20
- package/examples/alignment-demo.eye +0 -44
- package/examples/allen-interval-calculus.eye +0 -64
- package/examples/ancestor.eye +0 -22
- package/examples/animal.eye +0 -21
- package/examples/annotation.eye +0 -34
- package/examples/auroracare.eye +0 -309
- package/examples/backward.eye +0 -11
- package/examples/basic-monadic.eye +0 -10032
- package/examples/bayes-diagnosis.eye +0 -108
- package/examples/bayes-therapy.eye +0 -189
- package/examples/beam-deflection.eye +0 -48
- package/examples/binomial-vandermonde.eye +0 -49
- package/examples/blocks-world-planning.eye +0 -77
- package/examples/bmi.eye +0 -232
- package/examples/braking-safety-worlds.eye +0 -69
- package/examples/buck-converter-design.eye +0 -83
- package/examples/cache-performance.eye +0 -56
- package/examples/canary-release.eye +0 -51
- package/examples/cat-koko.eye +0 -24
- package/examples/catalan-convolution.eye +0 -37
- package/examples/cdcl-sat-solver.eye +0 -65
- package/examples/chart-parser.eye +0 -65
- package/examples/clinical-trial-screening.eye +0 -97
- package/examples/collatz-1000.eye +0 -45
- package/examples/combinatorics-findall-sort.eye +0 -38
- package/examples/competitive-enzyme-kinetics.eye +0 -78
- package/examples/complex.eye +0 -133
- package/examples/composition-of-injective-functions-is-injective.eye +0 -50
- package/examples/context-association.eye +0 -53
- package/examples/context-schema-audit.eye +0 -46
- package/examples/continued-fraction-sqrt2.eye +0 -36
- package/examples/control-system.eye +0 -76
- package/examples/critical-path-schedule.eye +0 -82
- package/examples/cyclic-path.eye +0 -18
- package/examples/d3-group.eye +0 -99
- package/examples/dairy-energy-balance.eye +0 -66
- package/examples/data-negotiation.eye +0 -38
- package/examples/deep-taxonomy-10.eye +0 -106
- package/examples/deep-taxonomy-100.eye +0 -376
- package/examples/deep-taxonomy-1000.eye +0 -3076
- package/examples/deep-taxonomy-10000.eye +0 -30076
- package/examples/deep-taxonomy-100000.eye +0 -300076
- package/examples/delfour.eye +0 -281
- package/examples/deontic-logic.eye +0 -52
- package/examples/derived-backward-rule.eye +0 -30
- package/examples/derived-rule.eye +0 -27
- package/examples/diamond-property.eye +0 -38
- package/examples/dijkstra-findall-sort.eye +0 -43
- package/examples/dijkstra-risk-path.eye +0 -87
- package/examples/dijkstra.eye +0 -50
- package/examples/dining-philosophers.eye +0 -147
- package/examples/dog.eye +0 -25
- package/examples/dpv-odrl-purpose-mapping.eye +0 -48
- package/examples/drone-corridor-planner.eye +0 -48
- package/examples/easter-computus.eye +0 -88
- package/examples/electrical-rc-filter.eye +0 -37
- package/examples/epidemic-policy.eye +0 -66
- package/examples/equality-saturation.eye +0 -84
- package/examples/equivalence-classes-overlap-implies-same-class.eye +0 -27
- package/examples/eulerian-path.eye +0 -87
- package/examples/ev-range-worlds.eye +0 -87
- package/examples/existential-rule.eye +0 -14
- package/examples/exoplanet-validation-worlds.eye +0 -94
- package/examples/expression-eval.eye +0 -45
- package/examples/family-cousins.eye +0 -67
- package/examples/fastpow.eye +0 -61
- package/examples/fft8-numeric.eye +0 -85
- package/examples/fibonacci.eye +0 -60
- package/examples/field-nitrogen-balance.eye +0 -73
- package/examples/flandor.eye +0 -296
- package/examples/floating-point.eye +0 -28
- package/examples/four-color-map.eye +0 -133
- package/examples/fundamental-theorem-arithmetic.eye +0 -119
- package/examples/gd-step-certified.eye +0 -162
- package/examples/gdpr-compliance.eye +0 -69
- package/examples/good-cobbler.eye +0 -16
- package/examples/gps.eye +0 -146
- package/examples/graph-reachability.eye +0 -33
- package/examples/graph.eye +0 -35
- package/examples/gray-code-counter.eye +0 -47
- package/examples/greatest-lower-bound-uniqueness.eye +0 -30
- package/examples/group-inverse-uniqueness.eye +0 -36
- package/examples/hamiltonian-path.eye +0 -51
- package/examples/hamming-code.eye +0 -109
- package/examples/hanoi.eye +0 -19
- package/examples/heat-loss.eye +0 -56
- package/examples/herbrand-witnesses.eye +0 -31
- package/examples/heron-theorem.eye +0 -42
- package/examples/ideal-gas-law.eye +0 -39
- package/examples/illegitimate-reasoning.eye +0 -88
- package/examples/integer-partitions.eye +0 -35
- package/examples/intuitionistic-logic-kripke.eye +0 -69
- package/examples/job-shop-scheduling.eye +0 -48
- package/examples/knapsack-optimization.eye +0 -46
- package/examples/knowledge-engineering-alignment-flow.eye +0 -46
- package/examples/knuth-bendix-completion.eye +0 -55
- package/examples/language.eye +0 -25
- package/examples/law-of-cosines.eye +0 -37
- package/examples/least-squares-regression.eye +0 -85
- package/examples/linear-logic-resources.eye +0 -51
- package/examples/list-collection.eye +0 -35
- package/examples/lldm.eye +0 -80
- package/examples/manufacturing-quality-control.eye +0 -73
- package/examples/map-four-color-search.eye +0 -65
- package/examples/markov-logic-network.eye +0 -87
- package/examples/matrix-chain-order.eye +0 -79
- package/examples/matrix-noncommutativity.eye +0 -43
- package/examples/microgrid-dispatch.eye +0 -89
- package/examples/missionaries-cannibals.eye +0 -53
- package/examples/modal-logic-kripke.eye +0 -45
- package/examples/modular-exponentiation.eye +0 -35
- package/examples/monkey-bananas.eye +0 -45
- package/examples/n-queens-8.eye +0 -35
- package/examples/network-sla.eye +0 -48
- package/examples/newton-raphson.eye +0 -48
- package/examples/nixon-diamond.eye +0 -37
- package/examples/observability-log-correlation.eye +0 -40
- package/examples/odrl-dpv-fpv-trust-flow.eye +0 -51
- package/examples/odrl-dpv-healthcare-risk-ranked.eye +0 -270
- package/examples/odrl-dpv-risk-ranked.eye +0 -320
- package/examples/orbital-transfer-design.eye +0 -116
- package/examples/output/language.eye +0 -6
- package/examples/output/web-names.eye +0 -3
- package/examples/partial-evaluator.eye +0 -74
- package/examples/path-discovery.eye +0 -45013
- package/examples/peano-arithmetic.eye +0 -33
- package/examples/peano-calculus.eye +0 -40
- package/examples/peasant.eye +0 -29
- package/examples/pell-equation.eye +0 -34
- package/examples/pendulum-period.eye +0 -50
- package/examples/pointer-analysis.eye +0 -50
- package/examples/polynomial.eye +0 -124
- package/examples/prime-range.eye +0 -45
- package/examples/proof/access-control-policy.eye +0 -158
- package/examples/proof/age.eye +0 -71
- package/examples/proof/aliases-and-namespaces.eye +0 -78
- package/examples/proof/ancestor.eye +0 -140
- package/examples/proof/animal.eye +0 -68
- package/examples/proof/annotation.eye +0 -80
- package/examples/proof/backward.eye +0 -22
- package/examples/proof/bayes-diagnosis.eye +0 -208
- package/examples/proof/beam-deflection.eye +0 -227
- package/examples/proof/cache-performance.eye +0 -310
- package/examples/proof/canary-release.eye +0 -172
- package/examples/proof/cat-koko.eye +0 -86
- package/examples/proof/chart-parser.eye +0 -474
- package/examples/proof/clinical-trial-screening.eye +0 -389
- package/examples/proof/composition-of-injective-functions-is-injective.eye +0 -258
- package/examples/proof/context-association.eye +0 -78
- package/examples/proof/data-negotiation.eye +0 -76
- package/examples/proof/deontic-logic.eye +0 -109
- package/examples/proof/derived-backward-rule.eye +0 -74
- package/examples/proof/derived-rule.eye +0 -43
- package/examples/proof/diamond-property.eye +0 -307
- package/examples/proof/dog.eye +0 -31
- package/examples/proof/dpv-odrl-purpose-mapping.eye +0 -348
- package/examples/proof/electrical-rc-filter.eye +0 -105
- package/examples/proof/epidemic-policy.eye +0 -774
- package/examples/proof/equivalence-classes-overlap-implies-same-class.eye +0 -1098
- package/examples/proof/existential-rule.eye +0 -32
- package/examples/proof/expression-eval.eye +0 -105
- package/examples/proof/floating-point.eye +0 -160
- package/examples/proof/gdpr-compliance.eye +0 -199
- package/examples/proof/good-cobbler.eye +0 -16
- package/examples/proof/graph-reachability.eye +0 -151
- package/examples/proof/greatest-lower-bound-uniqueness.eye +0 -150
- package/examples/proof/group-inverse-uniqueness.eye +0 -84
- package/examples/proof/hanoi.eye +0 -185
- package/examples/proof/heat-loss.eye +0 -228
- package/examples/proof/ideal-gas-law.eye +0 -151
- package/examples/proof/intuitionistic-logic-kripke.eye +0 -133
- package/examples/proof/linear-logic-resources.eye +0 -205
- package/examples/proof/list-collection.eye +0 -52
- package/examples/proof/modal-logic-kripke.eye +0 -125
- package/examples/proof/nixon-diamond.eye +0 -181
- package/examples/proof/proof-contrapositive.eye +0 -78
- package/examples/proof/reusable-builtins.eye +0 -124
- package/examples/proof/security-incident-correlation.eye +0 -270
- package/examples/proof/socket-age.eye +0 -32
- package/examples/proof/socket-family.eye +0 -59
- package/examples/proof/socrates.eye +0 -38
- package/examples/proof/term-tools.eye +0 -95
- package/examples/proof/witch.eye +0 -216
- package/examples/proof-contrapositive.eye +0 -27
- package/examples/quadratic-formula.eye +0 -56
- package/examples/radioactive-decay.eye +0 -58
- package/examples/register-allocation.eye +0 -77
- package/examples/reusable-builtins.eye +0 -36
- package/examples/riemann-hypothesis.eye +0 -110
- package/examples/route-planning.eye +0 -33
- package/examples/sat-solver-dpll.eye +0 -88
- package/examples/security-incident-correlation.eye +0 -69
- package/examples/send-more-money.eye +0 -71
- package/examples/service-impact.eye +0 -41
- package/examples/shoelace-polygon-area.eye +0 -22
- package/examples/sieve.eye +0 -20
- package/examples/skolem-functions.eye +0 -52
- package/examples/socket-age.eye +0 -39
- package/examples/socket-family.eye +0 -28
- package/examples/socrates.eye +0 -19
- package/examples/stable-marriage.eye +0 -92
- package/examples/statistics-summary.eye +0 -56
- package/examples/stirling-bell-numbers.eye +0 -69
- package/examples/sudoku-4x4.eye +0 -54
- package/examples/superdense-coding.eye +0 -84
- package/examples/symbolic-derivative.eye +0 -39
- package/examples/term-tools.eye +0 -32
- package/examples/totient-summatory.eye +0 -33
- package/examples/trust-flow-provenance-threshold.eye +0 -47
- package/examples/truth-maintenance-system.eye +0 -62
- package/examples/turing.eye +0 -69
- package/examples/type-inference.eye +0 -58
- package/examples/vector-similarity.eye +0 -60
- package/examples/vulnerability-impact.eye +0 -69
- package/examples/web-names.eye +0 -39
- package/examples/weighted-interval-scheduling.eye +0 -81
- package/examples/witch.eye +0 -38
- package/examples/wolf-goat-cabbage.eye +0 -56
- package/examples/workplace-compliance.eye +0 -41
- package/examples/zebra.eye +0 -45
- package/test/conformance/cases/aggregation/044_findall_user_goal.eye +0 -6
- package/test/conformance/cases/aggregation/057_countall_empty_and_nonempty.eye +0 -4
- package/test/conformance/cases/aggregation/058_sumall_numeric_template.eye +0 -5
- package/test/conformance/cases/aggregation/059_aggregate_min_template.eye +0 -5
- package/test/conformance/cases/aggregation/060_aggregate_max_compound_key.eye +0 -5
- package/test/conformance/cases/aggregation/075_aggregation_edges.eye +0 -12
- package/test/conformance/cases/aggregation/098_aggregation_nested_templates.eye +0 -11
- package/test/conformance/cases/aggregation/aggregate_max_no_answers_fails.eye +0 -2
- package/test/conformance/cases/aggregation/aggregate_min_structured_key.eye +0 -5
- package/test/conformance/cases/aggregation/countall_zero.eye +0 -2
- package/test/conformance/cases/aggregation/extra_aggregate_max_iri_key.eye +0 -4
- package/test/conformance/cases/aggregation/extra_aggregate_min_tie_first.eye +0 -5
- package/test/conformance/cases/aggregation/extra_countall_with_filter.eye +0 -5
- package/test/conformance/cases/aggregation/extra_findall_repeated_template.eye +0 -4
- package/test/conformance/cases/aggregation/extra_sumall_float_template.eye +0 -4
- package/test/conformance/cases/aggregation/findall_empty_bag.eye +0 -2
- package/test/conformance/cases/aggregation/sumall_empty_zero.eye +0 -2
- package/test/conformance/cases/arithmetic/024_numeric_literal_readback.eye +0 -6
- package/test/conformance/cases/arithmetic/029_arithmetic_and_comparison.eye +0 -11
- package/test/conformance/cases/arithmetic/039_numeric_functions.eye +0 -9
- package/test/conformance/cases/arithmetic/040_between_enumeration.eye +0 -3
- package/test/conformance/cases/arithmetic/041_smallest_divisor.eye +0 -3
- package/test/conformance/cases/arithmetic/061_date_difference.eye +0 -4
- package/test/conformance/cases/arithmetic/062_reusable_numeric_builtins.eye +0 -10
- package/test/conformance/cases/arithmetic/066_numeric_edges.eye +0 -14
- package/test/conformance/cases/arithmetic/079_big_integer_arithmetic.eye +0 -8
- package/test/conformance/cases/arithmetic/080_rounding_modes.eye +0 -10
- package/test/conformance/cases/arithmetic/081_zero_safe_numeric_functions.eye +0 -9
- package/test/conformance/cases/arithmetic/083_between_modes_and_empty_ranges.eye +0 -8
- package/test/conformance/cases/arithmetic/between_singleton.eye +0 -2
- package/test/conformance/cases/arithmetic/extra_acos_one.eye +0 -2
- package/test/conformance/cases/arithmetic/extra_asin_zero.eye +0 -2
- package/test/conformance/cases/arithmetic/extra_atan2_axis.eye +0 -2
- package/test/conformance/cases/arithmetic/extra_difference_leap_day.eye +0 -2
- package/test/conformance/cases/arithmetic/extra_difference_same_day.eye +0 -2
- package/test/conformance/cases/arithmetic/extra_div_float_exact.eye +0 -2
- package/test/conformance/cases/arithmetic/extra_div_integer_trunc.eye +0 -2
- package/test/conformance/cases/arithmetic/extra_division_by_zero_fails.eye +0 -2
- package/test/conformance/cases/arithmetic/extra_exp_zero.eye +0 -2
- package/test/conformance/cases/arithmetic/extra_log_one.eye +0 -2
- package/test/conformance/cases/arithmetic/extra_mod_negative_right.eye +0 -2
- package/test/conformance/cases/arithmetic/extra_pow_large_integer.eye +0 -2
- package/test/conformance/cases/arithmetic/float_add_and_div.eye +0 -3
- package/test/conformance/cases/arithmetic/min_max_mixed.eye +0 -3
- package/test/conformance/cases/arithmetic/mod_negative_left.eye +0 -2
- package/test/conformance/cases/arithmetic/neg_abs_integer.eye +0 -4
- package/test/conformance/cases/arithmetic/pow_negative_exponent_fails.eye +0 -2
- package/test/conformance/cases/arithmetic/pow_zero_exponent.eye +0 -2
- package/test/conformance/cases/arithmetic/rounding_negative_float.eye +0 -5
- package/test/conformance/cases/arithmetic/smallest_divisor_prime.eye +0 -2
- package/test/conformance/cases/arithmetic/sqrt_negative_fails.eye +0 -2
- package/test/conformance/cases/atoms/008_graphic_atoms.eye +0 -6
- package/test/conformance/cases/atoms/016_arity_zero_atom.eye +0 -4
- package/test/conformance/cases/atoms/018_quoted_atom_readback.eye +0 -6
- package/test/conformance/cases/atoms/103_angle_iri_atoms.eye +0 -7
- package/test/conformance/cases/atoms/angle_iri_percent_encoded.eye +0 -2
- package/test/conformance/cases/atoms/extra_iri_mailto_plus.eye +0 -2
- package/test/conformance/cases/atoms/extra_iri_uuid_scheme.eye +0 -2
- package/test/conformance/cases/atoms/graphic_angle_atom_stays_graphic.eye +0 -4
- package/test/conformance/cases/atoms/graphic_less_than_atom.eye +0 -4
- package/test/conformance/cases/atoms/iri_atoms_in_lists.eye +0 -4
- package/test/conformance/cases/atoms/iri_mailto_readback.eye +0 -4
- package/test/conformance/cases/atoms/iri_query_fragment_readback.eye +0 -4
- package/test/conformance/cases/atoms/iri_quoted_absolute_readback.eye +0 -5
- package/test/conformance/cases/atoms/iri_quoted_and_angle_unify.eye +0 -3
- package/test/conformance/cases/atoms/iri_urn_readback.eye +0 -4
- package/test/conformance/cases/atoms/quoted_urn_iri_readback.eye +0 -4
- package/test/conformance/cases/atoms/zero_arity_atom_roundtrip.eye +0 -5
- package/test/conformance/cases/builtins/076_composed_reusable_builtins.eye +0 -8
- package/test/conformance/cases/builtins/100_reusable_builtin_workflow.eye +0 -10
- package/test/conformance/cases/builtins/atom_string_iri_atom.eye +0 -3
- package/test/conformance/cases/builtins/eq_unifies_iri_atoms.eye +0 -3
- package/test/conformance/cases/builtins/extra_difference_end_before_start_fails.eye +0 -2
- package/test/conformance/cases/builtins/extra_difference_invalid_date_fails.eye +0 -2
- package/test/conformance/cases/builtins/extra_eq_binds_both_sides.eye +0 -2
- package/test/conformance/cases/builtins/extra_neq_different_iri_atoms.eye +0 -2
- package/test/conformance/cases/builtins/extra_neq_same_iri_fails.eye +0 -2
- package/test/conformance/cases/context/032_holds_parts.eye +0 -4
- package/test/conformance/cases/context/051_nested_holds_parts.eye +0 -4
- package/test/conformance/cases/context/052_holds_member.eye +0 -3
- package/test/conformance/cases/context/094_context_holds_enumeration.eye +0 -7
- package/test/conformance/cases/context/extra_holds_atom_parts.eye +0 -2
- package/test/conformance/cases/context/extra_holds_ignores_string_parts.eye +0 -2
- package/test/conformance/cases/context/extra_holds_list_parts.eye +0 -2
- package/test/conformance/cases/context/extra_holds_term_nested_order.eye +0 -2
- package/test/conformance/cases/context/holds_parts_from_formula.eye +0 -2
- package/test/conformance/cases/control/014_failure_filters_answers.eye +0 -7
- package/test/conformance/cases/control/043_once_user_predicate.eye +0 -5
- package/test/conformance/cases/control/074_forall_edges.eye +0 -10
- package/test/conformance/cases/control/097_control_negation_once_forall.eye +0 -13
- package/test/conformance/cases/control/extra_forall_bound_check.eye +0 -2
- package/test/conformance/cases/control/extra_forall_counterexample_fails.eye +0 -2
- package/test/conformance/cases/control/extra_not_unbound_existing_goal_fails.eye +0 -3
- package/test/conformance/cases/control/extra_not_unbound_unknown_goal_succeeds.eye +0 -2
- package/test/conformance/cases/control/extra_once_preserves_binding.eye +0 -2
- package/test/conformance/cases/control/forall_detects_counterexample.eye +0 -5
- package/test/conformance/cases/control/forall_empty_generator_true.eye +0 -2
- package/test/conformance/cases/control/negation_with_bound_generator.eye +0 -5
- package/test/conformance/cases/control/once_keeps_first_answer.eye +0 -4
- package/test/conformance/cases/declarations/104_mode_determinism_declarations.eye +0 -11
- package/test/conformance/cases/declarations/memoize_is_ordinary_fact.eye +0 -4
- package/test/conformance/cases/declarations/mode_determinism_are_facts.eye +0 -8
- package/test/conformance/cases/declarations/table_is_also_fact.eye +0 -4
- package/test/conformance/cases/lists/005_list_deconstruction.eye +0 -6
- package/test/conformance/cases/lists/015_improper_list_unification.eye +0 -6
- package/test/conformance/cases/lists/020_nested_list_terms.eye +0 -5
- package/test/conformance/cases/lists/031_lists_aggregation_ordering.eye +0 -10
- package/test/conformance/cases/lists/035_list_relations.eye +0 -5
- package/test/conformance/cases/lists/036_append_splits.eye +0 -3
- package/test/conformance/cases/lists/045_sort_deduplicates_atoms.eye +0 -3
- package/test/conformance/cases/lists/046_append_bound_prefix_suffix.eye +0 -4
- package/test/conformance/cases/lists/047_nth0_index_generation.eye +0 -3
- package/test/conformance/cases/lists/048_set_nth0_edges.eye +0 -4
- package/test/conformance/cases/lists/049_select_duplicate_occurrences.eye +0 -3
- package/test/conformance/cases/lists/063_reusable_list_builtins.eye +0 -11
- package/test/conformance/cases/lists/067_list_edges.eye +0 -10
- package/test/conformance/cases/lists/068_list_generation_order.eye +0 -7
- package/test/conformance/cases/lists/069_list_summaries_and_sets.eye +0 -9
- package/test/conformance/cases/lists/084_append_and_select_composition.eye +0 -7
- package/test/conformance/cases/lists/085_nth_and_update_edges.eye +0 -8
- package/test/conformance/cases/lists/086_slicing_pipeline.eye +0 -10
- package/test/conformance/cases/lists/087_sort_reverse_length.eye +0 -8
- package/test/conformance/cases/lists/088_list_summaries_failures.eye +0 -8
- package/test/conformance/cases/lists/empty_list_term.eye +0 -4
- package/test/conformance/cases/lists/extra_append_all_splits_three.eye +0 -2
- package/test/conformance/cases/lists/extra_append_to_improper_tail.eye +0 -2
- package/test/conformance/cases/lists/extra_drop_all.eye +0 -2
- package/test/conformance/cases/lists/extra_head_and_rest_improper.eye +0 -2
- package/test/conformance/cases/lists/extra_last_singleton.eye +0 -2
- package/test/conformance/cases/lists/extra_length_improper_fails.eye +0 -2
- package/test/conformance/cases/lists/extra_list_to_set_stable_order.eye +0 -2
- package/test/conformance/cases/lists/extra_member_repeated_nested.eye +0 -2
- package/test/conformance/cases/lists/extra_nth0_duplicate_indexes.eye +0 -2
- package/test/conformance/cases/lists/extra_reverse_nested_terms.eye +0 -2
- package/test/conformance/cases/lists/extra_select_structured_duplicate.eye +0 -2
- package/test/conformance/cases/lists/extra_slice_end.eye +0 -2
- package/test/conformance/cases/lists/extra_sort_iri_atoms.eye +0 -2
- package/test/conformance/cases/lists/extra_take_all.eye +0 -2
- package/test/conformance/cases/lists/head_rest_last.eye +0 -4
- package/test/conformance/cases/lists/improper_list_readback.eye +0 -4
- package/test/conformance/cases/lists/length_empty_and_nested.eye +0 -3
- package/test/conformance/cases/lists/list_to_set_structural_duplicates.eye +0 -2
- package/test/conformance/cases/lists/list_with_iri_atoms.eye +0 -4
- package/test/conformance/cases/lists/min_list_empty_fails.eye +0 -2
- package/test/conformance/cases/lists/nth0_out_of_range_fails.eye +0 -2
- package/test/conformance/cases/lists/reverse_empty.eye +0 -2
- package/test/conformance/cases/lists/select_all_occurrences.eye +0 -2
- package/test/conformance/cases/lists/set_nth0_middle.eye +0 -2
- package/test/conformance/cases/lists/slice_middle.eye +0 -2
- package/test/conformance/cases/lists/slice_out_of_range_fails.eye +0 -2
- package/test/conformance/cases/lists/sort_structured_terms.eye +0 -2
- package/test/conformance/cases/lists/sum_list_empty_zero.eye +0 -2
- package/test/conformance/cases/lists/sum_min_max_list.eye +0 -4
- package/test/conformance/cases/lists/take_zero_and_drop_all.eye +0 -3
- package/test/conformance/cases/materialize/027_default_derived_output.eye +0 -5
- package/test/conformance/cases/materialize/028_materialize_focus.eye +0 -5
- package/test/conformance/cases/materialize/053_materialize_excludes_source_fact.eye +0 -6
- package/test/conformance/cases/materialize/099_materialize_multiple_arities.eye +0 -8
- package/test/conformance/cases/materialize/source_facts_suppressed.eye +0 -5
- package/test/conformance/cases/negation/033_negation_once_generators.eye +0 -7
- package/test/conformance/cases/negation/042_negation_filter.eye +0 -7
- package/test/conformance/cases/negation/050_not_member_filter.eye +0 -6
- package/test/conformance/cases/negation/stratified_negation_answers.eye +0 -6
- package/test/conformance/cases/rules/001_fact_output.eye +0 -4
- package/test/conformance/cases/rules/002_rule_recursion.eye +0 -7
- package/test/conformance/cases/rules/011_predicate_arity.eye +0 -6
- package/test/conformance/cases/rules/013_multiple_clauses_order.eye +0 -6
- package/test/conformance/cases/rules/017_three_step_recursion.eye +0 -8
- package/test/conformance/cases/rules/022_rule_head_structure.eye +0 -5
- package/test/conformance/cases/rules/077_recursive_path_with_lists.eye +0 -10
- package/test/conformance/cases/rules/078_mutual_recursion_with_arithmetic.eye +0 -7
- package/test/conformance/cases/rules/extra_left_to_right_multiple_bindings.eye +0 -5
- package/test/conformance/cases/rules/extra_structured_head_rule.eye +0 -3
- package/test/conformance/cases/rules/left_to_right_body_binding.eye +0 -4
- package/test/conformance/cases/rules/transitive_rule_three_edges.eye +0 -7
- package/test/conformance/cases/strings/023_quoted_escapes_readback.eye +0 -5
- package/test/conformance/cases/strings/030_strings_and_atoms.eye +0 -4
- package/test/conformance/cases/strings/055_string_matching_filters.eye +0 -6
- package/test/conformance/cases/strings/056_string_and_atom_concat.eye +0 -3
- package/test/conformance/cases/strings/064_reusable_string_builtins.eye +0 -12
- package/test/conformance/cases/strings/070_matches_named_captures.eye +0 -13
- package/test/conformance/cases/strings/071_string_edges.eye +0 -10
- package/test/conformance/cases/strings/072_string_conversions.eye +0 -10
- package/test/conformance/cases/strings/089_string_split_join_pipeline.eye +0 -7
- package/test/conformance/cases/strings/090_string_substring_replace_edges.eye +0 -9
- package/test/conformance/cases/strings/091_string_case_and_trim.eye +0 -7
- package/test/conformance/cases/strings/092_scalar_string_conversions.eye +0 -9
- package/test/conformance/cases/strings/093_regex_named_captures_context.eye +0 -8
- package/test/conformance/cases/strings/atom_string_from_string.eye +0 -2
- package/test/conformance/cases/strings/casefold_atoms.eye +0 -3
- package/test/conformance/cases/strings/extra_atom_string_number_input.eye +0 -2
- package/test/conformance/cases/strings/extra_join_empty_list.eye +0 -2
- package/test/conformance/cases/strings/extra_join_iri_and_atom.eye +0 -2
- package/test/conformance/cases/strings/extra_lowercase_iri_atom.eye +0 -2
- package/test/conformance/cases/strings/extra_named_regex_optional_missing.eye +0 -2
- package/test/conformance/cases/strings/extra_number_string_atom_input.eye +0 -2
- package/test/conformance/cases/strings/extra_replace_multiple.eye +0 -2
- package/test/conformance/cases/strings/extra_split_empty_separator.eye +0 -2
- package/test/conformance/cases/strings/extra_substring_last_char.eye +0 -2
- package/test/conformance/cases/strings/extra_term_string_iri_list.eye +0 -2
- package/test/conformance/cases/strings/extra_uppercase_mixed_string.eye +0 -2
- package/test/conformance/cases/strings/join_mixed_scalars.eye +0 -2
- package/test/conformance/cases/strings/named_regex_two_groups.eye +0 -2
- package/test/conformance/cases/strings/number_string_from_string.eye +0 -2
- package/test/conformance/cases/strings/number_string_rejects_non_numeric.eye +0 -2
- package/test/conformance/cases/strings/replace_empty_search_no_change.eye +0 -2
- package/test/conformance/cases/strings/split_without_separator_match.eye +0 -2
- package/test/conformance/cases/strings/substring_out_of_range_fails.eye +0 -2
- package/test/conformance/cases/strings/substring_zero_count.eye +0 -2
- package/test/conformance/cases/strings/term_string_nested_term.eye +0 -2
- package/test/conformance/cases/strings/trim_tabs_and_spaces.eye +0 -3
- package/test/conformance/cases/syntax/004_conjunction_and_parentheses.eye +0 -5
- package/test/conformance/cases/syntax/006_comma_formula_data.eye +0 -4
- package/test/conformance/cases/syntax/009_comments_and_whitespace.eye +0 -5
- package/test/conformance/cases/syntax/019_parenthesized_three_conjuncts.eye +0 -7
- package/test/conformance/cases/syntax/025_body_parentheses_with_formula_data.eye +0 -5
- package/test/conformance/cases/syntax/parenthesized_query_style_body.eye +0 -5
- package/test/conformance/cases/table/038_table_declaration.eye +0 -8
- package/test/conformance/cases/table/102_table_declaration.eye +0 -11
- package/test/conformance/cases/table/extra_table_bound_cycle.eye +0 -7
- package/test/conformance/cases/table/extra_table_open_call_fallback.eye +0 -5
- package/test/conformance/cases/table/table_does_not_change_answers.eye +0 -7
- package/test/conformance/cases/table/tabled_left_recursion_path.eye +0 -7
- package/test/conformance/cases/terms/003_terms_and_readback.eye +0 -16
- package/test/conformance/cases/terms/065_reusable_term_control_builtins.eye +0 -11
- package/test/conformance/cases/terms/073_term_introspection_edges.eye +0 -11
- package/test/conformance/cases/terms/095_term_introspection_roundtrip.eye +0 -8
- package/test/conformance/cases/terms/096_functor_scalar_edges.eye +0 -8
- package/test/conformance/cases/terms/arg_first_and_second.eye +0 -3
- package/test/conformance/cases/terms/arg_zero_fails.eye +0 -2
- package/test/conformance/cases/terms/compound_name_arguments_atom_zero_args.eye +0 -3
- package/test/conformance/cases/terms/compound_name_arguments_bad_args_fail.eye +0 -2
- package/test/conformance/cases/terms/compound_name_arguments_builds_atom_from_empty_args.eye +0 -3
- package/test/conformance/cases/terms/compound_name_arguments_builds_compound.eye +0 -2
- package/test/conformance/cases/terms/compound_name_arguments_iri_name.eye +0 -2
- package/test/conformance/cases/terms/extra_arg_atom_fails.eye +0 -2
- package/test/conformance/cases/terms/extra_arg_first_last.eye +0 -2
- package/test/conformance/cases/terms/extra_arg_zero_fails.eye +0 -2
- package/test/conformance/cases/terms/extra_compound_name_arguments_bad_args_fails.eye +0 -2
- package/test/conformance/cases/terms/extra_compound_name_arguments_construct_atom_zero.eye +0 -2
- package/test/conformance/cases/terms/extra_compound_name_arguments_construct_iri.eye +0 -2
- package/test/conformance/cases/terms/extra_compound_name_arguments_decompose_list.eye +0 -2
- package/test/conformance/cases/terms/extra_functor_list_cons.eye +0 -2
- package/test/conformance/cases/terms/extra_functor_number_scalar.eye +0 -2
- package/test/conformance/cases/terms/extra_functor_string_scalar.eye +0 -2
- package/test/conformance/cases/terms/functor_atom_arity_zero.eye +0 -3
- package/test/conformance/cases/terms/functor_number_and_string.eye +0 -3
- package/test/conformance/cases/terms/herbrand_witness_one_input.eye +0 -5
- package/test/conformance/cases/terms/herbrand_witness_two_inputs.eye +0 -5
- package/test/conformance/cases/terms/term_string_readback_iri_list.eye +0 -2
- package/test/conformance/cases/unification/012_nested_compound_unification.eye +0 -5
- package/test/conformance/cases/unification/021_repeated_variable_head.eye +0 -7
- package/test/conformance/cases/unification/034_equality_and_inequality.eye +0 -6
- package/test/conformance/cases/unification/extra_eq_iri_and_quoted_atom.eye +0 -2
- package/test/conformance/cases/unification/extra_eq_list_tail_binding.eye +0 -2
- package/test/conformance/cases/unification/extra_eq_nested_repeated_fails.eye +0 -2
- package/test/conformance/cases/unification/extra_eq_nested_repeated_success.eye +0 -2
- package/test/conformance/cases/unification/extra_variable_clause_locality.eye +0 -4
- package/test/conformance/cases/unification/list_tail_binding.eye +0 -2
- package/test/conformance/cases/unification/nested_repeated_variable.eye +0 -2
- package/test/conformance/cases/variables/007_anonymous_variables.eye +0 -5
- package/test/conformance/cases/variables/010_variable_scope_and_reuse.eye +0 -8
- package/test/conformance/cases/variables/026_question_underscore_named_variable_reuse.eye +0 -5
- package/test/conformance/cases/variables/101_question_mark_variables.eye +0 -7
- package/test/conformance/cases/variables/anonymous_in_two_goals.eye +0 -4
- package/test/conformance/cases/variables/clause_local_variable_names.eye +0 -5
- package/test/conformance/cases/variables/extra_anonymous_not_reused.eye +0 -2
- package/test/conformance/cases/variables/extra_named_variable_reused.eye +0 -2
- package/test/conformance/cases/variables/extra_question_underscore_named_distinct.eye +0 -2
- package/test/conformance/cases/variables/extra_question_uppercase_named.eye +0 -2
- package/test/conformance/cases/variables/question_anonymous_not_reused.eye +0 -6
- package/test/conformance/cases/variables/question_underscore_named_reuse.eye +0 -5
- package/test/conformance/cases/variables/question_uppercase_variable.eye +0 -4
- package/test/conformance/cases/variables/question_variable_digits_and_underscore.eye +0 -2
- package/test/conformance/cases/variables/question_variable_uppercase_name.eye +0 -2
- package/test/conformance/cases/variables/variable_scope_per_clause.eye +0 -6
- package/test/conformance/errors/syntax/bad_question_variable.eye +0 -1
- package/test/conformance/errors/variables/bare_underscore_in_list_rejected.eye +0 -1
- package/test/conformance/errors/variables/bare_underscore_name_in_compound_rejected.eye +0 -1
- package/test/conformance/errors/variables/bare_underscore_rejected.eye +0 -1
- package/test/conformance/errors/variables/extra_bare_underscore_in_rule_head.eye +0 -1
- package/test/conformance/errors/variables/extra_question_dash_variable.eye +0 -1
- package/test/conformance/errors/variables/extra_uppercase_in_list.eye +0 -1
- package/test/conformance/errors/variables/question_dot_rejected.eye +0 -1
- package/test/conformance/errors/variables/underscore_named_rejected.eye +0 -1
- package/test/conformance/errors/variables/uppercase_in_body_rejected.eye +0 -1
- package/test/conformance/errors/variables/uppercase_variable_rejected.eye +0 -1
- package/test/conformance/expected/aggregation/extra_aggregate_max_iri_key.eye +0 -1
- package/test/conformance/expected/atoms/103_angle_iri_atoms.eye +0 -3
- package/test/conformance/expected/atoms/iri_atoms_in_lists.eye +0 -1
- package/test/conformance/expected/atoms/iri_mailto_readback.eye +0 -1
- package/test/conformance/expected/atoms/iri_query_fragment_readback.eye +0 -1
- package/test/conformance/expected/atoms/iri_quoted_absolute_readback.eye +0 -2
- package/test/conformance/expected/atoms/iri_urn_readback.eye +0 -1
- package/test/conformance/expected/atoms/quoted_urn_iri_readback.eye +0 -1
- package/test/conformance/expected/builtins/atom_string_iri_atom.eye +0 -1
- package/test/conformance/expected/lists/extra_reverse_nested_terms.eye +0 -1
- package/test/conformance/expected/lists/extra_sort_iri_atoms.eye +0 -1
- package/test/conformance/expected/lists/list_with_iri_atoms.eye +0 -1
- package/test/conformance/expected/strings/extra_join_iri_and_atom.eye +0 -1
- package/test/conformance/expected/strings/extra_lowercase_iri_atom.eye +0 -1
- package/test/conformance/expected/strings/extra_term_string_iri_list.eye +0 -1
- package/test/conformance/expected/strings/term_string_nested_term.eye +0 -1
- package/test/conformance/expected/terms/compound_name_arguments_iri_name.eye +0 -1
- package/test/conformance/expected/terms/extra_compound_name_arguments_construct_iri.eye +0 -1
- package/test/conformance/expected/terms/term_string_readback_iri_list.eye +0 -1
- package/test/conformance/expected/unification/extra_eq_iri_and_quoted_atom.eye +0 -1
- package/test/conformance/expected/variables/question_variable_digits_and_underscore.eye +0 -1
- package/test/conformance/expected/variables/question_variable_uppercase_name.eye +0 -1
- package/test/conformance/expected-proofs/proofs/bindings_nested_term.eye +0 -16
- package/test/conformance/expected-proofs/proofs/builtin_numeric.eye +0 -16
- package/test/conformance/expected-proofs/proofs/extra_aggregate_min.eye +0 -16
- package/test/conformance/expected-proofs/proofs/extra_compound_name_arguments.eye +0 -16
- package/test/conformance/expected-proofs/proofs/extra_eq_builtin.eye +0 -16
- package/test/conformance/expected-proofs/proofs/extra_findall_builtin.eye +0 -16
- package/test/conformance/expected-proofs/proofs/extra_forall_builtin.eye +0 -15
- package/test/conformance/expected-proofs/proofs/extra_holds_parts.eye +0 -32
- package/test/conformance/expected-proofs/proofs/extra_iri_join.eye +0 -16
- package/test/conformance/expected-proofs/proofs/extra_nested_list_binding.eye +0 -16
- package/test/conformance/expected-proofs/proofs/extra_once_member.eye +0 -22
- package/test/conformance/expected-proofs/proofs/extra_recursive_path.eye +0 -59
- package/test/conformance/expected-proofs/proofs/extra_table_path_bound.eye +0 -57
- package/test/conformance/expected-proofs/proofs/herbrand_witness.eye +0 -16
- package/test/conformance/expected-proofs/proofs/iri_atom.eye +0 -16
- package/test/conformance/expected-proofs/proofs/list_builtin.eye +0 -20
- package/test/conformance/expected-proofs/proofs/once_child.eye +0 -22
- package/test/conformance/expected-proofs/proofs/rule_fact.eye +0 -16
- package/test/conformance/expected-proofs/proofs/table_recursive.eye +0 -59
- package/test/conformance/proofs/proofs/bindings_nested_term.eye +0 -4
- package/test/conformance/proofs/proofs/builtin_numeric.eye +0 -3
- package/test/conformance/proofs/proofs/extra_aggregate_min.eye +0 -4
- package/test/conformance/proofs/proofs/extra_compound_name_arguments.eye +0 -2
- package/test/conformance/proofs/proofs/extra_eq_builtin.eye +0 -2
- package/test/conformance/proofs/proofs/extra_findall_builtin.eye +0 -4
- package/test/conformance/proofs/proofs/extra_forall_builtin.eye +0 -2
- package/test/conformance/proofs/proofs/extra_holds_parts.eye +0 -2
- package/test/conformance/proofs/proofs/extra_iri_join.eye +0 -2
- package/test/conformance/proofs/proofs/extra_nested_list_binding.eye +0 -2
- package/test/conformance/proofs/proofs/extra_once_member.eye +0 -2
- package/test/conformance/proofs/proofs/extra_recursive_path.eye +0 -5
- package/test/conformance/proofs/proofs/extra_table_path_bound.eye +0 -7
- package/test/conformance/proofs/proofs/herbrand_witness.eye +0 -3
- package/test/conformance/proofs/proofs/iri_atom.eye +0 -4
- package/test/conformance/proofs/proofs/list_builtin.eye +0 -3
- package/test/conformance/proofs/proofs/once_child.eye +0 -5
- package/test/conformance/proofs/proofs/rule_fact.eye +0 -4
- package/test/conformance/proofs/proofs/table_recursive.eye +0 -7
- package/test/conformance/warnings/negation/extra_stratified_negation_with_table_quiet.eye +0 -6
- package/test/conformance/warnings/negation/extra_unstratified_indirect_self_with_fact.eye +0 -5
- package/test/conformance/warnings/negation/extra_unstratified_positive_negative_loop.eye +0 -5
- package/test/conformance/warnings/negation/no_negation_quiet.eye +0 -3
- package/test/conformance/warnings/negation/stratified_negative_unknown_after_positive_quiet.eye +0 -3
- package/test/conformance/warnings/negation/stratified_two_level_quiet.eye +0 -5
- package/test/conformance/warnings/negation/unstratified_three_step.eye +0 -6
- package/test/conformance/warnings/negation/unstratified_with_iri_predicates.eye +0 -4
- /package/examples/output/{abstract-interpretation.eye → abstract-interpretation.pl} +0 -0
- /package/examples/output/{access-control-policy.eye → access-control-policy.pl} +0 -0
- /package/examples/output/{ackermann.eye → ackermann.pl} +0 -0
- /package/examples/output/{age.eye → age.pl} +0 -0
- /package/examples/output/{aliases-and-namespaces.eye → aliases-and-namespaces.pl} +0 -0
- /package/examples/output/{alignment-demo.eye → alignment-demo.pl} +0 -0
- /package/examples/output/{allen-interval-calculus.eye → allen-interval-calculus.pl} +0 -0
- /package/examples/output/{ancestor.eye → ancestor.pl} +0 -0
- /package/examples/output/{animal.eye → animal.pl} +0 -0
- /package/examples/output/{annotation.eye → annotation.pl} +0 -0
- /package/examples/output/{auroracare.eye → auroracare.pl} +0 -0
- /package/examples/output/{backward.eye → backward.pl} +0 -0
- /package/examples/output/{basic-monadic.eye → basic-monadic.pl} +0 -0
- /package/examples/output/{bayes-diagnosis.eye → bayes-diagnosis.pl} +0 -0
- /package/examples/output/{bayes-therapy.eye → bayes-therapy.pl} +0 -0
- /package/examples/output/{beam-deflection.eye → beam-deflection.pl} +0 -0
- /package/examples/output/{binomial-vandermonde.eye → binomial-vandermonde.pl} +0 -0
- /package/examples/output/{blocks-world-planning.eye → blocks-world-planning.pl} +0 -0
- /package/examples/output/{bmi.eye → bmi.pl} +0 -0
- /package/examples/output/{braking-safety-worlds.eye → braking-safety-worlds.pl} +0 -0
- /package/examples/output/{buck-converter-design.eye → buck-converter-design.pl} +0 -0
- /package/examples/output/{cache-performance.eye → cache-performance.pl} +0 -0
- /package/examples/output/{canary-release.eye → canary-release.pl} +0 -0
- /package/examples/output/{cat-koko.eye → cat-koko.pl} +0 -0
- /package/examples/output/{catalan-convolution.eye → catalan-convolution.pl} +0 -0
- /package/examples/output/{cdcl-sat-solver.eye → cdcl-sat-solver.pl} +0 -0
- /package/examples/output/{chart-parser.eye → chart-parser.pl} +0 -0
- /package/examples/output/{clinical-trial-screening.eye → clinical-trial-screening.pl} +0 -0
- /package/examples/output/{collatz-1000.eye → collatz-1000.pl} +0 -0
- /package/examples/output/{combinatorics-findall-sort.eye → combinatorics-findall-sort.pl} +0 -0
- /package/examples/output/{competitive-enzyme-kinetics.eye → competitive-enzyme-kinetics.pl} +0 -0
- /package/examples/output/{complex.eye → complex.pl} +0 -0
- /package/examples/output/{composition-of-injective-functions-is-injective.eye → composition-of-injective-functions-is-injective.pl} +0 -0
- /package/examples/output/{context-association.eye → context-association.pl} +0 -0
- /package/examples/output/{context-schema-audit.eye → context-schema-audit.pl} +0 -0
- /package/examples/output/{continued-fraction-sqrt2.eye → continued-fraction-sqrt2.pl} +0 -0
- /package/examples/output/{control-system.eye → control-system.pl} +0 -0
- /package/examples/output/{critical-path-schedule.eye → critical-path-schedule.pl} +0 -0
- /package/examples/output/{cyclic-path.eye → cyclic-path.pl} +0 -0
- /package/examples/output/{d3-group.eye → d3-group.pl} +0 -0
- /package/examples/output/{dairy-energy-balance.eye → dairy-energy-balance.pl} +0 -0
- /package/examples/output/{data-negotiation.eye → data-negotiation.pl} +0 -0
- /package/examples/output/{deep-taxonomy-10.eye → deep-taxonomy-10.pl} +0 -0
- /package/examples/output/{deep-taxonomy-100.eye → deep-taxonomy-100.pl} +0 -0
- /package/examples/output/{deep-taxonomy-1000.eye → deep-taxonomy-1000.pl} +0 -0
- /package/examples/output/{deep-taxonomy-10000.eye → deep-taxonomy-10000.pl} +0 -0
- /package/examples/output/{deep-taxonomy-100000.eye → deep-taxonomy-100000.pl} +0 -0
- /package/examples/output/{delfour.eye → delfour.pl} +0 -0
- /package/examples/output/{deontic-logic.eye → deontic-logic.pl} +0 -0
- /package/examples/output/{derived-backward-rule.eye → derived-backward-rule.pl} +0 -0
- /package/examples/output/{derived-rule.eye → derived-rule.pl} +0 -0
- /package/examples/output/{diamond-property.eye → diamond-property.pl} +0 -0
- /package/examples/output/{dijkstra-findall-sort.eye → dijkstra-findall-sort.pl} +0 -0
- /package/examples/output/{dijkstra-risk-path.eye → dijkstra-risk-path.pl} +0 -0
- /package/examples/output/{dijkstra.eye → dijkstra.pl} +0 -0
- /package/examples/output/{dining-philosophers.eye → dining-philosophers.pl} +0 -0
- /package/examples/output/{dog.eye → dog.pl} +0 -0
- /package/examples/output/{dpv-odrl-purpose-mapping.eye → dpv-odrl-purpose-mapping.pl} +0 -0
- /package/examples/output/{drone-corridor-planner.eye → drone-corridor-planner.pl} +0 -0
- /package/examples/output/{easter-computus.eye → easter-computus.pl} +0 -0
- /package/examples/output/{electrical-rc-filter.eye → electrical-rc-filter.pl} +0 -0
- /package/examples/output/{epidemic-policy.eye → epidemic-policy.pl} +0 -0
- /package/examples/output/{equality-saturation.eye → equality-saturation.pl} +0 -0
- /package/examples/output/{equivalence-classes-overlap-implies-same-class.eye → equivalence-classes-overlap-implies-same-class.pl} +0 -0
- /package/examples/output/{eulerian-path.eye → eulerian-path.pl} +0 -0
- /package/examples/output/{ev-range-worlds.eye → ev-range-worlds.pl} +0 -0
- /package/examples/output/{existential-rule.eye → existential-rule.pl} +0 -0
- /package/examples/output/{exoplanet-validation-worlds.eye → exoplanet-validation-worlds.pl} +0 -0
- /package/examples/output/{expression-eval.eye → expression-eval.pl} +0 -0
- /package/examples/output/{family-cousins.eye → family-cousins.pl} +0 -0
- /package/examples/output/{fastpow.eye → fastpow.pl} +0 -0
- /package/examples/output/{fft8-numeric.eye → fft8-numeric.pl} +0 -0
- /package/examples/output/{fibonacci.eye → fibonacci.pl} +0 -0
- /package/examples/output/{field-nitrogen-balance.eye → field-nitrogen-balance.pl} +0 -0
- /package/examples/output/{flandor.eye → flandor.pl} +0 -0
- /package/examples/output/{floating-point.eye → floating-point.pl} +0 -0
- /package/examples/output/{four-color-map.eye → four-color-map.pl} +0 -0
- /package/examples/output/{fundamental-theorem-arithmetic.eye → fundamental-theorem-arithmetic.pl} +0 -0
- /package/examples/output/{gd-step-certified.eye → gd-step-certified.pl} +0 -0
- /package/examples/output/{gdpr-compliance.eye → gdpr-compliance.pl} +0 -0
- /package/examples/output/{good-cobbler.eye → good-cobbler.pl} +0 -0
- /package/examples/output/{gps.eye → gps.pl} +0 -0
- /package/examples/output/{graph-reachability.eye → graph-reachability.pl} +0 -0
- /package/examples/output/{graph.eye → graph.pl} +0 -0
- /package/examples/output/{gray-code-counter.eye → gray-code-counter.pl} +0 -0
- /package/examples/output/{greatest-lower-bound-uniqueness.eye → greatest-lower-bound-uniqueness.pl} +0 -0
- /package/examples/output/{group-inverse-uniqueness.eye → group-inverse-uniqueness.pl} +0 -0
- /package/examples/output/{hamiltonian-path.eye → hamiltonian-path.pl} +0 -0
- /package/examples/output/{hamming-code.eye → hamming-code.pl} +0 -0
- /package/examples/output/{hanoi.eye → hanoi.pl} +0 -0
- /package/examples/output/{heat-loss.eye → heat-loss.pl} +0 -0
- /package/examples/output/{herbrand-witnesses.eye → herbrand-witnesses.pl} +0 -0
- /package/examples/output/{heron-theorem.eye → heron-theorem.pl} +0 -0
- /package/examples/output/{ideal-gas-law.eye → ideal-gas-law.pl} +0 -0
- /package/examples/output/{illegitimate-reasoning.eye → illegitimate-reasoning.pl} +0 -0
- /package/examples/output/{integer-partitions.eye → integer-partitions.pl} +0 -0
- /package/examples/output/{intuitionistic-logic-kripke.eye → intuitionistic-logic-kripke.pl} +0 -0
- /package/examples/output/{job-shop-scheduling.eye → job-shop-scheduling.pl} +0 -0
- /package/examples/output/{knapsack-optimization.eye → knapsack-optimization.pl} +0 -0
- /package/examples/output/{knowledge-engineering-alignment-flow.eye → knowledge-engineering-alignment-flow.pl} +0 -0
- /package/examples/output/{knuth-bendix-completion.eye → knuth-bendix-completion.pl} +0 -0
- /package/examples/output/{law-of-cosines.eye → law-of-cosines.pl} +0 -0
- /package/examples/output/{least-squares-regression.eye → least-squares-regression.pl} +0 -0
- /package/examples/output/{linear-logic-resources.eye → linear-logic-resources.pl} +0 -0
- /package/examples/output/{list-collection.eye → list-collection.pl} +0 -0
- /package/examples/output/{lldm.eye → lldm.pl} +0 -0
- /package/examples/output/{manufacturing-quality-control.eye → manufacturing-quality-control.pl} +0 -0
- /package/examples/output/{map-four-color-search.eye → map-four-color-search.pl} +0 -0
- /package/examples/output/{markov-logic-network.eye → markov-logic-network.pl} +0 -0
- /package/examples/output/{matrix-chain-order.eye → matrix-chain-order.pl} +0 -0
- /package/examples/output/{matrix-noncommutativity.eye → matrix-noncommutativity.pl} +0 -0
- /package/examples/output/{microgrid-dispatch.eye → microgrid-dispatch.pl} +0 -0
- /package/examples/output/{missionaries-cannibals.eye → missionaries-cannibals.pl} +0 -0
- /package/examples/output/{modal-logic-kripke.eye → modal-logic-kripke.pl} +0 -0
- /package/examples/output/{modular-exponentiation.eye → modular-exponentiation.pl} +0 -0
- /package/examples/output/{monkey-bananas.eye → monkey-bananas.pl} +0 -0
- /package/examples/output/{n-queens-8.eye → n-queens-8.pl} +0 -0
- /package/examples/output/{network-sla.eye → network-sla.pl} +0 -0
- /package/examples/output/{newton-raphson.eye → newton-raphson.pl} +0 -0
- /package/examples/output/{nixon-diamond.eye → nixon-diamond.pl} +0 -0
- /package/examples/output/{observability-log-correlation.eye → observability-log-correlation.pl} +0 -0
- /package/examples/output/{odrl-dpv-fpv-trust-flow.eye → odrl-dpv-fpv-trust-flow.pl} +0 -0
- /package/examples/output/{odrl-dpv-healthcare-risk-ranked.eye → odrl-dpv-healthcare-risk-ranked.pl} +0 -0
- /package/examples/output/{odrl-dpv-risk-ranked.eye → odrl-dpv-risk-ranked.pl} +0 -0
- /package/examples/output/{orbital-transfer-design.eye → orbital-transfer-design.pl} +0 -0
- /package/examples/output/{partial-evaluator.eye → partial-evaluator.pl} +0 -0
- /package/examples/output/{path-discovery.eye → path-discovery.pl} +0 -0
- /package/examples/output/{peano-arithmetic.eye → peano-arithmetic.pl} +0 -0
- /package/examples/output/{peano-calculus.eye → peano-calculus.pl} +0 -0
- /package/examples/output/{peasant.eye → peasant.pl} +0 -0
- /package/examples/output/{pell-equation.eye → pell-equation.pl} +0 -0
- /package/examples/output/{pendulum-period.eye → pendulum-period.pl} +0 -0
- /package/examples/output/{pointer-analysis.eye → pointer-analysis.pl} +0 -0
- /package/examples/output/{polynomial.eye → polynomial.pl} +0 -0
- /package/examples/output/{prime-range.eye → prime-range.pl} +0 -0
- /package/examples/output/{proof-contrapositive.eye → proof-contrapositive.pl} +0 -0
- /package/examples/output/{quadratic-formula.eye → quadratic-formula.pl} +0 -0
- /package/examples/output/{radioactive-decay.eye → radioactive-decay.pl} +0 -0
- /package/examples/output/{register-allocation.eye → register-allocation.pl} +0 -0
- /package/examples/output/{reusable-builtins.eye → reusable-builtins.pl} +0 -0
- /package/examples/output/{riemann-hypothesis.eye → riemann-hypothesis.pl} +0 -0
- /package/examples/output/{route-planning.eye → route-planning.pl} +0 -0
- /package/examples/output/{sat-solver-dpll.eye → sat-solver-dpll.pl} +0 -0
- /package/examples/output/{security-incident-correlation.eye → security-incident-correlation.pl} +0 -0
- /package/examples/output/{send-more-money.eye → send-more-money.pl} +0 -0
- /package/examples/output/{service-impact.eye → service-impact.pl} +0 -0
- /package/examples/output/{shoelace-polygon-area.eye → shoelace-polygon-area.pl} +0 -0
- /package/examples/output/{sieve.eye → sieve.pl} +0 -0
- /package/examples/output/{skolem-functions.eye → skolem-functions.pl} +0 -0
- /package/examples/output/{socket-age.eye → socket-age.pl} +0 -0
- /package/examples/output/{socket-family.eye → socket-family.pl} +0 -0
- /package/examples/output/{socrates.eye → socrates.pl} +0 -0
- /package/examples/output/{stable-marriage.eye → stable-marriage.pl} +0 -0
- /package/examples/output/{statistics-summary.eye → statistics-summary.pl} +0 -0
- /package/examples/output/{stirling-bell-numbers.eye → stirling-bell-numbers.pl} +0 -0
- /package/examples/output/{sudoku-4x4.eye → sudoku-4x4.pl} +0 -0
- /package/examples/output/{superdense-coding.eye → superdense-coding.pl} +0 -0
- /package/examples/output/{symbolic-derivative.eye → symbolic-derivative.pl} +0 -0
- /package/examples/output/{term-tools.eye → term-tools.pl} +0 -0
- /package/examples/output/{totient-summatory.eye → totient-summatory.pl} +0 -0
- /package/examples/output/{trust-flow-provenance-threshold.eye → trust-flow-provenance-threshold.pl} +0 -0
- /package/examples/output/{truth-maintenance-system.eye → truth-maintenance-system.pl} +0 -0
- /package/examples/output/{turing.eye → turing.pl} +0 -0
- /package/examples/output/{type-inference.eye → type-inference.pl} +0 -0
- /package/examples/output/{vector-similarity.eye → vector-similarity.pl} +0 -0
- /package/examples/output/{vulnerability-impact.eye → vulnerability-impact.pl} +0 -0
- /package/examples/output/{weighted-interval-scheduling.eye → weighted-interval-scheduling.pl} +0 -0
- /package/examples/output/{witch.eye → witch.pl} +0 -0
- /package/examples/output/{wolf-goat-cabbage.eye → wolf-goat-cabbage.pl} +0 -0
- /package/examples/output/{workplace-compliance.eye → workplace-compliance.pl} +0 -0
- /package/examples/output/{zebra.eye → zebra.pl} +0 -0
- /package/test/conformance/cases/arithmetic/{054_numeric_and_lexical_comparison.eye → 054_numeric_and_lexical_comparison.pl} +0 -0
- /package/test/conformance/cases/arithmetic/{082_comparison_semantics.eye → 082_comparison_semantics.pl} +0 -0
- /package/test/conformance/cases/arithmetic/{between_bound_value.eye → between_bound_value.pl} +0 -0
- /package/test/conformance/cases/arithmetic/{duration_comparison.eye → duration_comparison.pl} +0 -0
- /package/test/conformance/cases/arithmetic/{extra_ge_equal_duration.eye → extra_ge_equal_duration.pl} +0 -0
- /package/test/conformance/cases/arithmetic/{extra_le_equal_string.eye → extra_le_equal_string.pl} +0 -0
- /package/test/conformance/cases/atoms/{extra_graphic_backslash_atom.eye → extra_graphic_backslash_atom.pl} +0 -0
- /package/test/conformance/cases/atoms/{extra_quoted_atom_with_quote_readback.eye → extra_quoted_atom_with_quote_readback.pl} +0 -0
- /package/test/conformance/cases/atoms/{graphic_atom_predicate.eye → graphic_atom_predicate.pl} +0 -0
- /package/test/conformance/cases/atoms/{iri_as_predicate_name_quoted.eye → iri_as_predicate_name_quoted.pl} +0 -0
- /package/test/conformance/cases/atoms/{quoted_relative_iri_not_angle.eye → quoted_relative_iri_not_angle.pl} +0 -0
- /package/test/conformance/cases/builtins/{037_matching_and_comparison.eye → 037_matching_and_comparison.pl} +0 -0
- /package/test/conformance/cases/context/{holds_compound_formula.eye → holds_compound_formula.pl} +0 -0
- /package/test/conformance/cases/context/{holds_fails_when_missing.eye → holds_fails_when_missing.pl} +0 -0
- /package/test/conformance/cases/control/{double_negation_ground_goal.eye → double_negation_ground_goal.pl} +0 -0
- /package/test/conformance/cases/control/{extra_once_empty_fails.eye → extra_once_empty_fails.pl} +0 -0
- /package/test/conformance/cases/declarations/{det_semidet_do_not_emit_without_materialize.eye → det_semidet_do_not_emit_without_materialize.pl} +0 -0
- /package/test/conformance/cases/declarations/{mode_ignored_when_arity_mismatch.eye → mode_ignored_when_arity_mismatch.pl} +0 -0
- /package/test/conformance/cases/lists/{extra_not_member_compound_fails.eye → extra_not_member_compound_fails.pl} +0 -0
- /package/test/conformance/cases/lists/{extra_not_member_compound_success.eye → extra_not_member_compound_success.pl} +0 -0
- /package/test/conformance/cases/lists/{nth0_known_value.eye → nth0_known_value.pl} +0 -0
- /package/test/conformance/cases/materialize/{arity_specific_outputs.eye → arity_specific_outputs.pl} +0 -0
- /package/test/conformance/cases/materialize/{extra_materialize_derived_only_with_same_source.eye → extra_materialize_derived_only_with_same_source.pl} +0 -0
- /package/test/conformance/cases/materialize/{extra_materialize_selects_arity.eye → extra_materialize_selects_arity.pl} +0 -0
- /package/test/conformance/cases/negation/{extra_not_with_bound_fails.eye → extra_not_with_bound_fails.pl} +0 -0
- /package/test/conformance/cases/negation/{extra_not_with_bound_success.eye → extra_not_with_bound_success.pl} +0 -0
- /package/test/conformance/cases/negation/{not_known_goal_fails.eye → not_known_goal_fails.pl} +0 -0
- /package/test/conformance/cases/negation/{not_unknown_goal_succeeds.eye → not_unknown_goal_succeeds.pl} +0 -0
- /package/test/conformance/cases/strings/{contains_empty_needle.eye → contains_empty_needle.pl} +0 -0
- /package/test/conformance/cases/strings/{extra_matches_invalid_pattern_fails.eye → extra_matches_invalid_pattern_fails.pl} +0 -0
- /package/test/conformance/cases/strings/{matches_simple_alternation.eye → matches_simple_alternation.pl} +0 -0
- /package/test/conformance/cases/strings/{not_matches_simple_pattern.eye → not_matches_simple_pattern.pl} +0 -0
- /package/test/conformance/cases/syntax/{comments_inside_program.eye → comments_inside_program.pl} +0 -0
- /package/test/conformance/cases/syntax/{extra_comments_after_terms.eye → extra_comments_after_terms.pl} +0 -0
- /package/test/conformance/cases/syntax/{extra_nested_parenthesized_body.eye → extra_nested_parenthesized_body.pl} +0 -0
- /package/test/conformance/cases/syntax/{quoted_atom_with_newline_escape.eye → quoted_atom_with_newline_escape.pl} +0 -0
- /package/test/conformance/cases/syntax/{string_with_tab_escape.eye → string_with_tab_escape.pl} +0 -0
- /package/test/conformance/cases/terms/{herbrand_witness_different_inputs_distinct.eye → herbrand_witness_different_inputs_distinct.pl} +0 -0
- /package/test/conformance/cases/terms/{herbrand_witness_same_inputs_same_term.eye → herbrand_witness_same_inputs_same_term.pl} +0 -0
- /package/test/conformance/cases/unification/{compound_arity_mismatch_fails.eye → compound_arity_mismatch_fails.pl} +0 -0
- /package/test/conformance/cases/unification/{extra_eq_scalar_number_atom.eye → extra_eq_scalar_number_atom.pl} +0 -0
- /package/test/conformance/cases/unification/{extra_eq_scalar_string_number.eye → extra_eq_scalar_string_number.pl} +0 -0
- /package/test/conformance/cases/unification/{extra_neq_compound_arity_mismatch.eye → extra_neq_compound_arity_mismatch.pl} +0 -0
- /package/test/conformance/cases/unification/{extra_neq_scalar_same_lexical_fails.eye → extra_neq_scalar_same_lexical_fails.pl} +0 -0
- /package/test/conformance/cases/unification/{scalar_cross_type_same_lexical_value.eye → scalar_cross_type_same_lexical_value.pl} +0 -0
- /package/test/conformance/errors/atoms/{extra_angle_iri_backslash_rejected.eye → extra_angle_iri_backslash_rejected.pl} +0 -0
- /package/test/conformance/errors/atoms/{extra_angle_iri_pipe_rejected.eye → extra_angle_iri_pipe_rejected.pl} +0 -0
- /package/test/conformance/errors/atoms/{extra_angle_iri_quote_rejected.eye → extra_angle_iri_quote_rejected.pl} +0 -0
- /package/test/conformance/errors/atoms/{hash_comment_not_atom_at_line_start.eye → hash_comment_not_atom_at_line_start.pl} +0 -0
- /package/test/conformance/errors/atoms/{relative_angle_name_rejected.eye → relative_angle_name_rejected.pl} +0 -0
- /package/test/conformance/errors/atoms/{space_in_angle_iri_rejected.eye → space_in_angle_iri_rejected.pl} +0 -0
- /package/test/conformance/errors/atoms/{unclosed_angle_iri_rejected.eye → unclosed_angle_iri_rejected.pl} +0 -0
- /package/test/conformance/errors/atoms/{zero_arity_compound_rejected.eye → zero_arity_compound_rejected.pl} +0 -0
- /package/test/conformance/errors/lists/{extra_missing_tail_after_bar.eye → extra_missing_tail_after_bar.pl} +0 -0
- /package/test/conformance/errors/lists/{extra_unclosed_list_tail.eye → extra_unclosed_list_tail.pl} +0 -0
- /package/test/conformance/errors/lists/{missing_list_tail.eye → missing_list_tail.pl} +0 -0
- /package/test/conformance/errors/rules/{extra_empty_head_with_body.eye → extra_empty_head_with_body.pl} +0 -0
- /package/test/conformance/errors/rules/{extra_rule_without_body.eye → extra_rule_without_body.pl} +0 -0
- /package/test/conformance/errors/rules/{rule_head_cannot_be_empty_parentheses.eye → rule_head_cannot_be_empty_parentheses.pl} +0 -0
- /package/test/conformance/errors/syntax/{angle_iri_with_space_rejected.eye → angle_iri_with_space_rejected.pl} +0 -0
- /package/test/conformance/errors/syntax/{bad_question_digit_variable.eye → bad_question_digit_variable.pl} +0 -0
- /package/test/conformance/errors/syntax/{colon_name_rejected.eye → colon_name_rejected.pl} +0 -0
- /package/test/conformance/errors/syntax/{empty_body_after_rule_marker.eye → empty_body_after_rule_marker.pl} +0 -0
- /package/test/conformance/errors/syntax/{empty_compound_nested.eye → empty_compound_nested.pl} +0 -0
- /package/test/conformance/errors/syntax/{extra_bad_backtick_character.eye → extra_bad_backtick_character.pl} +0 -0
- /package/test/conformance/errors/syntax/{extra_bad_iri_empty_body.eye → extra_bad_iri_empty_body.pl} +0 -0
- /package/test/conformance/errors/syntax/{extra_bad_list_double_comma.eye → extra_bad_list_double_comma.pl} +0 -0
- /package/test/conformance/errors/syntax/{extra_bad_list_double_tail.eye → extra_bad_list_double_tail.pl} +0 -0
- /package/test/conformance/errors/syntax/{extra_bad_number_two_decimal_points.eye → extra_bad_number_two_decimal_points.pl} +0 -0
- /package/test/conformance/errors/syntax/{extra_double_period_rejected.eye → extra_double_period_rejected.pl} +0 -0
- /package/test/conformance/errors/syntax/{extra_extra_closing_paren.eye → extra_extra_closing_paren.pl} +0 -0
- /package/test/conformance/errors/syntax/{extra_missing_closing_rule_body.eye → extra_missing_closing_rule_body.pl} +0 -0
- /package/test/conformance/errors/syntax/{extra_missing_head_rejected.eye → extra_missing_head_rejected.pl} +0 -0
- /package/test/conformance/errors/syntax/{missing_final_dot_rejected.eye → missing_final_dot_rejected.pl} +0 -0
- /package/test/conformance/errors/syntax/{missing_period.eye → missing_period.pl} +0 -0
- /package/test/conformance/errors/syntax/{relative_angle_iri_rejected.eye → relative_angle_iri_rejected.pl} +0 -0
- /package/test/conformance/errors/syntax/{trailing_comma_in_body.eye → trailing_comma_in_body.pl} +0 -0
- /package/test/conformance/errors/syntax/{unclosed_compound.eye → unclosed_compound.pl} +0 -0
- /package/test/conformance/errors/syntax/{unclosed_list.eye → unclosed_list.pl} +0 -0
- /package/test/conformance/errors/syntax/{unclosed_list_rejected.eye → unclosed_list_rejected.pl} +0 -0
- /package/test/conformance/errors/syntax/{unclosed_quoted_atom.eye → unclosed_quoted_atom.pl} +0 -0
- /package/test/conformance/errors/syntax/{unclosed_quoted_atom_rejected.eye → unclosed_quoted_atom_rejected.pl} +0 -0
- /package/test/conformance/errors/syntax/{unclosed_string.eye → unclosed_string.pl} +0 -0
- /package/test/conformance/errors/syntax/{unquoted_colon_predicate.eye → unquoted_colon_predicate.pl} +0 -0
- /package/test/conformance/errors/syntax/{unquoted_dotted_predicate.eye → unquoted_dotted_predicate.pl} +0 -0
- /package/test/conformance/errors/syntax/{uppercase_predicate_rejected.eye → uppercase_predicate_rejected.pl} +0 -0
- /package/test/conformance/errors/terms/{extra_empty_nested_compound.eye → extra_empty_nested_compound.pl} +0 -0
- /package/test/conformance/errors/terms/{extra_empty_top_level_compound.eye → extra_empty_top_level_compound.pl} +0 -0
- /package/test/conformance/errors/terms/{zero_arity_compound_nested_rejected.eye → zero_arity_compound_nested_rejected.pl} +0 -0
- /package/test/conformance/errors/variables/{question_digit_rejected.eye → question_digit_rejected.pl} +0 -0
- /package/test/conformance/expected/aggregation/{044_findall_user_goal.eye → 044_findall_user_goal.pl} +0 -0
- /package/test/conformance/expected/aggregation/{057_countall_empty_and_nonempty.eye → 057_countall_empty_and_nonempty.pl} +0 -0
- /package/test/conformance/expected/aggregation/{058_sumall_numeric_template.eye → 058_sumall_numeric_template.pl} +0 -0
- /package/test/conformance/expected/aggregation/{059_aggregate_min_template.eye → 059_aggregate_min_template.pl} +0 -0
- /package/test/conformance/expected/aggregation/{060_aggregate_max_compound_key.eye → 060_aggregate_max_compound_key.pl} +0 -0
- /package/test/conformance/expected/aggregation/{075_aggregation_edges.eye → 075_aggregation_edges.pl} +0 -0
- /package/test/conformance/expected/aggregation/{098_aggregation_nested_templates.eye → 098_aggregation_nested_templates.pl} +0 -0
- /package/test/conformance/expected/aggregation/{aggregate_max_no_answers_fails.eye → aggregate_max_no_answers_fails.pl} +0 -0
- /package/test/conformance/expected/aggregation/{aggregate_min_structured_key.eye → aggregate_min_structured_key.pl} +0 -0
- /package/test/conformance/expected/aggregation/{countall_zero.eye → countall_zero.pl} +0 -0
- /package/test/conformance/expected/aggregation/{extra_aggregate_min_tie_first.eye → extra_aggregate_min_tie_first.pl} +0 -0
- /package/test/conformance/expected/aggregation/{extra_countall_with_filter.eye → extra_countall_with_filter.pl} +0 -0
- /package/test/conformance/expected/aggregation/{extra_findall_repeated_template.eye → extra_findall_repeated_template.pl} +0 -0
- /package/test/conformance/expected/aggregation/{extra_sumall_float_template.eye → extra_sumall_float_template.pl} +0 -0
- /package/test/conformance/expected/aggregation/{findall_empty_bag.eye → findall_empty_bag.pl} +0 -0
- /package/test/conformance/expected/aggregation/{sumall_empty_zero.eye → sumall_empty_zero.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{024_numeric_literal_readback.eye → 024_numeric_literal_readback.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{029_arithmetic_and_comparison.eye → 029_arithmetic_and_comparison.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{039_numeric_functions.eye → 039_numeric_functions.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{040_between_enumeration.eye → 040_between_enumeration.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{041_smallest_divisor.eye → 041_smallest_divisor.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{054_numeric_and_lexical_comparison.eye → 054_numeric_and_lexical_comparison.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{061_date_difference.eye → 061_date_difference.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{062_reusable_numeric_builtins.eye → 062_reusable_numeric_builtins.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{066_numeric_edges.eye → 066_numeric_edges.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{079_big_integer_arithmetic.eye → 079_big_integer_arithmetic.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{080_rounding_modes.eye → 080_rounding_modes.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{081_zero_safe_numeric_functions.eye → 081_zero_safe_numeric_functions.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{082_comparison_semantics.eye → 082_comparison_semantics.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{083_between_modes_and_empty_ranges.eye → 083_between_modes_and_empty_ranges.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{between_bound_value.eye → between_bound_value.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{between_singleton.eye → between_singleton.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{duration_comparison.eye → duration_comparison.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{extra_acos_one.eye → extra_acos_one.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{extra_asin_zero.eye → extra_asin_zero.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{extra_atan2_axis.eye → extra_atan2_axis.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{extra_difference_leap_day.eye → extra_difference_leap_day.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{extra_difference_same_day.eye → extra_difference_same_day.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{extra_div_float_exact.eye → extra_div_float_exact.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{extra_div_integer_trunc.eye → extra_div_integer_trunc.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{extra_division_by_zero_fails.eye → extra_division_by_zero_fails.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{extra_exp_zero.eye → extra_exp_zero.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{extra_ge_equal_duration.eye → extra_ge_equal_duration.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{extra_le_equal_string.eye → extra_le_equal_string.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{extra_log_one.eye → extra_log_one.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{extra_mod_negative_right.eye → extra_mod_negative_right.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{extra_pow_large_integer.eye → extra_pow_large_integer.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{float_add_and_div.eye → float_add_and_div.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{min_max_mixed.eye → min_max_mixed.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{mod_negative_left.eye → mod_negative_left.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{neg_abs_integer.eye → neg_abs_integer.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{pow_negative_exponent_fails.eye → pow_negative_exponent_fails.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{pow_zero_exponent.eye → pow_zero_exponent.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{rounding_negative_float.eye → rounding_negative_float.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{smallest_divisor_prime.eye → smallest_divisor_prime.pl} +0 -0
- /package/test/conformance/expected/arithmetic/{sqrt_negative_fails.eye → sqrt_negative_fails.pl} +0 -0
- /package/test/conformance/expected/atoms/{008_graphic_atoms.eye → 008_graphic_atoms.pl} +0 -0
- /package/test/conformance/expected/atoms/{016_arity_zero_atom.eye → 016_arity_zero_atom.pl} +0 -0
- /package/test/conformance/expected/atoms/{018_quoted_atom_readback.eye → 018_quoted_atom_readback.pl} +0 -0
- /package/test/conformance/expected/atoms/{angle_iri_percent_encoded.eye → angle_iri_percent_encoded.pl} +0 -0
- /package/test/conformance/expected/atoms/{extra_graphic_backslash_atom.eye → extra_graphic_backslash_atom.pl} +0 -0
- /package/test/conformance/expected/atoms/{extra_iri_mailto_plus.eye → extra_iri_mailto_plus.pl} +0 -0
- /package/test/conformance/expected/atoms/{extra_iri_uuid_scheme.eye → extra_iri_uuid_scheme.pl} +0 -0
- /package/test/conformance/expected/atoms/{extra_quoted_atom_with_quote_readback.eye → extra_quoted_atom_with_quote_readback.pl} +0 -0
- /package/test/conformance/expected/atoms/{graphic_angle_atom_stays_graphic.eye → graphic_angle_atom_stays_graphic.pl} +0 -0
- /package/test/conformance/expected/atoms/{graphic_atom_predicate.eye → graphic_atom_predicate.pl} +0 -0
- /package/test/conformance/expected/atoms/{graphic_less_than_atom.eye → graphic_less_than_atom.pl} +0 -0
- /package/test/conformance/expected/atoms/{iri_as_predicate_name_quoted.eye → iri_as_predicate_name_quoted.pl} +0 -0
- /package/test/conformance/expected/atoms/{quoted_relative_iri_not_angle.eye → iri_quoted_and_angle_unify.pl} +0 -0
- /package/test/conformance/expected/{builtins/extra_difference_end_before_start_fails.eye → atoms/quoted_relative_iri_not_angle.pl} +0 -0
- /package/test/conformance/expected/atoms/{zero_arity_atom_roundtrip.eye → zero_arity_atom_roundtrip.pl} +0 -0
- /package/test/conformance/expected/builtins/{037_matching_and_comparison.eye → 037_matching_and_comparison.pl} +0 -0
- /package/test/conformance/expected/builtins/{076_composed_reusable_builtins.eye → 076_composed_reusable_builtins.pl} +0 -0
- /package/test/conformance/expected/builtins/{100_reusable_builtin_workflow.eye → 100_reusable_builtin_workflow.pl} +0 -0
- /package/test/conformance/expected/builtins/{extra_difference_invalid_date_fails.eye → eq_unifies_iri_atoms.pl} +0 -0
- /package/test/conformance/expected/builtins/{extra_neq_same_iri_fails.eye → extra_difference_end_before_start_fails.pl} +0 -0
- /package/test/conformance/expected/{context/extra_holds_ignores_string_parts.eye → builtins/extra_difference_invalid_date_fails.pl} +0 -0
- /package/test/conformance/expected/builtins/{extra_eq_binds_both_sides.eye → extra_eq_binds_both_sides.pl} +0 -0
- /package/test/conformance/expected/builtins/{extra_neq_different_iri_atoms.eye → extra_neq_different_iri_atoms.pl} +0 -0
- /package/test/conformance/expected/context/{032_holds_parts.eye → 032_holds_parts.pl} +0 -0
- /package/test/conformance/expected/context/{051_nested_holds_parts.eye → 051_nested_holds_parts.pl} +0 -0
- /package/test/conformance/expected/context/{052_holds_member.eye → 052_holds_member.pl} +0 -0
- /package/test/conformance/expected/context/{094_context_holds_enumeration.eye → 094_context_holds_enumeration.pl} +0 -0
- /package/test/conformance/expected/context/{extra_holds_atom_parts.eye → extra_holds_atom_parts.pl} +0 -0
- /package/test/conformance/expected/{control/extra_forall_counterexample_fails.eye → context/extra_holds_ignores_string_parts.pl} +0 -0
- /package/test/conformance/expected/context/{extra_holds_list_parts.eye → extra_holds_list_parts.pl} +0 -0
- /package/test/conformance/expected/context/{extra_holds_term_nested_order.eye → extra_holds_term_nested_order.pl} +0 -0
- /package/test/conformance/expected/{atoms/iri_quoted_and_angle_unify.eye → context/holds_compound_formula.pl} +0 -0
- /package/test/conformance/expected/{builtins/eq_unifies_iri_atoms.eye → context/holds_fails_when_missing.pl} +0 -0
- /package/test/conformance/expected/context/{holds_parts_from_formula.eye → holds_parts_from_formula.pl} +0 -0
- /package/test/conformance/expected/control/{014_failure_filters_answers.eye → 014_failure_filters_answers.pl} +0 -0
- /package/test/conformance/expected/control/{043_once_user_predicate.eye → 043_once_user_predicate.pl} +0 -0
- /package/test/conformance/expected/control/{074_forall_edges.eye → 074_forall_edges.pl} +0 -0
- /package/test/conformance/expected/control/{097_control_negation_once_forall.eye → 097_control_negation_once_forall.pl} +0 -0
- /package/test/conformance/expected/{context/holds_compound_formula.eye → control/double_negation_ground_goal.pl} +0 -0
- /package/test/conformance/expected/control/{extra_forall_bound_check.eye → extra_forall_bound_check.pl} +0 -0
- /package/test/conformance/expected/control/{extra_not_unbound_existing_goal_fails.eye → extra_forall_counterexample_fails.pl} +0 -0
- /package/test/conformance/expected/control/{extra_once_empty_fails.eye → extra_not_unbound_existing_goal_fails.pl} +0 -0
- /package/test/conformance/expected/control/{extra_not_unbound_unknown_goal_succeeds.eye → extra_not_unbound_unknown_goal_succeeds.pl} +0 -0
- /package/test/conformance/expected/{lists/extra_length_improper_fails.eye → control/extra_once_empty_fails.pl} +0 -0
- /package/test/conformance/expected/control/{extra_once_preserves_binding.eye → extra_once_preserves_binding.pl} +0 -0
- /package/test/conformance/expected/{context/holds_fails_when_missing.eye → control/forall_detects_counterexample.pl} +0 -0
- /package/test/conformance/expected/control/{double_negation_ground_goal.eye → forall_empty_generator_true.pl} +0 -0
- /package/test/conformance/expected/control/{negation_with_bound_generator.eye → negation_with_bound_generator.pl} +0 -0
- /package/test/conformance/expected/control/{once_keeps_first_answer.eye → once_keeps_first_answer.pl} +0 -0
- /package/test/conformance/expected/declarations/{104_mode_determinism_declarations.eye → 104_mode_determinism_declarations.pl} +0 -0
- /package/test/conformance/expected/{control/forall_detects_counterexample.eye → declarations/det_semidet_do_not_emit_without_materialize.pl} +0 -0
- /package/test/conformance/expected/declarations/{memoize_is_ordinary_fact.eye → memoize_is_ordinary_fact.pl} +0 -0
- /package/test/conformance/expected/declarations/{mode_determinism_are_facts.eye → mode_determinism_are_facts.pl} +0 -0
- /package/test/conformance/expected/{control/forall_empty_generator_true.eye → declarations/mode_ignored_when_arity_mismatch.pl} +0 -0
- /package/test/conformance/expected/declarations/{table_is_also_fact.eye → table_is_also_fact.pl} +0 -0
- /package/test/conformance/expected/lists/{005_list_deconstruction.eye → 005_list_deconstruction.pl} +0 -0
- /package/test/conformance/expected/lists/{015_improper_list_unification.eye → 015_improper_list_unification.pl} +0 -0
- /package/test/conformance/expected/lists/{020_nested_list_terms.eye → 020_nested_list_terms.pl} +0 -0
- /package/test/conformance/expected/lists/{031_lists_aggregation_ordering.eye → 031_lists_aggregation_ordering.pl} +0 -0
- /package/test/conformance/expected/lists/{035_list_relations.eye → 035_list_relations.pl} +0 -0
- /package/test/conformance/expected/lists/{036_append_splits.eye → 036_append_splits.pl} +0 -0
- /package/test/conformance/expected/lists/{045_sort_deduplicates_atoms.eye → 045_sort_deduplicates_atoms.pl} +0 -0
- /package/test/conformance/expected/lists/{046_append_bound_prefix_suffix.eye → 046_append_bound_prefix_suffix.pl} +0 -0
- /package/test/conformance/expected/lists/{047_nth0_index_generation.eye → 047_nth0_index_generation.pl} +0 -0
- /package/test/conformance/expected/lists/{048_set_nth0_edges.eye → 048_set_nth0_edges.pl} +0 -0
- /package/test/conformance/expected/lists/{049_select_duplicate_occurrences.eye → 049_select_duplicate_occurrences.pl} +0 -0
- /package/test/conformance/expected/lists/{063_reusable_list_builtins.eye → 063_reusable_list_builtins.pl} +0 -0
- /package/test/conformance/expected/lists/{067_list_edges.eye → 067_list_edges.pl} +0 -0
- /package/test/conformance/expected/lists/{068_list_generation_order.eye → 068_list_generation_order.pl} +0 -0
- /package/test/conformance/expected/lists/{069_list_summaries_and_sets.eye → 069_list_summaries_and_sets.pl} +0 -0
- /package/test/conformance/expected/lists/{084_append_and_select_composition.eye → 084_append_and_select_composition.pl} +0 -0
- /package/test/conformance/expected/lists/{085_nth_and_update_edges.eye → 085_nth_and_update_edges.pl} +0 -0
- /package/test/conformance/expected/lists/{086_slicing_pipeline.eye → 086_slicing_pipeline.pl} +0 -0
- /package/test/conformance/expected/lists/{087_sort_reverse_length.eye → 087_sort_reverse_length.pl} +0 -0
- /package/test/conformance/expected/lists/{088_list_summaries_failures.eye → 088_list_summaries_failures.pl} +0 -0
- /package/test/conformance/expected/lists/{empty_list_term.eye → empty_list_term.pl} +0 -0
- /package/test/conformance/expected/lists/{extra_append_all_splits_three.eye → extra_append_all_splits_three.pl} +0 -0
- /package/test/conformance/expected/lists/{extra_append_to_improper_tail.eye → extra_append_to_improper_tail.pl} +0 -0
- /package/test/conformance/expected/lists/{extra_drop_all.eye → extra_drop_all.pl} +0 -0
- /package/test/conformance/expected/lists/{extra_head_and_rest_improper.eye → extra_head_and_rest_improper.pl} +0 -0
- /package/test/conformance/expected/lists/{extra_last_singleton.eye → extra_last_singleton.pl} +0 -0
- /package/test/conformance/expected/lists/{extra_not_member_compound_fails.eye → extra_length_improper_fails.pl} +0 -0
- /package/test/conformance/expected/lists/{extra_list_to_set_stable_order.eye → extra_list_to_set_stable_order.pl} +0 -0
- /package/test/conformance/expected/lists/{extra_member_repeated_nested.eye → extra_member_repeated_nested.pl} +0 -0
- /package/test/conformance/expected/lists/{slice_middle.eye → extra_not_member_compound_fails.pl} +0 -0
- /package/test/conformance/expected/lists/{extra_not_member_compound_success.eye → extra_not_member_compound_success.pl} +0 -0
- /package/test/conformance/expected/lists/{extra_nth0_duplicate_indexes.eye → extra_nth0_duplicate_indexes.pl} +0 -0
- /package/test/conformance/expected/lists/{extra_select_structured_duplicate.eye → extra_select_structured_duplicate.pl} +0 -0
- /package/test/conformance/expected/lists/{extra_slice_end.eye → extra_slice_end.pl} +0 -0
- /package/test/conformance/expected/lists/{extra_take_all.eye → extra_take_all.pl} +0 -0
- /package/test/conformance/expected/lists/{head_rest_last.eye → head_rest_last.pl} +0 -0
- /package/test/conformance/expected/lists/{improper_list_readback.eye → improper_list_readback.pl} +0 -0
- /package/test/conformance/expected/lists/{length_empty_and_nested.eye → length_empty_and_nested.pl} +0 -0
- /package/test/conformance/expected/lists/{list_to_set_structural_duplicates.eye → list_to_set_structural_duplicates.pl} +0 -0
- /package/test/conformance/expected/{declarations/det_semidet_do_not_emit_without_materialize.eye → lists/min_list_empty_fails.pl} +0 -0
- /package/test/conformance/expected/{declarations/mode_ignored_when_arity_mismatch.eye → lists/nth0_known_value.pl} +0 -0
- /package/test/conformance/expected/lists/{min_list_empty_fails.eye → nth0_out_of_range_fails.pl} +0 -0
- /package/test/conformance/expected/lists/{reverse_empty.eye → reverse_empty.pl} +0 -0
- /package/test/conformance/expected/lists/{select_all_occurrences.eye → select_all_occurrences.pl} +0 -0
- /package/test/conformance/expected/lists/{set_nth0_middle.eye → set_nth0_middle.pl} +0 -0
- /package/test/conformance/expected/{materialize/arity_specific_outputs.eye → lists/slice_middle.pl} +0 -0
- /package/test/conformance/expected/lists/{nth0_known_value.eye → slice_out_of_range_fails.pl} +0 -0
- /package/test/conformance/expected/lists/{sort_structured_terms.eye → sort_structured_terms.pl} +0 -0
- /package/test/conformance/expected/lists/{sum_list_empty_zero.eye → sum_list_empty_zero.pl} +0 -0
- /package/test/conformance/expected/lists/{sum_min_max_list.eye → sum_min_max_list.pl} +0 -0
- /package/test/conformance/expected/lists/{take_zero_and_drop_all.eye → take_zero_and_drop_all.pl} +0 -0
- /package/test/conformance/expected/materialize/{027_default_derived_output.eye → 027_default_derived_output.pl} +0 -0
- /package/test/conformance/expected/materialize/{028_materialize_focus.eye → 028_materialize_focus.pl} +0 -0
- /package/test/conformance/expected/materialize/{053_materialize_excludes_source_fact.eye → 053_materialize_excludes_source_fact.pl} +0 -0
- /package/test/conformance/expected/materialize/{099_materialize_multiple_arities.eye → 099_materialize_multiple_arities.pl} +0 -0
- /package/test/conformance/expected/materialize/{extra_materialize_selects_arity.eye → arity_specific_outputs.pl} +0 -0
- /package/test/conformance/expected/materialize/{extra_materialize_derived_only_with_same_source.eye → extra_materialize_derived_only_with_same_source.pl} +0 -0
- /package/test/conformance/expected/{negation/extra_not_with_bound_fails.eye → materialize/extra_materialize_selects_arity.pl} +0 -0
- /package/test/conformance/expected/materialize/{source_facts_suppressed.eye → source_facts_suppressed.pl} +0 -0
- /package/test/conformance/expected/negation/{033_negation_once_generators.eye → 033_negation_once_generators.pl} +0 -0
- /package/test/conformance/expected/negation/{042_negation_filter.eye → 042_negation_filter.pl} +0 -0
- /package/test/conformance/expected/negation/{050_not_member_filter.eye → 050_not_member_filter.pl} +0 -0
- /package/test/conformance/expected/negation/{not_known_goal_fails.eye → extra_not_with_bound_fails.pl} +0 -0
- /package/test/conformance/expected/negation/{extra_not_with_bound_success.eye → extra_not_with_bound_success.pl} +0 -0
- /package/test/conformance/expected/{strings/extra_matches_invalid_pattern_fails.eye → negation/not_known_goal_fails.pl} +0 -0
- /package/test/conformance/expected/{lists/nth0_out_of_range_fails.eye → negation/not_unknown_goal_succeeds.pl} +0 -0
- /package/test/conformance/expected/negation/{stratified_negation_answers.eye → stratified_negation_answers.pl} +0 -0
- /package/test/conformance/expected/rules/{001_fact_output.eye → 001_fact_output.pl} +0 -0
- /package/test/conformance/expected/rules/{002_rule_recursion.eye → 002_rule_recursion.pl} +0 -0
- /package/test/conformance/expected/rules/{011_predicate_arity.eye → 011_predicate_arity.pl} +0 -0
- /package/test/conformance/expected/rules/{013_multiple_clauses_order.eye → 013_multiple_clauses_order.pl} +0 -0
- /package/test/conformance/expected/rules/{017_three_step_recursion.eye → 017_three_step_recursion.pl} +0 -0
- /package/test/conformance/expected/rules/{022_rule_head_structure.eye → 022_rule_head_structure.pl} +0 -0
- /package/test/conformance/expected/rules/{077_recursive_path_with_lists.eye → 077_recursive_path_with_lists.pl} +0 -0
- /package/test/conformance/expected/rules/{078_mutual_recursion_with_arithmetic.eye → 078_mutual_recursion_with_arithmetic.pl} +0 -0
- /package/test/conformance/expected/rules/{extra_left_to_right_multiple_bindings.eye → extra_left_to_right_multiple_bindings.pl} +0 -0
- /package/test/conformance/expected/rules/{extra_structured_head_rule.eye → extra_structured_head_rule.pl} +0 -0
- /package/test/conformance/expected/rules/{left_to_right_body_binding.eye → left_to_right_body_binding.pl} +0 -0
- /package/test/conformance/expected/rules/{transitive_rule_three_edges.eye → transitive_rule_three_edges.pl} +0 -0
- /package/test/conformance/expected/strings/{023_quoted_escapes_readback.eye → 023_quoted_escapes_readback.pl} +0 -0
- /package/test/conformance/expected/strings/{030_strings_and_atoms.eye → 030_strings_and_atoms.pl} +0 -0
- /package/test/conformance/expected/strings/{055_string_matching_filters.eye → 055_string_matching_filters.pl} +0 -0
- /package/test/conformance/expected/strings/{056_string_and_atom_concat.eye → 056_string_and_atom_concat.pl} +0 -0
- /package/test/conformance/expected/strings/{064_reusable_string_builtins.eye → 064_reusable_string_builtins.pl} +0 -0
- /package/test/conformance/expected/strings/{070_matches_named_captures.eye → 070_matches_named_captures.pl} +0 -0
- /package/test/conformance/expected/strings/{071_string_edges.eye → 071_string_edges.pl} +0 -0
- /package/test/conformance/expected/strings/{072_string_conversions.eye → 072_string_conversions.pl} +0 -0
- /package/test/conformance/expected/strings/{089_string_split_join_pipeline.eye → 089_string_split_join_pipeline.pl} +0 -0
- /package/test/conformance/expected/strings/{090_string_substring_replace_edges.eye → 090_string_substring_replace_edges.pl} +0 -0
- /package/test/conformance/expected/strings/{091_string_case_and_trim.eye → 091_string_case_and_trim.pl} +0 -0
- /package/test/conformance/expected/strings/{092_scalar_string_conversions.eye → 092_scalar_string_conversions.pl} +0 -0
- /package/test/conformance/expected/strings/{093_regex_named_captures_context.eye → 093_regex_named_captures_context.pl} +0 -0
- /package/test/conformance/expected/strings/{atom_string_from_string.eye → atom_string_from_string.pl} +0 -0
- /package/test/conformance/expected/strings/{casefold_atoms.eye → casefold_atoms.pl} +0 -0
- /package/test/conformance/expected/{lists/slice_out_of_range_fails.eye → strings/contains_empty_needle.pl} +0 -0
- /package/test/conformance/expected/strings/{extra_atom_string_number_input.eye → extra_atom_string_number_input.pl} +0 -0
- /package/test/conformance/expected/strings/{extra_join_empty_list.eye → extra_join_empty_list.pl} +0 -0
- /package/test/conformance/expected/{syntax/comments_inside_program.eye → strings/extra_matches_invalid_pattern_fails.pl} +0 -0
- /package/test/conformance/expected/strings/{extra_named_regex_optional_missing.eye → extra_named_regex_optional_missing.pl} +0 -0
- /package/test/conformance/expected/strings/{extra_number_string_atom_input.eye → extra_number_string_atom_input.pl} +0 -0
- /package/test/conformance/expected/strings/{extra_replace_multiple.eye → extra_replace_multiple.pl} +0 -0
- /package/test/conformance/expected/strings/{extra_split_empty_separator.eye → extra_split_empty_separator.pl} +0 -0
- /package/test/conformance/expected/strings/{extra_substring_last_char.eye → extra_substring_last_char.pl} +0 -0
- /package/test/conformance/expected/strings/{extra_uppercase_mixed_string.eye → extra_uppercase_mixed_string.pl} +0 -0
- /package/test/conformance/expected/strings/{join_mixed_scalars.eye → join_mixed_scalars.pl} +0 -0
- /package/test/conformance/expected/{negation/not_unknown_goal_succeeds.eye → strings/matches_simple_alternation.pl} +0 -0
- /package/test/conformance/expected/strings/{named_regex_two_groups.eye → named_regex_two_groups.pl} +0 -0
- /package/test/conformance/expected/strings/{contains_empty_needle.eye → not_matches_simple_pattern.pl} +0 -0
- /package/test/conformance/expected/strings/{number_string_from_string.eye → number_string_from_string.pl} +0 -0
- /package/test/conformance/expected/strings/{matches_simple_alternation.eye → number_string_rejects_non_numeric.pl} +0 -0
- /package/test/conformance/expected/strings/{replace_empty_search_no_change.eye → replace_empty_search_no_change.pl} +0 -0
- /package/test/conformance/expected/strings/{split_without_separator_match.eye → split_without_separator_match.pl} +0 -0
- /package/test/conformance/expected/strings/{not_matches_simple_pattern.eye → substring_out_of_range_fails.pl} +0 -0
- /package/test/conformance/expected/strings/{substring_zero_count.eye → substring_zero_count.pl} +0 -0
- /package/test/conformance/expected/strings/{trim_tabs_and_spaces.eye → trim_tabs_and_spaces.pl} +0 -0
- /package/test/conformance/expected/syntax/{004_conjunction_and_parentheses.eye → 004_conjunction_and_parentheses.pl} +0 -0
- /package/test/conformance/expected/syntax/{006_comma_formula_data.eye → 006_comma_formula_data.pl} +0 -0
- /package/test/conformance/expected/syntax/{009_comments_and_whitespace.eye → 009_comments_and_whitespace.pl} +0 -0
- /package/test/conformance/expected/syntax/{019_parenthesized_three_conjuncts.eye → 019_parenthesized_three_conjuncts.pl} +0 -0
- /package/test/conformance/expected/syntax/{025_body_parentheses_with_formula_data.eye → 025_body_parentheses_with_formula_data.pl} +0 -0
- /package/test/conformance/expected/syntax/{extra_comments_after_terms.eye → comments_inside_program.pl} +0 -0
- /package/test/conformance/expected/syntax/{quoted_atom_with_newline_escape.eye → extra_comments_after_terms.pl} +0 -0
- /package/test/conformance/expected/syntax/{extra_nested_parenthesized_body.eye → extra_nested_parenthesized_body.pl} +0 -0
- /package/test/conformance/expected/{strings/number_string_rejects_non_numeric.eye → syntax/parenthesized_query_style_body.pl} +0 -0
- /package/test/conformance/expected/syntax/{string_with_tab_escape.eye → quoted_atom_with_newline_escape.pl} +0 -0
- /package/test/conformance/expected/{terms/extra_arg_atom_fails.eye → syntax/string_with_tab_escape.pl} +0 -0
- /package/test/conformance/expected/table/{038_table_declaration.eye → 038_table_declaration.pl} +0 -0
- /package/test/conformance/expected/table/{102_table_declaration.eye → 102_table_declaration.pl} +0 -0
- /package/test/conformance/expected/table/{extra_table_bound_cycle.eye → extra_table_bound_cycle.pl} +0 -0
- /package/test/conformance/expected/table/{extra_table_open_call_fallback.eye → extra_table_open_call_fallback.pl} +0 -0
- /package/test/conformance/expected/table/{table_does_not_change_answers.eye → table_does_not_change_answers.pl} +0 -0
- /package/test/conformance/expected/table/{tabled_left_recursion_path.eye → tabled_left_recursion_path.pl} +0 -0
- /package/test/conformance/expected/terms/{003_terms_and_readback.eye → 003_terms_and_readback.pl} +0 -0
- /package/test/conformance/expected/terms/{065_reusable_term_control_builtins.eye → 065_reusable_term_control_builtins.pl} +0 -0
- /package/test/conformance/expected/terms/{073_term_introspection_edges.eye → 073_term_introspection_edges.pl} +0 -0
- /package/test/conformance/expected/terms/{095_term_introspection_roundtrip.eye → 095_term_introspection_roundtrip.pl} +0 -0
- /package/test/conformance/expected/terms/{096_functor_scalar_edges.eye → 096_functor_scalar_edges.pl} +0 -0
- /package/test/conformance/expected/terms/{arg_first_and_second.eye → arg_first_and_second.pl} +0 -0
- /package/test/conformance/expected/{strings/substring_out_of_range_fails.eye → terms/arg_zero_fails.pl} +0 -0
- /package/test/conformance/expected/terms/{compound_name_arguments_atom_zero_args.eye → compound_name_arguments_atom_zero_args.pl} +0 -0
- /package/test/conformance/expected/{syntax/parenthesized_query_style_body.eye → terms/compound_name_arguments_bad_args_fail.pl} +0 -0
- /package/test/conformance/expected/terms/{compound_name_arguments_builds_atom_from_empty_args.eye → compound_name_arguments_builds_atom_from_empty_args.pl} +0 -0
- /package/test/conformance/expected/terms/{compound_name_arguments_builds_compound.eye → compound_name_arguments_builds_compound.pl} +0 -0
- /package/test/conformance/expected/terms/{extra_arg_zero_fails.eye → extra_arg_atom_fails.pl} +0 -0
- /package/test/conformance/expected/terms/{extra_arg_first_last.eye → extra_arg_first_last.pl} +0 -0
- /package/test/conformance/expected/terms/{extra_compound_name_arguments_bad_args_fails.eye → extra_arg_zero_fails.pl} +0 -0
- /package/test/conformance/expected/{unification/extra_eq_nested_repeated_fails.eye → terms/extra_compound_name_arguments_bad_args_fails.pl} +0 -0
- /package/test/conformance/expected/terms/{extra_compound_name_arguments_construct_atom_zero.eye → extra_compound_name_arguments_construct_atom_zero.pl} +0 -0
- /package/test/conformance/expected/terms/{extra_compound_name_arguments_decompose_list.eye → extra_compound_name_arguments_decompose_list.pl} +0 -0
- /package/test/conformance/expected/terms/{extra_functor_list_cons.eye → extra_functor_list_cons.pl} +0 -0
- /package/test/conformance/expected/terms/{extra_functor_number_scalar.eye → extra_functor_number_scalar.pl} +0 -0
- /package/test/conformance/expected/terms/{extra_functor_string_scalar.eye → extra_functor_string_scalar.pl} +0 -0
- /package/test/conformance/expected/terms/{functor_atom_arity_zero.eye → functor_atom_arity_zero.pl} +0 -0
- /package/test/conformance/expected/terms/{functor_number_and_string.eye → functor_number_and_string.pl} +0 -0
- /package/test/conformance/expected/terms/{herbrand_witness_different_inputs_distinct.eye → herbrand_witness_different_inputs_distinct.pl} +0 -0
- /package/test/conformance/expected/terms/{herbrand_witness_one_input.eye → herbrand_witness_one_input.pl} +0 -0
- /package/test/conformance/expected/terms/{herbrand_witness_same_inputs_same_term.eye → herbrand_witness_same_inputs_same_term.pl} +0 -0
- /package/test/conformance/expected/terms/{herbrand_witness_two_inputs.eye → herbrand_witness_two_inputs.pl} +0 -0
- /package/test/conformance/expected/unification/{012_nested_compound_unification.eye → 012_nested_compound_unification.pl} +0 -0
- /package/test/conformance/expected/unification/{021_repeated_variable_head.eye → 021_repeated_variable_head.pl} +0 -0
- /package/test/conformance/expected/unification/{034_equality_and_inequality.eye → 034_equality_and_inequality.pl} +0 -0
- /package/test/conformance/expected/{terms/arg_zero_fails.eye → unification/compound_arity_mismatch_fails.pl} +0 -0
- /package/test/conformance/expected/unification/{extra_neq_scalar_same_lexical_fails.eye → extra_eq_iri_and_quoted_atom.pl} +0 -0
- /package/test/conformance/expected/unification/{extra_eq_list_tail_binding.eye → extra_eq_list_tail_binding.pl} +0 -0
- /package/test/conformance/expected/unification/{extra_eq_nested_repeated_success.eye → extra_eq_nested_repeated_success.pl} +0 -0
- /package/test/conformance/expected/unification/{extra_eq_scalar_number_atom.eye → extra_eq_scalar_number_atom.pl} +0 -0
- /package/test/conformance/expected/unification/{extra_eq_scalar_string_number.eye → extra_eq_scalar_string_number.pl} +0 -0
- /package/test/conformance/expected/unification/{extra_neq_compound_arity_mismatch.eye → extra_neq_compound_arity_mismatch.pl} +0 -0
- /package/test/conformance/expected/unification/{extra_variable_clause_locality.eye → extra_variable_clause_locality.pl} +0 -0
- /package/test/conformance/expected/unification/{list_tail_binding.eye → list_tail_binding.pl} +0 -0
- /package/test/conformance/expected/unification/{nested_repeated_variable.eye → nested_repeated_variable.pl} +0 -0
- /package/test/conformance/expected/unification/{scalar_cross_type_same_lexical_value.eye → scalar_cross_type_same_lexical_value.pl} +0 -0
- /package/test/conformance/expected/variables/{007_anonymous_variables.eye → 007_anonymous_variables.pl} +0 -0
- /package/test/conformance/expected/variables/{010_variable_scope_and_reuse.eye → 010_variable_scope_and_reuse.pl} +0 -0
- /package/test/conformance/expected/variables/{026_question_underscore_named_variable_reuse.eye → 026_question_underscore_named_variable_reuse.pl} +0 -0
- /package/test/conformance/expected/variables/{101_question_mark_variables.eye → 101_question_mark_variables.pl} +0 -0
- /package/test/conformance/expected/{terms/compound_name_arguments_bad_args_fail.eye → variables/anonymous_in_two_goals.pl} +0 -0
- /package/test/conformance/expected/variables/{clause_local_variable_names.eye → clause_local_variable_names.pl} +0 -0
- /package/test/conformance/expected/variables/{extra_anonymous_not_reused.eye → extra_anonymous_not_reused.pl} +0 -0
- /package/test/conformance/expected/variables/{extra_named_variable_reused.eye → extra_named_variable_reused.pl} +0 -0
- /package/test/conformance/expected/variables/{extra_question_underscore_named_distinct.eye → extra_question_underscore_named_distinct.pl} +0 -0
- /package/test/conformance/expected/variables/{extra_question_uppercase_named.eye → extra_question_uppercase_named.pl} +0 -0
- /package/test/conformance/expected/variables/{question_anonymous_not_reused.eye → question_anonymous_not_reused.pl} +0 -0
- /package/test/conformance/expected/variables/{question_underscore_named_reuse.eye → question_underscore_named_reuse.pl} +0 -0
- /package/test/conformance/expected/{unification/compound_arity_mismatch_fails.eye → variables/question_uppercase_variable.pl} +0 -0
- /package/test/conformance/expected/variables/{anonymous_in_two_goals.eye → question_variable_digits_and_underscore.pl} +0 -0
- /package/test/conformance/expected/variables/{question_uppercase_variable.eye → question_variable_uppercase_name.pl} +0 -0
- /package/test/conformance/expected/variables/{variable_scope_per_clause.eye → variable_scope_per_clause.pl} +0 -0
- /package/test/conformance/expected-proofs/proofs/{conjunction_order.eye → conjunction_order.pl} +0 -0
- /package/test/conformance/expected-proofs/proofs/{extra_negation_success.eye → extra_negation_success.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{extra_stratified_multiple_negations_quiet.eye → extra_stratified_multiple_negations_quiet.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{extra_stratified_negation_with_table_quiet.eye → extra_stratified_negation_with_table_quiet.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{extra_unstratified_indirect_self_with_fact.eye → extra_unstratified_indirect_self_with_fact.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{extra_unstratified_positive_negative_loop.eye → extra_unstratified_positive_negative_loop.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{extra_unstratified_three_cycle_all_negative.eye → extra_unstratified_three_cycle_all_negative.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{extra_warning_preserves_empty_stdout.eye → extra_warning_preserves_empty_stdout.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{negative_unknown_group_quiet.eye → negative_unknown_group_quiet.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{no_negation_quiet.eye → no_negation_quiet.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{stratified_negative_unknown_after_positive_quiet.eye → stratified_negative_unknown_after_positive_quiet.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{stratified_quiet.eye → stratified_quiet.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{stratified_two_level_quiet.eye → stratified_two_level_quiet.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{unstratified_mutual.eye → unstratified_mutual.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{unstratified_positive_prefix.eye → unstratified_positive_prefix.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{unstratified_self.eye → unstratified_self.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{unstratified_three_step.eye → unstratified_three_step.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{unstratified_two_arity_cycle.eye → unstratified_two_arity_cycle.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{unstratified_two_independent_cycles.eye → unstratified_two_independent_cycles.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{unstratified_with_iri_predicates.eye → unstratified_with_iri_predicates.pl} +0 -0
- /package/test/conformance/expected-warnings/negation/{warning_preserves_multiple_stdout_answers.eye → warning_preserves_multiple_stdout_answers.pl} +0 -0
- /package/test/conformance/proofs/proofs/{conjunction_order.eye → conjunction_order.pl} +0 -0
- /package/test/conformance/proofs/proofs/{extra_negation_success.eye → extra_negation_success.pl} +0 -0
- /package/test/conformance/warnings/negation/{extra_stratified_multiple_negations_quiet.eye → extra_stratified_multiple_negations_quiet.pl} +0 -0
- /package/test/conformance/warnings/negation/{extra_unstratified_three_cycle_all_negative.eye → extra_unstratified_three_cycle_all_negative.pl} +0 -0
- /package/test/conformance/warnings/negation/{extra_warning_preserves_empty_stdout.eye → extra_warning_preserves_empty_stdout.pl} +0 -0
- /package/test/conformance/warnings/negation/{negative_unknown_group_quiet.eye → negative_unknown_group_quiet.pl} +0 -0
- /package/test/conformance/warnings/negation/{stratified_quiet.eye → stratified_quiet.pl} +0 -0
- /package/test/conformance/warnings/negation/{unstratified_mutual.eye → unstratified_mutual.pl} +0 -0
- /package/test/conformance/warnings/negation/{unstratified_positive_prefix.eye → unstratified_positive_prefix.pl} +0 -0
- /package/test/conformance/warnings/negation/{unstratified_self.eye → unstratified_self.pl} +0 -0
- /package/test/conformance/warnings/negation/{unstratified_two_arity_cycle.eye → unstratified_two_arity_cycle.pl} +0 -0
- /package/test/conformance/warnings/negation/{unstratified_two_independent_cycles.eye → unstratified_two_independent_cycles.pl} +0 -0
- /package/test/conformance/warnings/negation/{warning_preserves_multiple_stdout_answers.eye → warning_preserves_multiple_stdout_answers.pl} +0 -0
|
@@ -78,7 +78,7 @@ An **atomic formula** is a predicate application such as `parent(pat, jan)` or `
|
|
|
78
78
|
|
|
79
79
|
This distinction is normative: `pat` is an atom constant and can appear as a term argument; `parent(pat, jan)` is an atomic formula and can appear as a fact, rule head, or goal. A compound term such as `pair(pat, jan)` has the same surface shape as an atomic formula, but its role is determined by context: as data it is a compound term, and as a clause head or goal it is an atomic formula with predicate symbol `pair/2`.
|
|
80
80
|
|
|
81
|
-
A **clause** is either a fact such as `parent(pat, jan).` or a rule such as `ancestor(
|
|
81
|
+
A **clause** is either a fact such as `parent(pat, jan).` or a rule such as `ancestor(X, Y) :- parent(X, Y).`.
|
|
82
82
|
|
|
83
83
|
A **goal** is an atomic formula, a built-in call, or a comma conjunction.
|
|
84
84
|
|
|
@@ -92,7 +92,7 @@ Eyelang is designed to be:
|
|
|
92
92
|
|
|
93
93
|
- small enough to embed and audit;
|
|
94
94
|
- deterministic in textual output order after duplicate suppression;
|
|
95
|
-
- useful for relation-style `p(
|
|
95
|
+
- useful for relation-style `p(S, O)` output through ordinary predicate names;
|
|
96
96
|
- practical for examples involving recursion, lists, arithmetic, strings, aggregation, finite search, and context-valued data.
|
|
97
97
|
|
|
98
98
|
Non-goals include complete ISO Prolog compatibility, operator declarations, module systems, dynamic database updates, cut-based control, and full bottom-up closure semantics.
|
|
@@ -123,18 +123,18 @@ A colon outside `:-` is not part of the language. Namespace-like names SHOULD be
|
|
|
123
123
|
|
|
124
124
|
### 3.4 Variables
|
|
125
125
|
|
|
126
|
-
A variable is either the bare anonymous variable
|
|
126
|
+
A variable is either the bare anonymous variable `_`, or starts with an uppercase ASCII letter or underscore and then zero or more ASCII letters, digits, or underscores. This is the source-level variable spelling used by ISO Prolog.
|
|
127
127
|
|
|
128
128
|
Examples:
|
|
129
129
|
|
|
130
130
|
```eyelang
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
131
|
+
X
|
|
132
|
+
Person
|
|
133
|
+
_thing
|
|
134
|
+
_
|
|
135
135
|
```
|
|
136
136
|
|
|
137
|
-
Each bare
|
|
137
|
+
Each bare `_` anonymous variable occurrence is fresh. A name such as `_thing` is a named variable and is reused within its clause.
|
|
138
138
|
|
|
139
139
|
### 3.5 Atom constants
|
|
140
140
|
|
|
@@ -150,15 +150,15 @@ case_123
|
|
|
150
150
|
'a-b'
|
|
151
151
|
```
|
|
152
152
|
|
|
153
|
-
|
|
153
|
+
IRI-shaped atom constants SHOULD be written as quoted atoms containing the angle brackets. This keeps the surface syntax ISO Prolog-compatible while preserving the visible web identifier text:
|
|
154
154
|
|
|
155
155
|
```eyelang
|
|
156
|
-
<https://example.org/alice>
|
|
157
|
-
<urn:example:bob>
|
|
158
|
-
triple(<https://example.org/alice
|
|
156
|
+
'<https://example.org/alice>'
|
|
157
|
+
'<urn:example:bob>'
|
|
158
|
+
triple('<https://example.org/alice>', '<https://schema.org/name>', "Alice").
|
|
159
159
|
```
|
|
160
160
|
|
|
161
|
-
|
|
161
|
+
Unquoted angle-bracket IRI syntax is not part of the source language. If the angle brackets are part of the atom name, include them inside the quoted atom, for example `'<https://example.org/alice>'`.
|
|
162
162
|
|
|
163
163
|
A quoted atom constant is enclosed in single quotes. A single quote inside a quoted atom constant is represented by doubling it:
|
|
164
164
|
|
|
@@ -174,7 +174,7 @@ A graphic atom constant is one or more graphic characters from this set:
|
|
|
174
174
|
#$&*+-/<=>@^~\
|
|
175
175
|
```
|
|
176
176
|
|
|
177
|
-
|
|
177
|
+
Graphic atoms such as `<=>`, `<`, and `>=` remain graphic atoms. Longer names containing letters or punctuation outside the graphic set should be quoted, for example `'<abc>'`.
|
|
178
178
|
|
|
179
179
|
### 3.6 Strings
|
|
180
180
|
|
|
@@ -228,7 +228,7 @@ The syntax `nil()` is intentionally rejected so eyelang source and read-back out
|
|
|
228
228
|
|
|
229
229
|
### 5.1 Variables
|
|
230
230
|
|
|
231
|
-
Variables are scoped to a single clause or selected goal. A variable in a rule head and body denotes the same logical variable within that clause. Names preserve their spelling, so repeated
|
|
231
|
+
Variables are scoped to a single clause or selected goal. A variable in a rule head and body denotes the same logical variable within that clause. Names preserve their spelling, so repeated `X` occurrences in one clause refer to the same variable.
|
|
232
232
|
|
|
233
233
|
### 5.2 Atom constants, strings, and numbers
|
|
234
234
|
|
|
@@ -279,12 +279,12 @@ parent(pat, jan).
|
|
|
279
279
|
A rule has a head and a body:
|
|
280
280
|
|
|
281
281
|
```eyelang
|
|
282
|
-
ancestor(
|
|
283
|
-
parent(
|
|
282
|
+
ancestor(X, Y) :-
|
|
283
|
+
parent(X, Y).
|
|
284
284
|
|
|
285
|
-
ancestor(
|
|
286
|
-
parent(
|
|
287
|
-
ancestor(
|
|
285
|
+
ancestor(X, Z) :-
|
|
286
|
+
parent(X, Y),
|
|
287
|
+
ancestor(Y, Z).
|
|
288
288
|
```
|
|
289
289
|
|
|
290
290
|
Clauses with the same predicate name and arity define one predicate group. Predicate name and arity are both significant: `p/1` and `p/2` are different predicates.
|
|
@@ -322,10 +322,10 @@ parent(pat, jan).
|
|
|
322
322
|
places the ground atomic formula `parent(pat, jan)` in the interpretation. A rule such as:
|
|
323
323
|
|
|
324
324
|
```eyelang
|
|
325
|
-
ancestor(
|
|
325
|
+
ancestor(X, Z) :- parent(X, Y), ancestor(Y, Z).
|
|
326
326
|
```
|
|
327
327
|
|
|
328
|
-
is read universally over Herbrand terms: for every substitution of
|
|
328
|
+
is read universally over Herbrand terms: for every substitution of `X`, `Y`, and `Z` by ground Herbrand terms, if both ground body atomic formulas are true, then the ground head atomic formula is true. The declarative meaning of a pure program is the **least Herbrand model**: the smallest set of ground atomic formulas that contains all facts and is closed under all rules.
|
|
329
329
|
|
|
330
330
|
Equivalently, the least Herbrand model is obtained by repeatedly applying the immediate-consequence operation: start with the source facts, add every ground rule head whose ground body is already true, and continue to the least fixed point. This definition is mathematical; an implementation does not have to compute the model bottom-up.
|
|
331
331
|
|
|
@@ -336,11 +336,11 @@ Variables do not range over external objects, records, pointers, or host-languag
|
|
|
336
336
|
eyelang has no blank nodes and no existential variables in rule heads. Existential-style consequences SHOULD be represented by explicit Herbrand witness terms written directly in rule heads:
|
|
337
337
|
|
|
338
338
|
```eyelang
|
|
339
|
-
has_parent(
|
|
340
|
-
person(
|
|
339
|
+
has_parent(Child, parent_of(Child)) :-
|
|
340
|
+
person(Child).
|
|
341
341
|
|
|
342
|
-
registration(
|
|
343
|
-
takes(
|
|
342
|
+
registration(Student, Course, registration_of(Student, Course)) :-
|
|
343
|
+
takes(Student, Course).
|
|
344
344
|
```
|
|
345
345
|
|
|
346
346
|
These rules may derive `parent_of(alice)` or `registration_of(alice, logic)` as ordinary visible Herbrand terms. The witness is deterministic: the same functor and inputs produce the same term, while different inputs produce different terms by normal syntactic identity. This is the practical executable form of existential-style consequences in Eyelang; it does not introduce hidden blank nodes or special quantifier syntax.
|
|
@@ -349,7 +349,7 @@ These rules may derive `parent_of(alice)` or `registration_of(alice, logic)` as
|
|
|
349
349
|
|
|
350
350
|
Because the domain is Herbrand, equality in the pure language is syntactic identity of terms after substitution. Two distinct atom constants are distinct. Two compound terms are equal only when they have the same functor, the same arity, and pairwise equal arguments. Lists follow the same rule through their `[]` and `./2` representation.
|
|
351
351
|
|
|
352
|
-
Operationally, eyelang uses first-order unification to find substitutions. The implementation does not perform an occurs check, so cyclic terms are not part of the portable Herbrand reading even if a particular implementation can temporarily construct recursive bindings internally. Portable programs SHOULD avoid relying on occurs-check-sensitive cases such as `eq(
|
|
352
|
+
Operationally, eyelang uses first-order unification to find substitutions. The implementation does not perform an occurs check, so cyclic terms are not part of the portable Herbrand reading even if a particular implementation can temporarily construct recursive bindings internally. Portable programs SHOULD avoid relying on occurs-check-sensitive cases such as `eq(X, f(X))`.
|
|
353
353
|
|
|
354
354
|
### 8.3 Goal-directed execution versus model-theoretic meaning
|
|
355
355
|
|
|
@@ -361,9 +361,9 @@ Default CLI output is also a host behavior, not a separate semantics. It asks br
|
|
|
361
361
|
|
|
362
362
|
Built-ins are specified relations or operations added to the Herbrand core. A built-in call in a goal has the syntax of an atomic formula, but its success relation is specified procedurally here rather than by source clauses. Some built-ins, such as `eq/2`, `append/3`, `member/2`, and `length/2`, can be understood as relations over Herbrand terms. Others, such as arithmetic, string matching, date/time predicates, aggregation, `once/1`, and negation-as-failure, are operational extensions whose behavior is defined by this specification rather than by pure least-Herbrand-model semantics alone.
|
|
363
363
|
|
|
364
|
-
Arithmetic and string built-ins do not introduce a separate semantic universe. They inspect the lexical values of already represented Herbrand constants and, when they succeed, bind output arguments to eyelang terms such as numbers, strings, or atom constants. For example, `add(2, 3,
|
|
364
|
+
Arithmetic and string built-ins do not introduce a separate semantic universe. They inspect the lexical values of already represented Herbrand constants and, when they succeed, bind output arguments to eyelang terms such as numbers, strings, or atom constants. For example, `add(2, 3, X)` may bind `X` to the number term `5`; it does not mean that variables range over host-language numbers outside the Herbrand universe.
|
|
365
365
|
|
|
366
|
-
Negation-as-failure `not(
|
|
366
|
+
Negation-as-failure `not(Goal)` is especially operational: it succeeds when the current goal-directed search finds no solution for `Goal`. It is not classical negation and should not be read as adding negative facts to the Herbrand model. Programs using negation SHOULD keep the negated goal sufficiently ground and finite.
|
|
367
367
|
|
|
368
368
|
### 8.5 Stratified negation
|
|
369
369
|
|
|
@@ -372,15 +372,15 @@ Portable programs using user-defined predicates under `not/1` SHOULD be **strati
|
|
|
372
372
|
For example, this is stratified because `open/1` depends negatively on `closed/1`, but `closed/1` does not depend back on `open/1`:
|
|
373
373
|
|
|
374
374
|
```eyelang
|
|
375
|
-
closed(
|
|
376
|
-
open(
|
|
375
|
+
closed(X) :- blocked(X).
|
|
376
|
+
open(X) :- candidate(X), not(closed(X)).
|
|
377
377
|
```
|
|
378
378
|
|
|
379
379
|
This is not stratified because `p/1` and `q/1` form a cycle that contains a negative dependency:
|
|
380
380
|
|
|
381
381
|
```eyelang
|
|
382
|
-
p(
|
|
383
|
-
q(
|
|
382
|
+
p(X) :- q(X).
|
|
383
|
+
q(X) :- not(p(X)).
|
|
384
384
|
```
|
|
385
385
|
|
|
386
386
|
The JavaScript implementation records stratification metadata on `Program` instances: `stratifiedNegation`, `negationStratificationErrors`, `negationDependencies`, and per-group `negationStratum`. This diagnostic is computed lazily when one of those properties or helper methods is first read, or eagerly when parsing with `{ analyzeNegation: true }` or `{ strictNegation: true }`. The CLI option `-w` / `--warnings` requests this diagnostic and prints non-fatal warnings to stderr. Embedders that want to reject non-portable negation can parse with `{ strictNegation: true }` or call `program.assertStratifiedNegation()`.
|
|
@@ -397,36 +397,36 @@ Implementations MAY provide additional built-ins, but such built-ins are impleme
|
|
|
397
397
|
|
|
398
398
|
| Built-in | Meaning |
|
|
399
399
|
|---|---|
|
|
400
|
-
| `eq(
|
|
401
|
-
| `neq(
|
|
400
|
+
| `eq(A, B)` | Succeeds when `A` and `B` unify. |
|
|
401
|
+
| `neq(A, B)` | Succeeds when `A` and `B` do not unify. |
|
|
402
402
|
|
|
403
403
|
### 9.2 Arithmetic
|
|
404
404
|
|
|
405
405
|
| Built-in | Meaning |
|
|
406
406
|
|---|---|
|
|
407
|
-
| `neg(
|
|
408
|
-
| `abs(
|
|
409
|
-
| `sin(
|
|
410
|
-
| `asin(
|
|
411
|
-
| `sqrt(
|
|
412
|
-
| `floor(
|
|
413
|
-
| `exp(
|
|
414
|
-
| `add(
|
|
415
|
-
| `sub(
|
|
416
|
-
| `mul(
|
|
417
|
-
| `div(
|
|
418
|
-
| `mod(
|
|
419
|
-
| `pow(
|
|
420
|
-
| `min(
|
|
407
|
+
| `neg(A, B)` | `B` is the numeric negation of `A`. |
|
|
408
|
+
| `abs(A, B)` | `B` is the absolute value of `A`. |
|
|
409
|
+
| `sin(A, B)`, `cos(A, B)`, `tan(A, B)` | Trigonometric floating functions. |
|
|
410
|
+
| `asin(A, B)`, `acos(A, B)`, `atan2(Y, X, Angle)` | Inverse trigonometric floating functions. |
|
|
411
|
+
| `sqrt(A, B)` | Square root. Fails for negative inputs. |
|
|
412
|
+
| `floor(A, B)`, `ceiling(A, B)`, `trunc(A, B)`, `rounded(A, B)` | Integer-valued numeric rounding functions. |
|
|
413
|
+
| `exp(A, B)`, `log(A, B)` | Natural exponent and logarithm. `log/2` fails for non-positive inputs. |
|
|
414
|
+
| `add(A, B, C)` | `C = A + B`. |
|
|
415
|
+
| `sub(A, B, C)` | `C = A - B`. |
|
|
416
|
+
| `mul(A, B, C)` | `C = A * B`. |
|
|
417
|
+
| `div(A, B, C)` | `C = A / B`; integer inputs use integer division. |
|
|
418
|
+
| `mod(A, B, C)` | Integer remainder. |
|
|
419
|
+
| `pow(A, B, C)` | `C = A^B`. |
|
|
420
|
+
| `min(A, B, C)`, `max(A, B, C)` | Numeric minimum and maximum. |
|
|
421
421
|
|
|
422
422
|
### 9.3 Comparison
|
|
423
423
|
|
|
424
424
|
| Built-in | Meaning |
|
|
425
425
|
|---|---|
|
|
426
|
-
| `lt(
|
|
427
|
-
| `gt(
|
|
428
|
-
| `le(
|
|
429
|
-
| `ge(
|
|
426
|
+
| `lt(A, B)` | `A < B`. |
|
|
427
|
+
| `gt(A, B)` | `A > B`. |
|
|
428
|
+
| `le(A, B)` | `A =< B`. |
|
|
429
|
+
| `ge(A, B)` | `A >= B`. |
|
|
430
430
|
|
|
431
431
|
Comparisons interpret numeric-looking terms numerically. Other scalar terms are compared lexically.
|
|
432
432
|
|
|
@@ -434,66 +434,66 @@ Comparisons interpret numeric-looking terms numerically. Other scalar terms are
|
|
|
434
434
|
|
|
435
435
|
| Built-in | Meaning |
|
|
436
436
|
|---|---|
|
|
437
|
-
| `local_time(
|
|
438
|
-
| `difference(
|
|
437
|
+
| `local_time(T)` | Binds `T` to the local date string. For deterministic runs, `EYELANG_LOCAL_TIME=YYYY-MM-DD` overrides the current date. |
|
|
438
|
+
| `difference(A, B, D)` | Computes an ISO-like date/duration difference. |
|
|
439
439
|
|
|
440
440
|
### 9.5 Generators
|
|
441
441
|
|
|
442
442
|
| Built-in | Meaning |
|
|
443
443
|
|---|---|
|
|
444
|
-
| `between(
|
|
445
|
-
| `smallest_divisor_from(
|
|
444
|
+
| `between(Low, High, X)` | Enumerates integers from `Low` through `High`. |
|
|
445
|
+
| `smallest_divisor_from(N, Start, D)` | Finds a divisor of `N` starting at `Start`. |
|
|
446
446
|
|
|
447
447
|
### 9.6 Strings and atom constants
|
|
448
448
|
|
|
449
449
|
| Built-in | Meaning |
|
|
450
450
|
|---|---|
|
|
451
|
-
| `str_concat(
|
|
452
|
-
| `contains(
|
|
453
|
-
| `matches(
|
|
454
|
-
| `matches(
|
|
455
|
-
| `not_matches(
|
|
456
|
-
| `split(
|
|
457
|
-
| `join(
|
|
458
|
-
| `substring(
|
|
459
|
-
| `replace(
|
|
460
|
-
| `lowercase(
|
|
461
|
-
| `number_string(
|
|
462
|
-
| `atom_string(
|
|
463
|
-
| `term_string(
|
|
451
|
+
| `str_concat(A, B, C)` | String concatenation. |
|
|
452
|
+
| `contains(Text, Needle)` | `Text` contains `Needle`. |
|
|
453
|
+
| `matches(Text, Pattern)` | Text matches a simple implementation regex/search pattern. |
|
|
454
|
+
| `matches(Text, Pattern, Context)` | `Text` matches a JavaScript regular expression with named capture groups; `Context` is a comma context containing one unary term per matched capture group. |
|
|
455
|
+
| `not_matches(Text, Pattern)` | Negation of `matches/2`. |
|
|
456
|
+
| `split(Text, Separator, Parts)` | Splits text into a proper list of strings. |
|
|
457
|
+
| `join(Parts, Separator, Text)` | Joins a proper list of scalar terms into a string. |
|
|
458
|
+
| `substring(Text, Start, Length, Out)` | Extracts a zero-based substring. |
|
|
459
|
+
| `replace(Text, Search, Replacement, Out)` | Replaces all non-empty literal occurrences of `Search`. |
|
|
460
|
+
| `lowercase(Text, Out)`, `uppercase(Text, Out)`, `trim(Text, Out)` | Text normalization helpers. |
|
|
461
|
+
| `number_string(Number, String)` | Converts a number to a string or parses a numeric string into a number. |
|
|
462
|
+
| `atom_string(Atom, String)` | Converts between atom constants and strings. |
|
|
463
|
+
| `term_string(Term, String)` | Renders a ground term as its eyelang source string. |
|
|
464
464
|
|
|
465
465
|
### 9.7 Lists
|
|
466
466
|
|
|
467
467
|
| Built-in | Meaning |
|
|
468
468
|
|---|---|
|
|
469
|
-
| `append(
|
|
470
|
-
| `nth0(
|
|
471
|
-
| `set_nth0(
|
|
472
|
-
| `head(
|
|
473
|
-
| `rest(
|
|
474
|
-
| `last(
|
|
475
|
-
| `take(
|
|
476
|
-
| `drop(
|
|
477
|
-
| `slice(
|
|
478
|
-
| `member(
|
|
479
|
-
| `select(
|
|
480
|
-
| `not_member(
|
|
481
|
-
| `reverse(
|
|
482
|
-
| `length(
|
|
483
|
-
| `sum_list(
|
|
484
|
-
| `min_list(
|
|
485
|
-
| `list_to_set(
|
|
486
|
-
| `sort(
|
|
469
|
+
| `append(A, B, C)` | List append/split relation. |
|
|
470
|
+
| `nth0(Index, List, Value)` | Zero-based list lookup. |
|
|
471
|
+
| `set_nth0(Index, List, Value, Out)` | Functional list update. |
|
|
472
|
+
| `head(List, Head)` | Head of a non-empty list. |
|
|
473
|
+
| `rest(List, Tail)` | Tail of a non-empty list. |
|
|
474
|
+
| `last(List, Last)` | Last element of a non-empty proper list. |
|
|
475
|
+
| `take(N, List, Prefix)` | First `N` items of a proper list. |
|
|
476
|
+
| `drop(N, List, Suffix)` | Proper-list suffix after dropping `N` items. |
|
|
477
|
+
| `slice(Start, Length, List, Slice)` | Zero-based proper-list slice. |
|
|
478
|
+
| `member(X, List)` | Member generator. |
|
|
479
|
+
| `select(X, List, Rest)` | Selects one occurrence. |
|
|
480
|
+
| `not_member(X, List)` | Succeeds when `X` is not a member. |
|
|
481
|
+
| `reverse(A, B)` | Reverses a proper list. |
|
|
482
|
+
| `length(List, N)` | Proper-list length. |
|
|
483
|
+
| `sum_list(List, Sum)` | Numeric sum of a proper list; empty lists produce `0`. |
|
|
484
|
+
| `min_list(List, Min)`, `max_list(List, Max)` | Minimum and maximum under standard term ordering. |
|
|
485
|
+
| `list_to_set(List, Set)` | Removes duplicates while preserving the first occurrence order. |
|
|
486
|
+
| `sort(Input, Output)` | Sorts and deduplicates a proper list. |
|
|
487
487
|
|
|
488
488
|
### 9.8 Aggregation and ordering
|
|
489
489
|
|
|
490
490
|
| Built-in | Meaning |
|
|
491
491
|
|---|---|
|
|
492
|
-
| `findall(
|
|
493
|
-
| `countall(
|
|
494
|
-
| `sumall(
|
|
495
|
-
| `aggregate_min(
|
|
496
|
-
| `aggregate_max(
|
|
492
|
+
| `findall(Template, Goal, Bag)` | Collects all templates for solutions of `Goal`. |
|
|
493
|
+
| `countall(Goal, Count)` | Counts solutions of `Goal`; empty solution sets produce `0`. |
|
|
494
|
+
| `sumall(Template, Goal, Sum)` | Sums numeric `Template` values over solutions of `Goal`; empty solution sets produce `0`. |
|
|
495
|
+
| `aggregate_min(Key, Template, Goal, Bestkey, Besttemplate)` | Selects the solution of `Goal` with the smallest resolved `Key`, returning that key and the corresponding resolved `Template`. Fails when `Goal` has no solutions. |
|
|
496
|
+
| `aggregate_max(Key, Template, Goal, Bestkey, Besttemplate)` | Selects the solution of `Goal` with the largest resolved `Key`, returning that key and the corresponding resolved `Template`. Fails when `Goal` has no solutions. |
|
|
497
497
|
|
|
498
498
|
### 9.9 Context and term inspection
|
|
499
499
|
|
|
@@ -501,34 +501,34 @@ Context terms are data representations of atomic formulas and comma conjunctions
|
|
|
501
501
|
|
|
502
502
|
| Built-in | Meaning |
|
|
503
503
|
|---|---|
|
|
504
|
-
| `holds(
|
|
505
|
-
| `holds(
|
|
506
|
-
| `functor(
|
|
507
|
-
| `arg(
|
|
508
|
-
| `compound_name_arguments(
|
|
504
|
+
| `holds(Context, Term)` | Enumerates member terms inside a context term and unifies each member with `Term`. |
|
|
505
|
+
| `holds(Context, Name, Args)` | Enumerates context members of any arity, exposing each member as atom constant `Name` plus a proper argument list `Args`. |
|
|
506
|
+
| `functor(Term, Name, Arity)` | Decomposes a non-variable term into its name and arity. |
|
|
507
|
+
| `arg(Index, Term, Arg)` | Extracts the 1-based argument of a compound term. |
|
|
508
|
+
| `compound_name_arguments(Term, Name, Args)` | Decomposes a compound term, treats an atom as a zero-argument term, or constructs a term from an atom name and proper argument list. Empty `Args` constructs an atom. |
|
|
509
509
|
|
|
510
510
|
Example:
|
|
511
511
|
|
|
512
512
|
```eyelang
|
|
513
|
-
holds((name(alice, "Alice"), knows(alice, bob)), name(
|
|
514
|
-
holds((ready, name(alice, "Alice"), route(alice, bob, 7)),
|
|
513
|
+
holds((name(alice, "Alice"), knows(alice, bob)), name(S, O)).
|
|
514
|
+
holds((ready, name(alice, "Alice"), route(alice, bob, 7)), Name, Args).
|
|
515
515
|
functor(route(alice, bob, 7), route, 3).
|
|
516
516
|
arg(2, route(alice, bob, 7), bob).
|
|
517
|
-
compound_name_arguments(
|
|
517
|
+
compound_name_arguments(Term, route, [alice, bob, 7]).
|
|
518
518
|
compound_name_arguments(nil, nil, []).
|
|
519
519
|
```
|
|
520
520
|
|
|
521
521
|
The first goal can yield `holds((name(alice, "Alice"), knows(alice, bob)), name(alice, "Alice")).` The second can yield `holds((ready, name(alice, "Alice"), route(alice, bob, 7)), ready, []).`, `holds((ready, name(alice, "Alice"), route(alice, bob, 7)), name, [alice, "Alice"]).`, and `holds((ready, name(alice, "Alice"), route(alice, bob, 7)), route, [alice, bob, 7]).`
|
|
522
522
|
|
|
523
|
-
`holds/3` is the appropriate form for schema-style introspection because it exposes the predicate name and all arguments without assuming a fixed arity. For example, a single rule can inspect `heartbeat`, `source(sensor17)`, `temperature(sensor17, 38)`, and `signature(sensor17, sha256,
|
|
523
|
+
`holds/3` is the appropriate form for schema-style introspection because it exposes the predicate name and all arguments without assuming a fixed arity. For example, a single rule can inspect `heartbeat`, `source(sensor17)`, `temperature(sensor17, 38)`, and `signature(sensor17, sha256, Hash, Time)` as `heartbeat/0`, `source/1`, `temperature/2`, and `signature/4`; see [`context-schema-audit.pl`](../examples/context-schema-audit.pl).
|
|
524
524
|
|
|
525
525
|
### 9.10 Search control
|
|
526
526
|
|
|
527
527
|
| Built-in | Meaning |
|
|
528
528
|
|---|---|
|
|
529
|
-
| `not(
|
|
530
|
-
| `once(
|
|
531
|
-
| `forall(
|
|
529
|
+
| `not(Goal)` | Negation as failure. Succeeds when `Goal` has no solution. Portable user-defined negation should be stratified. |
|
|
530
|
+
| `once(Goal)` | Succeeds with at most the first solution of `Goal`. |
|
|
531
|
+
| `forall(Generator, Test)` | Succeeds when every solution of `Generator` also satisfies `Test`; succeeds vacuously when `Generator` has no solutions. |
|
|
532
532
|
|
|
533
533
|
## 10. Implementation-specific built-ins
|
|
534
534
|
|
|
@@ -538,7 +538,7 @@ Implementation-specific built-ins are not required for conformance to this speci
|
|
|
538
538
|
|
|
539
539
|
An implementation-specific built-in SHOULD obey the same surface-language discipline as standard built-ins:
|
|
540
540
|
|
|
541
|
-
- it is called using ordinary atomic-formula syntax, for example `some_extension(
|
|
541
|
+
- it is called using ordinary atomic-formula syntax, for example `some_extension(A, B)`;
|
|
542
542
|
- its arguments and results are eyelang terms from the Herbrand universe;
|
|
543
543
|
- it succeeds, fails, and binds variables as a relation over eyelang terms;
|
|
544
544
|
- it SHOULD document its intended modes, especially which arguments must be ground before it runs deterministically;
|
|
@@ -593,13 +593,13 @@ semidet(edge, 2).
|
|
|
593
593
|
|
|
594
594
|
`mode/3`, `det/2`, and `semidet/2` are advisory declarations. They describe a predicate group's intended calling pattern and determinism, but they do not change proof search or answer output. Because they are ordinary facts, programs may also query them.
|
|
595
595
|
|
|
596
|
-
For `mode(
|
|
596
|
+
For `mode(Name, Arity, Modes)`, the first argument MUST be an atom constant naming the predicate, the second argument MUST be a non-negative integer arity, and the third argument MUST be a proper list whose length is equal to the arity. Portable mode atoms are:
|
|
597
597
|
|
|
598
598
|
- `in`: the argument is expected to be supplied by the caller;
|
|
599
599
|
- `out`: the argument is expected to be produced by the predicate;
|
|
600
600
|
- `any`: no portable mode commitment is made for that argument.
|
|
601
601
|
|
|
602
|
-
`det(
|
|
602
|
+
`det(Name, Arity)` declares that a predicate is intended to produce exactly one answer for calls in its documented modes. `semidet(Name, Arity)` declares that a predicate is intended to produce zero or one answer. This specification does not require runtime enforcement; hosts MAY use these declarations for linting, documentation, indexing decisions, or editor support.
|
|
603
603
|
|
|
604
604
|
Example:
|
|
605
605
|
|
|
@@ -623,16 +623,16 @@ In this specification, sockets are a portable **programming pattern** expressed
|
|
|
623
623
|
The minimal socket vocabulary is:
|
|
624
624
|
|
|
625
625
|
```eyelang
|
|
626
|
-
socket(
|
|
627
|
-
plug(
|
|
628
|
-
provides(
|
|
629
|
-
requires(
|
|
626
|
+
socket(Name, Contract).
|
|
627
|
+
plug(Provider, Name).
|
|
628
|
+
provides(Signature).
|
|
629
|
+
requires(Signature).
|
|
630
630
|
```
|
|
631
631
|
|
|
632
|
-
|
|
632
|
+
`Name` and `Provider` are ordinary eyelang terms, usually atom constants. `Contract` is an ordinary eyelang term that describes the expected or offered knowledge. A portable signature form is:
|
|
633
633
|
|
|
634
634
|
```eyelang
|
|
635
|
-
predicate(
|
|
635
|
+
predicate(Predicatename, Arity)
|
|
636
636
|
```
|
|
637
637
|
|
|
638
638
|
For example:
|
|
@@ -657,12 +657,12 @@ plug(family_file, family_source).
|
|
|
657
657
|
parent(pat, jan).
|
|
658
658
|
parent(jan, emma).
|
|
659
659
|
|
|
660
|
-
ancestor(
|
|
661
|
-
parent(
|
|
660
|
+
ancestor(X, Y) :-
|
|
661
|
+
parent(X, Y).
|
|
662
662
|
|
|
663
|
-
ancestor(
|
|
664
|
-
parent(
|
|
665
|
-
ancestor(
|
|
663
|
+
ancestor(X, Z) :-
|
|
664
|
+
parent(X, Y),
|
|
665
|
+
ancestor(Y, Z).
|
|
666
666
|
```
|
|
667
667
|
|
|
668
668
|
The `ancestor/2` rules do not depend on a particular storage mechanism for `parent/2`. In a small test, the provider may be the same file. In an embedded host, it may be a database adapter, a document extractor, a remote service, or another eyelang module. The socket facts make that boundary explicit without changing the logical meaning of the rules.
|
|
@@ -693,7 +693,7 @@ Default host output behavior is:
|
|
|
693
693
|
|
|
694
694
|
### 13.1 Explanation output
|
|
695
695
|
|
|
696
|
-
When proof output is enabled, each answer SHOULD be followed by a machine-readable `why/2` fact. Explanation output is ordinary eyelang syntax whose second argument is a nested abstract proof term such as `proof(goal(
|
|
696
|
+
When proof output is enabled, each answer SHOULD be followed by a machine-readable `why/2` fact. Explanation output is ordinary eyelang syntax whose second argument is a nested abstract proof term such as `proof(goal(G), by(Method), bindings(Bindings), uses(Proofs))`; implementations SHOULD print `goal(...)` and `by(...)` on separate lines for readability. A proof term preserves the answer goal, derivation method, relevant bindings, and nested uses while omitting proof IDs. User clauses SHOULD be referenced explicitly as `fact(Filename, clause(N))` or `rule(Filename, clause(N))`, where `N` is the 1-based clause number within that source. Built-ins SHOULD be referenced as `builtin(Name, Arity)` because they do not come from source clauses. Explanation output is outside the logical semantics of the input program and MUST NOT change the set of answers.
|
|
697
697
|
|
|
698
698
|
## 14. Conformance
|
|
699
699
|
|
|
@@ -714,13 +714,11 @@ A conforming eyelang implementation supports the standard language described abo
|
|
|
714
714
|
|
|
715
715
|
Browser execution, package layout, CLI URL loading, and any implementation-specific built-ins described in host documentation are outside this conformance surface unless separately standardized.
|
|
716
716
|
|
|
717
|
-
Conformance cases live in the repository under `test/conformance/`. They are run by `npm test` before the example suite, and can be run alone with `node test/run-conformance.mjs`. Positive cases have input programs under `conformance/cases/` and exact expected standard-output files under `conformance/expected/`; both use `.
|
|
717
|
+
Conformance cases live in the repository under `test/conformance/`. They are run by `npm test` before the example suite, and can be run alone with `node test/run-conformance.mjs`. Positive cases have input programs under `conformance/cases/` and exact expected standard-output files under `conformance/expected/`; both use `.pl` so expected output remains eyelang-readable. Expected-error cases live under `conformance/errors/` with exact messages under `conformance/expected-errors/`. Expected-warning cases live under `conformance/warnings/` with exact `--warnings` stdout and stderr files under `conformance/expected-warnings/`. The corpus is grouped by language area, including arithmetic, strings, lists, terms, atoms, variables, negation, declarations, materialization, rules, syntax, and errors.
|
|
718
718
|
|
|
719
719
|
## 15. Relationship to ISO Prolog
|
|
720
720
|
|
|
721
|
-
eyelang source is intended to be familiar to Prolog readers
|
|
722
|
-
|
|
723
|
-
- `?x` variables are the only variable spelling; traditional Prolog `X` and `_` variables are rejected;
|
|
721
|
+
eyelang source is intended to be familiar to Prolog readers and uses ISO Prolog-compatible variable and quoted-atom spelling, but eyelang is not ISO Prolog. Notable differences include:
|
|
724
722
|
- no operators or operator declarations;
|
|
725
723
|
- no zero-arity compound syntax such as `nil()`;
|
|
726
724
|
- no cut;
|
|
@@ -731,7 +729,7 @@ eyelang source is intended to be familiar to Prolog readers, but eyelang is not
|
|
|
731
729
|
- no variables in functor or predicate position;
|
|
732
730
|
- no occurs check in unification.
|
|
733
731
|
|
|
734
|
-
Programs intended to be portable to eyelang SHOULD use
|
|
732
|
+
Programs intended to be portable to eyelang SHOULD use uppercase or underscore variables, avoid ISO-specific features that eyelang does not implement, and keep terms explicit. Atom names that are not plain lowercase-starting names or graphic atom tokens SHOULD be written as quoted atoms, for example `'a-b'` or `'<abc>'`.
|
|
735
733
|
|
|
736
734
|
## 16. Examples
|
|
737
735
|
|
|
@@ -741,29 +739,29 @@ Programs intended to be portable to eyelang SHOULD use `?` variables, avoid ISO-
|
|
|
741
739
|
parent(pat, jan).
|
|
742
740
|
parent(jan, emma).
|
|
743
741
|
|
|
744
|
-
ancestor(
|
|
745
|
-
ancestor(
|
|
742
|
+
ancestor(X, Y) :- parent(X, Y).
|
|
743
|
+
ancestor(X, Z) :- parent(X, Y), ancestor(Y, Z).
|
|
746
744
|
```
|
|
747
745
|
|
|
748
746
|
### 16.2 Arithmetic
|
|
749
747
|
|
|
750
748
|
```eyelang
|
|
751
|
-
square(
|
|
752
|
-
answer(three,
|
|
749
|
+
square(X, Y) :- mul(X, X, Y).
|
|
750
|
+
answer(three, Y) :- square(3, Y).
|
|
753
751
|
```
|
|
754
752
|
|
|
755
753
|
### 16.3 Lists
|
|
756
754
|
|
|
757
755
|
```eyelang
|
|
758
|
-
first([
|
|
759
|
-
answer(example,
|
|
756
|
+
first([X | _rest], X).
|
|
757
|
+
answer(example, X) :- first([a, b, c], X).
|
|
760
758
|
```
|
|
761
759
|
|
|
762
760
|
### 16.4 Negation as failure
|
|
763
761
|
|
|
764
762
|
```eyelang
|
|
765
763
|
closed(b).
|
|
766
|
-
open(
|
|
764
|
+
open(X) :- not(closed(X)).
|
|
767
765
|
status(a, open) :- open(a).
|
|
768
766
|
```
|
|
769
767
|
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
% Abstract interpretation over a tiny imperative program.
|
|
2
|
+
%
|
|
3
|
+
% The concrete program is:
|
|
4
|
+
%
|
|
5
|
+
% x := input();
|
|
6
|
+
% if x < 0 then y := -x else y := x;
|
|
7
|
+
% z := 10 / y;
|
|
8
|
+
%
|
|
9
|
+
% Instead of executing the program for every integer input, this example tracks
|
|
10
|
+
% only the abstract sign of each variable: neg, zero, or pos. The analysis is
|
|
11
|
+
% deliberately conservative: if the join point can see y = zero on any path, the
|
|
12
|
+
% division is reported as a possible division-by-zero warning.
|
|
13
|
+
|
|
14
|
+
materialize(absState, 3).
|
|
15
|
+
materialize(absWarning, 2).
|
|
16
|
+
materialize(absConclusion, 2).
|
|
17
|
+
|
|
18
|
+
table(abs_state, 3).
|
|
19
|
+
|
|
20
|
+
% The abstract domain.
|
|
21
|
+
input_sign(neg).
|
|
22
|
+
input_sign(zero).
|
|
23
|
+
input_sign(pos).
|
|
24
|
+
|
|
25
|
+
% The input statement gives x any of the three abstract signs.
|
|
26
|
+
abs_state(input, x, Sign) :- input_sign(Sign).
|
|
27
|
+
|
|
28
|
+
% The branch refines the sign of x. The negative branch only receives neg; the
|
|
29
|
+
% non-negative branch receives zero or pos.
|
|
30
|
+
abs_state(negative_branch, x, neg) :- abs_state(input, x, neg).
|
|
31
|
+
abs_state(nonnegative_branch, x, zero) :- abs_state(input, x, zero).
|
|
32
|
+
abs_state(nonnegative_branch, x, pos) :- abs_state(input, x, pos).
|
|
33
|
+
|
|
34
|
+
% Transfer functions for assignments. In the negative branch, y := -x turns a
|
|
35
|
+
% negative x into a positive y. In the non-negative branch, y := x preserves the
|
|
36
|
+
% zero/positive information.
|
|
37
|
+
abs_state(negative_branch, y, pos) :- abs_state(negative_branch, x, neg).
|
|
38
|
+
abs_state(nonnegative_branch, y, Sign) :- abs_state(nonnegative_branch, x, Sign).
|
|
39
|
+
|
|
40
|
+
% The join point merges abstract states from both branches.
|
|
41
|
+
abs_state(join, Var, Sign) :- abs_state(negative_branch, Var, Sign).
|
|
42
|
+
abs_state(join, Var, Sign) :- abs_state(nonnegative_branch, Var, Sign).
|
|
43
|
+
|
|
44
|
+
% A possible zero denominator is enough to raise a conservative warning.
|
|
45
|
+
possible_division_by_zero(join) :- abs_state(join, y, zero).
|
|
46
|
+
|
|
47
|
+
absState(Point, Var, sign(Sign)) :- abs_state(Point, Var, Sign).
|
|
48
|
+
absWarning(division_by_zero, Point) :- possible_division_by_zero(Point).
|
|
49
|
+
absConclusion(case, "abstract interpretation keeps all feasible signs and warns because y may be zero") :-
|
|
50
|
+
possible_division_by_zero(join).
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
% Access control policy example adapted from Eyelet input/access-control-policy.pl.
|
|
2
|
+
%
|
|
3
|
+
% This version avoids findall/3 by expressing allOf/anyOf/noneOf checks as
|
|
4
|
+
% finite logical conditions. The universal allOf/noneOf checks use negation
|
|
5
|
+
% as failure over bound policy facts.
|
|
6
|
+
|
|
7
|
+
% Output declarations: materialize/2 selects the relations written to this example's golden output.
|
|
8
|
+
materialize(policy, 2).
|
|
9
|
+
materialize(status, 2).
|
|
10
|
+
materialize(reason, 2).
|
|
11
|
+
|
|
12
|
+
% Program structure: facts set up the scenario, and rules derive the materialized conclusions.
|
|
13
|
+
policy_request(test1, policy_x).
|
|
14
|
+
has(test1, claim_a).
|
|
15
|
+
has(test1, claim_b).
|
|
16
|
+
has(test1, claim_c).
|
|
17
|
+
|
|
18
|
+
policy(policy_x).
|
|
19
|
+
allOf(policy_x, claim_a).
|
|
20
|
+
allOf(policy_x, claim_b).
|
|
21
|
+
anyOf(policy_x, claim_c).
|
|
22
|
+
noneOf(policy_x, claim_d).
|
|
23
|
+
|
|
24
|
+
% Derivation rules: each rule below contributes one logical step toward the displayed results.
|
|
25
|
+
passes_all_of(Request, Policy) :-
|
|
26
|
+
policy_request(Request, Policy),
|
|
27
|
+
policy(Policy),
|
|
28
|
+
not((allOf(Policy, Claim), not(has(Request, Claim)))).
|
|
29
|
+
|
|
30
|
+
passes_any_of(Request, Policy) :-
|
|
31
|
+
policy_request(Request, Policy),
|
|
32
|
+
policy(Policy),
|
|
33
|
+
anyOf(Policy, Claim),
|
|
34
|
+
has(Request, Claim).
|
|
35
|
+
|
|
36
|
+
passes_none_of(Request, Policy) :-
|
|
37
|
+
policy_request(Request, Policy),
|
|
38
|
+
policy(Policy),
|
|
39
|
+
not((noneOf(Policy, Claim), has(Request, Claim))).
|
|
40
|
+
|
|
41
|
+
passes_policy(Request, Policy) :-
|
|
42
|
+
passes_all_of(Request, Policy),
|
|
43
|
+
passes_any_of(Request, Policy),
|
|
44
|
+
passes_none_of(Request, Policy).
|
|
45
|
+
|
|
46
|
+
policy(test1, policy_x).
|
|
47
|
+
|
|
48
|
+
status(test1, policy_passed) :-
|
|
49
|
+
passes_policy(test1, policy_x).
|
|
50
|
+
|
|
51
|
+
reason(test1, "all required claims are present, one allowed claim is present, and no forbidden claim is present") :-
|
|
52
|
+
passes_policy(test1, policy_x).
|