occam-verify-cli 1.0.823 → 1.0.825
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/lib/context/file/nominal.js +26 -22
- package/lib/element/rule.js +2 -3
- package/lib/utilities/element.js +3 -7
- package/lib/utilities/json.js +89 -1
- package/package.json +4 -4
- package/src/context/file/nominal.js +39 -24
- package/src/element/rule.js +0 -2
- package/src/utilities/element.js +4 -10
- package/src/utilities/json.js +104 -0
- package/lib/process/initialise.js +0 -57
- package/src/process/initialise.js +0 -72
package/src/element/rule.js
CHANGED
|
@@ -6,7 +6,6 @@ import { Element, asynchronousUtilities } from "occam-languages";
|
|
|
6
6
|
import { define } from "../elements";
|
|
7
7
|
import { enclose } from "../utilities/context";
|
|
8
8
|
import { labelsFromJSON, premisesFromJSON, conclusionFromJSON, labelsToLabelsJSON, premisesToPremisesJSON, conclusionToConclusionJSON } from "../utilities/json";
|
|
9
|
-
import {rulsStringFromLabelsPremisesAndConclusion} from "../utilities/string";
|
|
10
9
|
|
|
11
10
|
const { reverse } = arrayUtilities,
|
|
12
11
|
{ asyncExtract, asyncForwardsEvery, asyncBackwardsEvery } = asynchronousUtilities;
|
|
@@ -344,7 +343,6 @@ export default define(class Rule extends Element {
|
|
|
344
343
|
labels = labelsFromJSON(json, context),
|
|
345
344
|
premises = premisesFromJSON(json, context),
|
|
346
345
|
conclusion = conclusionFromJSON(json, context),
|
|
347
|
-
ruleString = rulsStringFromLabelsPremisesAndConclusion(labels, premises, conclusion),
|
|
348
346
|
rule = new Rule(context, string, node, proof, labels, premises, conclusion);
|
|
349
347
|
|
|
350
348
|
return rule;
|
package/src/utilities/element.js
CHANGED
|
@@ -273,11 +273,8 @@ export function deductionFromDeductionNode(deductionNode, context) {
|
|
|
273
273
|
const { Deduction } = elements,
|
|
274
274
|
node = deductionNode, ///
|
|
275
275
|
string = context.nodeAsString(node),
|
|
276
|
-
statement = statementFromDeductionNode(deductionNode, context)
|
|
277
|
-
|
|
278
|
-
context = null;
|
|
279
|
-
|
|
280
|
-
const deduction = new Deduction(context, string, node, statement);
|
|
276
|
+
statement = statementFromDeductionNode(deductionNode, context),
|
|
277
|
+
deduction = new Deduction(context, string, node, statement);
|
|
281
278
|
|
|
282
279
|
return deduction;
|
|
283
280
|
}
|
|
@@ -419,11 +416,8 @@ export function conclusionFromConclusionNode(conclusionNode, context) {
|
|
|
419
416
|
const { Conclusion } = elements,
|
|
420
417
|
node = conclusionNode, ///
|
|
421
418
|
string = context.nodeAsString(node),
|
|
422
|
-
statement = statementFromConclusionNode(conclusionNode, context)
|
|
423
|
-
|
|
424
|
-
context = null;
|
|
425
|
-
|
|
426
|
-
const conclusion = new Conclusion(context, string, node, statement);
|
|
419
|
+
statement = statementFromConclusionNode(conclusionNode, context),
|
|
420
|
+
conclusion = new Conclusion(context, string, node, statement);
|
|
427
421
|
|
|
428
422
|
return conclusion;
|
|
429
423
|
}
|
package/src/utilities/json.js
CHANGED
|
@@ -267,6 +267,22 @@ export function termsFromJSON(json, context) {
|
|
|
267
267
|
return terms;
|
|
268
268
|
}
|
|
269
269
|
|
|
270
|
+
export function rulesFromJSON(json, context) {
|
|
271
|
+
let { rules } = json;
|
|
272
|
+
|
|
273
|
+
const { Rule } = elements,
|
|
274
|
+
rulesJSON = rules; ///
|
|
275
|
+
|
|
276
|
+
rules = rulesJSON.map((ruleJSON) => {
|
|
277
|
+
const json = ruleJSON, ///
|
|
278
|
+
rule = Rule.fromJSON(json, context);
|
|
279
|
+
|
|
280
|
+
return rule;
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
return rules;
|
|
284
|
+
}
|
|
285
|
+
|
|
270
286
|
export function framesFromJSON(json, context) {
|
|
271
287
|
let { frames } = json;
|
|
272
288
|
|
|
@@ -299,6 +315,22 @@ export function labelsFromJSON(json, context) {
|
|
|
299
315
|
return labels;
|
|
300
316
|
}
|
|
301
317
|
|
|
318
|
+
export function axiomsFromJSON(json, context) {
|
|
319
|
+
let { axioms } = json;
|
|
320
|
+
|
|
321
|
+
const { Axiom } = elements,
|
|
322
|
+
axiomsJSON = axioms; ///
|
|
323
|
+
|
|
324
|
+
axioms = axiomsJSON.map((axiomJSON) => {
|
|
325
|
+
const json = axiomJSON, ///
|
|
326
|
+
axiom = Axiom.fromJSON(json, context);
|
|
327
|
+
|
|
328
|
+
return axiom;
|
|
329
|
+
});
|
|
330
|
+
|
|
331
|
+
return axioms;
|
|
332
|
+
}
|
|
333
|
+
|
|
302
334
|
export function premisesFromJSON(json, context) {
|
|
303
335
|
let { premises } = json;
|
|
304
336
|
|
|
@@ -315,6 +347,22 @@ export function premisesFromJSON(json, context) {
|
|
|
315
347
|
return premises;
|
|
316
348
|
}
|
|
317
349
|
|
|
350
|
+
export function theoremsFromJSON(json, context) {
|
|
351
|
+
let { theorems } = json;
|
|
352
|
+
|
|
353
|
+
const { Theorem } = elements,
|
|
354
|
+
theoremsJSON = theorems; ///
|
|
355
|
+
|
|
356
|
+
theorems = theoremsJSON.map((theoremJSON) => {
|
|
357
|
+
const json = theoremJSON, ///
|
|
358
|
+
theorem = Theorem.fromJSON(json, context);
|
|
359
|
+
|
|
360
|
+
return theorem;
|
|
361
|
+
});
|
|
362
|
+
|
|
363
|
+
return theorems;
|
|
364
|
+
}
|
|
365
|
+
|
|
318
366
|
export function variablesFromJSON(json, context) {
|
|
319
367
|
let { variables } = json;
|
|
320
368
|
|
|
@@ -480,6 +528,22 @@ export function referencesFromJSON(json, context) {
|
|
|
480
528
|
return references;
|
|
481
529
|
}
|
|
482
530
|
|
|
531
|
+
export function conjecturesFromJSON(json, context) {
|
|
532
|
+
let { conjectures } = json;
|
|
533
|
+
|
|
534
|
+
const { Conjecture } = elements,
|
|
535
|
+
conjecturesJSON = conjectures; ///
|
|
536
|
+
|
|
537
|
+
conjectures = conjecturesJSON.map((conjectureJSON) => {
|
|
538
|
+
const json = conjectureJSON, ///
|
|
539
|
+
conjecture = Conjecture.fromJSON(json, context);
|
|
540
|
+
|
|
541
|
+
return conjecture;
|
|
542
|
+
});
|
|
543
|
+
|
|
544
|
+
return conjectures;
|
|
545
|
+
}
|
|
546
|
+
|
|
483
547
|
export function combinatorsFromJSON(json, context) {
|
|
484
548
|
let { combinators } = json;
|
|
485
549
|
|
|
@@ -857,6 +921,16 @@ export function typesToTypesJSON(types) {
|
|
|
857
921
|
return typesJSON;
|
|
858
922
|
}
|
|
859
923
|
|
|
924
|
+
export function rulesToRulesJSON(rules) {
|
|
925
|
+
const rulesJSON = rules.map((rule) => {
|
|
926
|
+
const ruleJSON = rule.toJSON();
|
|
927
|
+
|
|
928
|
+
return ruleJSON;
|
|
929
|
+
});
|
|
930
|
+
|
|
931
|
+
return rulesJSON;
|
|
932
|
+
}
|
|
933
|
+
|
|
860
934
|
export function labelsToLabelsJSON(labels) {
|
|
861
935
|
const labelsJSON = labels.map((label) => {
|
|
862
936
|
const labelJSON = label.toJSON();
|
|
@@ -877,6 +951,16 @@ export function framesToFramesJSON(frames) {
|
|
|
877
951
|
return framesJSON;
|
|
878
952
|
}
|
|
879
953
|
|
|
954
|
+
export function axiomsToAxiomsJSON(axioms) {
|
|
955
|
+
const axiomsJSON = axioms.map((axiom) => {
|
|
956
|
+
const axiomJSON = axiom.toJSON();
|
|
957
|
+
|
|
958
|
+
return axiomJSON;
|
|
959
|
+
});
|
|
960
|
+
|
|
961
|
+
return axiomsJSON;
|
|
962
|
+
}
|
|
963
|
+
|
|
880
964
|
export function premisesToPremisesJSON(premises) {
|
|
881
965
|
const premisesJSON = premises.map((premise) => {
|
|
882
966
|
const premiseJSON = premise.toJSON();
|
|
@@ -887,6 +971,16 @@ export function premisesToPremisesJSON(premises) {
|
|
|
887
971
|
return premisesJSON;
|
|
888
972
|
}
|
|
889
973
|
|
|
974
|
+
export function theoremsToTheoremsJSON(theorems) {
|
|
975
|
+
const theoremsJSON = theorems.map((theorem) => {
|
|
976
|
+
const theoremJSON = theorem.toJSON();
|
|
977
|
+
|
|
978
|
+
return theoremJSON;
|
|
979
|
+
});
|
|
980
|
+
|
|
981
|
+
return theoremsJSON;
|
|
982
|
+
}
|
|
983
|
+
|
|
890
984
|
export function variablesToVariablesJSON(variables) {
|
|
891
985
|
const variablesJSON = variables.map((variable) => {
|
|
892
986
|
const variableJSON = variable.toJSON();
|
|
@@ -987,6 +1081,16 @@ export function referencesToReferencesJSON(references) {
|
|
|
987
1081
|
return referencesJSON;
|
|
988
1082
|
}
|
|
989
1083
|
|
|
1084
|
+
export function conjecturesToConjecturesJSON(conjectures) {
|
|
1085
|
+
const conjecturesJSON = conjectures.map((conjecture) => {
|
|
1086
|
+
const conjectureJSON = conjecture.toJSON();
|
|
1087
|
+
|
|
1088
|
+
return conjectureJSON;
|
|
1089
|
+
});
|
|
1090
|
+
|
|
1091
|
+
return conjecturesJSON;
|
|
1092
|
+
}
|
|
1093
|
+
|
|
990
1094
|
export function combinatorsToCombinatorsJSON(combinators) {
|
|
991
1095
|
const combinatorsJSON = combinators.map((combinator) => {
|
|
992
1096
|
const combinatorJSON = combinator.toJSON();
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "initialiseFile", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return initialiseFile;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _occamlanguages = require("occam-languages");
|
|
12
|
-
const _element = require("../utilities/element");
|
|
13
|
-
const { nodeQuery } = _occamlanguages.queryUtilities;
|
|
14
|
-
const ruleNodeQuery = nodeQuery("/rule"), axiomNodeQuery = nodeQuery("/axiom"), theoremNodeQuery = nodeQuery("/theorem"), conjectureNodeQuery = nodeQuery("/conjecture");
|
|
15
|
-
class TopLevelPass extends _occamlanguages.SimplePass {
|
|
16
|
-
static maps = [
|
|
17
|
-
{
|
|
18
|
-
nodeQuery: ruleNodeQuery,
|
|
19
|
-
run: (ruleNode, context)=>{
|
|
20
|
-
const success = true, rule = (0, _element.ruleFromRuleNode)(ruleNode, context);
|
|
21
|
-
context.addRule(rule);
|
|
22
|
-
return success;
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
nodeQuery: axiomNodeQuery,
|
|
27
|
-
run: (axiomNode, context)=>{
|
|
28
|
-
const success = true, axiom = (0, _element.axiomFromAxiomNode)(axiomNode, context);
|
|
29
|
-
context.addAxiom(axiom);
|
|
30
|
-
return success;
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
nodeQuery: theoremNodeQuery,
|
|
35
|
-
run: (theoremNode, context)=>{
|
|
36
|
-
const success = true, theorem = (0, _element.theoremFromTheoremNode)(theoremNode, context);
|
|
37
|
-
context.addTheorem(theorem);
|
|
38
|
-
return success;
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
nodeQuery: conjectureNodeQuery,
|
|
43
|
-
run: (conjectureNode, context)=>{
|
|
44
|
-
const success = true, conjecture = (0, _element.conjectureFromConjectureNode)(conjectureNode, context);
|
|
45
|
-
context.addConjecture(conjecture);
|
|
46
|
-
return success;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
];
|
|
50
|
-
}
|
|
51
|
-
const topLevelPass = new TopLevelPass();
|
|
52
|
-
function initialiseFile(fileNode, context) {
|
|
53
|
-
const node = fileNode; ///
|
|
54
|
-
topLevelPass.run(node, context);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2luaXRpYWxpc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFNpbXBsZVBhc3MsIHF1ZXJ5VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiXG5cbmltcG9ydCB7IHJ1bGVGcm9tUnVsZU5vZGUsXG4gICAgICAgICBheGlvbUZyb21BeGlvbU5vZGUsXG4gICAgICAgICB0aGVvcmVtRnJvbVRoZW9yZW1Ob2RlLFxuICAgICAgICAgY29uamVjdHVyZUZyb21Db25qZWN0dXJlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuXG5jb25zdCB7IG5vZGVRdWVyeSB9ID0gcXVlcnlVdGlsaXRpZXM7XG5cbmNvbnN0IHJ1bGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZVwiKSxcbiAgICAgIGF4aW9tTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2F4aW9tXCIpLFxuICAgICAgdGhlb3JlbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90aGVvcmVtXCIpLFxuICAgICAgY29uamVjdHVyZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb25qZWN0dXJlXCIpO1xuXG5jbGFzcyBUb3BMZXZlbFBhc3MgZXh0ZW5kcyBTaW1wbGVQYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBydWxlTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAocnVsZU5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3Qgc3VjY2VzcyA9IHRydWUsXG4gICAgICAgICAgICAgIHJ1bGUgPSBydWxlRnJvbVJ1bGVOb2RlKHJ1bGVOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBjb250ZXh0LmFkZFJ1bGUocnVsZSk7XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGF4aW9tTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoYXhpb21Ob2RlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlLFxuICAgICAgICAgICAgICBheGlvbSA9IGF4aW9tRnJvbUF4aW9tTm9kZShheGlvbU5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnRleHQuYWRkQXhpb20oYXhpb20pO1xuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0aGVvcmVtTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAodGhlb3JlbU5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3Qgc3VjY2VzcyA9IHRydWUsXG4gICAgICAgICAgICAgIHRoZW9yZW0gPSB0aGVvcmVtRnJvbVRoZW9yZW1Ob2RlKHRoZW9yZW1Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICBjb250ZXh0LmFkZFRoZW9yZW0odGhlb3JlbSk7XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGNvbmplY3R1cmVOb2RlUXVlcnksXG4gICAgICBydW46IChjb25qZWN0dXJlTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBzdWNjZXNzID0gdHJ1ZSxcbiAgICAgICAgICAgICAgY29uamVjdHVyZSA9IGNvbmplY3R1cmVGcm9tQ29uamVjdHVyZU5vZGUoY29uamVjdHVyZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnRleHQuYWRkQ29uamVjdHVyZShjb25qZWN0dXJlKTtcblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNvbnN0IHRvcExldmVsUGFzcyA9IG5ldyBUb3BMZXZlbFBhc3MoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpc2VGaWxlKGZpbGVOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IG5vZGUgPSBmaWxlTm9kZTsgLy8vXG5cbiAgdG9wTGV2ZWxQYXNzLnJ1bihub2RlLCBjb250ZXh0KTtcbn1cbiJdLCJuYW1lcyI6WyJpbml0aWFsaXNlRmlsZSIsIm5vZGVRdWVyeSIsInF1ZXJ5VXRpbGl0aWVzIiwicnVsZU5vZGVRdWVyeSIsImF4aW9tTm9kZVF1ZXJ5IiwidGhlb3JlbU5vZGVRdWVyeSIsImNvbmplY3R1cmVOb2RlUXVlcnkiLCJUb3BMZXZlbFBhc3MiLCJTaW1wbGVQYXNzIiwibWFwcyIsInJ1biIsInJ1bGVOb2RlIiwiY29udGV4dCIsInN1Y2Nlc3MiLCJydWxlIiwicnVsZUZyb21SdWxlTm9kZSIsImFkZFJ1bGUiLCJheGlvbU5vZGUiLCJheGlvbSIsImF4aW9tRnJvbUF4aW9tTm9kZSIsImFkZEF4aW9tIiwidGhlb3JlbU5vZGUiLCJ0aGVvcmVtIiwidGhlb3JlbUZyb21UaGVvcmVtTm9kZSIsImFkZFRoZW9yZW0iLCJjb25qZWN0dXJlTm9kZSIsImNvbmplY3R1cmUiLCJjb25qZWN0dXJlRnJvbUNvbmplY3R1cmVOb2RlIiwiYWRkQ29uamVjdHVyZSIsInRvcExldmVsUGFzcyIsImZpbGVOb2RlIiwibm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBbUVnQkE7OztlQUFBQTs7O2dDQWpFMkI7eUJBS0U7QUFFN0MsTUFBTSxFQUFFQyxTQUFTLEVBQUUsR0FBR0MsOEJBQWM7QUFFcEMsTUFBTUMsZ0JBQWdCRixVQUFVLFVBQzFCRyxpQkFBaUJILFVBQVUsV0FDM0JJLG1CQUFtQkosVUFBVSxhQUM3Qkssc0JBQXNCTCxVQUFVO0FBRXRDLE1BQU1NLHFCQUFxQkMsMEJBQVU7SUFDbkMsT0FBT0MsT0FBTztRQUNaO1lBQ0VSLFdBQVdFO1lBQ1hPLEtBQUssQ0FBQ0MsVUFBVUM7Z0JBQ2QsTUFBTUMsVUFBVSxNQUNWQyxPQUFPQyxJQUFBQSx5QkFBZ0IsRUFBQ0osVUFBVUM7Z0JBRXhDQSxRQUFRSSxPQUFPLENBQUNGO2dCQUVoQixPQUFPRDtZQUNUO1FBQ0Y7UUFDQTtZQUNFWixXQUFXRztZQUNYTSxLQUFLLENBQUNPLFdBQVdMO2dCQUNmLE1BQU1DLFVBQVUsTUFDVkssUUFBUUMsSUFBQUEsMkJBQWtCLEVBQUNGLFdBQVdMO2dCQUU1Q0EsUUFBUVEsUUFBUSxDQUFDRjtnQkFFakIsT0FBT0w7WUFDVDtRQUNGO1FBQ0E7WUFDRVosV0FBV0k7WUFDWEssS0FBSyxDQUFDVyxhQUFhVDtnQkFDakIsTUFBTUMsVUFBVSxNQUNWUyxVQUFVQyxJQUFBQSwrQkFBc0IsRUFBQ0YsYUFBYVQ7Z0JBRXBEQSxRQUFRWSxVQUFVLENBQUNGO2dCQUVuQixPQUFPVDtZQUNUO1FBQ0Y7UUFDQTtZQUNFWixXQUFXSztZQUNYSSxLQUFLLENBQUNlLGdCQUFnQmI7Z0JBQ3BCLE1BQU1DLFVBQVUsTUFDVmEsYUFBYUMsSUFBQUEscUNBQTRCLEVBQUNGLGdCQUFnQmI7Z0JBRWhFQSxRQUFRZ0IsYUFBYSxDQUFDRjtnQkFFdEIsT0FBT2I7WUFDVDtRQUNGO0tBQ0QsQ0FBQztBQUNKO0FBRUEsTUFBTWdCLGVBQWUsSUFBSXRCO0FBRWxCLFNBQVNQLGVBQWU4QixRQUFRLEVBQUVsQixPQUFPO0lBQzlDLE1BQU1tQixPQUFPRCxVQUFVLEdBQUc7SUFFMUJELGFBQWFuQixHQUFHLENBQUNxQixNQUFNbkI7QUFDekIifQ==
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { SimplePass, queryUtilities } from "occam-languages"
|
|
4
|
-
|
|
5
|
-
import { ruleFromRuleNode,
|
|
6
|
-
axiomFromAxiomNode,
|
|
7
|
-
theoremFromTheoremNode,
|
|
8
|
-
conjectureFromConjectureNode } from "../utilities/element";
|
|
9
|
-
|
|
10
|
-
const { nodeQuery } = queryUtilities;
|
|
11
|
-
|
|
12
|
-
const ruleNodeQuery = nodeQuery("/rule"),
|
|
13
|
-
axiomNodeQuery = nodeQuery("/axiom"),
|
|
14
|
-
theoremNodeQuery = nodeQuery("/theorem"),
|
|
15
|
-
conjectureNodeQuery = nodeQuery("/conjecture");
|
|
16
|
-
|
|
17
|
-
class TopLevelPass extends SimplePass {
|
|
18
|
-
static maps = [
|
|
19
|
-
{
|
|
20
|
-
nodeQuery: ruleNodeQuery,
|
|
21
|
-
run: (ruleNode, context) => {
|
|
22
|
-
const success = true,
|
|
23
|
-
rule = ruleFromRuleNode(ruleNode, context);
|
|
24
|
-
|
|
25
|
-
context.addRule(rule);
|
|
26
|
-
|
|
27
|
-
return success;
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
nodeQuery: axiomNodeQuery,
|
|
32
|
-
run: (axiomNode, context) => {
|
|
33
|
-
const success = true,
|
|
34
|
-
axiom = axiomFromAxiomNode(axiomNode, context);
|
|
35
|
-
|
|
36
|
-
context.addAxiom(axiom);
|
|
37
|
-
|
|
38
|
-
return success;
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
nodeQuery: theoremNodeQuery,
|
|
43
|
-
run: (theoremNode, context) => {
|
|
44
|
-
const success = true,
|
|
45
|
-
theorem = theoremFromTheoremNode(theoremNode, context);
|
|
46
|
-
|
|
47
|
-
context.addTheorem(theorem);
|
|
48
|
-
|
|
49
|
-
return success;
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
nodeQuery: conjectureNodeQuery,
|
|
54
|
-
run: (conjectureNode, context) => {
|
|
55
|
-
const success = true,
|
|
56
|
-
conjecture = conjectureFromConjectureNode(conjectureNode, context);
|
|
57
|
-
|
|
58
|
-
context.addConjecture(conjecture);
|
|
59
|
-
|
|
60
|
-
return success;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
];
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const topLevelPass = new TopLevelPass();
|
|
67
|
-
|
|
68
|
-
export function initialiseFile(fileNode, context) {
|
|
69
|
-
const node = fileNode; ///
|
|
70
|
-
|
|
71
|
-
topLevelPass.run(node, context);
|
|
72
|
-
}
|