occam-verify-cli 1.0.428 → 1.0.436
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/file.js +1 -1
- package/lib/element/assertion.js +115 -24
- package/lib/element/assumption.js +120 -20
- package/lib/element/axiomLemmaTheoremConjecture.js +118 -30
- package/lib/element/conclusion.js +113 -25
- package/lib/element/declaration.js +112 -37
- package/lib/element/deduction.js +112 -66
- package/lib/element/derivation.js +114 -5
- package/lib/element/equality.js +119 -26
- package/lib/element/equivalence.js +121 -28
- package/lib/element/equivalences.js +122 -7
- package/lib/element/error.js +115 -32
- package/lib/element/frame.js +119 -59
- package/lib/element/hypothesis.js +115 -27
- package/lib/element/judgement.js +120 -33
- package/lib/element/label.js +116 -63
- package/lib/element/lemma.js +1 -9
- package/lib/element/metaLemma.js +1 -8
- package/lib/element/metaLemmaMetatheorem.js +117 -29
- package/lib/element/metaType.js +68 -61
- package/lib/element/metatheorem.js +1 -8
- package/lib/element/metavariable.js +122 -93
- package/lib/element/parameter.js +120 -20
- package/lib/element/premise.js +114 -35
- package/lib/element/procedureCall.js +117 -99
- package/lib/element/procedureReference.js +120 -20
- package/lib/element/proof.js +111 -55
- package/lib/element/property.js +121 -35
- package/lib/element/propertyRelation.js +116 -72
- package/lib/element/reference.js +120 -70
- package/lib/element/rule.js +116 -41
- package/lib/element/section.js +114 -133
- package/lib/element/signature.js +120 -20
- package/lib/element/statement/combinator/bracketed.js +4 -9
- package/lib/element/statement.js +110 -125
- package/lib/element/step.js +115 -27
- package/lib/element/subDerivation.js +111 -43
- package/lib/element/subproof.js +115 -20
- package/lib/element/substitution.js +115 -31
- package/lib/element/substitutions.js +120 -6
- package/lib/element/supposition.js +114 -35
- package/lib/element/term/constructor/bracketed.js +4 -8
- package/lib/element/term.js +111 -98
- package/lib/element/theorem.js +1 -8
- package/lib/element/type.js +71 -91
- package/lib/element/typePrefix.js +120 -20
- package/lib/element/variable.js +116 -111
- package/lib/element.js +67 -0
- package/lib/node/{nonsense.js → equivalences.js} +10 -10
- package/lib/node/frame.js +11 -5
- package/lib/node/procedureReference.js +6 -6
- package/lib/node/statement.js +11 -5
- package/lib/node/term.js +8 -1
- package/lib/nonTerminalNodeMap.js +3 -3
- package/lib/process/instantiate.js +8 -39
- package/lib/process/verify.js +22 -29
- package/lib/ruleNames.js +5 -5
- package/lib/utilities/brackets.js +11 -11
- package/lib/utilities/element.js +588 -94
- package/lib/utilities/instance.js +61 -0
- package/lib/utilities/string.js +73 -1
- package/package.json +1 -1
- package/src/context/file.js +1 -1
- package/src/element/assertion.js +4 -16
- package/src/element/assumption.js +5 -12
- package/src/element/axiomLemmaTheoremConjecture.js +4 -16
- package/src/element/conclusion.js +4 -16
- package/src/element/declaration.js +4 -16
- package/src/element/deduction.js +5 -19
- package/src/element/derivation.js +5 -2
- package/src/element/equality.js +4 -16
- package/src/element/equivalence.js +4 -16
- package/src/element/equivalences.js +12 -5
- package/src/element/error.js +4 -24
- package/src/element/frame.js +5 -56
- package/src/element/hypothesis.js +6 -23
- package/src/element/judgement.js +5 -30
- package/src/element/label.js +8 -19
- package/src/element/lemma.js +0 -7
- package/src/element/metaLemma.js +0 -7
- package/src/element/metaLemmaMetatheorem.js +4 -16
- package/src/element/metaType.js +23 -64
- package/src/element/metatheorem.js +0 -7
- package/src/element/metavariable.js +6 -94
- package/src/element/parameter.js +10 -18
- package/src/element/premise.js +4 -31
- package/src/element/procedureCall.js +5 -77
- package/src/element/procedureReference.js +7 -17
- package/src/element/proof.js +5 -17
- package/src/element/property.js +8 -30
- package/src/element/propertyRelation.js +5 -33
- package/src/element/reference.js +8 -72
- package/src/element/rule.js +4 -41
- package/src/element/section.js +4 -129
- package/src/element/signature.js +7 -13
- package/src/element/statement/combinator/bracketed.js +3 -9
- package/src/element/statement.js +3 -126
- package/src/element/step.js +4 -16
- package/src/element/subDerivation.js +5 -3
- package/src/element/subproof.js +5 -12
- package/src/element/substitution.js +4 -24
- package/src/element/substitutions.js +6 -2
- package/src/element/supposition.js +4 -31
- package/src/element/term/constructor/bracketed.js +4 -9
- package/src/element/term.js +6 -59
- package/src/element/theorem.js +0 -7
- package/src/element/type.js +9 -104
- package/src/element/typePrefix.js +8 -13
- package/src/element/variable.js +6 -109
- package/src/element.js +29 -0
- package/src/node/{nonsense.js → equivalences.js} +2 -2
- package/src/node/frame.js +10 -5
- package/src/node/procedureReference.js +4 -4
- package/src/node/statement.js +10 -5
- package/src/node/term.js +7 -0
- package/src/nonTerminalNodeMap.js +3 -3
- package/src/process/instantiate.js +4 -36
- package/src/process/verify.js +42 -47
- package/src/ruleNames.js +1 -1
- package/src/utilities/brackets.js +13 -13
- package/src/utilities/element.js +731 -129
- package/src/utilities/instance.js +53 -0
- package/src/utilities/string.js +97 -0
package/src/element/frame.js
CHANGED
|
@@ -2,28 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
+
import Element from "../element";
|
|
5
6
|
import elements from "../elements";
|
|
6
7
|
|
|
7
8
|
import { define } from "../elements";
|
|
8
9
|
import { S, NOTHING } from "../constants";
|
|
9
|
-
import { frameFromFrameNode } from "../utilities/element";
|
|
10
10
|
import { FRAME_META_TYPE_NAME } from "../metaTypeNames";
|
|
11
11
|
|
|
12
12
|
const { first } = arrayUtilities;
|
|
13
13
|
|
|
14
|
-
export default define(class Frame {
|
|
15
|
-
constructor(string, node, assumptions) {
|
|
16
|
-
|
|
17
|
-
this.node = node;
|
|
18
|
-
this.assumptions = assumptions;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
getString() {
|
|
22
|
-
return this.string;
|
|
23
|
-
}
|
|
14
|
+
export default define(class Frame extends Element {
|
|
15
|
+
constructor(context, string, node, assumptions) {
|
|
16
|
+
super(context, string, node);
|
|
24
17
|
|
|
25
|
-
|
|
26
|
-
return this.node;
|
|
18
|
+
this.assumptions = assumptions;
|
|
27
19
|
}
|
|
28
20
|
|
|
29
21
|
getAssumptions() {
|
|
@@ -74,14 +66,6 @@ export default define(class Frame {
|
|
|
74
66
|
|
|
75
67
|
isSingular() { return this.node.isSingular(); }
|
|
76
68
|
|
|
77
|
-
isEqualTo(frame) {
|
|
78
|
-
const frameNode = frame.getNode(),
|
|
79
|
-
matches = this.node.match(frameNode),
|
|
80
|
-
equalTo = matches; ///
|
|
81
|
-
|
|
82
|
-
return equalTo;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
69
|
isMetavariableEqualToMetavariable(metavariable, context) {
|
|
86
70
|
let metavariableEqualToMetavariable;
|
|
87
71
|
|
|
@@ -314,39 +298,4 @@ export default define(class Frame {
|
|
|
314
298
|
|
|
315
299
|
return frame;
|
|
316
300
|
}
|
|
317
|
-
|
|
318
|
-
static fromFrameNode(frameNode, context) { return frameFromFrameNode(frameNode, context); }
|
|
319
|
-
|
|
320
|
-
static fromJudgementNode(judgementNode, context) {
|
|
321
|
-
const frameNode = judgementNode.getFrameNode(),
|
|
322
|
-
frame = frameFromFrameNode(frameNode, context);
|
|
323
|
-
|
|
324
|
-
return frame;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
static fromDefinedAssertionNode(definedAssertionNode, context) {
|
|
328
|
-
let frame = null;
|
|
329
|
-
|
|
330
|
-
const frameNode = definedAssertionNode.getFrameNode();
|
|
331
|
-
|
|
332
|
-
if (frameNode !== null) {
|
|
333
|
-
frame = frameFromFrameNode(frameNode, context);
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
return frame;
|
|
337
|
-
}
|
|
338
301
|
});
|
|
339
|
-
|
|
340
|
-
function assumptionsStringFromAssumptions(assumptions) {
|
|
341
|
-
const assumptionsString = assumptions.reduce((assumptionsString, assumption) => {
|
|
342
|
-
const assumptionString = assumption.getString();
|
|
343
|
-
|
|
344
|
-
assumptionsString = (assumptionsString === null) ?
|
|
345
|
-
assumptionString :
|
|
346
|
-
`${assumptionsString}, ${assumptionString}`;
|
|
347
|
-
|
|
348
|
-
return assumptionsString;
|
|
349
|
-
}, null);
|
|
350
|
-
|
|
351
|
-
return assumptionsString;
|
|
352
|
-
}
|
|
@@ -1,24 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../element";
|
|
3
4
|
import elements from "../elements";
|
|
4
5
|
import assignAssignments from "../process/assign";
|
|
5
6
|
|
|
6
7
|
import { define } from "../elements";
|
|
7
8
|
import { statementFromJSON, statementToStatementJSON } from "../utilities/json";
|
|
8
9
|
|
|
9
|
-
export default define(class Hypothesis {
|
|
10
|
-
constructor(string, node, statement) {
|
|
11
|
-
|
|
12
|
-
this.node = node;
|
|
13
|
-
this.statement = statement;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
getString() {
|
|
17
|
-
return this.string;
|
|
18
|
-
}
|
|
10
|
+
export default define(class Hypothesis extends Element {
|
|
11
|
+
constructor(context, string, node, statement) {
|
|
12
|
+
super(context, string, node);
|
|
19
13
|
|
|
20
|
-
|
|
21
|
-
return this.node;
|
|
14
|
+
this.statement = statement;
|
|
22
15
|
}
|
|
23
16
|
|
|
24
17
|
getStatement() {
|
|
@@ -107,18 +100,8 @@ export default define(class Hypothesis {
|
|
|
107
100
|
}
|
|
108
101
|
|
|
109
102
|
const node = null,
|
|
110
|
-
hypothesis = new Hypothesis(string, node, statement);
|
|
103
|
+
hypothesis = new Hypothesis(context, string, node, statement);
|
|
111
104
|
|
|
112
105
|
return hypothesis;
|
|
113
106
|
}
|
|
114
|
-
|
|
115
|
-
static fromHypothesisNode(hypothesisNode, context) {
|
|
116
|
-
const { Statement } = elements,
|
|
117
|
-
node = hypothesisNode, ///
|
|
118
|
-
string = context.nodeAsString(node),
|
|
119
|
-
statement = Statement.fromHypothesisNode(hypothesisNode, context),
|
|
120
|
-
hypothesis = new Hypothesis(string, node, statement);
|
|
121
|
-
|
|
122
|
-
return hypothesis
|
|
123
|
-
}
|
|
124
107
|
});
|
package/src/element/judgement.js
CHANGED
|
@@ -1,26 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../element";
|
|
3
4
|
import elements from "../elements";
|
|
4
5
|
|
|
5
6
|
import { define } from "../elements";
|
|
6
7
|
import { judgementAssignmentFromJudgement } from "../process/assign";
|
|
7
8
|
|
|
8
|
-
export default define(class Judgement {
|
|
9
|
-
constructor(string, node, frame, assumption) {
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
export default define(class Judgement extends Element {
|
|
10
|
+
constructor(context, string, node, frame, assumption) {
|
|
11
|
+
super(context, string, node);
|
|
12
|
+
|
|
12
13
|
this.frame = frame;
|
|
13
14
|
this.assumption = assumption;
|
|
14
15
|
}
|
|
15
16
|
|
|
16
|
-
getString() {
|
|
17
|
-
return this.string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
getNode() {
|
|
21
|
-
return this.node;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
17
|
getFrame() {
|
|
25
18
|
return this.frame;
|
|
26
19
|
}
|
|
@@ -149,24 +142,6 @@ export default define(class Judgement {
|
|
|
149
142
|
}
|
|
150
143
|
|
|
151
144
|
static name = "Judgement";
|
|
152
|
-
|
|
153
|
-
static fromStatementNode(statementNode, context) {
|
|
154
|
-
let judgement = null;
|
|
155
|
-
|
|
156
|
-
const judgementNode = statementNode.getJudgementNode();
|
|
157
|
-
|
|
158
|
-
if (judgementNode !== null) {
|
|
159
|
-
const { Frame, Assumption } = elements,
|
|
160
|
-
node = judgementNode, ///
|
|
161
|
-
string = context.nodeAsString(node),
|
|
162
|
-
frame = Frame.fromJudgementNode(judgementNode, context),
|
|
163
|
-
assumption = Assumption.fromJudgementNode(judgementNode, context);
|
|
164
|
-
|
|
165
|
-
judgement = new Judgement(string, node, frame, assumption);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
return judgement;
|
|
169
|
-
}
|
|
170
145
|
});
|
|
171
146
|
|
|
172
147
|
function referenceFromMetavariable(metavariable, context) {
|
package/src/element/label.js
CHANGED
|
@@ -1,26 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import Element from "../element";
|
|
4
4
|
|
|
5
5
|
import { define } from "../elements";
|
|
6
6
|
import { metavariableFromJSON, metavariableToMetavariableJSON } from "../utilities/json";
|
|
7
7
|
|
|
8
|
-
export default define(class Label {
|
|
9
|
-
constructor(context, metavariable) {
|
|
10
|
-
|
|
11
|
-
this.metavariable = metavariable;
|
|
12
|
-
}
|
|
8
|
+
export default define(class Label extends Element {
|
|
9
|
+
constructor(context, string, node, metavariable) {
|
|
10
|
+
super(context, string, node);
|
|
13
11
|
|
|
14
|
-
|
|
15
|
-
return this.context;
|
|
12
|
+
this.metavariable = metavariable;
|
|
16
13
|
}
|
|
17
14
|
|
|
18
15
|
getMetavariable() {
|
|
19
16
|
return this.metavariable;
|
|
20
17
|
}
|
|
21
18
|
|
|
22
|
-
getString() { return this.metavariable.getString(); }
|
|
23
|
-
|
|
24
19
|
getMetavariableName() {
|
|
25
20
|
const metavariableName = this.metavariable.getName();
|
|
26
21
|
|
|
@@ -91,15 +86,9 @@ export default define(class Label {
|
|
|
91
86
|
|
|
92
87
|
static fromJSON(json, context) {
|
|
93
88
|
const metavariable = metavariableFromJSON(json, context),
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
static fromLabelNode(labelNode, context) {
|
|
100
|
-
const { Metavariable } = elements,
|
|
101
|
-
metavariable = Metavariable.fromLabelNode(labelNode, context),
|
|
102
|
-
label = new Label(context, metavariable);
|
|
89
|
+
string = metavariable.getString(),
|
|
90
|
+
node = metavariable.getNode(),
|
|
91
|
+
label = new Label(context, string, node, metavariable);
|
|
103
92
|
|
|
104
93
|
return label;
|
|
105
94
|
}
|
package/src/element/lemma.js
CHANGED
|
@@ -33,11 +33,4 @@ export default define(class Lemma extends AxiomLemmaTheoremConjecture {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
static name = "Lemma";
|
|
36
|
-
|
|
37
|
-
static fromLemmaNode(lemmaNode, context) {
|
|
38
|
-
const node = lemmaNode, ///
|
|
39
|
-
lemma = AxiomLemmaTheoremConjecture.fromNode(Lemma, node, context);
|
|
40
|
-
|
|
41
|
-
return lemma;
|
|
42
|
-
}
|
|
43
36
|
});
|
package/src/element/metaLemma.js
CHANGED
|
@@ -31,11 +31,4 @@ export default define(class MetaLemma extends MetaLemmaMetatheorem {
|
|
|
31
31
|
static name = "MetaLemma";
|
|
32
32
|
|
|
33
33
|
static fromJSON(json, context) { return MetaLemmaMetatheorem.fromJSON(MetaLemma, json, context); }
|
|
34
|
-
|
|
35
|
-
static fromMetaLemmaNode(metaLemmaNode, context) {
|
|
36
|
-
const node = metaLemmaNode, ///
|
|
37
|
-
metaLemma = MetaLemmaMetatheorem.fromNode(MetaLemma, node, context);
|
|
38
|
-
|
|
39
|
-
return metaLemma;
|
|
40
|
-
}
|
|
41
34
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../element";
|
|
3
4
|
import elements from "../elements";
|
|
4
5
|
import LocalContext from "../context/local";
|
|
5
6
|
|
|
@@ -13,11 +14,10 @@ import { labelFromJSON,
|
|
|
13
14
|
suppositionsToSuppositionsJSON,
|
|
14
15
|
substitutionsToSubstitutionsJSON } from "../utilities/json";
|
|
15
16
|
|
|
16
|
-
export default class MetaLemmaMetatheorem {
|
|
17
|
+
export default class MetaLemmaMetatheorem extends Element {
|
|
17
18
|
constructor(context, string, node, label, suppositions, deduction, proof, substitutions) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
this.node = node;
|
|
19
|
+
super(context, string, node);
|
|
20
|
+
|
|
21
21
|
this.label = label;
|
|
22
22
|
this.suppositions = suppositions;
|
|
23
23
|
this.deduction = deduction;
|
|
@@ -25,18 +25,6 @@ export default class MetaLemmaMetatheorem {
|
|
|
25
25
|
this.substitutions = substitutions;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
getContext() {
|
|
29
|
-
return this.context;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
getNode() {
|
|
33
|
-
return this.node;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
getString() {
|
|
37
|
-
return this.string;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
28
|
getLabel() {
|
|
41
29
|
return this.label;
|
|
42
30
|
}
|
package/src/element/metaType.js
CHANGED
|
@@ -1,21 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../element";
|
|
4
|
+
|
|
3
5
|
import { define } from "../elements";
|
|
4
6
|
import { FRAME_META_TYPE_NAME, REFERENCE_META_TYPE_NAME, STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
|
|
5
7
|
|
|
6
|
-
class MetaType {
|
|
7
|
-
constructor(string, node, name) {
|
|
8
|
-
|
|
9
|
-
this.node = node;
|
|
10
|
-
this.name = name;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
getString() {
|
|
14
|
-
return this.string;
|
|
15
|
-
}
|
|
8
|
+
class MetaType extends Element {
|
|
9
|
+
constructor(context, string, node, name) {
|
|
10
|
+
super(context, string, node);
|
|
16
11
|
|
|
17
|
-
|
|
18
|
-
return this.node;
|
|
12
|
+
this.name = name;
|
|
19
13
|
}
|
|
20
14
|
|
|
21
15
|
getName() {
|
|
@@ -52,34 +46,17 @@ class MetaType {
|
|
|
52
46
|
|
|
53
47
|
return metaType;
|
|
54
48
|
}
|
|
55
|
-
|
|
56
|
-
static fromMetaTypeNode(metaTypeNode, context) {
|
|
57
|
-
const metaType = metaTypeFromMetaTypeNode(metaTypeNode, context);
|
|
58
|
-
|
|
59
|
-
return metaType;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
static fromMetavariableDeclarationNode(metavariableDeclarationNode, context) {
|
|
63
|
-
const metaTypeNode = metavariableDeclarationNode.getMetaTypeNode(),
|
|
64
|
-
metaType = metaTypeFromMetaTypeNode(metaTypeNode, context);
|
|
65
|
-
|
|
66
|
-
return metaType;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function metaTypeFromMetaTypeNode(metaTypeNode, context) {
|
|
71
|
-
const metaTypeName = metaTypeNode.getMetaTypeName(),
|
|
72
|
-
metaType = metaTypeFromMetaTypeName(metaTypeName);
|
|
73
|
-
|
|
74
|
-
return metaType;
|
|
75
49
|
}
|
|
76
50
|
|
|
77
51
|
export default define(MetaType);
|
|
78
52
|
|
|
79
53
|
class FrameMetaType extends MetaType {
|
|
80
54
|
static fromNothing() {
|
|
81
|
-
const
|
|
82
|
-
|
|
55
|
+
const context = null,
|
|
56
|
+
string = null,
|
|
57
|
+
node = null,
|
|
58
|
+
name = FRAME_META_TYPE_NAME,
|
|
59
|
+
frameMetaType = new FrameMetaType(context, string, node, name);
|
|
83
60
|
|
|
84
61
|
return frameMetaType;
|
|
85
62
|
}
|
|
@@ -87,8 +64,11 @@ class FrameMetaType extends MetaType {
|
|
|
87
64
|
|
|
88
65
|
class ReferenceMetaType extends MetaType {
|
|
89
66
|
static fromNothing() {
|
|
90
|
-
const
|
|
91
|
-
|
|
67
|
+
const context = null,
|
|
68
|
+
string = null,
|
|
69
|
+
node = null,
|
|
70
|
+
name = REFERENCE_META_TYPE_NAME,
|
|
71
|
+
referenceMetaType = new ReferenceMetaType(context, string, node, name);
|
|
92
72
|
|
|
93
73
|
return referenceMetaType;
|
|
94
74
|
}
|
|
@@ -96,39 +76,18 @@ class ReferenceMetaType extends MetaType {
|
|
|
96
76
|
|
|
97
77
|
class StatementMetaType extends MetaType {
|
|
98
78
|
static fromNothing() {
|
|
99
|
-
const
|
|
100
|
-
|
|
79
|
+
const context = null,
|
|
80
|
+
string = null,
|
|
81
|
+
node = null,
|
|
82
|
+
name = STATEMENT_META_TYPE_NAME,
|
|
83
|
+
statementMetaType = new StatementMetaType(context, string, node, name);
|
|
101
84
|
|
|
102
85
|
return statementMetaType;
|
|
103
86
|
}
|
|
104
87
|
}
|
|
105
88
|
|
|
106
89
|
export const frameMetaType = FrameMetaType.fromNothing();
|
|
107
|
-
export const referenceMetaType = ReferenceMetaType.fromNothing();
|
|
108
|
-
export const statementMetaType = StatementMetaType.fromNothing();
|
|
109
|
-
|
|
110
|
-
function metaTypeFromMetaTypeName(metaTypeName) {
|
|
111
|
-
let metaType;
|
|
112
|
-
|
|
113
|
-
switch (metaTypeName) {
|
|
114
|
-
case FRAME_META_TYPE_NAME: {
|
|
115
|
-
metaType = frameMetaType; ///
|
|
116
|
-
|
|
117
|
-
break;
|
|
118
|
-
}
|
|
119
90
|
|
|
120
|
-
|
|
121
|
-
metaType = referenceMetaType; ///
|
|
122
|
-
|
|
123
|
-
break;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
case STATEMENT_META_TYPE_NAME: {
|
|
127
|
-
metaType = statementMetaType; ///
|
|
128
|
-
|
|
129
|
-
break;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
91
|
+
export const referenceMetaType = ReferenceMetaType.fromNothing();
|
|
132
92
|
|
|
133
|
-
|
|
134
|
-
}
|
|
93
|
+
export const statementMetaType = StatementMetaType.fromNothing();
|
|
@@ -31,11 +31,4 @@ export default define(class Metatheorem extends MetaLemmaMetatheorem {
|
|
|
31
31
|
static name = "Metatheorem";
|
|
32
32
|
|
|
33
33
|
static fromJSON(json, context) { return MetaLemmaMetatheorem.fromJSON(Metatheorem, json, context); }
|
|
34
|
-
|
|
35
|
-
static fromMetatheoremNode(metatheoremNode, context) {
|
|
36
|
-
const node = metatheoremNode, ///
|
|
37
|
-
metatheorem = MetaLemmaMetatheorem.fromNode(Metatheorem, node, context);
|
|
38
|
-
|
|
39
|
-
return metatheorem;
|
|
40
|
-
}
|
|
41
34
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../element";
|
|
3
4
|
import elements from "../elements";
|
|
4
5
|
|
|
5
6
|
import { define } from "../elements";
|
|
@@ -9,23 +10,15 @@ import { typeFromJSON, typeToTypeJSON } from "../utilities/json";
|
|
|
9
10
|
import { metaTypeFromJSON, metaTypeToMetaTypeJSON } from "../utilities/json";
|
|
10
11
|
import { unifyMetavariable, unifyMetavariableIntrinsically } from "../process/unify";
|
|
11
12
|
|
|
12
|
-
export default define(class Metavariable {
|
|
13
|
-
constructor(string, node, name, type, metaType) {
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
export default define(class Metavariable extends Element {
|
|
14
|
+
constructor(context, string, node, name, type, metaType) {
|
|
15
|
+
super(context, string, node);
|
|
16
|
+
|
|
16
17
|
this.name = name;
|
|
17
18
|
this.type = type;
|
|
18
19
|
this.metaType = metaType;
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
getString() {
|
|
22
|
-
return this.string;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
getNode() {
|
|
26
|
-
return this.node;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
22
|
getName() {
|
|
30
23
|
return this.name;
|
|
31
24
|
}
|
|
@@ -62,14 +55,6 @@ export default define(class Metavariable {
|
|
|
62
55
|
|
|
63
56
|
isMetaTypeEqualTo(metaType) { return this.metaType.isEqualTo(metaType); }
|
|
64
57
|
|
|
65
|
-
isEqualTo(metavariable) {
|
|
66
|
-
const metavariableNode = metavariable.getNode(),
|
|
67
|
-
matches = this.node.match(metavariableNode),
|
|
68
|
-
equalTo = matches; ///
|
|
69
|
-
|
|
70
|
-
return equalTo;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
58
|
verify(context) {
|
|
74
59
|
let verifies;
|
|
75
60
|
|
|
@@ -411,80 +396,7 @@ export default define(class Metavariable {
|
|
|
411
396
|
node = metavariableNode, ///
|
|
412
397
|
type = typeFromJSON(json, context),
|
|
413
398
|
metaType = metaTypeFromJSON(json, context),
|
|
414
|
-
metavariable = new Metavariable(string, node, name, type, metaType);
|
|
415
|
-
|
|
416
|
-
return metavariable;
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
static fromLabelNode(labelNode, context) {
|
|
420
|
-
const metavariableNode = labelNode.getMetavariableNode(),
|
|
421
|
-
metavariable = metavariableFromMetavariableNode(metavariableNode, context);
|
|
422
|
-
|
|
423
|
-
return metavariable;
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
static fromFrameNode(frameNode, context) {
|
|
427
|
-
let metavariable = null;
|
|
428
|
-
|
|
429
|
-
const singularMetavariableNode = frameNode.getSingularMetavariableNode();
|
|
430
|
-
|
|
431
|
-
if (singularMetavariableNode !== null) {
|
|
432
|
-
const metavariableNode = singularMetavariableNode; ///
|
|
433
|
-
|
|
434
|
-
metavariable = metavariableFromMetavariableNode(metavariableNode, context);
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
return metavariable;
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
static fromReferenceNode(referenceNode, context) {
|
|
441
|
-
const metavariableNode = referenceNode.getMetavariableNode(),
|
|
442
|
-
metavariable = metavariableFromMetavariableNode(metavariableNode, context);
|
|
443
|
-
|
|
444
|
-
return metavariable;
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
static fromStatementNode(statementNode, context) {
|
|
448
|
-
let metavariable = null;
|
|
449
|
-
|
|
450
|
-
const singularMetavariableNode = statementNode.getSingularMetavariableNode();
|
|
451
|
-
|
|
452
|
-
if (singularMetavariableNode !== null) {
|
|
453
|
-
const metavariableNode = singularMetavariableNode; ///
|
|
454
|
-
|
|
455
|
-
metavariable = metavariableFromMetavariableNode(metavariableNode, context);
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
return metavariable;
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
static fromAssumptionNode(assumptionNode, context) {
|
|
462
|
-
const metavariableNode = assumptionNode.getMetavariableNode(),
|
|
463
|
-
metavariable = metavariableFromMetavariableNode(metavariableNode, context);
|
|
464
|
-
|
|
465
|
-
return metavariable;
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
static fromMetavariableNode(metavariableNode, context) {
|
|
469
|
-
let metavariable = null;
|
|
470
|
-
|
|
471
|
-
if (metavariableNode !== null) {
|
|
472
|
-
metavariable = metavariableFromMetavariableNode(metavariableNode, context);
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
return metavariable;
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
static fromMetavariableDeclarationNode(metavariableDeclarationNode, context) {
|
|
479
|
-
const { MetaType } = elements,
|
|
480
|
-
metavariableNode = metavariableDeclarationNode.getMetavariableNode(),
|
|
481
|
-
type = typeFromMetavariableDeclarationNode(metavariableDeclarationNode, context),
|
|
482
|
-
metaType = MetaType.fromMetavariableDeclarationNode(metavariableDeclarationNode, context),
|
|
483
|
-
metavariable = metavariableFromMetavariableNode(metavariableNode, context);
|
|
484
|
-
|
|
485
|
-
metavariable.setType(type);
|
|
486
|
-
|
|
487
|
-
metavariable.setMetaType(metaType);
|
|
399
|
+
metavariable = new Metavariable(context, string, node, name, type, metaType);
|
|
488
400
|
|
|
489
401
|
return metavariable;
|
|
490
402
|
}
|
package/src/element/parameter.js
CHANGED
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../element";
|
|
4
|
+
|
|
3
5
|
import { define } from "../elements";
|
|
4
6
|
|
|
5
|
-
export default define(class Parameter {
|
|
6
|
-
constructor(name) {
|
|
7
|
+
export default define(class Parameter extends Element {
|
|
8
|
+
constructor(context, string, node, name) {
|
|
9
|
+
super(context, string, node);
|
|
10
|
+
|
|
7
11
|
this.name = name;
|
|
8
12
|
}
|
|
9
|
-
|
|
13
|
+
|
|
10
14
|
getName() {
|
|
11
15
|
return this.name;
|
|
12
16
|
}
|
|
13
17
|
|
|
14
|
-
getString() {
|
|
15
|
-
const string = this.name; ///
|
|
16
|
-
|
|
17
|
-
return string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
18
|
findReplacementNode(substitutions) {
|
|
21
19
|
let replacementNode = null;
|
|
22
20
|
|
|
@@ -49,15 +47,9 @@ export default define(class Parameter {
|
|
|
49
47
|
|
|
50
48
|
static fromJSON(json, context) {
|
|
51
49
|
const { name } = json,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
static fromParameterNode(parameterNode, context) {
|
|
58
|
-
const parameterName = parameterNode.getParameterName(),
|
|
59
|
-
name = parameterName, ///
|
|
60
|
-
parameter = new Parameter(name);
|
|
50
|
+
string = null,
|
|
51
|
+
node = null,
|
|
52
|
+
parameter = new Parameter(context, string, node, name);
|
|
61
53
|
|
|
62
54
|
return parameter;
|
|
63
55
|
}
|
package/src/element/premise.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../element";
|
|
3
4
|
import elements from "../elements";
|
|
4
5
|
import TemporaryContext from "../context/temporary";
|
|
5
6
|
import assignAssignments from "../process/assign";
|
|
@@ -8,27 +9,14 @@ import { define } from "../elements";
|
|
|
8
9
|
import { subproofAssertionFromStatement } from "../utilities/statement";
|
|
9
10
|
import { termsFromJSON, framesFromJSON, statementFromJSON, procedureCallFromJSON, termsToTermsJSON, framesToFramesJSON, statementToStatementJSON, procedureCallToProcedureCallJSON } from "../utilities/json";
|
|
10
11
|
|
|
11
|
-
export default define(class Premise {
|
|
12
|
+
export default define(class Premise extends Element {
|
|
12
13
|
constructor(context, string, node, statement, procedureCall) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
this.node = node;
|
|
14
|
+
super(context, string, node);
|
|
15
|
+
|
|
16
16
|
this.statement = statement;
|
|
17
17
|
this.procedureCall = procedureCall;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
getContext() {
|
|
21
|
-
return this.context;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
getString() {
|
|
25
|
-
return this.string;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
getNode() {
|
|
29
|
-
return this.node;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
20
|
getStatement() {
|
|
33
21
|
return this.statement;
|
|
34
22
|
}
|
|
@@ -277,19 +265,4 @@ export default define(class Premise {
|
|
|
277
265
|
|
|
278
266
|
return premise;
|
|
279
267
|
}
|
|
280
|
-
|
|
281
|
-
static fromPremiseNode(premiseNode, context) {
|
|
282
|
-
const { Statement, ProcedureCall } = elements,
|
|
283
|
-
node = premiseNode, ///
|
|
284
|
-
string = context.nodeAsString(node),
|
|
285
|
-
statement = Statement.fromPremiseNode(premiseNode, context),
|
|
286
|
-
procedureCall = ProcedureCall.fromPremiseNode(premiseNode, context),
|
|
287
|
-
temporaryContext = null;
|
|
288
|
-
|
|
289
|
-
context = temporaryContext; ///
|
|
290
|
-
|
|
291
|
-
const premise = new Premise(context, string, node, statement, procedureCall);
|
|
292
|
-
|
|
293
|
-
return premise
|
|
294
|
-
}
|
|
295
268
|
});
|