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.
Files changed (251) hide show
  1. package/lib/assignment/equality.js +2 -2
  2. package/lib/context/file.js +4 -5
  3. package/lib/context/local.js +17 -6
  4. package/lib/context/partial.js +10 -10
  5. package/lib/context/temporary.js +102 -52
  6. package/lib/mixins/step/unify.js +5 -6
  7. package/lib/node/argument.js +4 -4
  8. package/lib/node/assertion/contained.js +6 -6
  9. package/lib/node/assertion/defined.js +6 -6
  10. package/lib/node/assertion/property.js +6 -6
  11. package/lib/node/assertion/satisfies.js +6 -6
  12. package/lib/node/assertion/subproof.js +6 -6
  13. package/lib/node/assertion/type.js +6 -6
  14. package/lib/node/assertion.js +107 -0
  15. package/lib/node/assumption.js +134 -0
  16. package/lib/node/axiom.js +6 -6
  17. package/lib/node/{topLevelAssertion.js → axiomLemmaTheoremConjecture.js} +12 -12
  18. package/lib/node/body.js +4 -5
  19. package/lib/node/combinator.js +4 -4
  20. package/lib/node/conclusion.js +4 -4
  21. package/lib/node/conjecture.js +6 -6
  22. package/lib/node/constructor.js +4 -4
  23. package/lib/node/declaration/combinator.js +6 -6
  24. package/lib/node/declaration/complexType.js +6 -6
  25. package/lib/node/declaration/constructor.js +6 -6
  26. package/lib/node/declaration/metavariable.js +6 -6
  27. package/lib/node/declaration/property.js +6 -6
  28. package/lib/node/declaration/simpleType.js +6 -6
  29. package/lib/node/declaration/typePrefix.js +6 -6
  30. package/lib/node/declaration/variable.js +6 -6
  31. package/lib/node/declaration.js +6 -22
  32. package/lib/node/deduction.js +4 -4
  33. package/lib/node/derivation.js +4 -4
  34. package/lib/node/document.js +107 -0
  35. package/lib/node/equality.js +4 -4
  36. package/lib/node/error.js +4 -4
  37. package/lib/node/frame.js +25 -14
  38. package/lib/node/header.js +4 -4
  39. package/lib/node/hypothesis.js +4 -4
  40. package/lib/node/judgement.js +8 -8
  41. package/lib/node/label.js +4 -4
  42. package/lib/node/labels.js +4 -4
  43. package/lib/node/lemma.js +6 -6
  44. package/lib/node/metaArgument.js +4 -4
  45. package/lib/node/metaLemma.js +6 -6
  46. package/lib/node/{topLevelMetaAssertion.js → metaLemmaMetaTheorem.js} +12 -12
  47. package/lib/node/metaType.js +4 -4
  48. package/lib/node/metatheorem.js +6 -6
  49. package/lib/node/metavariable.js +4 -4
  50. package/lib/node/nonsense.js +4 -4
  51. package/lib/node/parameter.js +4 -4
  52. package/lib/node/parenthesisedLabel.js +4 -4
  53. package/lib/node/parenthesisedLabels.js +4 -4
  54. package/lib/node/placeholder.js +107 -0
  55. package/lib/node/premise.js +4 -4
  56. package/lib/node/procedureCall.js +4 -4
  57. package/lib/node/procedureReference.js +4 -4
  58. package/lib/node/proof.js +4 -4
  59. package/lib/node/property.js +4 -4
  60. package/lib/node/propertyRelation.js +4 -4
  61. package/lib/node/qualification.js +4 -4
  62. package/lib/node/reference.js +4 -4
  63. package/lib/node/rule.js +4 -4
  64. package/lib/node/section.js +4 -4
  65. package/lib/node/signature.js +4 -4
  66. package/lib/node/statement.js +15 -4
  67. package/lib/node/step.js +4 -4
  68. package/lib/node/subDerivation.js +4 -4
  69. package/lib/node/subproof.js +4 -4
  70. package/lib/node/substitution/frame.js +6 -6
  71. package/lib/node/substitution/statement.js +6 -6
  72. package/lib/node/substitution/term.js +6 -6
  73. package/lib/node/substitution.js +107 -0
  74. package/lib/node/supposition.js +4 -4
  75. package/lib/node/term.js +27 -4
  76. package/lib/node/theorem.js +6 -6
  77. package/lib/node/type.js +4 -4
  78. package/lib/node/typePrefix.js +4 -4
  79. package/lib/node/types.js +4 -4
  80. package/lib/node/variable.js +4 -4
  81. package/lib/nominal/parser.js +3 -3
  82. package/lib/nonTerminalNode.js +222 -0
  83. package/lib/nonTerminalNodeMap.js +5 -3
  84. package/lib/ontology/assertion/contained.js +8 -9
  85. package/lib/ontology/assertion/defined.js +9 -10
  86. package/lib/ontology/assertion/satisfies.js +4 -4
  87. package/lib/ontology/assumption.js +379 -0
  88. package/lib/ontology/declaration/combinator.js +75 -33
  89. package/lib/ontology/declaration/complexType.js +110 -63
  90. package/lib/ontology/declaration/constructor.js +81 -38
  91. package/lib/ontology/declaration/metavariable.js +87 -39
  92. package/lib/ontology/declaration/simpleType.js +95 -48
  93. package/lib/ontology/declaration/typePrefix.js +87 -40
  94. package/lib/ontology/declaration/variable.js +87 -39
  95. package/lib/ontology/declaration.js +13 -338
  96. package/lib/ontology/equivalence.js +295 -0
  97. package/lib/ontology/equivalences.js +264 -0
  98. package/lib/ontology/frame.js +49 -54
  99. package/lib/ontology/judgement.js +8 -8
  100. package/lib/ontology/metavariable.js +4 -4
  101. package/lib/ontology/premise.js +14 -5
  102. package/lib/ontology/reference.js +3 -9
  103. package/lib/ontology/rule.js +3 -4
  104. package/lib/ontology/statement.js +28 -24
  105. package/lib/ontology/step.js +2 -3
  106. package/lib/ontology/subproof.js +2 -3
  107. package/lib/ontology/substitution/statement.js +77 -36
  108. package/lib/ontology/substitution/term.js +14 -34
  109. package/lib/ontology/substitution.js +18 -19
  110. package/lib/ontology/substitutions.js +425 -0
  111. package/lib/ontology/supposition.js +14 -5
  112. package/lib/ontology/term.js +33 -36
  113. package/lib/ontology/topLevelAssertion.js +2 -3
  114. package/lib/ontology/topLevelMetaAssertion.js +2 -3
  115. package/lib/ontology/variable.js +1 -34
  116. package/lib/preamble.js +7 -4
  117. package/lib/ruleNames.js +20 -12
  118. package/lib/unifier/intrinsicLevel.js +4 -12
  119. package/lib/unifier/metaLevel.js +14 -22
  120. package/lib/utilities/frame.js +18 -0
  121. package/lib/utilities/statement.js +18 -0
  122. package/lib/utilities/substitutions.js +43 -30
  123. package/lib/utilities/variable.js +5 -17
  124. package/package.json +10 -10
  125. package/src/assignment/equality.js +1 -1
  126. package/src/context/file.js +5 -4
  127. package/src/context/local.js +28 -5
  128. package/src/context/partial.js +9 -14
  129. package/src/context/temporary.js +120 -51
  130. package/src/mixins/step/unify.js +4 -4
  131. package/src/node/argument.js +1 -1
  132. package/src/node/assertion/contained.js +3 -3
  133. package/src/node/assertion/defined.js +3 -3
  134. package/src/node/assertion/property.js +3 -3
  135. package/src/node/assertion/satisfies.js +3 -3
  136. package/src/node/assertion/subproof.js +3 -3
  137. package/src/node/assertion/type.js +3 -3
  138. package/src/node/assertion.js +7 -0
  139. package/src/node/assumption.js +35 -0
  140. package/src/node/axiom.js +3 -3
  141. package/src/node/{topLevelAssertion.js → axiomLemmaTheoremConjecture.js} +2 -2
  142. package/src/node/body.js +1 -3
  143. package/src/node/combinator.js +1 -1
  144. package/src/node/conclusion.js +1 -1
  145. package/src/node/conjecture.js +3 -3
  146. package/src/node/constructor.js +1 -1
  147. package/src/node/declaration/combinator.js +3 -3
  148. package/src/node/declaration/complexType.js +3 -3
  149. package/src/node/declaration/constructor.js +3 -3
  150. package/src/node/declaration/metavariable.js +3 -3
  151. package/src/node/declaration/property.js +3 -3
  152. package/src/node/declaration/simpleType.js +3 -3
  153. package/src/node/declaration/typePrefix.js +3 -3
  154. package/src/node/declaration/variable.js +3 -3
  155. package/src/node/declaration.js +2 -18
  156. package/src/node/deduction.js +1 -1
  157. package/src/node/derivation.js +1 -1
  158. package/src/node/document.js +7 -0
  159. package/src/node/equality.js +1 -1
  160. package/src/node/error.js +1 -1
  161. package/src/node/frame.js +23 -11
  162. package/src/node/header.js +1 -1
  163. package/src/node/hypothesis.js +1 -1
  164. package/src/node/judgement.js +6 -6
  165. package/src/node/label.js +1 -1
  166. package/src/node/labels.js +1 -1
  167. package/src/node/lemma.js +3 -3
  168. package/src/node/metaArgument.js +1 -1
  169. package/src/node/metaLemma.js +3 -3
  170. package/src/node/{topLevelMetaAssertion.js → metaLemmaMetaTheorem.js} +2 -2
  171. package/src/node/metaType.js +1 -1
  172. package/src/node/metatheorem.js +3 -3
  173. package/src/node/metavariable.js +1 -1
  174. package/src/node/nonsense.js +1 -1
  175. package/src/node/parameter.js +1 -1
  176. package/src/node/parenthesisedLabel.js +1 -1
  177. package/src/node/parenthesisedLabels.js +1 -1
  178. package/src/node/placeholder.js +7 -0
  179. package/src/node/premise.js +1 -1
  180. package/src/node/procedureCall.js +1 -1
  181. package/src/node/procedureReference.js +1 -1
  182. package/src/node/proof.js +1 -1
  183. package/src/node/property.js +1 -1
  184. package/src/node/propertyRelation.js +1 -1
  185. package/src/node/qualification.js +1 -1
  186. package/src/node/reference.js +1 -1
  187. package/src/node/rule.js +2 -2
  188. package/src/node/section.js +1 -1
  189. package/src/node/signature.js +1 -1
  190. package/src/node/statement.js +13 -1
  191. package/src/node/step.js +1 -1
  192. package/src/node/subDerivation.js +1 -1
  193. package/src/node/subproof.js +1 -1
  194. package/src/node/substitution/frame.js +3 -3
  195. package/src/node/substitution/statement.js +3 -3
  196. package/src/node/substitution/term.js +3 -3
  197. package/src/node/substitution.js +7 -0
  198. package/src/node/supposition.js +1 -1
  199. package/src/node/term.js +27 -1
  200. package/src/node/theorem.js +3 -3
  201. package/src/node/type.js +1 -1
  202. package/src/node/typePrefix.js +1 -1
  203. package/src/node/types.js +1 -1
  204. package/src/node/variable.js +1 -1
  205. package/src/nominal/parser.js +2 -2
  206. package/src/{node/nonTerminal.js → nonTerminalNode.js} +31 -25
  207. package/src/nonTerminalNodeMap.js +10 -5
  208. package/src/ontology/assertion/contained.js +14 -14
  209. package/src/ontology/assertion/defined.js +13 -13
  210. package/src/ontology/assertion/satisfies.js +2 -1
  211. package/src/ontology/assumption.js +385 -0
  212. package/src/ontology/declaration/combinator.js +15 -24
  213. package/src/ontology/declaration/complexType.js +57 -53
  214. package/src/ontology/declaration/constructor.js +25 -31
  215. package/src/ontology/declaration/metavariable.js +25 -30
  216. package/src/ontology/declaration/simpleType.js +34 -38
  217. package/src/ontology/declaration/typePrefix.js +23 -31
  218. package/src/ontology/declaration/variable.js +26 -31
  219. package/src/ontology/declaration.js +8 -372
  220. package/src/{equivalence.js → ontology/equivalence.js} +4 -3
  221. package/src/{equivalences.js → ontology/equivalences.js} +14 -12
  222. package/src/ontology/frame.js +53 -63
  223. package/src/ontology/judgement.js +8 -8
  224. package/src/ontology/metavariable.js +2 -2
  225. package/src/ontology/premise.js +18 -4
  226. package/src/ontology/reference.js +4 -3
  227. package/src/ontology/rule.js +4 -3
  228. package/src/ontology/statement.js +31 -27
  229. package/src/ontology/step.js +2 -2
  230. package/src/ontology/subproof.js +2 -2
  231. package/src/ontology/substitution/statement.js +56 -53
  232. package/src/ontology/substitution/term.js +9 -35
  233. package/src/ontology/substitution.js +11 -15
  234. package/src/{substitutions.js → ontology/substitutions.js} +4 -3
  235. package/src/ontology/supposition.js +18 -4
  236. package/src/ontology/term.js +27 -39
  237. package/src/ontology/topLevelAssertion.js +2 -2
  238. package/src/ontology/topLevelMetaAssertion.js +2 -2
  239. package/src/ontology/variable.js +0 -54
  240. package/src/preamble.js +6 -3
  241. package/src/ruleNames.js +10 -8
  242. package/src/unifier/intrinsicLevel.js +3 -14
  243. package/src/unifier/metaLevel.js +14 -25
  244. package/src/utilities/frame.js +13 -0
  245. package/src/utilities/statement.js +13 -0
  246. package/src/utilities/substitutions.js +59 -31
  247. package/src/utilities/variable.js +1 -10
  248. package/lib/equivalence.js +0 -294
  249. package/lib/equivalences.js +0 -263
  250. package/lib/node/nonTerminal.js +0 -218
  251. package/lib/substitutions.js +0 -424
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../../node/nonTerminal";
3
+ import AssertionNode from "../../node/assertion";
4
4
 
