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
@@ -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, localMetaContext) {
10
+ export default function verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments, localContext) {
11
11
  let qualifiedMetastatementVerified;
12
12
 
13
- const qualifiedMetastatementString = localMetaContext.nodeAsString(qualifiedMetastatementNode);
13
+ const qualifiedMetastatementString = localContext.nodeAsString(qualifiedMetastatementNode);
14
14
 
15
- localMetaContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement...`, qualifiedMetastatementNode);
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, localMetaContext);
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, localMetaContext, () => {
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
- localMetaContext.debug(`...verified the '${qualifiedMetastatementString}' qualified metastatement.`, qualifiedMetastatementNode);
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, localMetaContext) {
50
+ function verifyQualifiedMetastatementAAgainstRule(qualifiedMetastatementNode, metavariableNode, substitutions, localContext) {
51
51
  let qualifiedMetastatementVerifiedAgainstRule = false;
52
52
 
53
- const rule = localMetaContext.findRuleByMetavariableNode(metavariableNode);
53
+ const rule = localContext.findRuleByMetavariableNode(metavariableNode);
54
54
 
55
55
  if (rule !== null) {
56
56
  const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
57
- metavariableString = localMetaContext.nodeAsString(metavariableNode),
58
- qualifiedMetastatementString = localMetaContext.nodeAsString(qualifiedMetastatementNode);
57
+ metavariableString = localContext.nodeAsString(metavariableNode),
58
+ qualifiedMetastatementString = localContext.nodeAsString(qualifiedMetastatementNode);
59
59
 
60
- localMetaContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' rule...`, qualifiedMetastatementNode);
60
+ localContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' rule...`, qualifiedMetastatementNode);
61
61
 
62
- const ruleMatchesMetastatement = rule.matchMetastatement(metastatementNode, localMetaContext);
62
+ const ruleMatchesMetastatement = rule.matchMetastatement(metastatementNode, localContext);
63
63
 
64
64
  qualifiedMetastatementVerifiedAgainstRule = ruleMatchesMetastatement; ///
65
65
 
