eyeprolog 1.6.41 → 1.6.42
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 +7 -0
- package/SPEC.md +100 -16
- package/arc-in-eyeprolog.md +15 -12
- package/examples/check/blocks-world-planning.pl +4 -9
- package/examples/check/clpz-factorial.pl +8 -8
- package/examples/check/clpz-global-constraints.pl +8 -8
- package/examples/check/clpz-n-queens.pl +8 -8
- package/examples/check/clpz-resource-allocation.pl +8 -8
- package/examples/check/data-negotiation.pl +5 -6
- package/examples/check/declarative-fault-localization.pl +8 -8
- package/examples/check/delfour.pl +4 -5
- package/examples/check/dialogical-reasoning.pl +20 -0
- package/examples/check/dijkstra.pl +5 -22
- package/examples/check/flandor.pl +4 -5
- package/examples/check/graph-reachability.pl +4 -10
- package/examples/check/hamiltonian-path.pl +5 -413
- package/examples/check/iso-control-and-errors.pl +10 -11
- package/examples/check/manufacturing-quality-control.pl +8 -8
- package/examples/check/microgrid-dispatch.pl +8 -8
- package/examples/check/missionaries-cannibals.pl +4 -15
- package/examples/check/odrl-policy-reasoning.pl +4 -6
- package/examples/check/partial-evaluator.pl +4 -6
- package/examples/check/path-discovery.pl +5 -12
- package/examples/check/quine-mccluskey.pl +8 -8
- package/examples/check/sbom-vulnerability-response.pl +4 -7
- package/examples/check/symbiotic-knowledge-graph.pl +10 -11
- package/examples/check/weighted-interval-scheduling.pl +8 -8
- package/examples/check/wolf-goat-cabbage.pl +5 -17
- package/examples/deck/README.md +2 -1
- package/examples/deck/blocks-world-planning.md +8 -7
- package/examples/deck/clpz-factorial.md +8 -4
- package/examples/deck/clpz-global-constraints.md +8 -6
- package/examples/deck/clpz-n-queens.md +7 -6
- package/examples/deck/clpz-resource-allocation.md +5 -5
- package/examples/deck/data-negotiation.md +9 -10
- package/examples/deck/declarative-fault-localization.md +11 -8
- package/examples/deck/delfour.md +6 -5
- package/examples/deck/dialogical-reasoning.md +183 -0
- package/examples/deck/dijkstra.md +8 -7
- package/examples/deck/flandor.md +8 -7
- package/examples/deck/graph-reachability.md +7 -7
- package/examples/deck/hamiltonian-path.md +8 -7
- package/examples/deck/iso-control-and-errors.md +8 -5
- package/examples/deck/manufacturing-quality-control.md +8 -7
- package/examples/deck/microgrid-dispatch.md +7 -4
- package/examples/deck/missionaries-cannibals.md +8 -8
- package/examples/deck/partial-evaluator.md +6 -5
- package/examples/deck/path-discovery.md +10 -8
- package/examples/deck/quine-mccluskey.md +5 -4
- package/examples/deck/weighted-interval-scheduling.md +3 -2
- package/examples/deck/wolf-goat-cabbage.md +9 -10
- package/examples/dialogical-reasoning.pl +214 -0
- package/examples/dialogue/contract-dialogue.pl +24 -0
- package/examples/dialogue/contract-evidence-dialogue.pl +41 -0
- package/examples/dialogue/contract.pl +58 -0
- package/examples/dialogue/evidence.pl +5 -0
- package/examples/output/dialogical-reasoning.pl +48 -0
- package/examples/proof/clpz-factorial.pl +46 -8
- package/examples/proof/clpz-global-constraints.pl +24 -8
- package/examples/proof/clpz-n-queens.pl +554 -156
- package/examples/proof/clpz-resource-allocation.pl +4 -2
- package/examples/proof/declarative-fault-localization.pl +10 -4
- package/examples/proof/dialogical-reasoning.pl +2762 -0
- package/examples/proof/iso-control-and-errors.pl +8 -4
- package/examples/proof/manufacturing-quality-control.pl +8 -4
- package/examples/proof/microgrid-dispatch.pl +6 -1
- package/examples/proof/odrl-policy-reasoning.pl +8 -2
- package/examples/proof/quine-mccluskey.pl +6 -2
- package/examples/proof/symbiotic-knowledge-graph.pl +21 -3
- package/examples/proof/weighted-interval-scheduling.pl +21 -14
- package/index.d.ts +12 -1
- package/package.json +1 -1
- package/playground.html +3 -2
- package/src/check-proof.js +26 -4
- package/src/cli.js +45 -1
- package/src/dialogue.js +184 -0
- package/src/execute.js +4 -0
- package/src/explain.js +185 -2
- package/src/goal-metadata.js +55 -0
- package/src/index.js +1 -0
- package/src/proof-document.js +11 -3
- package/src/result-format.js +3 -1
- package/test/regression/cases-regression.mjs +21 -0
- package/test/regression/cases-white-box.mjs +51 -0
- package/test/run-playground.mjs +9 -0
- package/the-art-of-eyeprolog.md +62 -5
- package/why-eyeprolog.md +4 -4
package/README.md
CHANGED
|
@@ -60,6 +60,13 @@ printf 'human(socrates).\nmortal(X) :- human(X).\n' |
|
|
|
60
60
|
npx --yes eyeprolog --proof --goal 'mortal(socrates)' -
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
+
Or play the answer out as a dialogue, with the proof checker as the opponent:
|
|
64
|
+
|
|
65
|
+
```sh
|
|
66
|
+
printf 'human(socrates).\nmortal(X) :- human(X).\n' |
|
|
67
|
+
npx --yes eyeprolog --dialogue --goal 'mortal(socrates)' -
|
|
68
|
+
```
|
|
69
|
+
|
|
63
70
|
## Links
|
|
64
71
|
|
|
65
72
|
- [The Art of EyeProlog](https://eyereasoner.github.io/eyeprolog/the-art-of-eyeprolog) — complete reference
|
package/SPEC.md
CHANGED
|
@@ -41,9 +41,10 @@ of them.
|
|
|
41
41
|
8. [Proof Documents](#8-proof-documents)
|
|
42
42
|
9. [Proof Checking](#9-proof-checking)
|
|
43
43
|
10. [Check Reports](#10-check-reports)
|
|
44
|
-
11. [
|
|
45
|
-
12. [
|
|
46
|
-
13. [
|
|
44
|
+
11. [Dialogues](#11-dialogues)
|
|
45
|
+
12. [Command Line](#12-command-line)
|
|
46
|
+
13. [Security Considerations](#13-security-considerations)
|
|
47
|
+
14. [Conformance](#14-conformance)
|
|
47
48
|
- [Appendix A. Document Grammar](#appendix-a-document-grammar)
|
|
48
49
|
- [Appendix B. Example](#appendix-b-example)
|
|
49
50
|
- [Appendix C. Implementation Notes](#appendix-c-implementation-notes)
|
|
@@ -117,7 +118,7 @@ A clause number therefore depends only on the source text, never on what
|
|
|
117
118
|
|
|
118
119
|
A run asks a sequence of goals. They are, in order of precedence:
|
|
119
120
|
|
|
120
|
-
1. the goals given on the command line with `--goal` (Section
|
|
121
|
+
1. the goals given on the command line with `--goal` (Section 12) or to the
|
|
121
122
|
embedding API;
|
|
122
123
|
2. otherwise, the **declared goals** of the sources: each comment line of the
|
|
123
124
|
form `%% ?- Goal.`, whose goal MAY continue on following lines that begin
|
|
@@ -159,7 +160,9 @@ the program's operator table and its `double_quotes` flag in force:
|
|
|
159
160
|
as a double-quoted string, and a list ending in such a list is written
|
|
160
161
|
`[a, b|"cd"]`;
|
|
161
162
|
- a variable is written with its name: the name the program or document gave
|
|
162
|
-
it, or a name the engine minted
|
|
163
|
+
it, or a name the engine minted;
|
|
164
|
+
- a term `'$VAR'(N)` is written as itself, not as the variable letter
|
|
165
|
+
`writeq/1` would print for it: the letter would read back as a variable.
|
|
163
166
|
|
|
164
167
|
The written text of a term MUST read back, with the same operators and flags,
|
|
165
168
|
as a term identical to it up to the renaming of variables.
|
|
@@ -202,6 +205,17 @@ A goal `Module:Goal` is replayed as `Goal` in `Module`, as the solver runs it:
|
|
|
202
205
|
in a bundled library under `abstract` detail as one `builtin` step for the
|
|
203
206
|
qualified goal, and otherwise as a `control` step whose use is `Goal`.
|
|
204
207
|
|
|
208
|
+
A disjunction, an if-then, an if-then-else, a soft-cut and `call/1` are
|
|
209
|
+
replayed branch by branch and recorded as a `control` step resting on the
|
|
210
|
+
branch they took. The condition of an if-then-else commits to its first
|
|
211
|
+
solution, as execution does. A construct that took its else branch rests on
|
|
212
|
+
`\+ C`, recorded as an `absent` step, and then on the goals of `E`: the else
|
|
213
|
+
branch is only taken when the condition has no solution. A condition that
|
|
214
|
+
tests instantiation (`var/1`, `nonvar/1`, the type tests, `==/2`, `\==/2`,
|
|
215
|
+
the standard order comparisons, `compare/3`, `\+/1`) on a term that is not
|
|
216
|
+
yet ground is not split: its truth when tried can differ from its truth once
|
|
217
|
+
the derivation is complete, and the construct is one `builtin` step.
|
|
218
|
+
|
|
205
219
|
A derivation deeper than the replay's nesting budget continues as a **chain**:
|
|
206
220
|
each level commits to the first clause whose head matches the goal and whose
|
|
207
221
|
body, up to a final call of a program predicate, is proved, and that final
|
|
@@ -378,14 +392,17 @@ order, to one of the **alternatives** of its goal:
|
|
|
378
392
|
| --- | --- |
|
|
379
393
|
| `call(G)`, `once(G)`, `ignore(G)`, `catch(G, C, R)`, `M:G` | the conjuncts of `G` |
|
|
380
394
|
| `(C -> T)`, `(C *-> T)` | the conjuncts of `C`, then those of `T` |
|
|
381
|
-
| `(C -> T ; E)`, `(C *-> T ; E)` | the conjuncts of `C`, then those of `T`; or the conjuncts of `E` |
|
|
395
|
+
| `(C -> T ; E)`, `(C *-> T ; E)` | the conjuncts of `C`, then those of `T`; or `\+ C`, then the conjuncts of `E` |
|
|
382
396
|
| `(A ; B)` | the conjuncts of `A`; or the conjuncts of `B` |
|
|
383
397
|
|
|
384
398
|
A `builtin` step with uses whose goal has alternatives and cannot be
|
|
385
399
|
re-decided is held to the same rule, as written by earlier versions.
|
|
386
400
|
|
|
387
|
-
`absent
|
|
388
|
-
|
|
401
|
+
An `absent` step whose goal is ground and whose inner goal is not one that
|
|
402
|
+
cannot be re-decided is re-decided as a `builtin` step is: when the re-decision
|
|
403
|
+
agrees, the step is checked rather than trusted, and when it disagrees, C5
|
|
404
|
+
fails. Otherwise `absent`, `collected` and `asserted` steps are trusted
|
|
405
|
+
boundaries of their own kind, with the reason `theory_scoped`. When trusted boundaries are forbidden
|
|
389
406
|
("strict"), each trusted boundary, of any kind, fails C5.
|
|
390
407
|
|
|
391
408
|
### 9.7 C6 Boundary consistency
|
|
@@ -454,7 +471,7 @@ reachable from a conjunct of a claim through the conjuncts of uses.
|
|
|
454
471
|
| C2 well_founded | steps |
|
|
455
472
|
| C3 justification | steps |
|
|
456
473
|
| C4 coverage | claims plus the uses of all steps |
|
|
457
|
-
| C5 re_decision | `builtin` steps that agreed plus `control` steps that composed |
|
|
474
|
+
| C5 re_decision | `builtin` and `absent` steps that agreed plus `control` steps that composed |
|
|
458
475
|
| C6 boundary_consistency | boundaries decided |
|
|
459
476
|
| C7 relevance | claims plus steps |
|
|
460
477
|
|
|
@@ -525,7 +542,70 @@ The JSON form of a report is an object with `valid` (boolean), `steps`,
|
|
|
525
542
|
`{id, name, covered, failed}`), where `conclusion` is the written text of the
|
|
526
543
|
term concerned.
|
|
527
544
|
|
|
528
|
-
## 11.
|
|
545
|
+
## 11. Dialogues
|
|
546
|
+
|
|
547
|
+
A proof can be read as one side of an argument. In the dialogue logic of
|
|
548
|
+
Lorenzen and Lorenz, a **proponent** asserts a claim and an **opponent** may
|
|
549
|
+
challenge every assertion that is not common ground; the proponent answers a
|
|
550
|
+
challenge by naming what the assertion follows from, and the claim holds when
|
|
551
|
+
the proponent can answer every challenge. A checked proof is a defence of
|
|
552
|
+
this kind: the proponent's answers are its steps, and the opponent is the
|
|
553
|
+
checker (Section 9).
|
|
554
|
+
|
|
555
|
+
### 11.1 Moves
|
|
556
|
+
|
|
557
|
+
A **dialogue** is held for each answer of a run, in answer order, numbered from
|
|
558
|
+
1. Its first move is the proponent's `claims(Claim)`. The steps of the run's
|
|
559
|
+
proof (Section 8.3) are then visited from the claim, depth first and left to
|
|
560
|
+
right through the uses of each step, and each goal visited gives these moves:
|
|
561
|
+
|
|
562
|
+
| Goal's step | Moves |
|
|
563
|
+
| --- | --- |
|
|
564
|
+
| `rule(N)` or `control` | the opponent's `why(G)`, then the proponent's `because(G, By, Uses)` |
|
|
565
|
+
| `fact(N)`, or no step (a use given by a fact) | the opponent's `concedes(G)` |
|
|
566
|
+
| `builtin` or `absent` that the check re-decided | the opponent's `verifies(G)` |
|
|
567
|
+
| `builtin` or `absent` the check trusted, `collected`, `asserted` | the opponent's `grants(G)` |
|
|
568
|
+
| `unproven` | the proponent's `gives_up(G)` |
|
|
569
|
+
|
|
570
|
+
A goal already visited in the same dialogue gives only the opponent's
|
|
571
|
+
`concedes(G)`: it has been established. A failure the check recorded for a
|
|
572
|
+
step's conclusion (Section 10) gives the opponent's
|
|
573
|
+
`objects(G, Condition, Detail)` after the moves of that step, and ends the
|
|
574
|
+
dialogue, lost.
|
|
575
|
+
|
|
576
|
+
### 11.2 Evidence
|
|
577
|
+
|
|
578
|
+
The opponent MAY hold **evidence**: clauses added to the program, which the
|
|
579
|
+
proponent did not use. Before it grants or verifies an `absent` step `\+ G`,
|
|
580
|
+
the opponent then solves `G` in the program with its evidence. When `G` has a
|
|
581
|
+
solution, the opponent's move is `counters(\+ G, Instance, Used)`, where
|
|
582
|
+
`Instance` is the first solution and `Used` the list of the evidence's clauses
|
|
583
|
+
in the first proof of `Instance`, in the order that proof visits them; the
|
|
584
|
+
defence is lost.
|
|
585
|
+
|
|
586
|
+
A countered defence is followed by the proponent's `retracts(Claim, By)`, where
|
|
587
|
+
`By` is the justification of the claim's step. Under the formal rule of
|
|
588
|
+
dialogue logic the proponent MAY then use what the opponent asserted: the run
|
|
589
|
+
is made again on the program with the evidence, and when the claim is among
|
|
590
|
+
its answers, its dialogue continues with the moves of that run's proof, which
|
|
591
|
+
no evidence counters. Otherwise the proponent's last move is
|
|
592
|
+
`gives_up(Claim)`.
|
|
593
|
+
|
|
594
|
+
### 11.3 The dialogue document
|
|
595
|
+
|
|
596
|
+
A dialogue document holds, for each dialogue in order, one fact per line:
|
|
597
|
+
|
|
598
|
+
1. `move(Dialogue, N, Speaker, Act)` for each move, `N` counting from 1 and
|
|
599
|
+
`Speaker` being `proponent` or `opponent`;
|
|
600
|
+
2. `outcome(Dialogue, Claim, Result)`, `Result` being `won` when no move lost
|
|
601
|
+
the defence and `lost` otherwise;
|
|
602
|
+
3. `obligation(Dialogue, Goal)` for each `grants(Goal)` of a won dialogue's
|
|
603
|
+
final defence, in move order: what the proponent's win still rests on.
|
|
604
|
+
|
|
605
|
+
Terms are written as in Section 6.1. A dialogue document is ordinary data: a
|
|
606
|
+
program MAY load it as facts.
|
|
607
|
+
|
|
608
|
+
## 12. Command Line
|
|
529
609
|
|
|
530
610
|
```text
|
|
531
611
|
eyeprolog [OPTION ...] [FILE-OR-URL ... | -]
|
|
@@ -543,10 +623,13 @@ The options that concern this document are:
|
|
|
543
623
|
| `--strict-proof` | With `--check-proof`, forbid trusted boundaries. |
|
|
544
624
|
| `--json` | With `--check-proof`, print the report as JSON. |
|
|
545
625
|
| `--quiet` | With `--check-proof`, print only the `verdict/1` fact. |
|
|
626
|
+
| `-d`, `--dialogue` | Print the dialogue document (Section 11) instead of the answers. |
|
|
627
|
+
| `--evidence FILE` | Give the opponent the clauses of `FILE` as evidence (Section 11.2); implies `--dialogue`. |
|
|
546
628
|
| `--iso-strict`, `--no-autoload` | Select the language profile (Section 3). |
|
|
547
629
|
| `-h`, `--help`, `-v`, `--version` | Print the usage, or the version. |
|
|
548
630
|
|
|
549
|
-
`--
|
|
631
|
+
`--dialogue` MUST NOT be combined with `--check-proof`, `--quads` or
|
|
632
|
+
`--iso-strict`. `--check-proof` MUST NOT be combined with `--proof` or `--quads`, and `--json`
|
|
550
633
|
and `--strict-proof` need `--check-proof`. With `--check-proof -` the proof is
|
|
551
634
|
read from standard input, so the program MUST be named as a file:
|
|
552
635
|
|
|
@@ -566,7 +649,7 @@ goals, the command line MUST say how to check it instead.
|
|
|
566
649
|
|
|
567
650
|
A program MAY choose its own exit status with `halt/1`.
|
|
568
651
|
|
|
569
|
-
##
|
|
652
|
+
## 13. Security Considerations
|
|
570
653
|
|
|
571
654
|
A **program** is Prolog code and runs with the privileges of whoever runs it;
|
|
572
655
|
it MAY read and write files, open sockets and run initialization goals. Only
|
|
@@ -587,19 +670,19 @@ to the checker (Section 9.10). It does not establish that the program is
|
|
|
587
670
|
correct or that the claims are all its answers, and a proof with obligations
|
|
588
671
|
holds only conditional on them.
|
|
589
672
|
|
|
590
|
-
##
|
|
673
|
+
## 14. Conformance
|
|
591
674
|
|
|
592
675
|
A conforming **reasoner** implements Sections 3 to 8, produces answers and
|
|
593
676
|
proof documents in the written form of Section 6, and checks every proof it
|
|
594
677
|
produces as Section 7.1 requires. A conforming **checker**
|
|
595
678
|
implements Sections 8 to 10 and does not depend on a reasoner. For the same
|
|
596
679
|
program and goals, a conforming reasoner and checker MUST produce the same
|
|
597
|
-
answers, proof documents and
|
|
680
|
+
answers, proof documents, reports and dialogue documents as eyeprolog 1.6.42, byte for byte,
|
|
598
681
|
except for the `Detail` texts of failures (Section 10) and where the host's
|
|
599
682
|
floating-point library functions differ in the last digit.
|
|
600
683
|
|
|
601
684
|
The repository's examples, with their saved answers (`examples/output/`),
|
|
602
|
-
proofs (`examples/proof/`) and reports (`examples/check/`), test this on
|
|
685
|
+
proofs (`examples/proof/`) and reports (`examples/check/`), test this on 239
|
|
603
686
|
programs, each with its proof; `npm test` regenerates and re-checks every one of them, as well as
|
|
604
687
|
the proof cases of the conformance suite in `test/conformance/proofs/`.
|
|
605
688
|
|
|
@@ -721,7 +804,8 @@ implements this document, not requirements on other implementations.
|
|
|
721
804
|
| [src/result-format.js](src/result-format.js) | Writing answers, clause records and steps (Sections 6, 8) |
|
|
722
805
|
| [src/proof-document.js](src/proof-document.js) | Checking a run's own proof before it is written (Section 7.1) |
|
|
723
806
|
| [src/check-proof.js](src/check-proof.js) | Reading and checking proof documents and writing reports, with no search of the program (Sections 9, 10) |
|
|
724
|
-
| [src/
|
|
807
|
+
| [src/dialogue.js](src/dialogue.js) | Playing a checked proof out as a dialogue (Section 11) |
|
|
808
|
+
| [src/cli.js](src/cli.js) | The command line (Section 12) |
|
|
725
809
|
| [test/run-proof-checking.mjs](test/run-proof-checking.mjs) | Re-checking every packaged proof against its saved report |
|
|
726
810
|
|
|
727
811
|
**The proof is a replay, not a trace.** The engine answers goals without
|
package/arc-in-eyeprolog.md
CHANGED
|
@@ -216,25 +216,28 @@ the program themselves, with a different copy of the checker if they like.
|
|
|
216
216
|
|
|
217
217
|
## 08 — Catalogue: the corpus
|
|
218
218
|
|
|
219
|
-
The pattern is not aspirational here. Every one of the **
|
|
219
|
+
The pattern is not aspirational here. Every one of the **239 examples** ships
|
|
220
220
|
with its answer, the proof of that answer, and the result of checking the
|
|
221
221
|
proof, and `npm test` re-checks all of them on every run:
|
|
222
222
|
|
|
223
223
|
| | |
|
|
224
224
|
| --- | ---: |
|
|
225
|
-
| examples |
|
|
226
|
-
| packaged proofs |
|
|
227
|
-
| packaged check results |
|
|
228
|
-
| recorded steps |
|
|
229
|
-
| verified against a source clause |
|
|
230
|
-
| recomputed independently |
|
|
231
|
-
| carried by the goal they wrap |
|
|
232
|
-
| trusted boundaries confronted with evidence |
|
|
233
|
-
| remaining obligations |
|
|
225
|
+
| examples | 239 |
|
|
226
|
+
| packaged proofs | 239 |
|
|
227
|
+
| packaged check results | 239 |
|
|
228
|
+
| recorded steps | 213091 |
|
|
229
|
+
| verified against a source clause | 156944 |
|
|
230
|
+
| recomputed independently | 55460 |
|
|
231
|
+
| carried by the goal they wrap | 220 |
|
|
232
|
+
| trusted boundaries confronted with evidence | 53 |
|
|
233
|
+
| remaining obligations | 467 (0.2%) |
|
|
234
234
|
|
|
235
235
|
Each obligation names the conclusion it stands for, so the residue can be read
|
|
236
|
-
rather than only counted. Two
|
|
237
|
-
goal has no proof, and no recorded use can establish an
|
|
236
|
+
rather than only counted. Two fifths of it is one thing: a `\+` step claims a
|
|
237
|
+
goal of the program has no proof, and no recorded use can establish an
|
|
238
|
+
absence. An absence the bundled libraries can decide, such as
|
|
239
|
+
`\+ member(b, "a")`, is recomputed instead. Most of the rest are aggregates
|
|
240
|
+
over the program, such as `countall/2` and `setof/3`, and character I/O.
|
|
238
241
|
|
|
239
242
|
The proof directory is read from disk rather than from a list, so a document
|
|
240
243
|
cannot be added without being checked. An unverified proof is worse than none,
|
|
@@ -2,26 +2,21 @@ condition('C1', resolution, ok, 37).
|
|
|
2
2
|
condition('C2', well_founded, ok, 90).
|
|
3
3
|
condition('C3', justification, ok, 90).
|
|
4
4
|
condition('C4', coverage, ok, 96).
|
|
5
|
-
condition('C5', re_decision, ok,
|
|
6
|
-
condition('C6', boundary_consistency, ok,
|
|
5
|
+
condition('C5', re_decision, ok, 45).
|
|
6
|
+
condition('C6', boundary_consistency, ok, 1).
|
|
7
7
|
condition('C7', relevance, ok, 94).
|
|
8
8
|
obligation(absent, theory_scoped, \+ member(on(A, e), [on(a, table), on(b, a), on(c, b), on(d, c), on(e, d)])).
|
|
9
|
-
obligation(absent, theory_scoped, \+ member([on(a, table), on(b, a), on(c, b), on(d, c), on(e, table)], [[on(a, table), on(b, a), on(c, b), on(d, c), on(e, d)]])).
|
|
10
9
|
obligation(absent, theory_scoped, \+ member(on(A, d), [on(a, table), on(b, a), on(c, b), on(d, c), on(e, table)])).
|
|
11
|
-
obligation(absent, theory_scoped, \+ member([on(a, table), on(b, a), on(c, b), on(d, table), on(e, table)], [[on(a, table), on(b, a), on(c, b), on(d, c), on(e, table)], [on(a, table), on(b, a), on(c, b), on(d, c), on(e, d)]])).
|
|
12
10
|
obligation(absent, theory_scoped, \+ member(on(A, c), [on(a, table), on(b, a), on(c, b), on(d, table), on(e, table)])).
|
|
13
|
-
obligation(absent, theory_scoped, \+ member([on(a, table), on(b, a), on(c, table), on(d, table), on(e, table)], [[on(a, table), on(b, a), on(c, b), on(d, table), on(e, table)], [on(a, table), on(b, a), on(c, b), on(d, c), on(e, table)], [on(a, table), on(b, a), on(c, b), on(d, c), on(e, d)]])).
|
|
14
11
|
obligation(absent, theory_scoped, \+ member(on(A, d), [on(a, table), on(b, a), on(c, table), on(d, table), on(e, table)])).
|
|
15
12
|
obligation(absent, theory_scoped, \+ member(on(A, c), [on(a, table), on(b, a), on(c, table), on(d, table), on(e, table)])).
|
|
16
|
-
obligation(absent, theory_scoped, \+ member([on(a, table), on(b, a), on(c, table), on(d, c), on(e, table)], [[on(a, table), on(b, a), on(c, table), on(d, table), on(e, table)], [on(a, table), on(b, a), on(c, b), on(d, table), on(e, table)], [on(a, table), on(b, a), on(c, b), on(d, c), on(e, table)], [on(a, table), on(b, a), on(c, b), on(d, c), on(e, d)]])).
|
|
17
13
|
obligation(absent, theory_scoped, \+ member(on(A, e), [on(a, table), on(b, a), on(c, table), on(d, c), on(e, table)])).
|
|
18
14
|
obligation(absent, theory_scoped, \+ member(on(A, d), [on(a, table), on(b, a), on(c, table), on(d, c), on(e, table)])).
|
|
19
|
-
obligation(absent, theory_scoped, \+ member([on(a, table), on(b, a), on(c, table), on(d, c), on(e, d)], [[on(a, table), on(b, a), on(c, table), on(d, c), on(e, table)], [on(a, table), on(b, a), on(c, table), on(d, table), on(e, table)], [on(a, table), on(b, a), on(c, b), on(d, table), on(e, table)], [on(a, table), on(b, a), on(c, b), on(d, c), on(e, table)], [on(a, table), on(b, a), on(c, b), on(d, c), on(e, d)]])).
|
|
20
15
|
obligation(collected, theory_scoped, findall(A, block(A), "abcde")).
|
|
21
16
|
steps(90).
|
|
22
17
|
verified(37).
|
|
23
|
-
recomputed(
|
|
18
|
+
recomputed(44).
|
|
24
19
|
composed(1).
|
|
25
|
-
trusted(
|
|
20
|
+
trusted(8).
|
|
26
21
|
claims(4).
|
|
27
22
|
verdict(checked_with_obligations).
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
condition('C1', resolution, ok, 7).
|
|
2
|
-
condition('C2', well_founded, ok,
|
|
3
|
-
condition('C3', justification, ok,
|
|
4
|
-
condition('C4', coverage, ok,
|
|
5
|
-
condition('C5', re_decision, ok,
|
|
2
|
+
condition('C2', well_founded, ok, 41).
|
|
3
|
+
condition('C3', justification, ok, 41).
|
|
4
|
+
condition('C4', coverage, ok, 42).
|
|
5
|
+
condition('C5', re_decision, ok, 34).
|
|
6
6
|
condition('C6', boundary_consistency, ok, 0).
|
|
7
|
-
condition('C7', relevance, ok,
|
|
8
|
-
steps(
|
|
7
|
+
condition('C7', relevance, ok, 42).
|
|
8
|
+
steps(41).
|
|
9
9
|
verified(7).
|
|
10
|
-
recomputed(
|
|
11
|
-
composed(
|
|
10
|
+
recomputed(26).
|
|
11
|
+
composed(8).
|
|
12
12
|
trusted(0).
|
|
13
13
|
claims(1).
|
|
14
14
|
verdict(checked).
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
condition('C1', resolution, ok, 7).
|
|
2
|
-
condition('C2', well_founded, ok,
|
|
3
|
-
condition('C3', justification, ok,
|
|
4
|
-
condition('C4', coverage, ok,
|
|
5
|
-
condition('C5', re_decision, ok,
|
|
2
|
+
condition('C2', well_founded, ok, 47).
|
|
3
|
+
condition('C3', justification, ok, 47).
|
|
4
|
+
condition('C4', coverage, ok, 50).
|
|
5
|
+
condition('C5', re_decision, ok, 40).
|
|
6
6
|
condition('C6', boundary_consistency, ok, 0).
|
|
7
|
-
condition('C7', relevance, ok,
|
|
8
|
-
steps(
|
|
7
|
+
condition('C7', relevance, ok, 54).
|
|
8
|
+
steps(47).
|
|
9
9
|
verified(7).
|
|
10
|
-
recomputed(
|
|
11
|
-
composed(
|
|
10
|
+
recomputed(34).
|
|
11
|
+
composed(6).
|
|
12
12
|
trusted(0).
|
|
13
13
|
claims(7).
|
|
14
14
|
verdict(checked).
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
condition('C1', resolution, ok, 76).
|
|
2
|
-
condition('C2', well_founded, ok,
|
|
3
|
-
condition('C3', justification, ok,
|
|
4
|
-
condition('C4', coverage, ok,
|
|
5
|
-
condition('C5', re_decision, ok,
|
|
2
|
+
condition('C2', well_founded, ok, 338).
|
|
3
|
+
condition('C3', justification, ok, 338).
|
|
4
|
+
condition('C4', coverage, ok, 602).
|
|
5
|
+
condition('C5', re_decision, ok, 262).
|
|
6
6
|
condition('C6', boundary_consistency, ok, 0).
|
|
7
|
-
condition('C7', relevance, ok,
|
|
8
|
-
steps(
|
|
7
|
+
condition('C7', relevance, ok, 341).
|
|
8
|
+
steps(338).
|
|
9
9
|
verified(76).
|
|
10
|
-
recomputed(
|
|
11
|
-
composed(
|
|
10
|
+
recomputed(106).
|
|
11
|
+
composed(156).
|
|
12
12
|
trusted(0).
|
|
13
13
|
claims(3).
|
|
14
14
|
verdict(checked).
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
condition('C1', resolution, ok, 3).
|
|
2
|
-
condition('C2', well_founded, ok,
|
|
3
|
-
condition('C3', justification, ok,
|
|
4
|
-
condition('C4', coverage, ok,
|
|
5
|
-
condition('C5', re_decision, ok,
|
|
2
|
+
condition('C2', well_founded, ok, 33).
|
|
3
|
+
condition('C3', justification, ok, 33).
|
|
4
|
+
condition('C4', coverage, ok, 35).
|
|
5
|
+
condition('C5', re_decision, ok, 25).
|
|
6
6
|
condition('C6', boundary_consistency, ok, 0).
|
|
7
|
-
condition('C7', relevance, ok,
|
|
7
|
+
condition('C7', relevance, ok, 36).
|
|
8
8
|
obligation(builtin, stateful, fd_var(A)).
|
|
9
9
|
obligation(builtin, stateful, fd_inf(A, 2)).
|
|
10
10
|
obligation(builtin, stateful, fd_sup(A, 7)).
|
|
11
11
|
obligation(builtin, stateful, fd_size(A, 4)).
|
|
12
12
|
obligation(builtin, stateful, fd_dom(A, 2..4 \/ 7)).
|
|
13
|
-
steps(
|
|
13
|
+
steps(33).
|
|
14
14
|
verified(3).
|
|
15
|
-
recomputed(
|
|
16
|
-
composed(
|
|
15
|
+
recomputed(24).
|
|
16
|
+
composed(1).
|
|
17
17
|
trusted(5).
|
|
18
18
|
claims(3).
|
|
19
19
|
verdict(checked_with_obligations).
|
|
@@ -2,14 +2,13 @@ condition('C1', resolution, ok, 8).
|
|
|
2
2
|
condition('C2', well_founded, ok, 12).
|
|
3
3
|
condition('C3', justification, ok, 12).
|
|
4
4
|
condition('C4', coverage, ok, 14).
|
|
5
|
-
condition('C5', re_decision, ok,
|
|
6
|
-
condition('C6', boundary_consistency, ok,
|
|
5
|
+
condition('C5', re_decision, ok, 4).
|
|
6
|
+
condition('C6', boundary_consistency, ok, 0).
|
|
7
7
|
condition('C7', relevance, ok, 13).
|
|
8
|
-
obligation(absent, theory_scoped, \+ member(data4, [data1, data2, data3])).
|
|
9
8
|
steps(12).
|
|
10
9
|
verified(8).
|
|
11
|
-
recomputed(
|
|
10
|
+
recomputed(4).
|
|
12
11
|
composed(0).
|
|
13
|
-
trusted(
|
|
12
|
+
trusted(0).
|
|
14
13
|
claims(1).
|
|
15
|
-
verdict(
|
|
14
|
+
verdict(checked).
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
condition('C1', resolution, ok, 7).
|
|
2
|
-
condition('C2', well_founded, ok,
|
|
3
|
-
condition('C3', justification, ok,
|
|
4
|
-
condition('C4', coverage, ok,
|
|
5
|
-
condition('C5', re_decision, ok,
|
|
2
|
+
condition('C2', well_founded, ok, 17).
|
|
3
|
+
condition('C3', justification, ok, 17).
|
|
4
|
+
condition('C4', coverage, ok, 21).
|
|
5
|
+
condition('C5', re_decision, ok, 10).
|
|
6
6
|
condition('C6', boundary_consistency, ok, 0).
|
|
7
|
-
condition('C7', relevance, ok,
|
|
8
|
-
steps(
|
|
7
|
+
condition('C7', relevance, ok, 18).
|
|
8
|
+
steps(17).
|
|
9
9
|
verified(7).
|
|
10
|
-
recomputed(
|
|
11
|
-
composed(
|
|
10
|
+
recomputed(6).
|
|
11
|
+
composed(4).
|
|
12
12
|
trusted(0).
|
|
13
13
|
claims(1).
|
|
14
14
|
verdict(checked).
|
|
@@ -2,15 +2,14 @@ condition('C1', resolution, ok, 244).
|
|
|
2
2
|
condition('C2', well_founded, ok, 296).
|
|
3
3
|
condition('C3', justification, ok, 296).
|
|
4
4
|
condition('C4', coverage, ok, 353).
|
|
5
|
-
condition('C5', re_decision, ok,
|
|
6
|
-
condition('C6', boundary_consistency, ok,
|
|
5
|
+
condition('C5', re_decision, ok, 51).
|
|
6
|
+
condition('C6', boundary_consistency, ok, 1).
|
|
7
7
|
condition('C7', relevance, ok, 327).
|
|
8
8
|
obligation(absent, theory_scoped, \+ better_lower_sugar(biscuits, 120, 30)).
|
|
9
|
-
obligation(absent, theory_scoped, \+ matches('createdat expiresat insight metric sugar_g_per_serving retailer delfour scopedevice self-scanner scopeevent pick_up_scanner', 'diabetes|medical')).
|
|
10
9
|
steps(296).
|
|
11
10
|
verified(244).
|
|
12
|
-
recomputed(
|
|
11
|
+
recomputed(51).
|
|
13
12
|
composed(0).
|
|
14
|
-
trusted(
|
|
13
|
+
trusted(1).
|
|
15
14
|
claims(31).
|
|
16
15
|
verdict(checked_with_obligations).
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
condition('C1', resolution, ok, 231).
|
|
2
|
+
condition('C2', well_founded, ok, 444).
|
|
3
|
+
condition('C3', justification, ok, 444).
|
|
4
|
+
condition('C4', coverage, ok, 599).
|
|
5
|
+
condition('C5', re_decision, ok, 207).
|
|
6
|
+
condition('C6', boundary_consistency, ok, 5).
|
|
7
|
+
condition('C7', relevance, ok, 492).
|
|
8
|
+
obligation(absent, theory_scoped, \+ common_ground(valid(c17), [])).
|
|
9
|
+
obligation(absent, theory_scoped, \+ opponent_proves(minor_party(c17), 1, A)).
|
|
10
|
+
obligation(absent, theory_scoped, \+ common_ground(ratified_at_majority(c17), [born(ann, 2009)])).
|
|
11
|
+
obligation(absent, theory_scoped, \+ common_ground(valid(c18), [])).
|
|
12
|
+
obligation(absent, theory_scoped, \+ common_ground(ratified_at_majority(c18), [born(dave, 2010)])).
|
|
13
|
+
obligation(absent, theory_scoped, \+ common_ground(ratified(c18, A, B), [born(dave, 2010)])).
|
|
14
|
+
steps(444).
|
|
15
|
+
verified(231).
|
|
16
|
+
recomputed(191).
|
|
17
|
+
composed(16).
|
|
18
|
+
trusted(6).
|
|
19
|
+
claims(48).
|
|
20
|
+
verdict(checked_with_obligations).
|
|
@@ -2,30 +2,13 @@ condition('C1', resolution, ok, 121).
|
|
|
2
2
|
condition('C2', well_founded, ok, 167).
|
|
3
3
|
condition('C3', justification, ok, 167).
|
|
4
4
|
condition('C4', coverage, ok, 223).
|
|
5
|
-
condition('C5', re_decision, ok,
|
|
6
|
-
condition('C6', boundary_consistency, ok,
|
|
5
|
+
condition('C5', re_decision, ok, 46).
|
|
6
|
+
condition('C6', boundary_consistency, ok, 0).
|
|
7
7
|
condition('C7', relevance, ok, 183).
|
|
8
|
-
obligation(absent, theory_scoped, \+ member(b, "a")).
|
|
9
|
-
obligation(absent, theory_scoped, \+ member(d, "ba")).
|
|
10
|
-
obligation(absent, theory_scoped, \+ member(e, "dba")).
|
|
11
|
-
obligation(absent, theory_scoped, \+ member(f, "edba")).
|
|
12
|
-
obligation(absent, theory_scoped, \+ member(f, "dba")).
|
|
13
|
-
obligation(absent, theory_scoped, \+ member(c, "a")).
|
|
14
|
-
obligation(absent, theory_scoped, \+ member(d, "ca")).
|
|
15
|
-
obligation(absent, theory_scoped, \+ member(e, "dca")).
|
|
16
|
-
obligation(absent, theory_scoped, \+ member(f, "edca")).
|
|
17
|
-
obligation(absent, theory_scoped, \+ member(f, "dca")).
|
|
18
|
-
obligation(absent, theory_scoped, \+ member(e, "ca")).
|
|
19
|
-
obligation(absent, theory_scoped, \+ member(f, "eca")).
|
|
20
|
-
obligation(absent, theory_scoped, \+ member(b, "ca")).
|
|
21
|
-
obligation(absent, theory_scoped, \+ member(d, "bca")).
|
|
22
|
-
obligation(absent, theory_scoped, \+ member(e, "dbca")).
|
|
23
|
-
obligation(absent, theory_scoped, \+ member(f, "edbca")).
|
|
24
|
-
obligation(absent, theory_scoped, \+ member(f, "dbca")).
|
|
25
8
|
steps(167).
|
|
26
9
|
verified(121).
|
|
27
|
-
recomputed(
|
|
10
|
+
recomputed(46).
|
|
28
11
|
composed(0).
|
|
29
|
-
trusted(
|
|
12
|
+
trusted(0).
|
|
30
13
|
claims(16).
|
|
31
|
-
verdict(
|
|
14
|
+
verdict(checked).
|
|
@@ -2,15 +2,14 @@ condition('C1', resolution, ok, 97).
|
|
|
2
2
|
condition('C2', well_founded, ok, 107).
|
|
3
3
|
condition('C3', justification, ok, 107).
|
|
4
4
|
condition('C4', coverage, ok, 157).
|
|
5
|
-
condition('C5', re_decision, ok,
|
|
6
|
-
condition('C6', boundary_consistency, ok,
|
|
5
|
+
condition('C5', re_decision, ok, 9).
|
|
6
|
+
condition('C6', boundary_consistency, ok, 1).
|
|
7
7
|
condition('C7', relevance, ok, 150).
|
|
8
8
|
obligation(absent, theory_scoped, \+ lower_cost_eligible_package(120)).
|
|
9
|
-
obligation(absent, theory_scoped, \+ matches('createdat expiresat insight metric regional_retooling_priority region flanders scopedevice economic-resilience-board scopeevent budget-prep-window suggestionpolicy lowest_cost_package_covering_all_active_needs threshold 3', 'salary|payroll|invoice|medical|firmname')).
|
|
10
9
|
steps(107).
|
|
11
10
|
verified(97).
|
|
12
|
-
recomputed(
|
|
11
|
+
recomputed(9).
|
|
13
12
|
composed(0).
|
|
14
|
-
trusted(
|
|
13
|
+
trusted(1).
|
|
15
14
|
claims(43).
|
|
16
15
|
verdict(checked_with_obligations).
|
|
@@ -2,20 +2,14 @@ condition('C1', resolution, ok, 19).
|
|
|
2
2
|
condition('C2', well_founded, ok, 26).
|
|
3
3
|
condition('C3', justification, ok, 26).
|
|
4
4
|
condition('C4', coverage, ok, 26).
|
|
5
|
-
condition('C5', re_decision, ok,
|
|
6
|
-
condition('C6', boundary_consistency, ok,
|
|
5
|
+
condition('C5', re_decision, ok, 6).
|
|
6
|
+
condition('C6', boundary_consistency, ok, 0).
|
|
7
7
|
condition('C7', relevance, ok, 29).
|
|
8
|
-
obligation(absent, theory_scoped, \+ member(b, "a")).
|
|
9
|
-
obligation(absent, theory_scoped, \+ member(d, "ba")).
|
|
10
|
-
obligation(absent, theory_scoped, \+ member(f, "dba")).
|
|
11
|
-
obligation(absent, theory_scoped, \+ member(e, "c")).
|
|
12
|
-
obligation(absent, theory_scoped, \+ member(f, "ec")).
|
|
13
|
-
obligation(absent, theory_scoped, \+ member(g, "fec")).
|
|
14
8
|
obligation(absent, theory_scoped, \+ is_reachable(b, e)).
|
|
15
9
|
steps(26).
|
|
16
10
|
verified(19).
|
|
17
|
-
recomputed(
|
|
11
|
+
recomputed(6).
|
|
18
12
|
composed(0).
|
|
19
|
-
trusted(
|
|
13
|
+
trusted(1).
|
|
20
14
|
claims(3).
|
|
21
15
|
verdict(checked_with_obligations).
|