occam-verify-cli 1.0.184 → 1.0.192
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/dom/assertion/property.js +2 -4
- 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/metavariable.js +3 -5
- package/lib/dom/declaration/type.js +2 -2
- package/lib/dom/declaration.js +2 -4
- package/lib/dom/derivation.js +2 -4
- package/lib/dom/equality.js +9 -11
- package/lib/dom/frame.js +8 -12
- package/lib/dom/judgement.js +2 -4
- 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 +8 -10
- 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 +14 -20
- package/lib/dom/theorem.js +5 -4
- package/lib/dom/topLevelAssertion.js +30 -24
- package/lib/dom/topLevelMetaAssertion.js +5 -15
- package/lib/dom/type.js +8 -25
- package/lib/dom/variable.js +5 -11
- package/lib/node/assertion/contained.js +45 -58
- package/lib/node/assertion/defined.js +33 -58
- package/lib/node/assertion/property.js +33 -58
- package/lib/node/assertion/satisfies.js +21 -58
- package/lib/node/assertion/subproof.js +21 -58
- package/lib/node/assertion/type.js +33 -58
- package/lib/node/axiom.js +6 -52
- package/lib/node/combinator.js +6 -57
- package/lib/node/conclusion.js +21 -58
- package/lib/node/conjecture.js +6 -52
- package/lib/node/constructor.js +6 -57
- package/lib/node/declaration/combinator.js +13 -61
- package/lib/node/declaration/complexType.js +27 -75
- package/lib/node/declaration/constructor.js +24 -70
- package/lib/node/declaration/metavariable.js +40 -58
- package/lib/node/declaration/property.js +27 -72
- package/lib/node/declaration/type.js +23 -69
- package/lib/node/declaration/variable.js +28 -83
- package/lib/node/declaration.js +33 -58
- package/lib/node/deduction.js +21 -58
- package/lib/node/derivation.js +21 -58
- package/lib/node/equality.js +34 -58
- package/lib/node/error.js +6 -57
- package/lib/node/frame.js +52 -58
- package/lib/node/judgement.js +33 -58
- package/lib/node/label.js +21 -58
- package/lib/{node.js → node/labels.js} +25 -27
- package/lib/node/lemma.js +6 -52
- package/lib/node/metaLemma.js +6 -52
- package/lib/node/metaType.js +18 -60
- package/lib/node/metatheorem.js +6 -52
- package/lib/node/metavariable.js +40 -61
- package/lib/node/parameter.js +22 -58
- package/lib/node/parenthesisedLabels.js +123 -0
- package/lib/node/premise.js +33 -58
- package/lib/node/procedureCall.js +33 -58
- package/lib/node/proof.js +21 -58
- package/lib/node/property.js +18 -62
- package/lib/node/propertyRelation.js +40 -58
- package/lib/node/reference.js +21 -58
- package/lib/node/rule.js +6 -52
- package/lib/node/statement.js +105 -58
- package/lib/node/step.js +47 -58
- package/lib/node/subDerivation.js +21 -58
- package/lib/node/subproof.js +47 -58
- package/lib/node/supposition.js +33 -58
- package/lib/node/term.js +57 -58
- package/lib/node/theorem.js +6 -52
- package/lib/node/topLevelAssertion.js +86 -59
- package/lib/node/topLevelMetaAssertion.js +65 -59
- package/lib/node/type.js +14 -60
- package/lib/node/variable.js +14 -60
- package/lib/nominal/parser.js +3 -3
- package/lib/nonTerminalNodeMap.js +5 -3
- package/lib/ruleNames.js +10 -2
- package/lib/utilities/node.js +283 -7
- package/lib/utilities/type.js +16 -4
- package/lib/verifier/topLevel.js +6 -6
- package/package.json +8 -8
- package/src/constants.js +1 -0
- package/src/dom/assertion/property.js +1 -4
- 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 +7 -6
- package/src/dom/declaration/metavariable.js +2 -6
- package/src/dom/declaration/type.js +4 -2
- package/src/dom/declaration.js +1 -5
- package/src/dom/derivation.js +1 -4
- package/src/dom/equality.js +13 -17
- package/src/dom/frame.js +7 -19
- package/src/dom/judgement.js +1 -4
- 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 +10 -14
- 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 +16 -32
- package/src/dom/theorem.js +6 -1
- package/src/dom/topLevelAssertion.js +30 -25
- package/src/dom/topLevelMetaAssertion.js +16 -28
- package/src/dom/type.js +9 -35
- package/src/dom/variable.js +4 -12
- package/src/node/assertion/contained.js +41 -3
- package/src/node/assertion/defined.js +29 -3
- package/src/node/assertion/property.js +29 -3
- package/src/node/assertion/satisfies.js +17 -3
- package/src/node/assertion/subproof.js +17 -3
- package/src/node/assertion/type.js +29 -3
- package/src/node/axiom.js +3 -3
- package/src/node/combinator.js +3 -3
- package/src/node/conclusion.js +17 -3
- package/src/node/conjecture.js +3 -3
- package/src/node/constructor.js +3 -3
- package/src/node/declaration/combinator.js +11 -7
- package/src/node/declaration/complexType.js +25 -24
- package/src/node/declaration/constructor.js +22 -17
- package/src/node/declaration/metavariable.js +36 -3
- package/src/node/declaration/property.js +21 -17
- package/src/node/declaration/type.js +22 -17
- package/src/node/declaration/variable.js +24 -32
- package/src/node/declaration.js +29 -3
- package/src/node/deduction.js +17 -3
- package/src/node/derivation.js +18 -3
- package/src/node/equality.js +31 -3
- package/src/node/error.js +3 -3
- package/src/node/frame.js +53 -3
- package/src/node/judgement.js +29 -3
- package/src/node/label.js +17 -3
- package/src/node/labels.js +21 -0
- package/src/node/lemma.js +3 -3
- package/src/node/metaLemma.js +3 -3
- package/src/node/metaType.js +19 -8
- package/src/node/metatheorem.js +3 -3
- package/src/node/metavariable.js +42 -9
- package/src/node/parameter.js +20 -3
- package/src/node/parenthesisedLabels.js +28 -0
- package/src/node/premise.js +29 -3
- package/src/node/procedureCall.js +29 -3
- package/src/node/proof.js +17 -3
- package/src/node/property.js +18 -12
- package/src/node/propertyRelation.js +35 -3
- package/src/node/reference.js +17 -3
- package/src/node/rule.js +3 -3
- package/src/node/statement.js +108 -3
- package/src/node/step.js +41 -3
- package/src/node/subDerivation.js +18 -3
- package/src/node/subproof.js +41 -3
- package/src/node/supposition.js +29 -3
- package/src/node/term.js +62 -3
- package/src/node/theorem.js +3 -3
- package/src/node/topLevelAssertion.js +89 -3
- package/src/node/topLevelMetaAssertion.js +59 -3
- package/src/node/type.js +15 -8
- package/src/node/variable.js +15 -8
- package/src/nominal/parser.js +1 -1
- package/src/nonTerminalNodeMap.js +9 -3
- package/src/ruleNames.js +3 -1
- package/src/utilities/node.js +147 -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/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;
|
|
@@ -96,24 +93,24 @@ export default domAssigned(class PropertyRelation {
|
|
|
96
93
|
|
|
97
94
|
context.trace(`Verifying the '${propertyRelationString}' property relation's '${propertyString}' property...`);
|
|
98
95
|
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
variableTypeProperty =
|
|
103
|
-
const
|
|
96
|
+
const termType = this.term.getType(),
|
|
97
|
+
propertyName = this.property.getName(),
|
|
98
|
+
termTypeProperties = termType.getProperties(),
|
|
99
|
+
variableTypeProperty = termTypeProperties.find((termTypeProperty) => {
|
|
100
|
+
const propertyNameMatches = termTypeProperty.matchPropertyName(propertyName);
|
|
104
101
|
|
|
105
|
-
if (
|
|
102
|
+
if (propertyNameMatches) {
|
|
106
103
|
return true;
|
|
107
104
|
}
|
|
108
105
|
}) || null;
|
|
109
106
|
|
|
110
107
|
if (variableTypeProperty === null) {
|
|
111
108
|
const variableString = this.term.getString(),
|
|
112
|
-
variableTypeString =
|
|
109
|
+
variableTypeString = termType.getString();
|
|
113
110
|
|
|
114
|
-
context.debug(`The '${
|
|
111
|
+
context.debug(`The '${propertyName}' property is not a property of the '${variableString}' variable's '${variableTypeString}' type.`);
|
|
115
112
|
} else {
|
|
116
|
-
const type =
|
|
113
|
+
const type = termType;
|
|
117
114
|
|
|
118
115
|
this.property.setType(type);
|
|
119
116
|
|
|
@@ -131,8 +128,7 @@ export default domAssigned(class PropertyRelation {
|
|
|
131
128
|
|
|
132
129
|
static fromPropertyAssertionNode(propertyAssertionNode, context) {
|
|
133
130
|
const { Term, Property } = dom,
|
|
134
|
-
|
|
135
|
-
propertyRelationNode = propertyAssertionPropertyRelationNode, ///
|
|
131
|
+
propertyRelationNode = propertyAssertionNode.getPropertyRelationNode(),
|
|
136
132
|
node = propertyRelationNode, ///
|
|
137
133
|
string = context.nodeAsString(node),
|
|
138
134
|
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;
|
package/src/dom/rule.js
CHANGED
|
@@ -7,7 +7,6 @@ import LocalContext from "../context/local";
|
|
|
7
7
|
import Substitutions from "../substitutions";
|
|
8
8
|
|
|
9
9
|
import { domAssigned } from "../dom";
|
|
10
|
-
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
11
10
|
import { labelsStringFromLabels } from "./topLevelAssertion";
|
|
12
11
|
import { labelsFromJSON,
|
|
13
12
|
premisesFromJSON,
|
|
@@ -18,11 +17,6 @@ import { labelsFromJSON,
|
|
|
18
17
|
|
|
19
18
|
const { reverse, extract, backwardsEvery } = arrayUtilities;
|
|
20
19
|
|
|
21
|
-
const proofNodeQuery = nodeQuery("/rule/proof"),
|
|
22
|
-
labelNodesQuery = nodesQuery("/rule/parenthesisedLabels/labels/label"),
|
|
23
|
-
premiseNodesQuery = nodesQuery("/rule/premise"),
|
|
24
|
-
conclusionNodeQuery = nodeQuery("/rule/conclusion");
|
|
25
|
-
|
|
26
20
|
export default domAssigned(class Rule {
|
|
27
21
|
constructor(fileContext, string, labels, premises, conclusion, proof) {
|
|
28
22
|
this.fileContext = fileContext;
|
|
@@ -236,10 +230,10 @@ export default domAssigned(class Rule {
|
|
|
236
230
|
}
|
|
237
231
|
|
|
238
232
|
static fromRuleNode(ruleNode, fileContext) {
|
|
239
|
-
const
|
|
233
|
+
const proof = proofFromRuleNode(ruleNode, fileContext),
|
|
234
|
+
labels = labelsFromRuleNode(ruleNode, fileContext),
|
|
240
235
|
premises = premisesFromRuleNode(ruleNode, fileContext),
|
|
241
236
|
conclusion = conclusionFromRuleNode(ruleNode, fileContext),
|
|
242
|
-
proof = proofFromRuleNode(ruleNode, fileContext),
|
|
243
237
|
string = stringFromLabelsAndConclusion(labels, conclusion),
|
|
244
238
|
rule = new Rule(fileContext, string, labels, premises, conclusion, proof);
|
|
245
239
|
|
|
@@ -249,7 +243,7 @@ export default domAssigned(class Rule {
|
|
|
249
243
|
|
|
250
244
|
function proofFromRuleNode(ruleNode, fileContext) {
|
|
251
245
|
const { Proof } = dom,
|
|
252
|
-
proofNode =
|
|
246
|
+
proofNode = ruleNode.getProofNode(),
|
|
253
247
|
proof = Proof.fromProofNode(proofNode, fileContext);
|
|
254
248
|
|
|
255
249
|
return proof;
|
|
@@ -257,7 +251,7 @@ function proofFromRuleNode(ruleNode, fileContext) {
|
|
|
257
251
|
|
|
258
252
|
function labelsFromRuleNode(ruleNode, fileContext) {
|
|
259
253
|
const { Label } = dom,
|
|
260
|
-
labelNodes =
|
|
254
|
+
labelNodes = ruleNode.getLabelNodes(),
|
|
261
255
|
labels = labelNodes.map((labelNode) => {
|
|
262
256
|
const label = Label.fromLabelNode(labelNode, fileContext);
|
|
263
257
|
|
|
@@ -269,7 +263,7 @@ function labelsFromRuleNode(ruleNode, fileContext) {
|
|
|
269
263
|
|
|
270
264
|
function premisesFromRuleNode(ruleNode, fileContext) {
|
|
271
265
|
const { Premise } = dom,
|
|
272
|
-
premiseNodes =
|
|
266
|
+
premiseNodes = ruleNode.getPremiseNodes(),
|
|
273
267
|
premises = premiseNodes.map((premiseNode) => {
|
|
274
268
|
const premise = Premise.fromPremiseNode(premiseNode, fileContext);
|
|
275
269
|
|
|
@@ -281,7 +275,7 @@ function premisesFromRuleNode(ruleNode, fileContext) {
|
|
|
281
275
|
|
|
282
276
|
function conclusionFromRuleNode(ruleNode, fileContext) {
|
|
283
277
|
const { Conclusion } = dom,
|
|
284
|
-
conclusionNode =
|
|
278
|
+
conclusionNode = ruleNode.getConclusionNode(),
|
|
285
279
|
conclusion = Conclusion.fromConclusionNode(conclusionNode, fileContext);
|
|
286
280
|
|
|
287
281
|
return conclusion;
|