occam-verify-cli 1.0.611 → 1.0.617
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/ephemeral.js +59 -31
- package/lib/context/file/nominal.js +45 -19
- package/lib/context/liminal.js +38 -53
- package/lib/context/scoped.js +34 -26
- package/lib/context.js +74 -46
- package/lib/element/assertion/contained.js +8 -1
- package/lib/element/assertion/defined.js +8 -1
- package/lib/element/assertion/property.js +8 -1
- package/lib/element/assertion/satisfies.js +8 -1
- package/lib/element/assertion/subproof.js +8 -1
- package/lib/element/assertion/type.js +8 -1
- package/lib/element/assertion.js +5 -9
- package/lib/element/assumption.js +21 -14
- package/lib/element/combinator/bracketed.js +8 -1
- package/lib/element/combinator.js +8 -1
- package/lib/element/conclusion.js +8 -1
- package/lib/element/constructor/bracketed.js +8 -1
- package/lib/element/constructor.js +8 -1
- package/lib/element/declaration/combinator.js +8 -1
- package/lib/element/declaration/complexType.js +8 -1
- package/lib/element/declaration/constructor.js +32 -25
- package/lib/element/declaration/metavariable.js +9 -9
- package/lib/element/declaration/simpleType.js +8 -1
- package/lib/element/declaration/typePrefix.js +8 -1
- package/lib/element/declaration/variable.js +16 -9
- package/lib/element/declaration.js +3 -7
- package/lib/element/deduction.js +8 -1
- package/lib/element/derivation.js +8 -1
- package/lib/element/equality.js +8 -1
- package/lib/element/equivalence.js +8 -1
- package/lib/element/equivalences.js +8 -1
- package/lib/element/error.js +10 -7
- package/lib/element/hypothesis.js +8 -1
- package/lib/element/judgement.js +9 -2
- package/lib/element/label.js +8 -1
- package/lib/element/metaType.js +8 -1
- package/lib/element/metavariable.js +11 -14
- package/lib/element/parameter.js +8 -1
- package/lib/element/procedureCall.js +21 -29
- package/lib/element/procedureReference.js +15 -1
- package/lib/element/proof.js +8 -1
- package/lib/element/proofAssertion/premise.js +8 -1
- package/lib/element/proofAssertion/step.js +8 -1
- package/lib/element/proofAssertion/supposition.js +8 -1
- package/lib/element/proofAssertion.js +8 -1
- package/lib/element/property.js +8 -1
- package/lib/element/propertyRelation.js +8 -1
- package/lib/element/reference.js +8 -8
- package/lib/element/rule.js +10 -7
- package/lib/element/section.js +8 -1
- package/lib/element/signature.js +8 -1
- package/lib/element/statement.js +12 -16
- package/lib/element/subDerivation.js +8 -1
- package/lib/element/subproof.js +8 -1
- package/lib/element/substitution/frame.js +11 -4
- package/lib/element/substitution/reference.js +11 -4
- package/lib/element/substitution/statement.js +16 -15
- package/lib/element/substitution/term.js +10 -3
- package/lib/element/substitution.js +3 -7
- package/lib/element/topLevelAssertion/axiom.js +8 -1
- package/lib/element/topLevelAssertion/conjecture.js +8 -1
- package/lib/element/topLevelAssertion/lemma.js +8 -1
- package/lib/element/topLevelAssertion/theorem.js +8 -1
- package/lib/element/topLevelAssertion.js +3 -7
- package/lib/element/topLevelMetaAssertion/metaLemma.js +8 -1
- package/lib/element/topLevelMetaAssertion/metatheorem.js +8 -1
- package/lib/element/type.js +8 -1
- package/lib/element/typePrefix.js +8 -1
- package/lib/element/variable.js +8 -3
- package/lib/preamble.js +1 -2
- package/lib/process/assign.js +2 -3
- package/lib/utilities/element.js +3 -3
- package/lib/utilities/substitutions.js +11 -12
- package/lib/utilities/unification.js +30 -15
- package/package.json +2 -2
- package/src/context/ephemeral.js +64 -32
- package/src/context/file/nominal.js +82 -17
- package/src/context/liminal.js +40 -65
- package/src/context/scoped.js +47 -31
- package/src/context.js +68 -40
- package/src/element/assertion/contained.js +7 -0
- package/src/element/assertion/defined.js +7 -0
- package/src/element/assertion/property.js +7 -0
- package/src/element/assertion/satisfies.js +7 -0
- package/src/element/assertion/subproof.js +7 -0
- package/src/element/assertion/type.js +7 -0
- package/src/element/assertion.js +4 -8
- package/src/element/assumption.js +11 -4
- package/src/element/combinator/bracketed.js +7 -0
- package/src/element/combinator.js +7 -0
- package/src/element/conclusion.js +7 -0
- package/src/element/constructor/bracketed.js +7 -0
- package/src/element/constructor.js +7 -0
- package/src/element/declaration/combinator.js +7 -0
- package/src/element/declaration/complexType.js +7 -0
- package/src/element/declaration/constructor.js +31 -24
- package/src/element/declaration/metavariable.js +6 -6
- package/src/element/declaration/simpleType.js +7 -0
- package/src/element/declaration/typePrefix.js +7 -0
- package/src/element/declaration/variable.js +13 -6
- package/src/element/declaration.js +1 -3
- package/src/element/deduction.js +7 -0
- package/src/element/derivation.js +7 -0
- package/src/element/equality.js +7 -0
- package/src/element/equivalence.js +8 -0
- package/src/element/equivalences.js +7 -0
- package/src/element/error.js +5 -2
- package/src/element/hypothesis.js +7 -0
- package/src/element/judgement.js +8 -2
- package/src/element/label.js +7 -0
- package/src/element/metaType.js +7 -0
- package/src/element/metavariable.js +13 -18
- package/src/element/parameter.js +7 -0
- package/src/element/procedureCall.js +21 -14
- package/src/element/procedureReference.js +13 -0
- package/src/element/proof.js +7 -0
- package/src/element/proofAssertion/premise.js +7 -0
- package/src/element/proofAssertion/step.js +7 -0
- package/src/element/proofAssertion/supposition.js +7 -0
- package/src/element/proofAssertion.js +7 -0
- package/src/element/property.js +7 -0
- package/src/element/propertyRelation.js +7 -0
- package/src/element/reference.js +8 -7
- package/src/element/rule.js +8 -9
- package/src/element/section.js +7 -0
- package/src/element/signature.js +7 -0
- package/src/element/statement.js +9 -14
- package/src/element/subDerivation.js +7 -0
- package/src/element/subproof.js +7 -0
- package/src/element/substitution/frame.js +10 -3
- package/src/element/substitution/reference.js +10 -3
- package/src/element/substitution/statement.js +11 -17
- package/src/element/substitution/term.js +9 -2
- package/src/element/substitution.js +0 -4
- package/src/element/topLevelAssertion/axiom.js +7 -0
- package/src/element/topLevelAssertion/conjecture.js +7 -0
- package/src/element/topLevelAssertion/lemma.js +7 -0
- package/src/element/topLevelAssertion/theorem.js +7 -0
- package/src/element/topLevelAssertion.js +1 -9
- package/src/element/topLevelMetaAssertion/metaLemma.js +7 -0
- package/src/element/topLevelMetaAssertion/metatheorem.js +7 -0
- package/src/element/type.js +7 -0
- package/src/element/typePrefix.js +7 -0
- package/src/element/variable.js +7 -4
- package/src/preamble.js +0 -1
- package/src/process/assign.js +1 -3
- package/src/utilities/element.js +2 -2
- package/src/utilities/substitutions.js +8 -12
- package/src/utilities/unification.js +2 -4
- package/lib/element/substitutions.js +0 -225
- package/src/element/substitutions.js +0 -84
package/src/element/equality.js
CHANGED
|
@@ -15,6 +15,7 @@ const { compress } = arrayUtilities;
|
|
|
15
15
|
export default define(class Equivalence extends Element {
|
|
16
16
|
constructor(context, string, node, terms) {
|
|
17
17
|
super(context, string, node);
|
|
18
|
+
|
|
18
19
|
this.terms = terms;
|
|
19
20
|
}
|
|
20
21
|
|
|
@@ -22,6 +23,13 @@ export default define(class Equivalence extends Element {
|
|
|
22
23
|
return this.terms;
|
|
23
24
|
}
|
|
24
25
|
|
|
26
|
+
getEquivalenceNode() {
|
|
27
|
+
const node = this.getNode(),
|
|
28
|
+
equivalenceNode = node; ///
|
|
29
|
+
|
|
30
|
+
return equivalenceNode;
|
|
31
|
+
}
|
|
32
|
+
|
|
25
33
|
getType() {
|
|
26
34
|
const type = this.terms.reduce((type, term) => {
|
|
27
35
|
const termType = term.getType();
|
|
@@ -20,6 +20,13 @@ export default define(class Equivalences extends Element {
|
|
|
20
20
|
return this.array;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
getEquivalencesNode() {
|
|
24
|
+
const node = this.getNode(),
|
|
25
|
+
equivalencesNode = node; ///
|
|
26
|
+
|
|
27
|
+
return equivalencesNode;
|
|
28
|
+
}
|
|
29
|
+
|
|
23
30
|
getLength() { return this.array.length; }
|
|
24
31
|
|
|
25
32
|
getTypes() {
|
package/src/element/error.js
CHANGED
|
@@ -5,8 +5,11 @@ import { Element } from "occam-languages";
|
|
|
5
5
|
import { define } from "../elements";
|
|
6
6
|
|
|
7
7
|
export default define(class Error extends Element {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
getErrorNode() {
|
|
9
|
+
const node = this.getNode(),
|
|
10
|
+
errorNode = node; ///
|
|
11
|
+
|
|
12
|
+
return errorNode;
|
|
10
13
|
}
|
|
11
14
|
|
|
12
15
|
async verify() {
|
|
@@ -18,6 +18,13 @@ export default define(class Hypothesis extends Element {
|
|
|
18
18
|
return this.statement;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
getHypothesisNode() {
|
|
22
|
+
const node = this.getNode(),
|
|
23
|
+
hypothesisNode = node; ///
|
|
24
|
+
|
|
25
|
+
return hypothesisNode;
|
|
26
|
+
}
|
|
27
|
+
|
|
21
28
|
verify(context) {
|
|
22
29
|
let verifies = false;
|
|
23
30
|
|
package/src/element/judgement.js
CHANGED
|
@@ -21,9 +21,15 @@ export default define(class Judgement extends Element {
|
|
|
21
21
|
return this.assumption;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
getJudgementNode() {
|
|
25
25
|
const node = this.getNode(),
|
|
26
|
-
judgementNode = node
|
|
26
|
+
judgementNode = node; ///
|
|
27
|
+
|
|
28
|
+
return judgementNode;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
isSingular() {
|
|
32
|
+
const judgementNode = this.getJudgementNode(),
|
|
27
33
|
singular = judgementNode.isSingular();
|
|
28
34
|
|
|
29
35
|
return singular;
|
package/src/element/label.js
CHANGED
|
@@ -16,6 +16,13 @@ export default define(class Label extends Element {
|
|
|
16
16
|
return this.metavariable;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
getLabelNode() {
|
|
20
|
+
const node = this.getNode(),
|
|
21
|
+
labelNode = node; ///
|
|
22
|
+
|
|
23
|
+
return labelNode;
|
|
24
|
+
}
|
|
25
|
+
|
|
19
26
|
getMetavariableName() { return this.metavariable.getName(); }
|
|
20
27
|
|
|
21
28
|
getMetavariableNode() { return this.metavariable.getNode(); }
|
package/src/element/metaType.js
CHANGED
|
@@ -15,6 +15,13 @@ export default define(class MetaType extends Element {
|
|
|
15
15
|
return this.name;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
getMetaTypeNode() {
|
|
19
|
+
const node = this.getNode(),
|
|
20
|
+
metaTypeNode = node; ///
|
|
21
|
+
|
|
22
|
+
return metaTypeNode;
|
|
23
|
+
}
|
|
24
|
+
|
|
18
25
|
isEqualTo(metaType) {
|
|
19
26
|
const equalTo = (this === metaType);
|
|
20
27
|
|
|
@@ -126,13 +126,13 @@ export default define(class Metavariable extends Element {
|
|
|
126
126
|
|
|
127
127
|
context.trace(`Unifying the '${frameString}' frame with the '${metavariableString}' metavariable...`);
|
|
128
128
|
|
|
129
|
-
const
|
|
130
|
-
frameMetavariableUnifies = this.unifyFrameMetavariable(frame, generalContext, specificContext);
|
|
129
|
+
const frameMetavariableUnifies = this.unifyFrameMetavariable(frame, generalContext, specificContext);
|
|
131
130
|
|
|
132
131
|
if (frameMetavariableUnifies) {
|
|
133
132
|
frameUnifies = true;
|
|
134
133
|
} else {
|
|
135
|
-
const
|
|
134
|
+
const metavariableName = this.getMetavariableName(),
|
|
135
|
+
simpleSubstitution = context.findSimpleSubstitutionByMetavariableName(metavariableName);
|
|
136
136
|
|
|
137
137
|
if (simpleSubstitution !== null) {
|
|
138
138
|
const substitution = simpleSubstitution, ///
|
|
@@ -143,14 +143,11 @@ export default define(class Metavariable extends Element {
|
|
|
143
143
|
}
|
|
144
144
|
} else {
|
|
145
145
|
const { FrameSubstitution } = elements,
|
|
146
|
+
metavariable = this, ///
|
|
146
147
|
frameSubstitution = FrameSubstitution.fromFrameAndMetavariable(frame, metavariable, context),
|
|
147
148
|
framesubstitutionValidates = frameSubstitution.validate(generalContext, specificContext);
|
|
148
149
|
|
|
149
150
|
if (framesubstitutionValidates) {
|
|
150
|
-
const substitution = frameSubstitution; ///
|
|
151
|
-
|
|
152
|
-
context.addSubstitution(substitution);
|
|
153
|
-
|
|
154
151
|
frameUnifies = true;
|
|
155
152
|
}
|
|
156
153
|
}
|
|
@@ -211,10 +208,6 @@ export default define(class Metavariable extends Element {
|
|
|
211
208
|
const statementSubstitutionValidates = statementSubstitution.validate(generalContext, specificContext);
|
|
212
209
|
|
|
213
210
|
if (statementSubstitutionValidates) {
|
|
214
|
-
const substitution = statementSubstitution; ///
|
|
215
|
-
|
|
216
|
-
context.addSubstitution(substitution);
|
|
217
|
-
|
|
218
211
|
statementUnifies = true;
|
|
219
212
|
}
|
|
220
213
|
}
|
|
@@ -236,16 +229,16 @@ export default define(class Metavariable extends Element {
|
|
|
236
229
|
|
|
237
230
|
context.trace(`Unifying the '${referenceString}' reference with the '${metavariableString}' metavariable...`);
|
|
238
231
|
|
|
239
|
-
const
|
|
240
|
-
referenceMetavariableUnifies = this.unifyReferenceMetavariable(reference, generalContext, specificContext);
|
|
232
|
+
const referenceMetavariableUnifies = this.unifyReferenceMetavariable(reference, generalContext, specificContext);
|
|
241
233
|
|
|
242
234
|
if (referenceMetavariableUnifies) {
|
|
243
235
|
referenceUnifies = true;
|
|
244
236
|
} else {
|
|
245
|
-
const
|
|
237
|
+
const metavariableName = this.getMetavariableName(),
|
|
238
|
+
simpleSubstitutionPresent = context.isSimpleSubstitutionPresentByMetavariableName(metavariableName);
|
|
246
239
|
|
|
247
240
|
if (simpleSubstitutionPresent) {
|
|
248
|
-
const simpleSubstitution = context.
|
|
241
|
+
const simpleSubstitution = context.findSimpleSubstitutionByMetavariableName(metavariableName),
|
|
249
242
|
substitution = simpleSubstitution, ///
|
|
250
243
|
substitutionReferenceEqualToReference = substitution.isReferenceEqualToReference(reference);
|
|
251
244
|
|
|
@@ -254,12 +247,14 @@ export default define(class Metavariable extends Element {
|
|
|
254
247
|
}
|
|
255
248
|
} else {
|
|
256
249
|
const { ReferenceSubstitution } = elements,
|
|
250
|
+
metavariable = this, ///
|
|
257
251
|
referenceSubstitution = ReferenceSubstitution.fromReferenceAndMetavariable(reference, metavariable, context),
|
|
258
|
-
|
|
252
|
+
referenceSubstitutionValidates = referenceSubstitution.validate(generalContext, specificContext);
|
|
259
253
|
|
|
260
|
-
|
|
254
|
+
if (referenceSubstitutionValidates) {
|
|
255
|
+
referenceUnifies = true;
|
|
261
256
|
|
|
262
|
-
|
|
257
|
+
}
|
|
263
258
|
}
|
|
264
259
|
}
|
|
265
260
|
|
package/src/element/parameter.js
CHANGED
|
@@ -20,6 +20,13 @@ export default define(class Parameter extends Element {
|
|
|
20
20
|
return this.identifier;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
getParameterNode() {
|
|
24
|
+
const node = this.getNode(),
|
|
25
|
+
parameterNode = node; ///
|
|
26
|
+
|
|
27
|
+
return parameterNode;
|
|
28
|
+
}
|
|
29
|
+
|
|
23
30
|
findPrimitive(substitutions) {
|
|
24
31
|
let primitive = null;
|
|
25
32
|
|
|
@@ -24,7 +24,14 @@ export default define(class ProcedureCall extends Element {
|
|
|
24
24
|
return this.procedureReference;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
getProcedureCallNode() {
|
|
28
|
+
const node = this.getNode(),
|
|
29
|
+
procedureCallNode = node;
|
|
30
|
+
|
|
31
|
+
return procedureCallNode;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
getProcedureName() { return this.procedureReference.getProcedureName(); }
|
|
28
35
|
|
|
29
36
|
findPrimitives(context) {
|
|
30
37
|
const substitutions = context.getSubstitutions(),
|
|
@@ -44,8 +51,8 @@ export default define(class ProcedureCall extends Element {
|
|
|
44
51
|
|
|
45
52
|
context.trace(`Validating the '${procedureCallString}' procedure call...`);
|
|
46
53
|
|
|
47
|
-
const
|
|
48
|
-
procedure = context.
|
|
54
|
+
const procedureName = this.getProcedureName(),
|
|
55
|
+
procedure = context.findProcedureByProcedureName(procedureName);
|
|
49
56
|
|
|
50
57
|
if (procedure !== null) {
|
|
51
58
|
const procedureBoolean = procedure.isBoolean();
|
|
@@ -73,13 +80,13 @@ export default define(class ProcedureCall extends Element {
|
|
|
73
80
|
|
|
74
81
|
context.trace(`Unifying the '${procedureCallString}' procedure call independently...`);
|
|
75
82
|
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
terms = termsFromPrimitives(primitives),
|
|
79
|
-
procedure = context.findProcedureByName(name);
|
|
83
|
+
const procedureName = this.getProcedureName(),
|
|
84
|
+
procedure = context.findProcedureByProcedureName(procedureName);
|
|
80
85
|
|
|
81
|
-
try {
|
|
82
|
-
const
|
|
86
|
+
// try {
|
|
87
|
+
const primitives = this.findPrimitives(context),
|
|
88
|
+
terms = termsFromPrimitives(primitives),
|
|
89
|
+
term = await procedure.call(terms, context),
|
|
83
90
|
boolean = term.isBoolean();
|
|
84
91
|
|
|
85
92
|
if (!boolean) {
|
|
@@ -91,11 +98,11 @@ export default define(class ProcedureCall extends Element {
|
|
|
91
98
|
unifiesIndependently = true;
|
|
92
99
|
}
|
|
93
100
|
}
|
|
94
|
-
} catch (exception) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
101
|
+
// } catch (exception) {
|
|
102
|
+
// const message = exception.getMessage();
|
|
103
|
+
//
|
|
104
|
+
// context.info(message);
|
|
105
|
+
// }
|
|
99
106
|
|
|
100
107
|
if (unifiesIndependently) {
|
|
101
108
|
context.debug(`...unified the '${procedureCallString}' procedure call independently.`);
|
|
@@ -14,6 +14,19 @@ export default define(class ProcedureReference extends Element {
|
|
|
14
14
|
return this.name;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
getProcedureReferenceNode() {
|
|
18
|
+
const node = this.getNode(),
|
|
19
|
+
procedureReferenceNode = node; ///
|
|
20
|
+
|
|
21
|
+
return procedureReferenceNode;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
getProcedureName() {
|
|
25
|
+
const procedureName = this.name; ///
|
|
26
|
+
|
|
27
|
+
return procedureName;
|
|
28
|
+
}
|
|
29
|
+
|
|
17
30
|
toJSON() {
|
|
18
31
|
const name = this.name,
|
|
19
32
|
json = {
|
package/src/element/proof.js
CHANGED
|
@@ -16,6 +16,13 @@ export default define(class Proof extends Element {
|
|
|
16
16
|
return this.derivation;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
getProofNode() {
|
|
20
|
+
const node = this.getNode(),
|
|
21
|
+
proofNode = node; ///
|
|
22
|
+
|
|
23
|
+
return proofNode;
|
|
24
|
+
}
|
|
25
|
+
|
|
19
26
|
getLastProofAssertion() { return this.derivation.getLastProofAssertion(); }
|
|
20
27
|
|
|
21
28
|
getStatement() {
|
|
@@ -17,6 +17,13 @@ export default define(class Premise extends ProofAssertion {
|
|
|
17
17
|
return this.procedureCall;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
getPremiseNode() {
|
|
21
|
+
const node = this.getNode(),
|
|
22
|
+
premiseNode = node; ///
|
|
23
|
+
|
|
24
|
+
return premiseNode;
|
|
25
|
+
}
|
|
26
|
+
|
|
20
27
|
isStated() {
|
|
21
28
|
const stated = true; ///
|
|
22
29
|
|
|
@@ -27,6 +27,13 @@ export default define(class Step extends ProofAssertion {
|
|
|
27
27
|
return this.satisfiesAssertion;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
getStepNode() {
|
|
31
|
+
const node = this.getNode(),
|
|
32
|
+
stepNode = node; ///
|
|
33
|
+
|
|
34
|
+
return stepNode;
|
|
35
|
+
}
|
|
36
|
+
|
|
30
37
|
isSatisfied() {
|
|
31
38
|
const satisfied = (this.satisfiesAssertion !== null);
|
|
32
39
|
|
|
@@ -17,6 +17,13 @@ export default define(class Supposition extends ProofAssertion {
|
|
|
17
17
|
return this.procedureCall;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
getSuppositionNode() {
|
|
21
|
+
const node = this.getNode(),
|
|
22
|
+
suppositionNode = node; ///
|
|
23
|
+
|
|
24
|
+
return suppositionNode;
|
|
25
|
+
}
|
|
26
|
+
|
|
20
27
|
isStated() {
|
|
21
28
|
const stated = true; ///
|
|
22
29
|
|
|
@@ -15,6 +15,13 @@ export default class ProofAssertion extends Element {
|
|
|
15
15
|
return this.statement;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
getProofAssertionNode() {
|
|
19
|
+
const node = this.getNode(),
|
|
20
|
+
proofAssertionNode = node; ///
|
|
21
|
+
|
|
22
|
+
return proofAssertionNode;
|
|
23
|
+
}
|
|
24
|
+
|
|
18
25
|
isProofAssertion() {
|
|
19
26
|
const proofAssertion = true;
|
|
20
27
|
|
package/src/element/property.js
CHANGED
|
@@ -20,6 +20,13 @@ export default define(class Property extends Element {
|
|
|
20
20
|
return this.nominalTypeName;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
getPropertyNode() {
|
|
24
|
+
const node = this.getNode(),
|
|
25
|
+
properetyNode = node; ///
|
|
26
|
+
|
|
27
|
+
return properetyNode;
|
|
28
|
+
}
|
|
29
|
+
|
|
23
30
|
comparePropertyName(propertyName) {
|
|
24
31
|
const comparesToPropertyName = (this.name === propertyName);
|
|
25
32
|
|
|
@@ -20,6 +20,13 @@ export default define(class PropertyRelation extends Element {
|
|
|
20
20
|
return this.term;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
getPropertyRelationNode() {
|
|
24
|
+
const node = this.getNode(),
|
|
25
|
+
propertyRelationNode = node; ///
|
|
26
|
+
|
|
27
|
+
return propertyRelationNode;
|
|
28
|
+
}
|
|
29
|
+
|
|
23
30
|
verify(context) {
|
|
24
31
|
let verifies = false;
|
|
25
32
|
|
package/src/element/reference.js
CHANGED
|
@@ -20,6 +20,14 @@ export default define(class Reference extends Element {
|
|
|
20
20
|
return this.metavariable;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
getReferenceNode() {
|
|
24
|
+
const node = this.getNode(),
|
|
25
|
+
referenceNode = node; ///
|
|
26
|
+
|
|
27
|
+
return referenceNode;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
23
31
|
getName() { return this.metavariable.getName(); }
|
|
24
32
|
|
|
25
33
|
getMetavariableName() {
|
|
@@ -34,13 +42,6 @@ export default define(class Reference extends Element {
|
|
|
34
42
|
return metavariableNode;
|
|
35
43
|
}
|
|
36
44
|
|
|
37
|
-
getReferenceNode() {
|
|
38
|
-
const node = this.getNode(),
|
|
39
|
-
assertionNode = node; ///
|
|
40
|
-
|
|
41
|
-
return assertionNode;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
45
|
matchReferenceNode(assertionNode) {
|
|
45
46
|
const assertionNodeA = assertionNode; ///
|
|
46
47
|
|
package/src/element/rule.js
CHANGED
|
@@ -43,6 +43,13 @@ export default define(class Rule extends Element {
|
|
|
43
43
|
return this.conclusion;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
getRuleNode() {
|
|
47
|
+
const node = this.getNode(),
|
|
48
|
+
ruleNode = node; ///
|
|
49
|
+
|
|
50
|
+
return ruleNode;
|
|
51
|
+
}
|
|
52
|
+
|
|
46
53
|
compareMetavariableName(metavariableName) {
|
|
47
54
|
const comparesToMetavariableName = this.labels.some((label) => {
|
|
48
55
|
const labelComparesToMetavariableName = label.compareMetavariableName(metavariableName);
|
|
@@ -221,15 +228,7 @@ export default define(class Rule extends Element {
|
|
|
221
228
|
const subproofOrProofAssertionsUnifiesWithPremises = await this.unifySubproofOrProofAssertionsWithPremises(subproofOrProofAssertions, context);
|
|
222
229
|
|
|
223
230
|
if (subproofOrProofAssertionsUnifiesWithPremises) {
|
|
224
|
-
const
|
|
225
|
-
|
|
226
|
-
context = this.getContext();
|
|
227
|
-
|
|
228
|
-
const generalContext = context; ///
|
|
229
|
-
|
|
230
|
-
context = specificContext; ///
|
|
231
|
-
|
|
232
|
-
const substitutionsResolved = context.areSubstitutionsResolved(generalContext, specificContext);
|
|
231
|
+
const substitutionsResolved = context.areSubstitutionsResolved();
|
|
233
232
|
|
|
234
233
|
if (substitutionsResolved) {
|
|
235
234
|
statementAndSubproofOrProofAssertionsUnify = true;
|
package/src/element/section.js
CHANGED
|
@@ -35,6 +35,13 @@ export default define(class Section extends Element {
|
|
|
35
35
|
return this.conjecture;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
getSectionNode() {
|
|
39
|
+
const node = this.getNode(),
|
|
40
|
+
sectionNode = node; ///
|
|
41
|
+
|
|
42
|
+
return sectionNode;
|
|
43
|
+
}
|
|
44
|
+
|
|
38
45
|
verifyHypotheses() {
|
|
39
46
|
const hypothesesVerify = this.hypotheses.every((hypothesis) => {
|
|
40
47
|
const hypothesisVerifies = hypothesis.verify(this.context);
|
package/src/element/signature.js
CHANGED
package/src/element/statement.js
CHANGED
|
@@ -11,30 +11,25 @@ import { STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
|
|
|
11
11
|
const { match, backwardsSome } = arrayUtilities;
|
|
12
12
|
|
|
13
13
|
export default define(class Statement extends Element {
|
|
14
|
-
|
|
15
|
-
super(context, string, node);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
isSingular() {
|
|
14
|
+
getStatementNode() {
|
|
19
15
|
const node = this.getNode(),
|
|
20
|
-
statementNode = node
|
|
21
|
-
singular = statementNode.isSingular();
|
|
16
|
+
statementNode = node; ///
|
|
22
17
|
|
|
23
|
-
return
|
|
18
|
+
return statementNode;
|
|
24
19
|
}
|
|
25
20
|
|
|
26
21
|
getMetavariableName() {
|
|
27
|
-
const
|
|
28
|
-
metavariableName =
|
|
22
|
+
const sttaementNode = this.getStatementNode(),
|
|
23
|
+
metavariableName = sttaementNode.getMetavariableName();
|
|
29
24
|
|
|
30
25
|
return metavariableName;
|
|
31
26
|
}
|
|
32
27
|
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
28
|
+
isSingular() {
|
|
29
|
+
const statementNode = this.getStatementNode(),
|
|
30
|
+
singular = statementNode.isSingular();
|
|
36
31
|
|
|
37
|
-
return
|
|
32
|
+
return singular;
|
|
38
33
|
}
|
|
39
34
|
|
|
40
35
|
matchStatementNode(statementNode) {
|
|
@@ -20,6 +20,13 @@ export default define(class SubDerivation extends Element {
|
|
|
20
20
|
return this.subproofOrProofAssertions;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
getSubDerivationNode() {
|
|
24
|
+
const node = this.getNode(),
|
|
25
|
+
subDerivationNode = node; ///
|
|
26
|
+
|
|
27
|
+
return subDerivationNode;
|
|
28
|
+
}
|
|
29
|
+
|
|
23
30
|
getLastProofAssertion() {
|
|
24
31
|
const lastSubproofOrProofAssertion = last(this.subproofOrProofAssertions),
|
|
25
32
|
lastProofAssertion = lastSubproofOrProofAssertion; ///
|
package/src/element/subproof.js
CHANGED
|
@@ -21,6 +21,13 @@ export default define(class Subproof extends Element {
|
|
|
21
21
|
return this.subDerivation;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
getSubproofNode() {
|
|
25
|
+
const node = this.getNode(),
|
|
26
|
+
subproofNode = node; ///
|
|
27
|
+
|
|
28
|
+
return subproofNode;
|
|
29
|
+
}
|
|
30
|
+
|
|
24
31
|
getLastProofAssertion() { return this.subDerivation.getLastProofAssertion(); }
|
|
25
32
|
|
|
26
33
|
getStatements() {
|
|
@@ -24,6 +24,13 @@ export default define(class FrameSubstitution extends Substitution {
|
|
|
24
24
|
return this.replacementFrame;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
getFrameSubstitutionNode() {
|
|
28
|
+
const node = this.getNode(),
|
|
29
|
+
frameSubstitutionNode = node; ///
|
|
30
|
+
|
|
31
|
+
return frameSubstitutionNode;
|
|
32
|
+
}
|
|
33
|
+
|
|
27
34
|
getTargetNode() {
|
|
28
35
|
const targetFrameNode = this.targetFrame.getNode(),
|
|
29
36
|
tergetNode = targetFrameNode; ///
|
|
@@ -92,9 +99,9 @@ export default define(class FrameSubstitution extends Substitution {
|
|
|
92
99
|
}
|
|
93
100
|
|
|
94
101
|
if (validates) {
|
|
95
|
-
const
|
|
102
|
+
const substitution = this; ///
|
|
96
103
|
|
|
97
|
-
context.addSubstitution(
|
|
104
|
+
context.addSubstitution(substitution);
|
|
98
105
|
|
|
99
106
|
context.debug(`...validated the '${frameSubstitutionString}' frame substitution.`);
|
|
100
107
|
}
|
|
@@ -145,7 +152,7 @@ export default define(class FrameSubstitution extends Substitution {
|
|
|
145
152
|
replacementFrameValidates = this.replacementFrame.validate(assignments, stated, context);
|
|
146
153
|
|
|
147
154
|
if (replacementFrameValidates) {
|
|
148
|
-
context.debug(`...validated the '${frameSubstitutionString}' frame subtitution's '${replacementFrameString}' replacement frame
|
|
155
|
+
context.debug(`...validated the '${frameSubstitutionString}' frame subtitution's '${replacementFrameString}' replacement frame.`);
|
|
149
156
|
}
|
|
150
157
|
|
|
151
158
|
return replacementFrameValidates;
|
|
@@ -24,6 +24,13 @@ export default define(class ReferenceSubstitution extends Substitution {
|
|
|
24
24
|
return this.replacementReference;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
getReferenceSubstitutionNode() {
|
|
28
|
+
const node = this.getNode(),
|
|
29
|
+
referenceSubstitution = node; ///
|
|
30
|
+
|
|
31
|
+
return referenceSubstitution;
|
|
32
|
+
}
|
|
33
|
+
|
|
27
34
|
getTargetNode() {
|
|
28
35
|
const targetReferenceNode = this.targetReference.getNode(),
|
|
29
36
|
tergetNode = targetReferenceNode; ///
|
|
@@ -92,9 +99,9 @@ export default define(class ReferenceSubstitution extends Substitution {
|
|
|
92
99
|
}
|
|
93
100
|
|
|
94
101
|
if (validates) {
|
|
95
|
-
const
|
|
102
|
+
const subsitution = this; ///
|
|
96
103
|
|
|
97
|
-
context.addSubstitution(
|
|
104
|
+
context.addSubstitution(subsitution);
|
|
98
105
|
|
|
99
106
|
context.debug(`...validated the '${referenceSubstitutionString}' reference substitution.`);
|
|
100
107
|
}
|
|
@@ -139,7 +146,7 @@ export default define(class ReferenceSubstitution extends Substitution {
|
|
|
139
146
|
replacementReferenceValidates = this.replacementReference.validate(context);
|
|
140
147
|
|
|
141
148
|
if (replacementReferenceValidates) {
|
|
142
|
-
context.debug(`...validated the '${referenceSubstitutionString}' reference subtitution's '${replacementReferenceString}' replacement reference
|
|
149
|
+
context.debug(`...validated the '${referenceSubstitutionString}' reference subtitution's '${replacementReferenceString}' replacement reference.`);
|
|
143
150
|
}
|
|
144
151
|
|
|
145
152
|
return replacementReferenceValidates;
|