occam-verify-cli 1.0.185 → 1.0.198

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 (244) hide show
  1. package/lib/constants.js +5 -1
  2. package/lib/context/file.js +3 -3
  3. package/lib/dom/assertion/contained.js +12 -24
  4. package/lib/dom/assertion/defined.js +9 -21
  5. package/lib/dom/assertion/property.js +8 -10
  6. package/lib/dom/assertion/satisfies.js +6 -8
  7. package/lib/dom/assertion/subproof.js +3 -5
  8. package/lib/dom/assertion/type.js +6 -8
  9. package/lib/dom/axiom.js +15 -100
  10. package/lib/dom/conjecture.js +5 -4
  11. package/lib/dom/constructor/bracketed.js +6 -7
  12. package/lib/dom/declaration/complexType.js +6 -6
  13. package/lib/dom/declaration/constructor.js +6 -6
  14. package/lib/dom/declaration/metavariable.js +3 -5
  15. package/lib/dom/declaration/type.js +2 -2
  16. package/lib/dom/declaration/variable.js +6 -6
  17. package/lib/dom/declaration.js +14 -16
  18. package/lib/dom/derivation.js +2 -4
  19. package/lib/dom/equality.js +9 -11
  20. package/lib/dom/frame.js +14 -18
  21. package/lib/dom/judgement.js +8 -10
  22. package/lib/dom/lemma.js +5 -4
  23. package/lib/dom/metaLemma.js +5 -4
  24. package/lib/dom/metaType.js +2 -4
  25. package/lib/dom/metatheorem.js +5 -4
  26. package/lib/dom/metavariable.js +12 -15
  27. package/lib/dom/parameter.js +2 -4
  28. package/lib/dom/procedureCall.js +6 -10
  29. package/lib/dom/proof.js +2 -4
  30. package/lib/dom/property.js +16 -51
  31. package/lib/dom/propertyRelation.js +14 -16
  32. package/lib/dom/reference.js +7 -11
  33. package/lib/dom/rule.js +6 -8
  34. package/lib/dom/statement.js +27 -31
  35. package/lib/dom/step.js +4 -6
  36. package/lib/dom/subDerivation.js +2 -4
  37. package/lib/dom/subproof.js +6 -8
  38. package/lib/dom/term.js +12 -20
  39. package/lib/dom/theorem.js +5 -4
  40. package/lib/dom/topLevelAssertion.js +30 -24
  41. package/lib/dom/topLevelMetaAssertion.js +76 -140
  42. package/lib/dom/type.js +8 -25
  43. package/lib/dom/variable.js +5 -11
  44. package/lib/equivalence.js +4 -6
  45. package/lib/mixins/term/verify.js +4 -8
  46. package/lib/node/argument.js +116 -0
  47. package/lib/node/assertion/contained.js +48 -53
  48. package/lib/node/assertion/defined.js +41 -53
  49. package/lib/node/assertion/property.js +23 -53
  50. package/lib/node/assertion/satisfies.js +23 -53
  51. package/lib/node/assertion/subproof.js +16 -53
  52. package/lib/node/assertion/type.js +23 -53
  53. package/lib/node/axiom.js +6 -52
  54. package/lib/node/combinator.js +6 -52
  55. package/lib/node/conclusion.js +16 -53
  56. package/lib/node/conjecture.js +6 -52
  57. package/lib/node/constructor.js +6 -52
  58. package/lib/node/declaration/combinator.js +8 -56
  59. package/lib/node/declaration/complexType.js +42 -86
  60. package/lib/node/declaration/constructor.js +26 -77
  61. package/lib/node/declaration/metavariable.js +30 -53
  62. package/lib/node/declaration/property.js +19 -69
  63. package/lib/node/declaration/type.js +45 -78
  64. package/lib/node/declaration/variable.js +21 -81
  65. package/lib/node/declaration.js +23 -53
  66. package/lib/node/deduction.js +16 -53
  67. package/lib/node/derivation.js +42 -51
  68. package/lib/node/equality.js +32 -53
  69. package/lib/node/error.js +6 -52
  70. package/lib/node/frame.js +30 -53
  71. package/lib/node/judgement.js +23 -53
  72. package/lib/node/label.js +16 -53
  73. package/lib/node/labels.js +116 -0
  74. package/lib/node/lemma.js +6 -52
  75. package/lib/node/metaArgument.js +116 -0
  76. package/lib/node/metaLemma.js +6 -52
  77. package/lib/node/metaType.js +14 -55
  78. package/lib/node/metatheorem.js +6 -52
  79. package/lib/node/metavariable.js +30 -56
  80. package/lib/node/nonTerminal.js +200 -0
  81. package/lib/node/parameter.js +22 -53
  82. package/lib/node/parenthesisedLabel.js +116 -0
  83. package/lib/node/parenthesisedLabels.js +123 -0
  84. package/lib/node/premise.js +23 -53
  85. package/lib/node/procedureCall.js +23 -53
  86. package/lib/node/proof.js +16 -53
  87. package/lib/node/property.js +18 -57
  88. package/lib/node/propertyRelation.js +30 -53
  89. package/lib/node/reference.js +16 -53
  90. package/lib/node/rule.js +44 -53
  91. package/lib/node/statement.js +139 -53
  92. package/lib/node/step.js +37 -53
  93. package/lib/node/subDerivation.js +49 -51
  94. package/lib/node/subproof.js +44 -53
  95. package/lib/node/substitution/frame.js +123 -0
  96. package/lib/node/substitution/reference.js +123 -0
  97. package/lib/node/substitution/statement.js +123 -0
  98. package/lib/node/substitution/term.js +123 -0
  99. package/lib/node/supposition.js +23 -53
  100. package/lib/node/term.js +41 -53
  101. package/lib/node/theorem.js +6 -52
  102. package/lib/node/topLevelAssertion.js +66 -54
  103. package/lib/node/topLevelMetaAssertion.js +45 -54
  104. package/lib/node/type.js +14 -55
  105. package/lib/{node.js → node/types.js} +22 -24
  106. package/lib/node/variable.js +14 -55
  107. package/lib/nominal/parser.js +3 -3
  108. package/lib/nonTerminalNodeMap.js +14 -4
  109. package/lib/ruleNames.js +42 -2
  110. package/lib/substitution/frame.js +5 -7
  111. package/lib/substitution/reference.js +5 -7
  112. package/lib/substitution/term.js +5 -7
  113. package/lib/unifier/metaLevel.js +4 -4
  114. package/lib/utilities/brackets.js +5 -5
  115. package/lib/utilities/json.js +18 -1
  116. package/lib/utilities/node.js +1 -37
  117. package/lib/utilities/subproof.js +13 -4
  118. package/lib/utilities/type.js +16 -4
  119. package/lib/verifier/topLevel.js +6 -6
  120. package/package.json +2 -2
  121. package/src/constants.js +1 -0
  122. package/src/context/file.js +2 -2
  123. package/src/dom/assertion/contained.js +12 -34
  124. package/src/dom/assertion/defined.js +9 -30
  125. package/src/dom/assertion/property.js +7 -12
  126. package/src/dom/assertion/satisfies.js +5 -10
  127. package/src/dom/assertion/subproof.js +2 -6
  128. package/src/dom/assertion/type.js +7 -10
  129. package/src/dom/axiom.js +7 -77
  130. package/src/dom/conjecture.js +6 -1
  131. package/src/dom/constructor/bracketed.js +6 -8
  132. package/src/dom/declaration/complexType.js +8 -7
  133. package/src/dom/declaration/constructor.js +6 -7
  134. package/src/dom/declaration/metavariable.js +2 -6
  135. package/src/dom/declaration/type.js +4 -2
  136. package/src/dom/declaration/variable.js +6 -7
  137. package/src/dom/declaration.js +12 -20
  138. package/src/dom/derivation.js +1 -4
  139. package/src/dom/equality.js +13 -17
  140. package/src/dom/frame.js +11 -25
  141. package/src/dom/judgement.js +7 -12
  142. package/src/dom/lemma.js +6 -1
  143. package/src/dom/metaLemma.js +6 -1
  144. package/src/dom/metaType.js +1 -5
  145. package/src/dom/metatheorem.js +6 -1
  146. package/src/dom/metavariable.js +11 -25
  147. package/src/dom/parameter.js +2 -6
  148. package/src/dom/procedureCall.js +5 -14
  149. package/src/dom/proof.js +1 -4
  150. package/src/dom/property.js +21 -78
  151. package/src/dom/propertyRelation.js +16 -22
  152. package/src/dom/reference.js +6 -18
  153. package/src/dom/rule.js +6 -12
  154. package/src/dom/statement.js +26 -46
  155. package/src/dom/step.js +3 -5
  156. package/src/dom/subDerivation.js +1 -4
  157. package/src/dom/subproof.js +8 -12
  158. package/src/dom/term.js +14 -33
  159. package/src/dom/theorem.js +6 -1
  160. package/src/dom/topLevelAssertion.js +30 -25
  161. package/src/dom/topLevelMetaAssertion.js +87 -55
  162. package/src/dom/type.js +11 -37
  163. package/src/dom/variable.js +4 -12
  164. package/src/equivalence.js +3 -6
  165. package/src/mixins/term/verify.js +5 -11
  166. package/src/node/argument.js +16 -0
  167. package/src/node/assertion/contained.js +49 -3
  168. package/src/node/assertion/defined.js +42 -3
  169. package/src/node/assertion/property.js +19 -3
  170. package/src/node/assertion/satisfies.js +19 -3
  171. package/src/node/assertion/subproof.js +12 -3
  172. package/src/node/assertion/type.js +19 -3
  173. package/src/node/axiom.js +3 -3
  174. package/src/node/combinator.js +3 -3
  175. package/src/node/conclusion.js +12 -3
  176. package/src/node/conjecture.js +3 -3
  177. package/src/node/constructor.js +3 -3
  178. package/src/node/declaration/combinator.js +7 -8
  179. package/src/node/declaration/complexType.js +40 -43
  180. package/src/node/declaration/constructor.js +25 -30
  181. package/src/node/declaration/metavariable.js +26 -3
  182. package/src/node/declaration/property.js +17 -23
  183. package/src/node/declaration/type.js +43 -32
  184. package/src/node/declaration/variable.js +19 -37
  185. package/src/node/declaration.js +19 -3
  186. package/src/node/deduction.js +12 -3
  187. package/src/node/derivation.js +15 -3
  188. package/src/node/equality.js +32 -3
  189. package/src/node/error.js +3 -3
  190. package/src/node/frame.js +26 -3
  191. package/src/node/judgement.js +19 -3
  192. package/src/node/label.js +12 -3
  193. package/src/node/labels.js +16 -0
  194. package/src/node/lemma.js +3 -3
  195. package/src/node/metaArgument.js +16 -0
  196. package/src/node/metaLemma.js +3 -3
  197. package/src/node/metaType.js +15 -8
  198. package/src/node/metatheorem.js +3 -3
  199. package/src/node/metavariable.js +32 -9
  200. package/src/node/nonTerminal.js +112 -0
  201. package/src/node/parameter.js +20 -3
  202. package/src/node/parenthesisedLabel.js +16 -0
  203. package/src/node/parenthesisedLabels.js +23 -0
  204. package/src/node/premise.js +19 -3
  205. package/src/node/procedureCall.js +19 -3
  206. package/src/node/proof.js +12 -3
  207. package/src/node/property.js +18 -12
  208. package/src/node/propertyRelation.js +26 -3
  209. package/src/node/reference.js +12 -3
  210. package/src/node/rule.js +40 -3
  211. package/src/node/statement.js +151 -3
  212. package/src/node/step.js +31 -3
  213. package/src/node/subDerivation.js +22 -3
  214. package/src/node/subproof.js +38 -3
  215. package/src/node/substitution/frame.js +23 -0
  216. package/src/node/substitution/reference.js +23 -0
  217. package/src/node/substitution/statement.js +23 -0
  218. package/src/node/substitution/term.js +23 -0
  219. package/src/node/supposition.js +19 -3
  220. package/src/node/term.js +38 -3
  221. package/src/node/theorem.js +3 -3
  222. package/src/node/topLevelAssertion.js +69 -3
  223. package/src/node/topLevelMetaAssertion.js +40 -3
  224. package/src/node/type.js +15 -8
  225. package/src/node/types.js +16 -0
  226. package/src/node/variable.js +15 -8
  227. package/src/nominal/parser.js +1 -1
  228. package/src/nonTerminalNodeMap.js +67 -37
  229. package/src/ruleNames.js +11 -1
  230. package/src/substitution/frame.js +7 -10
  231. package/src/substitution/reference.js +7 -10
  232. package/src/substitution/term.js +7 -9
  233. package/src/unifier/metaLevel.js +2 -3
  234. package/src/utilities/brackets.js +8 -8
  235. package/src/utilities/json.js +19 -0
  236. package/src/utilities/node.js +0 -27
  237. package/src/utilities/subproof.js +22 -6
  238. package/src/utilities/type.js +9 -0
  239. package/src/verifier/topLevel.js +5 -10
  240. package/lib/defaultTerminalNode.js +0 -20
  241. package/lib/mixins/node.js +0 -145
  242. package/src/defaultTerminalNode.js +0 -7
  243. package/src/mixins/node.js +0 -201
  244. package/src/node.js +0 -29
