occam-verify-cli 0.0.921 → 0.0.923
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/axiomLemmaTheoremConjecture.js +3 -4
- package/lib/conclusion.js +13 -43
- package/lib/constants.js +1 -5
- package/lib/context/local.js +386 -0
- package/lib/declaration.js +15 -15
- package/lib/metaLemmaMetatheorem.js +59 -59
- package/lib/mixins/context.js +17 -13
- package/lib/mixins/nodesVerifier/metaLevel.js +6 -6
- package/lib/premise.js +16 -94
- 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/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 +3 -3
- package/lib/verify/conclusion.js +10 -11
- package/lib/verify/conjecture.js +3 -3
- package/lib/verify/declaration.js +6 -6
- package/lib/verify/lemma.js +3 -3
- package/lib/verify/metaLemma.js +13 -13
- package/lib/verify/metastatement.js +64 -64
- package/lib/verify/metatheorem.js +13 -13
- package/lib/verify/premise.js +11 -30
- package/lib/verify/proof.js +3 -4
- package/lib/verify/proofStep.js +5 -5
- package/lib/verify/rule.js +11 -11
- package/lib/verify/statement/qualified.js +35 -9
- package/lib/verify/statement/unqualified.js +1 -1
- package/lib/verify/subproof.js +3 -4
- package/lib/verify/supposition.js +3 -3
- package/lib/verify/termAsConstructor.js +3 -3
- package/lib/verify/theorem.js +3 -3
- package/package.json +4 -4
- package/src/axiomLemmaTheoremConjecture.js +2 -4
- package/src/conclusion.js +15 -54
- package/src/constants.js +0 -1
- package/src/context/{local/intrinsicLevel.js → local.js} +182 -97
- package/src/declaration.js +19 -19
- package/src/metaLemmaMetatheorem.js +58 -58
- package/src/mixins/context.js +12 -9
- package/src/mixins/nodesVerifier/metaLevel.js +8 -8
- package/src/premise.js +25 -143
- 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/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 +3 -4
- package/src/verify/conclusion.js +9 -13
- package/src/verify/conjecture.js +3 -4
- package/src/verify/declaration.js +7 -7
- package/src/verify/lemma.js +3 -4
- package/src/verify/metaLemma.js +24 -25
- package/src/verify/metastatement.js +64 -64
- package/src/verify/metatheorem.js +23 -24
- package/src/verify/premise.js +14 -46
- package/src/verify/proof.js +2 -4
- package/src/verify/proofStep.js +1 -1
- package/src/verify/rule.js +11 -12
- package/src/verify/statement/qualified.js +43 -9
- package/src/verify/statement/unqualified.js +1 -1
- package/src/verify/subproof.js +2 -4
- package/src/verify/supposition.js +1 -1
- package/src/verify/termAsConstructor.js +3 -4
- package/src/verify/theorem.js +3 -4
- package/lib/context/local/intrinsicLevel.js +0 -326
- package/lib/context/local/metaLevel.js +0 -282
- package/lib/metaConsequent.js +0 -108
- 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 -35
- package/lib/verify/metaSupposition.js +0 -61
- package/lib/verify/metaSuppositions.js +0 -28
- package/lib/verify/metaproof.js +0 -32
- 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/src/context/local/metaLevel.js +0 -191
- package/src/metaConsequent.js +0 -83
- 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 -34
- package/src/verify/metaSupposition.js +0 -78
- package/src/verify/metaSuppositions.js +0 -17
- package/src/verify/metaproof.js +0 -30
- 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,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import MetaLevelLocalContext from "../context/local/metaLevel";
|
|
4
|
-
import verifyMetaSuppositions from "../verify/metaSuppositions";
|
|
5
|
-
import verifyMetaSubDerivation from "../verify/metaSubDerivation";
|
|
6
|
-
|
|
7
|
-
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
8
|
-
|
|
9
|
-
const metaSuppositionNodesQuery = nodesQuery("/metaSubproof/metaSupposition"),
|
|
10
|
-
metaSubDerivationNodeQuery = nodeQuery("/metaSubproof/metaSubDerivation");
|
|
11
|
-
|
|
12
|
-
export default function verifyMetaSubproof(metaSubproofNode, substitutions, localContext) {
|
|
13
|
-
let metaSubproofVerified = false;
|
|
14
|
-
|
|
15
|
-
const metaLevelLocalContext = MetaLevelLocalContext.fromLocalContext(localContext);
|
|
16
|
-
|
|
17
|
-
localContext = metaLevelLocalContext; ///
|
|
18
|
-
|
|
19
|
-
const metaSuppositions = [],
|
|
20
|
-
metaSuppositionNodes = metaSuppositionNodesQuery(metaSubproofNode),
|
|
21
|
-
metaSuppositionsVerified = verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, substitutions, localContext);
|
|
22
|
-
|
|
23
|
-
if (metaSuppositionsVerified) {
|
|
24
|
-
const metaSubDerivationNode = metaSubDerivationNodeQuery(metaSubproofNode),
|
|
25
|
-
metaSubDerivationVerified = verifyMetaSubDerivation(metaSubDerivationNode, substitutions, localContext);
|
|
26
|
-
|
|
27
|
-
if (metaSubDerivationVerified) {
|
|
28
|
-
metaSubproofVerified = true;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return metaSubproofVerified;
|
|
33
|
-
}
|
|
34
|
-
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import MetaproofStep from "../step/metaproof";
|
|
4
|
-
import MetaSupposition from "../metaSupposition";
|
|
5
|
-
import verifyUnqualifiedStatement from "./statement/unqualified";
|
|
6
|
-
import verifyUnqualifiedMetastatement from "../verify/metastatement/unqualified";
|
|
7
|
-
|
|
8
|
-
import { nodeQuery } from "../utilities/query";
|
|
9
|
-
import { assignAssignment } from "../utilities/assignments";
|
|
10
|
-
|
|
11
|
-
const statementNodeQuery = nodeQuery("/unqualifiedStatement/statement!"),
|
|
12
|
-
metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!"),
|
|
13
|
-
unqualifiedStatementNodeQuery = nodeQuery("/metaSupposition/unqualifiedStatement!"),
|
|
14
|
-
unqualifiedMetastatementNodeQuery = nodeQuery("/metaSupposition/unqualifiedMetastatement!");
|
|
15
|
-
|
|
16
|
-
export default function verifyMetaSupposition(metaSuppositionNode, metaSuppositions, localContext) {
|
|
17
|
-
let metaSuppositionVerified = false;
|
|
18
|
-
|
|
19
|
-
const metaSuppositionString = localContext.nodeAsString(metaSuppositionNode);
|
|
20
|
-
|
|
21
|
-
localContext.trace(`Verifying the '${metaSuppositionString}' meta-supposition...`, metaSuppositionNode);
|
|
22
|
-
|
|
23
|
-
const unqualifiedStatementNode = unqualifiedStatementNodeQuery(metaSuppositionNode),
|
|
24
|
-
unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(metaSuppositionNode);
|
|
25
|
-
|
|
26
|
-
if (unqualifiedStatementNode !== null) {
|
|
27
|
-
const derived = false,
|
|
28
|
-
assignments = [],
|
|
29
|
-
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
|
|
30
|
-
|
|
31
|
-
if (unqualifiedStatementVerified) {
|
|
32
|
-
const assignmentAssigned = assignAssignment(assignments, localContext);
|
|
33
|
-
|
|
34
|
-
metaSuppositionVerified = assignmentAssigned; ///
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if (unqualifiedMetastatementNode !== null) {
|
|
39
|
-
const derived = false,
|
|
40
|
-
assignments = [],
|
|
41
|
-
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext);
|
|
42
|
-
|
|
43
|
-
if (unqualifiedMetastatementVerified) {
|
|
44
|
-
const assignmentAssigned = assignAssignment(assignments, localContext);
|
|
45
|
-
|
|
46
|
-
metaSuppositionVerified = assignmentAssigned; ///
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (metaSuppositionVerified) {
|
|
51
|
-
let metaSupposition,
|
|
52
|
-
metaproofStep;
|
|
53
|
-
|
|
54
|
-
if (unqualifiedStatementNode !== null) {
|
|
55
|
-
const statementNode = statementNodeQuery(unqualifiedStatementNode);
|
|
56
|
-
|
|
57
|
-
metaSupposition = MetaSupposition.fromStatementNode(statementNode);
|
|
58
|
-
|
|
59
|
-
metaproofStep = MetaproofStep.fromMetastatementNode(statementNode);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
if (unqualifiedMetastatementNode !== null) {
|
|
63
|
-
const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode);
|
|
64
|
-
|
|
65
|
-
metaSupposition = MetaSupposition.fromMetastatementNode(metastatementNode);
|
|
66
|
-
|
|
67
|
-
metaproofStep = MetaproofStep.fromMetastatementNode(metastatementNode);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
metaSuppositions.push(metaSupposition);
|
|
71
|
-
|
|
72
|
-
localContext.addMetaproofStep(metaproofStep);
|
|
73
|
-
|
|
74
|
-
localContext.debug(`...verified the '${metaSuppositionString}' meta-supposition.`, metaSuppositionNode);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return metaSuppositionVerified;
|
|
78
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import verifyMetaSupposition from "../verify/metaSupposition";
|
|
4
|
-
|
|
5
|
-
export default function verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, substitutions, localContext) {
|
|
6
|
-
let metaSuppositionsVerified;
|
|
7
|
-
|
|
8
|
-
metaSuppositionsVerified = metaSuppositionNodes.every((metaSuppositionNode) => {
|
|
9
|
-
const metaSuppositionVerified = verifyMetaSupposition(metaSuppositionNode, metaSuppositions, localContext);
|
|
10
|
-
|
|
11
|
-
if (metaSuppositionVerified) {
|
|
12
|
-
return true;
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
return metaSuppositionsVerified;
|
|
17
|
-
}
|
package/src/verify/metaproof.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import verifyMetaDerivation from "../verify/metaDerivation";
|
|
4
|
-
import MetaLevelLocalContext from "../context/local/metaLevel";
|
|
5
|
-
|
|
6
|
-
import { nodeQuery } from "../utilities/query";
|
|
7
|
-
|
|
8
|
-
const metaDerivationNodeQuery = nodeQuery("/metaproof/metaDerivation!");
|
|
9
|
-
|
|
10
|
-
export default function verifyMetaproof(metaproofNode, metastatementNode, substitutions, localContext) {
|
|
11
|
-
let metaproofVerified = false;
|
|
12
|
-
|
|
13
|
-
const metaLevelLocalContext = MetaLevelLocalContext.fromLocalContext(localContext);
|
|
14
|
-
|
|
15
|
-
localContext = metaLevelLocalContext; ///
|
|
16
|
-
|
|
17
|
-
const metaDerivationNode = metaDerivationNodeQuery(metaproofNode),
|
|
18
|
-
metaDerivationVerified = verifyMetaDerivation(metaDerivationNode, substitutions, localContext);
|
|
19
|
-
|
|
20
|
-
if (metaDerivationVerified) {
|
|
21
|
-
const lastMetaproofStep = localContext.getLastMetaproofStep(),
|
|
22
|
-
lastMetaproofStepMetastatementNode = lastMetaproofStep.getMetastatementNode(),
|
|
23
|
-
lastMetastatementNode = lastMetaproofStepMetastatementNode, ///
|
|
24
|
-
lastMetastatementNodeMatchesMetastatementNode = lastMetastatementNode.match(metastatementNode);
|
|
25
|
-
|
|
26
|
-
metaproofVerified = lastMetastatementNodeMatchesMetastatementNode; ///
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return metaproofVerified;
|
|
30
|
-
}
|
|
@@ -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
|
-
}
|