occam-verify-cli 1.0.388 → 1.0.404
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 +3 -3
- package/lib/assignment/equality.js +2 -2
- package/lib/context/file.js +11 -11
- package/lib/context/local.js +38 -61
- package/lib/context/partial.js +10 -10
- package/lib/context/temporary.js +755 -0
- package/lib/mixins/statement/verify.js +38 -16
- package/lib/mixins/step/unify.js +7 -8
- package/lib/node/argument.js +4 -4
- package/lib/node/assertion/contained.js +6 -6
- package/lib/node/assertion/defined.js +6 -6
- package/lib/node/assertion/property.js +6 -6
- package/lib/node/assertion/satisfies.js +6 -6
- package/lib/node/assertion/subproof.js +6 -6
- package/lib/node/assertion/type.js +6 -6
- package/lib/node/assertion.js +107 -0
- package/lib/node/assumption.js +134 -0
- package/lib/node/axiom.js +6 -6
- package/lib/node/{topLevelAssertion.js → axiomLemmaTheoremConjecture.js} +12 -12
- package/lib/node/body.js +4 -5
- package/lib/node/combinator.js +4 -4
- package/lib/node/conclusion.js +4 -4
- package/lib/node/conjecture.js +6 -6
- package/lib/node/constructor.js +4 -4
- package/lib/node/declaration/combinator.js +6 -6
- package/lib/node/declaration/complexType.js +6 -6
- package/lib/node/declaration/constructor.js +6 -6
- package/lib/node/declaration/metavariable.js +6 -6
- package/lib/node/declaration/property.js +6 -6
- package/lib/node/declaration/simpleType.js +6 -6
- package/lib/node/declaration/typePrefix.js +6 -6
- package/lib/node/declaration/variable.js +6 -6
- package/lib/node/declaration.js +6 -22
- package/lib/node/deduction.js +4 -4
- package/lib/node/derivation.js +4 -4
- package/lib/node/document.js +107 -0
- package/lib/node/equality.js +4 -4
- package/lib/node/error.js +4 -4
- package/lib/node/frame.js +25 -14
- package/lib/node/header.js +4 -4
- package/lib/node/hypothesis.js +4 -4
- package/lib/node/judgement.js +8 -8
- package/lib/node/label.js +4 -4
- package/lib/node/labels.js +4 -4
- package/lib/node/lemma.js +6 -6
- package/lib/node/metaArgument.js +4 -4
- package/lib/node/metaLemma.js +6 -6
- package/lib/node/{topLevelMetaAssertion.js → metaLemmaMetaTheorem.js} +12 -12
- package/lib/node/metaType.js +4 -4
- package/lib/node/metatheorem.js +6 -6
- package/lib/node/metavariable.js +4 -4
- package/lib/node/nonsense.js +4 -4
- package/lib/node/parameter.js +4 -4
- package/lib/node/parenthesisedLabel.js +4 -4
- package/lib/node/parenthesisedLabels.js +4 -4
- package/lib/node/placeholder.js +107 -0
- package/lib/node/premise.js +4 -4
- package/lib/node/procedureCall.js +4 -4
- package/lib/node/procedureReference.js +4 -4
- package/lib/node/proof.js +4 -4
- package/lib/node/property.js +4 -4
- package/lib/node/propertyRelation.js +4 -4
- package/lib/node/qualification.js +4 -4
- package/lib/node/reference.js +4 -4
- package/lib/node/rule.js +4 -4
- package/lib/node/section.js +4 -4
- package/lib/node/signature.js +4 -4
- package/lib/node/statement.js +15 -4
- package/lib/node/step.js +4 -4
- package/lib/node/subDerivation.js +4 -4
- package/lib/node/subproof.js +4 -4
- package/lib/node/substitution/frame.js +28 -6
- package/lib/node/substitution/statement.js +6 -6
- package/lib/node/substitution/term.js +28 -6
- package/lib/node/substitution.js +107 -0
- package/lib/node/supposition.js +4 -4
- package/lib/node/term.js +27 -4
- package/lib/node/theorem.js +6 -6
- package/lib/node/type.js +4 -4
- package/lib/node/typePrefix.js +4 -4
- package/lib/node/types.js +4 -4
- package/lib/node/variable.js +4 -4
- package/lib/nominal/parser.js +3 -3
- package/lib/nonTerminalNode.js +222 -0
- package/lib/nonTerminalNodeMap.js +5 -3
- package/lib/ontology/assertion/contained.js +80 -39
- package/lib/ontology/assertion/defined.js +80 -39
- package/lib/ontology/assertion/property.js +71 -29
- package/lib/ontology/assertion/satisfies.js +73 -25
- package/lib/ontology/assertion/subproof.js +95 -41
- package/lib/ontology/assertion/type.js +74 -18
- package/lib/ontology/assertion.js +66 -0
- package/lib/ontology/assumption.js +379 -0
- package/lib/ontology/axiom.js +8 -11
- package/lib/ontology/combinator/bracketed.js +17 -3
- package/lib/ontology/combinator.js +17 -3
- package/lib/ontology/conclusion.js +38 -9
- package/lib/ontology/constructor/bracketed.js +17 -3
- package/lib/ontology/constructor.js +17 -3
- package/lib/ontology/declaration/combinator.js +75 -33
- package/lib/ontology/declaration/complexType.js +110 -63
- package/lib/ontology/declaration/constructor.js +81 -38
- package/lib/ontology/declaration/metavariable.js +87 -39
- package/lib/ontology/declaration/simpleType.js +95 -48
- package/lib/ontology/declaration/typePrefix.js +87 -40
- package/lib/ontology/declaration/variable.js +87 -39
- package/lib/ontology/declaration.js +13 -313
- package/lib/ontology/deduction.js +38 -9
- package/lib/ontology/equivalence.js +295 -0
- package/lib/ontology/equivalences.js +264 -0
- package/lib/ontology/frame.js +83 -51
- package/lib/ontology/hypothesis.js +11 -11
- package/lib/ontology/judgement.js +8 -8
- package/lib/ontology/label.js +5 -6
- package/lib/ontology/metavariable.js +14 -15
- package/lib/ontology/premise.js +60 -21
- package/lib/ontology/procedureCall.js +15 -15
- package/lib/ontology/procedureReference.js +1 -1
- package/lib/ontology/proof.js +2 -2
- package/lib/ontology/reference.js +6 -13
- package/lib/ontology/rule.js +69 -71
- package/lib/ontology/section.js +2 -2
- package/lib/ontology/signature.js +2 -2
- package/lib/ontology/statement.js +36 -24
- package/lib/ontology/step.js +38 -26
- package/lib/ontology/subproof.js +12 -13
- package/lib/ontology/substitution/frame.js +69 -21
- package/lib/ontology/substitution/reference.js +24 -9
- package/lib/ontology/substitution/statement.js +137 -76
- package/lib/ontology/substitution/term.js +75 -35
- package/lib/ontology/substitution.js +50 -44
- package/lib/ontology/substitutions.js +425 -0
- package/lib/ontology/supposition.js +69 -29
- package/lib/ontology/term.js +35 -37
- package/lib/ontology/topLevelAssertion.js +16 -17
- package/lib/ontology/topLevelMetaAssertion.js +3 -4
- package/lib/ontology/variable.js +9 -14
- package/lib/preamble.js +7 -4
- package/lib/ruleNames.js +20 -12
- package/lib/unifier/intrinsicLevel.js +4 -5
- package/lib/unifier/metaLevel.js +24 -24
- package/lib/utilities/brackets.js +4 -21
- package/lib/utilities/context.js +6 -6
- package/lib/utilities/frame.js +18 -0
- package/lib/utilities/json.js +24 -1
- package/lib/utilities/metavariable.js +18 -0
- package/lib/utilities/statement.js +18 -0
- package/lib/utilities/substitutions.js +43 -30
- package/lib/utilities/unification.js +10 -16
- package/lib/utilities/variable.js +18 -0
- package/package.json +10 -10
- package/src/action/verify.js +2 -2
- package/src/assignment/equality.js +1 -1
- package/src/context/file.js +13 -11
- package/src/context/local.js +40 -65
- package/src/context/partial.js +9 -14
- package/src/context/temporary.js +463 -0
- package/src/mixins/statement/verify.js +60 -23
- package/src/mixins/step/unify.js +6 -6
- package/src/node/argument.js +1 -1
- package/src/node/assertion/contained.js +3 -3
- package/src/node/assertion/defined.js +3 -3
- package/src/node/assertion/property.js +3 -3
- package/src/node/assertion/satisfies.js +3 -3
- package/src/node/assertion/subproof.js +3 -3
- package/src/node/assertion/type.js +3 -3
- package/src/node/assertion.js +7 -0
- package/src/node/assumption.js +35 -0
- package/src/node/axiom.js +3 -3
- package/src/node/{topLevelAssertion.js → axiomLemmaTheoremConjecture.js} +2 -2
- package/src/node/body.js +1 -3
- package/src/node/combinator.js +1 -1
- package/src/node/conclusion.js +1 -1
- package/src/node/conjecture.js +3 -3
- package/src/node/constructor.js +1 -1
- package/src/node/declaration/combinator.js +3 -3
- package/src/node/declaration/complexType.js +3 -3
- package/src/node/declaration/constructor.js +3 -3
- package/src/node/declaration/metavariable.js +3 -3
- package/src/node/declaration/property.js +3 -3
- package/src/node/declaration/simpleType.js +3 -3
- package/src/node/declaration/typePrefix.js +3 -3
- package/src/node/declaration/variable.js +3 -3
- package/src/node/declaration.js +2 -18
- package/src/node/deduction.js +1 -1
- package/src/node/derivation.js +1 -1
- package/src/node/document.js +7 -0
- package/src/node/equality.js +1 -1
- package/src/node/error.js +1 -1
- package/src/node/frame.js +23 -11
- package/src/node/header.js +1 -1
- package/src/node/hypothesis.js +1 -1
- package/src/node/judgement.js +6 -6
- package/src/node/label.js +1 -1
- package/src/node/labels.js +1 -1
- package/src/node/lemma.js +3 -3
- package/src/node/metaArgument.js +1 -1
- package/src/node/metaLemma.js +3 -3
- package/src/node/{topLevelMetaAssertion.js → metaLemmaMetaTheorem.js} +2 -2
- package/src/node/metaType.js +1 -1
- package/src/node/metatheorem.js +3 -3
- package/src/node/metavariable.js +1 -1
- package/src/node/nonsense.js +1 -1
- package/src/node/parameter.js +1 -1
- package/src/node/parenthesisedLabel.js +1 -1
- package/src/node/parenthesisedLabels.js +1 -1
- package/src/node/placeholder.js +7 -0
- package/src/node/premise.js +1 -1
- package/src/node/procedureCall.js +1 -1
- package/src/node/procedureReference.js +1 -1
- package/src/node/proof.js +1 -1
- package/src/node/property.js +1 -1
- package/src/node/propertyRelation.js +1 -1
- package/src/node/qualification.js +1 -1
- package/src/node/reference.js +1 -1
- package/src/node/rule.js +2 -2
- package/src/node/section.js +1 -1
- package/src/node/signature.js +1 -1
- package/src/node/statement.js +13 -1
- package/src/node/step.js +1 -1
- package/src/node/subDerivation.js +1 -1
- package/src/node/subproof.js +1 -1
- package/src/node/substitution/frame.js +29 -3
- package/src/node/substitution/statement.js +3 -3
- package/src/node/substitution/term.js +29 -3
- package/src/node/substitution.js +7 -0
- package/src/node/supposition.js +1 -1
- package/src/node/term.js +27 -1
- package/src/node/theorem.js +3 -3
- package/src/node/type.js +1 -1
- package/src/node/typePrefix.js +1 -1
- package/src/node/types.js +1 -1
- package/src/node/variable.js +1 -1
- package/src/nominal/parser.js +2 -2
- package/src/{node/nonTerminal.js → nonTerminalNode.js} +31 -25
- package/src/nonTerminalNodeMap.js +10 -5
- package/src/ontology/assertion/contained.js +21 -32
- package/src/ontology/assertion/defined.js +20 -31
- package/src/ontology/assertion/property.js +7 -20
- package/src/ontology/assertion/satisfies.js +8 -16
- package/src/ontology/assertion/subproof.js +36 -42
- package/src/ontology/assertion/type.js +10 -11
- package/src/ontology/assertion.js +23 -0
- package/src/ontology/assumption.js +385 -0
- package/src/ontology/axiom.js +7 -16
- package/src/ontology/combinator/bracketed.js +2 -0
- package/src/ontology/combinator.js +2 -0
- package/src/ontology/conclusion.js +51 -10
- package/src/ontology/constructor/bracketed.js +2 -0
- package/src/ontology/constructor.js +2 -0
- package/src/ontology/declaration/combinator.js +15 -24
- package/src/ontology/declaration/complexType.js +57 -53
- package/src/ontology/declaration/constructor.js +25 -31
- package/src/ontology/declaration/metavariable.js +25 -30
- package/src/ontology/declaration/simpleType.js +34 -38
- package/src/ontology/declaration/typePrefix.js +23 -31
- package/src/ontology/declaration/variable.js +26 -31
- package/src/ontology/declaration.js +8 -339
- package/src/ontology/deduction.js +51 -10
- package/src/{equivalence.js → ontology/equivalence.js} +4 -3
- package/src/{equivalences.js → ontology/equivalences.js} +14 -12
- package/src/ontology/frame.js +93 -66
- package/src/ontology/hypothesis.js +8 -8
- package/src/ontology/judgement.js +8 -8
- package/src/ontology/label.js +2 -7
- package/src/ontology/metavariable.js +14 -17
- package/src/ontology/premise.js +82 -25
- package/src/ontology/procedureCall.js +14 -14
- package/src/ontology/procedureReference.js +2 -2
- package/src/ontology/proof.js +1 -1
- package/src/ontology/reference.js +5 -9
- package/src/ontology/rule.js +79 -82
- package/src/ontology/section.js +1 -1
- package/src/ontology/signature.js +1 -1
- package/src/ontology/statement.js +37 -27
- package/src/ontology/step.js +45 -28
- package/src/ontology/subproof.js +10 -10
- package/src/ontology/substitution/frame.js +72 -26
- package/src/ontology/substitution/reference.js +8 -6
- package/src/ontology/substitution/statement.js +95 -76
- package/src/ontology/substitution/term.js +81 -41
- package/src/ontology/substitution.js +35 -34
- package/src/{substitutions.js → ontology/substitutions.js} +29 -28
- package/src/ontology/supposition.js +88 -28
- package/src/ontology/term.js +31 -43
- package/src/ontology/topLevelAssertion.js +16 -18
- package/src/ontology/topLevelMetaAssertion.js +3 -3
- package/src/ontology/variable.js +10 -17
- package/src/preamble.js +6 -3
- package/src/ruleNames.js +10 -8
- package/src/unifier/intrinsicLevel.js +5 -6
- package/src/unifier/metaLevel.js +32 -29
- package/src/utilities/brackets.js +3 -29
- package/src/utilities/context.js +5 -5
- package/src/utilities/frame.js +13 -0
- package/src/utilities/json.js +28 -0
- package/src/utilities/metavariable.js +13 -0
- package/src/utilities/statement.js +13 -0
- package/src/utilities/substitutions.js +59 -33
- package/src/utilities/unification.js +8 -24
- package/src/utilities/variable.js +13 -0
- package/lib/equivalence.js +0 -294
- package/lib/equivalences.js +0 -263
- package/lib/node/nonTerminal.js +0 -218
- package/lib/substitutions.js +0 -424
package/src/node/metaLemma.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import MetaLemmaMetaTheoremNode from "../node/metaLemmaMetaTheorem";
|
|
4
4
|
|
|
5
5
|
import { META_LEMMA_BODY_RULE_NAME, META_LEMMA_HEADER_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
|
-
export default class MetaLemmaNode extends
|
|
7
|
+
export default class MetaLemmaNode extends MetaLemmaMetaTheoremNode {
|
|
8
8
|
static bodyRuleName = META_LEMMA_BODY_RULE_NAME;
|
|
9
9
|
|
|
10
10
|
static headerRuleName = META_LEMMA_HEADER_RULE_NAME;
|
|
11
11
|
|
|
12
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return
|
|
12
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return MetaLemmaMetaTheoremNode.fromRuleNameChildNodesOpacityAndPrecedence(MetaLemmaNode, ruleName, childNodes, opacity, precedence); }
|
|
13
13
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import NonTerminalNode from "../
|
|
3
|
+
import NonTerminalNode from "../nonTerminalNode";
|
|
4
4
|
|
|
5
|
-
export default class
|
|
5
|
+
export default class MetaLemmaMetaTheoremNode extends NonTerminalNode {
|
|
6
6
|
getBodyNode() {
|
|
7
7
|
const { bodyRuleName } = this.constructor,
|
|
8
8
|
ruleName = bodyRuleName, ///
|
package/src/node/metaType.js
CHANGED
package/src/node/metatheorem.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import MetaLemmaMetaTheoremNode from "../node/metaLemmaMetaTheorem";
|
|
4
4
|
|
|
5
5
|
import { METATHEOREM_BODY_RULE_NAME, METATHEOREM_HEADER_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
|
-
export default class MetatheoremNode extends
|
|
7
|
+
export default class MetatheoremNode extends MetaLemmaMetaTheoremNode {
|
|
8
8
|
static bodyRuleName = METATHEOREM_BODY_RULE_NAME;
|
|
9
9
|
|
|
10
10
|
static headerRuleName = METATHEOREM_HEADER_RULE_NAME;
|
|
11
11
|
|
|
12
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return
|
|
12
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return MetaLemmaMetaTheoremNode.fromRuleNameChildNodesOpacityAndPrecedence(MetatheoremNode, ruleName, childNodes, opacity, precedence); }
|
|
13
13
|
}
|
package/src/node/metavariable.js
CHANGED
package/src/node/nonsense.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import NonTerminalNode from "../
|
|
3
|
+
import NonTerminalNode from "../nonTerminalNode";
|
|
4
4
|
|
|
5
5
|
export default class NonsenseNode extends NonTerminalNode {
|
|
6
6
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(NonsenseNode, ruleName, childNodes, opacity, precedence); }
|
package/src/node/parameter.js
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import NonTerminalNode from "../nonTerminalNode";
|
|
4
|
+
|
|
5
|
+
export default class PlaceholderNode extends NonTerminalNode {
|
|
6
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(PlaceholderNode, ruleName, childNodes, opacity, precedence); }
|
|
7
|
+
}
|
package/src/node/premise.js
CHANGED
package/src/node/proof.js
CHANGED
package/src/node/property.js
CHANGED
package/src/node/reference.js
CHANGED
package/src/node/rule.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import NonTerminalNode from "../
|
|
3
|
+
import NonTerminalNode from "../nonTerminalNode";
|
|
4
4
|
|
|
5
|
-
import {RULE_BODY_RULE_NAME, RULE_HEADER_RULE_NAME} from "../ruleNames";
|
|
5
|
+
import { RULE_BODY_RULE_NAME, RULE_HEADER_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class RuleNode extends NonTerminalNode {
|
|
8
8
|
getRuleBodyNode() {
|
package/src/node/section.js
CHANGED
package/src/node/signature.js
CHANGED
package/src/node/statement.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import NonTerminalNode from "../
|
|
3
|
+
import NonTerminalNode from "../nonTerminalNode";
|
|
4
4
|
|
|
5
5
|
import { TERM_RULE_NAME,
|
|
6
6
|
FRAME_RULE_NAME,
|
|
@@ -19,6 +19,18 @@ import { TERM_RULE_NAME,
|
|
|
19
19
|
STATEMENT_SUBSTITUTION_RULE_NAME } from "../ruleNames";
|
|
20
20
|
|
|
21
21
|
export default class StatementNode extends NonTerminalNode {
|
|
22
|
+
isSimple() {
|
|
23
|
+
let simple = false;
|
|
24
|
+
|
|
25
|
+
const metavariableNode = this.getMetavariableNode();
|
|
26
|
+
|
|
27
|
+
if (metavariableNode !== null) {
|
|
28
|
+
simple = true;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return simple;
|
|
32
|
+
}
|
|
33
|
+
|
|
22
34
|
getTermNodes() {
|
|
23
35
|
const ruleName = TERM_RULE_NAME,
|
|
24
36
|
termNodes = this.getDescendantNodesByRuleName(ruleName);
|
package/src/node/step.js
CHANGED
package/src/node/subproof.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import SubstitutionNode from "../../node/substitution";
|
|
4
4
|
|
|
5
5
|
import { FRAME_RULE_NAME } from "../../ruleNames";
|
|
6
6
|
|
|
7
|
-
export default class FrameSubstitutionNode extends
|
|
7
|
+
export default class FrameSubstitutionNode extends SubstitutionNode {
|
|
8
8
|
getLastFrameNode() {
|
|
9
9
|
const ruleName = FRAME_RULE_NAME,
|
|
10
10
|
lastFrameNode = this.getLastNodeByRuleName(ruleName);
|
|
@@ -19,5 +19,31 @@ export default class FrameSubstitutionNode extends NonTerminalNode {
|
|
|
19
19
|
return firstFrameNode;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
getLastMetavariableNode() {
|
|
23
|
+
let lastMetavariableNode = null;
|
|
24
|
+
|
|
25
|
+
const lastFrameNode = this.getLastFrameNode(),
|
|
26
|
+
singularMetavariableNode = lastFrameNode.getSingularMetavariableNode();
|
|
27
|
+
|
|
28
|
+
if (singularMetavariableNode !== null) {
|
|
29
|
+
lastMetavariableNode = singularMetavariableNode; ///
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return lastMetavariableNode;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
getFirstMetavariableNode() {
|
|
36
|
+
let firstMetavariableNode = null;
|
|
37
|
+
|
|
38
|
+
const firstFrameNode = this.getFirstFrameNode(),
|
|
39
|
+
singularMetavariableNode = firstFrameNode.getSingularMetavariableNode();
|
|
40
|
+
|
|
41
|
+
if (singularMetavariableNode !== null) {
|
|
42
|
+
firstMetavariableNode = singularMetavariableNode; ///
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return firstMetavariableNode;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return SubstitutionNode.fromRuleNameChildNodesOpacityAndPrecedence(FrameSubstitutionNode, ruleName, childNodes, opacity, precedence); }
|
|
23
49
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import SubstitutionNode from "../../node/substitution";
|
|
4
4
|
|
|
5
5
|
import { STATEMENT_RULE_NAME } from "../../ruleNames";
|
|
6
6
|
|
|
7
|
-
export default class StatementSubstitutionNode extends
|
|
7
|
+
export default class StatementSubstitutionNode extends SubstitutionNode {
|
|
8
8
|
getLastStatementNode() {
|
|
9
9
|
const ruleName = STATEMENT_RULE_NAME,
|
|
10
10
|
lastStatementNode = this.getLastNodeByRuleName(ruleName);
|
|
@@ -19,5 +19,5 @@ export default class StatementSubstitutionNode extends NonTerminalNode {
|
|
|
19
19
|
return firstStatementNode;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return
|
|
22
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return SubstitutionNode.fromRuleNameChildNodesOpacityAndPrecedence(StatementSubstitutionNode, ruleName, childNodes, opacity, precedence); }
|
|
23
23
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import SubstitutionNode from "../../node/substitution";
|
|
4
4
|
|
|
5
5
|
import { TERM_RULE_NAME } from "../../ruleNames";
|
|
6
6
|
|
|
7
|
-
export default class TermSubstitutionNode extends
|
|
7
|
+
export default class TermSubstitutionNode extends SubstitutionNode {
|
|
8
8
|
getLastTermNode() {
|
|
9
9
|
const ruleName = TERM_RULE_NAME,
|
|
10
10
|
lastTermNode = this.getLastNodeByRuleName(ruleName);
|
|
@@ -19,5 +19,31 @@ export default class TermSubstitutionNode extends NonTerminalNode {
|
|
|
19
19
|
return firstTermNode;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
getLastVariableNode() {
|
|
23
|
+
let lastVariableNode = null;
|
|
24
|
+
|
|
25
|
+
const lastTermNode = this.getLastTermNode(),
|
|
26
|
+
singularVariableNode = lastTermNode.getSingularVariableNode();
|
|
27
|
+
|
|
28
|
+
if (singularVariableNode !== null) {
|
|
29
|
+
lastVariableNode = singularVariableNode; ///
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return lastVariableNode;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
getFirstVariableNode() {
|
|
36
|
+
let firstVariableNode = null;
|
|
37
|
+
|
|
38
|
+
const firstTermNode = this.getFirstTermNode(),
|
|
39
|
+
singularVariableNode = firstTermNode.getSingularVariableNode();
|
|
40
|
+
|
|
41
|
+
if (singularVariableNode !== null) {
|
|
42
|
+
firstVariableNode = singularVariableNode; ///
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return firstVariableNode;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return SubstitutionNode.fromRuleNameChildNodesOpacityAndPrecedence(TermSubstitutionNode, ruleName, childNodes, opacity, precedence); }
|
|
23
49
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import NonTerminalNode from "../nonTerminalNode";
|
|
4
|
+
|
|
5
|
+
export default class SubstitutionNode extends NonTerminalNode {
|
|
6
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence); }
|
|
7
|
+
}
|
package/src/node/supposition.js
CHANGED
package/src/node/term.js
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import NonTerminalNode from "../
|
|
3
|
+
import NonTerminalNode from "../nonTerminalNode";
|
|
4
4
|
|
|
5
5
|
import { ARGUMENT_RULE_NAME, VARIABLE_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class TermNode extends NonTerminalNode {
|
|
8
|
+
isSimple() {
|
|
9
|
+
let simple = false;
|
|
10
|
+
|
|
11
|
+
const singularVariableNode = this.getSingularVariableNode();
|
|
12
|
+
|
|
13
|
+
if (singularVariableNode !== null) {
|
|
14
|
+
simple = true;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return simple;
|
|
18
|
+
}
|
|
19
|
+
|
|
8
20
|
getVariableNodes() {
|
|
9
21
|
const ruleName = VARIABLE_RULE_NAME,
|
|
10
22
|
variableNodes = this.getNodesByRuleName(ruleName);
|
|
@@ -38,5 +50,19 @@ export default class TermNode extends NonTerminalNode {
|
|
|
38
50
|
return singularVariableNode;
|
|
39
51
|
}
|
|
40
52
|
|
|
53
|
+
getSingularVariableIdentifier() {
|
|
54
|
+
let singularVariableIdentifier = null;
|
|
55
|
+
|
|
56
|
+
const singularVariableNode = this.getSingularVariableNode();
|
|
57
|
+
|
|
58
|
+
if (singularVariableNode !== null) {
|
|
59
|
+
const variableIdentifier = singularVariableNode.getVariableIdentifier();
|
|
60
|
+
|
|
61
|
+
singularVariableIdentifier = variableIdentifier; ///
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return singularVariableIdentifier;
|
|
65
|
+
}
|
|
66
|
+
|
|
41
67
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(TermNode, ruleName, childNodes, opacity, precedence); }
|
|
42
68
|
}
|
package/src/node/theorem.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import AxiomLemmaTheoremConjectureNode from "../node/axiomLemmaTheoremConjecture";
|
|
4
4
|
|
|
5
5
|
import { THEOREM_BODY_RULE_NAME, THEOREM_HEADER_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
|
-
export default class TheoremNode extends
|
|
7
|
+
export default class TheoremNode extends AxiomLemmaTheoremConjectureNode {
|
|
8
8
|
static bodyRuleName = THEOREM_BODY_RULE_NAME;
|
|
9
9
|
|
|
10
10
|
static headerRuleName = THEOREM_HEADER_RULE_NAME;
|
|
11
11
|
|
|
12
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return
|
|
12
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AxiomLemmaTheoremConjectureNode.fromRuleNameChildNodesOpacityAndPrecedence(TheoremNode, ruleName, childNodes, opacity, precedence); }
|
|
13
13
|
}
|
package/src/node/type.js
CHANGED
package/src/node/typePrefix.js
CHANGED
package/src/node/types.js
CHANGED
package/src/node/variable.js
CHANGED
package/src/nominal/parser.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { NominalParser as NominalParserBase } from "occam-grammars";
|
|
4
|
-
import { NonTerminalNode as defaultNonTerminalNode } from "occam-parsers";
|
|
5
4
|
|
|
5
|
+
import NonTerminalNode from "../nonTerminalNode";
|
|
6
6
|
import NonTerminalNodeMap from "../nonTerminalNodeMap";
|
|
7
7
|
|
|
8
8
|
export default class NominalParser extends NominalParserBase {
|
|
9
9
|
static NonTerminalNodeMap = NonTerminalNodeMap;
|
|
10
10
|
|
|
11
|
-
static defaultNonTerminalNode =
|
|
11
|
+
static defaultNonTerminalNode = NonTerminalNode;
|
|
12
12
|
}
|
|
@@ -4,7 +4,7 @@ import { arrayUtilities } from "necessary";
|
|
|
4
4
|
|
|
5
5
|
import { NonTerminalNode as NonTerminalNodeBase } from "occam-parsers";
|
|
6
6
|
|
|
7
|
-
const { first
|
|
7
|
+
const { first } = arrayUtilities;
|
|
8
8
|
|
|
9
9
|
export default class NonTerminalNode extends NonTerminalNodeBase {
|
|
10
10
|
getNodeByRuleName(...ruleNames) {
|
|
@@ -44,39 +44,45 @@ export default class NonTerminalNode extends NonTerminalNodeBase {
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
getLastNodeByRuleName(...ruleNames) {
|
|
47
|
-
|
|
48
|
-
lastNode = backwardsFind(childNodes, (childNode) => {
|
|
49
|
-
const childNodeNonTerminalNode = childNode.isNonTerminalNode();
|
|
47
|
+
let lastNode = null;
|
|
50
48
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
ruleName = nonTerminalNode.getRuleName(),
|
|
54
|
-
ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
|
|
49
|
+
this.backwardsSomeChildNode((childNode) => {
|
|
50
|
+
const childNodeNonTerminalNode = childNode.isNonTerminalNode();
|
|
55
51
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
52
|
+
if (childNodeNonTerminalNode) {
|
|
53
|
+
const nonTerminalNode = childNode, ///
|
|
54
|
+
ruleName = nonTerminalNode.getRuleName(),
|
|
55
|
+
ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
|
|
56
|
+
|
|
57
|
+
if (ruleNamesIncludesRuleName) {
|
|
58
|
+
lastNode = childNode; ///
|
|
59
|
+
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
});
|
|
61
64
|
|
|
62
65
|
return lastNode;
|
|
63
66
|
}
|
|
64
67
|
|
|
65
68
|
getFirstNodeByRuleName(...ruleNames) {
|
|
66
|
-
|
|
67
|
-
firstNode = forwardsFind(childNodes, (childNode) => {
|
|
68
|
-
const childNodeNonTerminalNode = childNode.isNonTerminalNode();
|
|
69
|
+
let firstNode = null;
|
|
69
70
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
ruleName = nonTerminalNode.getRuleName(),
|
|
73
|
-
ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
|
|
71
|
+
this.forwardsSomeChildNode((childNode) => {
|
|
72
|
+
const childNodeNonTerminalNode = childNode.isNonTerminalNode();
|
|
74
73
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
if (childNodeNonTerminalNode) {
|
|
75
|
+
const nonTerminalNode = childNode, ///
|
|
76
|
+
ruleName = nonTerminalNode.getRuleName(),
|
|
77
|
+
ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
|
|
78
|
+
|
|
79
|
+
if (ruleNamesIncludesRuleName) {
|
|
80
|
+
firstNode = childNode; ///
|
|
81
|
+
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
});
|
|
80
86
|
|
|
81
87
|
return firstNode;
|
|
82
88
|
}
|