occam-verify-cli 1.0.843 → 1.0.847
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/context/bounded.js +18 -18
- package/lib/context/branching.js +8 -3
- package/lib/context/ephemeral.js +44 -71
- package/lib/context/file/nominal.js +18 -24
- package/lib/context/synoptic.js +135 -128
- package/lib/context.js +49 -31
- package/lib/element/assertion/contained.js +6 -3
- package/lib/element/assertion/defined.js +11 -4
- package/lib/element/assertion/property.js +6 -3
- package/lib/element/assertion/satisfies.js +6 -3
- package/lib/element/assertion/subproof.js +6 -3
- package/lib/element/assertion/type.js +5 -5
- package/lib/element/assumption/metaLevel.js +12 -10
- package/lib/element/assumption.js +2 -2
- package/lib/element/derivation.js +1 -8
- package/lib/element/equality.js +3 -3
- package/lib/element/equivalence.js +1 -8
- package/lib/element/error.js +1 -8
- package/lib/element/hypothesis.js +2 -2
- package/lib/element/judgement.js +15 -11
- package/lib/element/metaType.js +2 -2
- package/lib/element/metavariable.js +30 -35
- package/lib/element/parameter.js +2 -2
- package/lib/element/procedureCall.js +2 -2
- package/lib/element/procedureReference.js +2 -2
- package/lib/element/proof.js +1 -8
- package/lib/element/proofAssertion/premise.js +4 -3
- package/lib/element/proofAssertion/supposition.js +4 -3
- package/lib/element/section.js +1 -8
- package/lib/element/signature.js +2 -2
- package/lib/element/statement.js +2 -2
- package/lib/element/subDerivation.js +1 -8
- package/lib/element/subproof.js +1 -8
- package/lib/element/substitution/frame.js +20 -6
- package/lib/element/substitution/reference.js +20 -6
- package/lib/element/substitution/statement.js +19 -5
- package/lib/element/substitution/term.js +19 -5
- package/lib/element/substitution.js +12 -7
- package/lib/element/typePrefix.js +2 -2
- package/lib/process/unify.js +7 -2
- package/lib/utilities/element.js +3 -5
- package/lib/utilities/json.js +1 -15
- package/lib/utilities/synoptic.js +126 -0
- package/package.json +1 -1
- package/src/context/bounded.js +23 -23
- package/src/context/branching.js +12 -2
- package/src/context/ephemeral.js +94 -110
- package/src/context/file/nominal.js +18 -34
- package/src/context/synoptic.js +195 -150
- package/src/context.js +66 -42
- package/src/element/assertion/contained.js +8 -3
- package/src/element/assertion/defined.js +15 -4
- package/src/element/assertion/property.js +8 -3
- package/src/element/assertion/satisfies.js +10 -4
- package/src/element/assertion/subproof.js +8 -3
- package/src/element/assertion/type.js +10 -8
- package/src/element/assumption/metaLevel.js +13 -8
- package/src/element/assumption.js +2 -2
- package/src/element/derivation.js +0 -11
- package/src/element/equality.js +3 -3
- package/src/element/equivalence.js +0 -11
- package/src/element/error.js +0 -11
- package/src/element/hypothesis.js +2 -2
- package/src/element/judgement.js +22 -14
- package/src/element/metaType.js +2 -2
- package/src/element/metavariable.js +5 -13
- package/src/element/parameter.js +2 -2
- package/src/element/procedureCall.js +2 -2
- package/src/element/procedureReference.js +2 -2
- package/src/element/proof.js +0 -11
- package/src/element/proofAssertion/premise.js +3 -1
- package/src/element/proofAssertion/supposition.js +3 -1
- package/src/element/section.js +0 -11
- package/src/element/signature.js +2 -2
- package/src/element/statement.js +2 -2
- package/src/element/subDerivation.js +0 -11
- package/src/element/subproof.js +0 -11
- package/src/element/substitution/frame.js +31 -11
- package/src/element/substitution/reference.js +31 -11
- package/src/element/substitution/statement.js +33 -13
- package/src/element/substitution/term.js +31 -11
- package/src/element/substitution.js +16 -11
- package/src/element/typePrefix.js +2 -2
- package/src/process/unify.js +11 -4
- package/src/utilities/element.js +3 -6
- package/src/utilities/json.js +0 -12
- package/src/utilities/synoptic.js +105 -0
package/src/context/synoptic.js
CHANGED
|
@@ -4,215 +4,131 @@ import { arrayUtilities } from "necessary";
|
|
|
4
4
|
|
|
5
5
|
import Context from "../context";
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
import { compressTerms,
|
|
8
|
+
compressFrames,
|
|
9
|
+
compressEqualities,
|
|
10
|
+
compressJudgements,
|
|
11
|
+
compressAssertions,
|
|
12
|
+
compressStatements,
|
|
13
|
+
compressReferences,
|
|
14
|
+
compressAssumptions,
|
|
15
|
+
compressMetavariables,
|
|
16
|
+
compressSubstitutions,} from "../utilities/synoptic";
|
|
17
|
+
|
|
18
|
+
const { push } = arrayUtilities;
|
|
8
19
|
|
|
9
20
|
export default class SynopticContext extends Context {
|
|
10
|
-
constructor(context,
|
|
21
|
+
constructor(context, terms, frames, equalities, judgements, assertions, statements, references, assumptions, metavariables, substitutions) {
|
|
11
22
|
super(context);
|
|
12
23
|
|
|
13
|
-
this.
|
|
24
|
+
this.terms = terms;
|
|
25
|
+
this.frames = frames;
|
|
26
|
+
this.equalities = equalities;
|
|
27
|
+
this.judgements = judgements;
|
|
28
|
+
this.assertions = assertions;
|
|
29
|
+
this.statements = statements;
|
|
30
|
+
this.references = references;
|
|
31
|
+
this.assumptions = assumptions;
|
|
32
|
+
this.metavariables = metavariables;
|
|
33
|
+
this.substitutions = substitutions;
|
|
14
34
|
}
|
|
15
35
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
getTerms() {
|
|
21
|
-
const terms = [];
|
|
36
|
+
getTerms(terms = []) {
|
|
37
|
+
push(terms, this.terms);
|
|
22
38
|
|
|
23
|
-
this.
|
|
24
|
-
const contextTerms = context.getTerms();
|
|
39
|
+
this.context.getTerms(terms);
|
|
25
40
|
|
|
26
|
-
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
compress(terms, (termA, termB) => {
|
|
30
|
-
const termAComparesToTermB = termA.compareTerm(termB);
|
|
31
|
-
|
|
32
|
-
if (!termAComparesToTermB) {
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
});
|
|
41
|
+
compressTerms(terms);
|
|
36
42
|
|
|
37
43
|
return terms;
|
|
38
44
|
}
|
|
39
45
|
|
|
40
|
-
getFrames() {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
this.contexts.forEach((context) => {
|
|
44
|
-
const contextFrames = context.getFrames();
|
|
46
|
+
getFrames(frames = []) {
|
|
47
|
+
push(frames, this.frames);
|
|
45
48
|
|
|
46
|
-
|
|
47
|
-
});
|
|
49
|
+
this.context.getFrames(frames);
|
|
48
50
|
|
|
49
|
-
|
|
50
|
-
const frameAEqualToFrameB = frameA.isEqualTo(frameB);
|
|
51
|
-
|
|
52
|
-
if (!frameAEqualToFrameB) {
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
});
|
|
51
|
+
compressFrames(frames);
|
|
56
52
|
|
|
57
53
|
return frames;
|
|
58
54
|
}
|
|
59
55
|
|
|
60
|
-
getEqualities() {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
this.contexts.forEach((context) => {
|
|
64
|
-
const contextEqualities = context.getEqualities();
|
|
56
|
+
getEqualities(equalities = []) {
|
|
57
|
+
push(equalities, this.equalities);
|
|
65
58
|
|
|
66
|
-
|
|
67
|
-
});
|
|
59
|
+
this.context.getEqualities(equalities);
|
|
68
60
|
|
|
69
|
-
|
|
70
|
-
const equalityAEqualToEqualityB = equalityA.isEqualTo(equalityB);
|
|
71
|
-
|
|
72
|
-
if (!equalityAEqualToEqualityB) {
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
});
|
|
61
|
+
compressEqualities(equalities);
|
|
76
62
|
|
|
77
63
|
return equalities;
|
|
78
64
|
}
|
|
79
65
|
|
|
80
|
-
getJudgements() {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
this.contexts.forEach((context) => {
|
|
84
|
-
const contextJudgements = context.getJudgements();
|
|
66
|
+
getJudgements(judgements = []) {
|
|
67
|
+
push(judgements, this.judgements);
|
|
85
68
|
|
|
86
|
-
|
|
87
|
-
});
|
|
69
|
+
this.context.getJudgements(judgements);
|
|
88
70
|
|
|
89
|
-
|
|
90
|
-
const judgementAEqualToJudgementB = judgementA.isEqualTo(judgementB);
|
|
91
|
-
|
|
92
|
-
if (!judgementAEqualToJudgementB) {
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
});
|
|
71
|
+
compressJudgements(judgements);
|
|
96
72
|
|
|
97
73
|
return judgements;
|
|
98
74
|
}
|
|
99
75
|
|
|
100
|
-
getStatements() {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
this.contexts.forEach((context) => {
|
|
104
|
-
const contextStatements = context.getStatements();
|
|
76
|
+
getStatements(statements = []) {
|
|
77
|
+
push(statements, this.statements);
|
|
105
78
|
|
|
106
|
-
|
|
107
|
-
});
|
|
79
|
+
this.context.getStatements(statements);
|
|
108
80
|
|
|
109
|
-
|
|
110
|
-
const statementAEqualToStatementB = statementA.isEqualTo(statementB);
|
|
111
|
-
|
|
112
|
-
if (!statementAEqualToStatementB) {
|
|
113
|
-
return true;
|
|
114
|
-
}
|
|
115
|
-
});
|
|
81
|
+
compressStatements(statements);
|
|
116
82
|
|
|
117
83
|
return statements;
|
|
118
84
|
}
|
|
119
85
|
|
|
120
|
-
getAssertions() {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
this.contexts.forEach((context) => {
|
|
124
|
-
const contextAssertions = context.getAssertions();
|
|
125
|
-
|
|
126
|
-
push(assertions, contextAssertions);
|
|
127
|
-
});
|
|
86
|
+
getAssertions(assertions = []) {
|
|
87
|
+
push(assertions, this.assertions);
|
|
128
88
|
|
|
129
|
-
|
|
130
|
-
const assertionAEqualToAssertionB = assertionA.isEqualTo(assertionB);
|
|
89
|
+
this.context.getAssertions(assertions);
|
|
131
90
|
|
|
132
|
-
|
|
133
|
-
return true;
|
|
134
|
-
}
|
|
135
|
-
});
|
|
91
|
+
compressAssertions(assertions);
|
|
136
92
|
|
|
137
93
|
return assertions;
|
|
138
94
|
}
|
|
139
95
|
|
|
140
|
-
getReferences() {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
this.contexts.forEach((context) => {
|
|
144
|
-
const contextReferences = context.getReferences();
|
|
145
|
-
|
|
146
|
-
push(references, contextReferences);
|
|
147
|
-
});
|
|
96
|
+
getReferences(references = []) {
|
|
97
|
+
push(references, this.references);
|
|
148
98
|
|
|
149
|
-
|
|
150
|
-
const referenceAEqualToReferenceB = referenceA.isEqualTo(referenceB);
|
|
99
|
+
this.context.getReferences(references);
|
|
151
100
|
|
|
152
|
-
|
|
153
|
-
return true;
|
|
154
|
-
}
|
|
155
|
-
});
|
|
101
|
+
compressReferences(references);
|
|
156
102
|
|
|
157
103
|
return references;
|
|
158
104
|
}
|
|
159
105
|
|
|
160
|
-
getAssumptions() {
|
|
161
|
-
|
|
106
|
+
getAssumptions(assumptions = []) {
|
|
107
|
+
push(assumptions, this.assumptions);
|
|
162
108
|
|
|
163
|
-
this.
|
|
164
|
-
const contextAssumptions = context.getAssumptions();
|
|
109
|
+
this.context.getAssumptions(assumptions);
|
|
165
110
|
|
|
166
|
-
|
|
167
|
-
});
|
|
168
|
-
|
|
169
|
-
compress(assumptions, (assumptionA, assumptionB) => {
|
|
170
|
-
const assumptionAEqualToAssumptionB = assumptionA.isEqualTo(assumptionB);
|
|
171
|
-
|
|
172
|
-
if (!assumptionAEqualToAssumptionB) {
|
|
173
|
-
return true;
|
|
174
|
-
}
|
|
175
|
-
});
|
|
111
|
+
compressAssumptions(assumptions);
|
|
176
112
|
|
|
177
113
|
return assumptions;
|
|
178
114
|
}
|
|
179
115
|
|
|
180
|
-
getMetavariables() {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
this.contexts.forEach((context) => {
|
|
184
|
-
const contextMetavariables = context.getMetavariables();
|
|
185
|
-
|
|
186
|
-
push(metavariables, contextMetavariables);
|
|
187
|
-
});
|
|
116
|
+
getMetavariables(metavariables = []) {
|
|
117
|
+
push(metavariables, this.metavariables);
|
|
188
118
|
|
|
189
|
-
|
|
190
|
-
const metavariableAEqualToMetavariableB = metavariableA.isEqualTo(metavariableB);
|
|
119
|
+
this.context.getMetavariables(metavariables);
|
|
191
120
|
|
|
192
|
-
|
|
193
|
-
return true;
|
|
194
|
-
}
|
|
195
|
-
});
|
|
121
|
+
compressMetavariables(metavariables);
|
|
196
122
|
|
|
197
123
|
return metavariables;
|
|
198
124
|
}
|
|
199
125
|
|
|
200
|
-
getSubstitutions() {
|
|
201
|
-
|
|
126
|
+
getSubstitutions(substitutions = []) {
|
|
127
|
+
push(substitutions, this.substitutions);
|
|
202
128
|
|
|
203
|
-
this.
|
|
204
|
-
const contextSubstitutions = context.getSubstitutions();
|
|
129
|
+
this.context.getSubstitutions(substitutions);
|
|
205
130
|
|
|
206
|
-
|
|
207
|
-
});
|
|
208
|
-
|
|
209
|
-
compress(substitutions, (substitutionA, substitutionB) => {
|
|
210
|
-
const substitutionAEqualToSubstitutionB = substitutionA.isEqualTo(substitutionB);
|
|
211
|
-
|
|
212
|
-
if (!substitutionAEqualToSubstitutionB) {
|
|
213
|
-
return true;
|
|
214
|
-
}
|
|
215
|
-
});
|
|
131
|
+
compressSubstitutions(substitutions);
|
|
216
132
|
|
|
217
133
|
return substitutions;
|
|
218
134
|
}
|
|
@@ -361,10 +277,139 @@ export default class SynopticContext extends Context {
|
|
|
361
277
|
}
|
|
362
278
|
|
|
363
279
|
static fromContexts(...contexts) {
|
|
364
|
-
const
|
|
365
|
-
|
|
366
|
-
|
|
280
|
+
const context = contexts.pop(), ///
|
|
281
|
+
terms = termsFromContexts(contexts),
|
|
282
|
+
frames = framesFromContexts(contexts),
|
|
283
|
+
equalities = equalitiesFromContexts(contexts),
|
|
284
|
+
judgements = judgementsFromContexts(contexts),
|
|
285
|
+
assertions = assertionsFromContexts(contexts),
|
|
286
|
+
statements = statementsFromContexts(contexts),
|
|
287
|
+
references = referencesFromContexts(contexts),
|
|
288
|
+
assumptions = assumptionsFromContexts(contexts),
|
|
289
|
+
metavariables = metavariablesFromContexts(contexts),
|
|
290
|
+
substitutions = substitutionsFromContexts(contexts),
|
|
291
|
+
synopticContext = new SynopticContext(context, terms, frames, equalities, judgements, assertions, statements, references, assumptions, metavariables, substitutions);
|
|
367
292
|
|
|
368
293
|
return synopticContext;
|
|
369
294
|
}
|
|
370
295
|
}
|
|
296
|
+
|
|
297
|
+
function termsFromContexts(contexts) {
|
|
298
|
+
const terms = [];
|
|
299
|
+
|
|
300
|
+
contexts.forEach((context) => {
|
|
301
|
+
context.getTerms(terms);
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
compressTerms(terms);
|
|
305
|
+
|
|
306
|
+
return terms;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
function framesFromContexts(contexts) {
|
|
310
|
+
const frames = [];
|
|
311
|
+
|
|
312
|
+
contexts.forEach((context) => {
|
|
313
|
+
context.getFrames(frames);
|
|
314
|
+
});
|
|
315
|
+
|
|
316
|
+
compressFrames(frames);
|
|
317
|
+
|
|
318
|
+
return frames;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
function equalitiesFromContexts(contexts) {
|
|
322
|
+
const equalities = [];
|
|
323
|
+
|
|
324
|
+
contexts.forEach((context) => {
|
|
325
|
+
context.getEqualities(equalities);
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
compressEqualities(equalities);
|
|
329
|
+
|
|
330
|
+
return equalities;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
function judgementsFromContexts(contexts) {
|
|
334
|
+
const judgements = [];
|
|
335
|
+
|
|
336
|
+
contexts.forEach((context) => {
|
|
337
|
+
context.getJudgements(judgements);
|
|
338
|
+
});
|
|
339
|
+
|
|
340
|
+
compressJudgements(judgements);
|
|
341
|
+
|
|
342
|
+
return judgements;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
function assertionsFromContexts(contexts) {
|
|
346
|
+
const assertions = [];
|
|
347
|
+
|
|
348
|
+
contexts.forEach((context) => {
|
|
349
|
+
context.getAssertions(assertions);
|
|
350
|
+
});
|
|
351
|
+
|
|
352
|
+
compressAssertions(assertions);
|
|
353
|
+
|
|
354
|
+
return assertions;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
function statementsFromContexts(contexts) {
|
|
358
|
+
const statements = [];
|
|
359
|
+
|
|
360
|
+
contexts.forEach((context) => {
|
|
361
|
+
context.getStatements(statements);
|
|
362
|
+
});
|
|
363
|
+
|
|
364
|
+
compressStatements(statements);
|
|
365
|
+
|
|
366
|
+
return statements;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
function referencesFromContexts(contexts) {
|
|
370
|
+
const references = [];
|
|
371
|
+
|
|
372
|
+
contexts.forEach((context) => {
|
|
373
|
+
context.getReferences(references);
|
|
374
|
+
});
|
|
375
|
+
|
|
376
|
+
compressReferences(references);
|
|
377
|
+
|
|
378
|
+
return references;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
function assumptionsFromContexts(contexts) {
|
|
382
|
+
const assumptions = [];
|
|
383
|
+
|
|
384
|
+
contexts.forEach((context) => {
|
|
385
|
+
context.getAssumptions(assumptions);
|
|
386
|
+
});
|
|
387
|
+
|
|
388
|
+
compressAssumptions(assumptions);
|
|
389
|
+
|
|
390
|
+
return assumptions;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
function metavariablesFromContexts(contexts) {
|
|
394
|
+
const metavariables = [];
|
|
395
|
+
|
|
396
|
+
contexts.forEach((context) => {
|
|
397
|
+
context.getMetavariables(metavariables);
|
|
398
|
+
});
|
|
399
|
+
|
|
400
|
+
compressMetavariables(metavariables);
|
|
401
|
+
|
|
402
|
+
return metavariables;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
function substitutionsFromContexts(contexts) {
|
|
406
|
+
const substitutions = [];
|
|
407
|
+
|
|
408
|
+
contexts.forEach((context) => {
|
|
409
|
+
context.getSubstitutions(substitutions);
|
|
410
|
+
});
|
|
411
|
+
|
|
412
|
+
compressSubstitutions(substitutions);
|
|
413
|
+
|
|
414
|
+
return substitutions;
|
|
415
|
+
}
|
package/src/context.js
CHANGED
|
@@ -24,72 +24,82 @@ export default class Context extends ContextBase {
|
|
|
24
24
|
return filePath;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
getTerms() {
|
|
28
|
-
const context = this.getContext()
|
|
29
|
-
|
|
27
|
+
getTerms(terms = []) {
|
|
28
|
+
const context = this.getContext();
|
|
29
|
+
|
|
30
|
+
context.getTerms(terms);
|
|
30
31
|
|
|
31
32
|
return terms;
|
|
32
33
|
}
|
|
33
34
|
|
|
34
|
-
getFrames() {
|
|
35
|
-
const context = this.getContext()
|
|
36
|
-
|
|
35
|
+
getFrames(frames = []) {
|
|
36
|
+
const context = this.getContext();
|
|
37
|
+
|
|
38
|
+
context.getFrames(frames);
|
|
37
39
|
|
|
38
40
|
return frames;
|
|
39
41
|
}
|
|
40
42
|
|
|
41
|
-
getJudgements() {
|
|
42
|
-
const context = this.getContext()
|
|
43
|
-
|
|
43
|
+
getJudgements(judgements = []) {
|
|
44
|
+
const context = this.getContext();
|
|
45
|
+
|
|
46
|
+
context.getJudgements(judgements);
|
|
44
47
|
|
|
45
48
|
return judgements;
|
|
46
49
|
}
|
|
47
50
|
|
|
48
|
-
getEqualities() {
|
|
49
|
-
const context = this.getContext()
|
|
50
|
-
|
|
51
|
+
getEqualities(equalities = []) {
|
|
52
|
+
const context = this.getContext();
|
|
53
|
+
|
|
54
|
+
context.getEqualities(equalities);
|
|
51
55
|
|
|
52
56
|
return equalities;
|
|
53
57
|
}
|
|
54
58
|
|
|
55
|
-
getStatements() {
|
|
56
|
-
const context = this.getContext()
|
|
57
|
-
|
|
59
|
+
getStatements(statements = []) {
|
|
60
|
+
const context = this.getContext();
|
|
61
|
+
|
|
62
|
+
context.getStatements(statements);
|
|
58
63
|
|
|
59
64
|
return statements;
|
|
60
65
|
}
|
|
61
66
|
|
|
62
|
-
getAssertions() {
|
|
63
|
-
const context = this.getContext()
|
|
64
|
-
|
|
67
|
+
getAssertions(assertions = []) {
|
|
68
|
+
const context = this.getContext();
|
|
69
|
+
|
|
70
|
+
context.getAssertions(assertions);
|
|
65
71
|
|
|
66
72
|
return assertions;
|
|
67
73
|
}
|
|
68
74
|
|
|
69
|
-
getReferences() {
|
|
70
|
-
const context = this.getContext()
|
|
71
|
-
|
|
75
|
+
getReferences(references = []) {
|
|
76
|
+
const context = this.getContext();
|
|
77
|
+
|
|
78
|
+
context.getReferences(references);
|
|
72
79
|
|
|
73
80
|
return references;
|
|
74
81
|
}
|
|
75
82
|
|
|
76
|
-
getAssumptions() {
|
|
77
|
-
const context = this.getContext()
|
|
78
|
-
|
|
83
|
+
getAssumptions(assumptions = []) {
|
|
84
|
+
const context = this.getContext();
|
|
85
|
+
|
|
86
|
+
context.getAssumptions(assumptions);
|
|
79
87
|
|
|
80
88
|
return assumptions;
|
|
81
89
|
}
|
|
82
90
|
|
|
83
|
-
getMetavariables() {
|
|
84
|
-
const context = this.getContext()
|
|
85
|
-
|
|
91
|
+
getMetavariables(metavariables = []) {
|
|
92
|
+
const context = this.getContext();
|
|
93
|
+
|
|
94
|
+
context.getMetavariables(metavariables);
|
|
86
95
|
|
|
87
96
|
return metavariables;
|
|
88
97
|
}
|
|
89
98
|
|
|
90
|
-
getSubstitutions() {
|
|
91
|
-
const context = this.getContext()
|
|
92
|
-
|
|
99
|
+
getSubstitutions(substitutions = []) {
|
|
100
|
+
const context = this.getContext();
|
|
101
|
+
|
|
102
|
+
context.getSubstitutions(substitutions);
|
|
93
103
|
|
|
94
104
|
return substitutions;
|
|
95
105
|
}
|
|
@@ -115,20 +125,27 @@ export default class Context extends ContextBase {
|
|
|
115
125
|
return constructors;
|
|
116
126
|
}
|
|
117
127
|
|
|
118
|
-
getDeclaredVariables(
|
|
128
|
+
getDeclaredVariables() {
|
|
119
129
|
const context = this.getContext(),
|
|
120
|
-
declaredVariables = context.getDeclaredVariables(
|
|
130
|
+
declaredVariables = context.getDeclaredVariables();
|
|
121
131
|
|
|
122
132
|
return declaredVariables;
|
|
123
133
|
}
|
|
124
134
|
|
|
125
|
-
getDeclaredMetavariables(
|
|
135
|
+
getDeclaredMetavariables() {
|
|
126
136
|
const context = this.getContext(),
|
|
127
|
-
declaredMetavariables = context.getDeclaredMetavariables(
|
|
137
|
+
declaredMetavariables = context.getDeclaredMetavariables();
|
|
128
138
|
|
|
129
139
|
return declaredMetavariables;
|
|
130
140
|
}
|
|
131
141
|
|
|
142
|
+
getDeclaredJudgements() {
|
|
143
|
+
const context = this.getContext(),
|
|
144
|
+
declaredJudgements = context.getDeclaredJudgements();
|
|
145
|
+
|
|
146
|
+
return declaredJudgements;
|
|
147
|
+
}
|
|
148
|
+
|
|
132
149
|
getSubproofOrProofAssertions() {
|
|
133
150
|
const context = this.getContext(),
|
|
134
151
|
subproofOrProofAssertions = context.getSubproofOrProofAssertions();
|
|
@@ -260,6 +277,13 @@ export default class Context extends ContextBase {
|
|
|
260
277
|
return substitution;
|
|
261
278
|
}
|
|
262
279
|
|
|
280
|
+
findDeclaredJudgementsByMetavariableNode(metavariableNode) {
|
|
281
|
+
const context = this.getContext(),
|
|
282
|
+
declaredJudgements = context.findDeclaredJudgementsByMetavariableNode(metavariableNode);
|
|
283
|
+
|
|
284
|
+
return declaredJudgements;
|
|
285
|
+
}
|
|
286
|
+
|
|
263
287
|
findMetaLevelAssumptionByMetaLevelAssumptionNode(metaLevelAssumptionNode) {
|
|
264
288
|
const context = this.getContext(),
|
|
265
289
|
metaLevelAssumption = context.findMetaLevelAssumptionByMetaLevelAssumptionNode(metaLevelAssumptionNode);
|
|
@@ -303,9 +327,9 @@ export default class Context extends ContextBase {
|
|
|
303
327
|
return substitution;
|
|
304
328
|
}
|
|
305
329
|
|
|
306
|
-
findTypeByTypeName(
|
|
330
|
+
findTypeByTypeName(typeName) {
|
|
307
331
|
const context = this.getContext(),
|
|
308
|
-
type = context.findTypeByTypeName(
|
|
332
|
+
type = context.findTypeByTypeName(typeName);
|
|
309
333
|
|
|
310
334
|
return type;
|
|
311
335
|
}
|
|
@@ -461,18 +485,18 @@ export default class Context extends ContextBase {
|
|
|
461
485
|
return referencePresent;
|
|
462
486
|
}
|
|
463
487
|
|
|
464
|
-
|
|
488
|
+
isSubstitutionPresentByMetavariableNode(metavariableNode) {
|
|
465
489
|
const context = this.getContext(),
|
|
466
|
-
|
|
490
|
+
substitutionPresent = context.isSubstitutionPresentByMetavariableNode(metavariableNode);
|
|
467
491
|
|
|
468
|
-
return
|
|
492
|
+
return substitutionPresent;
|
|
469
493
|
}
|
|
470
494
|
|
|
471
|
-
|
|
495
|
+
isDeclaredJudgementPresentByMetavariableNode(metavariableNode) {
|
|
472
496
|
const context = this.getContext(),
|
|
473
|
-
|
|
497
|
+
declaredJudgementPresent = context.isDeclaredJudgementPresentByMetavariableNode(metavariableNode);
|
|
474
498
|
|
|
475
|
-
return
|
|
499
|
+
return declaredJudgementPresent;
|
|
476
500
|
}
|
|
477
501
|
|
|
478
502
|
isSubstitutionPresentByMetavariableNodeAndSubstitution(metavariableNode, substitution) {
|
|
@@ -243,14 +243,19 @@ export default define(class ContainedAssertion extends Assertion {
|
|
|
243
243
|
return unifiesIndependently;
|
|
244
244
|
}
|
|
245
245
|
|
|
246
|
+
static name = "ContainedAssertion";
|
|
247
|
+
|
|
246
248
|
toJSON() {
|
|
247
|
-
const
|
|
249
|
+
const string = this.getString(),
|
|
250
|
+
lineIndex = this.getLineIndex(),
|
|
251
|
+
json = {
|
|
252
|
+
string,
|
|
253
|
+
lineIndex
|
|
254
|
+
};
|
|
248
255
|
|
|
249
256
|
return json;
|
|
250
257
|
}
|
|
251
258
|
|
|
252
|
-
static name = "ContainedAssertion";
|
|
253
|
-
|
|
254
259
|
static fromJSON(json, context) {
|
|
255
260
|
let containedAssertion = null;
|
|
256
261
|
|
|
@@ -213,6 +213,17 @@ export default define(class DefinedAssertion extends Assertion {
|
|
|
213
213
|
|
|
214
214
|
static name = "DefinedAssertion";
|
|
215
215
|
|
|
216
|
+
toJSON() {
|
|
217
|
+
const string = this.getString(),
|
|
218
|
+
lineIndex = this.getLineIndex(),
|
|
219
|
+
json = {
|
|
220
|
+
string,
|
|
221
|
+
lineIndex
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
return json;
|
|
225
|
+
}
|
|
226
|
+
|
|
216
227
|
static fromJSON(json, context) {
|
|
217
228
|
let definedAssertion = null;
|
|
218
229
|
|
|
@@ -220,7 +231,7 @@ export default define(class DefinedAssertion extends Assertion {
|
|
|
220
231
|
|
|
221
232
|
if (this.name === name) {
|
|
222
233
|
instantiate((context) => {
|
|
223
|
-
const { string } = json,
|
|
234
|
+
const { string, lineIndex } = json,
|
|
224
235
|
definedAssertionNode = instantiateDefinedAssertion(string, context),
|
|
225
236
|
node = definedAssertionNode, ///
|
|
226
237
|
term = termFromJDefinedAssertionNode(definedAssertionNode, context),
|
|
@@ -229,7 +240,7 @@ export default define(class DefinedAssertion extends Assertion {
|
|
|
229
240
|
|
|
230
241
|
context = null;
|
|
231
242
|
|
|
232
|
-
definedAssertion = new DefinedAssertion(context, string, node, term, frame, negated);
|
|
243
|
+
definedAssertion = new DefinedAssertion(context, string, node, lineIndex, term, frame, negated);
|
|
233
244
|
}, context);
|
|
234
245
|
}
|
|
235
246
|
|
|
@@ -301,8 +312,8 @@ function isVariableDefined(variable, context) {
|
|
|
301
312
|
|
|
302
313
|
function isMetavariableDefined(metavariable, context) {
|
|
303
314
|
const metavariableNode = metavariable.getNode(),
|
|
304
|
-
|
|
305
|
-
metavariableDefined =
|
|
315
|
+
declaredJudgementPresent = context.isDeclaredJudgementPresentByMetavariableNode(metavariableNode),
|
|
316
|
+
metavariableDefined = declaredJudgementPresent; ///
|
|
306
317
|
|
|
307
318
|
return metavariableDefined
|
|
308
319
|
}
|