occam-verify-cli 0.0.921 → 0.0.923

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 (120) hide show
  1. package/lib/axiomLemmaTheoremConjecture.js +3 -4
  2. package/lib/conclusion.js +13 -43
  3. package/lib/constants.js +1 -5
  4. package/lib/context/local.js +386 -0
  5. package/lib/declaration.js +15 -15
  6. package/lib/metaLemmaMetatheorem.js +59 -59
  7. package/lib/mixins/context.js +17 -13
  8. package/lib/mixins/nodesVerifier/metaLevel.js +6 -6
  9. package/lib/premise.js +16 -94
  10. package/lib/{step/proof.js → proofStep.js} +1 -1
  11. package/lib/rule.js +1 -45
  12. package/lib/ruleNames.js +1 -9
  13. package/lib/substitution/statementForMetavariable.js +9 -1
  14. package/lib/substitution.js +1 -8
  15. package/lib/supposition.js +55 -1
  16. package/lib/utilities/customGrammar.js +2 -2
  17. package/lib/utilities/match.js +13 -50
  18. package/lib/utilities/node.js +2 -27
  19. package/lib/utilities/tokens.js +1 -8
  20. package/lib/utilities/verify.js +8 -24
  21. package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +29 -29
  22. package/lib/verifier/nodes/metaLevel.js +13 -13
  23. package/lib/verify/axiom.js +3 -3
  24. package/lib/verify/conclusion.js +10 -11
  25. package/lib/verify/conjecture.js +3 -3
  26. package/lib/verify/declaration.js +6 -6
  27. package/lib/verify/lemma.js +3 -3
  28. package/lib/verify/metaLemma.js +13 -13
  29. package/lib/verify/metastatement.js +64 -64
  30. package/lib/verify/metatheorem.js +13 -13
  31. package/lib/verify/premise.js +11 -30
  32. package/lib/verify/proof.js +3 -4
  33. package/lib/verify/proofStep.js +5 -5
  34. package/lib/verify/rule.js +11 -11
  35. package/lib/verify/statement/qualified.js +35 -9
  36. package/lib/verify/statement/unqualified.js +1 -1
  37. package/lib/verify/subproof.js +3 -4
  38. package/lib/verify/supposition.js +3 -3
  39. package/lib/verify/termAsConstructor.js +3 -3
  40. package/lib/verify/theorem.js +3 -3
  41. package/package.json +4 -4
  42. package/src/axiomLemmaTheoremConjecture.js +2 -4
  43. package/src/conclusion.js +15 -54
  44. package/src/constants.js +0 -1
  45. package/src/context/{local/intrinsicLevel.js → local.js} +182 -97
  46. package/src/declaration.js +19 -19
  47. package/src/metaLemmaMetatheorem.js +58 -58
  48. package/src/mixins/context.js +12 -9
  49. package/src/mixins/nodesVerifier/metaLevel.js +8 -8
  50. package/src/premise.js +25 -143
  51. package/src/rule.js +0 -67
  52. package/src/ruleNames.js +0 -2
  53. package/src/substitution/statementForMetavariable.js +14 -0
  54. package/src/substitution.js +0 -6
  55. package/src/supposition.js +46 -0
  56. package/src/utilities/customGrammar.js +1 -2
  57. package/src/utilities/match.js +13 -60
  58. package/src/utilities/node.js +3 -32
  59. package/src/utilities/tokens.js +0 -8
  60. package/src/utilities/verify.js +4 -20
  61. package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +36 -37
  62. package/src/verifier/nodes/metaLevel.js +17 -17
  63. package/src/verify/axiom.js +3 -4
  64. package/src/verify/conclusion.js +9 -13
  65. package/src/verify/conjecture.js +3 -4
  66. package/src/verify/declaration.js +7 -7
  67. package/src/verify/lemma.js +3 -4
  68. package/src/verify/metaLemma.js +24 -25
  69. package/src/verify/metastatement.js +64 -64
  70. package/src/verify/metatheorem.js +23 -24
  71. package/src/verify/premise.js +14 -46
  72. package/src/verify/proof.js +2 -4
  73. package/src/verify/proofStep.js +1 -1
  74. package/src/verify/rule.js +11 -12
  75. package/src/verify/statement/qualified.js +43 -9
  76. package/src/verify/statement/unqualified.js +1 -1
  77. package/src/verify/subproof.js +2 -4
  78. package/src/verify/supposition.js +1 -1
  79. package/src/verify/termAsConstructor.js +3 -4
  80. package/src/verify/theorem.js +3 -4
  81. package/lib/context/local/intrinsicLevel.js +0 -326
  82. package/lib/context/local/metaLevel.js +0 -282
  83. package/lib/metaConsequent.js +0 -108
  84. package/lib/metaSupposition.js +0 -160
  85. package/lib/node/metastatement/bracketed.js +0 -16
  86. package/lib/step/metaproof.js +0 -106
  87. package/lib/substitution/metastatementForMetavariable.js +0 -173
  88. package/lib/verify/metaConsequent.js +0 -50
  89. package/lib/verify/metaDerivation.js +0 -31
  90. package/lib/verify/metaSubDerivation.js +0 -25
  91. package/lib/verify/metaSubproof.js +0 -35
  92. package/lib/verify/metaSupposition.js +0 -61
  93. package/lib/verify/metaSuppositions.js +0 -28
  94. package/lib/verify/metaproof.js +0 -32
  95. package/lib/verify/metaproofStep.js +0 -98
  96. package/lib/verify/metastatement/qualified.js +0 -95
  97. package/lib/verify/metastatement/unqualified.js +0 -37
  98. package/lib/verify/metastatementAsContainedAssertion.js +0 -109
  99. package/lib/verify/metastatementAsDefinedAssertion.js +0 -132
  100. package/lib/verify/metavariableAgainstMetastatement.js +0 -44
  101. package/src/context/local/metaLevel.js +0 -191
  102. package/src/metaConsequent.js +0 -83
  103. package/src/metaSupposition.js +0 -127
  104. package/src/node/metastatement/bracketed.js +0 -9
  105. package/src/step/metaproof.js +0 -73
  106. package/src/substitution/metastatementForMetavariable.js +0 -90
  107. package/src/verify/metaConsequent.js +0 -61
  108. package/src/verify/metaDerivation.js +0 -23
  109. package/src/verify/metaSubDerivation.js +0 -22
  110. package/src/verify/metaSubproof.js +0 -34
  111. package/src/verify/metaSupposition.js +0 -78
  112. package/src/verify/metaSuppositions.js +0 -17
  113. package/src/verify/metaproof.js +0 -30
  114. package/src/verify/metaproofStep.js +0 -137
  115. package/src/verify/metastatement/qualified.js +0 -130
  116. package/src/verify/metastatement/unqualified.js +0 -34
  117. package/src/verify/metastatementAsContainedAssertion.js +0 -127
  118. package/src/verify/metastatementAsDefinedAssertion.js +0 -156
  119. package/src/verify/metavariableAgainstMetastatement.js +0 -42
  120. /package/src/{step/proof.js → proofStep.js} +0 -0