5
5
  import { STATEMENT_RULE_NAME } from "../../ruleNames";
6
6
 
7
- export default class SubproofAssertionNode extends NonTerminalNode {
7
+ export default class SubproofAssertionNode extends AssertionNode {
8
8
  getStatementNodes() {
9
9
  const ruleName = STATEMENT_RULE_NAME,
10
10
  statementNodes = this.getNodesByRuleName(ruleName);
@@ -12,5 +12,5 @@ export default class SubproofAssertionNode extends NonTerminalNode {
12
12
  return statementNodes;
13
13
  }
14
14
 
15
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(SubproofAssertionNode, ruleName, childNodes, opacity, precedence); }
15
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(SubproofAssertionNode, ruleName, childNodes, opacity, precedence); }
16
16
  }
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../../node/nonTerminal";
3
+ import AssertionNode from "../../node/assertion";
4
4
 
5
5
  import { TERM_RULE_NAME, TYPE_RULE_NAME } from "../../ruleNames";
6
6
 
7
- export default class TypeAssertionNode extends NonTerminalNode {
7
+ export default class TypeAssertionNode extends AssertionNode {
8
8
  getTermNode() {
9
9
  const ruleName = TERM_RULE_NAME,
10
10
  termNode = this.getNodeByRuleName(ruleName);
@@ -19,5 +19,5 @@ export default class TypeAssertionNode extends NonTerminalNode {
19
19
  return typeNode;
20
20
  }
21
21
 
22
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(TypeAssertionNode, ruleName, childNodes, opacity, precedence); }
22
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(TypeAssertionNode, ruleName, childNodes, opacity, precedence); }
23
23
  }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ import NonTerminalNode from "../nonTerminalNode";