@@ -3,11 +3,8 @@
3
3
  import dom from "../dom";
4
4
  import JudgementAssignment from "../assignment/judgement";
5
5
 
6
- import { nodeQuery } from "../utilities/query";
7
6
  import { domAssigned } from "../dom";
8
7
 
9
- const judgementNodeQuery = nodeQuery("/statement/judgement");
10
-
11
8
  export default domAssigned(class Judgement {
12
9
  constructor(string, frame, declaration) {
13
10
  this.string = string;
@@ -73,15 +70,14 @@ export default domAssigned(class Judgement {
73
70
  verifyFrame(assignments, stated, context) {
74
71
  let frameVerified;
75
72
 
76
- const frameString = this.frame.getString(),
77
- judgementString = this.string; ///
73
+ const frameString = this.frame.getString();
78
74
 
79
- context.trace(`Verifying the '${judgementString}' judgement's '${frameString}' frame...`);
75
+ context.trace(`Verifying the '${frameString}' frame...`);
80
76
 
81
77
  frameVerified = this.frame.verify(assignments, stated, context);
82
78
 
83
79
  if (frameVerified) {
84
- context.debug(`...verified the '${judgementString}' judgement's '${frameString}' frame.`);
80
+ context.debug(`...verified the '${frameString}' frame.`);
85
81
  }
86
82
 
87
83
  return frameVerified;
@@ -90,15 +86,14 @@ export default domAssigned(class Judgement {
90
86
  verifyDeclaration(assignments, stated, context) {
91
87
  let declarationVerified;
92
88
 
93
- const judgementString = this.string, ///
94
- declarationString = this.declaration.getString();
89
+ const declarationString = this.declaration.getString();
95
90
 
96
- context.trace(`Verifying the '${judgementString}' judgement's '${declarationString}' declaration...`);
91
+ context.trace(`Verifying the '${declarationString}' declaration...`);
97
92
 
98
93
  declarationVerified = this.declaration.verify(assignments, stated, context);
99
94
 
100
95
  if (declarationVerified) {
101
- context.debug(`...verified the '${judgementString}' judgement's '${declarationString}' declaration.`);
96
+ context.debug(`...verified the '${declarationString}' declaration.`);
102
97
  }
103
98
 
104
99
  return declarationVerified;
@@ -158,7 +153,7 @@ export default domAssigned(class Judgement {
158
153
  static fromStatementNode(statementNode, context) {
159
154
  let judgement = null;
160
155
 
161
- const judgementNode = judgementNodeQuery(statementNode);
156
+ const judgementNode = statementNode.getJudgementNode();
162
157
 
163
158
  if (judgementNode !== null) {
164
159
  const { Frame, Declaration} = dom,
package/src/dom/lemma.js CHANGED
@@ -33,5 +33,10 @@ export default domAssigned(class Lemma extends TopLevelAssertion {
33
33
 
34
34
  static name = "Lemma";
35
35
 
36
- static fromNode(node, fileContext) { return TopLevelAssertion.fromNode(Lemma, node, fileContext); }
36
+ static fromLemmaNode(lemmaNode, fileContext) {
37
+ const node = lemmaNode, ///
38
+ lemma = TopLevelAssertion.fromNode(Lemma, node, fileContext);
39
+
40
+ return lemma;
41
+ }
37
42
  });
@@ -31,5 +31,10 @@ export default domAssigned(class MetaLemma extends TopLevelMetaAssertion {
31
31
 
32
32
  static fromJSON(json, fileContext) { return TopLevelMetaAssertion.fromJSON(MetaLemma, json, fileContext); }
33
33
 
34
- static fromNode(node, fileContext) { return TopLevelMetaAssertion.fromNode(MetaLemma, node, fileContext); }
34
+ static fromMetaLemmaNode(metaLemmaNode, fileContext) {
35
+ const node = metaLemmaNode, ///
36
+ metaLemma = TopLevelMetaAssertion.fromNode(MetaLemma, node, fileContext);
37
+
38
+ return metaLemma;
39
+ }
35
40
  });
@@ -2,12 +2,9 @@
2
2
 
3
3
  import LocalContext from "../context/local";
4
4
 
5
- import { nodeQuery } from "../utilities/query";
6
5
  import { domAssigned } from "../dom";
7
6
  import { FRAME_META_TYPE_NAME, REFERENCE_META_TYPE_NAME, STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
8
7
 
9
- const metavariableDeclarationMetaTypeNodeQuery = nodeQuery("/metavariableDeclaration/metaType");
10
-
11
8
  class MetaType {
12
9
  constructor(name) {
13
10
  this.name = name;
@@ -61,8 +58,7 @@ class MetaType {
61
58
  }
62
59
 
63
60
  static fromMetavariableDeclarationNode(metavariableDeclarationNode, fileContext) {
64
- const metavariableDeclarationMetaTypeNode = metavariableDeclarationMetaTypeNodeQuery(metavariableDeclarationNode),
65
- metaTypeNode = metavariableDeclarationMetaTypeNode, ///
61
+ const metaTypeNode = metavariableDeclarationNode.getMetaTypeNode(),
66
62
  localContext = LocalContext.fromFileContext(fileContext),
67
63
  context = localContext, ///
68
64
  metaType = metaTypeFromMetaTypeNode(metaTypeNode, context);
@@ -31,5 +31,10 @@ export default domAssigned(class Metatheorem extends TopLevelMetaAssertion {
31
31
 
32
32
  static fromJSON(json, fileContext) { return TopLevelMetaAssertion.fromJSON(Metatheorem, json, fileContext); }
33
33
 
34
- static fromNode(node, fileContext) { return TopLevelMetaAssertion.fromNode(Metatheorem, node, fileContext); }
34
+ static fromMetatheoremNode(metatheoremNode, fileContext) {
35
+ const node = metatheoremNode, ///
36
+ metatheorem = TopLevelMetaAssertion.fromNode(Metatheorem, node, fileContext);
37
+
38
+ return metatheorem;
39
+ }
35
40
  });
@@ -7,7 +7,6 @@ import ReferenceSubstitution from "../substitution/reference";
7
7
  import StatementSubstitution from "../substitution/statement";
8
8
  import MetavariablePartialContext from "../context/partial/metavariable";
9
9
 
10
- import { nodeQuery } from "../utilities/query";
11
10
  import { domAssigned } from "../dom";
12
11
  import { EMPTY_STRING } from "../constants";
13
12
  import { typeFromJSON, typeToTypeJSON } from "../utilities/json";
@@ -15,13 +14,6 @@ import { metaTypeFromJSON, metaTypeToMetaTypeJSON } from "../utilities/json";
15
14
  import { metavariableFromFrame, metavariableFromStatement } from "../utilities/context";
16
15
  import { unifyMetavariable, unifyMetavariableIntrinsically } from "../utilities/unification";
17
16
 
18
- const frameMetavariableNodeQuery = nodeQuery("/frame/metavariable!"),
19
- labelMetavariableNodeQuery = nodeQuery("/label/metavariable"),
20
- referenceMetavariableNodeQuery = nodeQuery("/reference/metavariable"),
21
- statementMetavariableNodeQuery = nodeQuery("/statement/metavariable"),
22
- metavariableDeclarationMetavariableNodeQuery = nodeQuery("/metavariableDeclaration/metavariable"),
23
- metavariableDeclarationMetavariableTypeNodeQuery = nodeQuery("/metavariableDeclaration/metavariable/type");
24
-
25
17
  export default domAssigned(class Metavariable {
26
18
  constructor(string, node, tokens, name, type, metaType) {
27
19
  this.string = string;
@@ -469,8 +461,7 @@ export default domAssigned(class Metavariable {
469
461
  }
470
462
 
471
463
  static fromLabelNode(labelNode, context) {
472
- const labelMetavariableNode = labelMetavariableNodeQuery(labelNode),
473
- metavariableNode = labelMetavariableNode, ///
464
+ const metavariableNode = labelNode.getMetavariableNode(),
474
465
  metavariable = metavariableFromMetavariableNode(metavariableNode, context);
475
466
 
476
467
  return metavariable;
@@ -479,10 +470,10 @@ export default domAssigned(class Metavariable {
479
470
  static fromFrameNode(frameNode, context) {
480
471
  let metavariable = null;
481
472
 
482
- const frameMetavariableNode = frameMetavariableNodeQuery(frameNode);
473
+ const singularMetavariableNode = frameNode.getSingularMetavariableNode();
483
474
 
484
- if (frameMetavariableNode !== null) {
485
- const metavariableNode = frameMetavariableNode; ///
475
+ if (singularMetavariableNode !== null) {
476
+ const metavariableNode = singularMetavariableNode; ///
486
477
 
487
478
  metavariable = metavariableFromMetavariableNode(metavariableNode, context);
488
479
  }
@@ -491,8 +482,7 @@ export default domAssigned(class Metavariable {
491
482
  }
492
483
 
493
484
  static fromReferenceNode(referenceNode, context) {
494
- const referenceMetavariableNode = referenceMetavariableNodeQuery(referenceNode),
495
- metavariableNode = referenceMetavariableNode, ///
485
+ const metavariableNode = referenceNode.getMetavariableNode(),
496
486
  metavariable = metavariableFromMetavariableNode(metavariableNode, context);
497
487
 
498
488
  return metavariable;
@@ -501,11 +491,9 @@ export default domAssigned(class Metavariable {
501
491
  static fromStatementNode(statementNode, context) {
502
492
  let metavariable = null;
503
493
 
504
- const statementMetavariableNode = statementMetavariableNodeQuery(statementNode);
505
-
506
- if (statementMetavariableNode !== null) {
507
- const metavariableNode = statementMetavariableNode; ///
494
+ const metavariableNode = statementNode.getMetavariableNode();
508
495
 
496
+ if (metavariableNode !== null) {
509
497
  metavariable = metavariableFromMetavariableNode(metavariableNode, context);
510
498
  }
511
499
 
@@ -524,8 +512,7 @@ export default domAssigned(class Metavariable {
524
512
 
525
513
  static fromMetavariableDeclarationNode(metavariableDeclarationNode, fileContext) {
526
514
  const { MetaType } = dom,
527
- metavariableDeclarationMetavariableNode = metavariableDeclarationMetavariableNodeQuery(metavariableDeclarationNode),
528
- metavariableNode = metavariableDeclarationMetavariableNode, ///
515
+ metavariableNode = metavariableDeclarationNode.getMetavariableNode(),
529
516
  localContext = LocalContext.fromFileContext(fileContext),
530
517
  context = localContext, ///
531
518
  type = typeFromMetavariableDeclarationNode(metavariableDeclarationNode, fileContext),
@@ -557,11 +544,10 @@ function metavariableFromMetavariableNode(metavariableNode, context) {
557
544
  function typeFromMetavariableDeclarationNode(metavariableDeclarationNode, fileContext) {
558
545
  let type = null;
559
546
 
560
- const metavariableDeclarationMetavariableTypeNode = metavariableDeclarationMetavariableTypeNodeQuery(metavariableDeclarationNode);
547
+ const typeNode = metavariableDeclarationNode.getTypeNode();
561
548
 
562
- if (metavariableDeclarationMetavariableTypeNode !== null) {
563
- const typeNode = metavariableDeclarationMetavariableTypeNode, ///
564
- typeName = typeNode.getTypeName();
549
+ if (typeNode !== null) {
550
+ const typeName = typeNode.getTypeName();
565
551
 
566
552
  type = fileContext.findTypeByTypeName(typeName);
567
553
  }
@@ -1,10 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import { nodeQuery } from "../utilities/query";
4
3
  import { domAssigned } from "../dom";
5
4
 
6
- const nameTerminalNodeQuery = nodeQuery("/parameter/@name");
7
-
8
5
  export default domAssigned(class Parameter {
9
6
  constructor(name) {
10
7
  this.name = name;
@@ -57,9 +54,8 @@ export default domAssigned(class Parameter {
57
54
  }
58
55
 
59
56
  static fromParameterNode(parameterNode, context) {
60
- const nameTerminalNode = nameTerminalNodeQuery(parameterNode),
61
- nameTerminalNodeContent = nameTerminalNode.getContent(),
62
- name = nameTerminalNodeContent, ///
57
+ const parameterName = parameterNode.getParameterName(),
58
+ name = parameterName, ///
63
59
  parameter = new Parameter(name);
64
60
 
65
61
  return parameter;
@@ -5,13 +5,8 @@ import { Expressions } from "occam-furtle";
5
5
  import dom from "../dom";
6
6
 
7
7
  import { domAssigned } from "../dom";
8
- import { nodeQuery, nodesQuery } from "../utilities/query";
9
8
  import { referenceFromJSON, parametersFromJSON, parametersToParametersJSON } from "../utilities/json";
10
9
 
11
- const parameterNodesQuery = nodesQuery("/procedureCall/parameter"),
12
- premiseProcedureCallNodeQuery = nodeQuery("/premise/procedureCall"),
13
- suppositionProcedureCallNodeQuery = nodeQuery("/supposition/procedureCall");
14
-
15
10
  export default domAssigned(class ProcedureCall {
16
11
  constructor(string, reference, parameters) {
17
12
  this.string = string;
@@ -126,11 +121,9 @@ export default domAssigned(class ProcedureCall {
126
121
  static fromPremiseNode(premiseNode, context) {
127
122
  let procedureCall = null;
128
123
 
129
- const premiseProcedureCallNode = premiseProcedureCallNodeQuery(premiseNode);
130
-
131
- if (premiseProcedureCallNode !== null) {
132
- const procedureCallNode = premiseProcedureCallNode; ///
124
+ const procedureCallNode = premiseNode.getProcedureCallNode();
133
125
 
126
+ if (procedureCallNode !== null) {
134
127
  procedureCall = procedureCallFromProcedureCallNode(procedureCallNode, context);
135
128
  }
136
129
 
@@ -140,11 +133,9 @@ export default domAssigned(class ProcedureCall {
140
133
  static fromSuppositionNode(suppositionNode, context) {
141
134
  let procedureCall = null;
142
135
 
143
- const suppositionProcedureCallNode = suppositionProcedureCallNodeQuery(suppositionNode);
144
-
145
- if (suppositionProcedureCallNode !== null) {
146
- const procedureCallNode = suppositionProcedureCallNode; ///
136
+ const procedureCallNode = suppositionNode.getProcedureCallNode();
147
137
 
138
+ if (procedureCallNode !== null) {
148
139
  procedureCall = procedureCallFromProcedureCallNode(procedureCallNode, context);
149
140
  }
150
141
 
@@ -164,7 +155,7 @@ function procedureCallFromProcedureCallNode(procedureCallNode, context) {
164
155
 
165
156
  function parametersFromProcedureCallNode(procedureCallNode, context) {
166
157
  const { Parameter } = dom,
167
- parameterNodes = parameterNodesQuery(procedureCallNode),
158
+ parameterNodes = procedureCallNode.getParameterNodes(),
168
159
  parameters = parameterNodes.map((parameterNode) => {
169
160
  const parameter = Parameter.fromParameterNode(parameterNode, context);
170
161
 
package/src/dom/proof.js CHANGED
@@ -3,11 +3,8 @@
3
3
  import dom from "../dom";
4
4
  import LocalContext from "../context/local";
5
5
 
6
- import { nodeQuery } from "../utilities/query";
7
6
  import { domAssigned } from "../dom";
8
7
 
9
- const derivationNodeQuery = nodeQuery("/proof/derivation");
10
-
11
8
  export default domAssigned(class Proof {
12
9
  constructor(derivation) {
13
10
  this.derivation = derivation;
@@ -60,7 +57,7 @@ export default domAssigned(class Proof {
60
57
 
61
58
  if (proofNode !== null) {
62
59
  const { Derivation } = dom,
63
- derivationNode = derivationNodeQuery(proofNode),
60
+ derivationNode = proofNode.getDerivationNode(),
64
61
  derivation = Derivation.fromDerivationNode(derivationNode, fileContext);
65
62
 
66
63
  proof = new Proof(derivation);
@@ -1,23 +1,14 @@
1
1
  "use strict";
2
2
 
3
- import { arrayUtilities } from "necessary";
4
-
5
3
  import dom from "../dom";
6
4
 
7
- import { objectType } from "./type";
8
5
  import { domAssigned } from "../dom";
9
- import { nodeQuery, nodesQuery } from "../utilities/query";
10
6
  import { typeFromJSON, typeToTypeJSON } from "../utilities/json";
11
7
 
12
- const { match } = arrayUtilities;
13
-
14
- const nameTerminalNodesQuery = nodesQuery("/property/@name"),
15
- propertyRelationPropertyNodeQuery = nodeQuery("/propertyRelation/property");
16
-
17
8
  export default domAssigned(class Property {
18
- constructor(string, names, type) {
9
+ constructor(string, name, type) {
19
10
  this.string = string;
20
- this.names = names;
11
+ this.name = name;
21
12
  this.type = type;
22
13
  }
23
14
 
@@ -25,8 +16,8 @@ export default domAssigned(class Property {
25
16
  return this.string;
26
17
  }
27
18
 
28
- getNames() {
29
- return this.names;
19
+ getName() {
20
+ return this.name;
30
21
  }
31
22
 
32
23
  getType() {
@@ -37,23 +28,19 @@ export default domAssigned(class Property {
37
28
  this.type = type;
38
29
  }
39
30
 
40
- matchPropertyNames(propertyNames) {
41
- const propertyNamesMatch = match(propertyNames, this.names, (propertyName, name) => {
42
- if (propertyName === name) {
43
- return true;
44
- }
45
- });
31
+ matchPropertyName(propertyName) {
32
+ const propertyNameMatches = (this.name === propertyName);
46
33
 
47
- return propertyNamesMatch;
34
+ return propertyNameMatches;
48
35
  }
49
36
 
50
37
  toJSON() {
51
38
  const typeJSON = typeToTypeJSON(this.type),
52
- names = this.names, ///
39
+ name = this.name, ///
53
40
  type = typeJSON, ///
54
41
  json = {
55
42
  type,
56
- names
43
+ name
57
44
  };
58
45
 
59
46
  return json;
@@ -62,10 +49,10 @@ export default domAssigned(class Property {
62
49
  static name = "Property";
63
50
 
64
51
  static fromJSON(json, fileContext) {
65
- const { names } = json,
52
+ const { name } = json,
66
53
  type = typeFromJSON(json, fileContext),
67
- string = stringFromNamesAndType(names, type),
68
- property = new Property(string, names, type);
54
+ string = name, ///
55
+ property = new Property(string, name, type);
69
56
 
70
57
  return property;
71
58
  }
@@ -77,8 +64,7 @@ export default domAssigned(class Property {
77
64
  }
78
65
 
79
66
  static fromPropertyRelationNode(propertyRelationNode, fileContext) {
80
- const propertyRelationPropertyNode = propertyRelationPropertyNodeQuery(propertyRelationNode),
81
- propertyNode = propertyRelationPropertyNode, ///
67
+ const propertyNode = propertyRelationNode.getPropertyNode(),
82
68
  property = propertyFromPropertyNode(propertyNode, fileContext);
83
69
 
84
70
  return property;
@@ -87,10 +73,10 @@ export default domAssigned(class Property {
87
73
  static fromPropertyDeclarationNode(propertyDeclarationNode, fileContext) {
88
74
  const { Type } = dom,
89
75
  type = Type.fromPropertyDeclarationNode(propertyDeclarationNode),
90
- propertyNames = propertyDeclarationNode.getPropertyNames(),
91
- names = propertyNames, ///
92
- string = stringFromNamesAndType(names, type),
93
- property = new Property(string, names, type);
76
+ propertyName = propertyDeclarationNode.getPropertyName(),
77
+ name = propertyName, ///
78
+ string = name, ///
79
+ property = new Property(string, name, type);
94
80
 
95
81
  return property;
96
82
  }
@@ -98,54 +84,11 @@ export default domAssigned(class Property {
98
84
 
99
85
  function propertyFromPropertyNode(propertyNode, fileContext) {
100
86
  const { Property } = dom,
101
- node = propertyNode, ///
102
- names = namesFromPropertyNode(propertyNode),
87
+ propertyName = propertyNode.getPropertyName(),
88
+ name = propertyName, ///
103
89
  type = null,
104
- string = fileContext.nodeAsString(node),
105
- property = new Property(string, names, type);
90
+ string = name, ///
91
+ property = new Property(string, name, type);
106
92
 
107
93
  return property;
108
94
  }
109
-
110
- function stringFromNamesAndType(names, type) {
111
- let string;
112
-
113
- const namesString = namesStringFromNames(names);
114
-
115
- if (type === objectType) {
116
- string = namesString; ///
117
- } else {
118
- const typeString = type.getString();
119
-
120
- string = `${namesString}:${typeString}`;
121
- }
122
-
123
- return string;
124
- }
125
-
126
- function namesFromPropertyNode(propertyNode, fileContext) {
127
- const nameTerminalNodes = nameTerminalNodesQuery(propertyNode),
128
- names = nameTerminalNodes.map((nameTerminalNode) => {
129
- const nameTerminalNodeContent = nameTerminalNode.getContent(),
130
- name = nameTerminalNodeContent; ///
131
-
132
- return name;
133
- });
134
-
135
- return names;
136
- }
137
-
138
- function namesStringFromNames(names) {
139
- const namesString = names.reduce((namesString, name) => {
140
- const nameString = name; ///
141
-
142
- namesString = (namesString === null) ?
143
- nameString : ///
144
- `${namesString} ${nameString}`;
145
-
146
- return namesString;
147
- }, null);
148
-
149
- return namesString;
150
- }
151
-
@@ -2,11 +2,8 @@
2
2
 
3
3
  import dom from "../dom";
4
4
 
5
- import { nodeQuery } from "../utilities/query";
6
5
  import { domAssigned } from "../dom";
7
6
 
8
- const propertyAssertionPropertyRelationNodeQuery = nodeQuery("/propertyAssertion/propertyRelation");
9
-
10
7
  export default domAssigned(class PropertyRelation {
11
8
  constructor(string, node, tokens, property, term) {
12
9
  this.string = string;
@@ -70,10 +67,9 @@ export default domAssigned(class PropertyRelation {
70
67
  verifyTerm(context) {
71
68
  let termVerified;
72
69
 
73
- const termString = this.term.getString(),
74
- propertyRelationString = this.string; ///
70
+ const termString = this.term.getString();
75
71
 
76
- context.trace(`Verifying the '${propertyRelationString}' property relation's '${termString}' term...`);
72
+ context.trace(`Verifying the '${termString}' term...`);
77
73
 
78
74
  termVerified = this.term.verify(context, () => {
79
75
  const verifiedAhead = true;
@@ -82,7 +78,7 @@ export default domAssigned(class PropertyRelation {
82
78
  });
83
79
 
84
80
  if (termVerified) {
85
- context.debug(`...verified the '${propertyRelationString}' property relation's '${termString}' term.`);
81
+ context.debug(`...verified the '${termString}' term.`);
86
82
  }
87
83
 
88
84
  return termVerified;
@@ -91,29 +87,28 @@ export default domAssigned(class PropertyRelation {
91
87
  verifyProperty(context) {
92
88
  let propertyVerified;
93
89
 
94
- const propertyString = this.property.getString(),
95
- propertyRelationString = this.string; ///
90
+ const propertyString = this.property.getString();
96
91
 
97
- context.trace(`Verifying the '${propertyRelationString}' property relation's '${propertyString}' property...`);
92
+ context.trace(`Verifying the '${propertyString}' property...`);
98
93
 
99
- const variableType = this.term.getType(),
100
- propertyNames = this.property.getNames(),
101
- variableTypeProperties = variableType.getProperties(),
102
- variableTypeProperty = variableTypeProperties.find((variableTypeProperty) => {
103
- const propertyNamesMatch = variableTypeProperty.matchPropertyNames(propertyNames);
94
+ const termType = this.term.getType(),
95
+ propertyName = this.property.getName(),
96
+ termTypeProperties = termType.getProperties(),
97
+ variableTypeProperty = termTypeProperties.find((termTypeProperty) => {
98
+ const propertyNameMatches = termTypeProperty.matchPropertyName(propertyName);
104
99
 
105
- if (propertyNamesMatch) {
100
+ if (propertyNameMatches) {
106
101
  return true;
107
102
  }
108
103
  }) || null;
109
104
 
110
105
  if (variableTypeProperty === null) {
111
106
  const variableString = this.term.getString(),
112
- variableTypeString = variableType.getString();
107
+ variableTypeString = termType.getString();
113
108
 
114
- context.debug(`The '${propertyNames}' property is not a property of the '${variableString}' variable's '${variableTypeString}' type.`);
109
+ context.debug(`The '${propertyName}' property is not a property of the '${variableString}' variable's '${variableTypeString}' type.`);
115
110
  } else {
116
- const type = variableType;
111
+ const type = termType;
117
112
 
118
113
  this.property.setType(type);
119
114
 
@@ -121,7 +116,7 @@ export default domAssigned(class PropertyRelation {
121
116
  }
122
117
 
123
118
  if (propertyVerified) {
124
- context.debug(`...verified the '${propertyRelationString}' property relation's '${propertyString}' property.`);
119
+ context.debug(`...verified the '${propertyString}' property.`);
125
120
  }
126
121
 
127
122
  return propertyVerified;
@@ -131,8 +126,7 @@ export default domAssigned(class PropertyRelation {
131
126
 
132
127
  static fromPropertyAssertionNode(propertyAssertionNode, context) {
133
128
  const { Term, Property } = dom,
134
- propertyAssertionPropertyRelationNode = propertyAssertionPropertyRelationNodeQuery(propertyAssertionNode),
135
- propertyRelationNode = propertyAssertionPropertyRelationNode, ///
129
+ propertyRelationNode = propertyAssertionNode.getPropertyRelationNode(),
136
130
  node = propertyRelationNode, ///
137
131
  string = context.nodeAsString(node),
138
132
  tokens = context.nodeAsTokens(node),
@@ -4,17 +4,11 @@ import dom from "../dom";
4
4
  import LocalContext from "../context/local";
5
5
  import Substitutions from "../substitutions";
6
6
 
7
- import { nodeQuery } from "../utilities/query";
8
7
  import { domAssigned } from "../dom";
9
8
  import { referenceMetaType } from "../dom/metaType";
10
9
  import { unifyMetavariableIntrinsically } from "../utilities/unification";
11
10
  import { metavariableFromJSON, metavariableToMetavariableJSON } from "../utilities/json";
12
11
 
13
- const stepReferenceNodeQuery = nodeQuery("/step/reference"),
14
- procedureCallReferenceNodeQuery = nodeQuery("/procedureCall/reference"),
15
- declarationMetavariableNodeQuery = nodeQuery("/declaration/metavariable"),
16
- satisfiesAssertionMetavariableNodeQuery = nodeQuery("/satisfiesAssertion/metavariable");
17
-
18
12
  export default domAssigned(class Reference {
19
13
  constructor(metavariable) {
20
14
  this.metavariable = metavariable;
@@ -183,11 +177,9 @@ export default domAssigned(class Reference {
183
177
  static fromStepNode(stepNode, fileContext) {
184
178
  let reference = null;
185
179
 
186
- const stepReferenceNode = stepReferenceNodeQuery(stepNode);
187
-
188
- if (stepReferenceNode !== null) {
189
- const referenceNode = stepReferenceNode; ///
180
+ const referenceNode = stepNode.getReferenceNode();
190
181
 
182
+ if (referenceNode !== null) {
191
183
  reference = referenceFromReferenceNode(referenceNode, fileContext);
192
184
  }
193
185
 
@@ -201,8 +193,7 @@ export default domAssigned(class Reference {
201
193
  }
202
194
 
203
195
  static fromDeclarationNode(declarationNode, fileContext) {
204
- const declarationMetavariableNode = declarationMetavariableNodeQuery(declarationNode),
205
- metavariableNode = declarationMetavariableNode, ///
196
+ const metavariableNode = declarationNode.getMetavariableNode(),
206
197
  reference = referenceFromMetavariableNode(metavariableNode, fileContext);
207
198
 
208
199
  return reference;
@@ -217,11 +208,9 @@ export default domAssigned(class Reference {
217
208
  static fromProcedureCallNode(procedureCallNode, fileContext) {
218
209
  let reference = null;
219
210
 
220
- const procedureCallReferenceNode = procedureCallReferenceNodeQuery(procedureCallNode);
221
-
222
- if (procedureCallReferenceNode !== null) {
223
- const referenceNode = procedureCallReferenceNode; ///
211
+ const referenceNode = procedureCallNode.getReferenceNode();
224
212
 
213
+ if (referenceNode !== null) {
225
214
  reference = referenceFromReferenceNode(referenceNode, fileContext);
226
215
  }
227
216
 
@@ -229,8 +218,7 @@ export default domAssigned(class Reference {
229
218
  }
230
219
 
231
220
  static fromSatisfiesAssertionNode(satisfiesAssertionNode, fileContext) {
232
- const satisfiesAssertionMetavariableNode = satisfiesAssertionMetavariableNodeQuery(satisfiesAssertionNode),
233
- metavariableNode = satisfiesAssertionMetavariableNode, ///
221
+ const metavariableNode = satisfiesAssertionNode.getMetavariableNode(),
234
222
  reference = referenceFromMetavariableNode(metavariableNode, fileContext);
235
223
 
236
224
  return reference;