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
package/src/conclusion.js CHANGED
@@ -1,54 +1,28 @@
1
1
  "use strict";
2
2
 
3
- import MetaLevelLocalContext from "./context/local/metaLevel";
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;
18
+ matchStatementNode(statementNode, substitutions, fileContext, localContext) {
19
+ let matchesStatementNode = false;
26
20
 
27
- if (this.metastatementNode !== null) {
28
- const nonTerminalNodeA = this.metastatementNode, ///
21
+ if (this.statementNode !== null) {
22
+ const fileContextA = fileContext, ///
23
+ nonTerminalNodeA = this.statementNode, ///
29
24
  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;
46
-
47
- if (this.metastatementNode !== null) {
48
- const metaLevelLocalContext = MetaLevelLocalContext.fromFileContext(fileContext),
49
- nonTerminalNodeA = this.metastatementNode, ///
50
- nonTerminalNodeB = metastatementNode, ///
51
- localContextA = metaLevelLocalContext, ///
25
+ localContextA = LocalContext.fromFileContext(fileContextA),
52
26
  localContextB = localContext, ///
53
27
  nonTerminalNodeVerified = metaLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
54
28
  const verifiedAhead = true;
@@ -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/constants.js CHANGED
@@ -6,4 +6,3 @@ export const DEFINED = "defined";
6
6
  export const CONTAINED = "contained";
7
7
  export const EMPTY_STRING = "";
8
8
  export const BRACKETED_STATEMENT_DEPTH = 2;
9
- export const BRACKETED_METASTATEMENT_DEPTH = 1;
@@ -1,18 +1,20 @@
1
1
  "use strict";
2
2
 
3
- import Variable from "../../variable";
4
- import Equivalence from "../../equivalence";
5
- import contextMixins from "../../mixins/context";
3
+ import Variable from "../variable";
4
+ import Equivalence from "../equivalence";
5
+ import contextMixins from "../mixins/context";
6
6
 
7
- import { last, reverse } from "../../utilities/array";
8
- import { mergeEquivalences, findEquivalenceByTerm, groundedTermsAndDefinedVariablesFromFromEquivalences } from "../../utilities/equivalences";
7
+ import { last, reverse } from "../utilities/array";
8
+ import { mergeEquivalences, findEquivalenceByTerm, groundedTermsAndDefinedVariablesFromFromEquivalences } from "../utilities/equivalences";
9
9
 
10
- class IntrinsicLevelLocalContext {
11
- constructor(context, variables, proofSteps, equivalences) {
10
+ class LocalContext {
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.judgements = judgements;
15
16
  this.equivalences = equivalences;
17
+ this.metavariables = metavariables;
16
18
  }
17
19
 
18
20
  getContext() {
@@ -41,22 +43,38 @@ class IntrinsicLevelLocalContext {
41
43
  return proofSteps;
42
44
  }
43
45
 
46
+ getJudgements() {
47
+ let judgements = this.context.getJudgements();
48
+
49
+ judgements = [ ///
50
+ ...this.judgements,
51
+ ...judgements
52
+ ]
53
+
54
+ return judgements;
55
+ }
56
+
44
57
  getEquivalences() {
45
58
  let equivalences = this.context.getEquivalences();
46
59
 
47
60
  const equivalencesA = this.equivalences, ///
48
61
  equivalencesB = equivalences,
49
- intrinsicLevelLocalContext = this; ///
62
+ LocalContext = this; ///
50
63
 
51
- equivalences = mergeEquivalences(equivalencesA, equivalencesB, intrinsicLevelLocalContext); ///
64
+ equivalences = mergeEquivalences(equivalencesA, equivalencesB, LocalContext); ///
52
65
 
53
66
  return equivalences;
54
67
  }
55
68
 
56
- isIntrinsicLevel() {
57
- const intrinsicLevel = true;
69
+ getMetavariables() {
70
+ let metavariables = this.context.getMetavariables();
71
+
72
+ metavariables = [ ///
73
+ ...this.metavariables,
74
+ ...metavariables
75
+ ]
58
76
 
59
- return intrinsicLevel;
77
+ return metavariables;
60
78
  }
61
79
 
62
80
  getLastProofStep() {
@@ -71,64 +89,6 @@ class IntrinsicLevelLocalContext {
71
89
  return lastProofStep;
72
90
  }
73
91
 
74
- getTermType(term) {
75
- let termType;
76
-
77
- const equivalences = this.getEquivalences(),
78
- equivalence = findEquivalenceByTerm(equivalences, term);
79
-
80
- if (equivalence !== null) {
81
- const intrinsicLevelLocalContext = this, ///
82
- equivalenceType = equivalence.getType(intrinsicLevelLocalContext);
83
-
84
- termType = equivalenceType; ///
85
- } else {
86
- termType = term.getType();
87
- }
88
-
89
- return termType;
90
- }
91
-
92
- isTermGrounded(term) {
93
- const context = this,
94
- equivalences = this.getEquivalences(),
95
- groundedTerms = [],
96
- definedVariables = [];
97
-
98
- groundedTermsAndDefinedVariablesFromFromEquivalences(equivalences, groundedTerms, definedVariables, context);
99
-
100
- const termMatchesGroundedTerm = groundedTerms.some((groundedTerm) => {
101
- const termMatchesGroundedTerm = term.match(groundedTerm);
102
-
103
- if (termMatchesGroundedTerm) {
104
- return true;
105
- }
106
- }),
107
- termGrounded = termMatchesGroundedTerm; ///
108
-
109
- return termGrounded;
110
- }
111
-
112
- isVariableDefined(variable) {
113
- const context = this,
114
- equivalences = this.getEquivalences(),
115
- groundedTerms = [],
116
- definedVariables = [];
117
-
118
- groundedTermsAndDefinedVariablesFromFromEquivalences(equivalences, groundedTerms, definedVariables, context);
119
-
120
- const variableMatchesDefinedVariable = definedVariables.some((definedVariable) => {
121
- const variableMatchesDefinedVariable = variable.match(definedVariable);
122
-
123
- if (variableMatchesDefinedVariable) {
124
- return true;
125
- }
126
- }),
127
- variableDefined = variableMatchesDefinedVariable; ///
128
-
129
- return variableDefined;
130
- }
131
-
132
92
  addEquality(equality) {
133
93
  let equalityAdded;
134
94
 
@@ -221,6 +181,42 @@ class IntrinsicLevelLocalContext {
221
181
  this.equivalences.splice(start, deleteCount);
222
182
  }
223
183
 
184
+ addJudgement(judgement) {
185
+ let judgementAdded = false;
186
+
187
+ const metavariableNode = judgement.getMetavariableNode(),
188
+ judgementPresent = this.isJudgementPresentByMetavariableNode(metavariableNode);
189
+
190
+ if (!judgementPresent) {
191
+ this.judgements.push(judgement);
192
+
193
+ judgementAdded = true;
194
+ }
195
+
196
+ return judgementAdded;
197
+ }
198
+
199
+ addMetavariable(metavariable) {
200
+ let metavariableAdded = false;
201
+
202
+ const node = metavariable.getName(),
203
+ metavariablePresent = this.metavariables.some((metavariable) => {
204
+ const metavariableMatchesNode = metavariable.matchNode(node);
205
+
206
+ if (metavariableMatchesNode) {
207
+ return true;
208
+ }
209
+ });
210
+
211
+ if (!metavariablePresent) {
212
+ this.metavariables.push(metavariable);
213
+
214
+ metavariableAdded = true;
215
+ }
216
+
217
+ return metavariableAdded;
218
+ }
219
+
224
220
  matchStatementNode(statementNode) {
225
221
  let proofSteps = this.getProofSteps();
226
222
 
@@ -237,21 +233,63 @@ class IntrinsicLevelLocalContext {
237
233
  return matchesStatementNode;
238
234
  }
239
235
 
240
- findVariableByVariableNode(variableNode) {
241
- const node = variableNode, ///
242
- variables = this.getVariables(),
243
- variable = variables.find((variable) => {
244
- const matches = variable.matchNode(node);
236
+ getTermType(term) {
237
+ let termType;
245
238
 
246
- if (matches) {
239
+ const equivalences = this.getEquivalences(),
240
+ equivalence = findEquivalenceByTerm(equivalences, term);
241
+
242
+ if (equivalence !== null) {
243
+ const LocalContext = this, ///
244
+ equivalenceType = equivalence.getType(LocalContext);
245
+
246
+ termType = equivalenceType; ///
247
+ } else {
248
+ termType = term.getType();
249
+ }
250
+
251
+ return termType;
252
+ }
253
+
254
+ isTermGrounded(term) {
255
+ const context = this,
256
+ equivalences = this.getEquivalences(),
257
+ groundedTerms = [],
258
+ definedVariables = [];
259
+
260
+ groundedTermsAndDefinedVariablesFromFromEquivalences(equivalences, groundedTerms, definedVariables, context);
261
+
262
+ const termMatchesGroundedTerm = groundedTerms.some((groundedTerm) => {
263
+ const termMatchesGroundedTerm = term.match(groundedTerm);
264
+
265
+ if (termMatchesGroundedTerm) {
247
266
  return true;
248
267
  }
249
- }) || null;
268
+ }),
269
+ termGrounded = termMatchesGroundedTerm; ///
250
270
 
251
- return variable;
271
+ return termGrounded;
252
272
  }
253
273
 
254
- findMetaTypeByMetaTypeNode(metaTypeNode) { return this.context.findMetaTypeByMetaTypeNode(metaTypeNode); }
274
+ isVariableDefined(variable) {
275
+ const context = this,
276
+ equivalences = this.getEquivalences(),
277
+ groundedTerms = [],
278
+ definedVariables = [];
279
+
280
+ groundedTermsAndDefinedVariablesFromFromEquivalences(equivalences, groundedTerms, definedVariables, context);
281
+
282
+ const variableMatchesDefinedVariable = definedVariables.some((definedVariable) => {
283
+ const variableMatchesDefinedVariable = variable.match(definedVariable);
284
+
285
+ if (variableMatchesDefinedVariable) {
286
+ return true;
287
+ }
288
+ }),
289
+ variableDefined = variableMatchesDefinedVariable; ///
290
+
291
+ return variableDefined;
292
+ }
255
293
 
256
294
  isVariablePresentByVariableNode(variableNode) {
257
295
  const variable = this.findVariableByVariableNode(variableNode),
@@ -260,19 +298,59 @@ class IntrinsicLevelLocalContext {
260
298
  return variablePresent;
261
299
  }
262
300
 
263
- toJSON(tokens) {
264
- const variables = this.variables.map((variable) => {
265
- const variableJSON = variable.toJSON(tokens);
301
+ isJudgementPresentByMetavariableNode(metavariableNode) {
302
+ const judgement = this.findJudgementByMetavariableNode(metavariableNode),
303
+ judgementPresent = (judgement !== null);
266
304
 
267
- variable = variableJSON;
305
+ return judgementPresent;
306
+ }
268
307
 
269
- return variable;
270
- }),
271
- json = {
272
- variables
273
- };
308
+ isMetavariablePresentByMetavariableNode(metavariableNode, localContext) {
309
+ const metavariable = this.findMetavariableByMetavariableNode(metavariableNode, localContext),
310
+ metavariablePresent = (metavariable !== null);
274
311
 
275
- return json;
312
+ return metavariablePresent;
313
+ }
314
+
315
+ findVariableByVariableNode(variableNode) {
316
+ const node = variableNode, ///
317
+ variables = this.getVariables(),
318
+ variable = variables.find((variable) => {
319
+ const matches = variable.matchNode(node);
320
+
321
+ if (matches) {
322
+ return true;
323
+ }
324
+ }) || null;
325
+
326
+ return variable;
327
+ }
328
+
329
+ findJudgementByMetavariableNode(metavariableNode) {
330
+ const judgements = this.getJudgements(),
331
+ judgement = judgements.find((judgement) => {
332
+ const judgementMatchesMetavariableNode = judgement.matchMetavariableNode(metavariableNode);
333
+
334
+ if (judgementMatchesMetavariableNode) {
335
+ return true;
336
+ }
337
+ }) || null;
338
+
339
+ return judgement;
340
+ }
341
+
342
+ findMetavariableByMetavariableNode(metavariableNode, localContext) {
343
+ const node = metavariableNode, ///
344
+ metavariables = this.getMetavariables(),
345
+ metavariable = metavariables.find((metavariable) => {
346
+ const matches = metavariable.matchNode(node, localContext);
347
+
348
+ if (matches) {
349
+ return true;
350
+ }
351
+ }) || null;
352
+
353
+ return metavariable;
276
354
  }
277
355
 
278
356
  static fromFileContext(fileContext) {
@@ -280,9 +358,11 @@ class IntrinsicLevelLocalContext {
280
358
  variables = [],
281
359
  proofSteps = [],
282
360
  equivalences = [],
283
- intrinsicLevelLocalContext = new IntrinsicLevelLocalContext(context, variables, proofSteps, equivalences);
361
+ judgements = [],
362
+ metavariables = [],
363
+ localContext = new LocalContext(context, variables, proofSteps, judgements, equivalences, metavariables);
284
364
 
285
- return intrinsicLevelLocalContext;
365
+ return localContext;
286
366
  }
287
367
 
288
368
  static fromLocalContext(localContext) {
@@ -290,9 +370,12 @@ class IntrinsicLevelLocalContext {
290
370
  variables = [],
291
371
  proofSteps = [],
292
372
  equivalences = [],
293
- intrinsicLevelLocalContext = new IntrinsicLevelLocalContext(context, variables, proofSteps, equivalences);
373
+ judgements = [],
374
+ metavariables = [];
375
+
376
+ localContext = new LocalContext(context, variables, proofSteps, judgements, equivalences, metavariables); ///
294
377
 
295
- return intrinsicLevelLocalContext;
378
+ return localContext;
296
379
  }
297
380
 
298
381
  static fromJSONAndFileContext(json, fileContext) {
@@ -310,12 +393,14 @@ class IntrinsicLevelLocalContext {
310
393
  const context = fileContext, ///
311
394
  proofSteps = [],
312
395
  equivalences = [],
313
- intrinsicLevelLocalContext = new IntrinsicLevelLocalContext(context, variables, proofSteps, equivalences);
396
+ judgements = [],
397
+ metavariables = [],
398
+ localContext = new LocalContext(context, variables, proofSteps, judgements, equivalences, metavariables); ///
314
399
 
315
- return intrinsicLevelLocalContext;
400
+ return localContext;
316
401
  }
317
402
  }
318
403
 
319
- Object.assign(IntrinsicLevelLocalContext.prototype, contextMixins);
404
+ Object.assign(LocalContext.prototype, contextMixins);
320
405
 
321
- export default IntrinsicLevelLocalContext;
406
+ export default LocalContext;
@@ -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
  }