4
+
5
+ export default class AssertionNode extends NonTerminalNode {
6
+ static fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence); }
7
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ import DocumentNode from "../nonTerminalNode";
4
+
5
+ import { STATEMENT_RULE_NAME, METAVARIABLE_RULE_NAME } from "../ruleNames";
6
+
7
+ export default class AssumptionpNode extends DocumentNode {
8
+ isSimple() {
9
+ let simple = false;
10
+
11
+ const statementNode = this.getStatementNode();
12
+
13
+ if (statementNode === null) {
14
+ simple = true;
15
+ }
16
+
17
+ return simple;
18
+ }
19
+
20
+ getStatementNode() {
21
+ const ruleName = STATEMENT_RULE_NAME,
22
+ statementNode = this.getNodeByRuleName(ruleName);
23
+
24
+ return statementNode;
25
+ }
26
+
27
+ getMetavariableNode() {
28
+ const ruleName = METAVARIABLE_RULE_NAME,
29
+ metavariableNode = this.getNodeByRuleName(ruleName);
30
+
31
+ return metavariableNode;
32
+ }
33
+
34
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return DocumentNode.fromRuleNameChildNodesOpacityAndPrecedence(AssumptionpNode, ruleName, childNodes, opacity, precedence); }
35
+ }
package/src/node/axiom.js CHANGED
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import TopLevelAssertionNode from "../node/topLevelAssertion";
3
+ import AxiomLemmaTheoremConjectureNode from "../node/axiomLemmaTheoremConjecture";
4
4
 
