eyemind 0.1.23 → 0.1.24

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 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/)**: 80 runnable programs, with their conclusions,
18
+ - **[Examples](examples/)**: 90 runnable programs, with their conclusions,
19
19
  proofs and check reports, and a
20
20
  [card deck](https://eyereasoner.github.io/eyemind/examples/deck/) for each.
21
- - **[Conformance suite](conformance/)**: 353 cases that test any
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.23
5
+ Version: eyemind 0.1.24
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.23, for readers who want
25
+ the language and formats as implemented by eyemind 0.1.24, 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
- | `--version`, `--help` | Print the version, or the usage. |
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.23, byte for byte,
871
+ conclusions, proof documents and reports as eyemind 0.1.24, 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eyemind",
3
- "version": "0.1.23",
3
+ "version": "0.1.24",
4
4
  "description": "A dependency-free JavaScript rule language with forward and backward reasoning and checkable proofs.",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
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
- --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
- --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.23';
2
+ export const VERSION = '0.1.24';