occam-verify-cli 1.0.612 → 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 +19 -34
- package/lib/context/scoped.js +34 -26
- package/lib/context.js +7 -7
- package/lib/element/assertion.js +5 -9
- package/lib/element/assumption.js +11 -4
- package/lib/element/combinator.js +8 -1
- package/lib/element/conclusion.js +8 -1
- package/lib/element/constructor.js +8 -1
- 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 +5 -8
- 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.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 +3 -3
- package/lib/element/substitution/reference.js +3 -3
- package/lib/element/substitution/statement.js +3 -3
- package/lib/element/substitution/term.js +3 -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/substitutions.js +2 -2
- 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 +21 -46
- package/src/context/scoped.js +47 -31
- package/src/context.js +4 -4
- package/src/element/assertion.js +4 -8
- package/src/element/assumption.js +9 -2
- package/src/element/combinator.js +7 -0
- package/src/element/conclusion.js +7 -0
- package/src/element/constructor.js +7 -0
- 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 +4 -11
- 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.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 +2 -2
- package/src/element/substitution/reference.js +2 -2
- package/src/element/substitution/statement.js +2 -2
- package/src/element/substitution/term.js +2 -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/substitutions.js +1 -1
- package/lib/element/substitutions.js +0 -225
- package/src/element/substitutions.js +0 -84
package/src/context/scoped.js
CHANGED
|
@@ -109,77 +109,93 @@ class ScopedContext extends Context {
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
addEquality(equality) {
|
|
112
|
-
let equalityAdded;
|
|
112
|
+
let equalityAdded = false;
|
|
113
113
|
|
|
114
|
-
const
|
|
114
|
+
const context = this, ///
|
|
115
|
+
equalityString = equality.getString();
|
|
116
|
+
|
|
117
|
+
context.trace(`Adding the '${equalityString}' equality to the scoped context...`);
|
|
118
|
+
|
|
119
|
+
const equalityRelfexive = equality.isReflexive();
|
|
115
120
|
|
|
116
|
-
if (
|
|
121
|
+
if (equalityRelfexive) {
|
|
122
|
+
context.trace(`The '${equalityString}' equality is reflexive and will not added to the scoped context.`);
|
|
123
|
+
} else {
|
|
117
124
|
const { Equivalence } = elements,
|
|
118
125
|
equivalence = Equivalence.fromEquality(equality),
|
|
119
126
|
context = this; ///
|
|
120
127
|
|
|
121
128
|
this.equivalences = this.equivalences.mergedWithEquivalence(equivalence, context);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
equalityAdded = true;
|
|
125
129
|
|
|
126
|
-
|
|
127
|
-
const context = this, ///
|
|
128
|
-
equalityString = equality.getString();
|
|
130
|
+
equalityAdded = true;
|
|
129
131
|
|
|
130
|
-
context.
|
|
132
|
+
context.debug(`...added the '${equalityString}' equality to the scoped context.`);
|
|
131
133
|
}
|
|
132
134
|
|
|
133
135
|
return equalityAdded;
|
|
134
136
|
}
|
|
135
137
|
|
|
136
|
-
addVariable(variable
|
|
137
|
-
|
|
138
|
+
addVariable(variable) {
|
|
139
|
+
const context = this, ///
|
|
140
|
+
variableA = variable, ///
|
|
141
|
+
variableString = variable.getString();
|
|
138
142
|
|
|
139
|
-
|
|
140
|
-
variablePresent = this.isVariablePresentByVariableIdentifier(variableIdentifier, nested);
|
|
143
|
+
context.trace(`Adding the '${variableString}' variable to the scoped context...`);
|
|
141
144
|
|
|
142
|
-
|
|
143
|
-
|
|
145
|
+
const variableB = this.variables.find((variable) => {
|
|
146
|
+
const variableB = variable, ///
|
|
147
|
+
variableAComparesToVariableB = variableA.compare(variableB);
|
|
144
148
|
|
|
145
|
-
|
|
146
|
-
|
|
149
|
+
if (variableAComparesToVariableB) {
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
}) || null;
|
|
147
153
|
|
|
148
|
-
if (
|
|
149
|
-
|
|
150
|
-
|
|
154
|
+
if (variableB !== null) {
|
|
155
|
+
context.trace(`The '${variableString}' variable has already been added to the scoped context.`);
|
|
156
|
+
} else {
|
|
157
|
+
this.variables.push(variable);
|
|
151
158
|
|
|
152
|
-
context.
|
|
159
|
+
context.debug(`...added the '${variableString}' variable to the scoped context.`);
|
|
153
160
|
}
|
|
154
|
-
|
|
155
|
-
return variableAdded;
|
|
156
161
|
}
|
|
157
162
|
|
|
158
163
|
addJudgement(judgement) {
|
|
159
164
|
let judgementAdded = false;
|
|
160
165
|
|
|
166
|
+
const context = this, ///
|
|
167
|
+
judgementString = judgement.getString();
|
|
168
|
+
|
|
169
|
+
context.trace(`Adding the '${judgementString}' judgement to the scoped context...`);
|
|
170
|
+
|
|
161
171
|
const metavariable = judgement.getMetavariable(),
|
|
162
172
|
metavariableName = metavariable.getMetavariableName(),
|
|
163
173
|
judgementPresent = this.isJudgementPresentByMetavariableName(metavariableName);
|
|
164
174
|
|
|
165
|
-
if (
|
|
175
|
+
if (judgementPresent) {
|
|
176
|
+
const metavariableString = metavariable.getString();
|
|
177
|
+
|
|
178
|
+
context.trace(`A '${judgementString}' judgement for the '${metavariableString}' metavariable is already present.`);
|
|
179
|
+
} else {
|
|
166
180
|
this.judgements.push(judgement);
|
|
167
181
|
|
|
168
182
|
judgementAdded = true;
|
|
169
|
-
}
|
|
170
183
|
|
|
171
|
-
|
|
172
|
-
const context = this, ///
|
|
173
|
-
judgementString = judgement.getString();
|
|
174
|
-
|
|
175
|
-
context.trace(`Added the '${judgementString}' judgement.`)
|
|
184
|
+
context.debug(`...added the '${judgementString}' judgement to the scoped context.`);
|
|
176
185
|
}
|
|
177
186
|
|
|
178
187
|
return judgementAdded;
|
|
179
188
|
}
|
|
180
189
|
|
|
181
190
|
addSubproofOrProofAssertion(subproofOrProofAssertion) {
|
|
191
|
+
const context = this, ///
|
|
192
|
+
subproofOrProofAssertionString = subproofOrProofAssertion.getString();
|
|
193
|
+
|
|
194
|
+
context.trace(`Adding the '${subproofOrProofAssertionString}' subproof or proof assertion to the scoped context...`);
|
|
195
|
+
|
|
182
196
|
this.subproofOrProofAssertions.push(subproofOrProofAssertion);
|
|
197
|
+
|
|
198
|
+
context.debug(`...added the '${subproofOrProofAssertionString}' subproof or proof assertion to the scoped context.`);
|
|
183
199
|
}
|
|
184
200
|
|
|
185
201
|
findEquivalenceByTerm(term) { return this.equivalences.findEquivalenceByTerm(term); }
|
package/src/context.js
CHANGED
|
@@ -102,9 +102,9 @@ export default class Context extends ContextBase {
|
|
|
102
102
|
return metavariable;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
findProcedureByProcedureName(procedureName) {
|
|
106
106
|
const context = this.getContext(),
|
|
107
|
-
procedure = context.
|
|
107
|
+
procedure = context.findProcedureByProcedureName(procedureName);
|
|
108
108
|
|
|
109
109
|
return procedure;
|
|
110
110
|
}
|
|
@@ -201,9 +201,9 @@ export default class Context extends ContextBase {
|
|
|
201
201
|
return termPresent;
|
|
202
202
|
}
|
|
203
203
|
|
|
204
|
-
|
|
204
|
+
isProcedurePresentByProcedureName(procedureName) {
|
|
205
205
|
const context = this.getContext(),
|
|
206
|
-
procedurePresent = context.
|
|
206
|
+
procedurePresent = context.isProcedurePresentByProcedureName(procedureName);
|
|
207
207
|
|
|
208
208
|
return procedurePresent;
|
|
209
209
|
}
|
package/src/element/assertion.js
CHANGED
|
@@ -3,10 +3,6 @@
|
|
|
3
3
|
import { Element } from "occam-languages";
|
|
4
4
|
|
|
5
5
|
export default class Assertion extends Element {
|
|
6
|
-
constructor(context, string, node) {
|
|
7
|
-
super(context, string, node);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
6
|
getAssertionNode() {
|
|
11
7
|
const node = this.getNode(),
|
|
12
8
|
assertionNode = node; ///
|
|
@@ -21,9 +17,9 @@ export default class Assertion extends Element {
|
|
|
21
17
|
|
|
22
18
|
const assertionNodeB = assertionNode, ///
|
|
23
19
|
assertionNodeAAMatchesAssertionBNodeB = assertionNodeA.match(assertionNodeB),
|
|
24
|
-
|
|
20
|
+
assertionNodeMatches = assertionNodeAAMatchesAssertionBNodeB; ///
|
|
25
21
|
|
|
26
|
-
return
|
|
22
|
+
return assertionNodeMatches;
|
|
27
23
|
}
|
|
28
24
|
|
|
29
25
|
isValid(context) {
|
|
@@ -36,8 +32,8 @@ export default class Assertion extends Element {
|
|
|
36
32
|
|
|
37
33
|
isEqualTo(assertion) {
|
|
38
34
|
const assertionNode = assertion.getNode(),
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
assertionNodeMatches = this.matchAssertionNode(assertionNode),
|
|
36
|
+
equalTo = assertionNodeMatches; ///
|
|
41
37
|
|
|
42
38
|
return equalTo;
|
|
43
39
|
}
|
|
@@ -14,12 +14,19 @@ export default define(class Assumption extends Element {
|
|
|
14
14
|
this.reference = reference;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
getReference() {
|
|
18
|
+
return this.reference;
|
|
19
|
+
}
|
|
20
|
+
|
|
17
21
|
getStatement() {
|
|
18
22
|
return this.statement;
|
|
19
23
|
}
|
|
20
24
|
|
|
21
|
-
|
|
22
|
-
|
|
25
|
+
getAssumptionNode() {
|
|
26
|
+
const node = this.getNode(),
|
|
27
|
+
assumptionNode = node; ///
|
|
28
|
+
|
|
29
|
+
return assumptionNode;
|
|
23
30
|
}
|
|
24
31
|
|
|
25
32
|
getMetavariable() { return this.reference.getMetavariable(); }
|
|
@@ -17,6 +17,13 @@ export default define(class Conclusion extends Element {
|
|
|
17
17
|
return this.statement;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
getConclusionNode() {
|
|
21
|
+
const node = this.getNode(),
|
|
22
|
+
conclusionNode = node; ///
|
|
23
|
+
|
|
24
|
+
return conclusionNode;
|
|
25
|
+
}
|
|
26
|
+
|
|
20
27
|
verify(context) {
|
|
21
28
|
let verifies = false;
|
|
22
29
|
|
|
@@ -17,6 +17,13 @@ export default define(class Constructor extends Element {
|
|
|
17
17
|
return this.term;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
getConclusionNode() {
|
|
21
|
+
const node = this.getNode(),
|
|
22
|
+
constructorNode = node; ///
|
|
23
|
+
|
|
24
|
+
return constructorNode;
|
|
25
|
+
}
|
|
26
|
+
|
|
20
27
|
isProvisional() { return this.term.isProvisional(); }
|
|
21
28
|
|
|
22
29
|
getType() { return this.term.getType(); }
|
package/src/element/deduction.js
CHANGED
|
@@ -17,6 +17,13 @@ export default define(class Deduction extends Element {
|
|
|
17
17
|
return this.statement;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
getDeductionNode() {
|
|
21
|
+
const node = this.getNode(),
|
|
22
|
+
deductionNode = node; ///
|
|
23
|
+
|
|
24
|
+
return deductionNode;
|
|
25
|
+
}
|
|
26
|
+
|
|
20
27
|
verify(context) {
|
|
21
28
|
let verifies = false;
|
|
22
29
|
|
|
@@ -21,6 +21,13 @@ export default define(class Derivation extends Element {
|
|
|
21
21
|
return this.subproofOrProofAssertions;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
getDerivationNode() {
|
|
25
|
+
const node = this.getNode(),
|
|
26
|
+
derivationNode = node; ///
|
|
27
|
+
|
|
28
|
+
return derivationNode;
|
|
29
|
+
}
|
|
30
|
+
|
|
24
31
|
getLastProofAssertion() {
|
|
25
32
|
const lastSubproofOrProofAssertion = last(this.subproofOrProofAssertions),
|
|
26
33
|
lastProofAssertion = lastSubproofOrProofAssertion; ///
|
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
|
|
|
@@ -148,10 +148,6 @@ export default define(class Metavariable extends Element {
|
|
|
148
148
|
framesubstitutionValidates = frameSubstitution.validate(generalContext, specificContext);
|
|
149
149
|
|
|
150
150
|
if (framesubstitutionValidates) {
|
|
151
|
-
const substitution = frameSubstitution; ///
|
|
152
|
-
|
|
153
|
-
context.addSubstitution(substitution);
|
|
154
|
-
|
|
155
151
|
frameUnifies = true;
|
|
156
152
|
}
|
|
157
153
|
}
|
|
@@ -212,10 +208,6 @@ export default define(class Metavariable extends Element {
|
|
|
212
208
|
const statementSubstitutionValidates = statementSubstitution.validate(generalContext, specificContext);
|
|
213
209
|
|
|
214
210
|
if (statementSubstitutionValidates) {
|
|
215
|
-
const substitution = statementSubstitution; ///
|
|
216
|
-
|
|
217
|
-
context.addSubstitution(substitution);
|
|
218
|
-
|
|
219
211
|
statementUnifies = true;
|
|
220
212
|
}
|
|
221
213
|
}
|
|
@@ -257,11 +249,12 @@ export default define(class Metavariable extends Element {
|
|
|
257
249
|
const { ReferenceSubstitution } = elements,
|
|
258
250
|
metavariable = this, ///
|
|
259
251
|
referenceSubstitution = ReferenceSubstitution.fromReferenceAndMetavariable(reference, metavariable, context),
|
|
260
|
-
|
|
252
|
+
referenceSubstitutionValidates = referenceSubstitution.validate(generalContext, specificContext);
|
|
261
253
|
|
|
262
|
-
|
|
254
|
+
if (referenceSubstitutionValidates) {
|
|
255
|
+
referenceUnifies = true;
|
|
263
256
|
|
|
264
|
-
|
|
257
|
+
}
|
|
265
258
|
}
|
|
266
259
|
}
|
|
267
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() {
|
|
@@ -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
|
|