occam-verify-cli 0.0.922 → 0.0.924
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/axiom.js +9 -9
- package/lib/conclusion.js +11 -41
- package/lib/conjecture.js +9 -9
- package/lib/constants.js +1 -13
- package/lib/context/file.js +3 -3
- package/lib/context/local.js +19 -59
- package/lib/declaration.js +15 -15
- package/lib/lemma.js +9 -9
- package/lib/metaLemma.js +7 -7
- package/lib/metatheorem.js +7 -7
- package/lib/metavariable.js +8 -1
- package/lib/mixins/nodesVerifier/metaLevel.js +6 -6
- package/lib/premise.js +14 -91
- package/lib/{step/proof.js → proofStep.js} +1 -1
- package/lib/rule.js +1 -45
- package/lib/ruleNames.js +1 -9
- package/lib/substitution/statementForMetavariable.js +9 -1
- package/lib/substitution.js +1 -8
- package/lib/supposition.js +55 -1
- package/lib/theorem.js +9 -9
- package/lib/topLevelAssertion.js +186 -0
- package/lib/utilities/customGrammar.js +2 -2
- package/lib/utilities/match.js +13 -50
- package/lib/utilities/node.js +2 -27
- package/lib/utilities/tokens.js +1 -8
- package/lib/utilities/verify.js +8 -24
- package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +29 -29
- package/lib/verifier/nodes/metaLevel.js +13 -13
- package/lib/verify/axiom.js +4 -4
- package/lib/verify/conclusion.js +10 -11
- package/lib/verify/conjecture.js +4 -4
- package/lib/verify/containedAssertion.js +91 -0
- package/lib/verify/declaration.js +7 -7
- package/lib/verify/definedAssertion.js +115 -0
- package/lib/verify/derivation.js +7 -7
- package/lib/verify/frame.js +2 -2
- package/lib/verify/judgement.js +2 -2
- package/lib/verify/lemma.js +5 -5
- package/lib/verify/metaLemma.js +12 -12
- package/lib/verify/metastatement.js +48 -67
- package/lib/verify/metatheorem.js +12 -12
- package/lib/verify/metavariable.js +2 -2
- package/lib/verify/premise.js +11 -30
- package/lib/verify/proof.js +3 -3
- package/lib/verify/proofStep.js +8 -8
- package/lib/verify/rule.js +10 -10
- package/lib/verify/statement/qualified.js +38 -15
- package/lib/verify/statement/unqualified.js +38 -10
- package/lib/verify/statement.js +85 -92
- package/lib/verify/subDerivation.js +3 -3
- package/lib/verify/subproof.js +3 -3
- package/lib/verify/supposition.js +3 -3
- package/lib/verify/termAsConstructor.js +2 -2
- package/lib/verify/theorem.js +4 -4
- package/package.json +2 -2
- package/src/axiom.js +4 -4
- package/src/conclusion.js +13 -52
- package/src/conjecture.js +4 -4
- package/src/constants.js +0 -3
- package/src/context/file.js +2 -2
- package/src/context/local.js +21 -67
- package/src/declaration.js +19 -19
- package/src/lemma.js +4 -4
- package/src/metaLemma.js +4 -4
- package/src/metatheorem.js +4 -4
- package/src/metavariable.js +6 -0
- package/src/mixins/nodesVerifier/metaLevel.js +8 -8
- package/src/premise.js +20 -137
- package/src/rule.js +0 -67
- package/src/ruleNames.js +0 -2
- package/src/substitution/statementForMetavariable.js +14 -0
- package/src/substitution.js +0 -6
- package/src/supposition.js +46 -0
- package/src/theorem.js +4 -4
- package/src/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +36 -23
- package/src/utilities/customGrammar.js +1 -2
- package/src/utilities/match.js +13 -60
- package/src/utilities/node.js +3 -32
- package/src/utilities/tokens.js +0 -8
- package/src/utilities/verify.js +4 -20
- package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +36 -37
- package/src/verifier/nodes/metaLevel.js +17 -17
- package/src/verify/axiom.js +5 -4
- package/src/verify/conclusion.js +9 -13
- package/src/verify/conjecture.js +5 -4
- package/src/verify/{statementAsContainedAssertion.js → containedAssertion.js} +20 -36
- package/src/verify/declaration.js +8 -8
- package/src/verify/{statementAsDefinedAssertion.js → definedAssertion.js} +22 -37
- package/src/verify/derivation.js +6 -6
- package/src/verify/frame.js +1 -1
- package/src/verify/judgement.js +1 -1
- package/src/verify/lemma.js +8 -5
- package/src/verify/metaLemma.js +24 -24
- package/src/verify/metastatement.js +48 -76
- package/src/verify/metatheorem.js +23 -23
- package/src/verify/metavariable.js +1 -1
- package/src/verify/premise.js +14 -46
- package/src/verify/proof.js +2 -2
- package/src/verify/proofStep.js +4 -4
- package/src/verify/rule.js +11 -11
- package/src/verify/statement/qualified.js +56 -21
- package/src/verify/statement/unqualified.js +52 -10
- package/src/verify/statement.js +133 -39
- package/src/verify/subDerivation.js +2 -2
- package/src/verify/subproof.js +2 -2
- package/src/verify/supposition.js +1 -1
- package/src/verify/termAsConstructor.js +2 -2
- package/src/verify/theorem.js +7 -4
- package/lib/axiomLemmaTheoremConjecture.js +0 -174
- package/lib/metaConsequent.js +0 -108
- package/lib/metaLemmaMetatheorem.js +0 -191
- package/lib/metaSupposition.js +0 -160
- package/lib/node/metastatement/bracketed.js +0 -16
- package/lib/step/metaproof.js +0 -106
- package/lib/substitution/metastatementForMetavariable.js +0 -173
- package/lib/verify/metaConsequent.js +0 -50
- package/lib/verify/metaDerivation.js +0 -31
- package/lib/verify/metaSubDerivation.js +0 -25
- package/lib/verify/metaSubproof.js +0 -34
- package/lib/verify/metaSupposition.js +0 -61
- package/lib/verify/metaSuppositions.js +0 -28
- package/lib/verify/metaproof.js +0 -31
- package/lib/verify/metaproofStep.js +0 -98
- package/lib/verify/metastatement/qualified.js +0 -95
- package/lib/verify/metastatement/unqualified.js +0 -37
- package/lib/verify/metastatementAsContainedAssertion.js +0 -109
- package/lib/verify/metastatementAsDefinedAssertion.js +0 -132
- package/lib/verify/metavariableAgainstMetastatement.js +0 -44
- package/lib/verify/statementAsContainedAssertion.js +0 -109
- package/lib/verify/statementAsDefinedAssertion.js +0 -132
- package/src/metaConsequent.js +0 -83
- package/src/metaLemmaMetatheorem.js +0 -188
- package/src/metaSupposition.js +0 -127
- package/src/node/metastatement/bracketed.js +0 -9
- package/src/step/metaproof.js +0 -73
- package/src/substitution/metastatementForMetavariable.js +0 -90
- package/src/verify/metaConsequent.js +0 -61
- package/src/verify/metaDerivation.js +0 -23
- package/src/verify/metaSubDerivation.js +0 -22
- package/src/verify/metaSubproof.js +0 -32
- package/src/verify/metaSupposition.js +0 -78
- package/src/verify/metaSuppositions.js +0 -17
- package/src/verify/metaproof.js +0 -28
- package/src/verify/metaproofStep.js +0 -137
- package/src/verify/metastatement/qualified.js +0 -130
- package/src/verify/metastatement/unqualified.js +0 -34
- package/src/verify/metastatementAsContainedAssertion.js +0 -127
- package/src/verify/metastatementAsDefinedAssertion.js +0 -156
- package/src/verify/metavariableAgainstMetastatement.js +0 -42
- /package/src/{step/proof.js → proofStep.js} +0 -0
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import MetaproofStep from "../step/metaproof";
|
|
4
|
-
import verifyMetaSubproof from "../verify/metaSubproof";
|
|
5
|
-
import verifyMetaSubDerivation from "../verify/metaSubDerivation";
|
|
6
|
-
import verifyQualifiedStatement from "../verify/statement/qualified";
|
|
7
|
-
import verifyUnqualifiedStatement from "../verify/statement/unqualified";
|
|
8
|
-
import verifyQualifiedMetastatement from "../verify/metastatement/qualified";
|
|
9
|
-
import verifyUnqualifiedMetastatement from "../verify/metastatement/unqualified";
|
|
10
|
-
|
|
11
|
-
import { nodeQuery } from "../utilities/query";
|
|
12
|
-
import { assignAssignment } from "../utilities/assignments";
|
|
13
|
-
|
|
14
|
-
const metaSubproofNodeQuery = nodeQuery("/metaproofStep|lastMetaproofStep/metaSubproof!"),
|
|
15
|
-
metastatementNodeQuery = nodeQuery("/qualifiedMetastatement|unqualifiedMetastatement/metastatement!"),
|
|
16
|
-
qualifiedStatementNodeQuery = nodeQuery("/metaproofStep|lastMetaproofStep/qualifiedStatement!"),
|
|
17
|
-
unqualifiedStatementNodeQuery = nodeQuery("/metaproofStep|lastMetaproofStep/unqualifiedStatement!"),
|
|
18
|
-
qualifiedMetastatementNodeQuery = nodeQuery("/metaproofStep|lastMetaproofStep/qualifiedMetastatement!"),
|
|
19
|
-
unqualifiedMetastatementNodeQuery = nodeQuery("/metaproofStep|lastMetaproofStep/unqualifiedMetastatement!");
|
|
20
|
-
|
|
21
|
-
export default function verifyMetaproofStep(metaproofStepNode, substitutions, localContext) {
|
|
22
|
-
let metaproofStepVerified = false;
|
|
23
|
-
|
|
24
|
-
const metaSubproofNode = metaSubproofNodeQuery(metaproofStepNode),
|
|
25
|
-
qualifiedStatementNode = qualifiedStatementNodeQuery(metaproofStepNode),
|
|
26
|
-
unqualifiedStatementNode = unqualifiedStatementNodeQuery(metaproofStepNode),
|
|
27
|
-
qualifiedMetastatementNode = qualifiedMetastatementNodeQuery(metaproofStepNode),
|
|
28
|
-
unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(metaproofStepNode);
|
|
29
|
-
|
|
30
|
-
if (false) {
|
|
31
|
-
///
|
|
32
|
-
} else if (metaSubproofNode !== null) {
|
|
33
|
-
let metaSubproofVerified;
|
|
34
|
-
|
|
35
|
-
metaSubproofVerified = verifyMetaSubproof(metaSubproofNode, substitutions, localContext);
|
|
36
|
-
|
|
37
|
-
if (metaSubproofVerified) {
|
|
38
|
-
const metaproofStep = MetaproofStep.fromMetaSubproofNode(metaSubproofNode);
|
|
39
|
-
|
|
40
|
-
localContext.addMetaproofStep(metaproofStep);
|
|
41
|
-
|
|
42
|
-
metaproofStepVerified = true;
|
|
43
|
-
}
|
|
44
|
-
} else if (qualifiedStatementNode !== null) {
|
|
45
|
-
let qualifiedStatementVerified;
|
|
46
|
-
|
|
47
|
-
const assignments = []; ///
|
|
48
|
-
|
|
49
|
-
qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, assignments, localContext);
|
|
50
|
-
|
|
51
|
-
if (qualifiedStatementVerified) {
|
|
52
|
-
const assignmentAssigned = assignAssignment(assignments, localContext);
|
|
53
|
-
|
|
54
|
-
qualifiedStatementVerified = assignmentAssigned; ///
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (qualifiedStatementVerified) {
|
|
58
|
-
const statementNode = statementNodeQuery(qualifiedStatementNode),
|
|
59
|
-
metaproofStep = MetaproofStep.fromStatementNode(statementNode);
|
|
60
|
-
|
|
61
|
-
localContext.addMetaproofStep(metaproofStep);
|
|
62
|
-
|
|
63
|
-
metaproofStepVerified = true;
|
|
64
|
-
}
|
|
65
|
-
} else if (unqualifiedStatementNode !== null) {
|
|
66
|
-
let unqualifiedStatementVerified;
|
|
67
|
-
|
|
68
|
-
const derived = true,
|
|
69
|
-
assignments = [];
|
|
70
|
-
|
|
71
|
-
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
|
|
72
|
-
|
|
73
|
-
if (unqualifiedStatementVerified) {
|
|
74
|
-
const assignmentAssigned = assignAssignment(assignments, localContext);
|
|
75
|
-
|
|
76
|
-
unqualifiedStatementVerified = assignmentAssigned; ///
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
if (unqualifiedStatementVerified) {
|
|
80
|
-
const statementNode = statementNodeQuery(unqualifiedStatementNode),
|
|
81
|
-
metaproofStep = MetaproofStep.fromStatementNode(statementNode);
|
|
82
|
-
|
|
83
|
-
localContext.addMetaproofStep(metaproofStep);
|
|
84
|
-
|
|
85
|
-
metaproofStepVerified = unqualifiedStatementVerified; ///
|
|
86
|
-
}
|
|
87
|
-
} else if (qualifiedMetastatementNode !== null) {
|
|
88
|
-
let qualifiedMetastatementVerified;
|
|
89
|
-
|
|
90
|
-
const assignments = [];
|
|
91
|
-
|
|
92
|
-
qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments, localContext);
|
|
93
|
-
|
|
94
|
-
if (qualifiedMetastatementVerified) {
|
|
95
|
-
const assignmentAssigned = assignAssignment(assignments, localContext);
|
|
96
|
-
|
|
97
|
-
qualifiedMetastatementVerified = assignmentAssigned; ///
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
if (qualifiedMetastatementVerified) {
|
|
101
|
-
const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
|
|
102
|
-
metaproofStep = MetaproofStep.fromMetastatementNode(metastatementNode);
|
|
103
|
-
|
|
104
|
-
localContext.addMetaproofStep(metaproofStep);
|
|
105
|
-
|
|
106
|
-
metaproofStepVerified = qualifiedMetastatementVerified; ///
|
|
107
|
-
}
|
|
108
|
-
} else if (unqualifiedMetastatementNode !== null) {
|
|
109
|
-
let unqualifiedMetastatementVerified;
|
|
110
|
-
|
|
111
|
-
const derived = true,
|
|
112
|
-
assignments = [];
|
|
113
|
-
|
|
114
|
-
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext);
|
|
115
|
-
|
|
116
|
-
if (unqualifiedMetastatementVerified) {
|
|
117
|
-
const assignmentAssigned = assignAssignment(assignments, localContext);
|
|
118
|
-
|
|
119
|
-
unqualifiedMetastatementVerified = assignmentAssigned; ///
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
if (unqualifiedMetastatementVerified) {
|
|
123
|
-
const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
|
|
124
|
-
metaproofStep = MetaproofStep.fromMetastatementNode(metastatementNode);
|
|
125
|
-
|
|
126
|
-
localContext.addMetaproofStep(metaproofStep);
|
|
127
|
-
|
|
128
|
-
metaproofStepVerified = true;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
return metaproofStepVerified;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
Object.assign(verifyMetaSubDerivation, {
|
|
136
|
-
verifyMetaproofStep
|
|
137
|
-
});
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import verifyMetavariableAgainstMetastatement from "../../verify/metavariableAgainstMetastatement";
|
|
4
|
-
|
|
5
|
-
import { nodeQuery } from "../../utilities/query";
|
|
6
|
-
|
|
7
|
-
const metavariableNodeQuery = nodeQuery("/qualifiedMetastatement/reference!/metavariable!"),
|
|
8
|
-
metastatementNodeQuery = nodeQuery("/qualifiedMetastatement/metastatement!");
|
|
9
|
-
|
|
10
|
-
export default function verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments, localContext) {
|
|
11
|
-
let qualifiedMetastatementVerified;
|
|
12
|
-
|
|
13
|
-
const qualifiedMetastatementString = localContext.nodeAsString(qualifiedMetastatementNode);
|
|
14
|
-
|
|
15
|
-
localContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement...`, qualifiedMetastatementNode);
|
|
16
|
-
|
|
17
|
-
const metavariableNode = metavariableNodeQuery(qualifiedMetastatementNode),
|
|
18
|
-
verifyQualifiedMetastatementFunctions = [
|
|
19
|
-
verifyQualifiedMetastatementAAgainstRule,
|
|
20
|
-
verifyQualifiedMetastatementAAgainstReference
|
|
21
|
-
];
|
|
22
|
-
|
|
23
|
-
qualifiedMetastatementVerified = verifyQualifiedMetastatementFunctions.some((verifyQualifiedMetastatementFunction) => { ///
|
|
24
|
-
const qualifiedMetastatementVerified = verifyQualifiedMetastatementFunction(qualifiedMetastatementNode, metavariableNode, substitutions, localContext);
|
|
25
|
-
|
|
26
|
-
if (qualifiedMetastatementVerified) {
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
if (qualifiedMetastatementVerified) {
|
|
32
|
-
const derived = false,
|
|
33
|
-
metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
|
|
34
|
-
metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived, localContext, () => {
|
|
35
|
-
const verifiedAhead = true;
|
|
36
|
-
|
|
37
|
-
return verifiedAhead;
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
qualifiedMetastatementVerified = metastatementVerified; ///
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
if (qualifiedMetastatementVerified) {
|
|
44
|
-
localContext.debug(`...verified the '${qualifiedMetastatementString}' qualified metastatement.`, qualifiedMetastatementNode);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return qualifiedMetastatementVerified;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function verifyQualifiedMetastatementAAgainstRule(qualifiedMetastatementNode, metavariableNode, substitutions, localContext) {
|
|
51
|
-
let qualifiedMetastatementVerifiedAgainstRule = false;
|
|
52
|
-
|
|
53
|
-
const rule = localContext.findRuleByMetavariableNode(metavariableNode);
|
|
54
|
-
|
|
55
|
-
if (rule !== null) {
|
|
56
|
-
const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
|
|
57
|
-
metavariableString = localContext.nodeAsString(metavariableNode),
|
|
58
|
-
qualifiedMetastatementString = localContext.nodeAsString(qualifiedMetastatementNode);
|
|
59
|
-
|
|
60
|
-
localContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' rule...`, qualifiedMetastatementNode);
|
|
61
|
-
|
|
62
|
-
const ruleMatchesMetastatement = rule.matchMetastatement(metastatementNode, localContext);
|
|
63
|
-
|
|
64
|
-
qualifiedMetastatementVerifiedAgainstRule = ruleMatchesMetastatement; ///
|
|
65
|
-
|
|
66
|
-
if (qualifiedMetastatementVerifiedAgainstRule) {
|
|
67
|
-
localContext.debug(`...verified the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' rule.`, qualifiedMetastatementNode);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
return qualifiedMetastatementVerifiedAgainstRule;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
function verifyQualifiedMetastatementAAgainstReference(qualifiedMetastatementNode, metavariableNode, substitutions, localContext) {
|
|
75
|
-
let qualifiedMetastatementVerifiedAgainstReference = false;
|
|
76
|
-
|
|
77
|
-
if (substitutions !== null) {
|
|
78
|
-
const metavariableString = localContext.nodeAsString(metavariableNode),
|
|
79
|
-
metavariablePresent = localContext.isMetavariablePresentByMetavariableNode(metavariableNode, localContext),
|
|
80
|
-
qualifiedMetastatementString = localContext.nodeAsString(qualifiedMetastatementNode);
|
|
81
|
-
|
|
82
|
-
localContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' reference...`, qualifiedMetastatementNode);
|
|
83
|
-
|
|
84
|
-
if (metavariablePresent) {
|
|
85
|
-
const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
|
|
86
|
-
metavariableVerifiedAgainstMetastatement = verifyMetavariableAgainstMetastatement(metavariableNode, metastatementNode, substitutions, () => {
|
|
87
|
-
const verifiedAhead = true;
|
|
88
|
-
|
|
89
|
-
return verifiedAhead;
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
qualifiedMetastatementVerifiedAgainstReference = metavariableVerifiedAgainstMetastatement; ///
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (qualifiedMetastatementVerifiedAgainstReference) {
|
|
96
|
-
localContext.debug(`...verified the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' reference.`, qualifiedMetastatementNode);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
return qualifiedMetastatementVerifiedAgainstReference;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
function verifyMetastatement(metastatementNode, assignments, derived, localContext) {
|
|
104
|
-
let metastatementVerified;
|
|
105
|
-
|
|
106
|
-
const metastatementString = localContext.nodeAsString(metastatementNode);
|
|
107
|
-
|
|
108
|
-
localContext.trace(`Verifying the '${metastatementString}' metastatement...`, metastatementNode);
|
|
109
|
-
|
|
110
|
-
const verifyMetaStatementFunctions = [
|
|
111
|
-
///
|
|
112
|
-
];
|
|
113
|
-
|
|
114
|
-
verifyMetaStatementFunctions.some((verifyStatementFunction) => {
|
|
115
|
-
const metastatementVerified = verifyStatementFunction(metastatementNode, assignments, derived, localContext);
|
|
116
|
-
|
|
117
|
-
if (metastatementVerified) {
|
|
118
|
-
return true;
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
metastatementVerified = true; ///
|
|
123
|
-
|
|
124
|
-
if (metastatementVerified) {
|
|
125
|
-
localContext.debug(`...verified the '${metastatementString}' metastatement.`, metastatementNode);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
return metastatementVerified;
|
|
129
|
-
}
|
|
130
|
-
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import verifyMetastatement from "../../verify/metastatement";
|
|
4
|
-
|
|
5
|
-
import { nodeQuery } from "../../utilities/query";
|
|
6
|
-
|
|
7
|
-
const metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!");
|
|
8
|
-
|
|
9
|
-
export default function verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext) {
|
|
10
|
-
let unqualifiedMetastatementVerified = false;
|
|
11
|
-
|
|
12
|
-
const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
|
|
13
|
-
unqualifiedMetastatementString = localContext.nodeAsString(unqualifiedMetastatementNode);
|
|
14
|
-
|
|
15
|
-
localContext.trace(`Verifying the '${unqualifiedMetastatementString}' unqualified metastatement...`, unqualifiedMetastatementNode);
|
|
16
|
-
|
|
17
|
-
if (derived) {
|
|
18
|
-
const matchesMetastatementNode = localContext.matchMetastatementNode(metastatementNode);
|
|
19
|
-
|
|
20
|
-
unqualifiedMetastatementVerified = matchesMetastatementNode; ///
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (!unqualifiedMetastatementVerified) {
|
|
24
|
-
const metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived, localContext);
|
|
25
|
-
|
|
26
|
-
unqualifiedMetastatementVerified = metastatementVerified; ///
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
if (unqualifiedMetastatementVerified) {
|
|
30
|
-
localContext.debug(`...verified the '${unqualifiedMetastatementString}' unqualified metastatement.`, unqualifiedMetastatementNode);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return unqualifiedMetastatementVerified;
|
|
34
|
-
}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import metaLevelNodeVerifier from "../verifier/node/metaLevel";
|
|
4
|
-
|
|
5
|
-
import { CONTAINED } from "../constants";
|
|
6
|
-
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
7
|
-
import { isMetastatementNegated } from "../utilities/verify";
|
|
8
|
-
|
|
9
|
-
const termNodeQuery = nodeQuery("/metastatement/term!"),
|
|
10
|
-
operatorTerminalNodesQuery = nodesQuery("/metastatement/@operator"),
|
|
11
|
-
metastatementTermNodesQuery = nodesQuery("/metastatement/metastatement//term");
|
|
12
|
-
|
|
13
|
-
export default function verifyMetastatementAsContainedAssertion(metastatementNode, assignments, derived, localContext) {
|
|
14
|
-
let metastatementVerifiedAsContainedAssertion;
|
|
15
|
-
|
|
16
|
-
const metastatementContainedAssertion = isMetastatementContainedAssertion(metastatementNode);
|
|
17
|
-
|
|
18
|
-
if (metastatementContainedAssertion) {
|
|
19
|
-
const metastatementString = localContext.nodeAsString(metastatementNode);
|
|
20
|
-
|
|
21
|
-
localContext.trace(`Verifying the '${metastatementString}' metastatement as a contained assertion...`, metastatementNode);
|
|
22
|
-
|
|
23
|
-
const metastatementFunctions = [
|
|
24
|
-
verifyMetastatementAsDerivedContainedAssertion,
|
|
25
|
-
verifyMetastatementAsStatedContainedAssertion
|
|
26
|
-
];
|
|
27
|
-
|
|
28
|
-
metastatementVerifiedAsContainedAssertion = metastatementFunctions.some((metastatementFunction) => {
|
|
29
|
-
const metastatementVerifiedAsContainedAssertion = metastatementFunction(metastatementNode, assignments, derived, localContext);
|
|
30
|
-
|
|
31
|
-
if (metastatementVerifiedAsContainedAssertion) {
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
if (metastatementVerifiedAsContainedAssertion) {
|
|
37
|
-
localContext.debug(`...verified the '${metastatementString}' metastatement as a contained assertion.`, metastatementNode);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return metastatementVerifiedAsContainedAssertion;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function verifyMetastatementAsDerivedContainedAssertion(metastatementNode, assignments, derived, localContext) {
|
|
45
|
-
let metastatementVerifiedAsDefinedContainedAssertion = false;
|
|
46
|
-
|
|
47
|
-
if (derived) {
|
|
48
|
-
const metastatementString = localContext.nodeAsString(metastatementNode);
|
|
49
|
-
|
|
50
|
-
localContext.trace(`Verifying the derived '${metastatementString}' metastatement as a contained assertion...`, metastatementNode);
|
|
51
|
-
|
|
52
|
-
const metastatementNegated = isMetastatementNegated(metastatementNode),
|
|
53
|
-
negated = metastatementNegated,
|
|
54
|
-
termNode = termNodeQuery(metastatementNode),
|
|
55
|
-
metastatementTermNodes = metastatementTermNodesQuery(metastatementNode),
|
|
56
|
-
termNodeMatchesMetaArgumentTermNode = metastatementTermNodes.some((metastatementTermNode) => {
|
|
57
|
-
const termNodeMatchesMetaArgumentTermNode = termNode.match(metastatementTermNode);
|
|
58
|
-
|
|
59
|
-
if (termNodeMatchesMetaArgumentTermNode) {
|
|
60
|
-
return true;
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
if (!negated) {
|
|
65
|
-
if (termNodeMatchesMetaArgumentTermNode) {
|
|
66
|
-
metastatementVerifiedAsDefinedContainedAssertion = true;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (negated) {
|
|
71
|
-
if (!termNodeMatchesMetaArgumentTermNode) {
|
|
72
|
-
metastatementVerifiedAsDefinedContainedAssertion = true;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
if (metastatementVerifiedAsDefinedContainedAssertion) {
|
|
77
|
-
localContext.debug(`...verified the derived '${metastatementString}' metastatement as a contained assertion.`, metastatementNode);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return metastatementVerifiedAsDefinedContainedAssertion;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
function verifyMetastatementAsStatedContainedAssertion(metastatementNode, assignments, derived, localContext) {
|
|
85
|
-
let metastatementVerifiedAsStatedContainedAssertion = false;
|
|
86
|
-
|
|
87
|
-
if (!derived) {
|
|
88
|
-
const metastatementString = localContext.nodeAsString(metastatementNode);
|
|
89
|
-
|
|
90
|
-
localContext.trace(`Verifying the stated '${metastatementString}' metastatement as a contained assertion...`, metastatementNode);
|
|
91
|
-
|
|
92
|
-
const intrinsicLevel = localContext.isIntrinsicLevel();
|
|
93
|
-
|
|
94
|
-
if (intrinsicLevel) {
|
|
95
|
-
localContext.debug(`The stated '${metastatementString}' metastatement as a contained assertion cannot be verified at intrinsic level.`, metastatementNode);
|
|
96
|
-
} else {
|
|
97
|
-
const nonTerminalNode = metastatementNode, ///
|
|
98
|
-
nonTerminalNodeVerified = metaLevelNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localContext, () => {
|
|
99
|
-
const verifiedAhead = true;
|
|
100
|
-
|
|
101
|
-
return verifiedAhead;
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
metastatementVerifiedAsStatedContainedAssertion = nonTerminalNodeVerified; ///
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
if (metastatementVerifiedAsStatedContainedAssertion) {
|
|
108
|
-
localContext.debug(`...verified the stated '${metastatementString}' metastatement as a contained assertion.`, metastatementNode);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return metastatementVerifiedAsStatedContainedAssertion;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export function isMetastatementContainedAssertion(metastatementNode) {
|
|
116
|
-
const operatorTerminalNodes = operatorTerminalNodesQuery(metastatementNode),
|
|
117
|
-
metastatementContainedAssertion = operatorTerminalNodes.some((operatorTerminalNode) => {
|
|
118
|
-
const content = operatorTerminalNode.getContent(),
|
|
119
|
-
contentContained = (content === CONTAINED);
|
|
120
|
-
|
|
121
|
-
if (contentContained) {
|
|
122
|
-
return true;
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
return metastatementContainedAssertion;
|
|
127
|
-
}
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import verifyTerm from "./term";
|
|
4
|
-
import metaLevelNodeVerifier from "../verifier/node/metaLevel";
|
|
5
|
-
|
|
6
|
-
import { first } from "../utilities/array";
|
|
7
|
-
import { DEFINED } from "../constants";
|
|
8
|
-
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
9
|
-
import { isMetastatementNegated } from "../utilities/verify";
|
|
10
|
-
|
|
11
|
-
const termNodeQuery = nodeQuery("/metastatement/term!"),
|
|
12
|
-
variableNodeQuery = nodeQuery("/metastatement/term/variable!"),
|
|
13
|
-
operatorTerminalNodesQuery = nodesQuery("/metastatement/@operator");
|
|
14
|
-
|
|
15
|
-
export default function verifyMetastatementAsDefinedAssertion(metastatementNode, assignments, derived, localContext) {
|
|
16
|
-
let metastatementVerifiedAsDefinedAssertion = false;
|
|
17
|
-
|
|
18
|
-
const metastatementDefinedAssertion = isMetastatementDefinedAssertion(metastatementNode);
|
|
19
|
-
|
|
20
|
-
if (metastatementDefinedAssertion) {
|
|
21
|
-
const metastatementString = localContext.nodeAsString(metastatementNode);
|
|
22
|
-
|
|
23
|
-
localContext.trace(`Verifying the '${metastatementString}' metastatement as a defined assertion...`, metastatementNode);
|
|
24
|
-
|
|
25
|
-
const definedAssertionFunctions = [
|
|
26
|
-
verifyDerivedMetastatementAsDefinedAssertion,
|
|
27
|
-
verifyStatedMetastatementAsDefinedAssertion
|
|
28
|
-
];
|
|
29
|
-
|
|
30
|
-
metastatementVerifiedAsDefinedAssertion = definedAssertionFunctions.some((definedAssertionFunction) => {
|
|
31
|
-
const metastatementVerifiedAsDefinedAssertion = definedAssertionFunction(metastatementNode, assignments, derived, localContext);
|
|
32
|
-
|
|
33
|
-
if (metastatementVerifiedAsDefinedAssertion) {
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
if (metastatementVerifiedAsDefinedAssertion) {
|
|
39
|
-
localContext.debug(`...verified the '${metastatementString}' metastatement as a defined assertion.`, metastatementNode);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return metastatementVerifiedAsDefinedAssertion;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function verifyDerivedMetastatementAsDefinedAssertion(metastatementNode, assignments, derived, localContext) {
|
|
47
|
-
let derivedMetastatementVerifiedAsDefeindAssertion = false;
|
|
48
|
-
|
|
49
|
-
if (derived) {
|
|
50
|
-
const metastatementString = localContext.nodeAsString(metastatementNode);
|
|
51
|
-
|
|
52
|
-
localContext.trace(`Verifying the derived '${metastatementString}' metastatement as a defined assertion...`, metastatementNode);
|
|
53
|
-
|
|
54
|
-
const metastatementNegated = isMetastatementNegated(metastatementNode),
|
|
55
|
-
variableNode = variableNodeQuery(metastatementNode),
|
|
56
|
-
termNode = termNodeQuery(metastatementNode);
|
|
57
|
-
|
|
58
|
-
if (false) {
|
|
59
|
-
///
|
|
60
|
-
} else if (variableNode !== null) {
|
|
61
|
-
const variable = localContext.findVariableByVariableNode(variableNode);
|
|
62
|
-
|
|
63
|
-
if (variable !== null) {
|
|
64
|
-
const variableDefined = localContext.isVariableDefined(variable);
|
|
65
|
-
|
|
66
|
-
if (!metastatementNegated) {
|
|
67
|
-
if (variableDefined) {
|
|
68
|
-
derivedMetastatementVerifiedAsDefeindAssertion = true;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (metastatementNegated) {
|
|
73
|
-
if (!variableDefined) {
|
|
74
|
-
derivedMetastatementVerifiedAsDefeindAssertion = true;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
} else if (termNode !== null) {
|
|
79
|
-
const terms = [],
|
|
80
|
-
termVerified = verifyTerm(termNode, terms, localContext, () => {
|
|
81
|
-
const verifiedAhead = true;
|
|
82
|
-
|
|
83
|
-
return verifiedAhead;
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
if (termVerified) {
|
|
87
|
-
const firstTerm = first(terms),
|
|
88
|
-
term = firstTerm, ///
|
|
89
|
-
termGrounded = localContext.isTermGrounded(term);
|
|
90
|
-
|
|
91
|
-
if (!metastatementNegated) {
|
|
92
|
-
if (termGrounded) {
|
|
93
|
-
derivedMetastatementVerifiedAsDefeindAssertion = true;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (metastatementNegated) {
|
|
98
|
-
if (!termGrounded) {
|
|
99
|
-
derivedMetastatementVerifiedAsDefeindAssertion = true;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
if (derivedMetastatementVerifiedAsDefeindAssertion) {
|
|
106
|
-
localContext.debug(`...verified the derived '${metastatementString}' metastatement as a defined assertion.`, metastatementNode);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
return derivedMetastatementVerifiedAsDefeindAssertion;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
function verifyStatedMetastatementAsDefinedAssertion(metastatementNode, assignments, derived, localContext) {
|
|
114
|
-
let statedMetastatementVerifiedAsDefinedAssertion = false;
|
|
115
|
-
|
|
116
|
-
if (!derived) {
|
|
117
|
-
const metastatementString = localContext.nodeAsString(metastatementNode);
|
|
118
|
-
|
|
119
|
-
localContext.trace(`Verifying the stated '${metastatementString}' metastatement as a defined assertion...`, metastatementNode);
|
|
120
|
-
|
|
121
|
-
const intrinsicLevel = localContext.isIntrinsicLevel();
|
|
122
|
-
|
|
123
|
-
if (intrinsicLevel) {
|
|
124
|
-
localContext.debug(`The stated '${metastatementString}' metastatement as a defined assertion cannot be verified at intrinsic level.`, metastatementNode);
|
|
125
|
-
} else {
|
|
126
|
-
const nonTerminalNode = metastatementNode, ///
|
|
127
|
-
nonTerminalNodeVerified = metaLevelNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localContext, () => {
|
|
128
|
-
const verifiedAhead = true;
|
|
129
|
-
|
|
130
|
-
return verifiedAhead;
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
statedMetastatementVerifiedAsDefinedAssertion = nonTerminalNodeVerified; ///
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
if (statedMetastatementVerifiedAsDefinedAssertion) {
|
|
137
|
-
localContext.debug(`...verified the stated '${metastatementString}' metastatement as a defined assertion.`, metastatementNode);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
return statedMetastatementVerifiedAsDefinedAssertion;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
export function isMetastatementDefinedAssertion(metastatementNode) {
|
|
145
|
-
const operatorTerminalNodes = operatorTerminalNodesQuery(metastatementNode),
|
|
146
|
-
metastatementDefinedAssertion = operatorTerminalNodes.some((operatorTerminalNode) => {
|
|
147
|
-
const content = operatorTerminalNode.getContent(),
|
|
148
|
-
contentDefined = (content === DEFINED);
|
|
149
|
-
|
|
150
|
-
if (contentDefined) {
|
|
151
|
-
return true;
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
return metastatementDefinedAssertion;
|
|
156
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import MetastatementForMetavariableSubstitution from "../substitution/metastatementForMetavariable";
|
|
4
|
-
|
|
5
|
-
export default function verifyMetavariableAgainstMetastatement(metavariableNode, metastatementNode, substitutions, verifyAhead) {
|
|
6
|
-
let metavariableVerifiedAgainstMetastatement = false;
|
|
7
|
-
|
|
8
|
-
const substitution = substitutions.find((substitution) => {
|
|
9
|
-
const substitutionMatchesMetavariableNodeA = substitution.matchMetavariableNode(metavariableNode);
|
|
10
|
-
|
|
11
|
-
if (substitutionMatchesMetavariableNodeA) {
|
|
12
|
-
return true;
|
|
13
|
-
}
|
|
14
|
-
}) || null;
|
|
15
|
-
|
|
16
|
-
if (substitution !== null) {
|
|
17
|
-
const metastatementNodeMatches = substitution.matchMetastatementNode(metastatementNode);
|
|
18
|
-
|
|
19
|
-
if (metastatementNodeMatches) {
|
|
20
|
-
const verifiedAhead = verifyAhead();
|
|
21
|
-
|
|
22
|
-
metavariableVerifiedAgainstMetastatement = verifiedAhead; ///
|
|
23
|
-
}
|
|
24
|
-
} else {
|
|
25
|
-
let verifiedAhead;
|
|
26
|
-
|
|
27
|
-
const metastatementForMetavariableSubstitution = MetastatementForMetavariableSubstitution.fromMetavariableNodeAndMetastatementNode(metavariableNode, metastatementNode),
|
|
28
|
-
substitution = metastatementForMetavariableSubstitution; ///
|
|
29
|
-
|
|
30
|
-
substitutions.push(substitution);
|
|
31
|
-
|
|
32
|
-
verifiedAhead = verifyAhead();
|
|
33
|
-
|
|
34
|
-
if (!verifiedAhead) {
|
|
35
|
-
substitutions.pop();
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
metavariableVerifiedAgainstMetastatement = verifiedAhead; ///
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return metavariableVerifiedAgainstMetastatement;
|
|
42
|
-
}
|
|
File without changes
|