occam-verify-cli 1.0.438 → 1.0.448

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.
Files changed (222) hide show
  1. package/lib/context/file.js +42 -39
  2. package/lib/context/local.js +34 -34
  3. package/lib/context/release.js +3 -7
  4. package/lib/context/temporary.js +26 -26
  5. package/lib/element/assertion/contained.js +45 -45
  6. package/lib/element/assertion/defined.js +13 -13
  7. package/lib/element/assertion/property.js +23 -22
  8. package/lib/element/assertion/satisfies.js +7 -6
  9. package/lib/element/assertion/subproof.js +20 -17
  10. package/lib/element/assertion/type.js +3 -2
  11. package/lib/element/assertion.js +1 -23
  12. package/lib/element/assumption.js +24 -22
  13. package/lib/element/axiom.js +27 -30
  14. package/lib/element/axiomLemmaTheoremConjecture.js +50 -57
  15. package/lib/element/{statement/combinator → combinator}/bracketed.js +16 -16
  16. package/lib/element/combinator.js +229 -0
  17. package/lib/element/conclusion.js +11 -9
  18. package/lib/element/{term/constructor → constructor}/bracketed.js +5 -5
  19. package/lib/element/constructor.js +232 -0
  20. package/lib/element/declaration/combinator.js +2 -16
  21. package/lib/element/declaration/complexType.js +12 -12
  22. package/lib/element/declaration/constructor.js +13 -11
  23. package/lib/element/declaration/simpleType.js +4 -4
  24. package/lib/element/declaration/typePrefix.js +2 -2
  25. package/lib/element/declaration/variable.js +3 -3
  26. package/lib/element/deduction.js +11 -9
  27. package/lib/element/derivation.js +17 -20
  28. package/lib/element/equivalence.js +10 -10
  29. package/lib/element/equivalences.js +5 -5
  30. package/lib/element/frame.js +32 -38
  31. package/lib/element/hypothesis.js +16 -57
  32. package/lib/element/judgement.js +6 -4
  33. package/lib/element/label.js +8 -8
  34. package/lib/element/metaLemmaMetatheorem.js +6 -39
  35. package/lib/element/metaType.js +17 -80
  36. package/lib/element/metavariable.js +38 -34
  37. package/lib/element/parameter.js +3 -3
  38. package/lib/element/premise.js +92 -174
  39. package/lib/element/proof.js +7 -7
  40. package/lib/element/proofAssertion.js +203 -0
  41. package/lib/element/property.js +9 -9
  42. package/lib/element/propertyRelation.js +13 -13
  43. package/lib/element/reference.js +16 -17
  44. package/lib/element/rule.js +46 -46
  45. package/lib/element/signature.js +11 -11
  46. package/lib/element/statement.js +18 -18
  47. package/lib/element/step.js +73 -124
  48. package/lib/element/subDerivation.js +17 -20
  49. package/lib/element/subproof.js +16 -24
  50. package/lib/element/substitution/frame.js +1 -7
  51. package/lib/element/substitution/reference.js +2 -3
  52. package/lib/element/substitution/statement.js +44 -15
  53. package/lib/element/substitution/term.js +10 -57
  54. package/lib/element/substitution.js +5 -11
  55. package/lib/element/substitutions.js +29 -29
  56. package/lib/element/supposition.js +95 -177
  57. package/lib/element/term.js +21 -34
  58. package/lib/element/type.js +47 -60
  59. package/lib/element/typePrefix.js +5 -5
  60. package/lib/element/variable.js +9 -9
  61. package/lib/element.js +9 -3
  62. package/lib/metaTypes.js +63 -0
  63. package/lib/node/axiomLemmaTheoremConjecture.js +9 -9
  64. package/lib/node/body/axiom.js +2 -25
  65. package/lib/node/body/conjecture.js +2 -25
  66. package/lib/node/body/lemma.js +2 -25
  67. package/lib/node/body/metaLemma.js +2 -25
  68. package/lib/node/body/metatheorem.js +2 -25
  69. package/lib/node/body/rule.js +15 -1
  70. package/lib/node/body/theorem.js +2 -25
  71. package/lib/node/body.js +25 -2
  72. package/lib/node/combinator.js +11 -2
  73. package/lib/node/constructor.js +11 -2
  74. package/lib/node/declaration/combinator.js +5 -5
  75. package/lib/node/declaration/constructor.js +8 -8
  76. package/lib/node/declaration/property.js +15 -15
  77. package/lib/node/declaration/simpleType.js +31 -31
  78. package/lib/node/declaration/variable.js +8 -8
  79. package/lib/node/equality.js +8 -8
  80. package/lib/node/frame.js +20 -20
  81. package/lib/node/header.js +22 -22
  82. package/lib/node/metaLemmaMetaTheorem.js +16 -16
  83. package/lib/node/metavariable.js +15 -15
  84. package/lib/node/property.js +8 -8
  85. package/lib/node/propertyRelation.js +8 -8
  86. package/lib/node/rule.js +16 -16
  87. package/lib/node/statement.js +12 -12
  88. package/lib/node/step.js +22 -22
  89. package/lib/node/subDerivation.js +1 -8
  90. package/lib/node/subproof.js +5 -12
  91. package/lib/node/substitution/frame.js +19 -19
  92. package/lib/node/substitution/statement.js +19 -19
  93. package/lib/node/substitution/term.js +19 -19
  94. package/lib/node/term.js +35 -35
  95. package/lib/preamble.js +5 -5
  96. package/lib/process/instantiate.js +20 -2
  97. package/lib/process/unify.js +39 -42
  98. package/lib/process/validate.js +431 -0
  99. package/lib/process/verify.js +44 -135
  100. package/lib/types.js +27 -0
  101. package/lib/utilities/brackets.js +9 -14
  102. package/lib/utilities/element.js +91 -55
  103. package/lib/utilities/instance.js +41 -28
  104. package/lib/utilities/statement.js +2 -2
  105. package/lib/utilities/string.js +25 -14
  106. package/lib/utilities/unification.js +237 -0
  107. package/lib/utilities/validation.js +251 -0
  108. package/package.json +6 -6
  109. package/src/context/file.js +40 -34
  110. package/src/context/local.js +34 -34
  111. package/src/context/release.js +2 -6
  112. package/src/context/temporary.js +15 -15
  113. package/src/element/assertion/contained.js +19 -20
  114. package/src/element/assertion/defined.js +11 -12
  115. package/src/element/assertion/property.js +20 -20
  116. package/src/element/assertion/satisfies.js +6 -6
  117. package/src/element/assertion/subproof.js +17 -15
  118. package/src/element/assertion/type.js +2 -2
  119. package/src/element/assertion.js +0 -2
  120. package/src/element/assumption.js +22 -19
  121. package/src/element/axiom.js +33 -37
  122. package/src/element/axiomLemmaTheoremConjecture.js +54 -73
  123. package/src/element/{statement/combinator → combinator}/bracketed.js +7 -7
  124. package/src/element/combinator.js +90 -0
  125. package/src/element/conclusion.js +12 -10
  126. package/src/element/{term/constructor → constructor}/bracketed.js +5 -5
  127. package/src/element/{term/constructor.js → constructor.js} +17 -25
  128. package/src/element/declaration/combinator.js +1 -22
  129. package/src/element/declaration/complexType.js +11 -11
  130. package/src/element/declaration/constructor.js +13 -10
  131. package/src/element/declaration/simpleType.js +3 -3
  132. package/src/element/declaration/typePrefix.js +1 -1
  133. package/src/element/declaration/variable.js +2 -2
  134. package/src/element/deduction.js +12 -9
  135. package/src/element/derivation.js +15 -19
  136. package/src/element/equivalence.js +8 -8
  137. package/src/element/equivalences.js +4 -4
  138. package/src/element/frame.js +28 -30
  139. package/src/element/hypothesis.js +16 -18
  140. package/src/element/judgement.js +6 -3
  141. package/src/element/label.js +4 -4
  142. package/src/element/metaLemmaMetatheorem.js +5 -69
  143. package/src/element/metaType.js +9 -45
  144. package/src/element/metavariable.js +34 -31
  145. package/src/element/parameter.js +2 -2
  146. package/src/element/premise.js +124 -99
  147. package/src/element/proof.js +6 -6
  148. package/src/element/proofAssertion.js +76 -0
  149. package/src/element/property.js +6 -6
  150. package/src/element/propertyRelation.js +11 -11
  151. package/src/element/reference.js +14 -21
  152. package/src/element/rule.js +39 -38
  153. package/src/element/signature.js +10 -9
  154. package/src/element/statement.js +16 -18
  155. package/src/element/step.js +78 -78
  156. package/src/element/subDerivation.js +15 -19
  157. package/src/element/subproof.js +11 -19
  158. package/src/element/substitution/frame.js +0 -2
  159. package/src/element/substitution/reference.js +1 -5
  160. package/src/element/substitution/statement.js +44 -14
  161. package/src/element/substitution/term.js +10 -13
  162. package/src/element/substitution.js +3 -5
  163. package/src/element/substitutions.js +48 -30
  164. package/src/element/supposition.js +127 -108
  165. package/src/element/term.js +18 -28
  166. package/src/element/type.js +42 -36
  167. package/src/element/typePrefix.js +3 -3
  168. package/src/element/variable.js +7 -7
  169. package/src/element.js +3 -1
  170. package/src/metaTypes.js +55 -0
  171. package/src/node/axiomLemmaTheoremConjecture.js +6 -6
  172. package/src/node/body/axiom.js +0 -21
  173. package/src/node/body/conjecture.js +0 -23
  174. package/src/node/body/lemma.js +0 -23
  175. package/src/node/body/metaLemma.js +0 -23
  176. package/src/node/body/metatheorem.js +0 -23
  177. package/src/node/body/rule.js +12 -0
  178. package/src/node/body/theorem.js +0 -23
  179. package/src/node/body.js +23 -0
  180. package/src/node/combinator.js +9 -0
  181. package/src/node/constructor.js +9 -0
  182. package/src/node/declaration/combinator.js +5 -5
  183. package/src/node/declaration/constructor.js +8 -8
  184. package/src/node/declaration/property.js +14 -14
  185. package/src/node/declaration/simpleType.js +31 -31
  186. package/src/node/declaration/variable.js +7 -7
  187. package/src/node/equality.js +7 -7
  188. package/src/node/frame.js +21 -21
  189. package/src/node/header.js +22 -22
  190. package/src/node/metaLemmaMetaTheorem.js +14 -14
  191. package/src/node/metavariable.js +14 -14
  192. package/src/node/property.js +7 -7
  193. package/src/node/propertyRelation.js +7 -7
  194. package/src/node/rule.js +15 -15
  195. package/src/node/statement.js +12 -12
  196. package/src/node/step.js +21 -21
  197. package/src/node/subDerivation.js +0 -7
  198. package/src/node/subproof.js +4 -11
  199. package/src/node/substitution/frame.js +18 -18
  200. package/src/node/substitution/statement.js +18 -18
  201. package/src/node/substitution/term.js +18 -18
  202. package/src/node/term.js +34 -34
  203. package/src/preamble.js +4 -4
  204. package/src/process/instantiate.js +12 -0
  205. package/src/process/unify.js +53 -57
  206. package/src/process/validate.js +316 -0
  207. package/src/process/verify.js +50 -138
  208. package/src/types.js +18 -0
  209. package/src/utilities/brackets.js +15 -14
  210. package/src/utilities/element.js +125 -82
  211. package/src/utilities/instance.js +42 -24
  212. package/src/utilities/statement.js +2 -2
  213. package/src/utilities/string.js +38 -24
  214. package/src/{mixins/step/unify.js → utilities/unification.js} +99 -85
  215. package/src/{mixins/statement/validate.js → utilities/validation.js} +143 -69
  216. package/lib/element/statement/combinator.js +0 -105
  217. package/lib/element/term/constructor.js +0 -172
  218. package/lib/mixins/statement/validate.js +0 -198
  219. package/lib/mixins/step/unify.js +0 -228
  220. package/lib/mixins/term/verify.js +0 -65
  221. package/src/element/statement/combinator.js +0 -59
  222. package/src/mixins/term/verify.js +0 -81
