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
@@ -1,76 +1,42 @@
1
1
  "use strict";
2
2
 
3
3
  import bracketedStatementNode from "../node/statement/bracketed";
4
- import bracketedMetastatementNode from "../node/metastatement/bracketed";
5
4
 
6
5
  import { nodeQuery } from "../utilities/query";
7
- import { BRACKETED_STATEMENT_DEPTH, BRACKETED_METASTATEMENT_DEPTH } from "../constants";
6
+ import { BRACKETED_STATEMENT_DEPTH } from "../constants";
8
7
 
9
- const bracketedStatementChildNodeQuery = nodeQuery("/statement/metaArgument!/statement!"),
10
- bracketedMetastatementChildNodeQuery = nodeQuery("/metastatement/metastatement!");
8
+ const bracketedStatementChildNodeQuery = nodeQuery("/statement/statement!");
11
9
 
12
10
  export function matchStatementModuloBrackets(statementNodeA, statementNodeB) {
13
- let statementMatchesModuloBrackets = false;
11
+ let statementMatches = false;
14
12
 
15
- if (!statementMatchesModuloBrackets) {
16
- const statementNodeAMatchesStatementNodeB = statementNodeA.match(statementNodeB);
13
+ if (!statementMatches) {
14
+ const statementNodeMatches = statementNodeA.match(statementNodeB);
17
15
 
18
- statementMatchesModuloBrackets = statementNodeAMatchesStatementNodeB; ///
16
+ statementMatches = statementNodeMatches; ///
19
17
  }
20
18
 
21
- if (!statementMatchesModuloBrackets) {
19
+ if (!statementMatches) {
22
20
  const bracketedStatementChildNodeA = bracketedStatementChildNodeFromStatementNode(statementNodeA);
23
21
 
24
22
  if (bracketedStatementChildNodeA !== null) {
25
- const bracketedStatementChildNodeAMatchStatementNodeB = bracketedStatementChildNodeA.match(statementNodeB);
23
+ const bracketedStatementChildNodeAMatchesStatementNodeB = bracketedStatementChildNodeA.match(statementNodeB);
26
24
 
27
- statementMatchesModuloBrackets = bracketedStatementChildNodeAMatchStatementNodeB; ///
25
+ statementMatches = bracketedStatementChildNodeAMatchesStatementNodeB; ///
28
26
  }
29
27
  }
30
28
 
31
- if (!statementMatchesModuloBrackets) {
29
+ if (!statementMatches) {
32
30
  const bracketedStatementChildNodeB = bracketedStatementChildNodeFromStatementNode(statementNodeB);
33
31
 
34
32
  if (bracketedStatementChildNodeB !== null) {
35
- const statementNodeAMatchBracketedStatementChildNodeB = statementNodeA.match(bracketedStatementChildNodeB);
33
+ const statementNodeAMatchesBracketedStatementChildNodeB = statementNodeA.match(bracketedStatementChildNodeB);
36
34
 
37
- statementMatchesModuloBrackets = statementNodeAMatchBracketedStatementChildNodeB; ///
35
+ statementMatches = statementNodeAMatchesBracketedStatementChildNodeB; ///
38
36
  }
39
37
  }
40
38
 
41
- return statementMatchesModuloBrackets;
42
- }
43
-
44
- export function matchMetastatementModuloBrackets(metastatementNodeA, metastatementNodeB) {
45
- let metastatementMatches = false;
46
-
47
- if (!metastatementMatches) {
48
- const metastatementNodeMatches = metastatementNodeA.match(metastatementNodeB);
49
-
50
- metastatementMatches = metastatementNodeMatches; ///
51
- }
52
-
53
- if (!metastatementMatches) {
54
- const bracketedMetastatementChildNodeA = bracketedMetastatementChildNodeFromMetastatementNode(metastatementNodeA);
55
-
56
- if (bracketedMetastatementChildNodeA !== null) {
57
- const bracketedMetastatementChildNodeAMatchesMetastatementNodeB = bracketedMetastatementChildNodeA.match(metastatementNodeB);
58
-
59
- metastatementMatches = bracketedMetastatementChildNodeAMatchesMetastatementNodeB; ///
60
- }
61
- }
62
-
63
- if (!metastatementMatches) {
64
- const bracketedMetastatementChildNodeB = bracketedMetastatementChildNodeFromMetastatementNode(metastatementNodeB);
65
-
66
- if (bracketedMetastatementChildNodeB !== null) {
67
- const metastatementNodeAMatchesBracketedMetastatementChildNodeB = metastatementNodeA.match(bracketedMetastatementChildNodeB);
68
-
69
- metastatementMatches = metastatementNodeAMatchesBracketedMetastatementChildNodeB; ///
70
- }
71
- }
72
-
73
- return metastatementMatches;
39
+ return statementMatches;
74
40
  }
75
41
 
76
42
  export function bracketedStatementChildNodeFromStatementNode(statementNode) {
@@ -85,16 +51,3 @@ export function bracketedStatementChildNodeFromStatementNode(statementNode) {
85
51
 
86
52
  return bracketedStatementChildNode;
87
53
  }
88
-
89
- export function bracketedMetastatementChildNodeFromMetastatementNode(metastatementNode) {
90
- let bracketedMetastatementChildNode = null;
91
-
92
- const depth = BRACKETED_METASTATEMENT_DEPTH,
93
- metastatementNodeMatchesBracketedMetastatementNode = metastatementNode.match(bracketedMetastatementNode, depth);
94
-
95
- if (metastatementNodeMatchesBracketedMetastatementNode) {
96
- bracketedMetastatementChildNode = bracketedMetastatementChildNodeQuery(metastatementNode);
97
- }
98
-
99
- return bracketedMetastatementChildNode;
100
- }
@@ -7,12 +7,10 @@ import { combinedCustomGrammarFromNothing } from "./customGrammar";
7
7
  import { METAVARIABLE_RULE_NAME,
8
8
  VARIABLE_DECLARATION_RULE_NAME,
9
9
  UNQUALIFIED_STATEMENT_RULE_NAME,
10
- CONSTRUCTOR_DECLARATION_RULE_NAME,
11
- UNQUALIFIED_METASTATEMENT_RULE_NAME } from "../ruleNames";
10
+ CONSTRUCTOR_DECLARATION_RULE_NAME } from "../ruleNames";
12
11
  import { metavariableTokensFromMetavariableString,
13
12
  variableDeclarationTokensFromVariableString,
14
- unqualifiedStatementTokensFromStatementString,
15
- unqualifiedMetastatementTokensFromMetastatementString } from "../utilities/tokens";
13
+ unqualifiedStatementTokensFromStatementString } from "../utilities/tokens";
16
14
 
17
15
  const { florenceParserFromCombinedCustomGrammar } = parsersUtilities;
18
16
 
@@ -21,8 +19,7 @@ const combinedCustomGrammar = combinedCustomGrammarFromNothing(),
21
19
 
22
20
  const termNodeQuery = nodeQuery("/constructorDeclaration/term!"),
23
21
  variableNodeQuery = nodeQuery("/variableDeclaration/variable!"),
24
- statementNodeQuery = nodeQuery("/unqualifiedStatement/statement!"),
25
- metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!");
22
+ statementNodeQuery = nodeQuery("/unqualifiedStatement/statement!");
26
23
 
27
24
  export function variableNodeFromVariableString(variableString, lexer, parser) {
28
25
  const variableTDeclarationTokens = variableDeclarationTokensFromVariableString(variableString, lexer),
@@ -45,13 +42,6 @@ export function metavariableNodeFromMetavariableString(metavariableString, lexer
45
42
  return metavariableNode;
46
43
  }
47
44
 
48
- export function metastatementNodeFromMetastatementString(metastatementString, lexer, parser) {
49
- const unqualifiedMetastatementTokens = unqualifiedMetastatementTokensFromMetastatementString(metastatementString, lexer),
50
- metastatementNode = metastatementNodeFromUnqualifiedMetastatementTokens(unqualifiedMetastatementTokens, parser);
51
-
52
- return metastatementNode;
53
- }
54
-
55
45
  export function termNodeFromConstructorDeclarationTokens(constructorDeclarationTokens, parser) {
56
46
  let termNode = null;
57
47
 
@@ -88,18 +78,6 @@ export function variableNodeFromVariableVariableTDeclarationTokens(variableTDecl
88
78
  return variableNode;
89
79
  }
90
80
 
91
- export function metastatementNodeFromUnqualifiedMetastatementTokens(unqualifiedMetastatementTokens, parser) {
92
- let metastatementNode = null;
93
-
94
- const unqualifiedMetastatementNode = unqualifiedMetastatementNodeFromUnqualifiedMetastatementTokens(unqualifiedMetastatementTokens, parser);
95
-
96
- if (unqualifiedMetastatementNode !== null) {
97
- metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode);
98
- }
99
-
100
- return metastatementNode;
101
- }
102
-
103
81
  export function metavariableNodeFromMetavariableTokens(metavariableTokens, parser) {
104
82
  const ruleName = METAVARIABLE_RULE_NAME,
105
83
  metavariableNode = nodeFromTokensRuleNameAndParser(metavariableTokens, ruleName, parser);
@@ -128,13 +106,6 @@ export function constructorDeclarationNodeFromConstructorDeclarationTokens(const
128
106
  return constructorDeclarationNode;
129
107
  }
130
108
 
131
- export function unqualifiedMetastatementNodeFromUnqualifiedMetastatementTokens(unqualifiedMetastatementTokens, parser) {
132
- const ruleName = UNQUALIFIED_METASTATEMENT_RULE_NAME,
133
- unqualifiedMetastatementNode = nodeFromTokensRuleNameAndParser(unqualifiedMetastatementTokens, ruleName, parser);
134
-
135
- return unqualifiedMetastatementNode;
136
- }
137
-
138
109
  function nodeFromTokensRuleNameAndParser(tokens, ruleName, parser = florenceParser) {
139
110
  const ruleMap = parser.getRuleMap(),
140
111
  rule = ruleMap[ruleName],
@@ -40,14 +40,6 @@ export function unqualifiedStatementTokensFromStatementString(statementString, l
40
40
  return unqualifiedStatementTokens;
41
41
  }
42
42
 
43
- export function unqualifiedMetastatementTokensFromMetastatementString(metastatementString, lexer) {
44
- const unqualifiedMetastatementContent = `${metastatementString}
45
- `,
46
- unqualifiedMetastatementTokens = tokensFromContentAndLexer(unqualifiedMetastatementContent, lexer);
47
-
48
- return unqualifiedMetastatementTokens;
49
- }
50
-
51
43
  function tokensFromContentAndLexer(content, lexer = florenceLexer) {
52
44
  const tokens = lexer.tokenise(content);
53
45
 
@@ -5,26 +5,10 @@ import { nodeQuery } from "../utilities/query";
5
5
 
6
6
  const secondOperatorTerminalNodeQuery = nodeQuery("/*/@operator[1]");
7
7
 
8
- export function isStatementNegated(statementNode) {
9
- const node = statementNode, ///
10
- negated = isNegated(node),
11
- statementNegated = negated; ///
12
-
13
- return statementNegated;
14
- }
15
-
16
- export function isMetastatementNegated(metastatementNode) {
17
- const node = metastatementNode, ///
18
- negated = isNegated(node),
19
- statementNegated = negated; ///
20
-
21
- return statementNegated;
22
- }
23
-
24
- function isNegated(node) {
25
- const secondOperatorTerminalNode = secondOperatorTerminalNodeQuery(node),
8
+ export function isAssertionNegated(assertionNode) {
9
+ const secondOperatorTerminalNode = secondOperatorTerminalNodeQuery(assertionNode),
26
10
  content = secondOperatorTerminalNode.getContent(),
27
- negated = (content === NOT);
11
+ assertionNegated = (content === NOT);
28
12
 
29
- return negated;
13
+ return assertionNegated;
30
14
  }
@@ -11,10 +11,9 @@ const termNodeQuery = nodeQuery("/term!"),
11
11
  statementNodeQuery = nodeQuery("/statement!"),
12
12
  nonTerminalNodeQuery = nodeQuery("/*"),
13
13
  termVariableNodeQuery = nodeQuery("/term/variable!"),
14
- metastatementNodeQuery = nodeQuery("/metastatement!"),
15
14
  metaArgumentStatementNodeQuery = nodeQuery("/metaArgument/statement!"),
16
- metastatementMetavariableNodeQuery = nodeQuery("/metastatement/metavariable!"),
17
- metastatementSubstitutionNodeQuery = nodeQuery("/metastatement/substitution");
15
+ statementMetavariableNodeQuery = nodeQuery("/statement/metavariable!"),
16
+ statementSubstitutionNodeQuery = nodeQuery("/statement/substitution");
18
17
 
19
18
  class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
20
19
  verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead) {
@@ -22,54 +21,54 @@ class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
22
21
 
23
22
  const nodeQueryMaps = [
24
23
  {
25
- nodeQueryA: metastatementMetavariableNodeQuery,
24
+ nodeQueryA: statementMetavariableNodeQuery,
26
25
  nodeQueryB: metaArgumentStatementNodeQuery,
27
26
  verifyNodes: (nodeA, nodeB, substitutions, localContextA, localContextB, verifyAhead) => {
28
27
  let nonTerminalNodeVerified;
29
28
 
30
29
  const metaArgumentStatementNodeB = nodeB, ///
31
- metastatementMetavariableNodeA = nodeA, ///
32
- metastatementSubstitutionNodeA = metastatementSubstitutionNodeQuery(nonTerminalNodeA),
33
- metastatementMetavariableNodeVerifiedAgainstMetaArgumentStatementNode =
30
+ statementMetavariableNodeA = nodeA, ///
31
+ statementSubstitutionNodeA = statementSubstitutionNodeQuery(nonTerminalNodeA),
32
+ statementMetavariableNodeVerifiedAgainstMetaArgumentStatementNode =
34
33
 
35
- this.verifyMetastatementMetavariableNodeAgainstMetaArgumentStatementNode(metastatementMetavariableNodeA, metaArgumentStatementNodeB, metastatementSubstitutionNodeA, substitutions, localContextA, localContextB, verifyAhead);
34
+ this.verifyStatementMetavariableNodeAgainstMetaArgumentStatementNode(statementMetavariableNodeA, metaArgumentStatementNodeB, statementSubstitutionNodeA, substitutions, localContextA, localContextB, verifyAhead);
36
35
 
37
- nonTerminalNodeVerified = metastatementMetavariableNodeVerifiedAgainstMetaArgumentStatementNode; ///
36
+ nonTerminalNodeVerified = statementMetavariableNodeVerifiedAgainstMetaArgumentStatementNode; ///
38
37
 
39
38
  return nonTerminalNodeVerified;
40
39
  }
41
40
  },
42
41
  {
43
- nodeQueryA: metastatementMetavariableNodeQuery,
42
+ nodeQueryA: statementMetavariableNodeQuery,
44
43
  nodeQueryB: statementNodeQuery,
45
44
  verifyNodes: (nodeA, nodeB, substitutions, localContextA, localContextB, verifyAhead) => {
46
45
  let nonTerminalNodeVerified;
47
46
 
48
47
  const statementNodeB = nodeB, ///
49
- metastatementMetavariableNodeA = nodeA, ///
50
- metastatementSubstitutionNodeA = metastatementSubstitutionNodeQuery(nonTerminalNodeA),
51
- metastatementMetavariableNodeVerifiedAgainstStatementNode =
48
+ statementMetavariableNodeA = nodeA, ///
49
+ statementSubstitutionNodeA = statementSubstitutionNodeQuery(nonTerminalNodeA),
50
+ statementMetavariableNodeVerifiedAgainstStatementNode =
52
51
 
53
- this.verifyMetastatementMetavariableNodeAgainstStatementNode(metastatementMetavariableNodeA, statementNodeB, metastatementSubstitutionNodeA, substitutions, localContextA, localContextB, verifyAhead);
52
+ this.verifyStatementMetavariableNodeAgainstStatementNode(statementMetavariableNodeA, statementNodeB, statementSubstitutionNodeA, substitutions, localContextA, localContextB, verifyAhead);
54
53
 
55
- nonTerminalNodeVerified = metastatementMetavariableNodeVerifiedAgainstStatementNode; ///
54
+ nonTerminalNodeVerified = statementMetavariableNodeVerifiedAgainstStatementNode; ///
56
55
 
57
56
  return nonTerminalNodeVerified;
58
57
  }
59
58
  },
60
59
  {
61
- nodeQueryA: metastatementNodeQuery,
60
+ nodeQueryA: statementNodeQuery,
62
61
  nodeQueryB: statementNodeQuery,
63
62
  verifyNodes: (nodeA, nodeB, substitutions, localContextA, localContextB, verifyAhead) => {
64
63
  let nonTerminalNodeVerified;
65
64
 
66
65
  const statementNodeB = nodeB, ///
67
- metastatementNodeA = nodeA, ///
68
- metastatementNodeVerifiedAgainstStatementNode =
66
+ statementNodeA = nodeA, ///
67
+ statementNodeVerifiedAgainstStatementNode =
69
68
 
70
- this.verifyMetastatementNodeAgainstStatementNode(metastatementNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead);
69
+ this.verifyStatementNodeAgainstStatementNode(statementNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead);
71
70
 
72
- nonTerminalNodeVerified = metastatementNodeVerifiedAgainstStatementNode; ///
71
+ nonTerminalNodeVerified = statementNodeVerifiedAgainstStatementNode; ///
73
72
 
74
73
  return nonTerminalNodeVerified;
75
74
  }
@@ -116,35 +115,35 @@ class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
116
115
  return nonTerminalNodeVerified;
117
116
  }
118
117
 
119
- verifyMetastatementMetavariableNodeAgainstMetaArgumentStatementNode(metastatementMetavariableNodeA, metaArgumentStatementNodeB, metastatementSubstitutionNodeA, substitutions, localContextA, localContextB, verifyAhead) {
120
- let metastatementMetavariableNodeVerifiedAgainstMetaArgumentStatementNode;
118
+ verifyStatementMetavariableNodeAgainstMetaArgumentStatementNode(statementMetavariableNodeA, metaArgumentStatementNodeB, statementSubstitutionNodeA, substitutions, localContextA, localContextB, verifyAhead) {
119
+ let statementMetavariableNodeVerifiedAgainstMetaArgumentStatementNode;
121
120
 
122
121
  const statementNodeB = metaArgumentStatementNodeB, ///
123
- substitutionNode = metastatementSubstitutionNodeA, ///
124
- metavariableNodeA = metastatementMetavariableNodeA, ///
122
+ substitutionNode = statementSubstitutionNodeA, ///
123
+ metavariableNodeA = statementMetavariableNodeA, ///
125
124
  metavariableVerifiedAgainstStatement = verifyMetavariableAgainstStatement(metavariableNodeA, statementNodeB, substitutionNode, substitutions, localContextA, localContextB, verifyAhead)
126
125
 
127
- metastatementMetavariableNodeVerifiedAgainstMetaArgumentStatementNode = metavariableVerifiedAgainstStatement; ///
126
+ statementMetavariableNodeVerifiedAgainstMetaArgumentStatementNode = metavariableVerifiedAgainstStatement; ///
128
127
 
129
- return metastatementMetavariableNodeVerifiedAgainstMetaArgumentStatementNode;
128
+ return statementMetavariableNodeVerifiedAgainstMetaArgumentStatementNode;
130
129
  }
131
130
 
132
- verifyMetastatementMetavariableNodeAgainstStatementNode(metastatementMetavariableNodeA, statementNodeB, metastatementSubstitutionNodeA, substitutions, localContextA, localContextB, verifyAhead) {
133
- let metastatementMetavariableNodeVerifiedAgainstStatementNode;
131
+ verifyStatementMetavariableNodeAgainstStatementNode(statementMetavariableNodeA, statementNodeB, statementSubstitutionNodeA, substitutions, localContextA, localContextB, verifyAhead) {
132
+ let statementMetavariableNodeVerifiedAgainstStatementNode;
134
133
 
135
- const substitutionNode = metastatementSubstitutionNodeA, ///
136
- metavariableNodeA = metastatementMetavariableNodeA, ///
134
+ const substitutionNode = statementSubstitutionNodeA, ///
135
+ metavariableNodeA = statementMetavariableNodeA, ///
137
136
  metavariableVerifiedAgainstStatement = verifyMetavariableAgainstStatement(metavariableNodeA, statementNodeB, substitutionNode, substitutions, localContextA, localContextB, verifyAhead)
138
137
 
139
- metastatementMetavariableNodeVerifiedAgainstStatementNode = metavariableVerifiedAgainstStatement; ///
138
+ statementMetavariableNodeVerifiedAgainstStatementNode = metavariableVerifiedAgainstStatement; ///
140
139
 
141
- return metastatementMetavariableNodeVerifiedAgainstStatementNode;
140
+ return statementMetavariableNodeVerifiedAgainstStatementNode;
142
141
  }
143
142
 
144
- verifyMetastatementNodeAgainstStatementNode(metastatementNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead) {
145
- let metastatementNodeVerifiedAgainstStatementNode;
143
+ verifyStatementNodeAgainstStatementNode(statementNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead) {
144
+ let statementNodeVerifiedAgainstStatementNode;
146
145
 
147
- const nonTerminalNodeA = metastatementNodeA, ///
146
+ const nonTerminalNodeA = statementNodeA, ///
148
147
  nonTerminalNodeB = statementNodeB, ///
149
148
  nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(),
150
149
  nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(),
@@ -152,9 +151,9 @@ class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
152
151
  childNodesB = nonTerminalNodeBChildNodes, ///
153
152
  childNodesVerified = this.verifyChildNodes(childNodesA, childNodesB, substitutions, localContextA, localContextB, verifyAhead);
154
153
 
155
- metastatementNodeVerifiedAgainstStatementNode = childNodesVerified; ///
154
+ statementNodeVerifiedAgainstStatementNode = childNodesVerified; ///
156
155
 
157
- return metastatementNodeVerifiedAgainstStatementNode;
156
+ return statementNodeVerifiedAgainstStatementNode;
158
157
  }
159
158
 
160
159
  verifyTermVariableNodeAgainstTermNode(termVariableNodeA, termNodeB, substitutions, localContextA, localContextB, verifyAhead) {
@@ -2,16 +2,16 @@
2
2
 
3
3
  import NodesVerifier from "../../verifier/nodes";
4
4
  import verifyVariableAgainstTerm from "../../verify/variableAgainstTerm";
5
- import verifyMetavariableAgainstMetastatement from "../../verify/metavariableAgainstMetastatement";
5
+ import verifyMetavariableAgainstStatement from "../../verify/metavariableAgainstStatement";
6
6
 
7
7
  import { nodeQuery } from "../../utilities/query";
8
8
  import { verifyNodes } from "../../utilities/verifier";
9
9
 
10
10
  const termNodeQuery = nodeQuery("/term!"),
11
11
  nonTerminalNodeQuery = nodeQuery("/*"),
12
+ statementNodeQuery = nodeQuery("/statement!"),
12
13
  termVariableNodeQuery = nodeQuery("/term/variable!"),
13
- metastatementNodeQuery = nodeQuery("/metastatement!"),
14
- metastatementMetavariableNodeQuery = nodeQuery("/metastatement/metavariable!");
14
+ statementMetavariableNodeQuery = nodeQuery("/statement/metavariable!");
15
15
 
16
16
  class MetaLevelNodesVerifier extends NodesVerifier {
17
17
  verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) {
@@ -19,18 +19,18 @@ class MetaLevelNodesVerifier extends NodesVerifier {
19
19
 
20
20
  const nodeQueryMaps = [
21
21
  {
22
- nodeQueryA: metastatementMetavariableNodeQuery,
23
- nodeQueryB: metastatementNodeQuery,
22
+ nodeQueryA: statementMetavariableNodeQuery,
23
+ nodeQueryB: statementNodeQuery,
24
24
  verifyNodes: (nodeA, nodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) => {
25
25
  let nonTerminalNodeVerified;
26
26
 
27
- const metastatementNodeB = nodeB, ///
28
- metastatementMetavariableNodeA = nodeA, ///
29
- metastatementMetavariableNodeVerifiedAgainstMetastatementNode =
27
+ const statementNodeB = nodeB, ///
28
+ statementMetavariableNodeA = nodeA, ///
29
+ statementMetavariableNodeVerifiedAgainstStatementNode =
30
30
 
31
- this.verifyMetastatementMetavariableNodeAgainstMetastatementNode(metastatementMetavariableNodeA, metastatementNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
31
+ this.verifyStatementMetavariableNodeAgainstStatementNode(statementMetavariableNodeA, statementNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
32
32
 
33
- nonTerminalNodeVerified = metastatementMetavariableNodeVerifiedAgainstMetastatementNode; ///
33
+ nonTerminalNodeVerified = statementMetavariableNodeVerifiedAgainstStatementNode; ///
34
34
 
35
35
  return nonTerminalNodeVerified;
36
36
  }
@@ -77,16 +77,16 @@ class MetaLevelNodesVerifier extends NodesVerifier {
77
77
  return nonTerminalNodeVerified;
78
78
  }
79
79
 
80
- verifyMetastatementMetavariableNodeAgainstMetastatementNode(metastatementMetavariableNodeA, metastatementNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) {
81
- let metastatementMetavariableNodeVerifiedAgainstMetastatementNode;
80
+ verifyStatementMetavariableNodeAgainstStatementNode(statementMetavariableNodeA, statementNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) {
81
+ let statementMetavariableNodeVerifiedAgainstStatementNode;
82
82
 
83
- const metavariableNode = metastatementMetavariableNodeA, ///
84
- metastatementNode = metastatementNodeB, ///
85
- metavariableVerifiedAgainstMetastatement = verifyMetavariableAgainstMetastatement(metavariableNode, metastatementNode, substitutions, verifyAhead);
83
+ const metavariableNode = statementMetavariableNodeA, ///
84
+ statementNode = statementNodeB, ///
85
+ metavariableVerifiedAgainstStatement = verifyMetavariableAgainstStatement(metavariableNode, statementNode, substitutions, verifyAhead);
86
86
 
87
- metastatementMetavariableNodeVerifiedAgainstMetastatementNode = metavariableVerifiedAgainstMetastatement; ///
87
+ statementMetavariableNodeVerifiedAgainstStatementNode = metavariableVerifiedAgainstStatement; ///
88
88
 
89
- return metastatementMetavariableNodeVerifiedAgainstMetastatementNode;
89
+ return statementMetavariableNodeVerifiedAgainstStatementNode;
90
90
  }
91
91
 
92
92
  verifyTermVariableNodeAgainstTermNode(termVariableNodeA, termNodeB, substitutions, localContextA, localContextB, verifyAhead) {
@@ -17,8 +17,7 @@ export default function verifyAxiom(axiomNode, fileContext) {
17
17
  let axiomVerified = false;
18
18
 
19
19
  const labelNodes = labelNodesQuery(axiomNode),
20
- labelsString = fileContext.nodesAsString(labelNodes),
21
- localContext = LocalContext.fromFileContext(fileContext);
20
+ labelsString = fileContext.nodesAsString(labelNodes);
22
21
 
23
22
  fileContext.trace(`Verifying the '${labelsString}' axiom...`, axiomNode);
24
23
 
@@ -26,7 +25,8 @@ export default function verifyAxiom(axiomNode, fileContext) {
26
25
  labelsVerified = verifyLabels(labelNodes, labels, fileContext);
27
26
 
28
27
  if (labelsVerified) {
29
- const suppositions = [],
28
+ const localContext = LocalContext.fromFileContext(fileContext),
29
+ suppositions = [],
30
30
  suppositionNodes = suppositionsNodeQuery(axiomNode),
31
31
  suppositionsVerified = verifySuppositions(suppositionNodes, suppositions, localContext);
32
32
 
@@ -38,7 +38,8 @@ export default function verifyAxiom(axiomNode, fileContext) {
38
38
  if (consequentVerified) {
39
39
  const firstConsequent = first(consequents),
40
40
  consequent = firstConsequent, ///
41
- axiom = Axiom.fromLabelsSuppositionsConsequentAndLocalContext(labels, suppositions, consequent, localContext);
41
+ substitutions = [],
42
+ axiom = Axiom.fromLabelsSuppositionsConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, substitutions, fileContext);
42
43
 
43
44
  fileContext.addAxiom(axiom);
44
45
 
@@ -1,15 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import Conclusion from "../conclusion";
4
- import verifyUnqualifiedStatement from "./statement/unqualified";
5
- import verifyUnqualifiedMetastatement from "../verify/metastatement/unqualified";
4
+ import verifyUnqualifiedStatement from "../verify/statement/unqualified";
6
5
 
7
6
  import { nodeQuery } from "../utilities/query";
8
7
 
9
8
  const statementNodeQuery = nodeQuery("/unqualifiedStatement/statement!"),
10
- metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!"),
11
- unqualifiedStatementNodeQuery = nodeQuery("/conclusion/unqualifiedStatement!"),
12
- unqualifiedMetastatementNodeQuery = nodeQuery("/conclusion/unqualifiedMetastatement!");
9
+ unqualifiedStatementNodeQuery = nodeQuery("/conclusion/unqualifiedStatement!");
13
10
 
14
11
  export default function verifyConclusion(conclusionNode, conclusions, localContext) {
15
12
  let conclusionVerified = false;
@@ -18,8 +15,7 @@ export default function verifyConclusion(conclusionNode, conclusions, localConte
18
15
 
19
16
  localContext.trace(`Verifying the '${conclusionString}' conclusion...`, conclusionNode);
20
17
 
21
- const unqualifiedStatementNode = unqualifiedStatementNodeQuery(conclusionNode),
22
- unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(conclusionNode);
18
+ const unqualifiedStatementNode = unqualifiedStatementNodeQuery(conclusionNode);
23
19
 
24
20
  if (unqualifiedStatementNode !== null) {
25
21
  const derived = false,
@@ -29,12 +25,12 @@ export default function verifyConclusion(conclusionNode, conclusions, localConte
29
25
  conclusionVerified = unqualifiedStatementVerified; ///
30
26
  }
31
27
 
32
- if (unqualifiedMetastatementNode !== null) {
28
+ if (unqualifiedStatementNode !== null) {
33
29
  const derived = false,
34
30
  assignments = [],
35
- unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext);
31
+ unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
36
32
 
37
- conclusionVerified = unqualifiedMetastatementVerified; ///
33
+ conclusionVerified = unqualifiedStatementVerified; ///
38
34
  }
39
35
 
40
36
  if (conclusionVerified) {
@@ -46,10 +42,10 @@ export default function verifyConclusion(conclusionNode, conclusions, localConte
46
42
  conclusion = Conclusion.fromStatementNode(statementNode);
47
43
  }
48
44
 
49
- if (unqualifiedMetastatementNode !== null) {
50
- const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode);
45
+ if (unqualifiedStatementNode !== null) {
46
+ const statementNode = statementNodeQuery(unqualifiedStatementNode);
51
47
 
52
- conclusion = Conclusion.fromMetastatementNode(metastatementNode);
48
+ conclusion = Conclusion.fromStatementNode(statementNode);
53
49
  }
54
50
 
55
51
  conclusions.push(conclusion);
@@ -19,8 +19,7 @@ export default function verifyConjecture(conjectureNode, fileContext) {
19
19
  let conjectureVerified = false;
20
20
 
21
21
  const labelNodes = labelNodesQuery(conjectureNode),
22
- labelsString = fileContext.nodesAsString(labelNodes),
23
- localContext = LocalContext.fromFileContext(fileContext); ///
22
+ labelsString = fileContext.nodesAsString(labelNodes);
24
23
 
25
24
  fileContext.trace(`Verifying the '${labelsString}' conjecture...`, conjectureNode);
26
25
 
@@ -28,7 +27,8 @@ export default function verifyConjecture(conjectureNode, fileContext) {
28
27
  labelsVerified = verifyLabels(labelNodes, labels, fileContext);
29
28
 
30
29
  if (labelsVerified) {
31
- const suppositions = [],
30
+ const localContext = LocalContext.fromFileContext(fileContext),
31
+ suppositions = [],
32
32
  suppositionNodes = suppositionsNodeQuery(conjectureNode),
33
33
  suppositionsVerified = verifySuppositions(suppositionNodes, suppositions, localContext);
34
34
 
@@ -46,7 +46,8 @@ export default function verifyConjecture(conjectureNode, fileContext) {
46
46
  verifyProof(proofNode, consequent, localContext);
47
47
  }
48
48
 
49
- const conjecture = Conjecture.fromLabelsSuppositionsConsequentAndLocalContext(labels, suppositions, consequent, localContext);
49
+ const substitutions = [],
50
+ conjecture = Conjecture.fromLabelsSuppositionsConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, substitutions, fileContext);
50
51
 
51
52
  fileContext.addConjecture(conjecture);
52
53