5
5
  import { AXIOM_BODY_RULE_NAME, AXIOM_HEADER_RULE_NAME } from "../ruleNames";
6
6
 
7
- export default class AxiomNode extends TopLevelAssertionNode {
7
+ export default class AxiomNode extends AxiomLemmaTheoremConjectureNode {
8
8
  static bodyRuleName = AXIOM_BODY_RULE_NAME;
9
9
 
10
10
  static headerRuleName = AXIOM_HEADER_RULE_NAME;
11
11
 
12
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return TopLevelAssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(AxiomNode, ruleName, childNodes, opacity, precedence); }
12
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AxiomLemmaTheoremConjectureNode.fromRuleNameChildNodesOpacityAndPrecedence(AxiomNode, ruleName, childNodes, opacity, precedence); }
13
13
  }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
- export default class TopLevelAssertionNode extends NonTerminalNode {
5
+ export default class AxiomLemmaTheoremConjectureNode extends NonTerminalNode {
6
6
  getBodyNode() {
7
7
  const { bodyRuleName } = this.constructor,
8
8
  ruleName = bodyRuleName, ///
package/src/node/body.js CHANGED
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
4
-
5
- import { PROOF_RULE_NAME, DEDUCTION_RULE_NAME, SUPPOSITION_RULE_NAME } from "../ruleNames";
3
+ import NonTerminalNode from "../nonTerminalNode";
6
4
 
7
5
  export default class BodyNode extends NonTerminalNode {
8
6
  static fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence); }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
5
  export default class CombinatorNode extends NonTerminalNode {
6
6
  static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(CombinatorNode, ruleName, childNodes, opacity, precedence); }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
5
  import { NONSENSE_RULE_NAME, STATEMENT_RULE_NAME } from "../ruleNames";
6
6
 
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import TopLevelAssertionNode from "../node/topLevelAssertion";
3
+ import AxiomLemmaTheoremConjectureNode from "../node/axiomLemmaTheoremConjecture";
4
4
 
5
5
  import { CONJECTURE_BODY_RULE_NAME, CONJECTURE_HEADER_RULE_NAME } from "../ruleNames";
6
6
 
7
- export default class ConjectureNode extends TopLevelAssertionNode {
7
+ export default class ConjectureNode extends AxiomLemmaTheoremConjectureNode {
8
8
  static bodyRuleName = CONJECTURE_BODY_RULE_NAME;
9
9
 
10
10
  static headerRuleName = CONJECTURE_HEADER_RULE_NAME;
11
11
 
12
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return TopLevelAssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(ConjectureNode, ruleName, childNodes, opacity, precedence); }
12
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AxiomLemmaTheoremConjectureNode.fromRuleNameChildNodesOpacityAndPrecedence(ConjectureNode, ruleName, childNodes, opacity, precedence); }
13
13
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
5
  export default class ConstructorNode extends NonTerminalNode {
6
6
  static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(ConstructorNode, ruleName, childNodes, opacity, precedence); }
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../../node/nonTerminal";
3
+ import DeclarationNode from "../../node/declaration";
4
4
 
5
5
  import { STATEMENT_RULE_NAME } from "../../ruleNames";
6
6
 
7
- export default class ContainedDeclarationNode extends NonTerminalNode {
7
+ export default class ContainedDeclarationNode extends DeclarationNode {
8
8
  getStatementNode() {
9
9
  const ruleName = STATEMENT_RULE_NAME,
10
10
  statementNode = this.getNodeByRuleName(ruleName);
@@ -12,5 +12,5 @@ export default class ContainedDeclarationNode extends NonTerminalNode {
12
12
  return statementNode;
13
13
  }
14
14
 
15
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(ContainedDeclarationNode, ruleName, childNodes, opacity, precedence); }
15
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return DeclarationNode.fromRuleNameChildNodesOpacityAndPrecedence(ContainedDeclarationNode, ruleName, childNodes, opacity, precedence); }
16
16
  }
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../../node/nonTerminal";
3
+ import DeclarationNode from "../../node/declaration";
4
4
 
5
5
  import { PROVISIONAL } from "../../constants";
6
6
  import { TYPE_RULE_NAME, TYPES_RULE_NAME, PROPERTY_DECLARATION_RULE_NAME } from "../../ruleNames";
7
7
 
8
- export default class ComplexTypeDeclarationNode extends NonTerminalNode {
8
+ export default class ComplexTypeDeclarationNode extends DeclarationNode {
9
9
  isProvisional() {
10
10
  let provisional = false;
11
11
 
@@ -91,5 +91,5 @@ export default class ComplexTypeDeclarationNode extends NonTerminalNode {
91
91
  return propertyDeclarationNodes;
92
92
  }
93
93
 
94
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(ComplexTypeDeclarationNode, ruleName, childNodes, opacity, precedence); }
94
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return DeclarationNode.fromRuleNameChildNodesOpacityAndPrecedence(ComplexTypeDeclarationNode, ruleName, childNodes, opacity, precedence); }
95
95
  }
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../../node/nonTerminal";
3
+ import DeclarationNode from "../../node/declaration";
4
4
 
5
5
  import { PROVISIONALLY } from "../../constants";
6
6
  import { TERM_RULE_NAME, TYPE_RULE_NAME } from "../../ruleNames";
7
7
 
8
- export default class ConstructorDeclarationNode extends NonTerminalNode {
8
+ export default class ConstructorDeclarationNode extends DeclarationNode {
9
9
  isProvisional() {
10
10
  let provisional = false;
11
11
 
@@ -42,5 +42,5 @@ export default class ConstructorDeclarationNode extends NonTerminalNode {
42
42
  return typeNode;
43
43
  }
44
44
 
45
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(ConstructorDeclarationNode, ruleName, childNodes, opacity, precedence); }
45
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return DeclarationNode.fromRuleNameChildNodesOpacityAndPrecedence(ConstructorDeclarationNode, ruleName, childNodes, opacity, precedence); }
46
46
  }
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../../node/nonTerminal";
3
+ import DeclarationNode from "../../node/declaration";
4
4
 
5
5
  import { META_TYPE_RULE_NAME, METAVARIABLE_RULE_NAME } from "../../ruleNames";
6
6
 
7
- export default class MetavariableDeclarationNode extends NonTerminalNode {
7
+ export default class MetavariableDeclarationNode extends DeclarationNode {
8
8
  getTypeNode() {
9
9
  const metavariableNode = this.getMetavariableNode(),
10
10
  typeNode = metavariableNode.getTypeNode();
@@ -26,5 +26,5 @@ export default class MetavariableDeclarationNode extends NonTerminalNode {
26
26
  return metavariableNode;
27
27
  }
28
28
 
29
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(MetavariableDeclarationNode, ruleName, childNodes, opacity, precedence); }
29
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return DeclarationNode.fromRuleNameChildNodesOpacityAndPrecedence(MetavariableDeclarationNode, ruleName, childNodes, opacity, precedence); }
30
30
  }
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../../node/nonTerminal";
3
+ import DeclarationNode from "../../node/declaration";
4
4
 
5
5
  import { TYPE_RULE_NAME, PROPERTY_RULE_NAME } from "../../ruleNames";
6
6
 
7
- export default class PropertyDeclarationNode extends NonTerminalNode {
7
+ export default class PropertyDeclarationNode extends DeclarationNode {
8
8
  getTypeNode() {
9
9
  const ruleName = TYPE_RULE_NAME,
10
10
  typeNode = this.getNodeByRuleName(ruleName);
@@ -38,5 +38,5 @@ export default class PropertyDeclarationNode extends NonTerminalNode {
38
38
  return nominalTypeName;
39
39
  }
40
40
 
41
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(PropertyDeclarationNode, ruleName, childNodes, opacity, precedence); }
41
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return DeclarationNode.fromRuleNameChildNodesOpacityAndPrecedence(PropertyDeclarationNode, ruleName, childNodes, opacity, precedence); }
42
42
  }
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../../node/nonTerminal";
3
+ import DeclarationNode from "../../node/declaration";
4
4
 
5
5
  import { PROVISIONAL } from "../../constants";
6
6
  import { TYPE_RULE_NAME, TYPES_RULE_NAME } from "../../ruleNames";
7
7
 
8
- export default class SimpleTypeDeclarationNode extends NonTerminalNode {
8
+ export default class SimpleTypeDeclarationNode extends DeclarationNode {
9
9
  isProvisional() {
10
10
  let provisional = false;
11
11
 
@@ -89,6 +89,6 @@ export default class SimpleTypeDeclarationNode extends NonTerminalNode {
89
89
  return nominalTypeName;
90
90
  }
91
91
 
92
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(SimpleTypeDeclarationNode, ruleName, childNodes, opacity, precedence); }
92
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return DeclarationNode.fromRuleNameChildNodesOpacityAndPrecedence(SimpleTypeDeclarationNode, ruleName, childNodes, opacity, precedence); }
93
93
  }
94
94
 
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../../node/nonTerminal";
3
+ import DeclarationNode from "../../node/declaration";
4
4
 
5
5
  import { TYPE_PREFIX_RULE_NAME } from "../../ruleNames";
6
6
 
7
- export default class TypePrefixDeclarationNode extends NonTerminalNode {
7
+ export default class TypePrefixDeclarationNode extends DeclarationNode {
8
8
  getTypePrefix() {
9
9
  const typePrefixNode = this.getTypePrefixNode(),
10
10
  typePrefixName = typePrefixNode.getTypePrefixName();
@@ -19,6 +19,6 @@ export default class TypePrefixDeclarationNode extends NonTerminalNode {
19
19
  return typePrefixNode;
20
20
  }
21
21
 
22
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(TypePrefixDeclarationNode, ruleName, childNodes, opacity, precedence); }
22
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return DeclarationNode.fromRuleNameChildNodesOpacityAndPrecedence(TypePrefixDeclarationNode, ruleName, childNodes, opacity, precedence); }
23
23
  }
24
24
 
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../../node/nonTerminal";
3
+ import DeclarationNode from "../../node/declaration";
4
4
 
5
5
  import { PROVISIONALLY } from "../../constants";
6
6
  import { TYPE_RULE_NAME, VARIABLE_RULE_NAME } from "../../ruleNames";
7
7
 
8
- export default class VariableDeclarationNode extends NonTerminalNode {
8
+ export default class VariableDeclarationNode extends DeclarationNode {
9
9
  isProvisional() {
10
10
  let provisional = false;
11
11
 
@@ -49,5 +49,5 @@ export default class VariableDeclarationNode extends NonTerminalNode {
49
49
  return variableIdentifier;
50
50
  }
51
51
 
52
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(VariableDeclarationNode, ruleName, childNodes, opacity, precedence); }
52
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return DeclarationNode.fromRuleNameChildNodesOpacityAndPrecedence(VariableDeclarationNode, ruleName, childNodes, opacity, precedence); }
53
53
  }
@@ -1,23 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
4
-
5
- import { STATEMENT_RULE_NAME, METAVARIABLE_RULE_NAME } from "../ruleNames";
3
+ import NonTerminalNode from "../nonTerminalNode";
6
4
 
7
5
  export default class DeclarationNode extends NonTerminalNode {
8
- getStatementNode() {
9
- const ruleName = STATEMENT_RULE_NAME,
10
- statementNode = this.getNodeByRuleName(ruleName);
11
-
12
- return statementNode;
13
- }
14
-
15
- getMetavariableNode() {
16
- const ruleName = METAVARIABLE_RULE_NAME,
17
- metavariableNode = this.getNodeByRuleName(ruleName);
18
-
19
- return metavariableNode;
20
- }
21
-
22
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(DeclarationNode, ruleName, childNodes, opacity, precedence); }
6
+ static fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence); }
23
7
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
5
  import { NONSENSE_RULE_NAME, STATEMENT_RULE_NAME } from "../ruleNames";
