occam-verify-cli 0.0.922 → 0.0.924

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/lib/axiom.js +9 -9
  2. package/lib/conclusion.js +11 -41
  3. package/lib/conjecture.js +9 -9
  4. package/lib/constants.js +1 -13
  5. package/lib/context/file.js +3 -3
  6. package/lib/context/local.js +19 -59
  7. package/lib/declaration.js +15 -15
  8. package/lib/lemma.js +9 -9
  9. package/lib/metaLemma.js +7 -7
  10. package/lib/metatheorem.js +7 -7
  11. package/lib/metavariable.js +8 -1
  12. package/lib/mixins/nodesVerifier/metaLevel.js +6 -6
  13. package/lib/premise.js +14 -91
  14. package/lib/{step/proof.js → proofStep.js} +1 -1
  15. package/lib/rule.js +1 -45
  16. package/lib/ruleNames.js +1 -9
  17. package/lib/substitution/statementForMetavariable.js +9 -1
  18. package/lib/substitution.js +1 -8
  19. package/lib/supposition.js +55 -1
  20. package/lib/theorem.js +9 -9
  21. package/lib/topLevelAssertion.js +186 -0
  22. package/lib/utilities/customGrammar.js +2 -2
  23. package/lib/utilities/match.js +13 -50
  24. package/lib/utilities/node.js +2 -27
  25. package/lib/utilities/tokens.js +1 -8
  26. package/lib/utilities/verify.js +8 -24
  27. package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +29 -29
  28. package/lib/verifier/nodes/metaLevel.js +13 -13
  29. package/lib/verify/axiom.js +4 -4
  30. package/lib/verify/conclusion.js +10 -11
  31. package/lib/verify/conjecture.js +4 -4
  32. package/lib/verify/containedAssertion.js +91 -0
  33. package/lib/verify/declaration.js +7 -7
  34. package/lib/verify/definedAssertion.js +115 -0
  35. package/lib/verify/derivation.js +7 -7
  36. package/lib/verify/frame.js +2 -2
  37. package/lib/verify/judgement.js +2 -2
  38. package/lib/verify/lemma.js +5 -5
  39. package/lib/verify/metaLemma.js +12 -12
  40. package/lib/verify/metastatement.js +48 -67
  41. package/lib/verify/metatheorem.js +12 -12
  42. package/lib/verify/metavariable.js +2 -2
  43. package/lib/verify/premise.js +11 -30
  44. package/lib/verify/proof.js +3 -3
  45. package/lib/verify/proofStep.js +8 -8
  46. package/lib/verify/rule.js +10 -10
  47. package/lib/verify/statement/qualified.js +38 -15
  48. package/lib/verify/statement/unqualified.js +38 -10
  49. package/lib/verify/statement.js +85 -92
  50. package/lib/verify/subDerivation.js +3 -3
  51. package/lib/verify/subproof.js +3 -3
  52. package/lib/verify/supposition.js +3 -3
  53. package/lib/verify/termAsConstructor.js +2 -2
  54. package/lib/verify/theorem.js +4 -4
  55. package/package.json +2 -2
  56. package/src/axiom.js +4 -4
  57. package/src/conclusion.js +13 -52
  58. package/src/conjecture.js +4 -4
  59. package/src/constants.js +0 -3
  60. package/src/context/file.js +2 -2
  61. package/src/context/local.js +21 -67
  62. package/src/declaration.js +19 -19
  63. package/src/lemma.js +4 -4
  64. package/src/metaLemma.js +4 -4
  65. package/src/metatheorem.js +4 -4
  66. package/src/metavariable.js +6 -0
  67. package/src/mixins/nodesVerifier/metaLevel.js +8 -8
  68. package/src/premise.js +20 -137
  69. package/src/rule.js +0 -67
  70. package/src/ruleNames.js +0 -2
  71. package/src/substitution/statementForMetavariable.js +14 -0
  72. package/src/substitution.js +0 -6
  73. package/src/supposition.js +46 -0
  74. package/src/theorem.js +4 -4
  75. package/src/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +36 -23
  76. package/src/utilities/customGrammar.js +1 -2
  77. package/src/utilities/match.js +13 -60
  78. package/src/utilities/node.js +3 -32
  79. package/src/utilities/tokens.js +0 -8
  80. package/src/utilities/verify.js +4 -20
  81. package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +36 -37
  82. package/src/verifier/nodes/metaLevel.js +17 -17
  83. package/src/verify/axiom.js +5 -4
  84. package/src/verify/conclusion.js +9 -13
  85. package/src/verify/conjecture.js +5 -4
  86. package/src/verify/{statementAsContainedAssertion.js → containedAssertion.js} +20 -36
  87. package/src/verify/declaration.js +8 -8
  88. package/src/verify/{statementAsDefinedAssertion.js → definedAssertion.js} +22 -37
  89. package/src/verify/derivation.js +6 -6
  90. package/src/verify/frame.js +1 -1
  91. package/src/verify/judgement.js +1 -1
  92. package/src/verify/lemma.js +8 -5
  93. package/src/verify/metaLemma.js +24 -24
  94. package/src/verify/metastatement.js +48 -76
  95. package/src/verify/metatheorem.js +23 -23
  96. package/src/verify/metavariable.js +1 -1
  97. package/src/verify/premise.js +14 -46
  98. package/src/verify/proof.js +2 -2
  99. package/src/verify/proofStep.js +4 -4
  100. package/src/verify/rule.js +11 -11
  101. package/src/verify/statement/qualified.js +56 -21
  102. package/src/verify/statement/unqualified.js +52 -10
  103. package/src/verify/statement.js +133 -39
  104. package/src/verify/subDerivation.js +2 -2
  105. package/src/verify/subproof.js +2 -2
  106. package/src/verify/supposition.js +1 -1
  107. package/src/verify/termAsConstructor.js +2 -2
  108. package/src/verify/theorem.js +7 -4
  109. package/lib/axiomLemmaTheoremConjecture.js +0 -174
  110. package/lib/metaConsequent.js +0 -108
  111. package/lib/metaLemmaMetatheorem.js +0 -191
  112. package/lib/metaSupposition.js +0 -160
  113. package/lib/node/metastatement/bracketed.js +0 -16
  114. package/lib/step/metaproof.js +0 -106
  115. package/lib/substitution/metastatementForMetavariable.js +0 -173
  116. package/lib/verify/metaConsequent.js +0 -50
  117. package/lib/verify/metaDerivation.js +0 -31
  118. package/lib/verify/metaSubDerivation.js +0 -25
  119. package/lib/verify/metaSubproof.js +0 -34
  120. package/lib/verify/metaSupposition.js +0 -61
  121. package/lib/verify/metaSuppositions.js +0 -28
  122. package/lib/verify/metaproof.js +0 -31
  123. package/lib/verify/metaproofStep.js +0 -98
  124. package/lib/verify/metastatement/qualified.js +0 -95
  125. package/lib/verify/metastatement/unqualified.js +0 -37
  126. package/lib/verify/metastatementAsContainedAssertion.js +0 -109
  127. package/lib/verify/metastatementAsDefinedAssertion.js +0 -132
  128. package/lib/verify/metavariableAgainstMetastatement.js +0 -44
  129. package/lib/verify/statementAsContainedAssertion.js +0 -109
  130. package/lib/verify/statementAsDefinedAssertion.js +0 -132
  131. package/src/metaConsequent.js +0 -83
  132. package/src/metaLemmaMetatheorem.js +0 -188
  133. package/src/metaSupposition.js +0 -127
  134. package/src/node/metastatement/bracketed.js +0 -9
  135. package/src/step/metaproof.js +0 -73
  136. package/src/substitution/metastatementForMetavariable.js +0 -90
  137. package/src/verify/metaConsequent.js +0 -61
  138. package/src/verify/metaDerivation.js +0 -23
  139. package/src/verify/metaSubDerivation.js +0 -22
  140. package/src/verify/metaSubproof.js +0 -32
  141. package/src/verify/metaSupposition.js +0 -78
  142. package/src/verify/metaSuppositions.js +0 -17
  143. package/src/verify/metaproof.js +0 -28
  144. package/src/verify/metaproofStep.js +0 -137
  145. package/src/verify/metastatement/qualified.js +0 -130
  146. package/src/verify/metastatement/unqualified.js +0 -34
  147. package/src/verify/metastatementAsContainedAssertion.js +0 -127
  148. package/src/verify/metastatementAsDefinedAssertion.js +0 -156
  149. package/src/verify/metavariableAgainstMetastatement.js +0 -42
  150. /package/src/{step/proof.js → proofStep.js} +0 -0