@@ -24,10 +24,4 @@ export default class Substitution {
24
24
 
25
25
  return matchesMetavariableNode;
26
26
  }
27
-
28
- matchMetastatementNode(metastatementNode) {
29
- const matchesMetastatementNode = false;
30
-
31
- return matchesMetastatementNode;
32
- }
33
27
  }
@@ -1,9 +1,18 @@
1
1
  "use strict";
2
2
 
3
+ import LocalContext from "./context/local";
4
+ import metaLevelNodesVerifier from "./verifier/nodes/metaLevel";
3
5
  import intrinsicLevelNodesVerifier from "./verifier/nodes/intrinsicLevel";
4
6
 
7
+ import { match } from "./utilities/array";
5
8
  import { nodeAsString } from "./utilities/string";
6
9
  import { statementNodeFromStatementString } from "./utilities/node";
10
+ import {nodeQuery, nodesQuery} from "./utilities/query";
11
+
12
+ const subproofAssertionNodeQuery = nodeQuery("/statement/subproofAssertion!"),
13
+ subproofAssertionStatementNodesQuery = nodesQuery("/subproofAssertion/statement"),
14
+ subproofSuppositionStatementNodesQuery = nodesQuery("/subproof/supposition/unqualifiedStatement/statement!"),
15
+ subproofLastProofStepStatementNodeQuery = nodeQuery("/subproof/subDerivation/lastProofStep/unqualifiedStatement|qualifiedStatement/statement!");
7
16
 