6
6
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
5
  import { STEP_RULE_NAME, SUBPROOF_RULE_NAME } from "../ruleNames";
6
6
 
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ import NonTerminalNode from "../nonTerminalNode";
4
+
5
+ export default class DocumentNode extends NonTerminalNode {
6
+ static fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence); }
7
+ }
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { arrayUtilities } from "necessary";
4
4
 
5
- import NonTerminalNode from "../node/nonTerminal";
5
+ import NonTerminalNode from "../nonTerminalNode";
6
6
 
7
7
  import { TERM_RULE_NAME } from "../ruleNames";
8
8
 
package/src/node/error.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
5
  export default class ErrorNode extends NonTerminalNode {
6
6
  static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(ErrorNode, ruleName, childNodes, opacity, precedence); }
package/src/node/frame.js CHANGED
@@ -1,12 +1,24 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
- import { DECLARATION_RULE_NAME, METAVARIABLE_RULE_NAME } from "../ruleNames";
5
+ import { ASSUMPTION_RULE_NAME, METAVARIABLE_RULE_NAME } from "../ruleNames";
6
6
 
7
7
  export default class FrameNode extends NonTerminalNode {
8
- getDeclarationNodes() {
9
- const ruleName = DECLARATION_RULE_NAME,
8
+ isSimple() {
9
+ let simple = false;
10
+
11
+ const singularAssumptionNode = this.getSingularAssumptionNode();
12
+
13
+ if (singularAssumptionNode !== null) {
14
+ simple = singularAssumptionNode.isSimple();
15
+ }
16
+
17
+ return simple;
18
+ }
19
+
20
+ getAssumptionNodes() {
21
+ const ruleName = ASSUMPTION_RULE_NAME,
10
22
  declarationNodes = this.getNodesByRuleName(ruleName);
11
23
 
12
24
  return declarationNodes;
@@ -19,20 +31,20 @@ export default class FrameNode extends NonTerminalNode {
19
31
  return metavariableNodes;
20
32
  }
21
33
 
22
- getSingularDeclarationNode() {
23
- const ruleName = DECLARATION_RULE_NAME,
24
- singularDeclarationNode = this.getSingularTNodeByRuleName(ruleName);
34
+ getSingularAssumptionNode() {
35
+ const ruleName = ASSUMPTION_RULE_NAME,
36
+ singularAssumptionNode = this.getSingularTNodeByRuleName(ruleName);
25
37
 
26
- return singularDeclarationNode;
38
+ return singularAssumptionNode;
27
39
  }
28
40
 
29
41
  getSingularMetavariableNode() {
30
42
  let singularMetavariableNode = null;
31
43
 
32
- const singularDeclarationNode = this.getSingularDeclarationNode();
44
+ const singularAssumptionNode = this.getSingularAssumptionNode();
33
45
 
34
- if (singularDeclarationNode !== null) {
35
- const metavariableNode = singularDeclarationNode.getMetavariableNode();
46
+ if (singularAssumptionNode !== null) {
47
+ const metavariableNode = singularAssumptionNode.getMetavariableNode();
36
48
 
37
49
  singularMetavariableNode = metavariableNode; ///
38
50
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
5
  import {SIGNATURE_RULE_NAME, PARENTHESISED_LABEL_RULE_NAME, PARENTHESISED_LABELS_RULE_NAME } from "../ruleNames";
6
6
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
5
  import { NONSENSE_RULE_NAME, STATEMENT_RULE_NAME } from "../ruleNames";
6
6
 
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
- import { FRAME_RULE_NAME, DECLARATION_RULE_NAME } from "../ruleNames";
5
+ import { FRAME_RULE_NAME, ASSUMPTION_RULE_NAME } from "../ruleNames";
6
6
 
7
7
  export default class JudgementNode extends NonTerminalNode {
8
8
  getFrameNode() {
@@ -12,11 +12,11 @@ export default class JudgementNode extends NonTerminalNode {
12
12
  return frameNode;
13
13
  }
14
14
 
15
- getDeclarationNode() {
16
- const ruleName = DECLARATION_RULE_NAME,
17
- declarationNodes = this.getNodeByRuleName(ruleName);
15
+ getAssumptionNode() {
16
+ const ruleName = ASSUMPTION_RULE_NAME,
17
+ assumptionNodes = this.getNodeByRuleName(ruleName);
18
18
 
19
- return declarationNodes;
19
+ return assumptionNodes;
20
20
  }
21
21
 
22
22
  static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(JudgementNode, ruleName, childNodes, opacity, precedence); }
package/src/node/label.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
5
  import { METAVARIABLE_RULE_NAME } from "../ruleNames";
6
6
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
5
  import { LABEL_RULE_NAME } from "../ruleNames";
6
6
 
package/src/node/lemma.js CHANGED
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import TopLevelAssertionNode from "../node/topLevelAssertion";
3
+ import AxiomLemmaTheoremConjectureNode from "../node/axiomLemmaTheoremConjecture";
4
4
 
5
5
  import { LEMMA_BODY_RULE_NAME, LEMMA_HEADER_RULE_NAME } from "../ruleNames";
6
6
 
7
- export default class LemmaNode extends TopLevelAssertionNode {
7
+ export default class LemmaNode extends AxiomLemmaTheoremConjectureNode {
8
8
  static bodyRuleName = LEMMA_BODY_RULE_NAME;
9
9
 
10
10
  static headerRuleName = LEMMA_HEADER_RULE_NAME;
11
11
 
12
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return TopLevelAssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(LemmaNode, ruleName, childNodes, opacity, precedence); }
12
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AxiomLemmaTheoremConjectureNode.fromRuleNameChildNodesOpacityAndPrecedence(LemmaNode, ruleName, childNodes, opacity, precedence); }
13
13
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
5
  import { STATEMENT_RULE_NAME } from "../ruleNames";
6
6
 
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import TopLevelMetaAssertionNode from "../node/topLevelMetaAssertion";
3
+ import MetaLemmaMetaTheoremNode from "../node/metaLemmaMetaTheorem";
4
4
 
5
5
  import { META_LEMMA_BODY_RULE_NAME, META_LEMMA_HEADER_RULE_NAME } from "../ruleNames";
6
6
 
7
- export default class MetaLemmaNode extends TopLevelMetaAssertionNode {
7
+ export default class MetaLemmaNode extends MetaLemmaMetaTheoremNode {
8
8
  static bodyRuleName = META_LEMMA_BODY_RULE_NAME;
9
9
 
10
10
  static headerRuleName = META_LEMMA_HEADER_RULE_NAME;
11
11
 
12
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return TopLevelMetaAssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(MetaLemmaNode, ruleName, childNodes, opacity, precedence); }
12
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return MetaLemmaMetaTheoremNode.fromRuleNameChildNodesOpacityAndPrecedence(MetaLemmaNode, ruleName, childNodes, opacity, precedence); }
13
13
  }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
- export default class TopLevelMetaAssertionNode extends NonTerminalNode {
5
+ export default class MetaLemmaMetaTheoremNode extends NonTerminalNode {
6
6
  getBodyNode() {
7
7
  const { bodyRuleName } = this.constructor,
8
8
  ruleName = bodyRuleName, ///
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
5
  export default class MetaTypeNode extends NonTerminalNode {
6
6
  getMetaTypeName() {
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import TopLevelMetaAssertionNode from "../node/topLevelMetaAssertion";
3
+ import MetaLemmaMetaTheoremNode from "../node/metaLemmaMetaTheorem";
4
4
 
5
5
  import { METATHEOREM_BODY_RULE_NAME, METATHEOREM_HEADER_RULE_NAME } from "../ruleNames";
6
6
 
7
- export default class MetatheoremNode extends TopLevelMetaAssertionNode {
7
+ export default class MetatheoremNode extends MetaLemmaMetaTheoremNode {
8
8
  static bodyRuleName = METATHEOREM_BODY_RULE_NAME;
9
9
 
10
10
  static headerRuleName = METATHEOREM_HEADER_RULE_NAME;
11
11
 
12
- static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return TopLevelMetaAssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(MetatheoremNode, ruleName, childNodes, opacity, precedence); }
12
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return MetaLemmaMetaTheoremNode.fromRuleNameChildNodesOpacityAndPrecedence(MetatheoremNode, ruleName, childNodes, opacity, precedence); }
13
13
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import NonTerminalNode from "../node/nonTerminal";
3
+ import NonTerminalNode from "../nonTerminalNode";
4
4
 
5
5
  import { TERM_RULE_NAME, TYPE_RULE_NAME } from "../ruleNames";
6
6