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.
- package/lib/axiom.js +9 -9
- package/lib/conclusion.js +11 -41
- package/lib/conjecture.js +9 -9
- package/lib/constants.js +1 -13
- package/lib/context/file.js +3 -3
- package/lib/context/local.js +19 -59
- package/lib/declaration.js +15 -15
- package/lib/lemma.js +9 -9
- package/lib/metaLemma.js +7 -7
- package/lib/metatheorem.js +7 -7
- package/lib/metavariable.js +8 -1
- package/lib/mixins/nodesVerifier/metaLevel.js +6 -6
- package/lib/premise.js +14 -91
- package/lib/{step/proof.js → proofStep.js} +1 -1
- package/lib/rule.js +1 -45
- package/lib/ruleNames.js +1 -9
- package/lib/substitution/statementForMetavariable.js +9 -1
- package/lib/substitution.js +1 -8
- package/lib/supposition.js +55 -1
- package/lib/theorem.js +9 -9
- package/lib/topLevelAssertion.js +186 -0
- package/lib/utilities/customGrammar.js +2 -2
- package/lib/utilities/match.js +13 -50
- package/lib/utilities/node.js +2 -27
- package/lib/utilities/tokens.js +1 -8
- package/lib/utilities/verify.js +8 -24
- package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +29 -29
- package/lib/verifier/nodes/metaLevel.js +13 -13
- package/lib/verify/axiom.js +4 -4
- package/lib/verify/conclusion.js +10 -11
- package/lib/verify/conjecture.js +4 -4
- package/lib/verify/containedAssertion.js +91 -0
- package/lib/verify/declaration.js +7 -7
- package/lib/verify/definedAssertion.js +115 -0
- package/lib/verify/derivation.js +7 -7
- package/lib/verify/frame.js +2 -2
- package/lib/verify/judgement.js +2 -2
- package/lib/verify/lemma.js +5 -5
- package/lib/verify/metaLemma.js +12 -12
- package/lib/verify/metastatement.js +48 -67
- package/lib/verify/metatheorem.js +12 -12
- package/lib/verify/metavariable.js +2 -2
- package/lib/verify/premise.js +11 -30
- package/lib/verify/proof.js +3 -3
- package/lib/verify/proofStep.js +8 -8
- package/lib/verify/rule.js +10 -10
- package/lib/verify/statement/qualified.js +38 -15
- package/lib/verify/statement/unqualified.js +38 -10
- package/lib/verify/statement.js +85 -92
- package/lib/verify/subDerivation.js +3 -3
- package/lib/verify/subproof.js +3 -3
- package/lib/verify/supposition.js +3 -3
- package/lib/verify/termAsConstructor.js +2 -2
- package/lib/verify/theorem.js +4 -4
- package/package.json +2 -2
- package/src/axiom.js +4 -4
- package/src/conclusion.js +13 -52
- package/src/conjecture.js +4 -4
- package/src/constants.js +0 -3
- package/src/context/file.js +2 -2
- package/src/context/local.js +21 -67
- package/src/declaration.js +19 -19
- package/src/lemma.js +4 -4
- package/src/metaLemma.js +4 -4
- package/src/metatheorem.js +4 -4
- package/src/metavariable.js +6 -0
- package/src/mixins/nodesVerifier/metaLevel.js +8 -8
- package/src/premise.js +20 -137
- package/src/rule.js +0 -67
- package/src/ruleNames.js +0 -2
- package/src/substitution/statementForMetavariable.js +14 -0
- package/src/substitution.js +0 -6
- package/src/supposition.js +46 -0
- package/src/theorem.js +4 -4
- package/src/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +36 -23
- package/src/utilities/customGrammar.js +1 -2
- package/src/utilities/match.js +13 -60
- package/src/utilities/node.js +3 -32
- package/src/utilities/tokens.js +0 -8
- package/src/utilities/verify.js +4 -20
- package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +36 -37
- package/src/verifier/nodes/metaLevel.js +17 -17
- package/src/verify/axiom.js +5 -4
- package/src/verify/conclusion.js +9 -13
- package/src/verify/conjecture.js +5 -4
- package/src/verify/{statementAsContainedAssertion.js → containedAssertion.js} +20 -36
- package/src/verify/declaration.js +8 -8
- package/src/verify/{statementAsDefinedAssertion.js → definedAssertion.js} +22 -37
- package/src/verify/derivation.js +6 -6
- package/src/verify/frame.js +1 -1
- package/src/verify/judgement.js +1 -1
- package/src/verify/lemma.js +8 -5
- package/src/verify/metaLemma.js +24 -24
- package/src/verify/metastatement.js +48 -76
- package/src/verify/metatheorem.js +23 -23
- package/src/verify/metavariable.js +1 -1
- package/src/verify/premise.js +14 -46
- package/src/verify/proof.js +2 -2
- package/src/verify/proofStep.js +4 -4
- package/src/verify/rule.js +11 -11
- package/src/verify/statement/qualified.js +56 -21
- package/src/verify/statement/unqualified.js +52 -10
- package/src/verify/statement.js +133 -39
- package/src/verify/subDerivation.js +2 -2
- package/src/verify/subproof.js +2 -2
- package/src/verify/supposition.js +1 -1
- package/src/verify/termAsConstructor.js +2 -2
- package/src/verify/theorem.js +7 -4
- package/lib/axiomLemmaTheoremConjecture.js +0 -174
- package/lib/metaConsequent.js +0 -108
- package/lib/metaLemmaMetatheorem.js +0 -191
- package/lib/metaSupposition.js +0 -160
- package/lib/node/metastatement/bracketed.js +0 -16
- package/lib/step/metaproof.js +0 -106
- package/lib/substitution/metastatementForMetavariable.js +0 -173
- package/lib/verify/metaConsequent.js +0 -50
- package/lib/verify/metaDerivation.js +0 -31
- package/lib/verify/metaSubDerivation.js +0 -25
- package/lib/verify/metaSubproof.js +0 -34
- package/lib/verify/metaSupposition.js +0 -61
- package/lib/verify/metaSuppositions.js +0 -28
- package/lib/verify/metaproof.js +0 -31
- package/lib/verify/metaproofStep.js +0 -98
- package/lib/verify/metastatement/qualified.js +0 -95
- package/lib/verify/metastatement/unqualified.js +0 -37
- package/lib/verify/metastatementAsContainedAssertion.js +0 -109
- package/lib/verify/metastatementAsDefinedAssertion.js +0 -132
- package/lib/verify/metavariableAgainstMetastatement.js +0 -44
- package/lib/verify/statementAsContainedAssertion.js +0 -109
- package/lib/verify/statementAsDefinedAssertion.js +0 -132
- package/src/metaConsequent.js +0 -83
- package/src/metaLemmaMetatheorem.js +0 -188
- package/src/metaSupposition.js +0 -127
- package/src/node/metastatement/bracketed.js +0 -9
- package/src/step/metaproof.js +0 -73
- package/src/substitution/metastatementForMetavariable.js +0 -90
- package/src/verify/metaConsequent.js +0 -61
- package/src/verify/metaDerivation.js +0 -23
- package/src/verify/metaSubDerivation.js +0 -22
- package/src/verify/metaSubproof.js +0 -32
- package/src/verify/metaSupposition.js +0 -78
- package/src/verify/metaSuppositions.js +0 -17
- package/src/verify/metaproof.js +0 -28
- package/src/verify/metaproofStep.js +0 -137
- package/src/verify/metastatement/qualified.js +0 -130
- package/src/verify/metastatement/unqualified.js +0 -34
- package/src/verify/metastatementAsContainedAssertion.js +0 -127
- package/src/verify/metastatementAsDefinedAssertion.js +0 -156
- package/src/verify/metavariableAgainstMetastatement.js +0 -42
- /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
|
|
7
|
+
import { statementNodeFromStatementString } from "./utilities/node";
|
|
9
8
|
|
|
10
9
|
export default class Conclusion {
|
|
11
|
-
constructor(
|
|
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,
|
|
25
|
-
let
|
|
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.
|
|
21
|
+
if (this.statementNode !== null) {
|
|
48
22
|
const fileContextA = fileContext, ///
|
|
49
|
-
nonTerminalNodeA = this.
|
|
50
|
-
nonTerminalNodeB =
|
|
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
|
-
|
|
33
|
+
matchesStatementNode = nonTerminalNodeVerified; ///
|
|
60
34
|
}
|
|
61
35
|
|
|
62
|
-
return
|
|
36
|
+
return matchesStatementNode;
|
|
63
37
|
}
|
|
64
38
|
|
|
65
39
|
toJSON(tokens) {
|
|
66
|
-
const
|
|
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
|
|
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 {
|
|
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(
|
|
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
|
|
3
|
+
import TopLevelAssertion from "./topLevelAssertion";
|
|
4
4
|
|
|
5
|
-
export default class Conjecture extends
|
|
6
|
-
static fromJSONAndFileContext(json, fileContext) { return
|
|
5
|
+
export default class Conjecture extends TopLevelAssertion {
|
|
6
|
+
static fromJSONAndFileContext(json, fileContext) { return TopLevelAssertion.fromJSONAndFileContext(Conjecture, json, fileContext); }
|
|
7
7
|
|
|
8
|
-
static
|
|
8
|
+
static fromLabelsSuppositionsConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, substitutions, fileContext) { return TopLevelAssertion.fromLabelsSuppositionsConsequentSubstitutionsAndFileContext(Conjecture, labels, suppositions, consequent, substitutions, fileContext); }
|
|
9
9
|
}
|
package/src/constants.js
CHANGED
package/src/context/file.js
CHANGED
|
@@ -513,8 +513,8 @@ export default class FileContext {
|
|
|
513
513
|
return labelPresent;
|
|
514
514
|
}
|
|
515
515
|
|
|
516
|
-
isMetavariablePresentByMetavariableNode(metavariableNode
|
|
517
|
-
const metavariable = this.findMetavariableByMetavariableNode(metavariableNode
|
|
516
|
+
isMetavariablePresentByMetavariableNode(metavariableNode) {
|
|
517
|
+
const metavariable = this.findMetavariableByMetavariableNode(metavariableNode),
|
|
518
518
|
metavariablePresent = (metavariable !== null);
|
|
519
519
|
|
|
520
520
|
return metavariablePresent;
|
package/src/context/local.js
CHANGED
|
@@ -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,
|
|
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
|
|
353
|
-
const metavariable = this.findMetavariableByMetavariableNode(metavariableNode
|
|
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
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
}
|
package/src/declaration.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { matchStatementModuloBrackets } from "./utilities/match";
|
|
4
4
|
|
|
5
5
|
export default class Declaration {
|
|
6
|
-
constructor(metavariableNode,
|
|
6
|
+
constructor(metavariableNode, statementNode) {
|
|
7
7
|
this.metavariableNode = metavariableNode;
|
|
8
|
-
this.
|
|
8
|
+
this.statementNode = statementNode;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
getMetavariableNode() {
|
|
12
12
|
return this.metavariableNode;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
return this.
|
|
15
|
+
getStatementNode() {
|
|
16
|
+
return this.statementNode;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
matchSubstitution(substitution) {
|
|
20
|
-
const
|
|
21
|
-
|
|
20
|
+
const statementNode = substitution.getStatementNode(),
|
|
21
|
+
metavariableNode = substitution.getMetavariableNode(),
|
|
22
|
+
matchesStatementNode = this.matchStatementNode(statementNode),
|
|
22
23
|
matchesMetavariableNode = this.matchMetavariableNode(metavariableNode),
|
|
23
|
-
|
|
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
|
-
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
matchStatementNode(statementNode) {
|
|
36
|
+
const statementNodeA = statementNode, ///
|
|
37
|
+
statementNodeB = this.statementNode, ///
|
|
38
|
+
statementMatches = matchStatementModuloBrackets(statementNodeA, statementNodeB),
|
|
39
|
+
matchesStatementNode = statementMatches; ///
|
|
40
40
|
|
|
41
|
-
return
|
|
41
|
+
return matchesStatementNode;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
matchMetaLemmaOrMetaTheorem(metaLemmaMetatheorem) {
|
|
45
45
|
const metaConsequent = metaLemmaMetatheorem.getMetaConsequent(),
|
|
46
|
-
|
|
47
|
-
matches = this.
|
|
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
|
|
54
|
-
const declaration = new Declaration(metavariableNode,
|
|
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
|
|
3
|
+
import TopLevelAssertion from "./topLevelAssertion";
|
|
4
4
|
|
|
5
|
-
export default class Lemma extends
|
|
6
|
-
static fromJSONAndFileContext(json, fileContext) { return
|
|
5
|
+
export default class Lemma extends TopLevelAssertion {
|
|
6
|
+
static fromJSONAndFileContext(json, fileContext) { return TopLevelAssertion.fromJSONAndFileContext(Lemma,json, fileContext); }
|
|
7
7
|
|
|
8
|
-
static
|
|
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
|
|
3
|
+
import TopLevelAssertion from "./topLevelAssertion";
|
|
4
4
|
|
|
5
|
-
export default class MetaLemma extends
|
|
6
|
-
static fromJSONAndFileContext(json, fileContext) { return
|
|
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
|
|
8
|
+
static fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, metaSuppositions, metaConsequent, substitutions, fileContext) { return TopLevelAssertion.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(MetaLemma, labels, metaSuppositions, metaConsequent, substitutions, fileContext); }
|
|
9
9
|
}
|
package/src/metatheorem.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import TopLevelAssertion from "./topLevelAssertion";
|
|
4
4
|
|
|
5
|
-
export default class Metatheorem extends
|
|
6
|
-
static fromJSONAndFileContext(json, fileContext) { return
|
|
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
|
|
8
|
+
static fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, fileContext) { return TopLevelAssertion.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(Metatheorem, labels, suppositions, consequent, fileContext); }
|
|
9
9
|
}
|
package/src/metavariable.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import StatementForMetavariableSubstitution from "../../substitution/statementForMetavariable";
|
|
4
4
|
|
|
5
|
-
function verifyMetavariableNode(metavariableNodeA,
|
|
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
|
|
18
|
-
|
|
17
|
+
const statementNode = statementNodeB, ///
|
|
18
|
+
substitutionStatementNode = substitution.matchStatementNode(statementNode);
|
|
19
19
|
|
|
20
|
-
metavariableNodeVerified =
|
|
20
|
+
metavariableNodeVerified = substitutionStatementNode; ///
|
|
21
21
|
} else {
|
|
22
22
|
const metavariableNode = metavariableNodeA, ///
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
substitution =
|
|
23
|
+
statementNode = statementNodeB, ///
|
|
24
|
+
statementForMetavariableSubstitution = StatementForMetavariableSubstitution.fromMetavariableNodeAndStatementNode(metavariableNode, statementNode),
|
|
25
|
+
substitution = statementForMetavariableSubstitution; ///
|
|
26
26
|
|
|
27
27
|
substitutions.push(substitution);
|
|
28
28
|
|