eyemind 0.1.35 → 0.1.37
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/SPEC.md +845 -716
- package/package.json +1 -1
- package/src/engine.js +2 -2
- package/src/program.js +1 -1
- package/src/proof.js +1 -1
- package/src/reader.js +1 -1
- package/src/version.js +1 -1
package/package.json
CHANGED
package/src/engine.js
CHANGED
|
@@ -611,7 +611,7 @@ export class Solver {
|
|
|
611
611
|
// For a rule semi-naive search can take, the key of each body goal answered
|
|
612
612
|
// by facts alone, or null for a primitive or a negation or collection; null
|
|
613
613
|
// for other rules. Negations and collections consult lower strata only
|
|
614
|
-
// (Section
|
|
614
|
+
// (Section 6.1), so they do not change within one.
|
|
615
615
|
directKeys(clause) {
|
|
616
616
|
if (this.direct.has(clause.id)) return this.direct.get(clause.id);
|
|
617
617
|
let keys = [];
|
|
@@ -887,7 +887,7 @@ export function run(program, { goal = null, goals = null, proof = false, maxDept
|
|
|
887
887
|
}
|
|
888
888
|
|
|
889
889
|
// The comment that opens a run's output and proof: what its conclusions are
|
|
890
|
-
// (SPEC Section
|
|
890
|
+
// (SPEC Section 8.6), and that there are none when there are none.
|
|
891
891
|
function conclusionsHeading(kind, count) {
|
|
892
892
|
if (kind === 'halted') return "// Halted: a contradiction() holds; the facts derived until then, ending with 'false'.";
|
|
893
893
|
if (kind === 'goals') {
|
package/src/program.js
CHANGED
|
@@ -31,7 +31,7 @@ export class Clause {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
// The names of the variables only the conclusion mentions: a forward rule
|
|
34
|
-
// gives each a Skolem witness per firing (SPEC Section
|
|
34
|
+
// gives each a Skolem witness per firing (SPEC Section 8.2).
|
|
35
35
|
get witnessNames() {
|
|
36
36
|
if (this.witnessed === null) {
|
|
37
37
|
const inBody = new Set();
|
package/src/proof.js
CHANGED
|
@@ -494,7 +494,7 @@ function checkResolution(program, step, fail, tally) {
|
|
|
494
494
|
// Skolem term of this firing, skolem(Rule, Variable, Arguments), where
|
|
495
495
|
// Arguments are the ground values of the conclusions' other variables, in
|
|
496
496
|
// order of first occurrence, leaving out those that hold a witness of this
|
|
497
|
-
// firing: the term the reasoner makes (Section
|
|
497
|
+
// firing: the term the reasoner makes (Section 8.2). Returns null when the
|
|
498
498
|
// rule has no witnesses, else whether they all hold; head is the rule's
|
|
499
499
|
// renamed conclusions and names maps its variables to their renamed ones.
|
|
500
500
|
function checkWitnesses(clause, head, names, env) {
|
package/src/reader.js
CHANGED
|
@@ -12,7 +12,7 @@ import { CHAINED, RESERVED_WORDS, decodeName } from './writer.js';
|
|
|
12
12
|
const JS_VALUES = new Set(['undefined', 'NaN', 'Infinity']);
|
|
13
13
|
|
|
14
14
|
// The name of the variable an identifier writes: names starting VAR_ are
|
|
15
|
-
// encoded (Section
|
|
15
|
+
// encoded (Section 9.2).
|
|
16
16
|
function variableName(text, line) {
|
|
17
17
|
if (!text.startsWith('VAR_')) return text;
|
|
18
18
|
const name = decodeName(text);
|
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.37';
|