occam-verify-cli 0.0.914 → 0.0.916

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.
Files changed (117) hide show
  1. package/lib/assignment/judgement.js +62 -0
  2. package/lib/axiomLemmaTheoremConjecture.js +4 -3
  3. package/lib/conclusion.js +5 -5
  4. package/lib/context/file.js +7 -7
  5. package/lib/context/local/intrinsicLevel.js +326 -0
  6. package/lib/context/local/metaLevel.js +290 -0
  7. package/lib/judgement.js +87 -0
  8. package/lib/metaConsequent.js +4 -4
  9. package/lib/metaLemmaMetatheorem.js +11 -11
  10. package/lib/metaSupposition.js +7 -7
  11. package/lib/metavariable.js +5 -5
  12. package/lib/premise.js +12 -12
  13. package/lib/rule.js +12 -12
  14. package/lib/verifier/node/metaLevel.js +214 -0
  15. package/lib/verifier/node/statementAsCombinator.js +9 -9
  16. package/lib/verifier/node/termAsConstructor.js +7 -7
  17. package/lib/verify/axiom.js +3 -3
  18. package/lib/verify/conclusion.js +7 -7
  19. package/lib/verify/conjecture.js +3 -3
  20. package/lib/verify/containedAssertion.js +23 -4
  21. package/lib/verify/declaration.js +15 -15
  22. package/lib/verify/definedAssertion.js +18 -4
  23. package/lib/verify/derivation.js +3 -3
  24. package/lib/verify/frame.js +19 -19
  25. package/lib/verify/judgement.js +121 -0
  26. package/lib/verify/lemma.js +3 -3
  27. package/lib/verify/metaConsequent.js +7 -7
  28. package/lib/verify/metaDerivation.js +3 -3
  29. package/lib/verify/metaLemma.js +6 -6
  30. package/lib/verify/metaSubDerivation.js +3 -3
  31. package/lib/verify/metaSubproof.js +7 -6
  32. package/lib/verify/metaSupposition.js +9 -9
  33. package/lib/verify/metaSuppositions.js +3 -3
  34. package/lib/verify/metaproof.js +7 -6
  35. package/lib/verify/metaproofStep.js +16 -16
  36. package/lib/verify/metastatement/qualified.js +22 -22
  37. package/lib/verify/metastatement/unqualified.js +7 -7
  38. package/lib/verify/metastatement.js +37 -37
  39. package/lib/verify/metatheorem.js +6 -6
  40. package/lib/verify/metavariable.js +6 -6
  41. package/lib/verify/premise.js +9 -9
  42. package/lib/verify/premises.js +3 -3
  43. package/lib/verify/proof.js +4 -3
  44. package/lib/verify/rule.js +6 -6
  45. package/lib/verify/ruleDerivation.js +3 -3
  46. package/lib/verify/ruleProof.js +7 -6
  47. package/lib/verify/ruleProofStep.js +16 -16
  48. package/lib/verify/ruleSubDerivation.js +3 -3
  49. package/lib/verify/ruleSubproof.js +7 -6
  50. package/lib/verify/statement.js +4 -17
  51. package/lib/verify/subDerivation.js +3 -3
  52. package/lib/verify/subproof.js +4 -3
  53. package/lib/verify/termAsConstructor.js +3 -3
  54. package/lib/verify/theorem.js +4 -4
  55. package/package.json +2 -2
  56. package/src/assignment/judgement.js +30 -0
  57. package/src/axiomLemmaTheoremConjecture.js +4 -2
  58. package/src/conclusion.js +7 -7
  59. package/src/context/file.js +5 -5
  60. package/src/context/{local.js → local/intrinsicLevel.js} +25 -20
  61. package/src/context/{localMeta.js → local/metaLevel.js} +50 -45
  62. package/src/{frameAssertion.js → judgement.js} +5 -5
  63. package/src/metaConsequent.js +7 -7
  64. package/src/metaLemmaMetatheorem.js +11 -11
  65. package/src/metaSupposition.js +13 -13
  66. package/src/metavariable.js +6 -7
  67. package/src/premise.js +26 -26
  68. package/src/rule.js +12 -12
  69. package/src/verifier/node/{metastatement.js → metaLevel.js} +19 -21
  70. package/src/verifier/node/statementAsCombinator.js +8 -8
  71. package/src/verifier/node/termAsConstructor.js +6 -6
  72. package/src/verify/axiom.js +4 -3
  73. package/src/verify/conclusion.js +5 -6
  74. package/src/verify/conjecture.js +4 -3
  75. package/src/verify/containedAssertion.js +24 -3
  76. package/src/verify/declaration.js +15 -15
  77. package/src/verify/definedAssertion.js +23 -3
  78. package/src/verify/derivation.js +2 -2
  79. package/src/verify/frame.js +18 -18
  80. package/src/verify/judgement.js +169 -0
  81. package/src/verify/lemma.js +4 -3
  82. package/src/verify/metaConsequent.js +5 -6
  83. package/src/verify/metaDerivation.js +2 -2
  84. package/src/verify/metaLemma.js +8 -7
  85. package/src/verify/metaSubDerivation.js +2 -2
  86. package/src/verify/metaSubproof.js +7 -5
  87. package/src/verify/metaSupposition.js +7 -8
  88. package/src/verify/metaSuppositions.js +2 -2
  89. package/src/verify/metaproof.js +7 -5
  90. package/src/verify/metaproofStep.js +13 -17
  91. package/src/verify/metastatement/qualified.js +24 -24
  92. package/src/verify/metastatement/unqualified.js +6 -6
  93. package/src/verify/metastatement.js +36 -36
  94. package/src/verify/metatheorem.js +8 -7
  95. package/src/verify/metavariable.js +5 -5
  96. package/src/verify/premise.js +7 -8
  97. package/src/verify/premises.js +2 -2
  98. package/src/verify/proof.js +4 -2
  99. package/src/verify/rule.js +8 -7
  100. package/src/verify/ruleDerivation.js +2 -2
  101. package/src/verify/ruleProof.js +7 -5
  102. package/src/verify/ruleProofStep.js +13 -17
  103. package/src/verify/ruleSubDerivation.js +2 -2
  104. package/src/verify/ruleSubproof.js +7 -5
  105. package/src/verify/statement.js +2 -22
  106. package/src/verify/subDerivation.js +2 -2
  107. package/src/verify/subproof.js +4 -2
  108. package/src/verify/termAsConstructor.js +4 -3
  109. package/src/verify/theorem.js +5 -4
  110. package/lib/assignment/frameAssertion.js +0 -62
  111. package/lib/context/local.js +0 -320
  112. package/lib/context/localMeta.js +0 -284
  113. package/lib/frameAssertion.js +0 -87
  114. package/lib/verifier/node/metastatement.js +0 -214
  115. package/lib/verify/frameAssertion.js +0 -121
  116. package/src/assignment/frameAssertion.js +0 -30
  117. package/src/verify/frameAssertion.js +0 -169
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+
3
+ import Judgement from "../judgement";
4
+ import verifyFrame from "../verify/frame";
5
+ import frameMetaType from "../metaType/frame";
6
+ import JudgementAssignment from "../assignment/judgement";
7
+
8
+ import { first } from "../utilities/array";
9
+ import { nodeQuery } from "../utilities/query";
10
+
11
+ const frameNodeQuery = nodeQuery("/judgement/frame!"),
12
+ metavariableNodeQuery = nodeQuery("/judgement/metavariable!");
13
+
14
+ export default function verifyJudgement(judgementNode, assignments, derived, localContext) {
15
+ let judgementVerified;
16
+
17
+ const judgementString = localContext.nodeAsString(judgementNode);
18
+
19
+ localContext.trace(`Verifying the '${judgementString}' judgement...`, judgementNode);
20
+
21
+ const verifyJudgementFunctions = [
22
+ verifyDerivedJudgement,
23
+ verifyStatedJudgement
24
+ ];
25
+
26
+ judgementVerified = verifyJudgementFunctions.some((verifyJudgementFunction) => {
27
+ const judgementVerified = verifyJudgementFunction(judgementNode, assignments, derived, localContext);
28
+
29
+ if (judgementVerified) {
30
+ return true;
31
+ }
32
+ });
33
+
34
+ if (judgementVerified) {
35
+ localContext.debug(`...verified the '${judgementString}' judgement.`, judgementNode);
36
+ }
37
+
38
+ return judgementVerified;
39
+ }
40
+
41
+ function verifyDerivedJudgement(judgementNode, assignments, derived, localContext) {
42
+ let derivedJudgementVerified = false;
43
+
44
+ if (derived) {
45
+ const judgementString = localContext.nodeAsString(judgementNode);
46
+
47
+ localContext.trace(`Verifying the '${judgementString}' derived judgement...`, judgementNode);
48
+
49
+ const metavariableNode = metavariableNodeQuery(judgementNode),
50
+ metavariableVerified = verifyMetavariable(metavariableNode, localContext);
51
+
52
+ if (metavariableVerified) {
53
+ const judgement = localContext.findJudgementByMetavariableNode(metavariableNode);
54
+
55
+ if (judgement !== null) {
56
+ const frames = [],
57
+ frameNode = frameNodeQuery(judgementNode),
58
+ frameVerified = verifyFrame(frameNode, frames, assignments, derived, localContext);
59
+
60
+ if (frameVerified) {
61
+ const firstFrame = first(frames),
62
+ frame = firstFrame, ///
63
+ frameSingular = frame.isSingular();
64
+
65
+ if (frameSingular) {
66
+ const declaration = frame.getDeclaration(),
67
+ metavariableNode = declaration.getMetavariableNode(),
68
+ metaLemma = localContext.findMetaLemmaByMetavariableNode(metavariableNode),
69
+ metatheorem = localContext.findMetatheoremByMetavariableNode(metavariableNode),
70
+ metaLemmaMetatheorem = (metaLemma || metatheorem); ///
71
+
72
+ if (metaLemmaMetatheorem !== null) {
73
+ const declarationMatchesMetaLemmaMetatheorem = declaration.matchMetaLemmaOrMetaTheorem(metaLemmaMetatheorem),
74
+ judgementMatchesMetaLemmaMetatheorem = judgement.matchMetaLemmaOrMetaTheorem(metaLemmaMetatheorem);
75
+
76
+ derivedJudgementVerified = (declarationMatchesMetaLemmaMetatheorem && judgementMatchesMetaLemmaMetatheorem);
77
+ } else {
78
+ const metavariableString = localContext.nodeAsString(metavariableNode);
79
+
80
+ localContext.debug(`There are no meta-lemmas or metatheorems corresponding to the '${metavariableString}' metavariable.`, judgementNode);
81
+ }
82
+ } else {
83
+ const frameString = localContext.nodeAsString(frameNode);
84
+
85
+ localContext.debug(`The '${frameString}' is not singular.`, judgementNode);
86
+ }
87
+ }
88
+ } else {
89
+ const metavariableString = localContext.nodeAsString(metavariableNode);
90
+
91
+ localContext.debug(`There is no judgement present for the '${metavariableString}' metavariable.`, judgementNode);
92
+ }
93
+ }
94
+
95
+ if (derivedJudgementVerified) {
96
+ localContext.debug(`...verified the '${judgementString}' derived judgement.`, judgementNode);
97
+ }
98
+ }
99
+
100
+ return derivedJudgementVerified;
101
+ }
102
+
103
+ function verifyStatedJudgement(judgementNode, assignments, derived, localContext) {
104
+ let statedJudgementVerified = false;
105
+
106
+ if (!derived) {
107
+ const judgementString = localContext.nodeAsString(judgementNode);
108
+
109
+ localContext.trace(`Verifying the '${judgementString}' stated judgement...`, judgementNode);
110
+
111
+ const metavariableNode = metavariableNodeQuery(judgementNode),
112
+ metavariableVerified = verifyMetavariable(metavariableNode, localContext);
113
+
114
+ if (metavariableVerified) {
115
+ const frames = [],
116
+ frameNode = frameNodeQuery(judgementNode),
117
+ frameVerified = verifyFrame(frameNode, frames, assignments, derived, localContext);
118
+
119
+ if (frameVerified) {
120
+ const firstFrame = first(frames),
121
+ frame = firstFrame, ///
122
+ judgement = Judgement.fromJudgementNodeFrameAndMetavariableNode(judgementNode, frame, metavariableNode),
123
+ judgementAssignment = JudgementAssignment.fromJudgement(judgement),
124
+ assignment = judgementAssignment;
125
+
126
+ assignments.push(assignment);
127
+
128
+ statedJudgementVerified = true;
129
+ }
130
+ }
131
+
132
+ if (statedJudgementVerified) {
133
+ localContext.debug(`...verified the '${judgementString}' stated judgement.`, judgementNode);
134
+ }
135
+ }
136
+
137
+ return statedJudgementVerified;
138
+ }
139
+
140
+ function verifyMetavariable(metavariableNode, localContext) {
141
+ let metavariableVerified = false;
142
+
143
+ const metavariableString = localContext.nodeAsString(metavariableNode);
144
+
145
+ localContext.trace(`Verifying the '${metavariableString}' metavariable...`, metavariableNode);
146
+
147
+ const metavariable = localContext.findMetavariableByMetavariableNode(metavariableNode, localContext);
148
+
149
+ if (metavariable !== null) {
150
+ const metaType = metavariable.getMetaType();
151
+
152
+ if (metaType === frameMetaType) {
153
+ metavariableVerified = true;
154
+ } else {
155
+ const frameMetaTypeName = frameMetaType.getName(),
156
+ metaTypeString = metaType.asString();
157
+
158
+ localContext.debug(`The '${metavariableString}' metavariable's meta-type is '${metaTypeString}' when it should be '${frameMetaTypeName}'.`, metavariableNode);
159
+ }
160
+ } else {
161
+ localContext.debug(`The '${metavariableString}' metavariable is not present'.`, metavariableNode);
162
+ }
163
+
164
+ if (metavariableVerified) {
165
+ localContext.debug(`...verified the '${metavariableString}' metavariable.`, metavariableNode);
166
+ }
167
+
168
+ return metavariableVerified;
169
+ }
@@ -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 labelNodes = labelNodesQuery(lemmaNode),
22
+ const intrinsicLevelLocalContext = IntrinsicLevelLocalContext.fromFileContext(fileContext),
23
+ labelNodes = labelNodesQuery(lemmaNode),
23
24
  labelsString = fileContext.nodesAsString(labelNodes),
