occam-verify-cli 0.0.539 → 0.0.540
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/bin/action/verify.js +5 -1
- package/lib/axiom.js +4 -4
- package/lib/axiomLemmaTheoremConjecture.js +6 -6
- package/lib/combinator.js +4 -4
- package/lib/conclusion.js +4 -4
- package/lib/conjecture.js +4 -4
- package/lib/constructor.js +6 -6
- package/lib/context/file.js +135 -27
- package/lib/context/metaproof.js +3 -3
- package/lib/context/release.js +215 -2
- package/lib/kinds.js +9 -1
- package/lib/label.js +4 -4
- package/lib/lemma.js +4 -4
- package/lib/metavariable.js +7 -1
- package/lib/premise.js +4 -4
- package/lib/rule.js +7 -7
- package/lib/ruleNames.js +16 -4
- package/lib/supposition.js +4 -4
- package/lib/theorem.js +4 -4
- package/lib/type.js +7 -7
- package/lib/utilities/node.js +17 -3
- package/lib/variable.js +7 -1
- package/lib/verifier.js +1 -1
- package/lib/verify/metastatement.js +147 -3
- package/lib/verify/statement.js +2 -2
- package/package.json +3 -3
- package/src/axiom.js +1 -1
- package/src/axiomLemmaTheoremConjecture.js +4 -4
- package/src/combinator.js +3 -3
- package/src/conclusion.js +3 -3
- package/src/conjecture.js +1 -1
- package/src/constructor.js +5 -5
- package/src/context/file.js +161 -27
- package/src/context/metaproof.js +1 -1
- package/src/context/release.js +254 -2
- package/src/kinds.js +2 -0
- package/src/label.js +3 -3
- package/src/lemma.js +1 -1
- package/src/metavariable.js +4 -0
- package/src/premise.js +3 -3
- package/src/rule.js +5 -5
- package/src/ruleNames.js +4 -1
- package/src/supposition.js +3 -3
- package/src/theorem.js +1 -1
- package/src/type.js +5 -5
- package/src/utilities/node.js +32 -2
- package/src/variable.js +4 -0
- package/src/verifier.js +1 -1
- package/src/verify/metastatement.js +65 -2
- package/src/verify/statement.js +2 -2
- package/lib/context/release/directory.js +0 -313
- package/lib/context/release/file.js +0 -387
- package/src/context/release/directory.js +0 -251
- package/src/context/release/file.js +0 -312
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import ReleaseContext from "../../context/release";
|
|
4
|
-
|
|
5
|
-
import Rule from "../../rule";
|
|
6
|
-
import Type from "../../type";
|
|
7
|
-
import Axiom from "../../axiom";
|
|
8
|
-
import Lemma from "../../lemma";
|
|
9
|
-
import Theorem from "../../theorem";
|
|
10
|
-
import Conjecture from "../../conjecture";
|
|
11
|
-
import Combinator from "../../combinator";
|
|
12
|
-
import Constructor from "../../constructor";
|
|
13
|
-
|
|
14
|
-
import { push } from "../../utilities/array";
|
|
15
|
-
import { customGrammarFromNameAndEntries } from "../../utilities/customGrammar";
|
|
16
|
-
import { RULE_KIND, TYPE_KIND, AXIOM_KIND, LEMMA_KIND, THEOREM_KIND, CONJECTURE_KIND, COMBINATOR_KIND, CONSTRUCTOR_KIND } from "../../kinds";
|
|
17
|
-
|
|
18
|
-
export default class FileReleaseContext extends ReleaseContext {
|
|
19
|
-
constructor(log, name, entries, lexer, parser, verified, customGrammar, dependencyReleaseContexts, types, rules, axioms, lemmas, theorems, conjectures, combinators, constructors, contextJSON) {
|
|
20
|
-
super(log, name, entries, lexer, parser, verified, customGrammar, dependencyReleaseContexts);
|
|
21
|
-
|
|
22
|
-
this.types = types;
|
|
23
|
-
this.rules = rules;
|
|
24
|
-
this.axioms = axioms;
|
|
25
|
-
this.lemmas = lemmas;
|
|
26
|
-
this.theorems = theorems;
|
|
27
|
-
this.conjectures = conjectures;
|
|
28
|
-
this.combinators = combinators;
|
|
29
|
-
this.constructors = constructors;
|
|
30
|
-
this.contextJSON = contextJSON;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
getContextJSON() {
|
|
34
|
-
return this.contextJSON;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
getLabels(includeDependencies = true) {
|
|
38
|
-
const labels = [];
|
|
39
|
-
|
|
40
|
-
this.rules.forEach((rule) => {
|
|
41
|
-
const ruleLabels = rule.getLabels();
|
|
42
|
-
|
|
43
|
-
push(labels, ruleLabels);
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
this.axioms.forEach((axiom) => {
|
|
47
|
-
const axiomLabels = axiom.getLabels();
|
|
48
|
-
|
|
49
|
-
push(labels, axiomLabels);
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
this.theorems.forEach((theorem) => {
|
|
53
|
-
const theoremLabels = theorem.getLabels();
|
|
54
|
-
|
|
55
|
-
push(labels, theoremLabels);
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
if (includeDependencies) {
|
|
59
|
-
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
60
|
-
|
|
61
|
-
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
62
|
-
const includeDependencies = false,
|
|
63
|
-
releaseContextAxioms = releaseContext.getAxioms(includeDependencies);
|
|
64
|
-
|
|
65
|
-
push(labels, releaseContextAxioms);
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return labels;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
getTypes(includeDependencies = true) {
|
|
73
|
-
const types = [];
|
|
74
|
-
|
|
75
|
-
push(types, this.types);
|
|
76
|
-
|
|
77
|
-
if (includeDependencies) {
|
|
78
|
-
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
79
|
-
|
|
80
|
-
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
81
|
-
const includeDependencies = false,
|
|
82
|
-
releaseContextTypes = releaseContext.getTypes(includeDependencies);
|
|
83
|
-
|
|
84
|
-
push(types, releaseContextTypes);
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
return types;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
getRules(includeDependencies = true) {
|
|
92
|
-
const rules = [];
|
|
93
|
-
|
|
94
|
-
push(rules, this.rules);
|
|
95
|
-
|
|
96
|
-
if (includeDependencies) {
|
|
97
|
-
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
98
|
-
|
|
99
|
-
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
100
|
-
const includeDependencies = false,
|
|
101
|
-
releaseContextRules = releaseContext.getRules(includeDependencies);
|
|
102
|
-
|
|
103
|
-
push(rules, releaseContextRules);
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
return rules;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
getAxioms(includeDependencies = true) {
|
|
111
|
-
const axioms = [];
|
|
112
|
-
|
|
113
|
-
push(axioms, this.axioms);
|
|
114
|
-
|
|
115
|
-
if (includeDependencies) {
|
|
116
|
-
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
117
|
-
|
|
118
|
-
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
119
|
-
const includeDependencies = false,
|
|
120
|
-
releaseContextAxioms = releaseContext.getAxioms(includeDependencies);
|
|
121
|
-
|
|
122
|
-
push(axioms, releaseContextAxioms);
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return axioms;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
getLemmas() {
|
|
130
|
-
const theorems = [];
|
|
131
|
-
|
|
132
|
-
push(theorems, this.theorems);
|
|
133
|
-
|
|
134
|
-
return theorems;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
getTheorems(includeDependencies = true) {
|
|
138
|
-
const theorems = [];
|
|
139
|
-
|
|
140
|
-
push(theorems, this.theorems);
|
|
141
|
-
|
|
142
|
-
if (includeDependencies) {
|
|
143
|
-
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
144
|
-
|
|
145
|
-
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
146
|
-
const includeDependencies = false,
|
|
147
|
-
releaseContextTheorems = releaseContext.getTheorems(includeDependencies);
|
|
148
|
-
|
|
149
|
-
push(theorems, releaseContextTheorems);
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
return theorems;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
getConjectures(includeDependencies = true) {
|
|
157
|
-
const conjectures = [];
|
|
158
|
-
|
|
159
|
-
push(conjectures, this.conjectures);
|
|
160
|
-
|
|
161
|
-
if (includeDependencies) {
|
|
162
|
-
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
163
|
-
|
|
164
|
-
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
165
|
-
const includeDependencies = false,
|
|
166
|
-
releaseContextConjectures = releaseContext.getConjectures(includeDependencies);
|
|
167
|
-
|
|
168
|
-
push(conjectures, releaseContextConjectures);
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
return conjectures;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
getCombinators(includeDependencies = true) {
|
|
176
|
-
const combinators = [];
|
|
177
|
-
|
|
178
|
-
push(combinators, this.combinators);
|
|
179
|
-
|
|
180
|
-
if (includeDependencies) {
|
|
181
|
-
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
182
|
-
|
|
183
|
-
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
184
|
-
const includeDependencies = false,
|
|
185
|
-
releaseContextCombinators = releaseContext.getCombinators(includeDependencies);
|
|
186
|
-
|
|
187
|
-
push(combinators, releaseContextCombinators);
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
return combinators;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
getConstructors(includeDependencies = true) {
|
|
195
|
-
const constructors = [];
|
|
196
|
-
|
|
197
|
-
push(constructors, this.constructors);
|
|
198
|
-
|
|
199
|
-
if (includeDependencies) {
|
|
200
|
-
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
201
|
-
|
|
202
|
-
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
203
|
-
const includeDependencies = false,
|
|
204
|
-
releaseContextConstructors = releaseContext.getConstructors(includeDependencies);
|
|
205
|
-
|
|
206
|
-
push(constructors, releaseContextConstructors);
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
return constructors;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
fromJSON() {
|
|
214
|
-
const context = this, ///
|
|
215
|
-
jsonArray = this.contextJSON;
|
|
216
|
-
|
|
217
|
-
jsonArray.forEach((json) => {
|
|
218
|
-
const { kind } = json;
|
|
219
|
-
|
|
220
|
-
switch (kind) {
|
|
221
|
-
case TYPE_KIND: {
|
|
222
|
-
const type = Type.fromJSON(json, context);
|
|
223
|
-
|
|
224
|
-
this.types.push(type);
|
|
225
|
-
|
|
226
|
-
break;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
case RULE_KIND: {
|
|
230
|
-
const rule = Rule.fromJSON(json, context);
|
|
231
|
-
|
|
232
|
-
this.rules.push(rule);
|
|
233
|
-
|
|
234
|
-
break;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
case AXIOM_KIND: {
|
|
238
|
-
const axiom = Axiom.fromJSON(json, context);
|
|
239
|
-
|
|
240
|
-
this.axioms.push(axiom);
|
|
241
|
-
|
|
242
|
-
break;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
case LEMMA_KIND: {
|
|
246
|
-
const lemma = Lemma.fromJSON(json, context);
|
|
247
|
-
|
|
248
|
-
this.lemmas.push(lemma);
|
|
249
|
-
|
|
250
|
-
break;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
case THEOREM_KIND: {
|
|
254
|
-
const theorem = Theorem.fromJSON(json, context);
|
|
255
|
-
|
|
256
|
-
this.theorems.push(theorem);
|
|
257
|
-
|
|
258
|
-
break;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
case CONJECTURE_KIND: {
|
|
262
|
-
const conjecture = Conjecture.fromJSON(json, context);
|
|
263
|
-
|
|
264
|
-
this.conjectures.push(conjecture);
|
|
265
|
-
|
|
266
|
-
break;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
case COMBINATOR_KIND: {
|
|
270
|
-
const combinator = Combinator.fromJSON(json, context);
|
|
271
|
-
|
|
272
|
-
this.combinators.push(combinator);
|
|
273
|
-
|
|
274
|
-
break;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
case CONSTRUCTOR_KIND: {
|
|
278
|
-
const constructor = Constructor.fromJSON(json, context);
|
|
279
|
-
|
|
280
|
-
this.constructors.push(constructor);
|
|
281
|
-
|
|
282
|
-
break;
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
});
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
initialise(dependencyReleaseContexts) {
|
|
289
|
-
super.initialise(dependencyReleaseContexts);
|
|
290
|
-
|
|
291
|
-
this.fromJSON();
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
static fromLogNameEntriesAndContextJSON(log, name, entries, contextJSON) {
|
|
295
|
-
const lexer = null,
|
|
296
|
-
parser = null,
|
|
297
|
-
verified = true,
|
|
298
|
-
customGrammar = customGrammarFromNameAndEntries(name, entries),
|
|
299
|
-
dependencyReleaseContexts = null,
|
|
300
|
-
types = [],
|
|
301
|
-
rules = [],
|
|
302
|
-
axioms = [],
|
|
303
|
-
lemmas = [],
|
|
304
|
-
theorems = [],
|
|
305
|
-
conjectures = [],
|
|
306
|
-
combinators = [],
|
|
307
|
-
constructors = [],
|
|
308
|
-
releaseContext = new FileReleaseContext(log, name, entries, lexer, parser, verified, customGrammar, dependencyReleaseContexts, types, rules, axioms, lemmas, theorems, conjectures, combinators, constructors, contextJSON);
|
|
309
|
-
|
|
310
|
-
return releaseContext;
|
|
311
|
-
}
|
|
312
|
-
}
|