eyemind 0.1.23 → 0.1.25
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 +4 -4
- package/SPEC.md +7 -6
- package/package.json +1 -1
- package/src/cli.js +15 -15
- package/src/version.js +1 -1
package/README.md
CHANGED
|
@@ -15,10 +15,10 @@ JavaScript library, and a browser application, with no dependencies.
|
|
|
15
15
|
write rules, check proofs, use the library, and develop eyemind.
|
|
16
16
|
- **[Specification](https://eyereasoner.github.io/eyemind/SPEC)**: the
|
|
17
17
|
language, its canonical text, the proof format, and the C1–C8 checks.
|
|
18
|
-
- **[Examples](examples/)**:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
- **[Conformance suite](conformance/)**:
|
|
18
|
+
- **[Examples](https://eyereasoner.github.io/eyemind/examples/)**:
|
|
19
|
+
90 runnable programs, each with a card deck and saved conclusions, proofs
|
|
20
|
+
and check reports.
|
|
21
|
+
- **[Conformance suite](conformance/)**: 356 cases that test any
|
|
22
22
|
implementation of the specification through its command line.
|
|
23
23
|
|
|
24
24
|
```js
|
package/SPEC.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
```text
|
|
4
4
|
Title: The eyemind Rule Language and Proof Format
|
|
5
|
-
Version: eyemind 0.1.
|
|
5
|
+
Version: eyemind 0.1.25
|
|
6
6
|
Status: Informational
|
|
7
7
|
Author: Jos De Roo, KNoWS office of IDLab, Ghent University - imec
|
|
8
8
|
Repository: https://github.com/eyereasoner/eyemind
|
|
@@ -22,7 +22,7 @@ command line.
|
|
|
22
22
|
## Status of This Memo
|
|
23
23
|
|
|
24
24
|
This document is not an Internet Standards Track specification. It describes
|
|
25
|
-
the language and formats as implemented by eyemind 0.1.
|
|
25
|
+
the language and formats as implemented by eyemind 0.1.25, for readers who want
|
|
26
26
|
to write programs, produce or consume proofs and reports, or implement a
|
|
27
27
|
compatible reasoner or checker. Where this document and the implementation
|
|
28
28
|
disagree, that is a defect in one of them.
|
|
@@ -814,15 +814,16 @@ eyemind [OPTION ...] [FILE ...]
|
|
|
814
814
|
| Option | Meaning |
|
|
815
815
|
| --- | --- |
|
|
816
816
|
| (none) | Load the files, or standard input, as one program and print its conclusions. |
|
|
817
|
-
| `--proof` | Print the proof document instead. |
|
|
818
|
-
| `--check-proof FILE` | Check the proof in `FILE` (`-` for standard input) against the program and print its report. |
|
|
817
|
+
| `-p`, `--proof` | Print the proof document instead. |
|
|
818
|
+
| `-c FILE`, `--check-proof FILE` | Check the proof in `FILE` (`-` for standard input) against the program and print its report. |
|
|
819
819
|
| `--json` | With `--check-proof`, print the report as JSON. |
|
|
820
820
|
| `--goal GOAL` | Ask `GOAL`, read as in Section 9, where an array is a conjunction; MAY be repeated. With `--check-proof`, the goals the proof answers. |
|
|
821
821
|
| `--strict-proof` | With `--check-proof`, forbid trusted boundaries. |
|
|
822
822
|
| `--unused` | Print the unused clauses (Section 13). |
|
|
823
823
|
| `--stats` | Print reasoning statistics as JSON to standard error: `inferences`, the goals started, which `--max-inferences` bounds; `rounds`, the forward rounds run over all strata; and `derived`, the facts forward rules added, not counting a conclusion the program states as a fact, a query's answers or `'false'`. |
|
|
824
824
|
| `--max-depth N`, `--max-iterations N`, `--max-inferences N` | The bounds of Section 7.3; `N` MUST be a positive safe integer, at most 9007199254740991. |
|
|
825
|
-
|
|
|
825
|
+
| `-v`, `--version` | Print the version. |
|
|
826
|
+
| `-h`, `--help` | Print the usage, including every option and its short alias where one exists. |
|
|
826
827
|
|
|
827
828
|
`--check-proof` MUST NOT be combined with `--proof`, nor `--unused` with
|
|
828
829
|
either, and `--json` and `--strict-proof` need `--check-proof`. A program
|
|
@@ -867,7 +868,7 @@ conclusions and proof documents in the canonical text, and checks every proof
|
|
|
867
868
|
it produces as Section 11 describes. A conforming **checker** implements
|
|
868
869
|
Sections 9, 11 and 12 and does not depend on a reasoner. For the same
|
|
869
870
|
program, a conforming reasoner and checker MUST produce the same
|
|
870
|
-
conclusions, proof documents and reports as eyemind 0.1.
|
|
871
|
+
conclusions, proof documents and reports as eyemind 0.1.25, byte for byte,
|
|
871
872
|
except for the `Detail` texts of failures (Section 12), the internal names of
|
|
872
873
|
variables where Section 3 says so, and where the host's floating-point
|
|
873
874
|
library functions (`exp`, `log`, the trigonometric and hyperbolic functions,
|
package/package.json
CHANGED
package/src/cli.js
CHANGED
|
@@ -7,19 +7,19 @@ import { VERSION } from './version.js';
|
|
|
7
7
|
|
|
8
8
|
export const HELP = `Usage: eyemind [OPTION ...] [FILE ...]
|
|
9
9
|
Programs are JavaScript; forward rules run to a fixpoint.
|
|
10
|
-
--proof Print the claims with clause(...) and step(...) records
|
|
11
|
-
--check-proof FILE Print a C1-C8 check report of a proof (- for stdin)
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
--version Print the version
|
|
22
|
-
--help Print this help
|
|
10
|
+
-p, --proof Print the claims with clause(...) and step(...) records
|
|
11
|
+
-c, --check-proof FILE Print a C1-C8 check report of a proof (- for stdin)
|
|
12
|
+
--json Print the check report as JSON instead
|
|
13
|
+
--goal GOAL Ask a backward goal after forward reasoning; with
|
|
14
|
+
--check-proof, the goal the proof answers
|
|
15
|
+
--strict-proof Reject proofs relying on absence or collection
|
|
16
|
+
--unused List the clauses that make no difference to the conclusions
|
|
17
|
+
--stats Print reasoning statistics to stderr
|
|
18
|
+
--max-depth N Bound backward recursion (default 1000000)
|
|
19
|
+
--max-iterations N Bound forward rounds per stratum (default 1000)
|
|
20
|
+
--max-inferences N Bound reasoning work (default 1000000)
|
|
21
|
+
-v, --version Print the version
|
|
22
|
+
-h, --help Print this help
|
|
23
23
|
Source defaults to stdin; multiple files form one program.
|
|
24
24
|
Exit codes: 0 success, 1 error, 2 invalid proof, 65 contradiction.
|
|
25
25
|
`;
|
|
@@ -66,11 +66,11 @@ export function main(argv, io) {
|
|
|
66
66
|
asJson = true;
|
|
67
67
|
} else if (arg === '--unused') {
|
|
68
68
|
unused = true;
|
|
69
|
-
} else if (arg === '--check-proof' || arg === '--goal' || Object.hasOwn(LIMITS, arg)) {
|
|
69
|
+
} else if (arg === '--check-proof' || arg === '-c' || arg === '--goal' || Object.hasOwn(LIMITS, arg)) {
|
|
70
70
|
i++;
|
|
71
71
|
if (i >= argv.length) throw new UsageError(`${arg} needs a value`);
|
|
72
72
|
const value = argv[i];
|
|
73
|
-
if (arg === '--check-proof') {
|
|
73
|
+
if (arg === '--check-proof' || arg === '-c') {
|
|
74
74
|
proofFile = value;
|
|
75
75
|
} else if (arg === '--goal') {
|
|
76
76
|
goals.push(value);
|
package/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// The release this checkout is; ./release keeps it in step with package.json.
|
|
2
|
-
export const VERSION = '0.1.
|
|
2
|
+
export const VERSION = '0.1.25';
|