occam-verify-cli 1.0.185 → 1.0.198
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/constants.js +5 -1
- package/lib/context/file.js +3 -3
- package/lib/dom/assertion/contained.js +12 -24
- package/lib/dom/assertion/defined.js +9 -21
- package/lib/dom/assertion/property.js +8 -10
- package/lib/dom/assertion/satisfies.js +6 -8
- package/lib/dom/assertion/subproof.js +3 -5
- package/lib/dom/assertion/type.js +6 -8
- package/lib/dom/axiom.js +15 -100
- package/lib/dom/conjecture.js +5 -4
- package/lib/dom/constructor/bracketed.js +6 -7
- package/lib/dom/declaration/complexType.js +6 -6
- package/lib/dom/declaration/constructor.js +6 -6
- package/lib/dom/declaration/metavariable.js +3 -5
- package/lib/dom/declaration/type.js +2 -2
- package/lib/dom/declaration/variable.js +6 -6
- package/lib/dom/declaration.js +14 -16
- package/lib/dom/derivation.js +2 -4
- package/lib/dom/equality.js +9 -11
- package/lib/dom/frame.js +14 -18
- package/lib/dom/judgement.js +8 -10
- package/lib/dom/lemma.js +5 -4
- package/lib/dom/metaLemma.js +5 -4
- package/lib/dom/metaType.js +2 -4
- package/lib/dom/metatheorem.js +5 -4
- package/lib/dom/metavariable.js +12 -15
- package/lib/dom/parameter.js +2 -4
- package/lib/dom/procedureCall.js +6 -10
- package/lib/dom/proof.js +2 -4
- package/lib/dom/property.js +16 -51
- package/lib/dom/propertyRelation.js +14 -16
- package/lib/dom/reference.js +7 -11
- package/lib/dom/rule.js +6 -8
- package/lib/dom/statement.js +27 -31
- package/lib/dom/step.js +4 -6
- package/lib/dom/subDerivation.js +2 -4
- package/lib/dom/subproof.js +6 -8
- package/lib/dom/term.js +12 -20
- package/lib/dom/theorem.js +5 -4
- package/lib/dom/topLevelAssertion.js +30 -24
- package/lib/dom/topLevelMetaAssertion.js +76 -140
- package/lib/dom/type.js +8 -25
- package/lib/dom/variable.js +5 -11
- package/lib/equivalence.js +4 -6
- package/lib/mixins/term/verify.js +4 -8
- package/lib/node/argument.js +116 -0
- package/lib/node/assertion/contained.js +48 -53
- package/lib/node/assertion/defined.js +41 -53
- package/lib/node/assertion/property.js +23 -53
- package/lib/node/assertion/satisfies.js +23 -53
- package/lib/node/assertion/subproof.js +16 -53
- package/lib/node/assertion/type.js +23 -53
- package/lib/node/axiom.js +6 -52
- package/lib/node/combinator.js +6 -52
- package/lib/node/conclusion.js +16 -53
- package/lib/node/conjecture.js +6 -52
- package/lib/node/constructor.js +6 -52
- package/lib/node/declaration/combinator.js +8 -56
- package/lib/node/declaration/complexType.js +42 -86
- package/lib/node/declaration/constructor.js +26 -77
- package/lib/node/declaration/metavariable.js +30 -53
- package/lib/node/declaration/property.js +19 -69
- package/lib/node/declaration/type.js +45 -78
- package/lib/node/declaration/variable.js +21 -81
- package/lib/node/declaration.js +23 -53
- package/lib/node/deduction.js +16 -53
- package/lib/node/derivation.js +42 -51
- package/lib/node/equality.js +32 -53
- package/lib/node/error.js +6 -52
- package/lib/node/frame.js +30 -53
- package/lib/node/judgement.js +23 -53
- package/lib/node/label.js +16 -53
- package/lib/node/labels.js +116 -0
- package/lib/node/lemma.js +6 -52
- package/lib/node/metaArgument.js +116 -0
- package/lib/node/metaLemma.js +6 -52
- package/lib/node/metaType.js +14 -55
- package/lib/node/metatheorem.js +6 -52
- package/lib/node/metavariable.js +30 -56
- package/lib/node/nonTerminal.js +200 -0
- package/lib/node/parameter.js +22 -53
- package/lib/node/parenthesisedLabel.js +116 -0
- package/lib/node/parenthesisedLabels.js +123 -0
- package/lib/node/premise.js +23 -53
- package/lib/node/procedureCall.js +23 -53
- package/lib/node/proof.js +16 -53
- package/lib/node/property.js +18 -57
- package/lib/node/propertyRelation.js +30 -53
- package/lib/node/reference.js +16 -53
- package/lib/node/rule.js +44 -53
- package/lib/node/statement.js +139 -53
- package/lib/node/step.js +37 -53
- package/lib/node/subDerivation.js +49 -51
- package/lib/node/subproof.js +44 -53
- package/lib/node/substitution/frame.js +123 -0
- package/lib/node/substitution/reference.js +123 -0
- package/lib/node/substitution/statement.js +123 -0
- package/lib/node/substitution/term.js +123 -0
- package/lib/node/supposition.js +23 -53
- package/lib/node/term.js +41 -53
- package/lib/node/theorem.js +6 -52
- package/lib/node/topLevelAssertion.js +66 -54
- package/lib/node/topLevelMetaAssertion.js +45 -54
- package/lib/node/type.js +14 -55
- package/lib/{node.js → node/types.js} +22 -24
- package/lib/node/variable.js +14 -55
- package/lib/nominal/parser.js +3 -3
- package/lib/nonTerminalNodeMap.js +14 -4
- package/lib/ruleNames.js +42 -2
- package/lib/substitution/frame.js +5 -7
- package/lib/substitution/reference.js +5 -7
- package/lib/substitution/term.js +5 -7
- package/lib/unifier/metaLevel.js +4 -4
- package/lib/utilities/brackets.js +5 -5
- package/lib/utilities/json.js +18 -1
- package/lib/utilities/node.js +1 -37
- package/lib/utilities/subproof.js +13 -4
- package/lib/utilities/type.js +16 -4
- package/lib/verifier/topLevel.js +6 -6
- package/package.json +2 -2
- package/src/constants.js +1 -0
- package/src/context/file.js +2 -2
- package/src/dom/assertion/contained.js +12 -34
- package/src/dom/assertion/defined.js +9 -30
- package/src/dom/assertion/property.js +7 -12
- package/src/dom/assertion/satisfies.js +5 -10
- package/src/dom/assertion/subproof.js +2 -6
- package/src/dom/assertion/type.js +7 -10
- package/src/dom/axiom.js +7 -77
- package/src/dom/conjecture.js +6 -1
- package/src/dom/constructor/bracketed.js +6 -8
- package/src/dom/declaration/complexType.js +8 -7
- package/src/dom/declaration/constructor.js +6 -7
- package/src/dom/declaration/metavariable.js +2 -6
- package/src/dom/declaration/type.js +4 -2
- package/src/dom/declaration/variable.js +6 -7
- package/src/dom/declaration.js +12 -20
- package/src/dom/derivation.js +1 -4
- package/src/dom/equality.js +13 -17
- package/src/dom/frame.js +11 -25
- package/src/dom/judgement.js +7 -12
- package/src/dom/lemma.js +6 -1
- package/src/dom/metaLemma.js +6 -1
- package/src/dom/metaType.js +1 -5
- package/src/dom/metatheorem.js +6 -1
- package/src/dom/metavariable.js +11 -25
- package/src/dom/parameter.js +2 -6
- package/src/dom/procedureCall.js +5 -14
- package/src/dom/proof.js +1 -4
- package/src/dom/property.js +21 -78
- package/src/dom/propertyRelation.js +16 -22
- package/src/dom/reference.js +6 -18
- package/src/dom/rule.js +6 -12
- package/src/dom/statement.js +26 -46
- package/src/dom/step.js +3 -5
- package/src/dom/subDerivation.js +1 -4
- package/src/dom/subproof.js +8 -12
- package/src/dom/term.js +14 -33
- package/src/dom/theorem.js +6 -1
- package/src/dom/topLevelAssertion.js +30 -25
- package/src/dom/topLevelMetaAssertion.js +87 -55
- package/src/dom/type.js +11 -37
- package/src/dom/variable.js +4 -12
- package/src/equivalence.js +3 -6
- package/src/mixins/term/verify.js +5 -11
- package/src/node/argument.js +16 -0
- package/src/node/assertion/contained.js +49 -3
- package/src/node/assertion/defined.js +42 -3
- package/src/node/assertion/property.js +19 -3
- package/src/node/assertion/satisfies.js +19 -3
- package/src/node/assertion/subproof.js +12 -3
- package/src/node/assertion/type.js +19 -3
- package/src/node/axiom.js +3 -3
- package/src/node/combinator.js +3 -3
- package/src/node/conclusion.js +12 -3
- package/src/node/conjecture.js +3 -3
- package/src/node/constructor.js +3 -3
- package/src/node/declaration/combinator.js +7 -8
- package/src/node/declaration/complexType.js +40 -43
- package/src/node/declaration/constructor.js +25 -30
- package/src/node/declaration/metavariable.js +26 -3
- package/src/node/declaration/property.js +17 -23
- package/src/node/declaration/type.js +43 -32
- package/src/node/declaration/variable.js +19 -37
- package/src/node/declaration.js +19 -3
- package/src/node/deduction.js +12 -3
- package/src/node/derivation.js +15 -3
- package/src/node/equality.js +32 -3
- package/src/node/error.js +3 -3
- package/src/node/frame.js +26 -3
- package/src/node/judgement.js +19 -3
- package/src/node/label.js +12 -3
- package/src/node/labels.js +16 -0
- package/src/node/lemma.js +3 -3
- package/src/node/metaArgument.js +16 -0
- package/src/node/metaLemma.js +3 -3
- package/src/node/metaType.js +15 -8
- package/src/node/metatheorem.js +3 -3
- package/src/node/metavariable.js +32 -9
- package/src/node/nonTerminal.js +112 -0
- package/src/node/parameter.js +20 -3
- package/src/node/parenthesisedLabel.js +16 -0
- package/src/node/parenthesisedLabels.js +23 -0
- package/src/node/premise.js +19 -3
- package/src/node/procedureCall.js +19 -3
- package/src/node/proof.js +12 -3
- package/src/node/property.js +18 -12
- package/src/node/propertyRelation.js +26 -3
- package/src/node/reference.js +12 -3
- package/src/node/rule.js +40 -3
- package/src/node/statement.js +151 -3
- package/src/node/step.js +31 -3
- package/src/node/subDerivation.js +22 -3
- package/src/node/subproof.js +38 -3
- package/src/node/substitution/frame.js +23 -0
- package/src/node/substitution/reference.js +23 -0
- package/src/node/substitution/statement.js +23 -0
- package/src/node/substitution/term.js +23 -0
- package/src/node/supposition.js +19 -3
- package/src/node/term.js +38 -3
- package/src/node/theorem.js +3 -3
- package/src/node/topLevelAssertion.js +69 -3
- package/src/node/topLevelMetaAssertion.js +40 -3
- package/src/node/type.js +15 -8
- package/src/node/types.js +16 -0
- package/src/node/variable.js +15 -8
- package/src/nominal/parser.js +1 -1
- package/src/nonTerminalNodeMap.js +67 -37
- package/src/ruleNames.js +11 -1
- package/src/substitution/frame.js +7 -10
- package/src/substitution/reference.js +7 -10
- package/src/substitution/term.js +7 -9
- package/src/unifier/metaLevel.js +2 -3
- package/src/utilities/brackets.js +8 -8
- package/src/utilities/json.js +19 -0
- package/src/utilities/node.js +0 -27
- package/src/utilities/subproof.js +22 -6
- package/src/utilities/type.js +9 -0
- package/src/verifier/topLevel.js +5 -10
- package/lib/defaultTerminalNode.js +0 -20
- package/lib/mixins/node.js +0 -145
- package/src/defaultTerminalNode.js +0 -7
- package/src/mixins/node.js +0 -201
- package/src/node.js +0 -29
package/src/dom/judgement.js
CHANGED
|
@@ -3,11 +3,8 @@
|
|
|
3
3
|
import dom from "../dom";
|
|
4
4
|
import JudgementAssignment from "../assignment/judgement";
|
|
5
5
|
|
|
6
|
-
import { nodeQuery } from "../utilities/query";
|
|
7
6
|
import { domAssigned } from "../dom";
|
|
8
7
|
|
|
9
|
-
const judgementNodeQuery = nodeQuery("/statement/judgement");
|
|
10
|
-
|
|
11
8
|
export default domAssigned(class Judgement {
|
|
12
9
|
constructor(string, frame, declaration) {
|
|
13
10
|
this.string = string;
|
|
@@ -73,15 +70,14 @@ export default domAssigned(class Judgement {
|
|
|
73
70
|
verifyFrame(assignments, stated, context) {
|
|
74
71
|
let frameVerified;
|
|
75
72
|
|
|
76
|
-
const frameString = this.frame.getString()
|
|
77
|
-
judgementString = this.string; ///
|
|
73
|
+
const frameString = this.frame.getString();
|
|
78
74
|
|
|
79
|
-
context.trace(`Verifying the '${
|
|
75
|
+
context.trace(`Verifying the '${frameString}' frame...`);
|
|
80
76
|
|
|
81
77
|
frameVerified = this.frame.verify(assignments, stated, context);
|
|
82
78
|
|
|
83
79
|
if (frameVerified) {
|
|
84
|
-
context.debug(`...verified the '${
|
|
80
|
+
context.debug(`...verified the '${frameString}' frame.`);
|
|
85
81
|
}
|
|
86
82
|
|
|
87
83
|
return frameVerified;
|
|
@@ -90,15 +86,14 @@ export default domAssigned(class Judgement {
|
|
|
90
86
|
verifyDeclaration(assignments, stated, context) {
|
|
91
87
|
let declarationVerified;
|
|
92
88
|
|
|
93
|
-
const
|
|
94
|
-
declarationString = this.declaration.getString();
|
|
89
|
+
const declarationString = this.declaration.getString();
|
|
95
90
|
|
|
96
|
-
context.trace(`Verifying the '${
|
|
91
|
+
context.trace(`Verifying the '${declarationString}' declaration...`);
|
|
97
92
|
|
|
98
93
|
declarationVerified = this.declaration.verify(assignments, stated, context);
|
|
99
94
|
|
|
100
95
|
if (declarationVerified) {
|
|
101
|
-
context.debug(`...verified the '${
|
|
96
|
+
context.debug(`...verified the '${declarationString}' declaration.`);
|
|
102
97
|
}
|
|
103
98
|
|
|
104
99
|
return declarationVerified;
|
|
@@ -158,7 +153,7 @@ export default domAssigned(class Judgement {
|
|
|
158
153
|
static fromStatementNode(statementNode, context) {
|
|
159
154
|
let judgement = null;
|
|
160
155
|
|
|
161
|
-
const judgementNode =
|
|
156
|
+
const judgementNode = statementNode.getJudgementNode();
|
|
162
157
|
|
|
163
158
|
if (judgementNode !== null) {
|
|
164
159
|
const { Frame, Declaration} = dom,
|
package/src/dom/lemma.js
CHANGED
|
@@ -33,5 +33,10 @@ export default domAssigned(class Lemma extends TopLevelAssertion {
|
|
|
33
33
|
|
|
34
34
|
static name = "Lemma";
|
|
35
35
|
|
|
36
|
-
static
|
|
36
|
+
static fromLemmaNode(lemmaNode, fileContext) {
|
|
37
|
+
const node = lemmaNode, ///
|
|
38
|
+
lemma = TopLevelAssertion.fromNode(Lemma, node, fileContext);
|
|
39
|
+
|
|
40
|
+
return lemma;
|
|
41
|
+
}
|
|
37
42
|
});
|
package/src/dom/metaLemma.js
CHANGED
|
@@ -31,5 +31,10 @@ export default domAssigned(class MetaLemma extends TopLevelMetaAssertion {
|
|
|
31
31
|
|
|
32
32
|
static fromJSON(json, fileContext) { return TopLevelMetaAssertion.fromJSON(MetaLemma, json, fileContext); }
|
|
33
33
|
|
|
34
|
-
static
|
|
34
|
+
static fromMetaLemmaNode(metaLemmaNode, fileContext) {
|
|
35
|
+
const node = metaLemmaNode, ///
|
|
36
|
+
metaLemma = TopLevelMetaAssertion.fromNode(MetaLemma, node, fileContext);
|
|
37
|
+
|
|
38
|
+
return metaLemma;
|
|
39
|
+
}
|
|
35
40
|
});
|
package/src/dom/metaType.js
CHANGED
|
@@ -2,12 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
import LocalContext from "../context/local";
|
|
4
4
|
|
|
5
|
-
import { nodeQuery } from "../utilities/query";
|
|
6
5
|
import { domAssigned } from "../dom";
|
|
7
6
|
import { FRAME_META_TYPE_NAME, REFERENCE_META_TYPE_NAME, STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
|
|
8
7
|
|
|
9
|
-
const metavariableDeclarationMetaTypeNodeQuery = nodeQuery("/metavariableDeclaration/metaType");
|
|
10
|
-
|
|
11
8
|
class MetaType {
|
|
12
9
|
constructor(name) {
|
|
13
10
|
this.name = name;
|
|
@@ -61,8 +58,7 @@ class MetaType {
|
|
|
61
58
|
}
|
|
62
59
|
|
|
63
60
|
static fromMetavariableDeclarationNode(metavariableDeclarationNode, fileContext) {
|
|
64
|
-
const
|
|
65
|
-
metaTypeNode = metavariableDeclarationMetaTypeNode, ///
|
|
61
|
+
const metaTypeNode = metavariableDeclarationNode.getMetaTypeNode(),
|
|
66
62
|
localContext = LocalContext.fromFileContext(fileContext),
|
|
67
63
|
context = localContext, ///
|
|
68
64
|
metaType = metaTypeFromMetaTypeNode(metaTypeNode, context);
|
package/src/dom/metatheorem.js
CHANGED
|
@@ -31,5 +31,10 @@ export default domAssigned(class Metatheorem extends TopLevelMetaAssertion {
|
|
|
31
31
|
|
|
32
32
|
static fromJSON(json, fileContext) { return TopLevelMetaAssertion.fromJSON(Metatheorem, json, fileContext); }
|
|
33
33
|
|
|
34
|
-
static
|
|
34
|
+
static fromMetatheoremNode(metatheoremNode, fileContext) {
|
|
35
|
+
const node = metatheoremNode, ///
|
|
36
|
+
metatheorem = TopLevelMetaAssertion.fromNode(Metatheorem, node, fileContext);
|
|
37
|
+
|
|
38
|
+
return metatheorem;
|
|
39
|
+
}
|
|
35
40
|
});
|
package/src/dom/metavariable.js
CHANGED
|
@@ -7,7 +7,6 @@ import ReferenceSubstitution from "../substitution/reference";
|
|
|
7
7
|
import StatementSubstitution from "../substitution/statement";
|
|
8
8
|
import MetavariablePartialContext from "../context/partial/metavariable";
|
|
9
9
|
|
|
10
|
-
import { nodeQuery } from "../utilities/query";
|
|
11
10
|
import { domAssigned } from "../dom";
|
|
12
11
|
import { EMPTY_STRING } from "../constants";
|
|
13
12
|
import { typeFromJSON, typeToTypeJSON } from "../utilities/json";
|
|
@@ -15,13 +14,6 @@ import { metaTypeFromJSON, metaTypeToMetaTypeJSON } from "../utilities/json";
|
|
|
15
14
|
import { metavariableFromFrame, metavariableFromStatement } from "../utilities/context";
|
|
16
15
|
import { unifyMetavariable, unifyMetavariableIntrinsically } from "../utilities/unification";
|
|
17
16
|
|
|
18
|
-
const frameMetavariableNodeQuery = nodeQuery("/frame/metavariable!"),
|
|
19
|
-
labelMetavariableNodeQuery = nodeQuery("/label/metavariable"),
|
|
20
|
-
referenceMetavariableNodeQuery = nodeQuery("/reference/metavariable"),
|
|
21
|
-
statementMetavariableNodeQuery = nodeQuery("/statement/metavariable"),
|
|
22
|
-
metavariableDeclarationMetavariableNodeQuery = nodeQuery("/metavariableDeclaration/metavariable"),
|
|
23
|
-
metavariableDeclarationMetavariableTypeNodeQuery = nodeQuery("/metavariableDeclaration/metavariable/type");
|
|
24
|
-
|
|
25
17
|
export default domAssigned(class Metavariable {
|
|
26
18
|
constructor(string, node, tokens, name, type, metaType) {
|
|
27
19
|
this.string = string;
|
|
@@ -469,8 +461,7 @@ export default domAssigned(class Metavariable {
|
|
|
469
461
|
}
|
|
470
462
|
|
|
471
463
|
static fromLabelNode(labelNode, context) {
|
|
472
|
-
const
|
|
473
|
-
metavariableNode = labelMetavariableNode, ///
|
|
464
|
+
const metavariableNode = labelNode.getMetavariableNode(),
|
|
474
465
|
metavariable = metavariableFromMetavariableNode(metavariableNode, context);
|
|
475
466
|
|
|
476
467
|
return metavariable;
|
|
@@ -479,10 +470,10 @@ export default domAssigned(class Metavariable {
|
|
|
479
470
|
static fromFrameNode(frameNode, context) {
|
|
480
471
|
let metavariable = null;
|
|
481
472
|
|
|
482
|
-
const
|
|
473
|
+
const singularMetavariableNode = frameNode.getSingularMetavariableNode();
|
|
483
474
|
|
|
484
|
-
if (
|
|
485
|
-
const metavariableNode =
|
|
475
|
+
if (singularMetavariableNode !== null) {
|
|
476
|
+
const metavariableNode = singularMetavariableNode; ///
|
|
486
477
|
|
|
487
478
|
metavariable = metavariableFromMetavariableNode(metavariableNode, context);
|
|
488
479
|
}
|
|
@@ -491,8 +482,7 @@ export default domAssigned(class Metavariable {
|
|
|
491
482
|
}
|
|
492
483
|
|
|
493
484
|
static fromReferenceNode(referenceNode, context) {
|
|
494
|
-
const
|
|
495
|
-
metavariableNode = referenceMetavariableNode, ///
|
|
485
|
+
const metavariableNode = referenceNode.getMetavariableNode(),
|
|
496
486
|
metavariable = metavariableFromMetavariableNode(metavariableNode, context);
|
|
497
487
|
|
|
498
488
|
return metavariable;
|
|
@@ -501,11 +491,9 @@ export default domAssigned(class Metavariable {
|
|
|
501
491
|
static fromStatementNode(statementNode, context) {
|
|
502
492
|
let metavariable = null;
|
|
503
493
|
|
|
504
|
-
const
|
|
505
|
-
|
|
506
|
-
if (statementMetavariableNode !== null) {
|
|
507
|
-
const metavariableNode = statementMetavariableNode; ///
|
|
494
|
+
const metavariableNode = statementNode.getMetavariableNode();
|
|
508
495
|
|
|
496
|
+
if (metavariableNode !== null) {
|
|
509
497
|
metavariable = metavariableFromMetavariableNode(metavariableNode, context);
|
|
510
498
|
}
|
|
511
499
|
|
|
@@ -524,8 +512,7 @@ export default domAssigned(class Metavariable {
|
|
|
524
512
|
|
|
525
513
|
static fromMetavariableDeclarationNode(metavariableDeclarationNode, fileContext) {
|
|
526
514
|
const { MetaType } = dom,
|
|
527
|
-
|
|
528
|
-
metavariableNode = metavariableDeclarationMetavariableNode, ///
|
|
515
|
+
metavariableNode = metavariableDeclarationNode.getMetavariableNode(),
|
|
529
516
|
localContext = LocalContext.fromFileContext(fileContext),
|
|
530
517
|
context = localContext, ///
|
|
531
518
|
type = typeFromMetavariableDeclarationNode(metavariableDeclarationNode, fileContext),
|
|
@@ -557,11 +544,10 @@ function metavariableFromMetavariableNode(metavariableNode, context) {
|
|
|
557
544
|
function typeFromMetavariableDeclarationNode(metavariableDeclarationNode, fileContext) {
|
|
558
545
|
let type = null;
|
|
559
546
|
|
|
560
|
-
const
|
|
547
|
+
const typeNode = metavariableDeclarationNode.getTypeNode();
|
|
561
548
|
|
|
562
|
-
if (
|
|
563
|
-
const
|
|
564
|
-
typeName = typeNode.getTypeName();
|
|
549
|
+
if (typeNode !== null) {
|
|
550
|
+
const typeName = typeNode.getTypeName();
|
|
565
551
|
|
|
566
552
|
type = fileContext.findTypeByTypeName(typeName);
|
|
567
553
|
}
|
package/src/dom/parameter.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { nodeQuery } from "../utilities/query";
|
|
4
3
|
import { domAssigned } from "../dom";
|
|
5
4
|
|
|
6
|
-
const nameTerminalNodeQuery = nodeQuery("/parameter/@name");
|
|
7
|
-
|
|
8
5
|
export default domAssigned(class Parameter {
|
|
9
6
|
constructor(name) {
|
|
10
7
|
this.name = name;
|
|
@@ -57,9 +54,8 @@ export default domAssigned(class Parameter {
|
|
|
57
54
|
}
|
|
58
55
|
|
|
59
56
|
static fromParameterNode(parameterNode, context) {
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
name = nameTerminalNodeContent, ///
|
|
57
|
+
const parameterName = parameterNode.getParameterName(),
|
|
58
|
+
name = parameterName, ///
|
|
63
59
|
parameter = new Parameter(name);
|
|
64
60
|
|
|
65
61
|
return parameter;
|
package/src/dom/procedureCall.js
CHANGED
|
@@ -5,13 +5,8 @@ import { Expressions } from "occam-furtle";
|
|
|
5
5
|
import dom from "../dom";
|
|
6
6
|
|
|
7
7
|
import { domAssigned } from "../dom";
|
|
8
|
-
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
9
8
|
import { referenceFromJSON, parametersFromJSON, parametersToParametersJSON } from "../utilities/json";
|
|
10
9
|
|
|
11
|
-
const parameterNodesQuery = nodesQuery("/procedureCall/parameter"),
|
|
12
|
-
premiseProcedureCallNodeQuery = nodeQuery("/premise/procedureCall"),
|
|
13
|
-
suppositionProcedureCallNodeQuery = nodeQuery("/supposition/procedureCall");
|
|
14
|
-
|
|
15
10
|
export default domAssigned(class ProcedureCall {
|
|
16
11
|
constructor(string, reference, parameters) {
|
|
17
12
|
this.string = string;
|
|
@@ -126,11 +121,9 @@ export default domAssigned(class ProcedureCall {
|
|
|
126
121
|
static fromPremiseNode(premiseNode, context) {
|
|
127
122
|
let procedureCall = null;
|
|
128
123
|
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
if (premiseProcedureCallNode !== null) {
|
|
132
|
-
const procedureCallNode = premiseProcedureCallNode; ///
|
|
124
|
+
const procedureCallNode = premiseNode.getProcedureCallNode();
|
|
133
125
|
|
|
126
|
+
if (procedureCallNode !== null) {
|
|
134
127
|
procedureCall = procedureCallFromProcedureCallNode(procedureCallNode, context);
|
|
135
128
|
}
|
|
136
129
|
|
|
@@ -140,11 +133,9 @@ export default domAssigned(class ProcedureCall {
|
|
|
140
133
|
static fromSuppositionNode(suppositionNode, context) {
|
|
141
134
|
let procedureCall = null;
|
|
142
135
|
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
if (suppositionProcedureCallNode !== null) {
|
|
146
|
-
const procedureCallNode = suppositionProcedureCallNode; ///
|
|
136
|
+
const procedureCallNode = suppositionNode.getProcedureCallNode();
|
|
147
137
|
|
|
138
|
+
if (procedureCallNode !== null) {
|
|
148
139
|
procedureCall = procedureCallFromProcedureCallNode(procedureCallNode, context);
|
|
149
140
|
}
|
|
150
141
|
|
|
@@ -164,7 +155,7 @@ function procedureCallFromProcedureCallNode(procedureCallNode, context) {
|
|
|
164
155
|
|
|
165
156
|
function parametersFromProcedureCallNode(procedureCallNode, context) {
|
|
166
157
|
const { Parameter } = dom,
|
|
167
|
-
parameterNodes =
|
|
158
|
+
parameterNodes = procedureCallNode.getParameterNodes(),
|
|
168
159
|
parameters = parameterNodes.map((parameterNode) => {
|
|
169
160
|
const parameter = Parameter.fromParameterNode(parameterNode, context);
|
|
170
161
|
|
package/src/dom/proof.js
CHANGED
|
@@ -3,11 +3,8 @@
|
|
|
3
3
|
import dom from "../dom";
|
|
4
4
|
import LocalContext from "../context/local";
|
|
5
5
|
|
|
6
|
-
import { nodeQuery } from "../utilities/query";
|
|
7
6
|
import { domAssigned } from "../dom";
|
|
8
7
|
|
|
9
|
-
const derivationNodeQuery = nodeQuery("/proof/derivation");
|
|
10
|
-
|
|
11
8
|
export default domAssigned(class Proof {
|
|
12
9
|
constructor(derivation) {
|
|
13
10
|
this.derivation = derivation;
|
|
@@ -60,7 +57,7 @@ export default domAssigned(class Proof {
|
|
|
60
57
|
|
|
61
58
|
if (proofNode !== null) {
|
|
62
59
|
const { Derivation } = dom,
|
|
63
|
-
derivationNode =
|
|
60
|
+
derivationNode = proofNode.getDerivationNode(),
|
|
64
61
|
derivation = Derivation.fromDerivationNode(derivationNode, fileContext);
|
|
65
62
|
|
|
66
63
|
proof = new Proof(derivation);
|
package/src/dom/property.js
CHANGED
|
@@ -1,23 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { arrayUtilities } from "necessary";
|
|
4
|
-
|
|
5
3
|
import dom from "../dom";
|
|
6
4
|
|
|
7
|
-
import { objectType } from "./type";
|
|
8
5
|
import { domAssigned } from "../dom";
|
|
9
|
-
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
10
6
|
import { typeFromJSON, typeToTypeJSON } from "../utilities/json";
|
|
11
7
|
|
|
12
|
-
const { match } = arrayUtilities;
|
|
13
|
-
|
|
14
|
-
const nameTerminalNodesQuery = nodesQuery("/property/@name"),
|
|
15
|
-
propertyRelationPropertyNodeQuery = nodeQuery("/propertyRelation/property");
|
|
16
|
-
|
|
17
8
|
export default domAssigned(class Property {
|
|
18
|
-
constructor(string,
|
|
9
|
+
constructor(string, name, type) {
|
|
19
10
|
this.string = string;
|
|
20
|
-
this.
|
|
11
|
+
this.name = name;
|
|
21
12
|
this.type = type;
|
|
22
13
|
}
|
|
23
14
|
|
|
@@ -25,8 +16,8 @@ export default domAssigned(class Property {
|
|
|
25
16
|
return this.string;
|
|
26
17
|
}
|
|
27
18
|
|
|
28
|
-
|
|
29
|
-
return this.
|
|
19
|
+
getName() {
|
|
20
|
+
return this.name;
|
|
30
21
|
}
|
|
31
22
|
|
|
32
23
|
getType() {
|
|
@@ -37,23 +28,19 @@ export default domAssigned(class Property {
|
|
|
37
28
|
this.type = type;
|
|
38
29
|
}
|
|
39
30
|
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
if (propertyName === name) {
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
});
|
|
31
|
+
matchPropertyName(propertyName) {
|
|
32
|
+
const propertyNameMatches = (this.name === propertyName);
|
|
46
33
|
|
|
47
|
-
return
|
|
34
|
+
return propertyNameMatches;
|
|
48
35
|
}
|
|
49
36
|
|
|
50
37
|
toJSON() {
|
|
51
38
|
const typeJSON = typeToTypeJSON(this.type),
|
|
52
|
-
|
|
39
|
+
name = this.name, ///
|
|
53
40
|
type = typeJSON, ///
|
|
54
41
|
json = {
|
|
55
42
|
type,
|
|
56
|
-
|
|
43
|
+
name
|
|
57
44
|
};
|
|
58
45
|
|
|
59
46
|
return json;
|
|
@@ -62,10 +49,10 @@ export default domAssigned(class Property {
|
|
|
62
49
|
static name = "Property";
|
|
63
50
|
|
|
64
51
|
static fromJSON(json, fileContext) {
|
|
65
|
-
const {
|
|
52
|
+
const { name } = json,
|
|
66
53
|
type = typeFromJSON(json, fileContext),
|
|
67
|
-
string =
|
|
68
|
-
property = new Property(string,
|
|
54
|
+
string = name, ///
|
|
55
|
+
property = new Property(string, name, type);
|
|
69
56
|
|
|
70
57
|
return property;
|
|
71
58
|
}
|
|
@@ -77,8 +64,7 @@ export default domAssigned(class Property {
|
|
|
77
64
|
}
|
|
78
65
|
|
|
79
66
|
static fromPropertyRelationNode(propertyRelationNode, fileContext) {
|
|
80
|
-
const
|
|
81
|
-
propertyNode = propertyRelationPropertyNode, ///
|
|
67
|
+
const propertyNode = propertyRelationNode.getPropertyNode(),
|
|
82
68
|
property = propertyFromPropertyNode(propertyNode, fileContext);
|
|
83
69
|
|
|
84
70
|
return property;
|
|
@@ -87,10 +73,10 @@ export default domAssigned(class Property {
|
|
|
87
73
|
static fromPropertyDeclarationNode(propertyDeclarationNode, fileContext) {
|
|
88
74
|
const { Type } = dom,
|
|
89
75
|
type = Type.fromPropertyDeclarationNode(propertyDeclarationNode),
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
string =
|
|
93
|
-
property = new Property(string,
|
|
76
|
+
propertyName = propertyDeclarationNode.getPropertyName(),
|
|
77
|
+
name = propertyName, ///
|
|
78
|
+
string = name, ///
|
|
79
|
+
property = new Property(string, name, type);
|
|
94
80
|
|
|
95
81
|
return property;
|
|
96
82
|
}
|
|
@@ -98,54 +84,11 @@ export default domAssigned(class Property {
|
|
|
98
84
|
|
|
99
85
|
function propertyFromPropertyNode(propertyNode, fileContext) {
|
|
100
86
|
const { Property } = dom,
|
|
101
|
-
|
|
102
|
-
|
|
87
|
+
propertyName = propertyNode.getPropertyName(),
|
|
88
|
+
name = propertyName, ///
|
|
103
89
|
type = null,
|
|
104
|
-
string =
|
|
105
|
-
property = new Property(string,
|
|
90
|
+
string = name, ///
|
|
91
|
+
property = new Property(string, name, type);
|
|
106
92
|
|
|
107
93
|
return property;
|
|
108
94
|
}
|
|
109
|
-
|
|
110
|
-
function stringFromNamesAndType(names, type) {
|
|
111
|
-
let string;
|
|
112
|
-
|
|
113
|
-
const namesString = namesStringFromNames(names);
|
|
114
|
-
|
|
115
|
-
if (type === objectType) {
|
|
116
|
-
string = namesString; ///
|
|
117
|
-
} else {
|
|
118
|
-
const typeString = type.getString();
|
|
119
|
-
|
|
120
|
-
string = `${namesString}:${typeString}`;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
return string;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
function namesFromPropertyNode(propertyNode, fileContext) {
|
|
127
|
-
const nameTerminalNodes = nameTerminalNodesQuery(propertyNode),
|
|
128
|
-
names = nameTerminalNodes.map((nameTerminalNode) => {
|
|
129
|
-
const nameTerminalNodeContent = nameTerminalNode.getContent(),
|
|
130
|
-
name = nameTerminalNodeContent; ///
|
|
131
|
-
|
|
132
|
-
return name;
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
return names;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
function namesStringFromNames(names) {
|
|
139
|
-
const namesString = names.reduce((namesString, name) => {
|
|
140
|
-
const nameString = name; ///
|
|
141
|
-
|
|
142
|
-
namesString = (namesString === null) ?
|
|
143
|
-
nameString : ///
|
|
144
|
-
`${namesString} ${nameString}`;
|
|
145
|
-
|
|
146
|
-
return namesString;
|
|
147
|
-
}, null);
|
|
148
|
-
|
|
149
|
-
return namesString;
|
|
150
|
-
}
|
|
151
|
-
|
|
@@ -2,11 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import dom from "../dom";
|
|
4
4
|
|
|
5
|
-
import { nodeQuery } from "../utilities/query";
|
|
6
5
|
import { domAssigned } from "../dom";
|
|
7
6
|
|
|
8
|
-
const propertyAssertionPropertyRelationNodeQuery = nodeQuery("/propertyAssertion/propertyRelation");
|
|
9
|
-
|
|
10
7
|
export default domAssigned(class PropertyRelation {
|
|
11
8
|
constructor(string, node, tokens, property, term) {
|
|
12
9
|
this.string = string;
|
|
@@ -70,10 +67,9 @@ export default domAssigned(class PropertyRelation {
|
|
|
70
67
|
verifyTerm(context) {
|
|
71
68
|
let termVerified;
|
|
72
69
|
|
|
73
|
-
const termString = this.term.getString()
|
|
74
|
-
propertyRelationString = this.string; ///
|
|
70
|
+
const termString = this.term.getString();
|
|
75
71
|
|
|
76
|
-
context.trace(`Verifying the '${
|
|
72
|
+
context.trace(`Verifying the '${termString}' term...`);
|
|
77
73
|
|
|
78
74
|
termVerified = this.term.verify(context, () => {
|
|
79
75
|
const verifiedAhead = true;
|
|
@@ -82,7 +78,7 @@ export default domAssigned(class PropertyRelation {
|
|
|
82
78
|
});
|
|
83
79
|
|
|
84
80
|
if (termVerified) {
|
|
85
|
-
context.debug(`...verified the '${
|
|
81
|
+
context.debug(`...verified the '${termString}' term.`);
|
|
86
82
|
}
|
|
87
83
|
|
|
88
84
|
return termVerified;
|
|
@@ -91,29 +87,28 @@ export default domAssigned(class PropertyRelation {
|
|
|
91
87
|
verifyProperty(context) {
|
|
92
88
|
let propertyVerified;
|
|
93
89
|
|
|
94
|
-
const propertyString = this.property.getString()
|
|
95
|
-
propertyRelationString = this.string; ///
|
|
90
|
+
const propertyString = this.property.getString();
|
|
96
91
|
|
|
97
|
-
context.trace(`Verifying the '${
|
|
92
|
+
context.trace(`Verifying the '${propertyString}' property...`);
|
|
98
93
|
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
variableTypeProperty =
|
|
103
|
-
const
|
|
94
|
+
const termType = this.term.getType(),
|
|
95
|
+
propertyName = this.property.getName(),
|
|
96
|
+
termTypeProperties = termType.getProperties(),
|
|
97
|
+
variableTypeProperty = termTypeProperties.find((termTypeProperty) => {
|
|
98
|
+
const propertyNameMatches = termTypeProperty.matchPropertyName(propertyName);
|
|
104
99
|
|
|
105
|
-
if (
|
|
100
|
+
if (propertyNameMatches) {
|
|
106
101
|
return true;
|
|
107
102
|
}
|
|
108
103
|
}) || null;
|
|
109
104
|
|
|
110
105
|
if (variableTypeProperty === null) {
|
|
111
106
|
const variableString = this.term.getString(),
|
|
112
|
-
variableTypeString =
|
|
107
|
+
variableTypeString = termType.getString();
|
|
113
108
|
|
|
114
|
-
context.debug(`The '${
|
|
109
|
+
context.debug(`The '${propertyName}' property is not a property of the '${variableString}' variable's '${variableTypeString}' type.`);
|
|
115
110
|
} else {
|
|
116
|
-
const type =
|
|
111
|
+
const type = termType;
|
|
117
112
|
|
|
118
113
|
this.property.setType(type);
|
|
119
114
|
|
|
@@ -121,7 +116,7 @@ export default domAssigned(class PropertyRelation {
|
|
|
121
116
|
}
|
|
122
117
|
|
|
123
118
|
if (propertyVerified) {
|
|
124
|
-
context.debug(`...verified the '${
|
|
119
|
+
context.debug(`...verified the '${propertyString}' property.`);
|
|
125
120
|
}
|
|
126
121
|
|
|
127
122
|
return propertyVerified;
|
|
@@ -131,8 +126,7 @@ export default domAssigned(class PropertyRelation {
|
|
|
131
126
|
|
|
132
127
|
static fromPropertyAssertionNode(propertyAssertionNode, context) {
|
|
133
128
|
const { Term, Property } = dom,
|
|
134
|
-
|
|
135
|
-
propertyRelationNode = propertyAssertionPropertyRelationNode, ///
|
|
129
|
+
propertyRelationNode = propertyAssertionNode.getPropertyRelationNode(),
|
|
136
130
|
node = propertyRelationNode, ///
|
|
137
131
|
string = context.nodeAsString(node),
|
|
138
132
|
tokens = context.nodeAsTokens(node),
|
package/src/dom/reference.js
CHANGED
|
@@ -4,17 +4,11 @@ import dom from "../dom";
|
|
|
4
4
|
import LocalContext from "../context/local";
|
|
5
5
|
import Substitutions from "../substitutions";
|
|
6
6
|
|
|
7
|
-
import { nodeQuery } from "../utilities/query";
|
|
8
7
|
import { domAssigned } from "../dom";
|
|
9
8
|
import { referenceMetaType } from "../dom/metaType";
|
|
10
9
|
import { unifyMetavariableIntrinsically } from "../utilities/unification";
|
|
11
10
|
import { metavariableFromJSON, metavariableToMetavariableJSON } from "../utilities/json";
|
|
12
11
|
|
|
13
|
-
const stepReferenceNodeQuery = nodeQuery("/step/reference"),
|
|
14
|
-
procedureCallReferenceNodeQuery = nodeQuery("/procedureCall/reference"),
|
|
15
|
-
declarationMetavariableNodeQuery = nodeQuery("/declaration/metavariable"),
|
|
16
|
-
satisfiesAssertionMetavariableNodeQuery = nodeQuery("/satisfiesAssertion/metavariable");
|
|
17
|
-
|
|
18
12
|
export default domAssigned(class Reference {
|
|
19
13
|
constructor(metavariable) {
|
|
20
14
|
this.metavariable = metavariable;
|
|
@@ -183,11 +177,9 @@ export default domAssigned(class Reference {
|
|
|
183
177
|
static fromStepNode(stepNode, fileContext) {
|
|
184
178
|
let reference = null;
|
|
185
179
|
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
if (stepReferenceNode !== null) {
|
|
189
|
-
const referenceNode = stepReferenceNode; ///
|
|
180
|
+
const referenceNode = stepNode.getReferenceNode();
|
|
190
181
|
|
|
182
|
+
if (referenceNode !== null) {
|
|
191
183
|
reference = referenceFromReferenceNode(referenceNode, fileContext);
|
|
192
184
|
}
|
|
193
185
|
|
|
@@ -201,8 +193,7 @@ export default domAssigned(class Reference {
|
|
|
201
193
|
}
|
|
202
194
|
|
|
203
195
|
static fromDeclarationNode(declarationNode, fileContext) {
|
|
204
|
-
const
|
|
205
|
-
metavariableNode = declarationMetavariableNode, ///
|
|
196
|
+
const metavariableNode = declarationNode.getMetavariableNode(),
|
|
206
197
|
reference = referenceFromMetavariableNode(metavariableNode, fileContext);
|
|
207
198
|
|
|
208
199
|
return reference;
|
|
@@ -217,11 +208,9 @@ export default domAssigned(class Reference {
|
|
|
217
208
|
static fromProcedureCallNode(procedureCallNode, fileContext) {
|
|
218
209
|
let reference = null;
|
|
219
210
|
|
|
220
|
-
const
|
|
221
|
-
|
|
222
|
-
if (procedureCallReferenceNode !== null) {
|
|
223
|
-
const referenceNode = procedureCallReferenceNode; ///
|
|
211
|
+
const referenceNode = procedureCallNode.getReferenceNode();
|
|
224
212
|
|
|
213
|
+
if (referenceNode !== null) {
|
|
225
214
|
reference = referenceFromReferenceNode(referenceNode, fileContext);
|
|
226
215
|
}
|
|
227
216
|
|
|
@@ -229,8 +218,7 @@ export default domAssigned(class Reference {
|
|
|
229
218
|
}
|
|
230
219
|
|
|
231
220
|
static fromSatisfiesAssertionNode(satisfiesAssertionNode, fileContext) {
|
|
232
|
-
const
|
|
233
|
-
metavariableNode = satisfiesAssertionMetavariableNode, ///
|
|
221
|
+
const metavariableNode = satisfiesAssertionNode.getMetavariableNode(),
|
|
234
222
|
reference = referenceFromMetavariableNode(metavariableNode, fileContext);
|
|
235
223
|
|
|
236
224
|
return reference;
|