66
66
  if (qualifiedMetastatementVerifiedAgainstRule) {
67
- localMetaContext.debug(`...verified the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' rule.`, qualifiedMetastatementNode);
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, localMetaContext) {
74
+ function verifyQualifiedMetastatementAAgainstReference(qualifiedMetastatementNode, metavariableNode, substitutions, localContext) {
75
75
  let qualifiedMetastatementVerifiedAgainstReference = false;
76
76
 
77
77
  if (substitutions !== null) {
78
- const metavariableString = localMetaContext.nodeAsString(metavariableNode),
79
- metavariablePresent = localMetaContext.isMetavariablePresentByMetavariableNode(metavariableNode, localMetaContext),
80
- qualifiedMetastatementString = localMetaContext.nodeAsString(qualifiedMetastatementNode);
78
+ const metavariableString = localContext.nodeAsString(metavariableNode),
79
+ metavariablePresent = localContext.isMetavariablePresentByMetavariableNode(metavariableNode, localContext),
80
+ qualifiedMetastatementString = localContext.nodeAsString(qualifiedMetastatementNode);
81
81
 
82
- localMetaContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' reference...`, qualifiedMetastatementNode);
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
- localMetaContext.debug(`...verified the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' reference.`, qualifiedMetastatementNode);
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, localMetaContext) {
103
+ function verifyMetastatement(metastatementNode, assignments, derived, localContext) {
104
104
  let metastatementVerified;
105
105
 
106
- const metastatementString = localMetaContext.nodeAsString(metastatementNode);
106
+ const metastatementString = localContext.nodeAsString(metastatementNode);
107
107
 
108
- localMetaContext.trace(`Verifying the '${metastatementString}' metastatement...`, metastatementNode);
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, localMetaContext);
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
- localMetaContext.debug(`...verified the '${metastatementString}' metastatement.`, metastatementNode);
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, localMetaContext) {
9
+ export default function verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext) {
10
10
  let unqualifiedMetastatementVerified = false;
11
11
 
12
12
  const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
13
- unqualifiedMetastatementString = localMetaContext.nodeAsString(unqualifiedMetastatementNode);
13
+ unqualifiedMetastatementString = localContext.nodeAsString(unqualifiedMetastatementNode);
14
14
 
15
- localMetaContext.trace(`Verifying the '${unqualifiedMetastatementString}' unqualified metastatement...`, unqualifiedMetastatementNode);
15
+ localContext.trace(`Verifying the '${unqualifiedMetastatementString}' unqualified metastatement...`, unqualifiedMetastatementNode);
16
16
 
17
17
  if (derived) {
18
- const matchesMetastatementNode = localMetaContext.matchMetastatementNode(metastatementNode);
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, localMetaContext);
24
+ const metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived, localContext);
25
25
 
26
26
  unqualifiedMetastatementVerified = metastatementVerified; ///
27
27
  }
28
28
 
29
29
  if (unqualifiedMetastatementVerified) {
30
- localMetaContext.debug(`...verified the '${unqualifiedMetastatementString}' unqualified metastatement.`, unqualifiedMetastatementNode);
30
+ localContext.debug(`...verified the '${unqualifiedMetastatementString}' unqualified metastatement.`, unqualifiedMetastatementNode);
31
31
  }
32
32
 
33
33
  return unqualifiedMetastatementVerified;
@@ -1,26 +1,26 @@
1
1
  "use strict";
2
2
 
3
- import verifyFrameAssertion from "../verify/frameAssertion";
4
- import metastatementNodeVerifier from "../verifier/node/metastatement";
3
+ import verifyJudgement from "../verify/judgement";
4
+ import metaLevelNodeVerifier from "../verifier/node/metaLevel";
5
5
 
6
6
  import { nodeQuery } from "../utilities/query";
7
7
 
8
- const frameAssertionNodeQuery = nodeQuery("/metastatement/frameAssertion!");
8
+ const judgementNodeQuery = nodeQuery("/metastatement/judgement!");
9
9
 
10
- function verifyMetastatement(metastatementNode, assignments, derived, localMetaContext) {
10
+ function verifyMetastatement(metastatementNode, assignments, derived, localContext) {
11
11
  let metastatementVerified;
12
12
 
13
- const metastatementString = localMetaContext.nodeAsString(metastatementNode);
13
+ const metastatementString = localContext.nodeAsString(metastatementNode);
14
14
 
15
- localMetaContext.trace(`Verifying the '${metastatementString}' metastatement...`, metastatementNode);
15
+ localContext.trace(`Verifying the '${metastatementString}' metastatement...`, metastatementNode);
16
16
 
17
17
  const verifyMetaStatementFunctions = [
18
- verifyMetastatementAsFrameAssertion,
18
+ verifyMetastatementAsJudgement,
19
19
  verifyMetastatementAsIs
20
20
  ];
21
21
 
22
22
  metastatementVerified = verifyMetaStatementFunctions.some((verifyStatementFunction) => {
23
- const metastatementVerified = verifyStatementFunction(metastatementNode, assignments, derived, localMetaContext);
23
+ const metastatementVerified = verifyStatementFunction(metastatementNode, assignments, derived, localContext);
24
24
 
25
25
  if (metastatementVerified) {
26
26
  return true;
@@ -28,49 +28,49 @@ function verifyMetastatement(metastatementNode, assignments, derived, localMetaC
28
28
  });
29
29
 
30
30
  if (metastatementVerified) {
31
- localMetaContext.debug(`...verified the '${metastatementString}' metastatement.`, metastatementNode);
31
+ localContext.debug(`...verified the '${metastatementString}' metastatement.`, metastatementNode);
32
32
  }
33
33
 
34
34
  return metastatementVerified;
35
35
  }
36
36
 
37
- Object.assign(metastatementNodeVerifier, {
37
+ Object.assign(metaLevelNodeVerifier, {
38
38
  verifyMetastatement
39
39
  });
40
40
 
41
41
  export default verifyMetastatement;
42
42
 
43
- function verifyMetastatementAsFrameAssertion(metastatementNode, assignments, derived, localMetaContext) {
44
- let metastatementVerifiedAsFrameAssertion = false;
43
+ function verifyMetastatementAsJudgement(metastatementNode, assignments, derived, localContext) {
44
+ let metastatementVerifiedAsJudgement = false;
45
45
 
46
- const frameAssertionNode = frameAssertionNodeQuery(metastatementNode);
46
+ const judgementNode = judgementNodeQuery(metastatementNode);
47
47
 
48
- if (frameAssertionNode !== null) {
49
- const metastatementString = localMetaContext.nodeAsString(metastatementNode);
48
+ if (judgementNode !== null) {
49
+ const metastatementString = localContext.nodeAsString(metastatementNode);
50
50
 
51
- localMetaContext.trace(`Verifying the '${metastatementString}' metastatement as a frame assertion...`, metastatementNode);
51
+ localContext.trace(`Verifying the '${metastatementString}' metastatement as a judgement...`, metastatementNode);
52
52
 
53
- const frameAssertionVerified = verifyFrameAssertion(frameAssertionNode, assignments, derived, localMetaContext);
53
+ const judgementVerified = verifyJudgement(judgementNode, assignments, derived, localContext);
54
54
 
55
- metastatementVerifiedAsFrameAssertion = frameAssertionVerified; ///
55
+ metastatementVerifiedAsJudgement = judgementVerified; ///
56
56
 
57
- if (metastatementVerifiedAsFrameAssertion) {
58
- localMetaContext.debug(`...verified the '${metastatementString}' metastatement as a frame assertion.`, metastatementNode);
57
+ if (metastatementVerifiedAsJudgement) {
58
+ localContext.debug(`...verified the '${metastatementString}' metastatement as a judgement.`, metastatementNode);
59
59
  }
60
60
  }
61
61
 
62
- return metastatementVerifiedAsFrameAssertion;
62
+ return metastatementVerifiedAsJudgement;
63
63
  }
64
64
 
65
- function verifyMetastatementAsIs(metastatementNode, assignments, derived, localMetaContext) {
65
+ function verifyMetastatementAsIs(metastatementNode, assignments, derived, localContext) {
66
66
  let metastatementVerifiedAsIs;
67
67
 
68
- const frameAssertionNode = frameAssertionNodeQuery(metastatementNode);
68
+ const judgementNode = judgementNodeQuery(metastatementNode);
69
69
 
70
- if (frameAssertionNode === null) {
71
- const metastatementString = localMetaContext.nodeAsString(metastatementNode);
70
+ if (judgementNode === null) {
71
+ const metastatementString = localContext.nodeAsString(metastatementNode);
72
72
 
73
- localMetaContext.trace(`Verifying the '${metastatementString}' metastatement as is...`, metastatementNode);
73
+ localContext.trace(`Verifying the '${metastatementString}' metastatement as is...`, metastatementNode);
74
74
 
75
75
  const verifyMetastatementAsIsFunctions = [
76
76
  verifyDerivedMetastatementAsIs,
@@ -78,7 +78,7 @@ function verifyMetastatementAsIs(metastatementNode, assignments, derived, localM
78
78
  ];
79
79
 
80
80
  metastatementVerifiedAsIs = verifyMetastatementAsIsFunctions.some((verifyMetastatementAsIsFunction) => {
81
- const metastatementVerifiedAsIs = verifyMetastatementAsIsFunction(metastatementNode, assignments, derived, localMetaContext);
81
+ const metastatementVerifiedAsIs = verifyMetastatementAsIsFunction(metastatementNode, assignments, derived, localContext);
82
82
 
83
83
  if (metastatementVerifiedAsIs) {
84
84
  return true;
@@ -86,35 +86,35 @@ function verifyMetastatementAsIs(metastatementNode, assignments, derived, localM
86
86
  });
87
87
 
88
88
  if (metastatementVerifiedAsIs) {
89
- localMetaContext.debug(`...verified the '${metastatementString}' metastatement as is.`, metastatementNode);
89
+ localContext.debug(`...verified the '${metastatementString}' metastatement as is.`, metastatementNode);
90
90
  }
91
91
  }
92
92
 
93
93
  return metastatementVerifiedAsIs;
94
94
  }
95
95
 
96
- function verifyDerivedMetastatementAsIs(metastatementNode, assignments, derived, localMetaContext) {
96
+ function verifyDerivedMetastatementAsIs(metastatementNode, assignments, derived, localContext) {
97
97
  let derivedMetastatementVerifiedAsIs = false;
98
98
 
99
99
  if (derived) {
100
- const metastatementString = localMetaContext.nodeAsString(metastatementNode);
100
+ const metastatementString = localContext.nodeAsString(metastatementNode);
101
101
 
102
- localMetaContext.debug(`Cannot verify the derived '${metastatementString}' metastatement as is.`, metastatementNode);
102
+ localContext.debug(`Cannot verify the derived '${metastatementString}' metastatement as is.`, metastatementNode);
103
103
  }
104
104
 
105
105
  return derivedMetastatementVerifiedAsIs;
106
106
  }
107
107
 
108
- function verifyStatedMetastatementAsIs(metastatementNode, assignments, derived, localMetaContext) {
108
+ function verifyStatedMetastatementAsIs(metastatementNode, assignments, derived, localContext) {
109
109
  let statedMetastatementVerifiedAsIs = false;
110
110
 
111
111
  if (!derived) {
112
- const metastatementString = localMetaContext.nodeAsString(metastatementNode);
112
+ const metastatementString = localContext.nodeAsString(metastatementNode);
113
113
 
114
- localMetaContext.trace(`Verifying the stated '${metastatementString}' metastatement as is...`, metastatementNode);
114
+ localContext.trace(`Verifying the stated '${metastatementString}' metastatement as is...`, metastatementNode);
115
115
 
116
116
  const nonTerminalNode = metastatementNode, ///
117
- nonTerminalNodeVerified = metastatementNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localMetaContext, () => {
117
+ nonTerminalNodeVerified = metaLevelNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localContext, () => {
118
118
  const verifiedAhead = true;
119
119
 
120
120
  return verifiedAhead;
@@ -123,7 +123,7 @@ function verifyStatedMetastatementAsIs(metastatementNode, assignments, derived,
123
123
  statedMetastatementVerifiedAsIs = nonTerminalNodeVerified; ///
124
124
 
125
125
  if (statedMetastatementVerifiedAsIs) {
126
- localMetaContext.debug(`...verified the stated '${metastatementString}' metastatement as is.`, metastatementNode);
126
+ localContext.debug(`...verified the stated '${metastatementString}' metastatement as is.`, metastatementNode);
127
127
  }
128
128
  }
129
129
 
@@ -3,8 +3,8 @@
3
3
  import Metatheorem from "../metatheorem";
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";
@@ -19,8 +19,7 @@ export default function verifyMetatheorem(metatheoremNode, fileContext) {
19
19
  let metatheoremVerified = false;
20
20
 
21
21
  const labelNodes = labelNodesQuery(metatheoremNode),
22
- labelsString = fileContext.nodesAsString(labelNodes),
23
- localMetaContext = LocalMetaContext.fromFileContext(fileContext);
22
+ labelsString = fileContext.nodesAsString(labelNodes);
24
23
 
25
24
  fileContext.trace(`Verifying the '${labelsString}' metatheorem...`, metatheoremNode);
26
25
 
@@ -28,21 +27,23 @@ export default function verifyMetatheorem(metatheoremNode, fileContext) {
28
27
  labelsVerified = verifyLabels(labelNodes, labels, fileContext);
29
28
 
30
29
  if (labelsVerified) {
31
- const substitutions = [],
30
+ const metaLevelLocalContext = MetaLevelLocalContext.fromFileContext(fileContext),
31
+ localContext = metaLevelLocalContext, ///
32
+ substitutions = [],
32
33
  metaSuppositions = [],
33
34
  metaSuppositionNodes = metaSuppositionsNodeQuery(metatheoremNode),
34
- metaSuppositionsVerified = verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, substitutions, localMetaContext);
35
+ metaSuppositionsVerified = verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, substitutions, localContext);
35
36
 
36
37
  if (metaSuppositionsVerified) {
37
38
  const metaConsequents = [],
38
39
  metaConsequentNode = metaConsequentNodeQuery(metatheoremNode),
39
- metaConsequentVerified = verifyMetaConsequent(metaConsequentNode, metaConsequents, substitutions, localMetaContext);
40
+ metaConsequentVerified = verifyMetaConsequent(metaConsequentNode, metaConsequents, substitutions, localContext);
40
41
 
41
42
  if (metaConsequentVerified) {
42
43
  const metaproofNode = metaproofNodeQuery(metatheoremNode),
43
44
  firstMetaConsequent = first(metaConsequents),
44
45
  metaConsequent = firstMetaConsequent, ///
45
- metaproofVerified = verifyMetaproof(metaproofNode, metaConsequent, substitutions, localMetaContext);
46
+ metaproofVerified = verifyMetaproof(metaproofNode, metaConsequent, substitutions, localContext);
46
47
 
47
48
  if (metaproofVerified) {
48
49
  const metatheorem = Metatheorem.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, metaSuppositions, metaConsequent, substitutions, fileContext);
@@ -66,14 +66,14 @@ export default function verifyMetavariable(metavariableNode, metaTypeNode, fileC
66
66
  return metavariableVerified;
67
67
  }
68
68
 
69
- export function verifyStandaloneMetavariable(metavariableNode, localMetaContext, verifyAhead) {
69
+ export function verifyStandaloneMetavariable(metavariableNode, localContext, verifyAhead) {
70
70
  let standaloneMetavariableVerified = false;
71
71
 
72
- const metavariableString = localMetaContext.nodeAsString(metavariableNode);
72
+ const metavariableString = localContext.nodeAsString(metavariableNode);
73
73
 
74
- localMetaContext.trace(`Verifying the '${metavariableString}' standalone metavariable...`, metavariableNode);
74
+ localContext.trace(`Verifying the '${metavariableString}' standalone metavariable...`, metavariableNode);
75
75
 
76
- const metavariablePresent = localMetaContext.isMetavariablePresentByMetavariableNode(metavariableNode, localMetaContext);
76
+ const metavariablePresent = localContext.isMetavariablePresentByMetavariableNode(metavariableNode, localContext);
77
77
 
78
78
  if (metavariablePresent) {
79
79
  const verifiedAhead = verifyAhead();
@@ -82,7 +82,7 @@ export function verifyStandaloneMetavariable(metavariableNode, localMetaContext,
82
82
  }
83
83
 
84
84
  if (standaloneMetavariableVerified) {
85
- localMetaContext.debug(`...verified the '${metavariableString}' standalone metavariable.`, metavariableNode);
85
+ localContext.debug(`...verified the '${metavariableString}' standalone metavariable.`, metavariableNode);
86
86
  }
87
87
 
88
88
  return standaloneMetavariableVerified;
@@ -13,12 +13,12 @@ const statementNodeQuery = nodeQuery("/unqualifiedStatement/statement!"),
13
13
  unqualifiedStatementNodeQuery = nodeQuery("/premise/unqualifiedStatement!"),
14
14
  unqualifiedMetastatementNodeQuery = nodeQuery("/premise/unqualifiedMetastatement!");
15
15
 
16
- export default function verifyPremise(premiseNode, premises, localMetaContext) {
16
+ export default function verifyPremise(premiseNode, premises, localContext) {
17
17
  let premiseVerified;
18
18
 
19
- const premiseString = localMetaContext.nodeAsString(premiseNode);
19
+ const premiseString = localContext.nodeAsString(premiseNode);
20
20
 
21
- localMetaContext.trace(`Verifying the '${premiseString}' premise...`, premiseNode);
21
+ localContext.trace(`Verifying the '${premiseString}' premise...`, premiseNode);
22
22
 
23
23
  const unqualifiedStatementNode = unqualifiedStatementNodeQuery(premiseNode),
24
24
  unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(premiseNode);
@@ -26,7 +26,6 @@ export default function verifyPremise(premiseNode, premises, localMetaContext) {
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 verifyPremise(premiseNode, premises, localMetaContext) {
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
  premiseVerified = assignmentAssigned; ///
@@ -71,9 +70,9 @@ export default function verifyPremise(premiseNode, premises, localMetaContext) {
71
70
 
72
71
  premises.push(premise);
73
72
 
74
- localMetaContext.addMetaproofStep(metaproofStep);
73
+ localContext.addMetaproofStep(metaproofStep);
75
74
 
76
- localMetaContext.debug(`...verified the '${premiseString}' premise.`, premiseNode);
75
+ localContext.debug(`...verified the '${premiseString}' premise.`, premiseNode);
77
76
  }
78
77
 
79
78
  return premiseVerified;
@@ -2,11 +2,11 @@
2
2
 
3
3
  import verifyPremise from "../verify/premise";
4
4
 
5
- export default function verifyPremises(premiseNodes, premises, localMetaContext) {
5
+ export default function verifyPremises(premiseNodes, premises, localContext) {
6
6
  let premisesVerified;
7
7
 
8
8
  premisesVerified = premiseNodes.every((premiseNode) => {
9
- const premiseVerified = verifyPremise(premiseNode, premises, localMetaContext);
9
+ const premiseVerified = verifyPremise(premiseNode, premises, localContext);
10
10
 
11
11
  if (premiseVerified) {
12
12
  return true;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import LocalContext from "../context/local";
4
3
  import verifyDerivation from "../verify/derivation";
4
+ import IntrinsicLevelLocalContext from "../context/local/intrinsicLevel";
5
5
 
6
6
  import { nodeQuery } from "../utilities/query";
7
7
 
@@ -10,7 +10,9 @@ const derivationNodeQuery = nodeQuery("/proof/derivation!");
10
10
  export default function verifyProof(proofNode, conclusion, localContext) {
11
11
  let proofVerified = false;
12
12
 
13
- localContext = LocalContext.fromLocalContext(localContext); ///
13
+ const intrinsicLevelLocalContext = IntrinsicLevelLocalContext.fromLocalContext(localContext); ///
14
+
15
+ localContext = intrinsicLevelLocalContext; ///
14
16
 
15
17
  const derivationNode = derivationNodeQuery(proofNode),
16
18
  derivationVerified = verifyDerivation(derivationNode, localContext);
@@ -4,8 +4,8 @@ import Rule from "../rule";
4
4
  import verifyLabels from "../verify/labels";
5
5
  import verifyPremises from "../verify/premises";
6
6
  import verifyRuleProof from "../verify/ruleProof";
7
- import LocalMetaContext from "../context/localMeta";
8
7
  import verifyConclusion from "../verify/conclusion";
8
+ import MetaLevelLocalContext from "../context/local/metaLevel";
9
9
 
10
10
  import { first } from "../utilities/array";
11
11
  import { nodeQuery, nodesQuery } from "../utilities/query";
@@ -19,8 +19,7 @@ export default function verifyRule(ruleNode, fileContext) {
19
19
  let ruleVerified = false;
20
20
 
21
21
  const labelNodes = labelNodesQuery(ruleNode),
22
- labelsString = fileContext.nodesAsString(labelNodes),
23
- localMetaContext = LocalMetaContext.fromFileContext(fileContext);
22
+ labelsString = fileContext.nodesAsString(labelNodes);
24
23
 
25
24
  fileContext.trace(`Verifying the '${labelsString}' rule...`, ruleNode);
26
25
 
@@ -28,14 +27,16 @@ export default function verifyRule(ruleNode, fileContext) {
28
27
  labelsVerified = verifyLabels(labelNodes, labels, fileContext);
29
28
 
30
29
  if (labelsVerified) {
31
- const premises = [],
30
+ const metaLevelLocalContext = MetaLevelLocalContext.fromFileContext(fileContext),
31
+ premises = [],
32
+ localContext = metaLevelLocalContext, ///
32
33
  premiseNodes = premisesNodeQuery(ruleNode),
33
- premisesVerified = verifyPremises(premiseNodes, premises, localMetaContext);
34
+ premisesVerified = verifyPremises(premiseNodes, premises, localContext);
34
35
 
35
36
  if (premisesVerified) {
36
37
  const conclusions = [],
37
38
  conclusionNode = conclusionNodeQuery(ruleNode),
38
- conclusionVerified = verifyConclusion(conclusionNode, conclusions, localMetaContext);
39
+ conclusionVerified = verifyConclusion(conclusionNode, conclusions, localContext);
39
40
 
40
41
  if (conclusionVerified) {
41
42
  const ruleProofNode = ruleProofNodeQuery(ruleNode),
@@ -45,7 +46,7 @@ export default function verifyRule(ruleNode, fileContext) {
45
46
  let ruleProofVerified = true; ///
46
47
 
47
48
  if (ruleProofNode !== null) {
48
- ruleProofVerified = verifyRuleProof(ruleProofNode, conclusion, localMetaContext);
49
+ ruleProofVerified = verifyRuleProof(ruleProofNode, conclusion, localContext);
49
50
  }
50
51
 
51
52
  if (ruleProofVerified) {
@@ -6,13 +6,13 @@ import { nodesQuery } from "../utilities/query";
6
6
 
7
7
  const ruleProofStepNodesQuery = nodesQuery("/ruleDerivation/ruleProofStep|lastRuleProofStep");
8
8
 
9
- export default function verifyRuleDerivation(ruleDerivationNode, localMetaContext) {
9
+ export default function verifyRuleDerivation(ruleDerivationNode, localContext) {
10
10
  let ruleDerivationVerified;
11
11
 
12
12
  const ruleProofStepNodes = ruleProofStepNodesQuery(ruleDerivationNode);
13
13
 
14
14
  ruleDerivationVerified = ruleProofStepNodes.every((ruleProofStepNode) => {
15
- const ruleProofStepVerified = verifyRuleProofStep(ruleProofStepNode, localMetaContext);
15
+ const ruleProofStepVerified = verifyRuleProofStep(ruleProofStepNode, localContext);
16
16
 
17
17
  if (ruleProofStepVerified) {
18
18
  return true;
@@ -1,22 +1,24 @@
1
1
  "use strict";
2
2
 
3
- import LocalMetaContext from "../context/localMeta";
4
3
  import verifyRuleDerivation from "../verify/ruleDerivation";
4
+ import MetaLevelLocalContext from "../context/local/metaLevel";
5
5
 
6
6
  import { nodeQuery } from "../utilities/query";
7
7
 
8
8
  const ruleDerivationNodeQuery = nodeQuery("/ruleProof/ruleDerivation!");
9
9
 
10
- export default function verifyRuleProof(ruleProofNode, conclusion, localMetaContext) {
10
+ export default function verifyRuleProof(ruleProofNode, conclusion, localContext) {
11
11
  let ruleProofVerified = false;
12
12
 
13
- localMetaContext = LocalMetaContext.fromLocalMetaContext(localMetaContext); ///
13
+ const metaLevelLocalContext = MetaLevelLocalContext.fromLocalContext(localContext);
14
+
15
+ localContext = metaLevelLocalContext; ///
14
16
 
15
17
  const ruleDerivationNode = ruleDerivationNodeQuery(ruleProofNode),
16
- ruleDerivationVerified = verifyRuleDerivation(ruleDerivationNode, localMetaContext);
18
+ ruleDerivationVerified = verifyRuleDerivation(ruleDerivationNode, localContext);
17
19
 
18
20
  if (ruleDerivationVerified) {
19
- const lastMetaproofStep = localMetaContext.getLastMetaproofStep(),
21
+ const lastMetaproofStep = localContext.getLastMetaproofStep(),
20
22
  metaproofStep = lastMetaproofStep, ///
21
23
  metastatementNode = metaproofStep.getMetastatementNode(),
22
24
  conclusionMetastatementNode = conclusion.getMetastatementNode(),