occam-verify-cli 1.0.421 → 1.0.428
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/action/verify.js +7 -3
- package/lib/context/file.js +8 -44
- package/lib/context/local.js +8 -26
- package/lib/context/nominal.js +64 -0
- package/lib/context/release.js +2 -2
- package/lib/context/temporary.js +6 -58
- package/lib/element/assertion/contained.js +303 -0
- package/lib/element/assertion/defined.js +318 -0
- package/lib/element/assertion/property.js +299 -0
- package/lib/element/assertion/satisfies.js +264 -0
- package/lib/element/assertion/subproof.js +178 -0
- package/lib/element/assertion/type.js +294 -0
- package/lib/{ontology → element}/assertion.js +9 -9
- package/lib/element/assumption.js +365 -0
- package/lib/element/axiom.js +332 -0
- package/lib/element/axiomLemmaTheoremConjecture.js +346 -0
- package/lib/element/conclusion.js +151 -0
- package/lib/{ontology → element}/conjecture.js +7 -14
- package/lib/element/declaration/combinator.js +161 -0
- package/lib/element/declaration/complexType.js +343 -0
- package/lib/element/declaration/constructor.js +193 -0
- package/lib/element/declaration/metavariable.js +193 -0
- package/lib/element/declaration/simpleType.js +240 -0
- package/lib/element/declaration/typePrefix.js +179 -0
- package/lib/element/declaration/variable.js +196 -0
- package/lib/{ontology → element}/declaration.js +9 -9
- package/lib/element/deduction.js +207 -0
- package/lib/element/derivation.js +96 -0
- package/lib/element/equality.js +275 -0
- package/lib/element/equivalence.js +312 -0
- package/lib/element/equivalences.js +264 -0
- package/lib/{ontology → element}/error.js +12 -12
- package/lib/element/frame.js +387 -0
- package/lib/element/hypothesis.js +195 -0
- package/lib/element/judgement.js +243 -0
- package/lib/element/label.js +198 -0
- package/lib/{ontology → element}/lemma.js +7 -7
- package/lib/{ontology → element}/metaLemma.js +8 -8
- package/lib/element/metaLemmaMetatheorem.js +234 -0
- package/lib/{ontology → element}/metaType.js +18 -11
- package/lib/{ontology → element}/metatheorem.js +8 -8
- package/lib/element/metavariable.js +459 -0
- package/lib/element/parameter.js +108 -0
- package/lib/element/premise.js +310 -0
- package/lib/element/procedureCall.js +243 -0
- package/lib/{ontology → element}/procedureReference.js +3 -3
- package/lib/{ontology → element}/proof.js +4 -4
- package/lib/element/property.js +128 -0
- package/lib/element/propertyRelation.js +195 -0
- package/lib/element/reference.js +304 -0
- package/lib/element/rule.js +373 -0
- package/lib/element/section.js +255 -0
- package/lib/element/signature.js +217 -0
- package/lib/element/statement/combinator/bracketed.js +166 -0
- package/lib/element/statement/combinator.js +105 -0
- package/lib/element/statement.js +386 -0
- package/lib/element/step.js +274 -0
- package/lib/element/subDerivation.js +137 -0
- package/lib/element/subproof.js +240 -0
- package/lib/element/substitution/frame.js +216 -0
- package/lib/{ontology → element}/substitution/reference.js +5 -4
- package/lib/{ontology → element}/substitution/statement.js +7 -6
- package/lib/element/substitution/term.js +265 -0
- package/lib/element/substitution.js +206 -0
- package/lib/element/substitutions.js +425 -0
- package/lib/element/supposition.js +323 -0
- package/lib/{ontology → element/term}/constructor/bracketed.js +11 -7
- package/lib/element/term/constructor.js +172 -0
- package/lib/element/term.js +322 -0
- package/lib/{ontology → element}/theorem.js +8 -8
- package/lib/element/type.js +490 -0
- package/lib/element/typePrefix.js +99 -0
- package/lib/element/variable.js +345 -0
- package/lib/elements.js +27 -0
- package/lib/mixins/statement/verify.js +14 -14
- package/lib/mixins/step/unify.js +12 -12
- package/lib/mixins/term/verify.js +4 -4
- package/lib/node/equivalence.js +116 -0
- package/lib/node/substitution/frame.js +15 -1
- package/lib/node/substitution/statement.js +37 -1
- package/lib/node/substitution/term.js +15 -1
- package/lib/nonTerminalNodeMap.js +4 -3
- package/lib/preamble.js +63 -63
- package/lib/process/assign.js +58 -0
- package/lib/process/instantiate.js +74 -7
- package/lib/process/unify.js +26 -26
- package/lib/process/verify.js +21 -21
- package/lib/ruleNames.js +5 -1
- package/lib/utilities/brackets.js +9 -18
- package/lib/utilities/customGrammar.js +1 -1
- package/lib/utilities/element.js +1141 -0
- package/lib/utilities/json.js +32 -32
- package/lib/utilities/node.js +49 -61
- package/lib/utilities/statement.js +83 -0
- package/lib/utilities/string.js +80 -57
- package/package.json +6 -6
- package/src/action/verify.js +8 -1
- package/src/context/file.js +9 -39
- package/src/context/local.js +5 -11
- package/src/context/nominal.js +30 -0
- package/src/context/release.js +1 -1
- package/src/context/temporary.js +6 -63
- package/src/{ontology → element}/assertion/contained.js +4 -25
- package/src/{ontology → element}/assertion/defined.js +7 -26
- package/src/{ontology → element}/assertion/property.js +7 -26
- package/src/{ontology → element}/assertion/satisfies.js +5 -53
- package/src/{ontology → element}/assertion/subproof.js +3 -32
- package/src/{ontology → element}/assertion/type.js +7 -26
- package/src/{ontology → element}/assertion.js +6 -6
- package/src/{ontology → element}/assumption.js +3 -27
- package/src/{ontology → element}/axiom.js +4 -11
- package/src/{ontology/topLevelAssertion.js → element/axiomLemmaTheoremConjecture.js} +9 -105
- package/src/{ontology → element}/conclusion.js +4 -19
- package/src/{ontology → element}/conjecture.js +4 -11
- package/src/{ontology → element}/declaration/combinator.js +3 -14
- package/src/{ontology → element}/declaration/complexType.js +3 -19
- package/src/{ontology → element}/declaration/constructor.js +3 -14
- package/src/{ontology → element}/declaration/metavariable.js +3 -39
- package/src/{ontology → element}/declaration/simpleType.js +3 -19
- package/src/{ontology → element}/declaration/typePrefix.js +3 -15
- package/src/{ontology → element}/declaration/variable.js +3 -14
- package/src/{ontology → element}/declaration.js +6 -6
- package/src/{ontology → element}/deduction.js +9 -22
- package/src/{ontology → element}/derivation.js +2 -32
- package/src/{ontology → element}/equality.js +18 -42
- package/src/{ontology → element}/equivalence.js +37 -22
- package/src/{ontology → element}/equivalences.js +1 -2
- package/src/{ontology → element}/error.js +8 -8
- package/src/{ontology → element}/frame.js +8 -56
- package/src/{ontology → element}/hypothesis.js +5 -5
- package/src/{ontology → element}/judgement.js +7 -7
- package/src/{ontology → element}/label.js +3 -3
- package/src/{ontology → element}/lemma.js +4 -4
- package/src/{ontology → element}/metaLemma.js +5 -5
- package/src/{ontology/topLevelMetaAssertion.js → element/metaLemmaMetatheorem.js} +11 -11
- package/src/{ontology → element}/metaType.js +11 -7
- package/src/{ontology → element}/metatheorem.js +5 -5
- package/src/{ontology → element}/metavariable.js +10 -60
- package/src/{ontology → element}/parameter.js +1 -1
- package/src/{ontology → element}/premise.js +14 -14
- package/src/{ontology → element}/procedureCall.js +4 -4
- package/src/{ontology → element}/procedureReference.js +1 -1
- package/src/{ontology → element}/proof.js +3 -3
- package/src/{ontology → element}/property.js +7 -15
- package/src/{ontology → element}/propertyRelation.js +5 -11
- package/src/{ontology → element}/reference.js +5 -19
- package/src/{ontology → element}/rule.js +13 -13
- package/src/{ontology → element}/section.js +10 -10
- package/src/{ontology → element}/signature.js +12 -15
- package/src/element/statement/combinator/bracketed.js +38 -0
- package/src/element/statement/combinator.js +59 -0
- package/src/{ontology → element}/statement.js +11 -27
- package/src/{ontology → element}/step.js +10 -44
- package/src/{ontology → element}/subDerivation.js +3 -24
- package/src/{ontology → element}/subproof.js +3 -43
- package/src/{ontology → element}/substitution/frame.js +4 -21
- package/src/{ontology → element}/substitution/reference.js +3 -3
- package/src/{ontology → element}/substitution/statement.js +6 -10
- package/src/{ontology → element}/substitution/term.js +7 -23
- package/src/{ontology → element}/substitutions.js +1 -1
- package/src/{ontology → element}/supposition.js +10 -10
- package/src/{ontology → element/term}/constructor/bracketed.js +12 -13
- package/src/element/term/constructor.js +82 -0
- package/src/{ontology → element}/term.js +6 -38
- package/src/{ontology → element}/theorem.js +5 -5
- package/src/{ontology → element}/type.js +17 -64
- package/src/{ontology → element}/typePrefix.js +8 -12
- package/src/{ontology → element}/variable.js +9 -20
- package/src/elements.js +13 -0
- package/src/mixins/statement/verify.js +4 -4
- package/src/mixins/step/unify.js +6 -6
- package/src/mixins/term/verify.js +3 -3
- package/src/node/equivalence.js +16 -0
- package/src/node/substitution/frame.js +14 -0
- package/src/node/substitution/statement.js +40 -0
- package/src/node/substitution/term.js +15 -0
- package/src/nonTerminalNodeMap.js +4 -1
- package/src/preamble.js +62 -62
- package/src/process/assign.js +59 -0
- package/src/process/instantiate.js +71 -15
- package/src/process/unify.js +37 -39
- package/src/process/verify.js +20 -20
- package/src/ruleNames.js +1 -0
- package/src/utilities/brackets.js +12 -17
- package/src/utilities/customGrammar.js +3 -3
- package/src/utilities/element.js +1399 -0
- package/src/utilities/json.js +31 -31
- package/src/utilities/node.js +56 -64
- package/src/utilities/{context.js → statement.js} +10 -39
- package/src/utilities/string.js +83 -53
- package/lib/assignment/equality.js +0 -62
- package/lib/assignment/judgement.js +0 -62
- package/lib/assignment/variable.js +0 -64
- package/lib/context/bracketed/combinator.js +0 -121
- package/lib/context/bracketed/constructor.js +0 -121
- package/lib/context/bracketted.js +0 -86
- package/lib/context/partial/metavariable.js +0 -180
- package/lib/context/partial/statement.js +0 -180
- package/lib/context/partial/term.js +0 -192
- package/lib/context/partial/variable.js +0 -192
- package/lib/context/partial.js +0 -93
- package/lib/ontology/assertion/contained.js +0 -357
- package/lib/ontology/assertion/defined.js +0 -331
- package/lib/ontology/assertion/property.js +0 -313
- package/lib/ontology/assertion/satisfies.js +0 -302
- package/lib/ontology/assertion/subproof.js +0 -240
- package/lib/ontology/assertion/type.js +0 -308
- package/lib/ontology/assumption.js +0 -383
- package/lib/ontology/axiom.js +0 -339
- package/lib/ontology/combinator/bracketed.js +0 -202
- package/lib/ontology/combinator.js +0 -155
- package/lib/ontology/conclusion.js +0 -201
- package/lib/ontology/constructor.js +0 -185
- package/lib/ontology/declaration/combinator.js +0 -210
- package/lib/ontology/declaration/complexType.js +0 -393
- package/lib/ontology/declaration/constructor.js +0 -242
- package/lib/ontology/declaration/metavariable.js +0 -257
- package/lib/ontology/declaration/simpleType.js +0 -290
- package/lib/ontology/declaration/typePrefix.js +0 -228
- package/lib/ontology/declaration/variable.js +0 -245
- package/lib/ontology/deduction.js +0 -215
- package/lib/ontology/derivation.js +0 -155
- package/lib/ontology/equality.js +0 -288
- package/lib/ontology/equivalence.js +0 -295
- package/lib/ontology/equivalences.js +0 -264
- package/lib/ontology/frame.js +0 -419
- package/lib/ontology/hypothesis.js +0 -190
- package/lib/ontology/judgement.js +0 -248
- package/lib/ontology/label.js +0 -198
- package/lib/ontology/metavariable.js +0 -502
- package/lib/ontology/parameter.js +0 -108
- package/lib/ontology/premise.js +0 -310
- package/lib/ontology/procedureCall.js +0 -243
- package/lib/ontology/property.js +0 -166
- package/lib/ontology/propertyRelation.js +0 -202
- package/lib/ontology/reference.js +0 -315
- package/lib/ontology/rule.js +0 -373
- package/lib/ontology/section.js +0 -255
- package/lib/ontology/signature.js +0 -217
- package/lib/ontology/statement.js +0 -398
- package/lib/ontology/step.js +0 -295
- package/lib/ontology/subDerivation.js +0 -147
- package/lib/ontology/subproof.js +0 -265
- package/lib/ontology/substitution/frame.js +0 -261
- package/lib/ontology/substitution/term.js +0 -269
- package/lib/ontology/substitution.js +0 -206
- package/lib/ontology/substitutions.js +0 -425
- package/lib/ontology/supposition.js +0 -323
- package/lib/ontology/term.js +0 -351
- package/lib/ontology/topLevelAssertion.js +0 -431
- package/lib/ontology/topLevelMetaAssertion.js +0 -234
- package/lib/ontology/type.js +0 -556
- package/lib/ontology/typePrefix.js +0 -99
- package/lib/ontology/variable.js +0 -343
- package/lib/ontology.js +0 -27
- package/lib/utilities/assignments.js +0 -19
- package/lib/utilities/context.js +0 -101
- package/lib/utilities/subproof.js +0 -42
- package/lib/utilities/type.js +0 -40
- package/src/assignment/equality.js +0 -29
- package/src/assignment/judgement.js +0 -29
- package/src/assignment/variable.js +0 -34
- package/src/context/bracketed/combinator.js +0 -31
- package/src/context/bracketed/constructor.js +0 -31
- package/src/context/bracketted.js +0 -41
- package/src/context/partial/metavariable.js +0 -39
- package/src/context/partial/statement.js +0 -39
- package/src/context/partial/term.js +0 -49
- package/src/context/partial/variable.js +0 -49
- package/src/context/partial.js +0 -71
- package/src/ontology/combinator/bracketed.js +0 -38
- package/src/ontology/combinator.js +0 -72
- package/src/ontology/constructor.js +0 -105
- package/src/ontology.js +0 -13
- package/src/utilities/assignments.js +0 -11
- package/src/utilities/subproof.js +0 -56
- package/src/utilities/type.js +0 -35
- /package/src/{ontology → element}/substitution.js +0 -0
|
@@ -1,23 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import EqualityAssignment from "../assignment/equality";
|
|
5
|
-
import VariableAssignment from "../assignment/variable";
|
|
3
|
+
import elements from "../elements";
|
|
6
4
|
|
|
7
|
-
import { define } from "../
|
|
5
|
+
import { define } from "../elements";
|
|
8
6
|
import { equateTerms } from "../process/equate";
|
|
7
|
+
import { equalityAssignmentFromEquality, variableAssignmentFromVariable } from "../process/assign";
|
|
9
8
|
|
|
10
9
|
export default define(class Equality {
|
|
11
|
-
constructor(string, leftTerm, rightTerm) {
|
|
10
|
+
constructor(context, string, node, leftTerm, rightTerm) {
|
|
11
|
+
this.context = context;
|
|
12
12
|
this.string = string;
|
|
13
|
+
this.node = node;
|
|
13
14
|
this.leftTerm = leftTerm;
|
|
14
15
|
this.rightTerm = rightTerm;
|
|
15
16
|
}
|
|
16
17
|
|
|
18
|
+
getContext() {
|
|
19
|
+
return this.context;
|
|
20
|
+
}
|
|
21
|
+
|
|
17
22
|
getString() {
|
|
18
23
|
return this.string;
|
|
19
24
|
}
|
|
20
25
|
|
|
26
|
+
getNode() {
|
|
27
|
+
return this.node;
|
|
28
|
+
}
|
|
29
|
+
|
|
21
30
|
getLeftTerm() {
|
|
22
31
|
return this.leftTerm;
|
|
23
32
|
}
|
|
@@ -186,7 +195,7 @@ export default define(class Equality {
|
|
|
186
195
|
return;
|
|
187
196
|
}
|
|
188
197
|
|
|
189
|
-
const { Variable } =
|
|
198
|
+
const { Variable } = elements,
|
|
190
199
|
type = this.getType(),
|
|
191
200
|
leftTermNode = this.leftTerm.getNode(),
|
|
192
201
|
rightTermNode = this.rightTerm.getNode(),
|
|
@@ -199,7 +208,7 @@ export default define(class Equality {
|
|
|
199
208
|
|
|
200
209
|
if (leftVariableNode !== null) {
|
|
201
210
|
const leftVariable = Variable.fromVariableNodeAndType(leftVariableNode, type, context),
|
|
202
|
-
leftVariableAssignment =
|
|
211
|
+
leftVariableAssignment = variableAssignmentFromVariable(leftVariable);
|
|
203
212
|
|
|
204
213
|
assignment = leftVariableAssignment; ///
|
|
205
214
|
|
|
@@ -208,7 +217,7 @@ export default define(class Equality {
|
|
|
208
217
|
|
|
209
218
|
if (rightVariableNode !== null) {
|
|
210
219
|
const rightVariable = Variable.fromVariableNodeAndType(rightVariableNode, type, context),
|
|
211
|
-
rightVariableAssignment =
|
|
220
|
+
rightVariableAssignment = variableAssignmentFromVariable(rightVariable);
|
|
212
221
|
|
|
213
222
|
assignment = rightVariableAssignment; ///
|
|
214
223
|
|
|
@@ -216,7 +225,7 @@ export default define(class Equality {
|
|
|
216
225
|
}
|
|
217
226
|
|
|
218
227
|
const equality = this, //
|
|
219
|
-
equalityAssignment =
|
|
228
|
+
equalityAssignment = equalityAssignmentFromEquality(equality);
|
|
220
229
|
|
|
221
230
|
assignment = equalityAssignment; ///
|
|
222
231
|
|
|
@@ -224,37 +233,4 @@ export default define(class Equality {
|
|
|
224
233
|
}
|
|
225
234
|
|
|
226
235
|
static name = "Equality";
|
|
227
|
-
|
|
228
|
-
static fromStatementNode(statementNode, context) {
|
|
229
|
-
let equality = null;
|
|
230
|
-
|
|
231
|
-
const equalityNode = statementNode.getEqualityNode();
|
|
232
|
-
|
|
233
|
-
if (equalityNode !== null) {
|
|
234
|
-
const node = equalityNode, ///
|
|
235
|
-
string = context.nodeAsString(node),
|
|
236
|
-
leftTerm = leftTermFromEqualityNode(equalityNode, context),
|
|
237
|
-
rightTerm = rightTermFromEqualityNode(equalityNode, context);
|
|
238
|
-
|
|
239
|
-
equality = new Equality(string, leftTerm, rightTerm);
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
return equality;
|
|
243
|
-
}
|
|
244
236
|
});
|
|
245
|
-
|
|
246
|
-
function leftTermFromEqualityNode(equalityNode, context) {
|
|
247
|
-
const { Term } = ontology,
|
|
248
|
-
leftTermNode = equalityNode.getLeftTermNode(),
|
|
249
|
-
leftTerm = Term.fromTermNode(leftTermNode, context);
|
|
250
|
-
|
|
251
|
-
return leftTerm;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
function rightTermFromEqualityNode(equalityNode, context) {
|
|
255
|
-
const { Term } = ontology,
|
|
256
|
-
rightTermNode = equalityNode.getRightTermNode(),
|
|
257
|
-
rightTerm = Term.fromTermNode(rightTermNode, context);
|
|
258
|
-
|
|
259
|
-
return rightTerm;
|
|
260
|
-
}
|
|
@@ -2,16 +2,34 @@
|
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
-
import { define } from "../
|
|
5
|
+
import { define } from "../elements";
|
|
6
|
+
import { termsStringFromTerms } from "../utilities/string";
|
|
7
|
+
import { instantiateEquivalence } from "../process/instantiate";
|
|
6
8
|
import { stripBracketsFromTermNode } from "../utilities/brackets";
|
|
9
|
+
import { equalivanceFromEquivalenceNode } from "../utilities/element";
|
|
7
10
|
|
|
8
11
|
const { compress } = arrayUtilities;
|
|
9
12
|
|
|
10
13
|
export default define(class Equivalence {
|
|
11
|
-
constructor(terms) {
|
|
14
|
+
constructor(context, string, node, terms) {
|
|
15
|
+
this.context = context;
|
|
16
|
+
this.string = string;
|
|
17
|
+
this.node = node;
|
|
12
18
|
this.terms = terms;
|
|
13
19
|
}
|
|
14
20
|
|
|
21
|
+
getContext() {
|
|
22
|
+
return this.context;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
getString() {
|
|
26
|
+
return this.string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
getNode() {
|
|
30
|
+
return this.node;
|
|
31
|
+
}
|
|
32
|
+
|
|
15
33
|
getTerms() {
|
|
16
34
|
return this.terms;
|
|
17
35
|
}
|
|
@@ -35,6 +53,17 @@ export default define(class Equivalence {
|
|
|
35
53
|
if (!termPresent) {
|
|
36
54
|
this.terms.push(term);
|
|
37
55
|
|
|
56
|
+
const termsString = termsStringFromTerms(this.terms),
|
|
57
|
+
string = termsString, ///
|
|
58
|
+
equalivanceNode = instantiateEquivalence(string, context),
|
|
59
|
+
equalivance = equalivanceFromEquivalenceNode(equalivanceNode, context);
|
|
60
|
+
|
|
61
|
+
this.node = equalivance.getNode();
|
|
62
|
+
|
|
63
|
+
this.string = equalivance.getString();
|
|
64
|
+
|
|
65
|
+
const equivalenceString = this.string; ///
|
|
66
|
+
|
|
38
67
|
context.debug(`...added the '${termString}' term to the '${equivalenceString}' equivalence.`);
|
|
39
68
|
}
|
|
40
69
|
}
|
|
@@ -243,27 +272,13 @@ export default define(class Equivalence {
|
|
|
243
272
|
return implicitlyGroundedTerms;
|
|
244
273
|
}
|
|
245
274
|
|
|
246
|
-
|
|
247
|
-
const type = this.getType(),
|
|
248
|
-
typeString = type.getString(),
|
|
249
|
-
termsString = this.terms.reduce((termsString, term) => {
|
|
250
|
-
const termString = term.getString();
|
|
251
|
-
|
|
252
|
-
termsString = (termsString === null) ?
|
|
253
|
-
termString :
|
|
254
|
-
`${termsString} = ${termString}`;
|
|
255
|
-
|
|
256
|
-
return termsString;
|
|
257
|
-
}, null),
|
|
258
|
-
string = `${termsString}:${typeString}`;
|
|
259
|
-
|
|
260
|
-
return string;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
static fromEquality(equality) {
|
|
275
|
+
static fromEquality(equality, context) {
|
|
264
276
|
const terms = equality.getTerms(),
|
|
265
|
-
|
|
277
|
+
termsString = termsStringFromTerms(terms),
|
|
278
|
+
string = termsString, ///
|
|
279
|
+
equalivanceNode = instantiateEquivalence(string, context),
|
|
280
|
+
equalivance = equalivanceFromEquivalenceNode(equalivanceNode, context);
|
|
266
281
|
|
|
267
|
-
return
|
|
282
|
+
return equalivance;
|
|
268
283
|
}
|
|
269
284
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
-
import { define } from "../
|
|
5
|
+
import { define } from "../elements";
|
|
6
6
|
import { variablesFromTerm } from "./term";
|
|
7
7
|
|
|
8
8
|
const { push, separate } = arrayUtilities;
|
|
@@ -193,7 +193,6 @@ export default define(class Equivalences {
|
|
|
193
193
|
}
|
|
194
194
|
});
|
|
195
195
|
|
|
196
|
-
|
|
197
196
|
function definedVariablesFromGroundedTerms(groundedTerms, definedVariables, context) {
|
|
198
197
|
groundedTerms.forEach((groundedTerm) => {
|
|
199
198
|
const term = groundedTerm, ///
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { define } from "../
|
|
3
|
+
import { define } from "../elements";
|
|
4
4
|
|
|
5
5
|
export default define(class Error {
|
|
6
|
-
constructor(context,
|
|
6
|
+
constructor(context, string, node) {
|
|
7
7
|
this.context = context;
|
|
8
|
-
this.node = node;
|
|
9
8
|
this.string = string;
|
|
9
|
+
this.node = node;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
getContext() {
|
|
13
13
|
return this.context;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
getNode() {
|
|
17
|
-
return this.node;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
16
|
getString() {
|
|
21
17
|
return this.string;
|
|
22
18
|
}
|
|
23
19
|
|
|
20
|
+
getNode() {
|
|
21
|
+
return this.node;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
24
|
verify() {
|
|
25
25
|
let verifies = false;
|
|
26
26
|
|
|
@@ -36,7 +36,7 @@ export default define(class Error {
|
|
|
36
36
|
static fromErrorNode(errorNode, context) {
|
|
37
37
|
const node = errorNode, ///
|
|
38
38
|
string = context.nodeAsString(node),
|
|
39
|
-
error = new Error(context,
|
|
39
|
+
error = new Error(context, string, node);
|
|
40
40
|
|
|
41
41
|
return error;
|
|
42
42
|
}
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import elements from "../elements";
|
|
6
6
|
|
|
7
|
-
import { define } from "../
|
|
7
|
+
import { define } from "../elements";
|
|
8
8
|
import { S, NOTHING } from "../constants";
|
|
9
|
+
import { frameFromFrameNode } from "../utilities/element";
|
|
9
10
|
import { FRAME_META_TYPE_NAME } from "../metaTypeNames";
|
|
10
11
|
|
|
11
12
|
const { first } = arrayUtilities;
|
|
12
13
|
|
|
13
14
|
export default define(class Frame {
|
|
14
|
-
constructor(string, node,
|
|
15
|
+
constructor(string, node, assumptions) {
|
|
15
16
|
this.string = string;
|
|
16
17
|
this.node = node;
|
|
17
|
-
this.tokens = tokens;
|
|
18
18
|
this.assumptions = assumptions;
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -26,10 +26,6 @@ export default define(class Frame {
|
|
|
26
26
|
return this.node;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
getTokens() {
|
|
30
|
-
return this.tokens;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
29
|
getAssumptions() {
|
|
34
30
|
return this.assumptions;
|
|
35
31
|
}
|
|
@@ -305,30 +301,21 @@ export default define(class Frame {
|
|
|
305
301
|
let frame = null;
|
|
306
302
|
|
|
307
303
|
if (json !== null) {
|
|
308
|
-
const { Assumption } =
|
|
304
|
+
const { Assumption } =elements,
|
|
309
305
|
assumption = Assumption.fromJSON(json, context),
|
|
310
306
|
assumptions = [
|
|
311
307
|
assumption
|
|
312
308
|
],
|
|
313
309
|
string = null,
|
|
314
|
-
node = null
|
|
315
|
-
tokens = null;
|
|
310
|
+
node = null;
|
|
316
311
|
|
|
317
|
-
frame = new Frame(string, node,
|
|
312
|
+
frame = new Frame(string, node, assumptions);
|
|
318
313
|
}
|
|
319
314
|
|
|
320
315
|
return frame;
|
|
321
316
|
}
|
|
322
317
|
|
|
323
|
-
static fromFrameNode(frameNode, context) {
|
|
324
|
-
let frame = null;
|
|
325
|
-
|
|
326
|
-
if (frameNode !== null) {
|
|
327
|
-
frame = frameFromFrameNode(frameNode, context);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
return frame;
|
|
331
|
-
}
|
|
318
|
+
static fromFrameNode(frameNode, context) { return frameFromFrameNode(frameNode, context); }
|
|
332
319
|
|
|
333
320
|
static fromJudgementNode(judgementNode, context) {
|
|
334
321
|
const frameNode = judgementNode.getFrameNode(),
|
|
@@ -348,43 +335,8 @@ export default define(class Frame {
|
|
|
348
335
|
|
|
349
336
|
return frame;
|
|
350
337
|
}
|
|
351
|
-
|
|
352
|
-
static fromContainedAssertionNode(containedAssertionNode, context) {
|
|
353
|
-
let frame = null;
|
|
354
|
-
|
|
355
|
-
const frameNode = containedAssertionNode.getFrameNode();
|
|
356
|
-
|
|
357
|
-
if (frameNode !== null) {
|
|
358
|
-
frame = frameFromFrameNode(frameNode, context)
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
return frame;
|
|
362
|
-
}
|
|
363
338
|
});
|
|
364
339
|
|
|
365
|
-
function frameFromFrameNode(frameNode, context) {
|
|
366
|
-
const { Frame } = ontology,
|
|
367
|
-
node = frameNode, ///
|
|
368
|
-
string = context.nodeAsString(node),
|
|
369
|
-
tokens = context.nodeAsTokens(node),
|
|
370
|
-
assumptions = assumptionsFromFrameNode(frameNode, context),
|
|
371
|
-
frame = new Frame(string, node, tokens, assumptions);
|
|
372
|
-
|
|
373
|
-
return frame;
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
function assumptionsFromFrameNode(frameNode, context) {
|
|
377
|
-
const { Assumption } = ontology,
|
|
378
|
-
assumptionNodes = frameNode.getAssumptionNodes(),
|
|
379
|
-
assumptions = assumptionNodes.map((assumptionNode) => {
|
|
380
|
-
const assumption = Assumption.fromAssumptionNode(assumptionNode, context);
|
|
381
|
-
|
|
382
|
-
return assumption;
|
|
383
|
-
});
|
|
384
|
-
|
|
385
|
-
return assumptions;
|
|
386
|
-
}
|
|
387
|
-
|
|
388
340
|
function assumptionsStringFromAssumptions(assumptions) {
|
|
389
341
|
const assumptionsString = assumptions.reduce((assumptionsString, assumption) => {
|
|
390
342
|
const assumptionString = assumption.getString();
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import elements from "../elements";
|
|
4
|
+
import assignAssignments from "../process/assign";
|
|
4
5
|
|
|
5
|
-
import { define } from "../
|
|
6
|
-
import { assignAssignments } from "../utilities/assignments";
|
|
6
|
+
import { define } from "../elements";
|
|
7
7
|
import { statementFromJSON, statementToStatementJSON } from "../utilities/json";
|
|
8
8
|
|
|
9
9
|
export default define(class Hypothesis {
|
|
@@ -43,7 +43,7 @@ export default define(class Hypothesis {
|
|
|
43
43
|
const assignmentsAssigned = assignAssignments(assignments, context);
|
|
44
44
|
|
|
45
45
|
if (assignmentsAssigned) {
|
|
46
|
-
const { Step } =
|
|
46
|
+
const { Step } = elements,
|
|
47
47
|
step = Step.fromStatement(this.statement, context),
|
|
48
48
|
stepOrSubproof = step; ///
|
|
49
49
|
|
|
@@ -113,7 +113,7 @@ export default define(class Hypothesis {
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
static fromHypothesisNode(hypothesisNode, context) {
|
|
116
|
-
const { Statement } =
|
|
116
|
+
const { Statement } = elements,
|
|
117
117
|
node = hypothesisNode, ///
|
|
118
118
|
string = context.nodeAsString(node),
|
|
119
119
|
statement = Statement.fromHypothesisNode(hypothesisNode, context),
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import JudgementAssignment from "../assignment/judgement";
|
|
3
|
+
import elements from "../elements";
|
|
5
4
|
|
|
6
|
-
import { define } from "../
|
|
5
|
+
import { define } from "../elements";
|
|
6
|
+
import { judgementAssignmentFromJudgement } from "../process/assign";
|
|
7
7
|
|
|
8
8
|
export default define(class Judgement {
|
|
9
9
|
constructor(string, node, frame, assumption) {
|
|
@@ -142,8 +142,8 @@ export default define(class Judgement {
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
const judgement = this, ///
|
|
145
|
-
judgementAssignment =
|
|
146
|
-
assignment = judgementAssignment;
|
|
145
|
+
judgementAssignment = judgementAssignmentFromJudgement(judgement),
|
|
146
|
+
assignment = judgementAssignment; ///
|
|
147
147
|
|
|
148
148
|
assignments.push(assignment);
|
|
149
149
|
}
|
|
@@ -156,7 +156,7 @@ export default define(class Judgement {
|
|
|
156
156
|
const judgementNode = statementNode.getJudgementNode();
|
|
157
157
|
|
|
158
158
|
if (judgementNode !== null) {
|
|
159
|
-
const { Frame, Assumption } =
|
|
159
|
+
const { Frame, Assumption } = elements,
|
|
160
160
|
node = judgementNode, ///
|
|
161
161
|
string = context.nodeAsString(node),
|
|
162
162
|
frame = Frame.fromJudgementNode(judgementNode, context),
|
|
@@ -170,7 +170,7 @@ export default define(class Judgement {
|
|
|
170
170
|
});
|
|
171
171
|
|
|
172
172
|
function referenceFromMetavariable(metavariable, context) {
|
|
173
|
-
const { Reference } =
|
|
173
|
+
const { Reference } = elements,
|
|
174
174
|
metavariableNode = metavariable.getNode(),
|
|
175
175
|
reference = Reference.fromMetavariableNode(metavariableNode, context);
|
|
176
176
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import elements from "../elements";
|
|
4
4
|
|
|
5
|
-
import { define } from "../
|
|
5
|
+
import { define } from "../elements";
|
|
6
6
|
import { metavariableFromJSON, metavariableToMetavariableJSON } from "../utilities/json";
|
|
7
7
|
|
|
8
8
|
export default define(class Label {
|
|
@@ -97,7 +97,7 @@ export default define(class Label {
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
static fromLabelNode(labelNode, context) {
|
|
100
|
-
const { Metavariable } =
|
|
100
|
+
const { Metavariable } = elements,
|
|
101
101
|
metavariable = Metavariable.fromLabelNode(labelNode, context),
|
|
102
102
|
label = new Label(context, metavariable);
|
|
103
103
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import AxiomLemmaTheoremConjecture from "./axiomLemmaTheoremConjecture";
|
|
4
4
|
|
|
5
|
-
import { define } from "../
|
|
5
|
+
import { define } from "../elements";
|
|
6
6
|
|
|
7
|
-
export default define(class Lemma extends
|
|
7
|
+
export default define(class Lemma extends AxiomLemmaTheoremConjecture {
|
|
8
8
|
verify() {
|
|
9
9
|
let verifies;
|
|
10
10
|
|
|
@@ -36,7 +36,7 @@ export default define(class Lemma extends TopLevelAssertion {
|
|
|
36
36
|
|
|
37
37
|
static fromLemmaNode(lemmaNode, context) {
|
|
38
38
|
const node = lemmaNode, ///
|
|
39
|
-
lemma =
|
|
39
|
+
lemma = AxiomLemmaTheoremConjecture.fromNode(Lemma, node, context);
|
|
40
40
|
|
|
41
41
|
return lemma;
|
|
42
42
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import MetaLemmaMetatheorem from "./metaLemmaMetatheorem";
|
|
4
4
|
|
|
5
|
-
import { define } from "../
|
|
5
|
+
import { define } from "../elements";
|
|
6
6
|
|
|
7
|
-
export default define(class MetaLemma extends
|
|
7
|
+
export default define(class MetaLemma extends MetaLemmaMetatheorem {
|
|
8
8
|
verify() {
|
|
9
9
|
let verifies;
|
|
10
10
|
|
|
@@ -30,11 +30,11 @@ export default define(class MetaLemma extends TopLevelMetaAssertion {
|
|
|
30
30
|
|
|
31
31
|
static name = "MetaLemma";
|
|
32
32
|
|
|
33
|
-
static fromJSON(json, context) { return
|
|
33
|
+
static fromJSON(json, context) { return MetaLemmaMetatheorem.fromJSON(MetaLemma, json, context); }
|
|
34
34
|
|
|
35
35
|
static fromMetaLemmaNode(metaLemmaNode, context) {
|
|
36
36
|
const node = metaLemmaNode, ///
|
|
37
|
-
metaLemma =
|
|
37
|
+
metaLemma = MetaLemmaMetatheorem.fromNode(MetaLemma, node, context);
|
|
38
38
|
|
|
39
39
|
return metaLemma;
|
|
40
40
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import elements from "../elements";
|
|
4
4
|
import LocalContext from "../context/local";
|
|
5
5
|
|
|
6
|
-
import { proofFromProofNode, deductionFromDeductionNode, suppositionsFromSuppositionNodes } from "./
|
|
6
|
+
import { proofFromProofNode, deductionFromDeductionNode, suppositionsFromSuppositionNodes } from "./axiomLemmaTheoremConjecture";
|
|
7
7
|
import { labelFromJSON,
|
|
8
8
|
labelToLabelJSON,
|
|
9
9
|
deductionFromJSON,
|
|
@@ -13,11 +13,11 @@ import { labelFromJSON,
|
|
|
13
13
|
suppositionsToSuppositionsJSON,
|
|
14
14
|
substitutionsToSubstitutionsJSON } from "../utilities/json";
|
|
15
15
|
|
|
16
|
-
export default class
|
|
17
|
-
constructor(context,
|
|
16
|
+
export default class MetaLemmaMetatheorem {
|
|
17
|
+
constructor(context, string, node, label, suppositions, deduction, proof, substitutions) {
|
|
18
18
|
this.context = context;
|
|
19
|
-
this.node = node;
|
|
20
19
|
this.string = string;
|
|
20
|
+
this.node = node;
|
|
21
21
|
this.label = label;
|
|
22
22
|
this.suppositions = suppositions;
|
|
23
23
|
this.deduction = deduction;
|
|
@@ -162,13 +162,13 @@ export default class TopLevelMetaAssertion {
|
|
|
162
162
|
node = null,
|
|
163
163
|
proof = null,
|
|
164
164
|
string = stringFromLabelASuppositionsAndDeduction(label, suppositions, deduction),
|
|
165
|
-
|
|
165
|
+
metaLemmaMetatheorem = new Class(context, string, node, label, suppositions, deduction, proof, substitutions);
|
|
166
166
|
|
|
167
|
-
return
|
|
167
|
+
return metaLemmaMetatheorem;
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
static fromNode(Class, node, context) {
|
|
171
|
-
const { Substitutions } =
|
|
171
|
+
const { Substitutions } = elements,
|
|
172
172
|
topLevelAssertionNode = node, ///
|
|
173
173
|
proofNode = topLevelAssertionNode.getProofNode(),
|
|
174
174
|
labelNode = topLevelAssertionNode.getLabelNode(),
|
|
@@ -180,16 +180,16 @@ export default class TopLevelMetaAssertion {
|
|
|
180
180
|
suppositions = suppositionsFromSuppositionNodes(suppositionNodes, context),
|
|
181
181
|
substitutions = Substitutions.fromNothing(),
|
|
182
182
|
string = stringFromLabelASuppositionsAndDeduction(label, suppositions, deduction),
|
|
183
|
-
|
|
183
|
+
metaLemmaMetatheorem = new Class(context, string, node, label, suppositions, deduction, proof, substitutions);
|
|
184
184
|
|
|
185
|
-
return
|
|
185
|
+
return metaLemmaMetatheorem;
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
function labelFromLabelNode(labelNode, context) {
|
|
190
190
|
let label = null;
|
|
191
191
|
|
|
192
|
-
const { Label } =
|
|
192
|
+
const { Label } = elements;
|
|
193
193
|
|
|
194
194
|
if (labelNode !== null) {
|
|
195
195
|
label = Label.fromLabelNode(labelNode, context);
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { define } from "../
|
|
3
|
+
import { define } from "../elements";
|
|
4
4
|
import { FRAME_META_TYPE_NAME, REFERENCE_META_TYPE_NAME, STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
|
|
5
5
|
|
|
6
6
|
class MetaType {
|
|
7
|
-
constructor(name) {
|
|
7
|
+
constructor(string, node, name) {
|
|
8
|
+
this.string = string;
|
|
9
|
+
this.node = node;
|
|
8
10
|
this.name = name;
|
|
9
11
|
}
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
return this.
|
|
13
|
+
getString() {
|
|
14
|
+
return this.string;
|
|
13
15
|
}
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
getNode() {
|
|
18
|
+
return this.node;
|
|
19
|
+
}
|
|
17
20
|
|
|
18
|
-
|
|
21
|
+
getName() {
|
|
22
|
+
return this.name;
|
|
19
23
|
}
|
|
20
24
|
|
|
21
25
|
isEqualTo(metaType) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import MetaLemmaMetatheorem from "./metaLemmaMetatheorem";
|
|
4
4
|
|
|
5
|
-
import { define } from "../
|
|
5
|
+
import { define } from "../elements";
|
|
6
6
|
|
|
7
|
-
export default define(class Metatheorem extends
|
|
7
|
+
export default define(class Metatheorem extends MetaLemmaMetatheorem {
|
|
8
8
|
verify() {
|
|
9
9
|
let verifies;
|
|
10
10
|
|
|
@@ -30,11 +30,11 @@ export default define(class Metatheorem extends TopLevelMetaAssertion {
|
|
|
30
30
|
|
|
31
31
|
static name = "Metatheorem";
|
|
32
32
|
|
|
33
|
-
static fromJSON(json, context) { return
|
|
33
|
+
static fromJSON(json, context) { return MetaLemmaMetatheorem.fromJSON(Metatheorem, json, context); }
|
|
34
34
|
|
|
35
35
|
static fromMetatheoremNode(metatheoremNode, context) {
|
|
36
36
|
const node = metatheoremNode, ///
|
|
37
|
-
metatheorem =
|
|
37
|
+
metatheorem = MetaLemmaMetatheorem.fromNode(Metatheorem, node, context);
|
|
38
38
|
|
|
39
39
|
return metatheorem;
|
|
40
40
|
}
|