occam-verify-cli 0.0.683 → 0.0.684
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/assignment/equality.js +60 -0
- package/lib/assignment/variable.js +60 -0
- package/lib/axiom.js +4 -4
- package/lib/axiomLemmaTheoremConjecture.js +29 -29
- package/lib/collection.js +154 -0
- package/lib/combinator.js +1 -1
- package/lib/conclusion.js +5 -5
- package/lib/conjecture.js +4 -4
- package/lib/consequent.js +3 -3
- package/lib/constructor.js +1 -1
- package/lib/context/file.js +9 -2
- package/lib/context/local.js +330 -0
- package/lib/context/localMeta.js +192 -0
- package/lib/context/release.js +1 -1
- package/lib/equality.js +19 -87
- package/lib/label.js +1 -1
- package/lib/lemma.js +4 -4
- package/lib/log.js +1 -1
- package/lib/metaType.js +1 -1
- package/lib/metavariable.js +1 -1
- package/lib/ocmbinator/bracketed.js +1 -1
- package/lib/premise.js +9 -9
- package/lib/rule.js +25 -25
- package/lib/step/metaproof.js +1 -1
- package/lib/step/proof.js +1 -1
- package/lib/substitution/metastatementForMetavariable.js +1 -1
- package/lib/substitution/statementForMetavariable.js +1 -1
- package/lib/substitution/termForVariable.js +1 -1
- package/lib/supposition.js +5 -5
- package/lib/term.js +68 -0
- package/lib/theorem.js +4 -4
- package/lib/type.js +5 -5
- package/lib/utilities/array.js +4 -4
- package/lib/utilities/collection.js +107 -0
- package/lib/variable.js +1 -1
- package/lib/verifier/node/metastatement.js +9 -9
- package/lib/verifier/node/statementAsCombinator.js +1 -1
- package/lib/verifier/node/termAsConstructor.js +2 -2
- package/lib/verifier/node.js +1 -1
- package/lib/verifier/nodes/metastatementForMetavariable/conclusion.js +1 -1
- package/lib/verifier/nodes/metastatementForMetavariable/premise.js +1 -1
- package/lib/verifier/nodes/metastatementForMetavariable.js +8 -8
- package/lib/verifier/nodes/statement.js +1 -1
- package/lib/verifier/nodes/statementForMetavariable/conclusion.js +1 -1
- package/lib/verifier/nodes/statementForMetavariable/premise.js +1 -1
- package/lib/verifier/nodes/statementForMetavariable.js +9 -9
- package/lib/verifier/nodes/term.js +3 -3
- package/lib/verifier/nodes/termForVariable/consequent.js +1 -1
- package/lib/verifier/nodes/termForVariable/supposition.js +1 -1
- package/lib/verifier/nodes/termForVariable.js +11 -11
- package/lib/verifier/nodes.js +1 -1
- package/lib/verify/axiom.js +6 -6
- package/lib/verify/conclusion.js +6 -6
- package/lib/verify/conjecture.js +7 -7
- package/lib/verify/consequent.js +6 -6
- package/lib/verify/derivation.js +17 -17
- package/lib/verify/equality.js +50 -18
- package/lib/verify/lemma.js +7 -7
- package/lib/verify/metastatement/qualified.js +7 -7
- package/lib/verify/metastatement/unqualified.js +7 -7
- package/lib/verify/metastatement.js +12 -12
- package/lib/verify/premise.js +7 -7
- package/lib/verify/proof.js +10 -7
- package/lib/verify/rule.js +6 -6
- package/lib/verify/ruleDerivation.js +17 -17
- package/lib/verify/ruleProof.js +6 -6
- package/lib/verify/statement/qualified.js +15 -15
- package/lib/verify/statement/unqualified.js +7 -7
- package/lib/verify/supposition.js +8 -8
- package/lib/verify/term.js +32 -31
- package/lib/verify/terms.js +11 -17
- package/lib/verify/theorem.js +7 -7
- package/lib/verify/typeAssertion.js +3 -3
- package/package.json +1 -1
- package/src/assignment/equality.js +21 -0
- package/src/assignment/variable.js +21 -0
- package/src/axiom.js +1 -1
- package/src/axiomLemmaTheoremConjecture.js +26 -26
- package/src/collection.js +101 -0
- package/src/conclusion.js +6 -6
- package/src/conjecture.js +1 -1
- package/src/consequent.js +4 -4
- package/src/context/file.js +9 -1
- package/src/context/local.js +311 -0
- package/src/context/{metaproof.js → localMeta.js} +16 -17
- package/src/equality.js +17 -111
- package/src/lemma.js +1 -1
- package/src/premise.js +12 -12
- package/src/rule.js +24 -24
- package/src/supposition.js +8 -8
- package/src/term.js +30 -0
- package/src/theorem.js +1 -1
- package/src/type.js +3 -3
- package/src/utilities/array.js +1 -1
- package/src/utilities/collection.js +83 -0
- package/src/verifier/node/metastatement.js +8 -8
- package/src/verifier/node/termAsConstructor.js +2 -2
- package/src/verifier/nodes/metastatementForMetavariable.js +7 -7
- package/src/verifier/nodes/statementForMetavariable.js +8 -8
- package/src/verifier/nodes/term.js +5 -4
- package/src/verifier/nodes/termForVariable.js +15 -14
- package/src/verify/axiom.js +5 -5
- package/src/verify/conclusion.js +5 -5
- package/src/verify/conjecture.js +6 -6
- package/src/verify/consequent.js +5 -5
- package/src/verify/derivation.js +16 -16
- package/src/verify/equality.js +81 -24
- package/src/verify/lemma.js +6 -6
- package/src/verify/metastatement/qualified.js +7 -7
- package/src/verify/metastatement/unqualified.js +6 -6
- package/src/verify/metastatement.js +11 -11
- package/src/verify/premise.js +6 -6
- package/src/verify/proof.js +13 -10
- package/src/verify/rule.js +5 -5
- package/src/verify/ruleDerivation.js +16 -16
- package/src/verify/ruleProof.js +5 -5
- package/src/verify/statement/qualified.js +15 -15
- package/src/verify/statement/unqualified.js +6 -6
- package/src/verify/supposition.js +7 -7
- package/src/verify/term.js +38 -35
- package/src/verify/terms.js +14 -28
- package/src/verify/theorem.js +6 -6
- package/src/verify/typeAssertion.js +3 -2
- package/lib/assignment.js +0 -74
- package/lib/context/metaproof.js +0 -192
- package/lib/context/proof.js +0 -245
- package/lib/verifier/nodes/equality.js +0 -155
- package/src/assignment.js +0 -36
- package/src/context/proof.js +0 -205
- package/src/verifier/nodes/equality.js +0 -68
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export default class EqualityAssignment {
|
|
4
|
+
constructor(equality) {
|
|
5
|
+
this.equality = equality;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
getEquality() {
|
|
9
|
+
return this.equality;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
assign(localContext) {
|
|
13
|
+
localContext.addEquality(this.equality);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
static fromEquality(equality) {
|
|
17
|
+
const assignmentAssignment = new EqualityAssignment(equality);
|
|
18
|
+
|
|
19
|
+
return assignmentAssignment;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export default class VariableAssignment {
|
|
4
|
+
constructor(variable) {
|
|
5
|
+
this.variable = variable;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
getVariable() {
|
|
9
|
+
return this.variable;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
assign(localContext) {
|
|
13
|
+
localContext.addVariable(this.variable);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
static fromVariable(variable) {
|
|
17
|
+
const assignmentAssignment = new VariableAssignment(variable);
|
|
18
|
+
|
|
19
|
+
return assignmentAssignment;
|
|
20
|
+
}
|
|
21
|
+
}
|
package/src/axiom.js
CHANGED
|
@@ -5,5 +5,5 @@ import AxiomLemmaTheoremConjecture from "./axiomLemmaTheoremConjecture";
|
|
|
5
5
|
export default class Axiom extends AxiomLemmaTheoremConjecture {
|
|
6
6
|
static fromJSONAndFileContext(json, fileContext) { return AxiomLemmaTheoremConjecture.fromJSONAndFileContext(Axiom, json, fileContext); }
|
|
7
7
|
|
|
8
|
-
static
|
|
8
|
+
static fromLabelsSuppositionsConsequentAndLocalContext(labels, suppositions, consequent, localContext) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsConsequentAndLocalContext(Axiom, labels, suppositions, consequent, localContext); }
|
|
9
9
|
}
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
import Label from "./label";
|
|
4
4
|
import Consequent from "./consequent";
|
|
5
5
|
import Supposition from "./supposition";
|
|
6
|
-
import
|
|
6
|
+
import LocalContext from "./context/local";
|
|
7
7
|
|
|
8
8
|
import { prune } from "./utilities/array";
|
|
9
9
|
import { someSubArray } from "./utilities/array";
|
|
10
10
|
|
|
11
11
|
export default class AxiomLemmaTheoremConjecture {
|
|
12
|
-
constructor(labels, suppositions, consequent,
|
|
12
|
+
constructor(labels, suppositions, consequent, localContext) {
|
|
13
13
|
this.labels = labels;
|
|
14
14
|
this.suppositions = suppositions;
|
|
15
15
|
this.consequent = consequent;
|
|
16
|
-
this.
|
|
16
|
+
this.localContext = localContext;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
getLabels() {
|
|
@@ -28,8 +28,8 @@ export default class AxiomLemmaTheoremConjecture {
|
|
|
28
28
|
return this.consequent;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
return this.
|
|
31
|
+
getLocalContext() {
|
|
32
|
+
return this.localContext;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
matchLabelName(labelName) {
|
|
@@ -45,27 +45,27 @@ export default class AxiomLemmaTheoremConjecture {
|
|
|
45
45
|
return labelNameMatches;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
matchStatement(statementNode,
|
|
48
|
+
matchStatement(statementNode, statementLocalContext) {
|
|
49
49
|
let statementNatches;
|
|
50
50
|
|
|
51
51
|
const suppositionsLength = this.suppositions.length;
|
|
52
52
|
|
|
53
53
|
if (suppositionsLength === 0) {
|
|
54
54
|
const substitutions = [],
|
|
55
|
-
consequentMatches = matchConsequent(this.consequent, statementNode, substitutions, this.
|
|
55
|
+
consequentMatches = matchConsequent(this.consequent, statementNode, substitutions, this.localContext, statementLocalContext);
|
|
56
56
|
|
|
57
57
|
statementNatches = consequentMatches; ///
|
|
58
58
|
} else {
|
|
59
|
-
const proofSteps =
|
|
59
|
+
const proofSteps = statementLocalContext.getProofSteps();
|
|
60
60
|
|
|
61
61
|
statementNatches = someSubArray(proofSteps, suppositionsLength, (proofSteps) => {
|
|
62
62
|
let suppositionsMatchConsequent = false;
|
|
63
63
|
|
|
64
64
|
const substitutions = [],
|
|
65
|
-
suppositionsMatch = matchSuppositions(this.suppositions, proofSteps, substitutions, this.
|
|
65
|
+
suppositionsMatch = matchSuppositions(this.suppositions, proofSteps, substitutions, this.localContext, statementLocalContext);
|
|
66
66
|
|
|
67
67
|
if (suppositionsMatch) {
|
|
68
|
-
const consequentMatches = matchConsequent(this.consequent, statementNode, substitutions, this.
|
|
68
|
+
const consequentMatches = matchConsequent(this.consequent, statementNode, substitutions, this.localContext, statementLocalContext);
|
|
69
69
|
|
|
70
70
|
suppositionsMatchConsequent = consequentMatches; ///
|
|
71
71
|
}
|
|
@@ -91,16 +91,16 @@ export default class AxiomLemmaTheoremConjecture {
|
|
|
91
91
|
return suppositionJSON;
|
|
92
92
|
}),
|
|
93
93
|
consequentJSON = this.consequent.toJSON(tokens),
|
|
94
|
-
|
|
94
|
+
localContextJSON = this.localContext.toJSON(tokens),
|
|
95
95
|
labels = labelsJSON, ///
|
|
96
96
|
suppositions = suppositionsJSON, ///
|
|
97
97
|
consequent = consequentJSON, ///
|
|
98
|
-
|
|
98
|
+
localContext = localContextJSON, ///
|
|
99
99
|
json = {
|
|
100
100
|
labels,
|
|
101
101
|
suppositions,
|
|
102
102
|
consequent,
|
|
103
|
-
|
|
103
|
+
localContext
|
|
104
104
|
};
|
|
105
105
|
|
|
106
106
|
return json;
|
|
@@ -118,7 +118,7 @@ export default class AxiomLemmaTheoremConjecture {
|
|
|
118
118
|
return label;
|
|
119
119
|
});
|
|
120
120
|
|
|
121
|
-
let { suppositions, consequent,
|
|
121
|
+
let { suppositions, consequent, localContext } = json;
|
|
122
122
|
|
|
123
123
|
const suppositionsJSON = suppositions; ///
|
|
124
124
|
|
|
@@ -135,25 +135,25 @@ export default class AxiomLemmaTheoremConjecture {
|
|
|
135
135
|
|
|
136
136
|
consequent = Consequent.fromJSONAndFileContext(json, fileContext);
|
|
137
137
|
|
|
138
|
-
const
|
|
138
|
+
const localContextJSON = localContext; ///
|
|
139
139
|
|
|
140
|
-
json =
|
|
140
|
+
json = localContextJSON; ///
|
|
141
141
|
|
|
142
|
-
|
|
142
|
+
localContext = LocalContext.fromJSONAndFileContext(json, fileContext);
|
|
143
143
|
|
|
144
|
-
return new Class(labels, suppositions, consequent,
|
|
144
|
+
return new Class(labels, suppositions, consequent, localContext); ///
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
static
|
|
147
|
+
static fromLabelsSuppositionsConsequentAndLocalContext(Class, labels, suppositions, consequent, localContext) { return new Class(labels, suppositions, consequent, localContext); }
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
-
function matchSupposition(supposition, proofSteps, substitutions,
|
|
150
|
+
function matchSupposition(supposition, proofSteps, substitutions, localContext, statementLocalContext) {
|
|
151
151
|
const proofStep = prune(proofSteps, (proofStep) => {
|
|
152
152
|
const subproofNode = proofStep.getSubproofNode(),
|
|
153
153
|
statementNode = proofStep.getStatementNode();
|
|
154
154
|
|
|
155
155
|
if (subproofNode !== null) {
|
|
156
|
-
const subProofMatches = supposition.matchSubproofNode(subproofNode, substitutions,
|
|
156
|
+
const subProofMatches = supposition.matchSubproofNode(subproofNode, substitutions, localContext, statementLocalContext);
|
|
157
157
|
|
|
158
158
|
if (!subProofMatches) { ///
|
|
159
159
|
return true;
|
|
@@ -161,7 +161,7 @@ function matchSupposition(supposition, proofSteps, substitutions, proofContext,
|
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
if (statementNode !== null) {
|
|
164
|
-
const statementMatches = supposition.matchStatementNode(statementNode, substitutions,
|
|
164
|
+
const statementMatches = supposition.matchStatementNode(statementNode, substitutions, localContext, statementLocalContext);
|
|
165
165
|
|
|
166
166
|
if (!statementMatches) { ///
|
|
167
167
|
return true;
|
|
@@ -175,9 +175,9 @@ function matchSupposition(supposition, proofSteps, substitutions, proofContext,
|
|
|
175
175
|
return suppositionMatches;
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
-
function matchSuppositions(suppositions, proofSteps, substitutions,
|
|
178
|
+
function matchSuppositions(suppositions, proofSteps, substitutions, localContext, statementLocalContext) {
|
|
179
179
|
const suppositionsMatch = suppositions.every((supposition) => {
|
|
180
|
-
const suppositionMatches = matchSupposition(supposition, proofSteps, substitutions,
|
|
180
|
+
const suppositionMatches = matchSupposition(supposition, proofSteps, substitutions, localContext, statementLocalContext);
|
|
181
181
|
|
|
182
182
|
if (suppositionMatches) {
|
|
183
183
|
return true;
|
|
@@ -187,8 +187,8 @@ function matchSuppositions(suppositions, proofSteps, substitutions, proofContext
|
|
|
187
187
|
return suppositionsMatch;
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
function matchConsequent(consequent, statementNode, substitutions,
|
|
191
|
-
const nonTerminalNodeMatches = consequent.matchStatementNode(statementNode, substitutions,
|
|
190
|
+
function matchConsequent(consequent, statementNode, substitutions, localContext, statementLocalContext) {
|
|
191
|
+
const nonTerminalNodeMatches = consequent.matchStatementNode(statementNode, substitutions, localContext, statementLocalContext),
|
|
192
192
|
consequentMatches = nonTerminalNodeMatches; ///
|
|
193
193
|
|
|
194
194
|
return consequentMatches;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export default class Collection {
|
|
4
|
+
constructor(terms) {
|
|
5
|
+
this.terms = terms;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
getTerms() {
|
|
9
|
+
return this.terms;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
setTerms(terms) {
|
|
13
|
+
this.terms = terms;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
addTerm(term) {
|
|
17
|
+
this.terms.push(term);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
getType() {
|
|
21
|
+
const type = this.terms.reduce((type, term) => {
|
|
22
|
+
const termType = term.getType();
|
|
23
|
+
|
|
24
|
+
if (type === null) {
|
|
25
|
+
type = termType; ///
|
|
26
|
+
} else {
|
|
27
|
+
const termTypeSubTypeOfType = termType.isSubTypeOf(type);
|
|
28
|
+
|
|
29
|
+
if (termTypeSubTypeOfType) {
|
|
30
|
+
type = termType; ///
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return type;
|
|
35
|
+
}, null);
|
|
36
|
+
|
|
37
|
+
return type;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
matchType(type) {
|
|
41
|
+
const typeA = type; ///
|
|
42
|
+
|
|
43
|
+
type = this.getType();
|
|
44
|
+
|
|
45
|
+
const typeB = type; ///
|
|
46
|
+
|
|
47
|
+
const typeMatches = (typeA === typeB); ///
|
|
48
|
+
|
|
49
|
+
return typeMatches;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
matchTerm(term) {
|
|
53
|
+
const termA = term, ///
|
|
54
|
+
termMatches = this.terms.some((term) => {
|
|
55
|
+
const termB = term, ///
|
|
56
|
+
termAMatchesTermB = termA.match(termB);
|
|
57
|
+
|
|
58
|
+
if (termAMatchesTermB) {
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
return termMatches;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
matchTerms(terms) {
|
|
67
|
+
const termsMatch = terms.every((term) => {
|
|
68
|
+
const termMatches = this.matchTerm(term);
|
|
69
|
+
|
|
70
|
+
if (termMatches) {
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
})
|
|
74
|
+
|
|
75
|
+
return termsMatch;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
static fromEquality(equality) {
|
|
79
|
+
const leftTerm = equality.getLeftTerm(),
|
|
80
|
+
rightTerm = equality.getRightTerm(),
|
|
81
|
+
terms = [
|
|
82
|
+
leftTerm,
|
|
83
|
+
rightTerm
|
|
84
|
+
],
|
|
85
|
+
collection = new Collection(terms);
|
|
86
|
+
|
|
87
|
+
return collection;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
static fromCollections(collectionA, collectionB) {
|
|
91
|
+
const collectionATerms = collectionA.getTerms(),
|
|
92
|
+
collectionBTerms = collectionB.getTerms(),
|
|
93
|
+
terms = [
|
|
94
|
+
...collectionATerms,
|
|
95
|
+
...collectionBTerms
|
|
96
|
+
],
|
|
97
|
+
collection = new Collection(terms);
|
|
98
|
+
|
|
99
|
+
return collection;
|
|
100
|
+
}
|
|
101
|
+
}
|
package/src/conclusion.js
CHANGED
|
@@ -15,12 +15,12 @@ export default class Conclusion {
|
|
|
15
15
|
return this.metastatementNode;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
matchStatementNode(statementNode, substitutions, fileContext,
|
|
18
|
+
matchStatementNode(statementNode, substitutions, fileContext, statementLocalContext) {
|
|
19
19
|
const nonTerminalNodeA = this.metastatementNode, ///
|
|
20
20
|
nonTerminalNodeB = statementNode, ///
|
|
21
21
|
fileContextA = fileContext, ///
|
|
22
|
-
|
|
23
|
-
nonTerminalNodeVerified = conclusionStatementForMetavariableNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, fileContextA,
|
|
22
|
+
localContextB = statementLocalContext, ///
|
|
23
|
+
nonTerminalNodeVerified = conclusionStatementForMetavariableNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, fileContextA, localContextB, () => {
|
|
24
24
|
const verifyAhead = true;
|
|
25
25
|
|
|
26
26
|
return verifyAhead;
|
|
@@ -30,12 +30,12 @@ export default class Conclusion {
|
|
|
30
30
|
return statementNodeMatches;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
matchMetastatementNode(metastatementNode, substitutions, fileContext,
|
|
33
|
+
matchMetastatementNode(metastatementNode, substitutions, fileContext, metastatementMetalocalContext) {
|
|
34
34
|
const nonTerminalNodeA = this.metastatementNode, ///
|
|
35
35
|
nonTerminalNodeB = metastatementNode, ///
|
|
36
36
|
fileContextA = fileContext, ///
|
|
37
|
-
|
|
38
|
-
nonTerminalNodeVerified = conclusionMetastatementForMetavariableNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, fileContextA,
|
|
37
|
+
metalocalContextB = metastatementMetalocalContext, ///
|
|
38
|
+
nonTerminalNodeVerified = conclusionMetastatementForMetavariableNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, fileContextA, metalocalContextB, () => {
|
|
39
39
|
const verifiedAhead = true;
|
|
40
40
|
|
|
41
41
|
return verifiedAhead;
|
package/src/conjecture.js
CHANGED
|
@@ -5,5 +5,5 @@ import AxiomLemmaTheoremConjecture from "./axiomLemmaTheoremConjecture";
|
|
|
5
5
|
export default class Conjecture extends AxiomLemmaTheoremConjecture {
|
|
6
6
|
static fromJSONAndFileContext(json, fileContext) { return AxiomLemmaTheoremConjecture.fromJSONAndFileContext(Conjecture, json, fileContext); }
|
|
7
7
|
|
|
8
|
-
static
|
|
8
|
+
static fromLabelsSuppositionsConsequentAndLocalContext(labels, suppositions, consequent, localContext) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsConsequentAndLocalContext(Conjecture, labels, suppositions, consequent, localContext); }
|
|
9
9
|
}
|
package/src/consequent.js
CHANGED
|
@@ -14,12 +14,12 @@ export default class Consequent {
|
|
|
14
14
|
return this.statementNode;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
matchStatementNode(statementNode, substitutions,
|
|
17
|
+
matchStatementNode(statementNode, substitutions, localContext) {
|
|
18
18
|
const nonTerminalNodeA = this.statementNode, ///
|
|
19
19
|
nonTerminalNodeB = statementNode, ///
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
nonTerminalNodeVerified = consequentTermForVariableNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions,
|
|
20
|
+
localContextA = localContext, ///
|
|
21
|
+
localContextB = null, ///
|
|
22
|
+
nonTerminalNodeVerified = consequentTermForVariableNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
|
|
23
23
|
const verifiedAhead = true;
|
|
24
24
|
|
|
25
25
|
return verifiedAhead;
|
package/src/context/file.js
CHANGED
|
@@ -58,7 +58,9 @@ export default class FileContext {
|
|
|
58
58
|
|
|
59
59
|
getParser() { return this.releaseContext.getParser(); }
|
|
60
60
|
|
|
61
|
-
getEqualities(
|
|
61
|
+
getEqualities() {
|
|
62
|
+
const equalities = []; ///
|
|
63
|
+
|
|
62
64
|
return equalities;
|
|
63
65
|
}
|
|
64
66
|
|
|
@@ -68,6 +70,12 @@ export default class FileContext {
|
|
|
68
70
|
return proofSteps;
|
|
69
71
|
}
|
|
70
72
|
|
|
73
|
+
getCollections() {
|
|
74
|
+
const collections = []; ///
|
|
75
|
+
|
|
76
|
+
return collections;
|
|
77
|
+
}
|
|
78
|
+
|
|
71
79
|
getMetaproofSteps() {
|
|
72
80
|
const metaproofSteps = []; ///
|
|
73
81
|
|