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
package/src/conclusion.js CHANGED
@@ -2,52 +2,26 @@
2
2
 
3
3
  import LocalContext from "./context/local";
4
4
  import metaLevelNodesVerifier from "./verifier/nodes/metaLevel";
5
- import intrinsicLevelAgainstMetaLevelNodesVerifier from "./verifier/nodes/intrinsicLevelAgainstMetaLevel";
6
5
 
7
6
  import { nodeAsString } from "./utilities/string";
8
- import { statementNodeFromStatementString, metastatementNodeFromMetastatementString } from "./utilities/node";
7
+ import { statementNodeFromStatementString } from "./utilities/node";
9
8
 
10
9
  export default class Conclusion {
11
- constructor(metastatementNode, statementNode) {
12
- this.metastatementNode = metastatementNode;
10
+ constructor(statementNode) {
13
11
  this.statementNode = statementNode;
14
12
  }
15
13
 
16
- getMetastatementNode() {
17
- return this.metastatementNode;
18
- }
19
-
20
14
  getStatementNode() {
21
15
  return this.statementNode;
22
16
  }
23
17
 
24
- matchStatementNode(statementNode, substitutions, localContext, statementLocalContext) {
25
- let matchesStatementNose = false;
26
-
27
- if (this.metastatementNode !== null) {
28
- const nonTerminalNodeA = this.metastatementNode, ///
29
- nonTerminalNodeB = statementNode, ///
30
- localContextA = localContext, ///
31
- localContextB = statementLocalContext, ///
32
- nonTerminalNodeVerified = intrinsicLevelAgainstMetaLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
33
- const verifiedAhead = true;
34
-
35
- return verifiedAhead;
36
- });
37
-
38
- matchesStatementNose = nonTerminalNodeVerified; ///
39
- }
40
-
41
- return matchesStatementNose;
42
- }
43
-
44
- matchMetastatementNode(metastatementNode, substitutions, fileContext, localContext) {
45
- let matchesMetastatementNode = false;
18
+ matchStatementNode(statementNode, substitutions, fileContext, localContext) {
19
+ let matchesStatementNode = false;
46
20
 
47
- if (this.metastatementNode !== null) {
21
+ if (this.statementNode !== null) {
48
22
  const fileContextA = fileContext, ///
49
- nonTerminalNodeA = this.metastatementNode, ///
50
- nonTerminalNodeB = metastatementNode, ///
23
+ nonTerminalNodeA = this.statementNode, ///
24
+ nonTerminalNodeB = statementNode, ///
51
25
  localContextA = LocalContext.fromFileContext(fileContextA),
52
26
  localContextB = localContext, ///
53
27
  nonTerminalNodeVerified = metaLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
@@ -56,19 +30,16 @@ export default class Conclusion {
56
30
  return verifiedAhead;
57
31
  });
58
32
 
59
- matchesMetastatementNode = nonTerminalNodeVerified; ///
33
+ matchesStatementNode = nonTerminalNodeVerified; ///
60
34
  }
61
35
 
62
- return matchesMetastatementNode;
36
+ return matchesStatementNode;
63
37
  }
64
38
 
65
39
  toJSON(tokens) {
66
- const metastatementString = nodeAsString(this.metastatementNode, tokens),
67
- statementString = nodeAsString(this.statementNode, tokens),
68
- metastatement = metastatementString, ///
40
+ const statementString = nodeAsString(this.statementNode, tokens),
69
41
  statement = statementString, ///
70
42
  json = {
71
- metastatement,
72
43
  statement
73
44
  };
74
45
 
@@ -76,28 +47,18 @@ export default class Conclusion {
76
47
  }
77
48
 
78
49
  static fromStatementNode(statementNode) {
79
- const metastatementNode = null,
80
- conclusion = new Conclusion(metastatementNode, statementNode);
81
-
82
- return conclusion;
83
- }
84
-
85
- static fromMetastatementNode(metastatementNode) {
86
- const statementNode = null,
87
- conclusion = new Conclusion(metastatementNode, statementNode);
50
+ const conclusion = new Conclusion(statementNode);
88
51
 
89
52
  return conclusion;
90
53
  }
91
54
 
92
55
  static fromJSONAndFileContext(json, fileContext) {
93
- const { metastatement, statement } = json,
94
- metastatementString = metastatement, ///
56
+ const { statement } = json,
95
57
  statementString = statement, ///
96
58
  lexer = fileContext.getLexer(),
97
59
  parser = fileContext.getParser(),
98
- metastatementNode = metastatementNodeFromMetastatementString(metastatementString, lexer, parser),
99
60
  statementNode = statementNodeFromStatementString(statementString, lexer, parser),
100
- conclusion = new Conclusion(metastatementNode, statementNode);
61
+ conclusion = new Conclusion(statementNode, statementNode);
101
62
 
102
63
  return conclusion;
103
64
  }
package/src/conjecture.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
- import AxiomLemmaTheoremConjecture from "./axiomLemmaTheoremConjecture";
3
+ import TopLevelAssertion from "./topLevelAssertion";
4
4
 
5
- export default class Conjecture extends AxiomLemmaTheoremConjecture {
6
- static fromJSONAndFileContext(json, fileContext) { return AxiomLemmaTheoremConjecture.fromJSONAndFileContext(Conjecture, json, fileContext); }
5
+ export default class Conjecture extends TopLevelAssertion {
6
+ static fromJSONAndFileContext(json, fileContext) { return TopLevelAssertion.fromJSONAndFileContext(Conjecture, json, fileContext); }
7
7
 
8
- static fromLabelsSuppositionsConsequentAndLocalContext(labels, suppositions, consequent, localContext) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsConsequentAndLocalContext(Conjecture, labels, suppositions, consequent, localContext); }
8
+ static fromLabelsSuppositionsConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, substitutions, fileContext) { return TopLevelAssertion.fromLabelsSuppositionsConsequentSubstitutionsAndFileContext(Conjecture, labels, suppositions, consequent, substitutions, fileContext); }
9
9
  }
package/src/constants.js CHANGED
@@ -2,8 +2,5 @@
2
2
 
3
3
  export const NOT = "not";
4
4
  export const COMMA = ",";
5
- export const DEFINED = "defined";
6
- export const CONTAINED = "contained";
7
5
  export const EMPTY_STRING = "";
8
6
  export const BRACKETED_STATEMENT_DEPTH = 2;
9
- export const BRACKETED_METASTATEMENT_DEPTH = 1;
@@ -513,8 +513,8 @@ export default class FileContext {
513
513
  return labelPresent;
514
514
  }
515
515
 
516
- isMetavariablePresentByMetavariableNode(metavariableNode, localContext) {
517
- const metavariable = this.findMetavariableByMetavariableNode(metavariableNode, localContext),
516
+ isMetavariablePresentByMetavariableNode(metavariableNode) {
517
+ const metavariable = this.findMetavariableByMetavariableNode(metavariableNode),
518
518
  metavariablePresent = (metavariable !== null);
519
519
 
520
520
  return metavariablePresent;
@@ -8,14 +8,13 @@ import { last, reverse } from "../utilities/array";
8
8
  import { mergeEquivalences, findEquivalenceByTerm, groundedTermsAndDefinedVariablesFromFromEquivalences } from "../utilities/equivalences";
9
9
 
10
10
  class LocalContext {
11
- constructor(context, variables, proofSteps, equivalences, judgements, metavariables, metaproofSteps) {
11
+ constructor(context, variables, proofSteps, judgements, equivalences, metavariables) {
12
12
  this.context = context;
13
13
  this.variables = variables;
14
14
  this.proofSteps = proofSteps;
15
- this.equivalences = equivalences;
16
15
  this.judgements = judgements;
16
+ this.equivalences = equivalences;
17
17
  this.metavariables = metavariables;
18
- this.metaproofSteps = metaproofSteps;
19
18
  }
20
19
 
21
20
  getContext() {
@@ -44,6 +43,17 @@ class LocalContext {
44
43
  return proofSteps;
45
44
  }
46
45
 
46
+ getJudgements() {
47
+ let judgements = this.context.getJudgements();
48
+
49
+ judgements = [ ///
50
+ ...this.judgements,
51
+ ...judgements
52
+ ]
53
+
54
+ return judgements;
55
+ }
56
+
47
57
  getEquivalences() {
48
58
  let equivalences = this.context.getEquivalences();
49
59
 
@@ -56,17 +66,6 @@ class LocalContext {
56
66
  return equivalences;
57
67
  }
58
68
 
59
- getJudgements() {
60
- let judgements = this.context.getJudgements();
61
-
62
- judgements = [ ///
63
- ...this.judgements,
64
- ...judgements
65
- ]
66
-
67
- return judgements;
68
- }
69
-
70
69
  getMetavariables() {
71
70
  let metavariables = this.context.getMetavariables();
72
71
 
@@ -78,17 +77,6 @@ class LocalContext {
78
77
  return metavariables;
79
78
  }
80
79
 
81
- getMetaproofSteps() {
82
- let metaproofSteps = this.context.getMetaproofSteps();
83
-
84
- metaproofSteps = [ ///
85
- ...metaproofSteps,
86
- ...this.metaproofSteps
87
- ];
88
-
89
- return metaproofSteps;
90
- }
91
-
92
80
  getLastProofStep() {
93
81
  let lastProofStep = null;
94
82
 
@@ -101,18 +89,6 @@ class LocalContext {
101
89
  return lastProofStep;
102
90
  }
103
91
 
104
- getLastMetaproofStep() {
105
- let lastMetaproofStep = null;
106
-
107
- const metaproofStepsLength = this.metaproofSteps.length;
108
-
109
- if (metaproofStepsLength > 0) {
110
- lastMetaproofStep = last(this.metaproofSteps);
111
- }
112
-
113
- return lastMetaproofStep;
114
- }
115
-
116
92
  addEquality(equality) {
117
93
  let equalityAdded;
118
94
 
@@ -241,10 +217,6 @@ class LocalContext {
241
217
  return metavariableAdded;
242
218
  }
243
219
 
244
- addMetaproofStep(metaproofStep) {
245
- this.metaproofSteps.push(metaproofStep);
246
- }
247
-
248
220
  matchStatementNode(statementNode) {
249
221
  let proofSteps = this.getProofSteps();
250
222
 
@@ -261,22 +233,6 @@ class LocalContext {
261
233
  return matchesStatementNode;
262
234
  }
263
235
 
264
- matchMetastatementNode(metastatementNode) {
265
- let metaproofSteps = this.getMetaproofSteps();
266
-
267
- metaproofSteps = reverse(metaproofSteps); ///
268
-
269
- const matchesMetastatementNode = metaproofSteps.some((metaproofStep) => {
270
- const metaproofStepMatchesMetastatementNode = metaproofStep.matchMetastatementNode(metastatementNode);
271
-
272
- if (metaproofStepMatchesMetastatementNode) {
273
- return true;
274
- }
275
- });
276
-
277
- return matchesMetastatementNode;
278
- }
279
-
280
236
  getTermType(term) {
281
237
  let termType;
282
238
 
@@ -349,8 +305,8 @@ class LocalContext {
349
305
  return judgementPresent;
350
306
  }
351
307
 
352
- isMetavariablePresentByMetavariableNode(metavariableNode, localContext) {
353
- const metavariable = this.findMetavariableByMetavariableNode(metavariableNode, localContext),
308
+ isMetavariablePresentByMetavariableNode(metavariableNode) {
309
+ const metavariable = this.findMetavariableByMetavariableNode(metavariableNode),
354
310
  metavariablePresent = (metavariable !== null);
355
311
 
356
312
  return metavariablePresent;
@@ -383,8 +339,9 @@ class LocalContext {
383
339
  return judgement;
384
340
  }
385
341
 
386
- findMetavariableByMetavariableNode(metavariableNode, localContext) {
342
+ findMetavariableByMetavariableNode(metavariableNode) {
387
343
  const node = metavariableNode, ///
344
+ localContext = this, ///
388
345
  metavariables = this.getMetavariables(),
389
346
  metavariable = metavariables.find((metavariable) => {
390
347
  const matches = metavariable.matchNode(node, localContext);
@@ -404,8 +361,7 @@ class LocalContext {
404
361
  equivalences = [],
405
362
  judgements = [],
406
363
  metavariables = [],
407
- metaproofSteps = [],
408
- localContext = new LocalContext(context, variables, proofSteps, equivalences, judgements, metavariables, metaproofSteps);
364
+ localContext = new LocalContext(context, variables, proofSteps, judgements, equivalences, metavariables);
409
365
 
410
366
  return localContext;
411
367
  }
@@ -416,10 +372,9 @@ class LocalContext {
416
372
  proofSteps = [],
417
373
  equivalences = [],
418
374
  judgements = [],
419
- metavariables = [],
420
- metaproofSteps = [];
375
+ metavariables = [];
421
376
 
422
- localContext = new LocalContext(context, variables, proofSteps, equivalences, judgements, metavariables, metaproofSteps); ///
377
+ localContext = new LocalContext(context, variables, proofSteps, judgements, equivalences, metavariables); ///
423
378
 
424
379
  return localContext;
425
380
  }
@@ -441,8 +396,7 @@ class LocalContext {
441
396
  equivalences = [],
442
397
  judgements = [],
443
398
  metavariables = [],
444
- metaproofSteps = [],
445
- localContext = new LocalContext(context, variables, proofSteps, equivalences, judgements, metavariables, metaproofSteps); ///
399
+ localContext = new LocalContext(context, variables, proofSteps, judgements, equivalences, metavariables); ///
446
400
 
447
401
  return localContext;
448
402
  }
@@ -1,27 +1,27 @@
1
1
  "use strict";
2
2
 
3
- import { matchMetastatementModuloBrackets } from "./utilities/match";
3
+ import { matchStatementModuloBrackets } from "./utilities/match";
4
4
 
5
5
  export default class Declaration {
6
- constructor(metavariableNode, metastatementNode) {
6
+ constructor(metavariableNode, statementNode) {
7
7
  this.metavariableNode = metavariableNode;
8
- this.metastatementNode = metastatementNode;
8
+ this.statementNode = statementNode;
9
9
  }
10
10
 
11
11
  getMetavariableNode() {
12
12
  return this.metavariableNode;
13
13
  }
14
14
 
15
- getMetastatementNode() {
16
- return this.metastatementNode;
15
+ getStatementNode() {
16
+ return this.statementNode;
17
17
  }
18
18
 
19
19
  matchSubstitution(substitution) {
20
- const metavariableNode = substitution.getMetavariableNode(),
21
- metastatementNode = substitution.getMetastatementNode(),
20
+ const statementNode = substitution.getStatementNode(),
21
+ metavariableNode = substitution.getMetavariableNode(),
22
+ matchesStatementNode = this.matchStatementNode(statementNode),
22
23
  matchesMetavariableNode = this.matchMetavariableNode(metavariableNode),
23
- matchesMetastatementNode = this.matchMetastatementNode(metastatementNode),
24
- matchesSubstitution = (matchesMetavariableNode && matchesMetastatementNode);
24
+ matchesSubstitution = (matchesMetavariableNode && matchesStatementNode);
25
25
 
26
26
  return matchesSubstitution;
27
27
  }
@@ -32,26 +32,26 @@ export default class Declaration {
32
32
  return matchesMetavariableNode;
33
33
  }
34
34
 
35
- matchMetastatementNode(metastatementNode) {
36
- const metastatementNodeA = metastatementNode, ///
37
- metastatementNodeB = this.metastatementNode, ///
38
- metastatementMatches = matchMetastatementModuloBrackets(metastatementNodeA, metastatementNodeB),
39
- matchesMetastatementNode = metastatementMatches; ///
35
+ matchStatementNode(statementNode) {
36
+ const statementNodeA = statementNode, ///
37
+ statementNodeB = this.statementNode, ///
38
+ statementMatches = matchStatementModuloBrackets(statementNodeA, statementNodeB),
39
+ matchesStatementNode = statementMatches; ///
40
40
 
41
- return matchesMetastatementNode;
41
+ return matchesStatementNode;
42
42
  }
43
43
 
44
44
  matchMetaLemmaOrMetaTheorem(metaLemmaMetatheorem) {
45
45
  const metaConsequent = metaLemmaMetatheorem.getMetaConsequent(),
46
- metastatementNode = metaConsequent.getMetastatementNode(),
47
- matches = this.metastatementNode.match(metastatementNode),
46
+ statementNode = metaConsequent.getStatementNode(),
47
+ matches = this.statementNode.match(statementNode),
48
48
  matchesMetaLemmaOrMetaTheorem = matches; ///
49
49
 
50
50
  return matchesMetaLemmaOrMetaTheorem;
51
51
  }
52
52
 
53
- static fromMetavariableNodeAndMetastatementNode(metavariableNode, metastatementNode) {
54
- const declaration = new Declaration(metavariableNode, metastatementNode);
53
+ static fromMetavariableNodeAndStatementNode(metavariableNode, statementNode) {
54
+ const declaration = new Declaration(metavariableNode, statementNode);
55
55
 
56
56
  return declaration;
57
57
  }
package/src/lemma.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
- import AxiomLemmaTheoremConjecture from "./axiomLemmaTheoremConjecture";
3
+ import TopLevelAssertion from "./topLevelAssertion";
4
4
 
5
- export default class Lemma extends AxiomLemmaTheoremConjecture {
6
- static fromJSONAndFileContext(json, fileContext) { return AxiomLemmaTheoremConjecture.fromJSONAndFileContext(Lemma,json, fileContext); }
5
+ export default class Lemma extends TopLevelAssertion {
6
+ static fromJSONAndFileContext(json, fileContext) { return TopLevelAssertion.fromJSONAndFileContext(Lemma,json, fileContext); }
7
7
 
8
- static fromLabelsSuppositionsConsequentAndLocalContext(labels, suppositions, consequent, localContext) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsConsequentAndLocalContext(Lemma, labels, suppositions, consequent, localContext); }
8
+ static fromLabelsSuppositionsConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, substitutions, fileContext) { return TopLevelAssertion.fromLabelsSuppositionsConsequentSubstitutionsAndFileContext(Lemma, labels, suppositions, consequent, substitutions, fileContext); }
9
9
  }
package/src/metaLemma.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
- import MetalemmaMetatheorem from "./metalemmaMetatheorem";
3
+ import TopLevelAssertion from "./topLevelAssertion";
4
4
 
5
- export default class MetaLemma extends MetalemmaMetatheorem {
6
- static fromJSONAndFileContext(json, fileContext) { return MetalemmaMetatheorem.fromJSONAndFileContext(MetaLemma, json, fileContext); }
5
+ export default class MetaLemma extends TopLevelAssertion {
6
+ static fromJSONAndFileContext(json, fileContext) { return TopLevelAssertion.fromJSONAndFileContext(MetaLemma, json, fileContext); }
7
7
 
8
- static fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, metaSuppositions, metaConsequent, substitutions, fileContext) { return MetalemmaMetatheorem.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(MetaLemma, labels, metaSuppositions, metaConsequent, substitutions, fileContext); }
8
+ static fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, metaSuppositions, metaConsequent, substitutions, fileContext) { return TopLevelAssertion.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(MetaLemma, labels, metaSuppositions, metaConsequent, substitutions, fileContext); }
9
9
  }
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
- import MetaLemmaMetatheorem from "./metaLemmaMetatheorem";
3
+ import TopLevelAssertion from "./topLevelAssertion";
4
4
 
5
- export default class Metatheorem extends MetaLemmaMetatheorem {
6
- static fromJSONAndFileContext(json, fileContext) { return MetaLemmaMetatheorem.fromJSONAndFileContext(Metatheorem, json, fileContext); }
5
+ export default class Metatheorem extends TopLevelAssertion {
6
+ static fromJSONAndFileContext(json, fileContext) { return TopLevelAssertion.fromJSONAndFileContext(Metatheorem, json, fileContext); }
7
7
 
8
- static fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, fileContext) { return MetaLemmaMetatheorem.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(Metatheorem, labels, suppositions, consequent, fileContext); }
8
+ static fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, fileContext) { return TopLevelAssertion.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(Metatheorem, labels, suppositions, consequent, fileContext); }
9
9
  }
@@ -36,6 +36,12 @@ export default class Metavariable {
36
36
  return this.metaType;
37
37
  }
38
38
 
39
+ getMetaTypeName() {
40
+ const metaTypeName = this.metaType.getName();
41
+
42
+ return metaTypeName;
43
+ }
44
+
39
45
  matchName(name) {
40
46
  const matchesName = (this.name === name);
41
47
 
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
- import MetastatementForMetavariableSubstitution from "../../substitution/metastatementForMetavariable";
3
+ import StatementForMetavariableSubstitution from "../../substitution/statementForMetavariable";
4
4
 
5
- function verifyMetavariableNode(metavariableNodeA, metastatementNodeB, substitutions, localContextA, localMetaContextB, verifyAhead) {
5
+ function verifyMetavariableNode(metavariableNodeA, statementNodeB, substitutions, localContextA, localMetaContextB, verifyAhead) {
6
6
  let metavariableNodeVerified;
7
7
 
8
8
  const substitution = substitutions.find((substitution) => {
@@ -14,15 +14,15 @@ function verifyMetavariableNode(metavariableNodeA, metastatementNodeB, substitut
14
14
  }) || null;
15
15
 
16
16
  if (substitution !== null) {
17
- const metastatementNode = metastatementNodeB, ///
18
- substitutionMetastatementNode = substitution.matchMetastatementNode(metastatementNode);
17
+ const statementNode = statementNodeB, ///
18
+ substitutionStatementNode = substitution.matchStatementNode(statementNode);
19
19
 
20
- metavariableNodeVerified = substitutionMetastatementNode; ///
20
+ metavariableNodeVerified = substitutionStatementNode; ///
21
21
  } else {
22
22
  const metavariableNode = metavariableNodeA, ///
23
- metastatementNode = metastatementNodeB, ///
24
- metastatementForMetavariableSubstitution = MetastatementForMetavariableSubstitution.fromMetavariableNodeAndMetastatementNode(metavariableNode, metastatementNode),
25
- substitution = metastatementForMetavariableSubstitution; ///
23
+ statementNode = statementNodeB, ///
24
+ statementForMetavariableSubstitution = StatementForMetavariableSubstitution.fromMetavariableNodeAndStatementNode(metavariableNode, statementNode),
25
+ substitution = statementForMetavariableSubstitution; ///
26
26
 
27
27
  substitutions.push(substitution);
28
28