8
17
  export default class Supposition {
9
18
  constructor(statementNode) {
@@ -29,6 +38,43 @@ export default class Supposition {
29
38
  return matchesStatementNode;
30
39
  }
31
40
 
41
+ matchSubproofNode(subproofNode, substitutions, fileContext, localContext) {
42
+ let matchesSubproofNode = false;
43
+
44
+ if (this.statementNode !== null) {
45
+ const subproofAssertionNode = subproofAssertionNodeQuery(this.statementNode);
46
+
47
+ if (subproofAssertionNode !== null) {
48
+ const subproofSuppositionStatementNodes = subproofSuppositionStatementNodesQuery(subproofNode),
49
+ subproofLastProofStepStatementNode = subproofLastProofStepStatementNodeQuery(subproofNode),
50
+ subproofStatementNodes = [
51
+ ...subproofSuppositionStatementNodes,
52
+ subproofLastProofStepStatementNode
53
+ ],
54
+ subproofAssertionStatementNodes = subproofAssertionStatementNodesQuery(subproofAssertionNode);
55
+
56
+ matchesSubproofNode = match(subproofAssertionStatementNodes, subproofStatementNodes, (subproofAssertionStatementNode, ruleSubproofStatementNode) => {
57
+ const fileContextA = fileContext, ///
58
+ nonTerminalNodeA = subproofAssertionStatementNode, ///
59
+ nonTerminalNodeB = ruleSubproofStatementNode, ///
60
+ localContextA = LocalContext.fromFileContext(fileContextA), ///
61
+ localContextB = localContext, ///
62
+ nonTerminalNodeVerified = metaLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
63
+ const verifiedAhead = true;
64
+
65
+ return verifiedAhead;
66
+ });
67
+
68
+ if (nonTerminalNodeVerified) {
69
+ return true;
70
+ }
71
+ });
72
+ }
73
+ }
74
+
75
+ return matchesSubproofNode;
76
+ }
77
+
32
78
  toJSON(tokens) {
33
79
  const statementString = nodeAsString(this.statementNode, tokens),
34
80
  statement = statementString, ///
@@ -5,11 +5,10 @@ import { CustomGrammar, CombinedCustomGrammar } from "occam-custom-grammars";
5
5
  export function customGrammarFromNameAndEntries(name, entries) {
6
6
  const termBNF = entries.getTermBNF(),
7
7
  statementBNF = entries.getStatementBNF(),
8
- metastatementBNF = entries.getMetastatementBNF(),
9
8
  typePattern = entries.getTypePattern(),
10
9
  symbolPattern = entries.getSymbolPattern(),
11
10
  operatorPattern = entries.getOperatorPattern(),
12
- customGrammar = CustomGrammar.fromNameTermBNFStatementBNFMetastatementBNFTypePatternSymbolPatternAndOperatorPattern(name, termBNF, statementBNF, metastatementBNF, typePattern, symbolPattern, operatorPattern);
11
+ customGrammar = CustomGrammar.fromNameTermBNFStatementBNFTypePatternSymbolPatternAndOperatorPattern(name, termBNF, statementBNF, typePattern, symbolPattern, operatorPattern);
13
12
 
14
13
  return customGrammar;
15
14
  }
@@ -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) {
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  import Axiom from "../axiom";
4
+ import LocalContext from "../context/local";
4
5
  import verifyLabels from "../verify/labels";
5
6
  import verifyConsequent from "../verify/consequent";
6
7
  import verifySuppositions from "../verify/suppositions";
7
- import IntrinsicLevelLocalContext from "../context/local/intrinsicLevel";
8
8
 
9
9
  import { first } from "../utilities/array";
10
10
  import { nodeQuery, nodesQuery } from "../utilities/query";
@@ -16,10 +16,9 @@ const labelNodesQuery = nodesQuery("/axiom/label"),
16
16
  export default function verifyAxiom(axiomNode, fileContext) {
17
17
  let axiomVerified = false;
18
18
 
19
- const intrinsicLevelLocalContext = IntrinsicLevelLocalContext.fromFileContext(fileContext),
20
- labelNodes = labelNodesQuery(axiomNode),
19
+ const labelNodes = labelNodesQuery(axiomNode),
21
20
  labelsString = fileContext.nodesAsString(labelNodes),
22
- localContext = intrinsicLevelLocalContext; ///
21
+ localContext = LocalContext.fromFileContext(fileContext);
23
22
 
24
23
  fileContext.trace(`Verifying the '${labelsString}' axiom...`, axiomNode);
25
24
 
@@ -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);
@@ -3,9 +3,9 @@
3
3
  import Conjecture from "../conjecture";
4
4
  import verifyProof from "../verify/proof";
5
5
  import verifyLabels from "../verify/labels";
6
+ import LocalContext from "../context/local";
6
7
  import verifyConsequent from "../verify/consequent";
7
8
  import verifySuppositions from "../verify/suppositions";
8
- import IntrinsicLevelLocalContext from "../context/local/intrinsicLevel";
9
9
 
10
10
  import { first } from "../utilities/array";
11
11
  import { nodeQuery, nodesQuery } from "../utilities/query";
@@ -18,10 +18,9 @@ const proofNodeQuery = nodeQuery("/conjecture/proof!"),
18
18
  export default function verifyConjecture(conjectureNode, fileContext) {
19
19
  let conjectureVerified = false;
20
20
 
21
- const intrinsicLevelLocalContext = IntrinsicLevelLocalContext.fromFileContext(fileContext),
22
- labelNodes = labelNodesQuery(conjectureNode),
21
+ const labelNodes = labelNodesQuery(conjectureNode),
23
22
  labelsString = fileContext.nodesAsString(labelNodes),
24
- localContext = intrinsicLevelLocalContext; ///
23
+ localContext = LocalContext.fromFileContext(fileContext); ///
25
24
 
26
25
  fileContext.trace(`Verifying the '${labelsString}' conjecture...`, conjectureNode);
27
26