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
|
@@ -2,27 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
import { Expressions } from "occam-furtle";
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import Element from "../element";
|
|
6
6
|
|
|
7
7
|
import { define } from "../elements";
|
|
8
8
|
import { parametersFromJSON, procedureReferenceFromJSON, parametersToParametersJSON, procedureReferenceToProcedureReferenceJSON } from "../utilities/json";
|
|
9
9
|
|
|
10
|
-
export default define(class ProcedureCall {
|
|
11
|
-
constructor(string, node, parameters, procedureReference) {
|
|
12
|
-
|
|
13
|
-
this.node = node;
|
|
10
|
+
export default define(class ProcedureCall extends Element {
|
|
11
|
+
constructor(context, string, node, parameters, procedureReference) {
|
|
12
|
+
super(context, string, node);
|
|
14
13
|
this.parameters = parameters;
|
|
15
14
|
this.procedureReference = procedureReference;
|
|
16
15
|
}
|
|
17
16
|
|
|
18
|
-
getString() {
|
|
19
|
-
return this.string;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
getNode() {
|
|
23
|
-
return this.node;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
17
|
getParameters() {
|
|
27
18
|
return this.parameters;
|
|
28
19
|
}
|
|
@@ -122,71 +113,8 @@ export default define(class ProcedureCall {
|
|
|
122
113
|
parameters = parametersFromJSON(json, context),
|
|
123
114
|
procedureReference = procedureReferenceFromJSON(json, context),
|
|
124
115
|
string = stringFromProcedureReferenceAndParameters(procedureReference, parameters),
|
|
125
|
-
procedureCall = new ProcedureCall(string, node, parameters, procedureReference);
|
|
126
|
-
|
|
127
|
-
return procedureCall;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
static fromPremiseNode(premiseNode, context) {
|
|
131
|
-
let procedureCall = null;
|
|
132
|
-
|
|
133
|
-
const procedureCallNode = premiseNode.getProcedureCallNode();
|
|
134
|
-
|
|
135
|
-
if (procedureCallNode !== null) {
|
|
136
|
-
procedureCall = procedureCallFromProcedureCallNode(procedureCallNode, context);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
return procedureCall;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
static fromSuppositionNode(suppositionNode, context) {
|
|
143
|
-
let procedureCall = null;
|
|
144
|
-
|
|
145
|
-
const procedureCallNode = suppositionNode.getProcedureCallNode();
|
|
146
|
-
|
|
147
|
-
if (procedureCallNode !== null) {
|
|
148
|
-
procedureCall = procedureCallFromProcedureCallNode(procedureCallNode, context);
|
|
149
|
-
}
|
|
116
|
+
procedureCall = new ProcedureCall(context, string, node, parameters, procedureReference);
|
|
150
117
|
|
|
151
118
|
return procedureCall;
|
|
152
119
|
}
|
|
153
120
|
});
|
|
154
|
-
|
|
155
|
-
function procedureCallFromProcedureCallNode(procedureCallNode, context) {
|
|
156
|
-
const { ProcedureCall, ProcedureReference } = elements,
|
|
157
|
-
node = procedureCallNode, ///
|
|
158
|
-
parameters = parametersFromProcedureCallNode(procedureCallNode, context),
|
|
159
|
-
procedureReference = ProcedureReference.fromProcedureCallNode(procedureCallNode, context),
|
|
160
|
-
string = stringFromProcedureReferenceAndParameters(procedureReference, parameters),
|
|
161
|
-
procedureCall = new ProcedureCall(string, node, parameters, procedureReference);
|
|
162
|
-
|
|
163
|
-
return procedureCall;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
function parametersFromProcedureCallNode(procedureCallNode, context) {
|
|
167
|
-
const { Parameter } = elements,
|
|
168
|
-
parameterNodes = procedureCallNode.getParameterNodes(),
|
|
169
|
-
parameters = parameterNodes.map((parameterNode) => {
|
|
170
|
-
const parameter = Parameter.fromParameterNode(parameterNode, context);
|
|
171
|
-
|
|
172
|
-
return parameter;
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
return parameters;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
function stringFromProcedureReferenceAndParameters(procedureReference, parameters) {
|
|
179
|
-
const name = procedureReference.getName(),
|
|
180
|
-
parametersString = parameters.reduce((parametersString, parameter) => {
|
|
181
|
-
const parameterString = parameter.getString();
|
|
182
|
-
|
|
183
|
-
parametersString = (parametersString === null) ?
|
|
184
|
-
parameterString : ///
|
|
185
|
-
`${parametersString}, ${parameterString}`;
|
|
186
|
-
|
|
187
|
-
return parametersString;
|
|
188
|
-
}, null),
|
|
189
|
-
string = `${name}(${parametersString})`;
|
|
190
|
-
|
|
191
|
-
return string;
|
|
192
|
-
}
|
|
@@ -1,17 +1,15 @@
|
|
|
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 ProcedureReference {
|
|
6
|
-
constructor(string, name) {
|
|
7
|
-
|
|
7
|
+
export default define(class ProcedureReference extends Element {
|
|
8
|
+
constructor(context, string, node, name) {
|
|
9
|
+
super(context, string, node);
|
|
8
10
|
this.name = name;
|
|
9
11
|
}
|
|
10
12
|
|
|
11
|
-
getString() {
|
|
12
|
-
return this.string;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
13
|
getName() {
|
|
16
14
|
return this.name;
|
|
17
15
|
}
|
|
@@ -30,16 +28,8 @@ export default define(class ProcedureReference {
|
|
|
30
28
|
static fromJSON(json, context) {
|
|
31
29
|
const { name } = json,
|
|
32
30
|
string = name, ///
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
return procedureReference;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
static fromProcedureCallNode(procedureCallNode, context) {
|
|
39
|
-
const procedureName = procedureCallNode.getProcedureName(),
|
|
40
|
-
name = procedureName, ///
|
|
41
|
-
string = name, ///
|
|
42
|
-
procedureReference = new ProcedureReference(string, name);
|
|
31
|
+
node = null,
|
|
32
|
+
procedureReference = new ProcedureReference(context, string, node, name);
|
|
43
33
|
|
|
44
34
|
return procedureReference;
|
|
45
35
|
}
|
package/src/element/proof.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import Element from "../element";
|
|
4
4
|
import LocalContext from "../context/local";
|
|
5
5
|
|
|
6
6
|
import { define } from "../elements";
|
|
7
7
|
|
|
8
|
-
export default define(class Proof {
|
|
9
|
-
constructor(derivation) {
|
|
8
|
+
export default define(class Proof extends Element {
|
|
9
|
+
constructor(context, string, node, derivation) {
|
|
10
|
+
super(context, string, node);
|
|
11
|
+
|
|
10
12
|
this.derivation = derivation;
|
|
11
13
|
}
|
|
12
14
|
|
|
@@ -51,18 +53,4 @@ export default define(class Proof {
|
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
static name = "Proof";
|
|
54
|
-
|
|
55
|
-
static fromProofNode(proofNode, context) {
|
|
56
|
-
let proof = null;
|
|
57
|
-
|
|
58
|
-
if (proofNode !== null) {
|
|
59
|
-
const { Derivation } = elements,
|
|
60
|
-
derivationNode = proofNode.getDerivationNode(),
|
|
61
|
-
derivation = Derivation.fromDerivationNode(derivationNode, context);
|
|
62
|
-
|
|
63
|
-
proof = new Proof(derivation);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return proof;
|
|
67
|
-
}
|
|
68
56
|
});
|
package/src/element/property.js
CHANGED
|
@@ -1,23 +1,17 @@
|
|
|
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 Property {
|
|
6
|
-
constructor(string, node, name, nominalTypeName) {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
export default define(class Property extends Element {
|
|
8
|
+
constructor(context, string, node, name, nominalTypeName) {
|
|
9
|
+
super(context, string, node);
|
|
10
|
+
|
|
9
11
|
this.name = name;
|
|
10
12
|
this.nominalTypeName = nominalTypeName;
|
|
11
13
|
}
|
|
12
14
|
|
|
13
|
-
getString() {
|
|
14
|
-
return this.string;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
getNode() {
|
|
18
|
-
return this.node;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
15
|
getName() {
|
|
22
16
|
return this.name;
|
|
23
17
|
}
|
|
@@ -54,24 +48,8 @@ export default define(class Property {
|
|
|
54
48
|
static fromJSON(json, context) {
|
|
55
49
|
const { name, nominalTypeName } = json,
|
|
56
50
|
string = name, ///
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return property;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
static fromPropertyRelationNode(propertyRelationNode, context) {
|
|
63
|
-
const propertyNode = propertyRelationNode.getPropertyNode(),
|
|
64
|
-
property = propertyFromPropertyNode(propertyNode, context);
|
|
65
|
-
|
|
66
|
-
return property;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
static fromPropertyDeclarationNode(propertyDeclarationNode, context) {
|
|
70
|
-
const propertyName = propertyDeclarationNode.getPropertyName(),
|
|
71
|
-
nominalTypeName = propertyDeclarationNode.getNominalTypeName(),
|
|
72
|
-
name = propertyName, ///
|
|
73
|
-
string = name, ///
|
|
74
|
-
property = new Property(string, name, nominalTypeName);
|
|
51
|
+
node = null,
|
|
52
|
+
property = new Property(context, string, node, name, nominalTypeName);
|
|
75
53
|
|
|
76
54
|
return property;
|
|
77
55
|
}
|
|
@@ -1,25 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import Element from "../element";
|
|
4
4
|
|
|
5
5
|
import { define } from "../elements";
|
|
6
6
|
|
|
7
|
-
export default define(class PropertyRelation {
|
|
8
|
-
constructor(string, node, property, term) {
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
export default define(class PropertyRelation extends Element {
|
|
8
|
+
constructor(context, string, node, property, term) {
|
|
9
|
+
super(context, string, node);
|
|
10
|
+
|
|
11
11
|
this.property = property;
|
|
12
12
|
this.term = term;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
getString() {
|
|
16
|
-
return this.string;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
getNode() {
|
|
20
|
-
return this.node;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
15
|
getProperty() {
|
|
24
16
|
return this.property;
|
|
25
17
|
}
|
|
@@ -28,14 +20,6 @@ export default define(class PropertyRelation {
|
|
|
28
20
|
return this.term;
|
|
29
21
|
}
|
|
30
22
|
|
|
31
|
-
isEqualTo(propertyRelation) {
|
|
32
|
-
const propertyRelationNode = propertyRelation.getNode(),
|
|
33
|
-
matches = this.node.match(propertyRelationNode),
|
|
34
|
-
equalTo = matches; ///
|
|
35
|
-
|
|
36
|
-
return equalTo;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
23
|
verify(context) {
|
|
40
24
|
let verifies = false;
|
|
41
25
|
|
|
@@ -113,16 +97,4 @@ export default define(class PropertyRelation {
|
|
|
113
97
|
}
|
|
114
98
|
|
|
115
99
|
static name = "PropertyRelation";
|
|
116
|
-
|
|
117
|
-
static fromPropertyAssertionNode(propertyAssertionNode, context) {
|
|
118
|
-
const { Term, Property } = elements,
|
|
119
|
-
propertyRelationNode = propertyAssertionNode.getPropertyRelationNode(),
|
|
120
|
-
node = propertyRelationNode, ///
|
|
121
|
-
string = context.nodeAsString(node),
|
|
122
|
-
property = Property.fromPropertyRelationNode(propertyRelationNode, context),
|
|
123
|
-
term = Term.fromPropertyRelationNode(propertyRelationNode, context),
|
|
124
|
-
propertyRelation = new PropertyRelation(string, node, property, term);
|
|
125
|
-
|
|
126
|
-
return propertyRelation;
|
|
127
|
-
}
|
|
128
100
|
});
|
package/src/element/reference.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
|
|
|
5
6
|
import { define } from "../elements";
|
|
@@ -7,8 +8,10 @@ import { referenceMetaType } from ".//metaType";
|
|
|
7
8
|
import { unifyMetavariableIntrinsically } from "../process/unify";
|
|
8
9
|
import { metavariableFromJSON, metavariableToMetavariableJSON } from "../utilities/json";
|
|
9
10
|
|
|
10
|
-
export default define(class Reference {
|
|
11
|
-
constructor(metavariable) {
|
|
11
|
+
export default define(class Reference extends Element {
|
|
12
|
+
constructor(context, string, node, metavariable) {
|
|
13
|
+
super(context, string, node);
|
|
14
|
+
|
|
12
15
|
this.metavariable = metavariable;
|
|
13
16
|
}
|
|
14
17
|
|
|
@@ -18,10 +21,6 @@ export default define(class Reference {
|
|
|
18
21
|
|
|
19
22
|
getName() { return this.metavariable.getName(); }
|
|
20
23
|
|
|
21
|
-
getName() { return this.metavariable.getName(); }
|
|
22
|
-
|
|
23
|
-
getString() { return this.metavariable.getString(); }
|
|
24
|
-
|
|
25
24
|
getMetavariableName() {
|
|
26
25
|
const metavariableName = this.metavariable.getName();
|
|
27
26
|
|
|
@@ -34,14 +33,6 @@ export default define(class Reference {
|
|
|
34
33
|
return metavariableNode;
|
|
35
34
|
}
|
|
36
35
|
|
|
37
|
-
isEqualTo(refernece) {
|
|
38
|
-
const metavariable = refernece.getMetavariable(),
|
|
39
|
-
metavariableEqualToMetvariable = this.metavariable.isEqualTo(metavariable),
|
|
40
|
-
equalTo = metavariableEqualToMetvariable; ///
|
|
41
|
-
|
|
42
|
-
return equalTo;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
36
|
isMetavariableEqualToMetavariable(metavariable) { return this.metavariable.isEqualTo(metavariable); }
|
|
46
37
|
|
|
47
38
|
matchMetavariableName(metavariableName) { return this.metavariable.matchMetavariableName(metavariableName); }
|
|
@@ -194,65 +185,10 @@ export default define(class Reference {
|
|
|
194
185
|
|
|
195
186
|
static fromJSON(json, context) {
|
|
196
187
|
const metavariable = metavariableFromJSON(json, context),
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
static fromStepNode(stepNode, context) {
|
|
203
|
-
let reference = null;
|
|
204
|
-
|
|
205
|
-
const referenceNode = stepNode.getReferenceNode();
|
|
206
|
-
|
|
207
|
-
if (referenceNode !== null) {
|
|
208
|
-
reference = referenceFromReferenceNode(referenceNode, context);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
return reference;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
static fromAssumptionNode(assumptionNode, context) {
|
|
215
|
-
let reference = null;
|
|
216
|
-
|
|
217
|
-
const metavariableNode = assumptionNode.getMetavariableNode();
|
|
218
|
-
|
|
219
|
-
if (metavariableNode !== null) {
|
|
220
|
-
reference = referenceFromMetavariableNode(metavariableNode, context);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
return reference;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
static fromMetavariableNode(metavariableNode, context) {
|
|
227
|
-
const reference = referenceFromMetavariableNode(metavariableNode, context);
|
|
228
|
-
|
|
229
|
-
return reference;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
static fromProcedureCallNode(procedureCallNode, context) {
|
|
233
|
-
let reference = null;
|
|
234
|
-
|
|
235
|
-
const referenceNode = procedureCallNode.getReferenceNode();
|
|
236
|
-
|
|
237
|
-
if (referenceNode !== null) {
|
|
238
|
-
reference = referenceFromReferenceNode(referenceNode, context);
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
return reference;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
static fromSatisfiesAssertionNode(satisfiesAssertionNode, context) {
|
|
245
|
-
const metavariableNode = satisfiesAssertionNode.getMetavariableNode(),
|
|
246
|
-
reference = referenceFromMetavariableNode(metavariableNode, context);
|
|
188
|
+
string = metavariable.getString(),
|
|
189
|
+
node = metavariable.getNode(),
|
|
190
|
+
reference = new Reference(context, string, node, metavariable);
|
|
247
191
|
|
|
248
192
|
return reference;
|
|
249
193
|
}
|
|
250
194
|
});
|
|
251
|
-
|
|
252
|
-
function referenceFromMetavariableNode(metavariableNode, context) {
|
|
253
|
-
const { Reference, Metavariable } = elements,
|
|
254
|
-
metavariable = Metavariable.fromMetavariableNode(metavariableNode, context),
|
|
255
|
-
reference = new Reference(metavariable);
|
|
256
|
-
|
|
257
|
-
return reference;
|
|
258
|
-
}
|
package/src/element/rule.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
+
import Element from "../element";
|
|
5
6
|
import elements from "../elements";
|
|
6
7
|
import LocalContext from "../context/local";
|
|
7
8
|
|
|
8
9
|
import { define } from "../elements";
|
|
9
|
-
import { labelsStringFromLabels } from "./axiomLemmaTheoremConjecture";
|
|
10
10
|
import { labelsFromJSON,
|
|
11
11
|
premisesFromJSON,
|
|
12
12
|
conclusionFromJSON,
|
|
@@ -16,29 +16,16 @@ import { labelsFromJSON,
|
|
|
16
16
|
|
|
17
17
|
const { reverse, extract, backwardsEvery } = arrayUtilities;
|
|
18
18
|
|
|
19
|
-
export default define(class Rule {
|
|
19
|
+
export default define(class Rule extends Element {
|
|
20
20
|
constructor(context, string, node, labels, premises, conclusion, proof) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
this.node = node;
|
|
21
|
+
super(context, string, node);
|
|
22
|
+
|
|
24
23
|
this.labels = labels;
|
|
25
24
|
this.premises = premises;
|
|
26
25
|
this.conclusion = conclusion;
|
|
27
26
|
this.proof = proof;
|
|
28
27
|
}
|
|
29
28
|
|
|
30
|
-
getContext() {
|
|
31
|
-
return this.context;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
getNode() {
|
|
35
|
-
return this.node;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
getString() {
|
|
39
|
-
return this.string;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
29
|
getLabels() {
|
|
43
30
|
return this.labels;
|
|
44
31
|
}
|
|
@@ -319,27 +306,3 @@ function conclusionFromRuleNode(ruleNode, context) {
|
|
|
319
306
|
return conclusion;
|
|
320
307
|
}
|
|
321
308
|
|
|
322
|
-
function premisesStringFromPremises(premises) {
|
|
323
|
-
const premisesString = premises.reduce((premisesString, premise) => {
|
|
324
|
-
const premiseString = premise.getString();
|
|
325
|
-
|
|
326
|
-
premisesString = (premisesString !== null) ?
|
|
327
|
-
`${premisesString}, ${premiseString}` :
|
|
328
|
-
premiseString; ///
|
|
329
|
-
|
|
330
|
-
return premisesString;
|
|
331
|
-
}, null);
|
|
332
|
-
|
|
333
|
-
return premisesString;
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
function stringFromLabelsPremisesAndConclusion(labels, premises, conclusion) {
|
|
337
|
-
const premisesString = premisesStringFromPremises(premises),
|
|
338
|
-
conclusionString = conclusion.getString(),
|
|
339
|
-
labelsString = labelsStringFromLabels(labels),
|
|
340
|
-
string = (premisesString !== null) ?
|
|
341
|
-
`${labelsString} :: [${premisesString}] ... ${conclusionString}` :
|
|
342
|
-
`${labelsString} :: ${conclusionString}`;
|
|
343
|
-
|
|
344
|
-
return string;
|
|
345
|
-
}
|
package/src/element/section.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import LocalContext from "../context/local";
|
|
3
|
+
import Element from "../element";
|
|
5
4
|
|
|
6
5
|
import { define } from "../elements";
|
|
7
6
|
|
|
8
|
-
export default define(class Section {
|
|
7
|
+
export default define(class Section extends Element {
|
|
9
8
|
constructor(context, string, node, hypotheses, axiom, lemma, theorem, conjecture) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
this.node = node;
|
|
9
|
+
super(context, string, node);
|
|
10
|
+
|
|
13
11
|
this.hypotheses = hypotheses;
|
|
14
12
|
this.axiom = axiom;
|
|
15
13
|
this.lemma = lemma;
|
|
@@ -17,18 +15,6 @@ export default define(class Section {
|
|
|
17
15
|
this.conjecture = conjecture;
|
|
18
16
|
}
|
|
19
17
|
|
|
20
|
-
getContext() {
|
|
21
|
-
return this.context;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
getNode() {
|
|
25
|
-
return this.node;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
getString() {
|
|
29
|
-
return this.string;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
18
|
getHypotheses() {
|
|
33
19
|
return this.hypotheses;
|
|
34
20
|
}
|
|
@@ -89,115 +75,4 @@ export default define(class Section {
|
|
|
89
75
|
}
|
|
90
76
|
|
|
91
77
|
static name = "Section";
|
|
92
|
-
|
|
93
|
-
static fromSectionNode(sectionNode, context) {
|
|
94
|
-
const localContext = LocalContext.fromNothing(context);
|
|
95
|
-
|
|
96
|
-
context = localContext; ///
|
|
97
|
-
|
|
98
|
-
const hypothesisNodes = sectionNode.getHypothesisNodes(),
|
|
99
|
-
hypotheses = hypothesesFromHypothesisNodes(hypothesisNodes, context),
|
|
100
|
-
axiom = axiomFroSectionNode(sectionNode, context),
|
|
101
|
-
lemma = lemmaFroSectionNode(sectionNode, context),
|
|
102
|
-
theorem = theoremFroSectionNode(sectionNode, context),
|
|
103
|
-
conjecture = conjectureFroSectionNode(sectionNode, context),
|
|
104
|
-
node = sectionNode, ///
|
|
105
|
-
string = stringFromHypothesesAxiomLemmaTheoremAndConjecture(hypotheses, axiom, lemma, theorem, conjecture, context),
|
|
106
|
-
section = new Section(context, string, node, hypotheses, axiom, lemma, theorem, conjecture);
|
|
107
|
-
|
|
108
|
-
return section;
|
|
109
|
-
}
|
|
110
78
|
});
|
|
111
|
-
|
|
112
|
-
function axiomFroSectionNode(sectionNode, context) {
|
|
113
|
-
let axiom = null;
|
|
114
|
-
|
|
115
|
-
const axiomNode = sectionNode.getAxiomNode();
|
|
116
|
-
|
|
117
|
-
if (axiomNode !== null) {
|
|
118
|
-
const { Axiom } = elements;
|
|
119
|
-
|
|
120
|
-
axiom = Axiom.fromAxiomNode(axiomNode, context);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
return axiom;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
function lemmaFroSectionNode(sectionNode, context) {
|
|
127
|
-
let lemma = null;
|
|
128
|
-
|
|
129
|
-
const lemmaNode = sectionNode.getLemmaNode();
|
|
130
|
-
|
|
131
|
-
if (lemmaNode !== null) {
|
|
132
|
-
const { Lemma } = elements;
|
|
133
|
-
|
|
134
|
-
lemma = Lemma.fromLemmaNode(lemmaNode, context);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
return lemma;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
function theoremFroSectionNode(sectionNode, context) {
|
|
141
|
-
let theorem = null;
|
|
142
|
-
|
|
143
|
-
const theoremNode = sectionNode.getTheoremNode();
|
|
144
|
-
|
|
145
|
-
if (theoremNode !== null) {
|
|
146
|
-
const { Theorem } = elements;
|
|
147
|
-
|
|
148
|
-
theorem = Theorem.fromTheoremNode(theoremNode, context);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
return theorem;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
function conjectureFroSectionNode(sectionNode, context) {
|
|
155
|
-
let conjecture = null;
|
|
156
|
-
|
|
157
|
-
const conjectureNode = sectionNode.getConjectureNode();
|
|
158
|
-
|
|
159
|
-
if (conjectureNode !== null) {
|
|
160
|
-
const { Conjecture } = elements;
|
|
161
|
-
|
|
162
|
-
conjecture = Conjecture.fromConjectureNode(conjectureNode, context);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
return conjecture;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
function hypothesesFromHypothesisNodes(hypothesisNodes, context) {
|
|
169
|
-
const hypotheses = hypothesisNodes.map((hypothesisNode) => {
|
|
170
|
-
const { Hypothesis } = elements,
|
|
171
|
-
hypothesis = Hypothesis.fromHypothesisNode(hypothesisNode, context);
|
|
172
|
-
|
|
173
|
-
return hypothesis;
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
return hypotheses;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
function hypothesesStringFromHypotheses(hypotheses, context) {
|
|
180
|
-
const hypothesesString = hypotheses.reduce((hypothesesString, hypothesis) => {
|
|
181
|
-
const hypothesisString = hypothesis.getString();
|
|
182
|
-
|
|
183
|
-
hypothesesString = (hypothesesString !== null) ?
|
|
184
|
-
`${hypothesesString}, ${hypothesisString}` :
|
|
185
|
-
hypothesisString; ///
|
|
186
|
-
|
|
187
|
-
return hypothesesString;
|
|
188
|
-
}, null);
|
|
189
|
-
|
|
190
|
-
return hypothesesString;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
function stringFromHypothesesAxiomLemmaTheoremAndConjecture(hypotheses, axiom, lemma, theorem, conjecture, context) {
|
|
194
|
-
const axiomLemmaTheoremOrConjecture = (axiom || lemma || theorem || conjecture),
|
|
195
|
-
axiomLemmaTheoremOrConjectureString = axiomLemmaTheoremOrConjecture.getString(),
|
|
196
|
-
hypothesesString = hypothesesStringFromHypotheses(hypotheses, context),
|
|
197
|
-
string = (axiomLemmaTheoremOrConjectureString !== null) ?
|
|
198
|
-
`[${hypothesesString}]::: ${axiomLemmaTheoremOrConjectureString}` :
|
|
199
|
-
`[${hypothesesString}]::: `;
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
return string;
|
|
203
|
-
}
|
package/src/element/signature.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
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";
|
|
@@ -10,19 +11,11 @@ import { termsFromJSON, termsToTermsJSON } from "../utilities/json";
|
|
|
10
11
|
|
|
11
12
|
const { match, compare, correlate } = arrayUtilities;
|
|
12
13
|
|
|
13
|
-
export default define(class Signature {
|
|
14
|
-
constructor(string, node, terms) {
|
|
15
|
-
|
|
16
|
-
this.node = node;
|
|
17
|
-
this.terms = terms;
|
|
18
|
-
}
|
|
14
|
+
export default define(class Signature extends Element {
|
|
15
|
+
constructor(context, string, node, terms) {
|
|
16
|
+
super(context, string, node);
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
return this.string;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
getNode() {
|
|
25
|
-
return this.node;
|
|
18
|
+
this.terms = terms;
|
|
26
19
|
}
|
|
27
20
|
|
|
28
21
|
getTerms() {
|
|
@@ -160,7 +153,8 @@ export default define(class Signature {
|
|
|
160
153
|
const terms = termsFromJSON(json, context),
|
|
161
154
|
signatureString = signatureStringFromTerms(terms),
|
|
162
155
|
string = signatureString, ///
|
|
163
|
-
|
|
156
|
+
node = null,
|
|
157
|
+
signature = new Signature(context, string, node, terms);
|
|
164
158
|
|
|
165
159
|
return signature;
|
|
166
160
|
}
|