24
- localContext = LocalContext.fromFileContext(fileContext);
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, localMetaContext) {
14
+ export default function verifyMetaConsequent(metaConsequentNode, metaConsequents, substitutions, localContext) {
15
15
  let metaConsequentVerified = false;
16
16
 
17
- const metaConsequentString = localMetaContext.nodeAsString(metaConsequentNode);
17
+ const metaConsequentString = localContext.nodeAsString(metaConsequentNode);
18
18
 
19
- localMetaContext.trace(`Verifying the '${metaConsequentString}' meta-consequent...`, metaConsequentNode);
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, localMetaContext);
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
- localMetaContext.debug(`...verified the '${metaConsequentString}' meta-consequent.`, metaConsequentNode);
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, localMetaContext) {
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, localMetaContext);
15
+ const metaproofStepVerified = verifyMetaproofStep(metaproofStepNode, substitutions, localContext);
16
16
 
17
17
  if (metaproofStepVerified) {
18
18
  return true;
@@ -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 substitutions = [],
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, localMetaContext);
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, localMetaContext);
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, localMetaContext);
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, localMetaContext) {
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, localMetaContext);
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 LocalMetaContext from "../context/localMeta";
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, localMetaContext) {
12
+ export default function verifyMetaSubproof(metaSubproofNode, substitutions, localContext) {
13
13
  let metaSubproofVerified = false;
14
14
 
15
- localMetaContext = LocalMetaContext.fromLocalMetaContext(localMetaContext); ///
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, localMetaContext);
21
+ metaSuppositionsVerified = verifyMetaSuppositions(suppositionNodes, metaSuppositions, localContext);
20
22
 
21
23
  if (metaSuppositionsVerified) {
22
24
  const metaSubDerivationNode = metaSubDerivationNodeQuery(metaSubproofNode),
23
- metaSubDerivationVerified = verifyMetaSubDerivation(metaSubDerivationNode, substitutions, localMetaContext);
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, localMetaContext) {
16
+ export default function verifyMetaSupposition(metaSuppositionNode, metaSuppositions, localContext) {
17
17
  let metaSuppositionVerified = false;
18
18
 
19
- const metaSuppositionString = localMetaContext.nodeAsString(metaSuppositionNode);
19
+ const metaSuppositionString = localContext.nodeAsString(metaSuppositionNode);
20
20
 
21
- localMetaContext.trace(`Verifying the '${metaSuppositionString}' meta-supposition...`, metaSuppositionNode);
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, localMetaContext);
41
+ unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext);
43
42
 
44
43
  if (unqualifiedMetastatementVerified) {
45
- const localContext = localMetaContext, ///
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
- localMetaContext.addMetaproofStep(metaproofStep);
73
+ localContext.addMetaproofStep(metaproofStep);
75
74
 
76
- localMetaContext.debug(`...verified the '${metaSuppositionString}' meta-supposition.`, metaSuppositionNode);
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, localMetaContext) {
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, localMetaContext);
9
+ const metaSuppositionVerified = verifyMetaSupposition(metaSuppositionNode, metaSuppositions, localContext);
10
10
 
11
11
  if (metaSuppositionVerified) {
12
12
  return true;
@@ -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, localMetaContext) {
10
+ export default function verifyMetaproof(metaproofNode, conclusion, substitutions, localContext) {
11
11
  let metaproofVerified = false;
12
12
 
13
- localMetaContext = LocalMetaContext.fromLocalMetaContext(localMetaContext); ///
13
+ const metaLevelLocalContext = MetaLevelLocalContext.fromLocalContext(localContext);
14
+
15
+ localContext = metaLevelLocalContext; ///
14
16
 
15
17
  const metaDerivationNode = metaDerivationNodeQuery(metaproofNode),
16
- metaDerivationVerified = verifyMetaDerivation(metaDerivationNode, substitutions, localMetaContext);
18
+ metaDerivationVerified = verifyMetaDerivation(metaDerivationNode, substitutions, localContext);
17
19
 
18
20
  if (metaDerivationVerified) {
19
- const lastMetaproofStep = localMetaContext.getLastMetaproofStep(),
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, localMetaContext) {
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, localMetaContext);
35
+ metaSubproofVerified = verifyMetaSubproof(metaSubproofNode, substitutions, localContext);
36
36
 
37
37
  if (metaSubproofVerified) {
38
38
  const metaproofStep = MetaproofStep.fromMetaSubproofNode(metaSubproofNode);
39
39
 
40
- localMetaContext.addMetaproofStep(metaproofStep);
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,7 +58,7 @@ export default function verifyMetaproofStep(metaproofStepNode, substitutions, lo
59
58
  const statementNode = statementNodeQuery(qualifiedStatementNode),
60
59
  metaproofStep = MetaproofStep.fromStatementNode(statementNode);
61
60
 
62
- localMetaContext.addMetaproofStep(metaproofStep);
61
+ localContext.addMetaproofStep(metaproofStep);
63
62
 
64
63
  metaproofStepVerified = true;
65
64
  }
@@ -67,8 +66,7 @@ export default function verifyMetaproofStep(metaproofStepNode, substitutions, lo
67
66
  let unqualifiedStatementVerified;
68
67
 
69
68
  const derived = true,
70
- assignments = [],
71
- localContext = localMetaContext;
69
+ assignments = [];
72
70
 
73
71
  unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
74
72
 
@@ -82,7 +80,7 @@ export default function verifyMetaproofStep(metaproofStepNode, substitutions, lo
82
80
  const statementNode = statementNodeQuery(unqualifiedStatementNode),
83
81
  metaproofStep = MetaproofStep.fromStatementNode(statementNode);
84
82
 
85
- localMetaContext.addMetaproofStep(metaproofStep);
83
+ localContext.addMetaproofStep(metaproofStep);
86
84
 
87
85
  metaproofStepVerified = unqualifiedStatementVerified; ///
88
86
  }
@@ -91,11 +89,10 @@ export default function verifyMetaproofStep(metaproofStepNode, substitutions, lo
91
89
 
92
90
  const assignments = [];
93
91
 
94
- qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments, localMetaContext);
92
+ qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments, localContext);
95
93
 
96
94
  if (qualifiedMetastatementVerified) {
97
- const localContext = localMetaContext, ///
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
- localMetaContext.addMetaproofStep(metaproofStep);
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, localMetaContext);
114
+ unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext);
118
115
 
119
116
  if (unqualifiedMetastatementVerified) {
120
- const localContext = localMetaContext, ///
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
- localMetaContext.addMetaproofStep(metaproofStep);
126
+ localContext.addMetaproofStep(metaproofStep);
131
127
 
132
128
  metaproofStepVerified = true;
133
129
  }