occam-verify-cli 0.0.913 → 0.0.915
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/frameAssertion.js +4 -4
- package/lib/axiomLemmaTheoremConjecture.js +4 -3
- package/lib/conclusion.js +5 -5
- package/lib/context/file.js +3 -3
- package/lib/context/local/intrinsicLevel.js +326 -0
- package/lib/context/local/metaLevel.js +290 -0
- package/lib/metaConsequent.js +4 -4
- package/lib/metaLemmaMetatheorem.js +11 -11
- package/lib/metaSupposition.js +7 -7
- package/lib/metavariable.js +5 -5
- package/lib/premise.js +12 -12
- package/lib/rule.js +12 -12
- package/lib/verifier/node/metaLevel.js +214 -0
- package/lib/verifier/node/statementAsCombinator.js +9 -9
- package/lib/verifier/node/termAsConstructor.js +7 -7
- package/lib/verify/axiom.js +3 -3
- package/lib/verify/conclusion.js +7 -7
- package/lib/verify/conjecture.js +3 -3
- package/lib/verify/containedAssertion.js +23 -4
- package/lib/verify/declaration.js +15 -15
- package/lib/verify/definedAssertion.js +18 -4
- package/lib/verify/derivation.js +3 -3
- package/lib/verify/frame.js +16 -16
- package/lib/verify/frameAssertion.js +33 -33
- package/lib/verify/lemma.js +3 -3
- package/lib/verify/metaConsequent.js +7 -7
- package/lib/verify/metaDerivation.js +3 -3
- package/lib/verify/metaLemma.js +6 -6
- package/lib/verify/metaSubDerivation.js +3 -3
- package/lib/verify/metaSubproof.js +7 -6
- package/lib/verify/metaSupposition.js +9 -9
- package/lib/verify/metaSuppositions.js +3 -3
- package/lib/verify/metaproof.js +7 -6
- package/lib/verify/metaproofStep.js +23 -23
- package/lib/verify/metastatement/qualified.js +22 -22
- package/lib/verify/metastatement/unqualified.js +7 -7
- package/lib/verify/metastatement.js +26 -26
- package/lib/verify/metatheorem.js +6 -6
- package/lib/verify/metavariable.js +6 -6
- package/lib/verify/premise.js +9 -9
- package/lib/verify/premises.js +3 -3
- package/lib/verify/proof.js +4 -3
- package/lib/verify/rule.js +6 -6
- package/lib/verify/ruleDerivation.js +3 -3
- package/lib/verify/ruleProof.js +7 -6
- package/lib/verify/ruleProofStep.js +26 -25
- package/lib/verify/ruleSubDerivation.js +3 -3
- package/lib/verify/ruleSubproof.js +7 -6
- package/lib/verify/statement.js +4 -17
- package/lib/verify/subDerivation.js +3 -3
- package/lib/verify/subproof.js +4 -3
- package/lib/verify/termAsConstructor.js +3 -3
- package/lib/verify/theorem.js +4 -4
- package/package.json +2 -2
- package/src/assignment/frameAssertion.js +5 -5
- package/src/axiomLemmaTheoremConjecture.js +4 -2
- package/src/conclusion.js +7 -7
- package/src/context/file.js +2 -2
- package/src/context/{local.js → local/intrinsicLevel.js} +25 -20
- package/src/context/{localMeta.js → local/metaLevel.js} +21 -16
- package/src/metaConsequent.js +7 -7
- package/src/metaLemmaMetatheorem.js +11 -11
- package/src/metaSupposition.js +13 -13
- package/src/metavariable.js +6 -7
- package/src/premise.js +26 -26
- package/src/rule.js +12 -12
- package/src/verifier/node/{metastatement.js → metaLevel.js} +19 -21
- package/src/verifier/node/statementAsCombinator.js +8 -8
- package/src/verifier/node/termAsConstructor.js +6 -6
- package/src/verify/axiom.js +4 -3
- package/src/verify/conclusion.js +5 -6
- package/src/verify/conjecture.js +4 -3
- package/src/verify/containedAssertion.js +24 -3
- package/src/verify/declaration.js +15 -15
- package/src/verify/definedAssertion.js +23 -3
- package/src/verify/derivation.js +2 -2
- package/src/verify/frame.js +15 -15
- package/src/verify/frameAssertion.js +33 -33
- package/src/verify/lemma.js +4 -3
- package/src/verify/metaConsequent.js +5 -6
- package/src/verify/metaDerivation.js +2 -2
- package/src/verify/metaLemma.js +8 -7
- package/src/verify/metaSubDerivation.js +2 -2
- package/src/verify/metaSubproof.js +7 -5
- package/src/verify/metaSupposition.js +7 -8
- package/src/verify/metaSuppositions.js +2 -2
- package/src/verify/metaproof.js +7 -5
- package/src/verify/metaproofStep.js +21 -25
- package/src/verify/metastatement/qualified.js +24 -24
- package/src/verify/metastatement/unqualified.js +6 -6
- package/src/verify/metastatement.js +25 -25
- package/src/verify/metatheorem.js +8 -7
- package/src/verify/metavariable.js +5 -5
- package/src/verify/premise.js +7 -8
- package/src/verify/premises.js +2 -2
- package/src/verify/proof.js +4 -2
- package/src/verify/rule.js +8 -7
- package/src/verify/ruleDerivation.js +2 -2
- package/src/verify/ruleProof.js +7 -5
- package/src/verify/ruleProofStep.js +22 -25
- package/src/verify/ruleSubDerivation.js +2 -2
- package/src/verify/ruleSubproof.js +7 -5
- package/src/verify/statement.js +2 -22
- package/src/verify/subDerivation.js +2 -2
- package/src/verify/subproof.js +4 -2
- package/src/verify/termAsConstructor.js +4 -3
- package/src/verify/theorem.js +5 -4
- package/lib/context/local.js +0 -320
- package/lib/context/localMeta.js +0 -284
- package/lib/verifier/node/metastatement.js +0 -214
package/src/verify/lemma.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import Lemma from "../lemma";
|
|
4
4
|
import verifyProof from "../verify/proof";
|
|
5
|
-
import LocalContext from "../context/local";
|
|
6
5
|
import verifyLabels from "../verify/labels";
|
|
7
6
|
import verifyConsequent from "../verify/consequent";
|
|
8
7
|
import verifySuppositions from "../verify/suppositions";
|
|
8
|
+
import IntrinsicLevelLocalContext from "../context/local/intrinsicLevel";
|
|
9
9
|
|
|
10
10
|
import { first } from "../utilities/array";
|
|
11
11
|
import { EMPTY_STRING } from "../constants";
|
|
@@ -19,9 +19,10 @@ const proofNodeQuery = nodeQuery("/lemma/proof!"),
|
|
|
19
19
|
export default function verifyLemma(lemmaNode, fileContext) {
|
|
20
20
|
let lemmaVerified = false;
|
|
21
21
|
|
|
22
|
-
const
|
|
22
|
+
const intrinsicLevelLocalContext = IntrinsicLevelLocalContext.fromFileContext(fileContext),
|
|
23
|
+
labelNodes = labelNodesQuery(lemmaNode),
|
|
23
24
|
labelsString = fileContext.nodesAsString(labelNodes),
|
|
24
|
-
localContext =
|
|
25
|
+
localContext = intrinsicLevelLocalContext; ///
|
|
25
26
|
|
|
26
27
|
(labelsString === EMPTY_STRING) ?
|
|
27
28
|
fileContext.trace(`Verifying a lemma...`, lemmaNode) :
|
|
@@ -11,12 +11,12 @@ const statementNodeQuery = nodeQuery("/unqualifiedStatement/statement!"),
|
|
|
11
11
|
unqualifiedStatementNodeQuery = nodeQuery("/metaConsequent/unqualifiedStatement!"),
|
|
12
12
|
unqualifiedMetastatementNodeQuery = nodeQuery("/metaConsequent/unqualifiedMetastatement!");
|
|
13
13
|
|
|
14
|
-
export default function verifyMetaConsequent(metaConsequentNode, metaConsequents, substitutions,
|
|
14
|
+
export default function verifyMetaConsequent(metaConsequentNode, metaConsequents, substitutions, localContext) {
|
|
15
15
|
let metaConsequentVerified = false;
|
|
16
16
|
|
|
17
|
-
const metaConsequentString =
|
|
17
|
+
const metaConsequentString = localContext.nodeAsString(metaConsequentNode);
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
localContext.trace(`Verifying the '${metaConsequentString}' meta-consequent...`, metaConsequentNode);
|
|
20
20
|
|
|
21
21
|
const unqualifiedStatementNode = unqualifiedStatementNodeQuery(metaConsequentNode),
|
|
22
22
|
unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(metaConsequentNode);
|
|
@@ -24,7 +24,6 @@ export default function verifyMetaConsequent(metaConsequentNode, metaConsequents
|
|
|
24
24
|
if (unqualifiedStatementNode !== null) {
|
|
25
25
|
const derived = false,
|
|
26
26
|
assignments = [],
|
|
27
|
-
localContext = localMetaContext, ///
|
|
28
27
|
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
|
|
29
28
|
|
|
30
29
|
metaConsequentVerified = unqualifiedStatementVerified; ///
|
|
@@ -33,7 +32,7 @@ export default function verifyMetaConsequent(metaConsequentNode, metaConsequents
|
|
|
33
32
|
if (unqualifiedMetastatementNode !== null) {
|
|
34
33
|
const derived = false,
|
|
35
34
|
assignments = [],
|
|
36
|
-
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived,
|
|
35
|
+
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext);
|
|
37
36
|
|
|
38
37
|
metaConsequentVerified = unqualifiedMetastatementVerified; ///
|
|
39
38
|
}
|
|
@@ -55,7 +54,7 @@ export default function verifyMetaConsequent(metaConsequentNode, metaConsequents
|
|
|
55
54
|
|
|
56
55
|
metaConsequents.push(metaConsequent);
|
|
57
56
|
|
|
58
|
-
|
|
57
|
+
localContext.debug(`...verified the '${metaConsequentString}' meta-consequent.`, metaConsequentNode);
|
|
59
58
|
}
|
|
60
59
|
|
|
61
60
|
return metaConsequentVerified;
|
|
@@ -6,13 +6,13 @@ import { nodesQuery } from "../utilities/query";
|
|
|
6
6
|
|
|
7
7
|
const metaproofStepNodesQuery = nodesQuery("/metaDerivation/metaproofStep|lastMetaproofStep");
|
|
8
8
|
|
|
9
|
-
export default function verifyMetaDerivation(metaDerivationNode, substitutions,
|
|
9
|
+
export default function verifyMetaDerivation(metaDerivationNode, substitutions, localContext) {
|
|
10
10
|
let metaDerivationVerified;
|
|
11
11
|
|
|
12
12
|
const metaproofStepNodes = metaproofStepNodesQuery(metaDerivationNode);
|
|
13
13
|
|
|
14
14
|
metaDerivationVerified = metaproofStepNodes.every((metaproofStepNode) => {
|
|
15
|
-
const metaproofStepVerified = verifyMetaproofStep(metaproofStepNode, substitutions,
|
|
15
|
+
const metaproofStepVerified = verifyMetaproofStep(metaproofStepNode, substitutions, localContext);
|
|
16
16
|
|
|
17
17
|
if (metaproofStepVerified) {
|
|
18
18
|
return true;
|
package/src/verify/metaLemma.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import MetaLemma from "../metaLemma";
|
|
4
4
|
import verifyLabels from "../verify/labels";
|
|
5
5
|
import verifyMetaproof from "../verify/metaproof";
|
|
6
|
-
import LocalMetaContext from "../context/localMeta";
|
|
7
6
|
import verifyMetaConsequent from "../verify/metaConsequent";
|
|
7
|
+
import MetaLevelLocalContext from "../context/local/metaLevel";
|
|
8
8
|
import verifyMetaSuppositions from "../verify/metaSuppositions";
|
|
9
9
|
|
|
10
10
|
import { first } from "../utilities/array";
|
|
@@ -20,8 +20,7 @@ export default function verifyMetaLemma(metaLemmaNode, fileContext) {
|
|
|
20
20
|
let metaLemmaVerified = false;
|
|
21
21
|
|
|
22
22
|
const labelNodes = labelNodesQuery(metaLemmaNode),
|
|
23
|
-
labelsString = fileContext.nodesAsString(labelNodes)
|
|
24
|
-
localMetaContext = LocalMetaContext.fromFileContext(fileContext);
|
|
23
|
+
labelsString = fileContext.nodesAsString(labelNodes);
|
|
25
24
|
|
|
26
25
|
(labelsString === EMPTY_STRING) ?
|
|
27
26
|
fileContext.trace(`Verifying a meta-lLemma...`, metaLemmaNode) :
|
|
@@ -31,21 +30,23 @@ export default function verifyMetaLemma(metaLemmaNode, fileContext) {
|
|
|
31
30
|
labelsVerified = verifyLabels(labelNodes, labels, fileContext);
|
|
32
31
|
|
|
33
32
|
if (labelsVerified) {
|
|
34
|
-
const
|
|
33
|
+
const metaLevelLocalContext = MetaLevelLocalContext.fromFileContext(fileContext),
|
|
34
|
+
localContext = metaLevelLocalContext, ///
|
|
35
|
+
substitutions = [],
|
|
35
36
|
metaSuppositions = [],
|
|
36
37
|
metaSuppositionNodes = metaSuppositionsNodeQuery(metaLemmaNode),
|
|
37
|
-
metaSuppositionsVerified = verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, substitutions,
|
|
38
|
+
metaSuppositionsVerified = verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, substitutions, localContext);
|
|
38
39
|
|
|
39
40
|
if (metaSuppositionsVerified) {
|
|
40
41
|
const metaConsequents = [],
|
|
41
42
|
metaConsequentNode = metaConsequentNodeQuery(metaLemmaNode),
|
|
42
|
-
metaConsequentVerified = verifyMetaConsequent(metaConsequentNode, metaConsequents, substitutions,
|
|
43
|
+
metaConsequentVerified = verifyMetaConsequent(metaConsequentNode, metaConsequents, substitutions, localContext);
|
|
43
44
|
|
|
44
45
|
if (metaConsequentVerified) {
|
|
45
46
|
const metaproofNode = metaproofNodeQuery(metaLemmaNode),
|
|
46
47
|
firstMetaConsequent = first(metaConsequents),
|
|
47
48
|
metaConsequent = firstMetaConsequent, ///
|
|
48
|
-
metaproofVerified = verifyMetaproof(metaproofNode, metaConsequent, substitutions,
|
|
49
|
+
metaproofVerified = verifyMetaproof(metaproofNode, metaConsequent, substitutions, localContext);
|
|
49
50
|
|
|
50
51
|
if (metaproofVerified) {
|
|
51
52
|
const metaLemma = MetaLemma.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, metaSuppositions, metaConsequent, substitutions, fileContext);
|
|
@@ -4,14 +4,14 @@ import { nodesQuery } from "../utilities/query";
|
|
|
4
4
|
|
|
5
5
|
const metaproofStepNodesQuery = nodesQuery("/metaSubDerivation/metaproofStep|lastMetaproofStep");
|
|
6
6
|
|
|
7
|
-
export default function verifyMetaSubDerivation(metaSubDerivationNode, substitutions,
|
|
7
|
+
export default function verifyMetaSubDerivation(metaSubDerivationNode, substitutions, localContext) {
|
|
8
8
|
let metaSubDerivationVerified;
|
|
9
9
|
|
|
10
10
|
const metaproofStepNodes = metaproofStepNodesQuery(metaSubDerivationNode);
|
|
11
11
|
|
|
12
12
|
metaSubDerivationVerified = metaproofStepNodes.every((metaproofStepNode) => {
|
|
13
13
|
const { verifyMetaproofStep } = verifyMetaSubDerivation,
|
|
14
|
-
metaproofStepVerified = verifyMetaproofStep(metaproofStepNode, substitutions,
|
|
14
|
+
metaproofStepVerified = verifyMetaproofStep(metaproofStepNode, substitutions, localContext);
|
|
15
15
|
|
|
16
16
|
if (metaproofStepVerified) {
|
|
17
17
|
return true;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import MetaLevelLocalContext from "../context/local/metaLevel";
|
|
4
4
|
import verifyMetaSuppositions from "../verify/metaSuppositions";
|
|
5
5
|
import verifyMetaSubDerivation from "../verify/metaSubDerivation";
|
|
6
6
|
|
|
@@ -9,18 +9,20 @@ import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
|
9
9
|
const suppositionNodesQuery = nodesQuery("/metaSubproof/supposition"),
|
|
10
10
|
metaSubDerivationNodeQuery = nodeQuery("/metaSubproof/metaSubDerivation");
|
|
11
11
|
|
|
12
|
-
export default function verifyMetaSubproof(metaSubproofNode, substitutions,
|
|
12
|
+
export default function verifyMetaSubproof(metaSubproofNode, substitutions, localContext) {
|
|
13
13
|
let metaSubproofVerified = false;
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
const metaLevelLocalContext = MetaLevelLocalContext.fromLocalContext(localContext);
|
|
16
|
+
|
|
17
|
+
localContext = metaLevelLocalContext; ///
|
|
16
18
|
|
|
17
19
|
const metaSuppositions = [],
|
|
18
20
|
suppositionNodes = suppositionNodesQuery(metaSubproofNode),
|
|
19
|
-
metaSuppositionsVerified = verifyMetaSuppositions(suppositionNodes, metaSuppositions,
|
|
21
|
+
metaSuppositionsVerified = verifyMetaSuppositions(suppositionNodes, metaSuppositions, localContext);
|
|
20
22
|
|
|
21
23
|
if (metaSuppositionsVerified) {
|
|
22
24
|
const metaSubDerivationNode = metaSubDerivationNodeQuery(metaSubproofNode),
|
|
23
|
-
metaSubDerivationVerified = verifyMetaSubDerivation(metaSubDerivationNode, substitutions,
|
|
25
|
+
metaSubDerivationVerified = verifyMetaSubDerivation(metaSubDerivationNode, substitutions, localContext);
|
|
24
26
|
|
|
25
27
|
if (metaSubDerivationVerified) {
|
|
26
28
|
metaSubproofVerified = true;
|
|
@@ -13,12 +13,12 @@ const statementNodeQuery = nodeQuery("/unqualifiedStatement/statement!"),
|
|
|
13
13
|
unqualifiedStatementNodeQuery = nodeQuery("/metaSupposition/unqualifiedStatement!"),
|
|
14
14
|
unqualifiedMetastatementNodeQuery = nodeQuery("/metaSupposition/unqualifiedMetastatement!");
|
|
15
15
|
|
|
16
|
-
export default function verifyMetaSupposition(metaSuppositionNode, metaSuppositions,
|
|
16
|
+
export default function verifyMetaSupposition(metaSuppositionNode, metaSuppositions, localContext) {
|
|
17
17
|
let metaSuppositionVerified = false;
|
|
18
18
|
|
|
19
|
-
const metaSuppositionString =
|
|
19
|
+
const metaSuppositionString = localContext.nodeAsString(metaSuppositionNode);
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
localContext.trace(`Verifying the '${metaSuppositionString}' meta-supposition...`, metaSuppositionNode);
|
|
22
22
|
|
|
23
23
|
const unqualifiedStatementNode = unqualifiedStatementNodeQuery(metaSuppositionNode),
|
|
24
24
|
unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(metaSuppositionNode);
|
|
@@ -26,7 +26,6 @@ export default function verifyMetaSupposition(metaSuppositionNode, metaSuppositi
|
|
|
26
26
|
if (unqualifiedStatementNode !== null) {
|
|
27
27
|
const derived = false,
|
|
28
28
|
assignments = [],
|
|
29
|
-
localContext = localMetaContext, ///
|
|
30
29
|
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
|
|
31
30
|
|
|
32
31
|
if (unqualifiedStatementVerified) {
|
|
@@ -39,10 +38,10 @@ export default function verifyMetaSupposition(metaSuppositionNode, metaSuppositi
|
|
|
39
38
|
if (unqualifiedMetastatementNode !== null) {
|
|
40
39
|
const derived = false,
|
|
41
40
|
assignments = [],
|
|
42
|
-
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived,
|
|
41
|
+
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext);
|
|
43
42
|
|
|
44
43
|
if (unqualifiedMetastatementVerified) {
|
|
45
|
-
const localContext =
|
|
44
|
+
const localContext = localContext, ///
|
|
46
45
|
assignmentAssigned = assignAssignment(assignments, localContext);
|
|
47
46
|
|
|
48
47
|
metaSuppositionVerified = assignmentAssigned; ///
|
|
@@ -71,9 +70,9 @@ export default function verifyMetaSupposition(metaSuppositionNode, metaSuppositi
|
|
|
71
70
|
|
|
72
71
|
metaSuppositions.push(metaSupposition);
|
|
73
72
|
|
|
74
|
-
|
|
73
|
+
localContext.addMetaproofStep(metaproofStep);
|
|
75
74
|
|
|
76
|
-
|
|
75
|
+
localContext.debug(`...verified the '${metaSuppositionString}' meta-supposition.`, metaSuppositionNode);
|
|
77
76
|
}
|
|
78
77
|
|
|
79
78
|
return metaSuppositionVerified;
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
import verifyMetaSupposition from "../verify/metaSupposition";
|
|
4
4
|
|
|
5
|
-
export default function verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, substitutions,
|
|
5
|
+
export default function verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, substitutions, localContext) {
|
|
6
6
|
let metaSuppositionsVerified;
|
|
7
7
|
|
|
8
8
|
metaSuppositionsVerified = metaSuppositionNodes.every((metaSuppositionNode) => {
|
|
9
|
-
const metaSuppositionVerified = verifyMetaSupposition(metaSuppositionNode, metaSuppositions,
|
|
9
|
+
const metaSuppositionVerified = verifyMetaSupposition(metaSuppositionNode, metaSuppositions, localContext);
|
|
10
10
|
|
|
11
11
|
if (metaSuppositionVerified) {
|
|
12
12
|
return true;
|
package/src/verify/metaproof.js
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import LocalMetaContext from "../context/localMeta";
|
|
4
3
|
import verifyMetaDerivation from "../verify/metaDerivation";
|
|
4
|
+
import MetaLevelLocalContext from "../context/local/metaLevel";
|
|
5
5
|
|
|
6
6
|
import { nodeQuery } from "../utilities/query";
|
|
7
7
|
|
|
8
8
|
const metaDerivationNodeQuery = nodeQuery("/metaproof/metaDerivation!");
|
|
9
9
|
|
|
10
|
-
export default function verifyMetaproof(metaproofNode, conclusion, substitutions,
|
|
10
|
+
export default function verifyMetaproof(metaproofNode, conclusion, substitutions, localContext) {
|
|
11
11
|
let metaproofVerified = false;
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
const metaLevelLocalContext = MetaLevelLocalContext.fromLocalContext(localContext);
|
|
14
|
+
|
|
15
|
+
localContext = metaLevelLocalContext; ///
|
|
14
16
|
|
|
15
17
|
const metaDerivationNode = metaDerivationNodeQuery(metaproofNode),
|
|
16
|
-
metaDerivationVerified = verifyMetaDerivation(metaDerivationNode, substitutions,
|
|
18
|
+
metaDerivationVerified = verifyMetaDerivation(metaDerivationNode, substitutions, localContext);
|
|
17
19
|
|
|
18
20
|
if (metaDerivationVerified) {
|
|
19
|
-
const lastMetaproofStep =
|
|
21
|
+
const lastMetaproofStep = localContext.getLastMetaproofStep(),
|
|
20
22
|
metaproofStep = lastMetaproofStep, ///
|
|
21
23
|
metastatementNode = metaproofStep.getMetastatementNode(),
|
|
22
24
|
conclusionMetastatementNode = conclusion.getMetastatementNode(),
|
|
@@ -18,7 +18,7 @@ const metaSubproofNodeQuery = nodeQuery("/metaproofStep|lastMetaproofStep/metaSu
|
|
|
18
18
|
qualifiedMetastatementNodeQuery = nodeQuery("/metaproofStep|lastMetaproofStep/qualifiedMetastatement!"),
|
|
19
19
|
unqualifiedMetastatementNodeQuery = nodeQuery("/metaproofStep|lastMetaproofStep/unqualifiedMetastatement!");
|
|
20
20
|
|
|
21
|
-
export default function verifyMetaproofStep(metaproofStepNode, substitutions,
|
|
21
|
+
export default function verifyMetaproofStep(metaproofStepNode, substitutions, localContext) {
|
|
22
22
|
let metaproofStepVerified = false;
|
|
23
23
|
|
|
24
24
|
const metaSubproofNode = metaSubproofNodeQuery(metaproofStepNode),
|
|
@@ -32,20 +32,19 @@ export default function verifyMetaproofStep(metaproofStepNode, substitutions, lo
|
|
|
32
32
|
} else if (metaSubproofNode !== null) {
|
|
33
33
|
let metaSubproofVerified;
|
|
34
34
|
|
|
35
|
-
metaSubproofVerified = verifyMetaSubproof(metaSubproofNode, substitutions,
|
|
35
|
+
metaSubproofVerified = verifyMetaSubproof(metaSubproofNode, substitutions, localContext);
|
|
36
36
|
|
|
37
37
|
if (metaSubproofVerified) {
|
|
38
38
|
const metaproofStep = MetaproofStep.fromMetaSubproofNode(metaSubproofNode);
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
localContext.addMetaproofStep(metaproofStep);
|
|
41
41
|
|
|
42
42
|
metaproofStepVerified = true;
|
|
43
43
|
}
|
|
44
44
|
} else if (qualifiedStatementNode !== null) {
|
|
45
45
|
let qualifiedStatementVerified;
|
|
46
46
|
|
|
47
|
-
const assignments = []
|
|
48
|
-
localContext = localMetaContext; ///
|
|
47
|
+
const assignments = []; ///
|
|
49
48
|
|
|
50
49
|
qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, assignments, localContext);
|
|
51
50
|
|
|
@@ -59,43 +58,41 @@ export default function verifyMetaproofStep(metaproofStepNode, substitutions, lo
|
|
|
59
58
|
const statementNode = statementNodeQuery(qualifiedStatementNode),
|
|
60
59
|
metaproofStep = MetaproofStep.fromStatementNode(statementNode);
|
|
61
60
|
|
|
62
|
-
|
|
61
|
+
localContext.addMetaproofStep(metaproofStep);
|
|
63
62
|
|
|
64
63
|
metaproofStepVerified = true;
|
|
65
64
|
}
|
|
66
65
|
} else if (unqualifiedStatementNode !== null) {
|
|
67
|
-
let
|
|
66
|
+
let unqualifiedStatementVerified;
|
|
68
67
|
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
substitutions = null;
|
|
68
|
+
const derived = true,
|
|
69
|
+
assignments = [];
|
|
72
70
|
|
|
73
|
-
|
|
71
|
+
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
|
|
74
72
|
|
|
75
|
-
if (
|
|
73
|
+
if (unqualifiedStatementVerified) {
|
|
76
74
|
const assignmentAssigned = assignAssignment(assignments, localContext);
|
|
77
75
|
|
|
78
|
-
|
|
76
|
+
unqualifiedStatementVerified = assignmentAssigned; ///
|
|
79
77
|
}
|
|
80
78
|
|
|
81
|
-
if (
|
|
82
|
-
const statementNode = statementNodeQuery(
|
|
79
|
+
if (unqualifiedStatementVerified) {
|
|
80
|
+
const statementNode = statementNodeQuery(unqualifiedStatementNode),
|
|
83
81
|
metaproofStep = MetaproofStep.fromStatementNode(statementNode);
|
|
84
82
|
|
|
85
|
-
|
|
83
|
+
localContext.addMetaproofStep(metaproofStep);
|
|
86
84
|
|
|
87
|
-
metaproofStepVerified =
|
|
85
|
+
metaproofStepVerified = unqualifiedStatementVerified; ///
|
|
88
86
|
}
|
|
89
87
|
} else if (qualifiedMetastatementNode !== null) {
|
|
90
88
|
let qualifiedMetastatementVerified;
|
|
91
89
|
|
|
92
90
|
const assignments = [];
|
|
93
91
|
|
|
94
|
-
qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments,
|
|
92
|
+
qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments, localContext);
|
|
95
93
|
|
|
96
94
|
if (qualifiedMetastatementVerified) {
|
|
97
|
-
const
|
|
98
|
-
assignmentAssigned = assignAssignment(assignments, localContext);
|
|
95
|
+
const assignmentAssigned = assignAssignment(assignments, localContext);
|
|
99
96
|
|
|
100
97
|
qualifiedMetastatementVerified = assignmentAssigned; ///
|
|
101
98
|
}
|
|
@@ -104,7 +101,7 @@ export default function verifyMetaproofStep(metaproofStepNode, substitutions, lo
|
|
|
104
101
|
const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
|
|
105
102
|
metaproofStep = MetaproofStep.fromMetastatementNode(metastatementNode);
|
|
106
103
|
|
|
107
|
-
|
|
104
|
+
localContext.addMetaproofStep(metaproofStep);
|
|
108
105
|
|
|
109
106
|
metaproofStepVerified = qualifiedMetastatementVerified; ///
|
|
110
107
|
}
|
|
@@ -114,11 +111,10 @@ export default function verifyMetaproofStep(metaproofStepNode, substitutions, lo
|
|
|
114
111
|
const derived = true,
|
|
115
112
|
assignments = [];
|
|
116
113
|
|
|
117
|
-
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived,
|
|
114
|
+
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext);
|
|
118
115
|
|
|
119
116
|
if (unqualifiedMetastatementVerified) {
|
|
120
|
-
const
|
|
121
|
-
assignmentAssigned = assignAssignment(assignments, localContext);
|
|
117
|
+
const assignmentAssigned = assignAssignment(assignments, localContext);
|
|
122
118
|
|
|
123
119
|
unqualifiedMetastatementVerified = assignmentAssigned; ///
|
|
124
120
|
}
|
|
@@ -127,7 +123,7 @@ export default function verifyMetaproofStep(metaproofStepNode, substitutions, lo
|
|
|
127
123
|
const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
|
|
128
124
|
metaproofStep = MetaproofStep.fromMetastatementNode(metastatementNode);
|
|
129
125
|
|
|
130
|
-
|
|
126
|
+
localContext.addMetaproofStep(metaproofStep);
|
|
131
127
|
|
|
132
128
|
metaproofStepVerified = true;
|
|
133
129
|
}
|
|
@@ -7,12 +7,12 @@ import { nodeQuery } from "../../utilities/query";
|
|
|
7
7
|
const metavariableNodeQuery = nodeQuery("/qualifiedMetastatement/reference!/metavariable!"),
|
|
8
8
|
metastatementNodeQuery = nodeQuery("/qualifiedMetastatement/metastatement!");
|
|
9
9
|
|
|
10
|
-
export default function verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments,
|
|
10
|
+
export default function verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments, localContext) {
|
|
11
11
|
let qualifiedMetastatementVerified;
|
|
12
12
|
|
|
13
|
-
const qualifiedMetastatementString =
|
|
13
|
+
const qualifiedMetastatementString = localContext.nodeAsString(qualifiedMetastatementNode);
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
localContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement...`, qualifiedMetastatementNode);
|
|
16
16
|
|
|
17
17
|
const metavariableNode = metavariableNodeQuery(qualifiedMetastatementNode),
|
|
18
18
|
verifyQualifiedMetastatementFunctions = [
|
|
@@ -21,7 +21,7 @@ export default function verifyQualifiedMetastatement(qualifiedMetastatementNode,
|
|
|
21
21
|
];
|
|
22
22
|
|
|
23
23
|
qualifiedMetastatementVerified = verifyQualifiedMetastatementFunctions.some((verifyQualifiedMetastatementFunction) => { ///
|
|
24
|
-
const qualifiedMetastatementVerified = verifyQualifiedMetastatementFunction(qualifiedMetastatementNode, metavariableNode, substitutions,
|
|
24
|
+
const qualifiedMetastatementVerified = verifyQualifiedMetastatementFunction(qualifiedMetastatementNode, metavariableNode, substitutions, localContext);
|
|
25
25
|
|
|
26
26
|
if (qualifiedMetastatementVerified) {
|
|
27
27
|
return true;
|
|
@@ -31,7 +31,7 @@ export default function verifyQualifiedMetastatement(qualifiedMetastatementNode,
|
|
|
31
31
|
if (qualifiedMetastatementVerified) {
|
|
32
32
|
const derived = false,
|
|
33
33
|
metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
|
|
34
|
-
metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived,
|
|
34
|
+
metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived, localContext, () => {
|
|
35
35
|
const verifiedAhead = true;
|
|
36
36
|
|
|
37
37
|
return verifiedAhead;
|
|
@@ -41,45 +41,45 @@ export default function verifyQualifiedMetastatement(qualifiedMetastatementNode,
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
if (qualifiedMetastatementVerified) {
|
|
44
|
-
|
|
44
|
+
localContext.debug(`...verified the '${qualifiedMetastatementString}' qualified metastatement.`, qualifiedMetastatementNode);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
return qualifiedMetastatementVerified;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
function verifyQualifiedMetastatementAAgainstRule(qualifiedMetastatementNode, metavariableNode, substitutions,
|
|
50
|
+
function verifyQualifiedMetastatementAAgainstRule(qualifiedMetastatementNode, metavariableNode, substitutions, localContext) {
|
|
51
51
|
let qualifiedMetastatementVerifiedAgainstRule = false;
|
|
52
52
|
|
|
53
|
-
const rule =
|
|
53
|
+
const rule = localContext.findRuleByMetavariableNode(metavariableNode);
|
|
54
54
|
|
|
55
55
|
if (rule !== null) {
|
|
56
56
|
const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
|
|
57
|
-
metavariableString =
|
|
58
|
-
qualifiedMetastatementString =
|
|
57
|
+
metavariableString = localContext.nodeAsString(metavariableNode),
|
|
58
|
+
qualifiedMetastatementString = localContext.nodeAsString(qualifiedMetastatementNode);
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
localContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' rule...`, qualifiedMetastatementNode);
|
|
61
61
|
|
|
62
|
-
const ruleMatchesMetastatement = rule.matchMetastatement(metastatementNode,
|
|
62
|
+
const ruleMatchesMetastatement = rule.matchMetastatement(metastatementNode, localContext);
|
|
63
63
|
|
|
64
64
|
qualifiedMetastatementVerifiedAgainstRule = ruleMatchesMetastatement; ///
|
|
65
65
|
|
|
66
66
|
if (qualifiedMetastatementVerifiedAgainstRule) {
|
|
67
|
-
|
|
67
|
+
localContext.debug(`...verified the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' rule.`, qualifiedMetastatementNode);
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
return qualifiedMetastatementVerifiedAgainstRule;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
function verifyQualifiedMetastatementAAgainstReference(qualifiedMetastatementNode, metavariableNode, substitutions,
|
|
74
|
+
function verifyQualifiedMetastatementAAgainstReference(qualifiedMetastatementNode, metavariableNode, substitutions, localContext) {
|
|
75
75
|
let qualifiedMetastatementVerifiedAgainstReference = false;
|
|
76
76
|
|
|
77
77
|
if (substitutions !== null) {
|
|
78
|
-
const metavariableString =
|
|
79
|
-
metavariablePresent =
|
|
80
|
-
qualifiedMetastatementString =
|
|
78
|
+
const metavariableString = localContext.nodeAsString(metavariableNode),
|
|
79
|
+
metavariablePresent = localContext.isMetavariablePresentByMetavariableNode(metavariableNode, localContext),
|
|
80
|
+
qualifiedMetastatementString = localContext.nodeAsString(qualifiedMetastatementNode);
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
localContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' reference...`, qualifiedMetastatementNode);
|
|
83
83
|
|
|
84
84
|
if (metavariablePresent) {
|
|
85
85
|
const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
|
|
@@ -93,26 +93,26 @@ function verifyQualifiedMetastatementAAgainstReference(qualifiedMetastatementNod
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
if (qualifiedMetastatementVerifiedAgainstReference) {
|
|
96
|
-
|
|
96
|
+
localContext.debug(`...verified the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' reference.`, qualifiedMetastatementNode);
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
return qualifiedMetastatementVerifiedAgainstReference;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
function verifyMetastatement(metastatementNode, assignments, derived,
|
|
103
|
+
function verifyMetastatement(metastatementNode, assignments, derived, localContext) {
|
|
104
104
|
let metastatementVerified;
|
|
105
105
|
|
|
106
|
-
const metastatementString =
|
|
106
|
+
const metastatementString = localContext.nodeAsString(metastatementNode);
|
|
107
107
|
|
|
108
|
-
|
|
108
|
+
localContext.trace(`Verifying the '${metastatementString}' metastatement...`, metastatementNode);
|
|
109
109
|
|
|
110
110
|
const verifyMetaStatementFunctions = [
|
|
111
111
|
///
|
|
112
112
|
];
|
|
113
113
|
|
|
114
114
|
verifyMetaStatementFunctions.some((verifyStatementFunction) => {
|
|
115
|
-
const metastatementVerified = verifyStatementFunction(metastatementNode, assignments, derived,
|
|
115
|
+
const metastatementVerified = verifyStatementFunction(metastatementNode, assignments, derived, localContext);
|
|
116
116
|
|
|
117
117
|
if (metastatementVerified) {
|
|
118
118
|
return true;
|
|
@@ -122,7 +122,7 @@ function verifyMetastatement(metastatementNode, assignments, derived, localMetaC
|
|
|
122
122
|
metastatementVerified = true; ///
|
|
123
123
|
|
|
124
124
|
if (metastatementVerified) {
|
|
125
|
-
|
|
125
|
+
localContext.debug(`...verified the '${metastatementString}' metastatement.`, metastatementNode);
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
return metastatementVerified;
|
|
@@ -6,28 +6,28 @@ import { nodeQuery } from "../../utilities/query";
|
|
|
6
6
|
|
|
7
7
|
const metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!");
|
|
8
8
|
|
|
9
|
-
export default function verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived,
|
|
9
|
+
export default function verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext) {
|
|
10
10
|
let unqualifiedMetastatementVerified = false;
|
|
11
11
|
|
|
12
12
|
const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
|
|
13
|
-
unqualifiedMetastatementString =
|
|
13
|
+
unqualifiedMetastatementString = localContext.nodeAsString(unqualifiedMetastatementNode);
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
localContext.trace(`Verifying the '${unqualifiedMetastatementString}' unqualified metastatement...`, unqualifiedMetastatementNode);
|
|
16
16
|
|
|
17
17
|
if (derived) {
|
|
18
|
-
const matchesMetastatementNode =
|
|
18
|
+
const matchesMetastatementNode = localContext.matchMetastatementNode(metastatementNode);
|
|
19
19
|
|
|
20
20
|
unqualifiedMetastatementVerified = matchesMetastatementNode; ///
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
if (!unqualifiedMetastatementVerified) {
|
|
24
|
-
const metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived,
|
|
24
|
+
const metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived, localContext);
|
|
25
25
|
|
|
26
26
|
unqualifiedMetastatementVerified = metastatementVerified; ///
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
if (unqualifiedMetastatementVerified) {
|
|
30
|
-
|
|
30
|
+
localContext.debug(`...verified the '${unqualifiedMetastatementString}' unqualified metastatement.`, unqualifiedMetastatementNode);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
return unqualifiedMetastatementVerified;
|