occam-verify-cli 1.0.396 → 1.0.405
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/assignment/equality.js +2 -2
- package/lib/context/file.js +4 -5
- package/lib/context/local.js +17 -6
- package/lib/context/partial.js +10 -10
- package/lib/context/temporary.js +102 -52
- package/lib/mixins/step/unify.js +5 -6
- 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 +6 -6
- package/lib/node/substitution/statement.js +6 -6
- package/lib/node/substitution/term.js +6 -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 +8 -9
- package/lib/ontology/assertion/defined.js +9 -10
- package/lib/ontology/assertion/satisfies.js +4 -4
- package/lib/ontology/assumption.js +379 -0
- 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 -338
- package/lib/ontology/equivalence.js +295 -0
- package/lib/ontology/equivalences.js +264 -0
- package/lib/ontology/frame.js +49 -54
- package/lib/ontology/judgement.js +8 -8
- package/lib/ontology/metavariable.js +4 -4
- package/lib/ontology/premise.js +14 -5
- package/lib/ontology/reference.js +3 -9
- package/lib/ontology/rule.js +3 -4
- package/lib/ontology/statement.js +28 -24
- package/lib/ontology/step.js +2 -3
- package/lib/ontology/subproof.js +2 -3
- package/lib/ontology/substitution/statement.js +77 -36
- package/lib/ontology/substitution/term.js +14 -34
- package/lib/ontology/substitution.js +18 -19
- package/lib/ontology/substitutions.js +425 -0
- package/lib/ontology/supposition.js +14 -5
- package/lib/ontology/term.js +33 -36
- package/lib/ontology/topLevelAssertion.js +2 -3
- package/lib/ontology/topLevelMetaAssertion.js +2 -3
- package/lib/ontology/variable.js +1 -34
- package/lib/preamble.js +7 -4
- package/lib/ruleNames.js +20 -12
- package/lib/unifier/intrinsicLevel.js +4 -12
- package/lib/unifier/metaLevel.js +14 -22
- package/lib/utilities/frame.js +18 -0
- package/lib/utilities/statement.js +18 -0
- package/lib/utilities/substitutions.js +43 -30
- package/lib/utilities/variable.js +5 -17
- package/package.json +10 -10
- package/src/assignment/equality.js +1 -1
- package/src/context/file.js +5 -4
- package/src/context/local.js +28 -5
- package/src/context/partial.js +9 -14
- package/src/context/temporary.js +120 -51
- package/src/mixins/step/unify.js +4 -4
- 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 +3 -3
- package/src/node/substitution/statement.js +3 -3
- package/src/node/substitution/term.js +3 -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 +14 -14
- package/src/ontology/assertion/defined.js +13 -13
- package/src/ontology/assertion/satisfies.js +2 -1
- package/src/ontology/assumption.js +385 -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 -372
- package/src/{equivalence.js → ontology/equivalence.js} +4 -3
- package/src/{equivalences.js → ontology/equivalences.js} +14 -12
- package/src/ontology/frame.js +53 -63
- package/src/ontology/judgement.js +8 -8
- package/src/ontology/metavariable.js +2 -2
- package/src/ontology/premise.js +18 -4
- package/src/ontology/reference.js +4 -3
- package/src/ontology/rule.js +4 -3
- package/src/ontology/statement.js +31 -27
- package/src/ontology/step.js +2 -2
- package/src/ontology/subproof.js +2 -2
- package/src/ontology/substitution/statement.js +56 -53
- package/src/ontology/substitution/term.js +9 -35
- package/src/ontology/substitution.js +11 -15
- package/src/{substitutions.js → ontology/substitutions.js} +4 -3
- package/src/ontology/supposition.js +18 -4
- package/src/ontology/term.js +27 -39
- package/src/ontology/topLevelAssertion.js +2 -2
- package/src/ontology/topLevelMetaAssertion.js +2 -2
- package/src/ontology/variable.js +0 -54
- package/src/preamble.js +6 -3
- package/src/ruleNames.js +10 -8
- package/src/unifier/intrinsicLevel.js +3 -14
- package/src/unifier/metaLevel.js +14 -25
- package/src/utilities/frame.js +13 -0
- package/src/utilities/statement.js +13 -0
- package/src/utilities/substitutions.js +59 -31
- package/src/utilities/variable.js +1 -10
- 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/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);
|
|
@@ -45,5 +45,5 @@ export default class FrameSubstitutionNode extends NonTerminalNode {
|
|
|
45
45
|
return firstMetavariableNode;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return
|
|
48
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return SubstitutionNode.fromRuleNameChildNodesOpacityAndPrecedence(FrameSubstitutionNode, ruleName, childNodes, opacity, precedence); }
|
|
49
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);
|
|
@@ -45,5 +45,5 @@ export default class TermSubstitutionNode extends NonTerminalNode {
|
|
|
45
45
|
return firstVariableNode;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return
|
|
48
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return SubstitutionNode.fromRuleNameChildNodesOpacityAndPrecedence(TermSubstitutionNode, ruleName, childNodes, opacity, precedence); }
|
|
49
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
|
}
|
|
@@ -23,6 +23,7 @@ import MetaTypeNode from "./node/metaType";
|
|
|
23
23
|
import EqualityNode from "./node/equality";
|
|
24
24
|
import VariableNode from "./node/variable";
|
|
25
25
|
import RuleBodyNode from "./node/body/rule";
|
|
26
|
+
import DocumentNode from "./node/document";
|
|
26
27
|
import StatementNode from "./node/statement";
|
|
27
28
|
import ReferenceNode from "./node/reference";
|
|
28
29
|
import DeductionNode from "./node/deduction";
|
|
@@ -38,10 +39,11 @@ import ConclusionNode from "./node/conclusion";
|
|
|
38
39
|
import ConjectureNode from "./node/conjecture";
|
|
39
40
|
import HypothesisNode from "./node/hypothesis";
|
|
40
41
|
import TypePrefixNode from "./node/typePrefix";
|
|
42
|
+
import AssumptionNode from "./node/assumption";
|
|
41
43
|
import RuleHeaderNode from "./node/header/rule";
|
|
42
44
|
import SuppositionNode from "./node/supposition";
|
|
45
|
+
import PlaceholderNode from "./node/placeholder";
|
|
43
46
|
import ConstructorNode from "./node/constructor";
|
|
44
|
-
import DeclarationNode from "./node/declaration";
|
|
45
47
|
import MetatheoremNode from "./node/metatheorem";
|
|
46
48
|
import TheoremBodyNode from "./node/body/theorem";
|
|
47
49
|
import AxiomHeaderNode from "./node/header/axiom";
|
|
@@ -102,6 +104,7 @@ import {
|
|
|
102
104
|
PROPERTY_RULE_NAME,
|
|
103
105
|
EQUALITY_RULE_NAME,
|
|
104
106
|
VARIABLE_RULE_NAME,
|
|
107
|
+
DOCUMENT_RULE_NAME,
|
|
105
108
|
META_TYPE_RULE_NAME,
|
|
106
109
|
SIGNATURE_RULE_NAME,
|
|
107
110
|
DEDUCTION_RULE_NAME,
|
|
@@ -118,11 +121,12 @@ import {
|
|
|
118
121
|
HYPOTHESIS_RULE_NAME,
|
|
119
122
|
AXIOM_BODY_RULE_NAME,
|
|
120
123
|
LEMMA_BODY_RULE_NAME,
|
|
124
|
+
ASSUMPTION_RULE_NAME,
|
|
125
|
+
PLACEHOLDER_RULE_NAME,
|
|
121
126
|
TYPE_PREFIX_RULE_NAME,
|
|
122
127
|
SUPPOSITION_RULE_NAME,
|
|
123
128
|
RULE_HEADER_RULE_NAME,
|
|
124
129
|
CONSTRUCTOR_RULE_NAME,
|
|
125
|
-
DECLARATION_RULE_NAME,
|
|
126
130
|
METATHEOREM_RULE_NAME,
|
|
127
131
|
AXIOM_HEADER_RULE_NAME,
|
|
128
132
|
LEMMA_HEADER_RULE_NAME,
|
|
@@ -159,8 +163,7 @@ import {
|
|
|
159
163
|
CONSTRUCTOR_DECLARATION_RULE_NAME,
|
|
160
164
|
TYPE_PREFIX_DECLARATION_RULE_NAME,
|
|
161
165
|
COMPLEX_TYPE_DECLARATION_RULE_NAME,
|
|
162
|
-
METAVARIABLE_DECLARATION_RULE_NAME
|
|
163
|
-
} from "./ruleNames";
|
|
166
|
+
METAVARIABLE_DECLARATION_RULE_NAME } from "./ruleNames";
|
|
164
167
|
|
|
165
168
|
const NonTerminalNodeMap = {
|
|
166
169
|
[RULE_RULE_NAME]: RuleNode,
|
|
@@ -184,6 +187,7 @@ const NonTerminalNodeMap = {
|
|
|
184
187
|
[EQUALITY_RULE_NAME]: EqualityNode,
|
|
185
188
|
[VARIABLE_RULE_NAME]: VariableNode,
|
|
186
189
|
[NONSENSE_RULE_NAME]: NonsenseNode,
|
|
190
|
+
[DOCUMENT_RULE_NAME]: DocumentNode,
|
|
187
191
|
[RULE_BODY_RULE_NAME]: RuleBodyNode,
|
|
188
192
|
[META_TYPE_RULE_NAME]: MetaTypeNode,
|
|
189
193
|
[SIGNATURE_RULE_NAME]: SignatureNode,
|
|
@@ -200,11 +204,12 @@ const NonTerminalNodeMap = {
|
|
|
200
204
|
[CONJECTURE_RULE_NAME]: ConjectureNode,
|
|
201
205
|
[DERIVATION_RULE_NAME]: DerivationNode,
|
|
202
206
|
[HYPOTHESIS_RULE_NAME]: HypothesisNode,
|
|
207
|
+
[ASSUMPTION_RULE_NAME]: AssumptionNode,
|
|
203
208
|
[RULE_HEADER_RULE_NAME]: RuleHeaderNode,
|
|
204
209
|
[TYPE_PREFIX_RULE_NAME]: TypePrefixNode,
|
|
210
|
+
[PLACEHOLDER_RULE_NAME]: PlaceholderNode,
|
|
205
211
|
[SUPPOSITION_RULE_NAME]: SuppositionNode,
|
|
206
212
|
[CONSTRUCTOR_RULE_NAME]: ConstructorNode,
|
|
207
|
-
[DECLARATION_RULE_NAME]: DeclarationNode,
|
|
208
213
|
[METATHEOREM_RULE_NAME]: MetatheoremNode,
|
|
209
214
|
[AXIOM_HEADER_RULE_NAME]: AxiomHeaderNode,
|
|
210
215
|
[LEMMA_HEADER_RULE_NAME]: LemmaHeaderNode,
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
import ontology from "../../ontology";
|
|
4
4
|
import Assertion from "../assertion";
|
|
5
|
-
import TemporaryContext from "../../context/temporary";
|
|
6
5
|
|
|
7
6
|
import { define } from "../../ontology";
|
|
8
7
|
import { termFromTermAndSubstitutions, frameFromFrameAndSubstitutions, statementFromStatementAndSubstitutions } from "../../utilities/substitutions";
|
|
@@ -167,7 +166,10 @@ export default define(class ContainedAssertion extends Assertion {
|
|
|
167
166
|
|
|
168
167
|
context.trace(`Verifying the '${containedAssertionString}' derived contained assertion...`);
|
|
169
168
|
|
|
170
|
-
|
|
169
|
+
const generalCotnext = null,
|
|
170
|
+
specificContext = context; ///
|
|
171
|
+
|
|
172
|
+
verifiesWhenDerived = verifyWhenDerived(this.term, this.frame, this.statement, this.negated, generalCotnext, specificContext);
|
|
171
173
|
|
|
172
174
|
if (verifiesWhenDerived) {
|
|
173
175
|
context.debug(`...verified the '${containedAssertionString}' derived contained assertion.`);
|
|
@@ -176,22 +178,18 @@ export default define(class ContainedAssertion extends Assertion {
|
|
|
176
178
|
return verifiesWhenDerived;
|
|
177
179
|
}
|
|
178
180
|
|
|
179
|
-
unifyIndependently(substitutions,
|
|
181
|
+
unifyIndependently(substitutions, generalContext, specificContext) {
|
|
180
182
|
let unifiesIndependently;
|
|
181
183
|
|
|
182
|
-
const
|
|
184
|
+
const context = specificContext, ///
|
|
185
|
+
containedAssertionString = this.getString(); ///
|
|
183
186
|
|
|
184
187
|
context.trace(`Unifying the '${containedAssertionString}' contained assertion independently...`);
|
|
185
188
|
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
const term = termFromTermAndSubstitutions(this.term, substitutions, context),
|
|
192
|
-
frame = frameFromFrameAndSubstitutions(this.frame, substitutions, context),
|
|
193
|
-
statement = statementFromStatementAndSubstitutions(this.statement, substitutions, context),
|
|
194
|
-
verifiesWhenDerived = verifyWhenDerived(term, frame, statement, this.negated, context);
|
|
189
|
+
const term = termFromTermAndSubstitutions(this.term, substitutions, generalContext, specificContext),
|
|
190
|
+
frame = frameFromFrameAndSubstitutions(this.frame, substitutions, generalContext, specificContext),
|
|
191
|
+
statement = statementFromStatementAndSubstitutions(this.statement, substitutions, generalContext, specificContext),
|
|
192
|
+
verifiesWhenDerived = verifyWhenDerived(term, frame, statement, this.negated, generalContext, specificContext);
|
|
195
193
|
|
|
196
194
|
unifiesIndependently = verifiesWhenDerived; ///
|
|
197
195
|
|
|
@@ -226,9 +224,11 @@ export default define(class ContainedAssertion extends Assertion {
|
|
|
226
224
|
}
|
|
227
225
|
});
|
|
228
226
|
|
|
229
|
-
function verifyWhenDerived(term, frame, statement, negated,
|
|
227
|
+
function verifyWhenDerived(term, frame, statement, negated, generalContext, specificContext) {
|
|
230
228
|
let verifiesWhenDerived = false;
|
|
231
229
|
|
|
230
|
+
const context = specificContext; ///
|
|
231
|
+
|
|
232
232
|
if (statement !== null) {
|
|
233
233
|
if (term !== null) {
|
|
234
234
|
const termContained = statement.isTermContained(term, context);
|