occam-verify-cli 1.0.437 → 1.0.444
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/context/file.js +38 -35
- package/lib/context/local.js +10 -10
- package/lib/context/release.js +6 -6
- package/lib/context/temporary.js +14 -14
- package/lib/element/assertion/contained.js +45 -45
- package/lib/element/assertion/defined.js +13 -13
- package/lib/element/assertion/property.js +23 -22
- package/lib/element/assertion/satisfies.js +7 -6
- package/lib/element/assertion/subproof.js +20 -17
- package/lib/element/assertion/type.js +3 -2
- package/lib/element/assertion.js +1 -23
- package/lib/element/assumption.js +24 -22
- package/lib/element/axiom.js +9 -12
- package/lib/element/axiomLemmaTheoremConjecture.js +32 -32
- package/lib/element/{statement/combinator → combinator}/bracketed.js +16 -16
- package/lib/element/combinator.js +229 -0
- package/lib/element/conclusion.js +11 -9
- package/lib/element/{term/constructor → constructor}/bracketed.js +5 -5
- package/lib/element/constructor.js +232 -0
- package/lib/element/declaration/combinator.js +2 -16
- package/lib/element/declaration/complexType.js +12 -12
- package/lib/element/declaration/constructor.js +13 -11
- package/lib/element/declaration/simpleType.js +4 -4
- package/lib/element/declaration/typePrefix.js +2 -2
- package/lib/element/declaration/variable.js +3 -3
- package/lib/element/deduction.js +11 -9
- package/lib/element/derivation.js +5 -8
- package/lib/element/equivalence.js +10 -10
- package/lib/element/equivalences.js +5 -5
- package/lib/element/frame.js +32 -38
- package/lib/element/hypothesis.js +3 -3
- package/lib/element/judgement.js +6 -4
- package/lib/element/label.js +16 -18
- package/lib/element/metaLemmaMetatheorem.js +5 -5
- package/lib/element/metaType.js +17 -80
- package/lib/element/metavariable.js +34 -34
- package/lib/element/parameter.js +3 -3
- package/lib/element/premise.js +43 -52
- package/lib/element/property.js +9 -9
- package/lib/element/propertyRelation.js +13 -13
- package/lib/element/reference.js +14 -17
- package/lib/element/rule.js +26 -50
- package/lib/element/signature.js +11 -11
- package/lib/element/statement.js +54 -56
- package/lib/element/step.js +79 -51
- package/lib/element/subDerivation.js +7 -10
- package/lib/element/subproof.js +6 -14
- package/lib/element/substitution/frame.js +1 -7
- package/lib/element/substitution/reference.js +2 -3
- package/lib/element/substitution/statement.js +44 -15
- package/lib/element/substitution/term.js +10 -57
- package/lib/element/substitution.js +5 -11
- package/lib/element/substitutions.js +29 -29
- package/lib/element/supposition.js +63 -55
- package/lib/element/term.js +21 -34
- package/lib/element/type.js +47 -60
- package/lib/element/typePrefix.js +5 -5
- package/lib/element/variable.js +9 -9
- package/lib/element.js +27 -3
- package/lib/metaTypes.js +52 -0
- package/lib/node/axiomLemmaTheoremConjecture.js +9 -9
- package/lib/node/body/axiom.js +2 -25
- package/lib/node/body/conjecture.js +2 -25
- package/lib/node/body/lemma.js +2 -25
- package/lib/node/body/metaLemma.js +2 -25
- package/lib/node/body/metatheorem.js +2 -25
- package/lib/node/body/rule.js +15 -1
- package/lib/node/body/theorem.js +2 -25
- package/lib/node/body.js +25 -2
- package/lib/node/combinator.js +11 -2
- package/lib/node/constructor.js +11 -2
- package/lib/node/declaration/combinator.js +5 -5
- package/lib/node/declaration/constructor.js +8 -8
- package/lib/node/declaration/property.js +15 -15
- package/lib/node/declaration/simpleType.js +31 -31
- package/lib/node/declaration/variable.js +8 -8
- package/lib/node/equality.js +8 -8
- package/lib/node/frame.js +20 -20
- package/lib/node/header.js +22 -22
- package/lib/node/metaLemmaMetaTheorem.js +16 -16
- package/lib/node/metavariable.js +15 -15
- package/lib/node/property.js +8 -8
- package/lib/node/propertyRelation.js +8 -8
- package/lib/node/rule.js +16 -16
- package/lib/node/statement.js +12 -12
- package/lib/node/step.js +22 -22
- package/lib/node/subproof.js +8 -8
- package/lib/node/substitution/frame.js +19 -19
- package/lib/node/substitution/statement.js +19 -19
- package/lib/node/substitution/term.js +19 -19
- package/lib/node/term.js +35 -35
- package/lib/preamble.js +5 -5
- package/lib/process/instantiate.js +20 -2
- package/lib/process/unify.js +39 -42
- package/lib/process/validate.js +431 -0
- package/lib/process/verify.js +44 -135
- package/lib/types.js +27 -0
- package/lib/utilities/brackets.js +4 -4
- package/lib/utilities/element.js +100 -61
- package/lib/utilities/instance.js +18 -18
- package/lib/utilities/statement.js +11 -16
- package/lib/utilities/string.js +21 -10
- package/lib/utilities/unification.js +237 -0
- package/lib/utilities/validation.js +251 -0
- package/package.json +6 -6
- package/src/context/file.js +37 -31
- package/src/context/local.js +8 -8
- package/src/context/release.js +9 -6
- package/src/context/temporary.js +11 -11
- package/src/element/assertion/contained.js +19 -20
- package/src/element/assertion/defined.js +11 -12
- package/src/element/assertion/property.js +20 -20
- package/src/element/assertion/satisfies.js +6 -6
- package/src/element/assertion/subproof.js +17 -15
- package/src/element/assertion/type.js +2 -2
- package/src/element/assertion.js +0 -2
- package/src/element/assumption.js +22 -19
- package/src/element/axiom.js +7 -11
- package/src/element/axiomLemmaTheoremConjecture.js +36 -36
- package/src/element/{statement/combinator → combinator}/bracketed.js +7 -7
- package/src/element/combinator.js +90 -0
- package/src/element/conclusion.js +12 -10
- package/src/element/{term/constructor → constructor}/bracketed.js +5 -5
- package/src/element/{term/constructor.js → constructor.js} +17 -25
- package/src/element/declaration/combinator.js +1 -22
- package/src/element/declaration/complexType.js +11 -11
- package/src/element/declaration/constructor.js +13 -10
- package/src/element/declaration/simpleType.js +3 -3
- package/src/element/declaration/typePrefix.js +1 -1
- package/src/element/declaration/variable.js +2 -2
- package/src/element/deduction.js +12 -9
- package/src/element/derivation.js +4 -8
- package/src/element/equivalence.js +8 -8
- package/src/element/equivalences.js +4 -4
- package/src/element/frame.js +28 -30
- package/src/element/hypothesis.js +2 -2
- package/src/element/judgement.js +6 -3
- package/src/element/label.js +14 -21
- package/src/element/metaLemmaMetatheorem.js +4 -3
- package/src/element/metaType.js +9 -45
- package/src/element/metavariable.js +29 -31
- package/src/element/parameter.js +2 -2
- package/src/element/premise.js +56 -62
- package/src/element/property.js +6 -6
- package/src/element/propertyRelation.js +11 -11
- package/src/element/reference.js +12 -21
- package/src/element/rule.js +28 -72
- package/src/element/signature.js +10 -9
- package/src/element/statement.js +69 -56
- package/src/element/step.js +89 -51
- package/src/element/subDerivation.js +6 -10
- package/src/element/subproof.js +4 -12
- package/src/element/substitution/frame.js +0 -2
- package/src/element/substitution/reference.js +1 -5
- package/src/element/substitution/statement.js +44 -14
- package/src/element/substitution/term.js +10 -13
- package/src/element/substitution.js +3 -5
- package/src/element/substitutions.js +48 -30
- package/src/element/supposition.js +88 -70
- package/src/element/term.js +18 -28
- package/src/element/type.js +42 -36
- package/src/element/typePrefix.js +3 -3
- package/src/element/variable.js +7 -7
- package/src/element.js +15 -1
- package/src/metaTypes.js +42 -0
- package/src/node/axiomLemmaTheoremConjecture.js +6 -6
- package/src/node/body/axiom.js +0 -21
- package/src/node/body/conjecture.js +0 -23
- package/src/node/body/lemma.js +0 -23
- package/src/node/body/metaLemma.js +0 -23
- package/src/node/body/metatheorem.js +0 -23
- package/src/node/body/rule.js +12 -0
- package/src/node/body/theorem.js +0 -23
- package/src/node/body.js +23 -0
- package/src/node/combinator.js +9 -0
- package/src/node/constructor.js +9 -0
- package/src/node/declaration/combinator.js +5 -5
- package/src/node/declaration/constructor.js +8 -8
- package/src/node/declaration/property.js +14 -14
- package/src/node/declaration/simpleType.js +31 -31
- package/src/node/declaration/variable.js +7 -7
- package/src/node/equality.js +7 -7
- package/src/node/frame.js +21 -21
- package/src/node/header.js +22 -22
- package/src/node/metaLemmaMetaTheorem.js +14 -14
- package/src/node/metavariable.js +14 -14
- package/src/node/property.js +7 -7
- package/src/node/propertyRelation.js +7 -7
- package/src/node/rule.js +15 -15
- package/src/node/statement.js +12 -12
- package/src/node/step.js +21 -21
- package/src/node/subproof.js +7 -7
- package/src/node/substitution/frame.js +18 -18
- package/src/node/substitution/statement.js +18 -18
- package/src/node/substitution/term.js +18 -18
- package/src/node/term.js +34 -34
- package/src/preamble.js +4 -4
- package/src/process/instantiate.js +12 -0
- package/src/process/unify.js +53 -57
- package/src/process/validate.js +316 -0
- package/src/process/verify.js +50 -138
- package/src/types.js +18 -0
- package/src/utilities/brackets.js +10 -6
- package/src/utilities/element.js +138 -91
- package/src/utilities/instance.js +18 -18
- package/src/utilities/statement.js +27 -28
- package/src/utilities/string.js +34 -20
- package/src/{mixins/step/unify.js → utilities/unification.js} +82 -68
- package/src/utilities/validation.js +369 -0
- package/lib/element/statement/combinator.js +0 -105
- package/lib/element/term/constructor.js +0 -172
- package/lib/mixins/statement/verify.js +0 -198
- package/lib/mixins/step/unify.js +0 -228
- package/lib/mixins/term/verify.js +0 -65
- package/src/element/statement/combinator.js +0 -59
- package/src/mixins/statement/verify.js +0 -295
- package/src/mixins/term/verify.js +0 -81
|
@@ -6,6 +6,13 @@ import { PROVISIONAL } from "../../constants";
|
|
|
6
6
|
import { TYPE_RULE_NAME, TYPES_RULE_NAME } from "../../ruleNames";
|
|
7
7
|
|
|
8
8
|
export default class SimpleTypeDeclarationNode extends DeclarationNode {
|
|
9
|
+
isPrefixed() {
|
|
10
|
+
const typeNode = this.getTypeNode(),
|
|
11
|
+
prefixed = typeNode.isPrefixed();
|
|
12
|
+
|
|
13
|
+
return prefixed;
|
|
14
|
+
}
|
|
15
|
+
|
|
9
16
|
isProvisional() {
|
|
10
17
|
let provisional = false;
|
|
11
18
|
|
|
@@ -28,11 +35,32 @@ export default class SimpleTypeDeclarationNode extends DeclarationNode {
|
|
|
28
35
|
return provisional;
|
|
29
36
|
}
|
|
30
37
|
|
|
31
|
-
|
|
38
|
+
getTypePrefixName() {
|
|
32
39
|
const typeNode = this.getTypeNode(),
|
|
33
|
-
|
|
40
|
+
typePrefixName = typeNode.getTypePrefixName();
|
|
34
41
|
|
|
35
|
-
return
|
|
42
|
+
return typePrefixName;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
getSuperTypeNodes() {
|
|
46
|
+
let superTypeNodes = [];
|
|
47
|
+
|
|
48
|
+
const typesNode = this.getTypesNode();
|
|
49
|
+
|
|
50
|
+
if (typesNode !== null) {
|
|
51
|
+
const typeNodes = typesNode.getTypeNodes();
|
|
52
|
+
|
|
53
|
+
superTypeNodes = typeNodes; ///
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return superTypeNodes;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
getNominalTypeName() {
|
|
60
|
+
const typeNode = this.getTypeNode(),
|
|
61
|
+
nominalTypeName = typeNode.getNominalTypeName();
|
|
62
|
+
|
|
63
|
+
return nominalTypeName;
|
|
36
64
|
}
|
|
37
65
|
|
|
38
66
|
getTypeName() {
|
|
@@ -61,34 +89,6 @@ export default class SimpleTypeDeclarationNode extends DeclarationNode {
|
|
|
61
89
|
return typesNode;
|
|
62
90
|
}
|
|
63
91
|
|
|
64
|
-
getTypePrefixName() {
|
|
65
|
-
const typeNode = this.getTypeNode(),
|
|
66
|
-
typePrefixName = typeNode.getTypePrefixName();
|
|
67
|
-
|
|
68
|
-
return typePrefixName;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
getSuperTypeNodes() {
|
|
72
|
-
let superTypeNodes = [];
|
|
73
|
-
|
|
74
|
-
const typesNode = this.getTypesNode();
|
|
75
|
-
|
|
76
|
-
if (typesNode !== null) {
|
|
77
|
-
const typeNodes = typesNode.getTypeNodes();
|
|
78
|
-
|
|
79
|
-
superTypeNodes = typeNodes; ///
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return superTypeNodes;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
getNominalTypeName() {
|
|
86
|
-
const typeNode = this.getTypeNode(),
|
|
87
|
-
nominalTypeName = typeNode.getNominalTypeName();
|
|
88
|
-
|
|
89
|
-
return nominalTypeName;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
92
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return DeclarationNode.fromRuleNameChildNodesOpacityAndPrecedence(SimpleTypeDeclarationNode, ruleName, childNodes, opacity, precedence); }
|
|
93
93
|
}
|
|
94
94
|
|
|
@@ -28,6 +28,13 @@ export default class VariableDeclarationNode extends DeclarationNode {
|
|
|
28
28
|
return provisional;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
getVariableIdentifier() {
|
|
32
|
+
const variableNode = this.getVariableNode(),
|
|
33
|
+
variableIdentifier = variableNode.getVariableIdentifier();
|
|
34
|
+
|
|
35
|
+
return variableIdentifier;
|
|
36
|
+
}
|
|
37
|
+
|
|
31
38
|
getTypeNode() {
|
|
32
39
|
const ruleName = TYPE_RULE_NAME,
|
|
33
40
|
typeNode = this.getNodeByRuleName(ruleName);
|
|
@@ -42,12 +49,5 @@ export default class VariableDeclarationNode extends DeclarationNode {
|
|
|
42
49
|
return variableNode;
|
|
43
50
|
}
|
|
44
51
|
|
|
45
|
-
getVariableIdentifier() {
|
|
46
|
-
const variableNode = this.getVariableNode(),
|
|
47
|
-
variableIdentifier = variableNode.getVariableIdentifier();
|
|
48
|
-
|
|
49
|
-
return variableIdentifier;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
52
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return DeclarationNode.fromRuleNameChildNodesOpacityAndPrecedence(VariableDeclarationNode, ruleName, childNodes, opacity, precedence); }
|
|
53
53
|
}
|
package/src/node/equality.js
CHANGED
|
@@ -9,13 +9,6 @@ import { TERM_RULE_NAME } from "../ruleNames";
|
|
|
9
9
|
const { first, last } = arrayUtilities;
|
|
10
10
|
|
|
11
11
|
export default class EqualityNode extends NonTerminalNode {
|
|
12
|
-
getTermNodes() {
|
|
13
|
-
const ruleName = TERM_RULE_NAME,
|
|
14
|
-
termNodes = this.getNodesByRuleName(ruleName);
|
|
15
|
-
|
|
16
|
-
return termNodes;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
12
|
getLeftTermNode() {
|
|
20
13
|
const termNodes = this.getTermNodes(),
|
|
21
14
|
firstTermNode = first(termNodes),
|
|
@@ -32,5 +25,12 @@ export default class EqualityNode extends NonTerminalNode {
|
|
|
32
25
|
return rightTermNode;
|
|
33
26
|
}
|
|
34
27
|
|
|
28
|
+
getTermNodes() {
|
|
29
|
+
const ruleName = TERM_RULE_NAME,
|
|
30
|
+
termNodes = this.getNodesByRuleName(ruleName);
|
|
31
|
+
|
|
32
|
+
return termNodes;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
35
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(EqualityNode, ruleName, childNodes, opacity, precedence); }
|
|
36
36
|
}
|
package/src/node/frame.js
CHANGED
|
@@ -17,13 +17,6 @@ export default class FrameNode extends NonTerminalNode {
|
|
|
17
17
|
return singular;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
getAssumptionNodes() {
|
|
21
|
-
const ruleName = ASSUMPTION_RULE_NAME,
|
|
22
|
-
declarationNodes = this.getNodesByRuleName(ruleName);
|
|
23
|
-
|
|
24
|
-
return declarationNodes;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
20
|
getMetavariableName() {
|
|
28
21
|
let metavariableName = null;
|
|
29
22
|
|
|
@@ -43,20 +36,6 @@ export default class FrameNode extends NonTerminalNode {
|
|
|
43
36
|
return metavariableNode;
|
|
44
37
|
}
|
|
45
38
|
|
|
46
|
-
getMetavariableNodes() {
|
|
47
|
-
const ruleName = METAVARIABLE_RULE_NAME,
|
|
48
|
-
metavariableNodes = this.getNodesByRuleName(ruleName);
|
|
49
|
-
|
|
50
|
-
return metavariableNodes;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
getSingularAssumptionNode() {
|
|
54
|
-
const ruleName = ASSUMPTION_RULE_NAME,
|
|
55
|
-
singularAssumptionNode = this.getSingularNodeByRuleName(ruleName);
|
|
56
|
-
|
|
57
|
-
return singularAssumptionNode;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
39
|
getSingularMetavariableNode() {
|
|
61
40
|
let singularMetavariableNode = null;
|
|
62
41
|
|
|
@@ -71,5 +50,26 @@ export default class FrameNode extends NonTerminalNode {
|
|
|
71
50
|
return singularMetavariableNode;
|
|
72
51
|
}
|
|
73
52
|
|
|
53
|
+
getAssumptionNodes() {
|
|
54
|
+
const ruleName = ASSUMPTION_RULE_NAME,
|
|
55
|
+
declarationNodes = this.getNodesByRuleName(ruleName);
|
|
56
|
+
|
|
57
|
+
return declarationNodes;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
getMetavariableNodes() {
|
|
61
|
+
const ruleName = METAVARIABLE_RULE_NAME,
|
|
62
|
+
metavariableNodes = this.getNodesByRuleName(ruleName);
|
|
63
|
+
|
|
64
|
+
return metavariableNodes;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
getSingularAssumptionNode() {
|
|
68
|
+
const ruleName = ASSUMPTION_RULE_NAME,
|
|
69
|
+
singularAssumptionNode = this.getSingularNodeByRuleName(ruleName);
|
|
70
|
+
|
|
71
|
+
return singularAssumptionNode;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
74
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(FrameNode, ruleName, childNodes, opacity, precedence); }
|
|
75
75
|
}
|
package/src/node/header.js
CHANGED
|
@@ -2,30 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
import NonTerminalNode from "../nonTerminalNode";
|
|
4
4
|
|
|
5
|
-
import {SIGNATURE_RULE_NAME, PARENTHESISED_LABEL_RULE_NAME, PARENTHESISED_LABELS_RULE_NAME } from "../ruleNames";
|
|
5
|
+
import { SIGNATURE_RULE_NAME, PARENTHESISED_LABEL_RULE_NAME, PARENTHESISED_LABELS_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class HeaderNode extends NonTerminalNode {
|
|
8
|
-
getParenthesisedLabelsNode() {
|
|
9
|
-
const ruleName = PARENTHESISED_LABELS_RULE_NAME,
|
|
10
|
-
parenthesisedLabelsNode = this.getNodeByRuleName(ruleName);
|
|
11
|
-
|
|
12
|
-
return parenthesisedLabelsNode;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
getParenthesisedLabelNode() {
|
|
16
|
-
const ruleName = PARENTHESISED_LABEL_RULE_NAME,
|
|
17
|
-
parenthesisedLabelsNode = this.getNodeByRuleName(ruleName);
|
|
18
|
-
|
|
19
|
-
return parenthesisedLabelsNode;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
getSignatureNode() {
|
|
23
|
-
const ruleName = SIGNATURE_RULE_NAME,
|
|
24
|
-
signatureNode = this.getNodeByRuleName(ruleName);
|
|
25
|
-
|
|
26
|
-
return signatureNode;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
8
|
getLabelNodes() {
|
|
30
9
|
let labelNodes = [];
|
|
31
10
|
|
|
@@ -50,5 +29,26 @@ export default class HeaderNode extends NonTerminalNode {
|
|
|
50
29
|
return labelNode;
|
|
51
30
|
}
|
|
52
31
|
|
|
32
|
+
getSignatureNode() {
|
|
33
|
+
const ruleName = SIGNATURE_RULE_NAME,
|
|
34
|
+
signatureNode = this.getNodeByRuleName(ruleName);
|
|
35
|
+
|
|
36
|
+
return signatureNode;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
getParenthesisedLabelNode() {
|
|
40
|
+
const ruleName = PARENTHESISED_LABEL_RULE_NAME,
|
|
41
|
+
parenthesisedLabelsNode = this.getNodeByRuleName(ruleName);
|
|
42
|
+
|
|
43
|
+
return parenthesisedLabelsNode;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
getParenthesisedLabelsNode() {
|
|
47
|
+
const ruleName = PARENTHESISED_LABELS_RULE_NAME,
|
|
48
|
+
parenthesisedLabelsNode = this.getNodeByRuleName(ruleName);
|
|
49
|
+
|
|
50
|
+
return parenthesisedLabelsNode;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
53
|
static fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence); }
|
|
54
54
|
}
|
|
@@ -11,14 +11,6 @@ export default class MetaLemmaMetaTheoremNode extends NonTerminalNode {
|
|
|
11
11
|
return axiomBodyNode;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
getHeaderNode() {
|
|
15
|
-
const { headerRuleName } = this.constructor,
|
|
16
|
-
ruleName = headerRuleName, ///
|
|
17
|
-
headerNode = this.getNodeByRuleName(ruleName);
|
|
18
|
-
|
|
19
|
-
return headerNode;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
14
|
getLabelNode() {
|
|
23
15
|
const headerNode = this.getHeaderNode(),
|
|
24
16
|
labelNode = headerNode.getLabelNode();
|
|
@@ -26,11 +18,19 @@ export default class MetaLemmaMetaTheoremNode extends NonTerminalNode {
|
|
|
26
18
|
return labelNode;
|
|
27
19
|
}
|
|
28
20
|
|
|
29
|
-
|
|
21
|
+
getProofNode() {
|
|
30
22
|
const bodyNode = this.getBodyNode(),
|
|
31
|
-
|
|
23
|
+
proofNode = bodyNode.getProofNode();
|
|
32
24
|
|
|
33
|
-
return
|
|
25
|
+
return proofNode;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
getHeaderNode() {
|
|
29
|
+
const { headerRuleName } = this.constructor,
|
|
30
|
+
ruleName = headerRuleName, ///
|
|
31
|
+
headerNode = this.getNodeByRuleName(ruleName);
|
|
32
|
+
|
|
33
|
+
return headerNode;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
getDeductionNode() {
|
|
@@ -40,11 +40,11 @@ export default class MetaLemmaMetaTheoremNode extends NonTerminalNode {
|
|
|
40
40
|
return deductionNode;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
getSuppositionNodes() {
|
|
44
44
|
const bodyNode = this.getBodyNode(),
|
|
45
|
-
|
|
45
|
+
suppositionNodes = bodyNode.getSuppositionNodes();
|
|
46
46
|
|
|
47
|
-
return
|
|
47
|
+
return suppositionNodes;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
static fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence); }
|
package/src/node/metavariable.js
CHANGED
|
@@ -5,20 +5,6 @@ import NonTerminalNode from "../nonTerminalNode";
|
|
|
5
5
|
import { TERM_RULE_NAME, TYPE_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class MetavariableNode extends NonTerminalNode {
|
|
8
|
-
getTermNode() {
|
|
9
|
-
const ruleName = TERM_RULE_NAME,
|
|
10
|
-
termNode = this.getNodeByRuleName(ruleName);
|
|
11
|
-
|
|
12
|
-
return termNode;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
getTypeNode() {
|
|
16
|
-
const ruleName = TYPE_RULE_NAME,
|
|
17
|
-
typeNode = this.getNodeByRuleName(ruleName);
|
|
18
|
-
|
|
19
|
-
return typeNode;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
8
|
getMetavariableName() {
|
|
23
9
|
let metaVariableName;
|
|
24
10
|
|
|
@@ -38,5 +24,19 @@ export default class MetavariableNode extends NonTerminalNode {
|
|
|
38
24
|
return metaVariableName;
|
|
39
25
|
}
|
|
40
26
|
|
|
27
|
+
getTermNode() {
|
|
28
|
+
const ruleName = TERM_RULE_NAME,
|
|
29
|
+
termNode = this.getNodeByRuleName(ruleName);
|
|
30
|
+
|
|
31
|
+
return termNode;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
getTypeNode() {
|
|
35
|
+
const ruleName = TYPE_RULE_NAME,
|
|
36
|
+
typeNode = this.getNodeByRuleName(ruleName);
|
|
37
|
+
|
|
38
|
+
return typeNode;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
41
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(MetavariableNode, ruleName, childNodes, opacity, precedence); }
|
|
42
42
|
}
|
package/src/node/property.js
CHANGED
|
@@ -5,13 +5,6 @@ import NonTerminalNode from "../nonTerminalNode";
|
|
|
5
5
|
import { SINGLE_SPACE } from "../constants";
|
|
6
6
|
|
|
7
7
|
export default class PropertyNode extends NonTerminalNode {
|
|
8
|
-
getPropertyName() {
|
|
9
|
-
const names = this.getNames(),
|
|
10
|
-
propertyName = names.join(SINGLE_SPACE);
|
|
11
|
-
|
|
12
|
-
return propertyName;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
8
|
getNames() {
|
|
16
9
|
const names = this.mapChildNode((childNode) => {
|
|
17
10
|
const terminalNode = childNode, ///
|
|
@@ -24,5 +17,12 @@ export default class PropertyNode extends NonTerminalNode {
|
|
|
24
17
|
return names;
|
|
25
18
|
}
|
|
26
19
|
|
|
20
|
+
getPropertyName() {
|
|
21
|
+
const names = this.getNames(),
|
|
22
|
+
propertyName = names.join(SINGLE_SPACE);
|
|
23
|
+
|
|
24
|
+
return propertyName;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
27
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(PropertyNode, ruleName, childNodes, opacity, precedence); }
|
|
28
28
|
}
|
|
@@ -5,6 +5,13 @@ import NonTerminalNode from "../nonTerminalNode";
|
|
|
5
5
|
import { TERM_RULE_NAME, PROPERTY_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class PropertyRelationNode extends NonTerminalNode {
|
|
8
|
+
getPropertyName() {
|
|
9
|
+
const propertyNode = this.getPropertyNode(),
|
|
10
|
+
propertyName = propertyNode.getPropertyName();
|
|
11
|
+
|
|
12
|
+
return propertyName;
|
|
13
|
+
}
|
|
14
|
+
|
|
8
15
|
getTermNode() {
|
|
9
16
|
const ruleName = TERM_RULE_NAME,
|
|
10
17
|
termNode = this.getNodeByRuleName(ruleName);
|
|
@@ -19,12 +26,5 @@ export default class PropertyRelationNode extends NonTerminalNode {
|
|
|
19
26
|
return propertyNode;
|
|
20
27
|
}
|
|
21
28
|
|
|
22
|
-
getPropertyName() {
|
|
23
|
-
const propertyNode = this.getPropertyNode(),
|
|
24
|
-
propertyName = propertyNode.getPropertyName();
|
|
25
|
-
|
|
26
|
-
return propertyName;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
29
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(PropertyRelationNode, ruleName, childNodes, opacity, precedence); }
|
|
30
30
|
}
|
package/src/node/rule.js
CHANGED
|
@@ -5,18 +5,11 @@ import NonTerminalNode from "../nonTerminalNode";
|
|
|
5
5
|
import { RULE_BODY_RULE_NAME, RULE_HEADER_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class RuleNode extends NonTerminalNode {
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return ruleBodyNode;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
getRuleHeaderNode() {
|
|
16
|
-
const ruleName = RULE_HEADER_RULE_NAME,
|
|
17
|
-
ruleHeaderNode = this.getNodeByRuleName(ruleName);
|
|
8
|
+
getProofNode() {
|
|
9
|
+
const ruleBodyNode = this.getRuleBodyNode(),
|
|
10
|
+
proofNode = ruleBodyNode.getProofNode();
|
|
18
11
|
|
|
19
|
-
return
|
|
12
|
+
return proofNode;
|
|
20
13
|
}
|
|
21
14
|
|
|
22
15
|
getLabelNodes() {
|
|
@@ -40,11 +33,18 @@ export default class RuleNode extends NonTerminalNode {
|
|
|
40
33
|
return conclusionNode;
|
|
41
34
|
}
|
|
42
35
|
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
|
|
36
|
+
getRuleBodyNode() {
|
|
37
|
+
const ruleName = RULE_BODY_RULE_NAME,
|
|
38
|
+
ruleBodyNode = this.getNodeByRuleName(ruleName);
|
|
46
39
|
|
|
47
|
-
return
|
|
40
|
+
return ruleBodyNode;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
getRuleHeaderNode() {
|
|
44
|
+
const ruleName = RULE_HEADER_RULE_NAME,
|
|
45
|
+
ruleHeaderNode = this.getNodeByRuleName(ruleName);
|
|
46
|
+
|
|
47
|
+
return ruleHeaderNode;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(RuleNode, ruleName, childNodes, opacity, precedence); }
|
package/src/node/statement.js
CHANGED
|
@@ -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
|
+
isSingular() {
|
|
23
|
+
let singular = false;
|
|
24
|
+
|
|
25
|
+
const singularMetavariableNode = this.getSingularMetavariableNode();
|
|
26
|
+
|
|
27
|
+
if (singularMetavariableNode !== null) {
|
|
28
|
+
singular = true;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return singular;
|
|
32
|
+
}
|
|
33
|
+
|
|
22
34
|
getMetavariableName() {
|
|
23
35
|
let metavariableName = null;
|
|
24
36
|
|
|
@@ -46,18 +58,6 @@ export default class StatementNode extends NonTerminalNode {
|
|
|
46
58
|
return substitutionNode;
|
|
47
59
|
}
|
|
48
60
|
|
|
49
|
-
isSingular() {
|
|
50
|
-
let singular = false;
|
|
51
|
-
|
|
52
|
-
const singularMetavariableNode = this.getSingularMetavariableNode();
|
|
53
|
-
|
|
54
|
-
if (singularMetavariableNode !== null) {
|
|
55
|
-
singular = true;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return singular;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
61
|
getTermNodes() {
|
|
62
62
|
const ruleName = TERM_RULE_NAME,
|
|
63
63
|
termNodes = this.getDescendantNodesByRuleName(ruleName);
|
package/src/node/step.js
CHANGED
|
@@ -17,27 +17,6 @@ export default class StepNode extends NonTerminalNode {
|
|
|
17
17
|
return subproofNode;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
getNonsenseNode() {
|
|
21
|
-
const ruleName = NONSENSE_RULE_NAME,
|
|
22
|
-
nonsenseNode = this.getNodeByRuleName(ruleName);
|
|
23
|
-
|
|
24
|
-
return nonsenseNode;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
getStatementNode() {
|
|
28
|
-
const ruleName = STATEMENT_RULE_NAME,
|
|
29
|
-
statementNode = this.getNodeByRuleName(ruleName);
|
|
30
|
-
|
|
31
|
-
return statementNode;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
getQualificationNode() {
|
|
35
|
-
const ruleName = QUALIFICATION_RULE_NAME,
|
|
36
|
-
qualificationNode = this.getNodeByRuleName(ruleName);
|
|
37
|
-
|
|
38
|
-
return qualificationNode;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
20
|
getReferenceNode() {
|
|
42
21
|
let referenceNode = null;
|
|
43
22
|
|
|
@@ -62,5 +41,26 @@ export default class StepNode extends NonTerminalNode {
|
|
|
62
41
|
return satisfiedAssertionNode;
|
|
63
42
|
}
|
|
64
43
|
|
|
44
|
+
getNonsenseNode() {
|
|
45
|
+
const ruleName = NONSENSE_RULE_NAME,
|
|
46
|
+
nonsenseNode = this.getNodeByRuleName(ruleName);
|
|
47
|
+
|
|
48
|
+
return nonsenseNode;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
getStatementNode() {
|
|
52
|
+
const ruleName = STATEMENT_RULE_NAME,
|
|
53
|
+
statementNode = this.getNodeByRuleName(ruleName);
|
|
54
|
+
|
|
55
|
+
return statementNode;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
getQualificationNode() {
|
|
59
|
+
const ruleName = QUALIFICATION_RULE_NAME,
|
|
60
|
+
qualificationNode = this.getNodeByRuleName(ruleName);
|
|
61
|
+
|
|
62
|
+
return qualificationNode;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
65
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(StepNode, ruleName, childNodes, opacity, precedence); }
|
|
66
66
|
}
|
package/src/node/subproof.js
CHANGED
|
@@ -24,13 +24,6 @@ export default class SubproofNode extends NonTerminalNode {
|
|
|
24
24
|
return lastStepNode;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
getSubDerivationNode() {
|
|
28
|
-
const ruleName = SUB_DERIVATION_RULE_NAME,
|
|
29
|
-
subDerivationNode = this.getNodeByRuleName(ruleName);
|
|
30
|
-
|
|
31
|
-
return subDerivationNode;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
27
|
getSuppositionNodes() {
|
|
35
28
|
const ruleName = SUPPOSITION_RULE_NAME,
|
|
36
29
|
suppositionNodes = this.getNodesByRuleName(ruleName);
|
|
@@ -38,5 +31,12 @@ export default class SubproofNode extends NonTerminalNode {
|
|
|
38
31
|
return suppositionNodes;
|
|
39
32
|
}
|
|
40
33
|
|
|
34
|
+
getSubDerivationNode() {
|
|
35
|
+
const ruleName = SUB_DERIVATION_RULE_NAME,
|
|
36
|
+
subDerivationNode = this.getNodeByRuleName(ruleName);
|
|
37
|
+
|
|
38
|
+
return subDerivationNode;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
41
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(SubproofNode, ruleName, childNodes, opacity, precedence); }
|
|
42
42
|
}
|
|
@@ -5,13 +5,6 @@ import SubstitutionNode from "../../node/substitution";
|
|
|
5
5
|
import { FRAME_RULE_NAME } from "../../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class FrameSubstitutionNode extends SubstitutionNode {
|
|
8
|
-
getMetavariableNode() {
|
|
9
|
-
const lastMetavariableNode = this.getLastMetavariableNode(),
|
|
10
|
-
metavariableNode = lastMetavariableNode; ///
|
|
11
|
-
|
|
12
|
-
return metavariableNode;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
8
|
getFrameNode() {
|
|
16
9
|
const firstFrameNode = this.getFirstFrameNode(),
|
|
17
10
|
frameNode = firstFrameNode; ///
|
|
@@ -19,18 +12,11 @@ export default class FrameSubstitutionNode extends SubstitutionNode {
|
|
|
19
12
|
return frameNode;
|
|
20
13
|
}
|
|
21
14
|
|
|
22
|
-
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return lastFrameNode;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
getFirstFrameNode() {
|
|
30
|
-
const ruleName = FRAME_RULE_NAME,
|
|
31
|
-
firstFrameNode = this.getFirstNodeByRuleName(ruleName);
|
|
15
|
+
getMetavariableNode() {
|
|
16
|
+
const lastMetavariableNode = this.getLastMetavariableNode(),
|
|
17
|
+
metavariableNode = lastMetavariableNode; ///
|
|
32
18
|
|
|
33
|
-
return
|
|
19
|
+
return metavariableNode;
|
|
34
20
|
}
|
|
35
21
|
|
|
36
22
|
getLastMetavariableNode() {
|
|
@@ -59,5 +45,19 @@ export default class FrameSubstitutionNode extends SubstitutionNode {
|
|
|
59
45
|
return firstMetavariableNode;
|
|
60
46
|
}
|
|
61
47
|
|
|
48
|
+
getLastFrameNode() {
|
|
49
|
+
const ruleName = FRAME_RULE_NAME,
|
|
50
|
+
lastFrameNode = this.getLastNodeByRuleName(ruleName);
|
|
51
|
+
|
|
52
|
+
return lastFrameNode;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
getFirstFrameNode() {
|
|
56
|
+
const ruleName = FRAME_RULE_NAME,
|
|
57
|
+
firstFrameNode = this.getFirstNodeByRuleName(ruleName);
|
|
58
|
+
|
|
59
|
+
return firstFrameNode;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
62
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return SubstitutionNode.fromRuleNameChildNodesOpacityAndPrecedence(FrameSubstitutionNode, ruleName, childNodes, opacity, precedence); }
|
|
63
63
|
}
|
|
@@ -5,13 +5,6 @@ import SubstitutionNode from "../../node/substitution";
|
|
|
5
5
|
import { STATEMENT_RULE_NAME } from "../../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class StatementSubstitutionNode extends SubstitutionNode {
|
|
8
|
-
getMetavariableNode() {
|
|
9
|
-
const lastMetavariableNode = this.getLastVariableNode(),
|
|
10
|
-
metavariableNode = lastMetavariableNode; ///
|
|
11
|
-
|
|
12
|
-
return metavariableNode;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
8
|
getStatementNode() {
|
|
16
9
|
const firstStatementNode = this.getFirstStatementNode(),
|
|
17
10
|
statementNode = firstStatementNode; ///
|
|
@@ -19,18 +12,11 @@ export default class StatementSubstitutionNode extends SubstitutionNode {
|
|
|
19
12
|
return statementNode;
|
|
20
13
|
}
|
|
21
14
|
|
|
22
|
-
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return lastStatementNode;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
getFirstStatementNode() {
|
|
30
|
-
const ruleName = STATEMENT_RULE_NAME,
|
|
31
|
-
firstStatementNode = this.getFirstNodeByRuleName(ruleName);
|
|
15
|
+
getMetavariableNode() {
|
|
16
|
+
const lastMetavariableNode = this.getLastVariableNode(),
|
|
17
|
+
metavariableNode = lastMetavariableNode; ///
|
|
32
18
|
|
|
33
|
-
return
|
|
19
|
+
return metavariableNode;
|
|
34
20
|
}
|
|
35
21
|
|
|
36
22
|
getLastMetavariableNode() {
|
|
@@ -59,5 +45,19 @@ export default class StatementSubstitutionNode extends SubstitutionNode {
|
|
|
59
45
|
return firstMetavariableNode;
|
|
60
46
|
}
|
|
61
47
|
|
|
48
|
+
getLastStatementNode() {
|
|
49
|
+
const ruleName = STATEMENT_RULE_NAME,
|
|
50
|
+
lastStatementNode = this.getLastNodeByRuleName(ruleName);
|
|
51
|
+
|
|
52
|
+
return lastStatementNode;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
getFirstStatementNode() {
|
|
56
|
+
const ruleName = STATEMENT_RULE_NAME,
|
|
57
|
+
firstStatementNode = this.getFirstNodeByRuleName(ruleName);
|
|
58
|
+
|
|
59
|
+
return firstStatementNode;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
62
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return SubstitutionNode.fromRuleNameChildNodesOpacityAndPrecedence(StatementSubstitutionNode, ruleName, childNodes, opacity, precedence); }
|
|
63
63
|
}
|