@@ -2,23 +2,21 @@
2
2
 
3
3
  import metaLevelNodeVerifier from "../verifier/node/metaLevel";
4
4
 
5
- import { CONTAINED } from "../constants";
6
5
  import { isStatementNegated } from "../utilities/verify";
7
6
  import { nodeQuery, nodesQuery } from "../utilities/query";
8
7
 
9
8
  const termNodeQuery = nodeQuery("/statement/term!"),
10
- statementTermNodesQuery = nodesQuery("/statement/metaArgument/statement//term"),
11
- operatorTerminalNodesQuery = nodesQuery("/statement/@operator");
9
+ statementTermNodesQuery = nodesQuery("/statement/metaArgument/statement//term");
12
10
 
13
- export default function verifyStatementAsContainedAssertion(statementNode, assignments, derived, localContext) {
11
+ export default function verifyContainedAssertion(containedAssertionNode, assignments, derived, localContext) {
14
12
  let statementVerifiedAsContainedAssertion;
15
13
 
16
- const statementContainedAssertion = isStatementContainedAssertion(statementNode);
14
+ const statementContainedAssertion = isStatementContainedAssertion(containedAssertionNode);
17
15
 
18
16
  if (statementContainedAssertion) {
19
- const statementString = localContext.nodeAsString(statementNode);
17
+ const containedAssertionString = localContext.nodeAsString(containedAssertionNode);
20
18
 
21
- localContext.trace(`Verifying the '${statementString}' statement as a contained assertion...`, statementNode);
19
+ localContext.trace(`Verifying the '${containedAssertionString}' statement as a contained assertion...`, containedAssertionNode);
22
20
 
23
21
  const statementFunctions = [
24
22
  verifyStatementAsDerivedContainedAssertion,
@@ -26,7 +24,7 @@ export default function verifyStatementAsContainedAssertion(statementNode, assig
26
24
  ];
27
25
 
28
26
  statementVerifiedAsContainedAssertion = statementFunctions.some((statementFunction) => {
29
- const statementVerifiedAsContainedAssertion = statementFunction(statementNode, assignments, derived, localContext);
27
+ const statementVerifiedAsContainedAssertion = statementFunction(containedAssertionNode, assignments, derived, localContext);
30
28
 
31
29
  if (statementVerifiedAsContainedAssertion) {
32
30
  return true;
@@ -34,25 +32,25 @@ export default function verifyStatementAsContainedAssertion(statementNode, assig
34
32
  });
35
33
 
36
34
  if (statementVerifiedAsContainedAssertion) {
37
- localContext.debug(`...verified the '${statementString}' statement as a contained assertion.`, statementNode);
35
+ localContext.debug(`...verified the '${containedAssertionString}' statement as a contained assertion.`, containedAssertionNode);
38
36
  }
39
37
  }
40
38
 
41
39
  return statementVerifiedAsContainedAssertion;
42
40
  }
43
41
 
44
- function verifyStatementAsDerivedContainedAssertion(statementNode, assignments, derived, localContext) {
42
+ function verifyStatementAsDerivedContainedAssertion(containedAssertionNode, assignments, derived, localContext) {
45
43
  let statementVerifiedAsDefinedContainedAssertion = false;
46
44
 
47
45
  if (derived) {
48
- const statementString = localContext.nodeAsString(statementNode);
46
+ const containedAssertionString = localContext.nodeAsString(containedAssertionNode);
49
47
 
50
- localContext.trace(`Verifying the derived '${statementString}' statement as a contained assertion...`, statementNode);
48
+ localContext.trace(`Verifying the '${containedAssertionString}' derived statement as a contained assertion...`, containedAssertionNode);
51
49
 
52
- const statementNegated = isStatementNegated(statementNode),
53
- termNode = termNodeQuery(statementNode),
50
+ const statementNegated = isStatementNegated(containedAssertionNode),
51
+ termNode = termNodeQuery(containedAssertionNode),
54
52
  negated = statementNegated, ///
55
- statementTermNodes = statementTermNodesQuery(statementNode),
53
+ statementTermNodes = statementTermNodesQuery(containedAssertionNode),
56
54
  termNodeMatchesMetaArgumentVariableNode = statementTermNodes.some((statementTermNode) => {
57
55
  const termNodeMatchesMetaArgumentVariableNode = termNode.match(statementTermNode);
58
56
 
@@ -74,27 +72,27 @@ function verifyStatementAsDerivedContainedAssertion(statementNode, assignments,
74
72
  }
75
73
 
76
74
  if (statementVerifiedAsDefinedContainedAssertion) {
77
- localContext.debug(`...verified the derived '${statementString}' statement as a contained assertion.`, statementNode);
75
+ localContext.debug(`...verified the '${containedAssertionString}' derived statement as a contained assertion.`, containedAssertionNode);
78
76
  }
79
77
  }
80
78
 
81
79
  return statementVerifiedAsDefinedContainedAssertion;
82
80
  }
83
81
 
84
- function verifyStatementAsStatedContainedAssertion(statementNode, assignments, derived, localContext) {
82
+ function verifyStatementAsStatedContainedAssertion(containedAssertionNode, assignments, derived, localContext) {
85
83
  let statementVerifiedAsStatedContainedAssertion = false;
86
84
 
87
85
  if (!derived) {
88
- const statementString = localContext.nodeAsString(statementNode);
86
+ const containedAssertionString = localContext.nodeAsString(containedAssertionNode);
89
87
 
90
- localContext.trace(`Verifying the stated '${statementString}' statement as a contained assertion...`, statementNode);
88
+ localContext.trace(`Verifying the '${containedAssertionString}' stated statement as a contained assertion...`, containedAssertionNode);
91
89
 
92
90
  const intrinsicLevel = localContext.isIntrinsicLevel();
93
91
 
94
92
  if (intrinsicLevel) {
95
- localContext.debug(`The stated '${statementString}' statement as a contained assertion cannot be verified at intrinsic level.`, statementNode);
93
+ localContext.debug(`The '${containedAssertionString}' stated statement as a contained assertion cannot be verified at intrinsic level.`, containedAssertionNode);
96
94
  } else {
97
- const nonTerminalNode = statementNode, ///
95
+ const nonTerminalNode = containedAssertionNode, ///
98
96
  nonTerminalNodeVerified = metaLevelNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localContext, () => {
99
97
  const verifiedAhead = true;
100
98
 
@@ -105,23 +103,9 @@ function verifyStatementAsStatedContainedAssertion(statementNode, assignments, d
105
103
  }
106
104
 
107
105
  if (statementVerifiedAsStatedContainedAssertion) {
108
- localContext.debug(`...verified the stated '${statementString}' statement as a contained assertion.`, statementNode);
106
+ localContext.debug(`...verified the '${containedAssertionString}' stated statement as a contained assertion.`, containedAssertionNode);
109
107
  }
110
108
  }
111
109
 
112
110
  return statementVerifiedAsStatedContainedAssertion;
113
111
  }
114
-
115
- export function isStatementContainedAssertion(statementNode) {
116
- const operatorTerminalNodes = operatorTerminalNodesQuery(statementNode),
117
- statementContainedAssertion = operatorTerminalNodes.some((operatorTerminalNode) => {
118
- const content = operatorTerminalNode.getContent(),
119
- contentContained = (content === CONTAINED);
120
-
121
- if (contentContained) {
122
- return true;
123
- }
124
- });
125
-
126
- return statementContainedAssertion;
127
- }
@@ -7,8 +7,8 @@ import metaLevelNodeVerifier from "../verifier/node/metaLevel";
7
7
  import { nodeQuery } from "../utilities/query";
8
8
 
9
9
  const referenceNodeQuery = nodeQuery("/declaration/reference!"),
10
- metavariableNodeQuery = nodeQuery("/reference/metavariable!"),
11
- metastatementNodeQuery = nodeQuery("/declaration/metastatement!");
10
+ statementNodeQuery = nodeQuery("/declaration/statement!"),
11
+ metavariableNodeQuery = nodeQuery("/reference/metavariable!");
12
12
 
13
13
  export default function verifyDeclaration(declarationNode, declarations, localContext) {
14
14
  let declarationVerified = false;
@@ -21,20 +21,20 @@ export default function verifyDeclaration(declarationNode, declarations, localCo
21
21
  referenceVerified = verifyReference(referenceNode, localContext);
22
22
 
23
23
  if (referenceVerified) {
24
- const metastatementNode = metastatementNodeQuery(declarationNode);
24
+ const statementNode = statementNodeQuery(declarationNode);
25
25
 
26
- const { verifyMetastatement } = metaLevelNodeVerifier,
26
+ const { verifyStatement } = metaLevelNodeVerifier,
27
27
  derived = false,
28
28
  assignments = [],
29
- metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived, localContext, () => {
29
+ statementVerified = verifyStatement(statementNode, assignments, derived, localContext, () => {
30
30
  const verifiedAhead = true;
31
31
 
32
32
  return verifiedAhead;
33
33
  });
34
34
 
35
- if (metastatementVerified) {
35
+ if (statementVerified) {
36
36
  const metavariableNode = metavariableNodeQuery(referenceNode),
37
- declaration = Declaration.fromMetavariableNodeAndMetastatementNode(metavariableNode, metastatementNode);
37
+ declaration = Declaration.fromMetavariableNodeAndStatementNode(metavariableNode, statementNode);
38
38
 
39
39
  declarations.push(declaration);
40
40
 
@@ -57,7 +57,7 @@ function verifyReference(referenceNode, localContext) {
57
57
  localContext.trace(`Verifying the '${referenceString}' reference...`, referenceNode);
58
58
 
59
59
  const metavariableNode = metavariableNodeQuery(referenceNode),
60
- metavariable = localContext.findMetavariableByMetavariableNode(metavariableNode, localContext);
60
+ metavariable = localContext.findMetavariableByMetavariableNode(metavariableNode);
61
61
 
62
62
  if (metavariable !== null) {
63
63
  const metaType = metavariable.getMetaType();
@@ -5,22 +5,21 @@ import metaLevelNodeVerifier from "../verifier/node/metaLevel";
5
5
 
6
6
  import { first } from "../utilities/array";
7
7
  import { DEFINED } from "../constants";
8
- import { isStatementNegated } from "../utilities/verify";
9
- import { nodeQuery, nodesQuery } from "../utilities/query";
8
+ import { nodeQuery } from "../utilities/query";
9
+ import { isAssertionNegated } from "../utilities/verify";
10
10
 
11
11
  const termNodeQuery = nodeQuery("/statement/term!"),
12
- variableNodeQuery = nodeQuery("/statement/term/variable!"),
13
- operatorTerminalNodesQuery = nodesQuery("/statement/@operator");
12
+ variableNodeQuery = nodeQuery("/statement/term/variable!");
14
13
 
15
- export default function verifyStatementAsDefinedAssertion(statementNode, assignments, derived, localContext) {
14
+ export default function verifyDefinedAssertion(definedAssertionNode, assignments, derived, localContext) {
16
15
  let statementVerifiedAsDefinedAssertion = false;
17
16
 
18
- const statementDefinedAssertion = isStatementDefinedAssertion(statementNode);
17
+ const statementDefinedAssertion = isStatementDefinedAssertion(definedAssertionNode);
19
18
 
20
19
  if (statementDefinedAssertion) {
21
- const statementString = localContext.nodeAsString(statementNode);
20
+ const definedAssertionString = localContext.nodeAsString(definedAssertionNode);
22
21
 
23
- localContext.trace(`Verifying the '${statementString}' statement as a defined assertion...`, statementNode);
22
+ localContext.trace(`Verifying the '${definedAssertionString}' statement as a defined assertion...`, definedAssertionNode);
24
23
 
25
24
  const definedAssertionFunctions = [
26
25
  verifyDerivedStatementAsDefinedAssertion,
@@ -28,7 +27,7 @@ export default function verifyStatementAsDefinedAssertion(statementNode, assignm
28
27
  ];
29
28
 
30
29
  statementVerifiedAsDefinedAssertion = definedAssertionFunctions.some((definedAssertionFunction) => {
31
- const statementVerifiedAsDefinedAssertion = definedAssertionFunction(statementNode, assignments, derived, localContext);
30
+ const statementVerifiedAsDefinedAssertion = definedAssertionFunction(definedAssertionNode, assignments, derived, localContext);
32
31
 
33
32
  if (statementVerifiedAsDefinedAssertion) {
34
33
  return true;
@@ -36,24 +35,24 @@ export default function verifyStatementAsDefinedAssertion(statementNode, assignm
36
35
  });
37
36
 
38
37
  if (statementVerifiedAsDefinedAssertion) {
39
- localContext.debug(`...verified the '${statementString}' statement as a defined assertion.`, statementNode);
38
+ localContext.debug(`...verified the '${definedAssertionString}' statement as a defined assertion.`, definedAssertionNode);
40
39
  }
41
40
  }
42
41
 
43
42
  return statementVerifiedAsDefinedAssertion;
44
43
  }
45
44
 
46
- function verifyDerivedStatementAsDefinedAssertion(statementNode, assignments, derived, localContext) {
45
+ function verifyDerivedStatementAsDefinedAssertion(definedAssertionNode, assignments, derived, localContext) {
47
46
  let derivedStatementVerifiedAsDefeindAssertion = false;
48
47
 
49
48
  if (derived) {
50
- const statementString = localContext.nodeAsString(statementNode);
49
+ const definedAssertionString = localContext.nodeAsString(definedAssertionNode);
51
50
 
52
- localContext.trace(`Verifying the derived '${statementString}' statement as a defined assertion...`, statementNode);
51
+ localContext.trace(`Verifying the '${definedAssertionString}' derived statement as a defined assertion...`, definedAssertionNode);
53
52
 
54
- const statementNegated = isStatementNegated(statementNode),
55
- variableNode = variableNodeQuery(statementNode),
56
- termNode = termNodeQuery(statementNode);
53
+ const statementNegated = isAssertionNegated(definedAssertionNode),
54
+ variableNode = variableNodeQuery(definedAssertionNode),
55
+ termNode = termNodeQuery(definedAssertionNode);
57
56
 
58
57
  if (false) {
59
58
  ///
@@ -103,27 +102,27 @@ function verifyDerivedStatementAsDefinedAssertion(statementNode, assignments, de
103
102
  }
104
103
 
105
104
  if (derivedStatementVerifiedAsDefeindAssertion) {
106
- localContext.debug(`...verified the derived '${statementString}' statement as a defined assertion.`, statementNode);
105
+ localContext.debug(`...verified the '${definedAssertionString}' derived statement as a defined assertion.`, definedAssertionNode);
107
106
  }
108
107
  }
109
108
 
110
109
  return derivedStatementVerifiedAsDefeindAssertion;
111
110
  }
112
111
 
113
- function verifyStatedStatementAsDefinedAssertion(statementNode, assignments, derived, localContext) {
112
+ function verifyStatedStatementAsDefinedAssertion(definedAssertionNode, assignments, derived, localContext) {
114
113
  let statedStatementVerifiedAsDefinedAssertion = false;
115
114
 
116
115
  if (!derived) {
117
- const statementString = localContext.nodeAsString(statementNode);
116
+ const definedAssertionString = localContext.nodeAsString(definedAssertionNode);
118
117
 
119
- localContext.trace(`Verifying the stated '${statementString}' statement as a defined assertion...`, statementNode);
118
+ localContext.trace(`Verifying the '${definedAssertionString}' stated statement as a defined assertion...`, definedAssertionNode);
120
119
 
121
120
  const intrinsicLevel = localContext.isIntrinsicLevel();
122
121
 
123
122
  if (intrinsicLevel) {
124
- localContext.debug(`The stated '${statementString}' statement as a defined assertion cannot be verified at intrinsic level.`, statementNode);
123
+ localContext.debug(`The '${definedAssertionString}' stated statement as a defined assertion cannot be verified at intrinsic level.`, definedAssertionNode);
125
124
  } else {
126
- const nonTerminalNode = statementNode, ///
125
+ const nonTerminalNode = definedAssertionNode, ///
127
126
  nonTerminalNodeVerified = metaLevelNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localContext, () => {
128
127
  const verifiedAhead = true;
129
128
 
@@ -134,23 +133,9 @@ function verifyStatedStatementAsDefinedAssertion(statementNode, assignments, der
134
133
  }
135
134
 
136
135
  if (statedStatementVerifiedAsDefinedAssertion) {
137
- localContext.debug(`...verified the stated '${statementString}' statement as a defined assertion.`, statementNode);
136
+ localContext.debug(`...verified the '${definedAssertionString}' stated statement as a defined assertion.`, definedAssertionNode);
138
137
  }
139
138
  }
140
139
 
141
140
  return statedStatementVerifiedAsDefinedAssertion;
142
141
  }
143
-
144
- export function isStatementDefinedAssertion(statementNode) {
145
- const operatorTerminalNodes = operatorTerminalNodesQuery(statementNode),
146
- statementDefinedAssertion = operatorTerminalNodes.some((operatorTerminalNode) => {
147
- const content = operatorTerminalNode.getContent(),
148
- contentDefined = (content === DEFINED);
149
-
150
- if (contentDefined) {
151
- return true;
152
- }
153
- });
154
-
155
- return statementDefinedAssertion;
156
- }
@@ -6,18 +6,18 @@ import { nodesQuery } from "../utilities/query";
6
6
 
7
7
  const proofStepNodesQuery = nodesQuery("/derivation/proofStep|lastProofStep");
8
8
 
9
- export default function verifyDerivation(ruleDerivationNode, localContext) {
10
- let ruleDerivationVerified;
9
+ export default function verifyDerivation(derivationNode, substitutions, localContext) {
10
+ let derivationVerified;
11
11
 
12
- const proofStepNodes = proofStepNodesQuery(ruleDerivationNode);
12
+ const proofStepNodes = proofStepNodesQuery(derivationNode);
13
13
 
14
- ruleDerivationVerified = proofStepNodes.every((proofStepNode) => {
15
- const proofStepVerified = verifyProofStep(proofStepNode, localContext);
14
+ derivationVerified = proofStepNodes.every((proofStepNode) => {
15
+ const proofStepVerified = verifyProofStep(proofStepNode, substitutions, localContext);
16
16
 
17
17
  if (proofStepVerified) {
18
18
  return true;
19
19
  }
20
20
  });
21
21
 
22
- return ruleDerivationVerified;
22
+ return derivationVerified;
23
23
  }
@@ -56,7 +56,7 @@ function verifyMetavariable(metavariableNode, declarations, localContext) {
56
56
 
57
57
  localContext.trace(`Verifying the '${metavariableString}' metavariable...`, metavariableNode);
58
58
 
59
- const metavariable = localContext.findMetavariableByMetavariableNode(metavariableNode, localContext);
59
+ const metavariable = localContext.findMetavariableByMetavariableNode(metavariableNode);
60
60
 
61
61
  if (metavariable !== null) {
62
62
  const metaType = metavariable.getMetaType();
@@ -144,7 +144,7 @@ function verifyMetavariable(metavariableNode, localContext) {
144
144
 
145
145
  localContext.trace(`Verifying the '${metavariableString}' metavariable...`, metavariableNode);
146
146
 
147
- const metavariable = localContext.findMetavariableByMetavariableNode(metavariableNode, localContext);
147
+ const metavariable = localContext.findMetavariableByMetavariableNode(metavariableNode);
148
148
 
149
149
  if (metavariable !== null) {
150
150
  const metaType = metavariable.getMetaType();
@@ -20,8 +20,7 @@ export default function verifyLemma(lemmaNode, fileContext) {
20
20
  let lemmaVerified = false;
21
21
 
22
22
  const labelNodes = labelNodesQuery(lemmaNode),
23
- labelsString = fileContext.nodesAsString(labelNodes),
24
- localContext = LocalContext.fromFileContext(fileContext);
23
+ labelsString = fileContext.nodesAsString(labelNodes);
25
24
 
26
25
  (labelsString === EMPTY_STRING) ?
27
26
  fileContext.trace(`Verifying a lemma...`, lemmaNode) :
@@ -31,7 +30,8 @@ export default function verifyLemma(lemmaNode, fileContext) {
31
30
  labelsVerified = verifyLabels(labelNodes, labels, fileContext);
32
31
 
33
32
  if (labelsVerified) {
34
- const suppositions = [],
33
+ const localContext = LocalContext.fromFileContext(fileContext),
34
+ suppositions = [],
35
35
  suppositionNodes = suppositionsNodeQuery(lemmaNode),
36
36
  suppositionsVerified = verifySuppositions(suppositionNodes, suppositions, localContext);
37
37
 
@@ -44,10 +44,13 @@ export default function verifyLemma(lemmaNode, fileContext) {
44
44
  const proofNode = proofNodeQuery(lemmaNode),
45
45
  firstConsequent = first(consequents),
46
46
  consequent = firstConsequent, ///
47
- proofVerified = verifyProof(proofNode, consequent, localContext);
47
+ statementNode = consequent.getStatementNode(),
48
+ substitutions = [],
49
+ proofVerified = verifyProof(proofNode, statementNode, substitutions, localContext);
48
50
 
49
51
  if (proofVerified) {
50
- const lemma = Lemma.fromLabelsSuppositionsConsequentAndLocalContext(labels, suppositions, consequent, localContext);
52
+ const substitutions = [],
53
+ lemma = Lemma.fromLabelsSuppositionsConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, substitutions, fileContext);
51
54
 
52
55
  fileContext.addLemma(lemma);
53
56
 
@@ -1,20 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  import MetaLemma from "../metaLemma";
4
+ import verifyProof from "../verify/proof";
4
5
  import LocalContext from "../context/local";
5
6
  import verifyLabels from "../verify/labels";
6
- import verifyMetaproof from "../verify/metaproof";
7
- import verifyMetaConsequent from "../verify/metaConsequent";
8
- import verifyMetaSuppositions from "../verify/metaSuppositions";
7
+ import verifyConsequent from "../verify/consequent";
8
+ import verifySuppositions from "../verify/suppositions";
9
9
 
10
10
  import { first } from "../utilities/array";
11
11
  import { EMPTY_STRING } from "../constants";
12
12
  import { nodeQuery, nodesQuery } from "../utilities/query";
13
13
 
14
- const labelNodesQuery = nodesQuery("/metaLemma/label"),
15
- metaproofNodeQuery = nodeQuery("/metaLemma/metaproof!"),
16
- metaConsequentNodeQuery = nodeQuery("/metaLemma/metaConsequent!"),
17
- metaSuppositionsNodeQuery = nodesQuery("/metaLemma/metaSupposition");
14
+ const proofNodeQuery = nodeQuery("/metaLemma/proof!"),
15
+ labelNodesQuery = nodesQuery("/metaLemma/label"),
16
+ consequentNodeQuery = nodeQuery("/metaLemma/consequent!"),
17
+ suppositionsNodeQuery = nodesQuery("/metaLemma/supposition");
18
18
 
19
19
  export default function verifyMetaLemma(metaLemmaNode, fileContext) {
20
20
  let metaLemmaVerified = false;
@@ -30,26 +30,26 @@ export default function verifyMetaLemma(metaLemmaNode, fileContext) {
30
30
  labelsVerified = verifyLabels(labelNodes, labels, fileContext);
31
31
 
32
32
  if (labelsVerified) {
33
- const localContext = LocalContext.fromFileContext(fileContext), ///
34
- substitutions = [],
35
- metaSuppositions = [],
36
- metaSuppositionNodes = metaSuppositionsNodeQuery(metaLemmaNode),
37
- metaSuppositionsVerified = verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, substitutions, localContext);
33
+ const localContext = LocalContext.fromFileContext(fileContext),
34
+ suppositions = [],
35
+ suppositionNodes = suppositionsNodeQuery(metaLemmaNode),
36
+ suppositionsVerified = verifySuppositions(suppositionNodes, suppositions, localContext);
38
37
 
39
- if (metaSuppositionsVerified) {
40
- const metaConsequents = [],
41
- metaConsequentNode = metaConsequentNodeQuery(metaLemmaNode),
42
- metaConsequentVerified = verifyMetaConsequent(metaConsequentNode, metaConsequents, substitutions, localContext);
38
+ if (suppositionsVerified) {
39
+ const consequents = [],
40
+ consequentNode = consequentNodeQuery(metaLemmaNode),
41
+ consequentVerified = verifyConsequent(consequentNode, consequents, localContext);
43
42
 
44
- if (metaConsequentVerified) {
45
- const metaproofNode = metaproofNodeQuery(metaLemmaNode),
46
- firstMetaConsequent = first(metaConsequents),
47
- metaConsequent = firstMetaConsequent, ///
48
- metastatementNode = metaConsequent.getMetastatementNode(),
49
- metaproofVerified = verifyMetaproof(metaproofNode, metastatementNode, substitutions, localContext);
43
+ if (consequentVerified) {
44
+ const proofNode = proofNodeQuery(metaLemmaNode),
45
+ firstConsequent = first(consequents),
46
+ consequent = firstConsequent, ///
47
+ statementNode = consequent.getStatementNode(),
48
+ substitutions = [],
49
+ proofVerified = verifyProof(proofNode, statementNode, substitutions, localContext);
50
50
 
51
- if (metaproofVerified) {
52
- const metaLemma = MetaLemma.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, metaSuppositions, metaConsequent, substitutions, fileContext);
51
+ if (proofVerified) {
52
+ const metaLemma = MetaLemma.fromLabelsSuppositionsConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, substitutions, fileContext);
53
53
 
54
54
  fileContext.addMetaLemma(metaLemma);
55
55