occam-verify-cli 0.0.533 → 0.0.535
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/assignment.js +60 -0
- package/lib/conclusion.js +3 -3
- package/lib/consequence.js +2 -2
- package/lib/equality.js +22 -113
- package/lib/log.js +3 -2
- package/lib/premise.js +7 -7
- package/lib/supposition.js +4 -4
- package/lib/verifier/metastatementForMetavariable.js +23 -23
- package/lib/verifier/statement.js +199 -0
- package/lib/verifier/statementForMetavariable.js +25 -25
- package/lib/verifier/termForVariable.js +23 -23
- package/lib/verifier.js +27 -26
- package/lib/verify/assertion/type.js +7 -7
- package/lib/verify/conclusion.js +2 -2
- package/lib/verify/consequence.js +2 -2
- package/lib/verify/derivation.js +3 -3
- package/lib/verify/metastatement/qualified.js +3 -3
- package/lib/verify/metastatement/unqualified.js +3 -3
- package/lib/verify/metastatement.js +2 -2
- package/lib/verify/premise.js +2 -2
- package/lib/verify/ruleDerivation.js +3 -3
- package/lib/verify/statement/qualified.js +3 -3
- package/lib/verify/statement/unqualified.js +3 -3
- package/lib/verify/statement.js +21 -121
- package/lib/verify/statementAsCombinator.js +2 -2
- package/lib/verify/supposition.js +4 -4
- package/package.json +1 -1
- package/src/{assertion.js → assignment.js} +4 -4
- package/src/conclusion.js +4 -4
- package/src/consequence.js +2 -2
- package/src/equality.js +20 -105
- package/src/log.js +1 -1
- package/src/premise.js +15 -15
- package/src/supposition.js +11 -11
- package/src/verifier/metastatementForMetavariable.js +19 -19
- package/src/verifier/statement.js +135 -0
- package/src/verifier/statementForMetavariable.js +21 -21
- package/src/verifier/termForVariable.js +19 -19
- package/src/verifier.js +21 -21
- package/src/verify/assertion/type.js +6 -6
- package/src/verify/conclusion.js +2 -2
- package/src/verify/consequence.js +2 -2
- package/src/verify/derivation.js +4 -4
- package/src/verify/metastatement/qualified.js +2 -2
- package/src/verify/metastatement/unqualified.js +2 -2
- package/src/verify/metastatement.js +1 -1
- package/src/verify/premise.js +2 -2
- package/src/verify/ruleDerivation.js +4 -4
- package/src/verify/statement/qualified.js +2 -2
- package/src/verify/statement/unqualified.js +2 -2
- package/src/verify/statement.js +26 -193
- package/src/verify/statementAsCombinator.js +2 -2
- package/src/verify/supposition.js +4 -4
- package/lib/assertion.js +0 -60
|
@@ -11,8 +11,8 @@ const metavariableNodeQuery = nodeQuery('/metastatement/metavariable!'),
|
|
|
11
11
|
metaArgumentChildNodeNodeQuery = nodeQuery('/metaArgument/*!');
|
|
12
12
|
|
|
13
13
|
export default class StatementForMetavariableVerifier extends Verifier {
|
|
14
|
-
|
|
15
|
-
let
|
|
14
|
+
verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions) {
|
|
15
|
+
let nonTerminalNodeVerifies = false;
|
|
16
16
|
|
|
17
17
|
const nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName(),
|
|
18
18
|
nonTerminalNodeBRuleNameMetaArgumentRuleName = (nonTerminalNodeBRuleName === META_ARGUMENT_RULE_NAME);
|
|
@@ -23,7 +23,7 @@ export default class StatementForMetavariableVerifier extends Verifier {
|
|
|
23
23
|
|
|
24
24
|
nonTerminalNodeB = metaArgumentChildNodeB; ///
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
nonTerminalNodeVerifies = this.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions);
|
|
27
27
|
} else {
|
|
28
28
|
const nonTerminalNodeARuleName = nonTerminalNodeA.getRuleName(),
|
|
29
29
|
nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName(),
|
|
@@ -33,43 +33,43 @@ export default class StatementForMetavariableVerifier extends Verifier {
|
|
|
33
33
|
if (nonTerminalNodeARuleNameMetastatementRuleName && nonTerminalNodeBRuleNameStatementRuleName) {
|
|
34
34
|
const metastatementNodeA = nonTerminalNodeA, ///
|
|
35
35
|
statementNodeB = nonTerminalNodeB, ///
|
|
36
|
-
|
|
36
|
+
statementNodeVerifies = this.verifyStatementNode(metastatementNodeA, statementNodeB, substitutions);
|
|
37
37
|
|
|
38
|
-
if (
|
|
39
|
-
|
|
38
|
+
if (statementNodeVerifies) {
|
|
39
|
+
nonTerminalNodeVerifies = true; ///
|
|
40
40
|
} else {
|
|
41
41
|
const nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(),
|
|
42
42
|
nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(),
|
|
43
43
|
nodesA = nonTerminalNodeAChildNodes, ///
|
|
44
44
|
nodesB = nonTerminalNodeBChildNodes, ///
|
|
45
|
-
nodesMatch = this.
|
|
45
|
+
nodesMatch = this.verifyNodes(nodesA, nodesB, substitutions);
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
nonTerminalNodeVerifies = nodesMatch; ///
|
|
48
48
|
}
|
|
49
49
|
} else if (nonTerminalNodeBRuleName === nonTerminalNodeARuleName) {
|
|
50
|
-
|
|
50
|
+
nonTerminalNodeVerifies = super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
return
|
|
54
|
+
return nonTerminalNodeVerifies;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
let
|
|
57
|
+
verifyStatementNode(metastatementNodeA, statementNodeB, substitutions) {
|
|
58
|
+
let statementNodeVerifies = false;
|
|
59
59
|
|
|
60
60
|
const metavariableNodeA = metavariableNodeQuery(metastatementNodeA);
|
|
61
61
|
|
|
62
62
|
if (metavariableNodeA !== null) {
|
|
63
|
-
const
|
|
63
|
+
const metavariableNodeVerifies = this.verifyMetavariableNode(metavariableNodeA, statementNodeB, substitutions);
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
statementNodeVerifies = metavariableNodeVerifies; ///
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
return
|
|
68
|
+
return statementNodeVerifies;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
let
|
|
71
|
+
verifyMetavariableNode(metavariableNodeA, statementNodeB, substitutions) {
|
|
72
|
+
let metavariableNodeVerifies;
|
|
73
73
|
|
|
74
74
|
const metavariableNameA = metavariableNameFromMetavariableNode(metavariableNodeA),
|
|
75
75
|
substitution = substitutions.find((substitution) => {
|
|
@@ -82,9 +82,9 @@ export default class StatementForMetavariableVerifier extends Verifier {
|
|
|
82
82
|
|
|
83
83
|
if (substitution !== null) {
|
|
84
84
|
const statementNode = statementNodeB, ///
|
|
85
|
-
|
|
85
|
+
statementNodeMatches = substitution.matchStatementNode(statementNode);
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
metavariableNodeVerifies = statementNodeMatches; ///
|
|
88
88
|
} else {
|
|
89
89
|
const { createSubstitutions } = this.constructor;
|
|
90
90
|
|
|
@@ -97,9 +97,9 @@ export default class StatementForMetavariableVerifier extends Verifier {
|
|
|
97
97
|
substitutions.push(substitution);
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
metavariableNodeVerifies = true;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
return
|
|
103
|
+
return metavariableNodeVerifies;
|
|
104
104
|
}
|
|
105
105
|
}
|
|
@@ -10,8 +10,8 @@ import { variableNameFromVariableNode } from "../utilities/query";
|
|
|
10
10
|
const variableNodeQuery = nodeQuery('/term/variable!');
|
|
11
11
|
|
|
12
12
|
export default class TermForVariableVerifier extends Verifier {
|
|
13
|
-
|
|
14
|
-
let
|
|
13
|
+
verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions) {
|
|
14
|
+
let nonTerminalNodeVerifies = false;
|
|
15
15
|
|
|
16
16
|
const nonTerminalNodeARuleName = nonTerminalNodeA.getRuleName(),
|
|
17
17
|
nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName();
|
|
@@ -23,37 +23,37 @@ export default class TermForVariableVerifier extends Verifier {
|
|
|
23
23
|
if (nonTerminalNodeARuleNameTermRuleName && nonTerminalNodeBRuleNameTermRuleName) {
|
|
24
24
|
const termNodeA = nonTerminalNodeA, ///
|
|
25
25
|
termNodeB = nonTerminalNodeB, ///
|
|
26
|
-
|
|
26
|
+
termNodeVerifies = this.verifyTermNode(termNodeA, termNodeB, substitutions);
|
|
27
27
|
|
|
28
|
-
if (
|
|
29
|
-
|
|
28
|
+
if (termNodeVerifies) {
|
|
29
|
+
nonTerminalNodeVerifies = true; ///
|
|
30
30
|
} else {
|
|
31
|
-
|
|
31
|
+
nonTerminalNodeVerifies = super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions);
|
|
32
32
|
}
|
|
33
33
|
} else {
|
|
34
|
-
|
|
34
|
+
nonTerminalNodeVerifies = super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
return
|
|
38
|
+
return nonTerminalNodeVerifies;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
let
|
|
41
|
+
verifyTermNode(termNodeA, termNodeB, substitutions) {
|
|
42
|
+
let termNodeVerifies = false;
|
|
43
43
|
|
|
44
44
|
const variableNodeA = variableNodeQuery(termNodeA);
|
|
45
45
|
|
|
46
46
|
if (variableNodeA !== null) {
|
|
47
|
-
const
|
|
47
|
+
const variableVerifies = this.verifyVariableNode(variableNodeA, termNodeB, substitutions);
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
termNodeVerifies = variableVerifies; ///
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
return
|
|
52
|
+
return termNodeVerifies;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
let
|
|
55
|
+
verifyVariableNode(variableNodeB, termNodeB, substitutions) {
|
|
56
|
+
let variableVerifies;
|
|
57
57
|
|
|
58
58
|
const variableNameA = variableNameFromVariableNode(variableNodeB),
|
|
59
59
|
substitution = substitutions.find((substitution) => {
|
|
@@ -66,9 +66,9 @@ export default class TermForVariableVerifier extends Verifier {
|
|
|
66
66
|
|
|
67
67
|
if (substitution !== null) {
|
|
68
68
|
const termNode = termNodeB, ///
|
|
69
|
-
|
|
69
|
+
substitutionNodesVerifies = substitution.matchTermNode(termNode);
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
variableVerifies = substitutionNodesVerifies; ///
|
|
72
72
|
} else {
|
|
73
73
|
const { createSubstitutions } = this.constructor;
|
|
74
74
|
|
|
@@ -81,9 +81,9 @@ export default class TermForVariableVerifier extends Verifier {
|
|
|
81
81
|
substitutions.push(substitution);
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
variableVerifies = true;
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
return
|
|
87
|
+
return variableVerifies;
|
|
88
88
|
}
|
|
89
89
|
}
|
package/src/verifier.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
export default class Verifier {
|
|
4
|
-
|
|
5
|
-
let
|
|
4
|
+
verifyNode(nodeA, nodeB, substitutions, context) {
|
|
5
|
+
let nodeVerifies = false;
|
|
6
6
|
|
|
7
7
|
const nodeATerminalNode = nodeA.isTerminalNode(),
|
|
8
8
|
nodeBTerminalNode = nodeB.isTerminalNode();
|
|
@@ -11,50 +11,50 @@ export default class Verifier {
|
|
|
11
11
|
if (nodeATerminalNode) {
|
|
12
12
|
const terminalNodeA = nodeA, ///
|
|
13
13
|
terminalNodeB = nodeB, ///
|
|
14
|
-
|
|
14
|
+
terminalNodeVerifies = this.verifyTerminalNode(terminalNodeA, terminalNodeB);
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
nodeVerifies = terminalNodeVerifies; ///
|
|
17
17
|
} else {
|
|
18
18
|
const nonTerminalNodeA = nodeA, ///
|
|
19
19
|
nonTerminalNodeB = nodeB, ///
|
|
20
|
-
|
|
20
|
+
nonTerminalNodeVerifies = this.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, context);
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
nodeVerifies = nonTerminalNodeVerifies; ///
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
return
|
|
26
|
+
return nodeVerifies;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
let
|
|
29
|
+
verifyNodes(nodesA, nodesB, substitutions, context) {
|
|
30
|
+
let nodesVerify = false;
|
|
31
31
|
|
|
32
32
|
const nodesALength = nodesA.length,
|
|
33
33
|
nodesBLength = nodesB.length;
|
|
34
34
|
|
|
35
35
|
if (nodesALength === nodesBLength) {
|
|
36
|
-
|
|
36
|
+
nodesVerify = nodesA.every((nodeA, index) => {
|
|
37
37
|
const nodeB = nodesB[index],
|
|
38
|
-
|
|
38
|
+
nodeVerifies = this.verifyNode(nodeA, nodeB, substitutions, context);
|
|
39
39
|
|
|
40
|
-
if (
|
|
40
|
+
if (nodeVerifies) {
|
|
41
41
|
return true;
|
|
42
42
|
}
|
|
43
43
|
})
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
return
|
|
46
|
+
return nodesVerify;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
verifyTerminalNode(terminalNodeA, terminalNodeB, substitutions, context) {
|
|
50
50
|
const matches = terminalNodeA.match(terminalNodeB),
|
|
51
|
-
|
|
51
|
+
terminalNodeVerifies = matches; ///
|
|
52
52
|
|
|
53
|
-
return
|
|
53
|
+
return terminalNodeVerifies;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
let
|
|
56
|
+
verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, context = null) {
|
|
57
|
+
let nonTerminalNodeVerifies = false;
|
|
58
58
|
|
|
59
59
|
const nonTerminalNodeARuleName = nonTerminalNodeA.getRuleName(), ///
|
|
60
60
|
nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName(); ///
|
|
@@ -64,11 +64,11 @@ export default class Verifier {
|
|
|
64
64
|
nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(),
|
|
65
65
|
nodesA = nonTerminalNodeAChildNodes, ///
|
|
66
66
|
nodesB = nonTerminalNodeBChildNodes, ///
|
|
67
|
-
|
|
67
|
+
nodesVerify = this.verifyNodes(nodesA, nodesB, substitutions, context);
|
|
68
68
|
|
|
69
|
-
|
|
69
|
+
nonTerminalNodeVerifies = nodesVerify; ///
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
return
|
|
72
|
+
return nonTerminalNodeVerifies;
|
|
73
73
|
}
|
|
74
74
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import Variable from "../../variable";
|
|
4
|
-
import
|
|
4
|
+
import Assignment from "../../assignment";
|
|
5
5
|
|
|
6
6
|
import { first } from "../../utilities/array";
|
|
7
7
|
import { nodeQuery, typeNameFromTypeNode } from "../../utilities/query";
|
|
@@ -10,7 +10,7 @@ import { verifyTermAsVariable, verifyTermAgainstConstructors } from "../../verif
|
|
|
10
10
|
const termNodeQuery = nodeQuery("/typeAssertion/term"),
|
|
11
11
|
typeNodeQuery = nodeQuery("/typeAssertion/type");
|
|
12
12
|
|
|
13
|
-
export default function verifyTypeAssertion(typeAssertionNode,
|
|
13
|
+
export default function verifyTypeAssertion(typeAssertionNode, assignments, derived, context) {
|
|
14
14
|
let typeAssertionVerified = false;
|
|
15
15
|
|
|
16
16
|
const typeAssertionString = context.nodeAsString(typeAssertionNode);
|
|
@@ -25,7 +25,7 @@ export default function verifyTypeAssertion(typeAssertionNode, assertions, deriv
|
|
|
25
25
|
context.error(`The ${typeName} type is not present.`, typeAssertionNode);
|
|
26
26
|
} else {
|
|
27
27
|
if (!typeAssertionVerified) {
|
|
28
|
-
const variableTypeAssertionVerified = verifyVariableTypeAssertion(typeAssertionNode,
|
|
28
|
+
const variableTypeAssertionVerified = verifyVariableTypeAssertion(typeAssertionNode, assignments, derived, context);
|
|
29
29
|
|
|
30
30
|
typeAssertionVerified = variableTypeAssertionVerified; ///
|
|
31
31
|
}
|
|
@@ -44,7 +44,7 @@ export default function verifyTypeAssertion(typeAssertionNode, assertions, deriv
|
|
|
44
44
|
return typeAssertionVerified;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
function verifyVariableTypeAssertion(typeAssertionNode,
|
|
47
|
+
function verifyVariableTypeAssertion(typeAssertionNode, assignments, derived, context) {
|
|
48
48
|
let variableTypeAssertionVerified = false;
|
|
49
49
|
|
|
50
50
|
const variables = [],
|
|
@@ -88,9 +88,9 @@ function verifyVariableTypeAssertion(typeAssertionNode, assertions, derived, con
|
|
|
88
88
|
const type = assertedType, ///
|
|
89
89
|
name = variableName, ///
|
|
90
90
|
variable = Variable.fromTypeAndName(type, name),
|
|
91
|
-
|
|
91
|
+
assignment = Assignment.fromVariable(variable);
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
assignments.push(assignment);
|
|
94
94
|
|
|
95
95
|
variableTypeAssertionVerified = true;
|
|
96
96
|
}
|
package/src/verify/conclusion.js
CHANGED
|
@@ -16,9 +16,9 @@ export default function verifyConclusion(conclusionNode, conclusions, metaproofC
|
|
|
16
16
|
metaproofContext.debug(`Verifying the '${conclusionString}' conclusion...`, conclusionNode);
|
|
17
17
|
|
|
18
18
|
const derived = false,
|
|
19
|
-
|
|
19
|
+
assignments = [],
|
|
20
20
|
unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(conclusionNode),
|
|
21
|
-
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode,
|
|
21
|
+
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, metaproofContext);
|
|
22
22
|
|
|
23
23
|
if (unqualifiedMetastatementVerified) {
|
|
24
24
|
const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
|
|
@@ -16,9 +16,9 @@ export default function verifyConsequence(consequenceNode, consequences, proofCo
|
|
|
16
16
|
proofContext.debug(`Verifying the '${consequenceString}' consequence...`, consequenceNode);
|
|
17
17
|
|
|
18
18
|
const derived = false,
|
|
19
|
-
|
|
19
|
+
assignments = [],
|
|
20
20
|
unqualifiedStatementNode = unqualifiedStatementNodeQuery(consequenceNode),
|
|
21
|
-
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode,
|
|
21
|
+
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, proofContext);
|
|
22
22
|
|
|
23
23
|
if (unqualifiedStatementVerified) {
|
|
24
24
|
const statementNode = statementNodeQuery(unqualifiedStatementNode),
|
package/src/verify/derivation.js
CHANGED
|
@@ -96,9 +96,9 @@ function verifyChild(childNode, proofContext) {
|
|
|
96
96
|
|
|
97
97
|
case QUALIFIED_STATEMENT_RULE_NAME: {
|
|
98
98
|
const derived = true,
|
|
99
|
-
|
|
99
|
+
assignments = [],
|
|
100
100
|
qualifiedStatementNode = childNode, ///
|
|
101
|
-
qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode,
|
|
101
|
+
qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, assignments, derived, proofContext);
|
|
102
102
|
|
|
103
103
|
if (qualifiedStatementVerified) {
|
|
104
104
|
const statementNode = statementNodeQuery(qualifiedStatementNode),
|
|
@@ -114,9 +114,9 @@ function verifyChild(childNode, proofContext) {
|
|
|
114
114
|
|
|
115
115
|
case UNQUALIFIED_STATEMENT_RULE_NAME: {
|
|
116
116
|
const derived = true,
|
|
117
|
-
|
|
117
|
+
assignments = [],
|
|
118
118
|
unqualifiedStatementNode = childNode, ///
|
|
119
|
-
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode,
|
|
119
|
+
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, proofContext);
|
|
120
120
|
|
|
121
121
|
if (unqualifiedStatementVerified) {
|
|
122
122
|
const statementNode = statementNodeQuery(unqualifiedStatementNode),
|
|
@@ -7,7 +7,7 @@ import { nodeQuery, referenceNameFromReferenceNode } from "../../utilities/query
|
|
|
7
7
|
const referenceNodeQuery = nodeQuery("/qualifiedMetastatement/qualification!/reference!"),
|
|
8
8
|
metastatementNodeQuery = nodeQuery("/qualifiedMetastatement/metastatement!");
|
|
9
9
|
|
|
10
|
-
export default function verifyQualifiedMetastatement(qualifiedMetastatementNode,
|
|
10
|
+
export default function verifyQualifiedMetastatement(qualifiedMetastatementNode, assignments, derived, metaproofContext) {
|
|
11
11
|
let qualifiedMetastatementVerified = false;
|
|
12
12
|
|
|
13
13
|
const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode);
|
|
@@ -31,7 +31,7 @@ export default function verifyQualifiedMetastatement(qualifiedMetastatementNode,
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
if (ruleMatchesMetastatement) {
|
|
34
|
-
const metastatementVerified = verifyMetastatement(metastatementNode,
|
|
34
|
+
const metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived, metaproofContext);
|
|
35
35
|
|
|
36
36
|
qualifiedMetastatementVerified = metastatementVerified; ///
|
|
37
37
|
}
|
|
@@ -6,7 +6,7 @@ import { nodeQuery } from "../../utilities/query";
|
|
|
6
6
|
|
|
7
7
|
const metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!");
|
|
8
8
|
|
|
9
|
-
export default function verifyUnqualifiedMetastatement(unqualifiedMetastatementNode,
|
|
9
|
+
export default function verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, metaproofContext) {
|
|
10
10
|
let unqualifiedMetastatementVerified = false;
|
|
11
11
|
|
|
12
12
|
const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode);
|
|
@@ -23,7 +23,7 @@ export default function verifyUnqualifiedMetastatement(unqualifiedMetastatementN
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
if (metastatementMatches) {
|
|
26
|
-
const metastatementVerified = verifyMetastatement(metastatementNode,
|
|
26
|
+
const metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived, metaproofContext);
|
|
27
27
|
|
|
28
28
|
unqualifiedMetastatementVerified = metastatementVerified; ///
|
|
29
29
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
export default function verifyMetastatement(metastatementNode,
|
|
3
|
+
export default function verifyMetastatement(metastatementNode, assignments, derived, metaproofContext) {
|
|
4
4
|
let metastatementVerified = true; ///
|
|
5
5
|
|
|
6
6
|
///
|
package/src/verify/premise.js
CHANGED
|
@@ -17,9 +17,9 @@ export default function verifyPremise(premiseNode, premises, metaproofContext) {
|
|
|
17
17
|
metaproofContext.debug(`Verifying the '${premiseString}' premise...`, premiseNode);
|
|
18
18
|
|
|
19
19
|
const derived = false,
|
|
20
|
-
|
|
20
|
+
assignments = [],
|
|
21
21
|
unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(premiseNode),
|
|
22
|
-
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode,
|
|
22
|
+
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, metaproofContext);
|
|
23
23
|
|
|
24
24
|
if (unqualifiedMetastatementVerified) {
|
|
25
25
|
const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
|
|
@@ -96,9 +96,9 @@ function verifyChild(childNode, metaproofContext) {
|
|
|
96
96
|
|
|
97
97
|
case QUALIFIED_METASTATEMENT_RULE_NAME: {
|
|
98
98
|
const derived = true,
|
|
99
|
-
|
|
99
|
+
assignments = [],
|
|
100
100
|
qualifiedMetastatementNode = childNode, ///
|
|
101
|
-
qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode,
|
|
101
|
+
qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode, assignments, derived, metaproofContext);
|
|
102
102
|
|
|
103
103
|
if (qualifiedMetastatementVerified) {
|
|
104
104
|
const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
|
|
@@ -114,9 +114,9 @@ function verifyChild(childNode, metaproofContext) {
|
|
|
114
114
|
|
|
115
115
|
case UNQUALIFIED_METASTATEMENT_RULE_NAME: {
|
|
116
116
|
const derived = true,
|
|
117
|
-
|
|
117
|
+
assignments = [],
|
|
118
118
|
unqualifiedMetastatementNode = childNode, ///
|
|
119
|
-
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode,
|
|
119
|
+
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, metaproofContext);
|
|
120
120
|
|
|
121
121
|
if (unqualifiedMetastatementVerified) {
|
|
122
122
|
const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
|
|
@@ -7,7 +7,7 @@ import { nodeQuery, referenceNameFromReferenceNode } from "../../utilities/query
|
|
|
7
7
|
const referenceNodeQuery = nodeQuery("/qualifiedStatement/qualification!/reference!"),
|
|
8
8
|
statementNodeQuery = nodeQuery("/qualifiedStatement/statement!");
|
|
9
9
|
|
|
10
|
-
export default function verifyQualifiedStatement(qualifiedStatementNode,
|
|
10
|
+
export default function verifyQualifiedStatement(qualifiedStatementNode, assignments, derived, proofContext) {
|
|
11
11
|
let qualifiedStatementVerified = false;
|
|
12
12
|
|
|
13
13
|
const statementNode = statementNodeQuery(qualifiedStatementNode);
|
|
@@ -21,7 +21,7 @@ export default function verifyQualifiedStatement(qualifiedStatementNode, asserti
|
|
|
21
21
|
|
|
22
22
|
if (referenceNode === null) {
|
|
23
23
|
const context = proofContext,
|
|
24
|
-
statementVerified = verifyStatement(statementNode,
|
|
24
|
+
statementVerified = verifyStatement(statementNode, assignments, derived, context);
|
|
25
25
|
|
|
26
26
|
qualifiedStatementVerified = statementVerified; ///
|
|
27
27
|
} else {
|
|
@@ -6,7 +6,7 @@ import { nodeQuery } from "../../utilities/query";
|
|
|
6
6
|
|
|
7
7
|
const statementNodeQuery = nodeQuery("/unqualifiedStatement/statement!");
|
|
8
8
|
|
|
9
|
-
export default function verifyUnqualifiedStatement(unqualifiedStatementNode,
|
|
9
|
+
export default function verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, proofContext) {
|
|
10
10
|
let unqualifiedStatementVerified = false;
|
|
11
11
|
|
|
12
12
|
const statementNode = statementNodeQuery(unqualifiedStatementNode);
|
|
@@ -24,7 +24,7 @@ export default function verifyUnqualifiedStatement(unqualifiedStatementNode, ass
|
|
|
24
24
|
|
|
25
25
|
if (statementMatches) {
|
|
26
26
|
const context = proofContext, ///
|
|
27
|
-
statementVerified = verifyStatement(statementNode,
|
|
27
|
+
statementVerified = verifyStatement(statementNode, assignments, derived, context);
|
|
28
28
|
|
|
29
29
|
unqualifiedStatementVerified = statementVerified; ///
|
|
30
30
|
}
|