@@ -2,14 +2,14 @@
2
2
 
3
3
  import DeclarationNode from "../../node/declaration";
4
4
 
5
- import { STATEMENT_RULE_NAME } from "../../ruleNames";
5
+ import { COMBINATOR_RULE_NAME } from "../../ruleNames";
6
6
 
7
7
  export default class ContainedDeclarationNode extends DeclarationNode {
8
- getStatementNode() {
9
- const ruleName = STATEMENT_RULE_NAME,
10
- statementNode = this.getNodeByRuleName(ruleName);
8
+ getCombinatorNode() {
9
+ const ruleName = COMBINATOR_RULE_NAME,
10
+ combinatorNode = this.getNodeByRuleName(ruleName);
11
11
 
12
- return statementNode;
12
+ return combinatorNode;
13
13
  }
14
14
 
15
15
  static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return DeclarationNode.fromRuleNameChildNodesOpacityAndPrecedence(ContainedDeclarationNode, ruleName, childNodes, opacity, precedence); }
@@ -3,7 +3,7 @@
3
3
  import DeclarationNode from "../../node/declaration";
4
4
 
5
5
  import { PROVISIONALLY } from "../../constants";
6
- import { TERM_RULE_NAME, TYPE_RULE_NAME } from "../../ruleNames";
6
+ import { CONSTRUCTOR_RULE_NAME, TYPE_RULE_NAME } from "../../ruleNames";
7
7
 
8
8
  export default class ConstructorDeclarationNode extends DeclarationNode {
9
9
  isProvisional() {
@@ -28,13 +28,6 @@ export default class ConstructorDeclarationNode extends DeclarationNode {
28
28
  return provisional;
29
29
  }
30
30
 
31
- getTermNode() {
32
- const ruleName = TERM_RULE_NAME,
33
- termNode = this.getNodeByRuleName(ruleName);
34
-
35
- return termNode;
36
- }
37
-
38
31
  getTypeNode() {
39
32
  const ruleName = TYPE_RULE_NAME,
40
33
  typeNode = this.getNodeByRuleName(ruleName);
@@ -42,5 +35,12 @@ export default class ConstructorDeclarationNode extends DeclarationNode {
42
35
  return typeNode;
43
36
  }
44
37
 
38
+ getConstructorNode() {
39
+ const ruleName = CONSTRUCTOR_RULE_NAME,
40
+ constructorNode = this.getNodeByRuleName(ruleName);
41
+
42
+ return constructorNode;
43
+ }
44
+
45
45
  static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return DeclarationNode.fromRuleNameChildNodesOpacityAndPrecedence(ConstructorDeclarationNode, ruleName, childNodes, opacity, precedence); }
46
46
  }
@@ -5,20 +5,6 @@ import DeclarationNode from "../../node/declaration";
5
5
  import { TYPE_RULE_NAME, PROPERTY_RULE_NAME } from "../../ruleNames";
6
6
 
7
7
  export default class PropertyDeclarationNode extends DeclarationNode {
8
- getTypeNode() {
9
- const ruleName = TYPE_RULE_NAME,
10
- typeNode = this.getNodeByRuleName(ruleName);
11
-
12
- return typeNode;
13
- }
14
-
15
- getPropertyNode() {
16
- const ruleName = PROPERTY_RULE_NAME,
17
- propertyNode = this.getNodeByRuleName(ruleName);
18
-
19
- return propertyNode;
20
- }
21
-
22
8
  getPropertyName() {
23
9
  const propertyNode = this.getPropertyNode(),
24
10
  propertyName = propertyNode.getPropertyName();
@@ -38,5 +24,19 @@ export default class PropertyDeclarationNode extends DeclarationNode {
38
24
  return nominalTypeName;
39
25
  }
40
26
 
27
+ getTypeNode() {
28
+ const ruleName = TYPE_RULE_NAME,
29
+ typeNode = this.getNodeByRuleName(ruleName);
30
+
31
+ return typeNode;
32
+ }
33
+
34
+ getPropertyNode() {
35
+ const ruleName = PROPERTY_RULE_NAME,
36
+ propertyNode = this.getNodeByRuleName(ruleName);
37
+
38
+ return propertyNode;
39
+ }
40
+
41
41
  static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return DeclarationNode.fromRuleNameChildNodesOpacityAndPrecedence(PropertyDeclarationNode, ruleName, childNodes, opacity, precedence); }
42
42
  }
@@ -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
- isPrefixed() {
38
+ getTypePrefixName() {
32
39
  const typeNode = this.getTypeNode(),
33
- prefixed = typeNode.isPrefixed();
40
+ typePrefixName = typeNode.getTypePrefixName();
34
41
 
35
- return prefixed;
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
  }
@@ -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
  }
@@ -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
- getSuppositionNodes() {
21
+ getProofNode() {
30
22
  const bodyNode = this.getBodyNode(),
31
- suppositionNodes = bodyNode.getSuppositionNodes();
23
+ proofNode = bodyNode.getProofNode();
32
24
 
33
- return suppositionNodes;
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
- getProofNode() {
43
+ getSuppositionNodes() {
44
44
  const bodyNode = this.getBodyNode(),
45
- proofNode = bodyNode.getProofNode();
45
+ suppositionNodes = bodyNode.getSuppositionNodes();
46
46
 
47
- return proofNode;
47
+ return suppositionNodes;
48
48
  }
49
49
 
50
50
  static fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence); }
@@ -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
  }
@@ -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
- getRuleBodyNode() {
9
- const ruleName = RULE_BODY_RULE_NAME,
10
- ruleBodyNode = this.getNodeByRuleName(ruleName);
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 ruleHeaderNode;
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
- getProofNode() {
44
- const ruleBodyNode = this.getRuleBodyNode(),
45
- proofNode = ruleBodyNode.getProofNode();
36
+ getRuleBodyNode() {
37
+ const ruleName = RULE_BODY_RULE_NAME,
38
+ ruleBodyNode = this.getNodeByRuleName(ruleName);
46
39
 
47
- return proofNode;
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); }
@@ -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
  }
@@ -5,13 +5,6 @@ import NonTerminalNode from "../nonTerminalNode";
5
5
  import { STEP_RULE_NAME, SUBPROOF_RULE_NAME } from "../ruleNames";
6
6
 
7
7
  export default class SubDerivationNode extends NonTerminalNode {
8
- getLastStepNode() {
9
- const ruleName = STEP_RULE_NAME,
10
- lastStepNode = this.getLastNodeByRuleName(ruleName);
11
-
12
- return lastStepNode;
13
- }
14
-
15
8
  getStepOrSubproofNodes() {
16
9
  const ruleNames = [
17
10
  STEP_RULE_NAME,
@@ -17,11 +17,11 @@ export default class SubproofNode extends NonTerminalNode {
17
17
  return subproofNode;
18
18
  }
19
19
 
20
- getLastStepNode() {
21
- const subDerivationNode = this.getSubDerivationNode(),
22
- lastStepNode = subDerivationNode.getLastStepNode();
20
+ getSuppositionNodes() {
21
+ const ruleName = SUPPOSITION_RULE_NAME,
22
+ suppositionNodes = this.getNodesByRuleName(ruleName);
23
23
 
24
- return lastStepNode;
24
+ return suppositionNodes;
25
25
  }
26
26
 
27
27
  getSubDerivationNode() {
@@ -31,12 +31,5 @@ export default class SubproofNode extends NonTerminalNode {
31
31
  return subDerivationNode;
32
32
  }
33
33
 
34
- getSuppositionNodes() {
35
- const ruleName = SUPPOSITION_RULE_NAME,
36
- suppositionNodes = this.getNodesByRuleName(ruleName);
37
-
38
- return suppositionNodes;
39
- }
40
-
41
34
  static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(SubproofNode, ruleName, childNodes, opacity, precedence); }
42
35
  }