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
@@ -147,35 +147,35 @@ _define_property(TopLevelVerifier, "maps", [
147
147
  {
148
148
  nodeQuery: lemmaNodeQuery,
149
149
  verify: function(lemmaNode, fileContext) {
150
- var Lemma = _dom.default.Lemma, node = lemmaNode, lemma = Lemma.fromNode(node, fileContext), lemmaVerified = lemma.verify();
150
+ var Lemma = _dom.default.Lemma, lemma = Lemma.fromLemmaNode(lemmaNode, fileContext), lemmaVerified = lemma.verify();
151
151
  return lemmaVerified;
152
152
  }
153
153
  },
154
154
  {
155
155
  nodeQuery: theoremNodeQuery,
156
156
  verify: function(theoremNode, fileContext) {
157
- var Theorem = _dom.default.Theorem, node = theoremNode, theorem = Theorem.fromNode(node, fileContext), theoremVerified = theorem.verify();
157
+ var Theorem = _dom.default.Theorem, theorem = Theorem.fromTheoremNode(theoremNode, fileContext), theoremVerified = theorem.verify();
158
158
  return theoremVerified;
159
159
  }
160
160
  },
161
161
  {
162
162
  nodeQuery: metaLemmaNodeQuery,
163
163
  verify: function(metaLemmaNode, fileContext) {
164
- var MetaLemma = _dom.default.MetaLemma, node = metaLemmaNode, metaLemma = MetaLemma.fromNode(node, fileContext), metaLemmaVerified = metaLemma.verify();
164
+ var MetaLemma = _dom.default.MetaLemma, metaLemma = MetaLemma.fromMetaLemmaNode(metaLemmaNode, fileContext), metaLemmaVerified = metaLemma.verify();
165
165
  return metaLemmaVerified;
166
166
  }
167
167
  },
168
168
  {
169
169
  nodeQuery: conjectureNodeQuery,
170
170
  verify: function(conjectureNode, fileContext) {
171
- var Conjecture = _dom.default.Conjecture, node = conjectureNode, conjecture = Conjecture.fromNode(node, fileContext), conjectureVerified = conjecture.verify();
171
+ var Conjecture = _dom.default.Conjecture, conjecture = Conjecture.fromConjectureNode(conjectureNode, fileContext), conjectureVerified = conjecture.verify();
172
172
  return conjectureVerified;
173
173
  }
174
174
  },
175
175
  {
176
176
  nodeQuery: metatheoremNodeQuery,
177
177
  verify: function(metatheoremNode, fileContext) {
178
- var Metatheorem = _dom.default.Metatheorem, node = metatheoremNode, metatheorem = Metatheorem.fromNode(node, fileContext), metatheoremVerified = metatheorem.verify();
178
+ var Metatheorem = _dom.default.Metatheorem, metatheorem = Metatheorem.fromMetatheoremNode(metatheoremNode, fileContext), metatheoremVerified = metatheorem.verify();
179
179
  return metatheoremVerified;
180
180
  }
181
181
  },
@@ -225,4 +225,4 @@ _define_property(TopLevelVerifier, "maps", [
225
225
  var topLevelVerifier = new TopLevelVerifier();
226
226
  var _default = topLevelVerifier;
227
227
 
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZmllci90b3BMZXZlbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgVmVyaWZpZXIgZnJvbSBcIi4uL3ZlcmlmaWVyXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgZXJyb3JOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZXJyb3JcIiksXG4gICAgICBydWxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3J1bGVcIiksXG4gICAgICBheGlvbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9heGlvbVwiKSxcbiAgICAgIGxlbW1hTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2xlbW1hXCIpLFxuICAgICAgdGhlb3JlbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90aGVvcmVtXCIpLFxuICAgICAgbWV0YUxlbW1hTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGFMZW1tYVwiKSxcbiAgICAgIGNvbmplY3R1cmVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29uamVjdHVyZVwiKSxcbiAgICAgIG1ldGF0aGVvcmVtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGF0aGVvcmVtXCIpLFxuICAgICAgdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVEZWNsYXJhdGlvblwiKSxcbiAgICAgIHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVEZWNsYXJhdGlvblwiKSxcbiAgICAgIGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb21iaW5hdG9yRGVjbGFyYXRpb25cIiksXG4gICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbnN0cnVjdG9yRGVjbGFyYXRpb25cIiksXG4gICAgICBjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbXBsZXhUeXBlRGVjbGFyYXRpb25cIiksXG4gICAgICBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhdmFyaWFibGVEZWNsYXJhdGlvblwiKTtcblxuY2xhc3MgVG9wTGV2ZWxWZXJpZmllciBleHRlbmRzIFZlcmlmaWVyIHtcbiAgdmVyaWZ5KG5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkQXRUb3BMZXZlbDtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGUsIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICB2ZXJpZmllZEF0VG9wTGV2ZWwgPSBub25UZXJtaW5hbE5vZGVWZXJpZmllZDsgIC8vL1xuXG4gICAgcmV0dXJuIHZlcmlmaWVkQXRUb3BMZXZlbDtcbiAgfVxuXG4gIHN0YXRpYyBtYXBzID0gW1xuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogZXJyb3JOb2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChlcnJvck5vZGUsIGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgRXJyb3IgfSA9IGRvbSxcbiAgICAgICAgICAgICAgZXJyb3IgPSBFcnJvci5mcm9tRXJyb3JOb2RlKGVycm9yTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgICBlcnJvclZlcmlmaWVkID0gZXJyb3IudmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIGVycm9yVmVyaWZpZWQ7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHJ1bGVOb2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChydWxlTm9kZSwgZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBSdWxlIH0gPSBkb20sXG4gICAgICAgICAgICAgIHJ1bGUgPSBSdWxlLmZyb21SdWxlTm9kZShydWxlTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgICBydWxlVmVyaWZpZWQgPSBydWxlLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBydWxlVmVyaWZpZWQ7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGF4aW9tTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAoYXhpb21Ob2RlLCBmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IEF4aW9tIH0gPSBkb20sXG4gICAgICAgICAgICAgIGF4aW9tID0gQXhpb20uZnJvbUF4aW9tTm9kZShheGlvbU5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICAgICAgYXhpb21WZXJpZmllZCA9IGF4aW9tLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBheGlvbVZlcmlmaWVkO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBsZW1tYU5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKGxlbW1hTm9kZSwgZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBMZW1tYSB9ID0gZG9tLFxuICAgICAgICAgICAgICBub2RlID0gbGVtbWFOb2RlLCAvLy9cbiAgICAgICAgICAgICAgbGVtbWEgPSBMZW1tYS5mcm9tTm9kZShub2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgICAgIGxlbW1hVmVyaWZpZWQgPSBsZW1tYS52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gbGVtbWFWZXJpZmllZDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdGhlb3JlbU5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKHRoZW9yZW1Ob2RlLCBmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IFRoZW9yZW0gfSA9IGRvbSxcbiAgICAgICAgICAgICAgbm9kZSA9IHRoZW9yZW1Ob2RlLCAvLy9cbiAgICAgICAgICAgICAgdGhlb3JlbSA9IFRoZW9yZW0uZnJvbU5vZGUobm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgICB0aGVvcmVtVmVyaWZpZWQgPSB0aGVvcmVtLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiB0aGVvcmVtVmVyaWZpZWQ7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IG1ldGFMZW1tYU5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKG1ldGFMZW1tYU5vZGUsIGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgTWV0YUxlbW1hIH0gPSBkb20sXG4gICAgICAgICAgICAgIG5vZGUgPSBtZXRhTGVtbWFOb2RlLCAvLy9cbiAgICAgICAgICAgICAgbWV0YUxlbW1hID0gTWV0YUxlbW1hLmZyb21Ob2RlKG5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICAgICAgbWV0YUxlbW1hVmVyaWZpZWQgPSBtZXRhTGVtbWEudmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIG1ldGFMZW1tYVZlcmlmaWVkO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBjb25qZWN0dXJlTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAoY29uamVjdHVyZU5vZGUsIGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgQ29uamVjdHVyZSB9ID0gZG9tLFxuICAgICAgICAgICAgICBub2RlID0gY29uamVjdHVyZU5vZGUsICAvLy9cbiAgICAgICAgICAgICAgY29uamVjdHVyZSA9IENvbmplY3R1cmUuZnJvbU5vZGUobm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgICBjb25qZWN0dXJlVmVyaWZpZWQgPSBjb25qZWN0dXJlLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBjb25qZWN0dXJlVmVyaWZpZWQ7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IG1ldGF0aGVvcmVtTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAobWV0YXRoZW9yZW1Ob2RlLCBmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IE1ldGF0aGVvcmVtIH0gPSBkb20sXG4gICAgICAgICAgICAgIG5vZGUgPSBtZXRhdGhlb3JlbU5vZGUsIC8vL1xuICAgICAgICAgICAgICBtZXRhdGhlb3JlbSA9IE1ldGF0aGVvcmVtLmZyb21Ob2RlKG5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICAgICAgbWV0YXRoZW9yZW1WZXJpZmllZCA9IG1ldGF0aGVvcmVtLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBtZXRhdGhlb3JlbVZlcmlmaWVkO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0eXBlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6ICh0eXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IFR5cGVEZWNsYXJhdGlvbiB9ID0gZG9tLFxuICAgICAgICAgICAgICB0eXBlRGVjbGFyYXRpb24gPSBUeXBlRGVjbGFyYXRpb24uZnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgICB0eXBlRGVjbGFyYXRpb25WZXJpZmllZCA9IHR5cGVEZWNsYXJhdGlvbi52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gdHlwZURlY2xhcmF0aW9uVmVyaWZpZWQ7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6ICh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBWYXJpYWJsZURlY2xhcmF0aW9uIH0gPSBkb20sXG4gICAgICAgICAgICAgIHZhcmlhYmxlRGVjbGFyYXRpb24gPSBWYXJpYWJsZURlY2xhcmF0aW9uLmZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZWQgPSB2YXJpYWJsZURlY2xhcmF0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiB2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZWQ7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgQ29tYmluYXRvckRlY2xhcmF0aW9uIH0gPSBkb20sXG4gICAgICAgICAgICAgIGNvbWJpbmF0b3JEZWNsYXJhdGlvbiA9IENvbWJpbmF0b3JEZWNsYXJhdGlvbi5mcm9tQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZShjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgICAgIGNvbWJpbmF0b3JEZWNsYXJhdGlvblZlcmlmaWVkID0gY29tYmluYXRvckRlY2xhcmF0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5hdG9yRGVjbGFyYXRpb25WZXJpZmllZDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IENvbnN0cnVjdG9yRGVjbGFyYXRpb24gfSA9IGRvbSxcbiAgICAgICAgICAgICAgY29uc3RydWN0b3JEZWNsYXJhdGlvbiA9IENvbnN0cnVjdG9yRGVjbGFyYXRpb24uZnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25WZXJpZmllZCA9IGNvbnN0cnVjdG9yRGVjbGFyYXRpb24udmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25WZXJpZmllZDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IENvbXBsZXhUeXBlRGVjbGFyYXRpb24gfSA9IGRvbSxcbiAgICAgICAgICAgICAgY29tcGxleFR5cGVEZWNsYXJhdGlvbiA9IENvbXBsZXhUeXBlRGVjbGFyYXRpb24uZnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgICAgIGNvbXBsZXhUeXBlRGVjbGFyYXRpb25WZXJpZmllZCA9IGNvbXBsZXhUeXBlRGVjbGFyYXRpb24udmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIGNvbXBsZXhUeXBlRGVjbGFyYXRpb25WZXJpZmllZDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgTWV0YXZhcmlhYmxlRGVjbGFyYXRpb24gfSA9IGRvbSxcbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb24gPSBNZXRhdmFyaWFibGVEZWNsYXJhdGlvbi5mcm9tTWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgICBtZXRhdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkID0gbWV0YXZhcmlhYmxlRGVjbGFyYXRpb24udmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZWQ7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jb25zdCB0b3BMZXZlbFZlcmlmaWVyID0gbmV3IFRvcExldmVsVmVyaWZpZXIoKTtcblxuZXhwb3J0IGRlZmF1bHQgdG9wTGV2ZWxWZXJpZmllcjtcbiJdLCJuYW1lcyI6WyJlcnJvck5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInJ1bGVOb2RlUXVlcnkiLCJheGlvbU5vZGVRdWVyeSIsImxlbW1hTm9kZVF1ZXJ5IiwidGhlb3JlbU5vZGVRdWVyeSIsIm1ldGFMZW1tYU5vZGVRdWVyeSIsImNvbmplY3R1cmVOb2RlUXVlcnkiLCJtZXRhdGhlb3JlbU5vZGVRdWVyeSIsInR5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsInZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiVG9wTGV2ZWxWZXJpZmllciIsInZlcmlmeSIsIm5vZGUiLCJmaWxlQ29udGV4dCIsInZlcmlmaWVkQXRUb3BMZXZlbCIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwiVmVyaWZpZXIiLCJtYXBzIiwiZXJyb3JOb2RlIiwiRXJyb3IiLCJkb20iLCJlcnJvciIsImZyb21FcnJvck5vZGUiLCJlcnJvclZlcmlmaWVkIiwicnVsZU5vZGUiLCJSdWxlIiwicnVsZSIsImZyb21SdWxlTm9kZSIsInJ1bGVWZXJpZmllZCIsImF4aW9tTm9kZSIsIkF4aW9tIiwiYXhpb20iLCJmcm9tQXhpb21Ob2RlIiwiYXhpb21WZXJpZmllZCIsImxlbW1hTm9kZSIsIkxlbW1hIiwibGVtbWEiLCJmcm9tTm9kZSIsImxlbW1hVmVyaWZpZWQiLCJ0aGVvcmVtTm9kZSIsIlRoZW9yZW0iLCJ0aGVvcmVtIiwidGhlb3JlbVZlcmlmaWVkIiwibWV0YUxlbW1hTm9kZSIsIk1ldGFMZW1tYSIsIm1ldGFMZW1tYSIsIm1ldGFMZW1tYVZlcmlmaWVkIiwiY29uamVjdHVyZU5vZGUiLCJDb25qZWN0dXJlIiwiY29uamVjdHVyZSIsImNvbmplY3R1cmVWZXJpZmllZCIsIm1ldGF0aGVvcmVtTm9kZSIsIk1ldGF0aGVvcmVtIiwibWV0YXRoZW9yZW0iLCJtZXRhdGhlb3JlbVZlcmlmaWVkIiwidHlwZURlY2xhcmF0aW9uTm9kZSIsIlR5cGVEZWNsYXJhdGlvbiIsInR5cGVEZWNsYXJhdGlvbiIsImZyb21UeXBlRGVjbGFyYXRpb25Ob2RlIiwidHlwZURlY2xhcmF0aW9uVmVyaWZpZWQiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsIlZhcmlhYmxlRGVjbGFyYXRpb24iLCJ2YXJpYWJsZURlY2xhcmF0aW9uIiwiZnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwidmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkIiwiY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsIkNvbWJpbmF0b3JEZWNsYXJhdGlvbiIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbiIsImZyb21Db21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlIiwiY29tYmluYXRvckRlY2xhcmF0aW9uVmVyaWZpZWQiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsIkNvbnN0cnVjdG9yRGVjbGFyYXRpb24iLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uIiwiZnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvblZlcmlmaWVkIiwiY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUiLCJDb21wbGV4VHlwZURlY2xhcmF0aW9uIiwiY29tcGxleFR5cGVEZWNsYXJhdGlvbiIsImZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsImNvbXBsZXhUeXBlRGVjbGFyYXRpb25WZXJpZmllZCIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsIk1ldGF2YXJpYWJsZURlY2xhcmF0aW9uIiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb24iLCJmcm9tTWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZCIsInRvcExldmVsVmVyaWZpZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXlMQTs7O2VBQUE7OzswREF2TGdCOytEQUNLO3FCQUVLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUxQixJQUFNQSxpQkFBaUJDLElBQUFBLGdCQUFTLEVBQUMsV0FDM0JDLGdCQUFnQkQsSUFBQUEsZ0JBQVMsRUFBQyxVQUMxQkUsaUJBQWlCRixJQUFBQSxnQkFBUyxFQUFDLFdBQzNCRyxpQkFBaUJILElBQUFBLGdCQUFTLEVBQUMsV0FDM0JJLG1CQUFtQkosSUFBQUEsZ0JBQVMsRUFBQyxhQUM3QksscUJBQXFCTCxJQUFBQSxnQkFBUyxFQUFDLGVBQy9CTSxzQkFBc0JOLElBQUFBLGdCQUFTLEVBQUMsZ0JBQ2hDTyx1QkFBdUJQLElBQUFBLGdCQUFTLEVBQUMsaUJBQ2pDUSwyQkFBMkJSLElBQUFBLGdCQUFTLEVBQUMscUJB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
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZmllci90b3BMZXZlbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgVmVyaWZpZXIgZnJvbSBcIi4uL3ZlcmlmaWVyXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgZXJyb3JOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZXJyb3JcIiksXG4gICAgICBydWxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3J1bGVcIiksXG4gICAgICBheGlvbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9heGlvbVwiKSxcbiAgICAgIGxlbW1hTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2xlbW1hXCIpLFxuICAgICAgdGhlb3JlbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90aGVvcmVtXCIpLFxuICAgICAgbWV0YUxlbW1hTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGFMZW1tYVwiKSxcbiAgICAgIGNvbmplY3R1cmVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29uamVjdHVyZVwiKSxcbiAgICAgIG1ldGF0aGVvcmVtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGF0aGVvcmVtXCIpLFxuICAgICAgdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVEZWNsYXJhdGlvblwiKSxcbiAgICAgIHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVEZWNsYXJhdGlvblwiKSxcbiAgICAgIGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb21iaW5hdG9yRGVjbGFyYXRpb25cIiksXG4gICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbnN0cnVjdG9yRGVjbGFyYXRpb25cIiksXG4gICAgICBjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbXBsZXhUeXBlRGVjbGFyYXRpb25cIiksXG4gICAgICBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhdmFyaWFibGVEZWNsYXJhdGlvblwiKTtcblxuY2xhc3MgVG9wTGV2ZWxWZXJpZmllciBleHRlbmRzIFZlcmlmaWVyIHtcbiAgdmVyaWZ5KG5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkQXRUb3BMZXZlbDtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGUsIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICB2ZXJpZmllZEF0VG9wTGV2ZWwgPSBub25UZXJtaW5hbE5vZGVWZXJpZmllZDsgIC8vL1xuXG4gICAgcmV0dXJuIHZlcmlmaWVkQXRUb3BMZXZlbDtcbiAgfVxuXG4gIHN0YXRpYyBtYXBzID0gW1xuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogZXJyb3JOb2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChlcnJvck5vZGUsIGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgRXJyb3IgfSA9IGRvbSxcbiAgICAgICAgICAgICAgZXJyb3IgPSBFcnJvci5mcm9tRXJyb3JOb2RlKGVycm9yTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgICBlcnJvclZlcmlmaWVkID0gZXJyb3IudmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIGVycm9yVmVyaWZpZWQ7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHJ1bGVOb2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChydWxlTm9kZSwgZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBSdWxlIH0gPSBkb20sXG4gICAgICAgICAgICAgIHJ1bGUgPSBSdWxlLmZyb21SdWxlTm9kZShydWxlTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgICBydWxlVmVyaWZpZWQgPSBydWxlLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBydWxlVmVyaWZpZWQ7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGF4aW9tTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAoYXhpb21Ob2RlLCBmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IEF4aW9tIH0gPSBkb20sXG4gICAgICAgICAgICAgIGF4aW9tID0gQXhpb20uZnJvbUF4aW9tTm9kZShheGlvbU5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICAgICAgYXhpb21WZXJpZmllZCA9IGF4aW9tLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBheGlvbVZlcmlmaWVkO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBsZW1tYU5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKGxlbW1hTm9kZSwgZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBMZW1tYSB9ID0gZG9tLFxuICAgICAgICAgICAgICBsZW1tYSA9IExlbW1hLmZyb21MZW1tYU5vZGUobGVtbWFOb2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgICAgIGxlbW1hVmVyaWZpZWQgPSBsZW1tYS52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gbGVtbWFWZXJpZmllZDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdGhlb3JlbU5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKHRoZW9yZW1Ob2RlLCBmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IFRoZW9yZW0gfSA9IGRvbSxcbiAgICAgICAgICAgICAgdGhlb3JlbSA9IFRoZW9yZW0uZnJvbVRoZW9yZW1Ob2RlKHRoZW9yZW1Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgICAgIHRoZW9yZW1WZXJpZmllZCA9IHRoZW9yZW0udmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIHRoZW9yZW1WZXJpZmllZDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogbWV0YUxlbW1hTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAobWV0YUxlbW1hTm9kZSwgZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBNZXRhTGVtbWEgfSA9IGRvbSxcbiAgICAgICAgICAgICAgbWV0YUxlbW1hID0gTWV0YUxlbW1hLmZyb21NZXRhTGVtbWFOb2RlKG1ldGFMZW1tYU5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICAgICAgbWV0YUxlbW1hVmVyaWZpZWQgPSBtZXRhTGVtbWEudmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIG1ldGFMZW1tYVZlcmlmaWVkO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBjb25qZWN0dXJlTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAoY29uamVjdHVyZU5vZGUsIGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgQ29uamVjdHVyZSB9ID0gZG9tLFxuICAgICAgICAgICAgICBjb25qZWN0dXJlID0gQ29uamVjdHVyZS5mcm9tQ29uamVjdHVyZU5vZGUoY29uamVjdHVyZU5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICAgICAgY29uamVjdHVyZVZlcmlmaWVkID0gY29uamVjdHVyZS52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gY29uamVjdHVyZVZlcmlmaWVkO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBtZXRhdGhlb3JlbU5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKG1ldGF0aGVvcmVtTm9kZSwgZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBNZXRhdGhlb3JlbSB9ID0gZG9tLFxuICAgICAgICAgICAgICBtZXRhdGhlb3JlbSA9IE1ldGF0aGVvcmVtLmZyb21NZXRhdGhlb3JlbU5vZGUobWV0YXRoZW9yZW1Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgICAgIG1ldGF0aGVvcmVtVmVyaWZpZWQgPSBtZXRhdGhlb3JlbS52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gbWV0YXRoZW9yZW1WZXJpZmllZDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAodHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBUeXBlRGVjbGFyYXRpb24gfSA9IGRvbSxcbiAgICAgICAgICAgICAgdHlwZURlY2xhcmF0aW9uID0gVHlwZURlY2xhcmF0aW9uLmZyb21UeXBlRGVjbGFyYXRpb25Ob2RlKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICAgICAgdHlwZURlY2xhcmF0aW9uVmVyaWZpZWQgPSB0eXBlRGVjbGFyYXRpb24udmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIHR5cGVEZWNsYXJhdGlvblZlcmlmaWVkO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgVmFyaWFibGVEZWNsYXJhdGlvbiB9ID0gZG9tLFxuICAgICAgICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uID0gVmFyaWFibGVEZWNsYXJhdGlvbi5mcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkID0gdmFyaWFibGVEZWNsYXJhdGlvbi52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IENvbWJpbmF0b3JEZWNsYXJhdGlvbiB9ID0gZG9tLFxuICAgICAgICAgICAgICBjb21iaW5hdG9yRGVjbGFyYXRpb24gPSBDb21iaW5hdG9yRGVjbGFyYXRpb24uZnJvbUNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUoY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgICBjb21iaW5hdG9yRGVjbGFyYXRpb25WZXJpZmllZCA9IGNvbWJpbmF0b3JEZWNsYXJhdGlvbi52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gY29tYmluYXRvckRlY2xhcmF0aW9uVmVyaWZpZWQ7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBDb25zdHJ1Y3RvckRlY2xhcmF0aW9uIH0gPSBkb20sXG4gICAgICAgICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb24gPSBDb25zdHJ1Y3RvckRlY2xhcmF0aW9uLmZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZShjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVmVyaWZpZWQgPSBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVmVyaWZpZWQ7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBDb21wbGV4VHlwZURlY2xhcmF0aW9uIH0gPSBkb20sXG4gICAgICAgICAgICAgIGNvbXBsZXhUeXBlRGVjbGFyYXRpb24gPSBDb21wbGV4VHlwZURlY2xhcmF0aW9uLmZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZShjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgICBjb21wbGV4VHlwZURlY2xhcmF0aW9uVmVyaWZpZWQgPSBjb21wbGV4VHlwZURlY2xhcmF0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBjb21wbGV4VHlwZURlY2xhcmF0aW9uVmVyaWZpZWQ7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAobWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IE1ldGF2YXJpYWJsZURlY2xhcmF0aW9uIH0gPSBkb20sXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uID0gTWV0YXZhcmlhYmxlRGVjbGFyYXRpb24uZnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZShtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZCA9IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBtZXRhdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY29uc3QgdG9wTGV2ZWxWZXJpZmllciA9IG5ldyBUb3BMZXZlbFZlcmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHRvcExldmVsVmVyaWZpZXI7XG4iXSwibmFtZXMiOlsiZXJyb3JOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJydWxlTm9kZVF1ZXJ5IiwiYXhpb21Ob2RlUXVlcnkiLCJsZW1tYU5vZGVRdWVyeSIsInRoZW9yZW1Ob2RlUXVlcnkiLCJtZXRhTGVtbWFOb2RlUXVlcnkiLCJjb25qZWN0dXJlTm9kZVF1ZXJ5IiwibWV0YXRoZW9yZW1Ob2RlUXVlcnkiLCJ0eXBlRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSIsImNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsIlRvcExldmVsVmVyaWZpZXIiLCJ2ZXJpZnkiLCJub2RlIiwiZmlsZUNvbnRleHQiLCJ2ZXJpZmllZEF0VG9wTGV2ZWwiLCJub25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGVWZXJpZmllZCIsInZlcmlmeU5vblRlcm1pbmFsTm9kZSIsIlZlcmlmaWVyIiwibWFwcyIsImVycm9yTm9kZSIsIkVycm9yIiwiZG9tIiwiZXJyb3IiLCJmcm9tRXJyb3JOb2RlIiwiZXJyb3JWZXJpZmllZCIsInJ1bGVOb2RlIiwiUnVsZSIsInJ1bGUiLCJmcm9tUnVsZU5vZGUiLCJydWxlVmVyaWZpZWQiLCJheGlvbU5vZGUiLCJBeGlvbSIsImF4aW9tIiwiZnJvbUF4aW9tTm9kZSIsImF4aW9tVmVyaWZpZWQiLCJsZW1tYU5vZGUiLCJMZW1tYSIsImxlbW1hIiwiZnJvbUxlbW1hTm9kZSIsImxlbW1hVmVyaWZpZWQiLCJ0aGVvcmVtTm9kZSIsIlRoZW9yZW0iLCJ0aGVvcmVtIiwiZnJvbVRoZW9yZW1Ob2RlIiwidGhlb3JlbVZlcmlmaWVkIiwibWV0YUxlbW1hTm9kZSIsIk1ldGFMZW1tYSIsIm1ldGFMZW1tYSIsImZyb21NZXRhTGVtbWFOb2RlIiwibWV0YUxlbW1hVmVyaWZpZWQiLCJjb25qZWN0dXJlTm9kZSIsIkNvbmplY3R1cmUiLCJjb25qZWN0dXJlIiwiZnJvbUNvbmplY3R1cmVOb2RlIiwiY29uamVjdHVyZVZlcmlmaWVkIiwibWV0YXRoZW9yZW1Ob2RlIiwiTWV0YXRoZW9yZW0iLCJtZXRhdGhlb3JlbSIsImZyb21NZXRhdGhlb3JlbU5vZGUiLCJtZXRhdGhlb3JlbVZlcmlmaWVkIiwidHlwZURlY2xhcmF0aW9uTm9kZSIsIlR5cGVEZWNsYXJhdGlvbiIsInR5cGVEZWNsYXJhdGlvbiIsImZyb21UeXBlRGVjbGFyYXRpb25Ob2RlIiwidHlwZURlY2xhcmF0aW9uVmVyaWZpZWQiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsIlZhcmlhYmxlRGVjbGFyYXRpb24iLCJ2YXJpYWJsZURlY2xhcmF0aW9uIiwiZnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwidmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkIiwiY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsIkNvbWJpbmF0b3JEZWNsYXJhdGlvbiIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbiIsImZyb21Db21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlIiwiY29tYmluYXRvckRlY2xhcmF0aW9uVmVyaWZpZWQiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsIkNvbnN0cnVjdG9yRGVjbGFyYXRpb24iLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uIiwiZnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvblZlcmlmaWVkIiwiY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUiLCJDb21wbGV4VHlwZURlY2xhcmF0aW9uIiwiY29tcGxleFR5cGVEZWNsYXJhdGlvbiIsImZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsImNvbXBsZXhUeXBlRGVjbGFyYXRpb25WZXJpZmllZCIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsIk1ldGF2YXJpYWJsZURlY2xhcmF0aW9uIiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb24iLCJmcm9tTWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZCIsInRvcExldmVsVmVyaWZpZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQW9MQTs7O2VBQUE7OzswREFsTGdCOytEQUNLO3FCQUVLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUxQixJQUFNQSxpQkFBaUJDLElBQUFBLGdCQUFTLEVBQUMsV0FDM0JDLGdCQUFnQkQsSUFBQUEsZ0JBQVMsRUFBQyxVQUMxQkUsaUJBQWlCRixJQUFBQSxnQkFBUyxFQUFDLFdBQzNCRyxpQkFBaUJILElBQUFBLGdCQUFTLEVBQUMsV0FDM0JJLG1CQUFtQkosSUFBQUEsZ0JBQVMsRUFBQyxhQUM3QksscUJBQXFCTCxJQUFBQSxnQkFBUyxFQUFDLGVBQy9CTSxzQkFBc0JOLElBQUFBLGdCQUFTLEVBQUMsZ0JBQ2hDTyx1QkFBdUJQLElBQUFBLGdCQUFTLEVBQUMsaUJBQ2pDUSwyQkFBMkJSLElBQUFBLGdCQUFTLEVBQUMscUJBQ3JDUywrQkFBK0JULElBQUFBLGdCQUFTLEVBQUMseUJB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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-verify-cli",
3
3
  "author": "James Smith",
4
- "version": "1.0.185",
4
+ "version": "1.0.198",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
@@ -15,7 +15,7 @@
15
15
  "occam-custom-grammars": "^5.0.1211",
16
16
  "occam-entities": "^1.0.362",
17
17
  "occam-file-system": "^6.0.380",
18
- "occam-furtle": "^2.0.164",
18
+ "occam-furtle": "^2.0.166",
19
19
  "occam-grammars": "^1.3.287",
20
20
  "occam-lexers": "^23.0.47",
21
21
  "occam-parsers": "^23.0.160",
package/src/constants.js CHANGED
@@ -9,6 +9,7 @@ export const UNDEFINED = "undefined";
9
9
  export const PROVISIONAL = "Provisional";
10
10
  export const SATISFIABLE = "Satisfiable";
11
11
  export const EMPTY_STRING = "";
12
+ export const SINGLE_SPACE = " ";
12
13
  export const PROVISIONALLY = "provisionally";
13
14
  export const BRACKETED_TERM_DEPTH = 2;
14
15
  export const BRACKETED_STATEMENT_DEPTH = 2;
@@ -127,9 +127,9 @@ export default class FileContext {
127
127
  });
128
128
 
129
129
  this.metatheorems.forEach((metatheorem) => {
130
- const metatheoremLabels = metatheorem.getLabels();
130
+ const metatheoremLabel = metatheorem.getLabel();
131
131
 
132
- push(labels, metatheoremLabels);
132
+ labels.push(metatheoremLabel);
133
133
  });
134
134
 
135
135
  if (includeRelease) {
@@ -3,14 +3,9 @@
3
3
  import dom from "../../dom";
4
4
  import LocalContext from "../../context/local";
5
5
 
6
- import { MISSING } from "../../constants";
7
6
  import { domAssigned } from "../../dom";
8
- import { nodeQuery, nodesQuery } from "../../utilities/query";
9
7
  import { termFromTermAndSubstitutions, frameFromFrameAndSubstitutions, statementFromStatementAndSubstitutions } from "../../utilities/substitutions";
10
8
 
11
- const terminalNodesQuery = nodesQuery("/containedAssertion/@*"),
12
- containedAssertionNodeQuery = nodeQuery("/statement/containedAssertion");
13
-
14
9
  export default domAssigned(class ContainedAssertion {
15
10
  constructor(string, node, tokens, term, frame, negated, statement) {
16
11
  this.string = string;
@@ -87,10 +82,9 @@ export default domAssigned(class ContainedAssertion {
87
82
  let termVerified = false;
88
83
 
89
84
  if (this.term !== null) {
90
- const termString = this.term.getString(),
91
- containedAssertionString = this.string; ///
85
+ const termString = this.term.getString();
92
86
 
93
- context.trace(`Verifying the '${containedAssertionString}' contained assertion's '${termString}' term...`);
87
+ context.trace(`Verifying the '${termString}' term...`);
94
88
 
95
89
  const termSimple = this.term.isSimple();
96
90
 
@@ -104,7 +98,7 @@ export default domAssigned(class ContainedAssertion {
104
98
  });
105
99
 
106
100
  if (termVerified) {
107
- context.debug(`...verified the '${containedAssertionString}' contained assertion's '${termString}' term.`);
101
+ context.debug(`...verified the '${termString}' term.`);
108
102
  }
109
103
  }
110
104
  }
@@ -116,10 +110,9 @@ export default domAssigned(class ContainedAssertion {
116
110
  let frameVerified = false;
117
111
 
118
112
  if (this.frame !== null) {
119
- const frameString = this.frame.getString(),
120
- containedAssertionString = this.string; ///
113
+ const frameString = this.frame.getString();
121
114
 
122
- context.trace(`Verifying the '${containedAssertionString}' contained assertion's '${frameString}' frame...`);
115
+ context.trace(`Verifying the '${frameString}' frame...`);
123
116
 
124
117
  const frameSimple = this.frame.isSimple();
125
118
 
@@ -133,7 +126,7 @@ export default domAssigned(class ContainedAssertion {
133
126
  frameVerified = this.frame.verify(assignments, stated, context);
134
127
 
135
128
  if (frameVerified) {
136
- context.debug(`...verified the '${containedAssertionString}' contained assertion's '${frameString}' frame.`);
129
+ context.debug(`...verified the '${frameString}' frame.`);
137
130
  }
138
131
  }
139
132
  }
@@ -145,10 +138,9 @@ export default domAssigned(class ContainedAssertion {
145
138
  let statementVerified = false;
146
139
 
147
140
  if (this.statement !== null) {
148
- const statementString = this.statement.getString(),
149
- containedAssertionString = this.string; ///
141
+ const statementString = this.statement.getString();
150
142
 
151
- context.trace(`Verifying the '${containedAssertionString}' contained assertion's '${statementString}' statement...`);
143
+ context.trace(`Verifying the '${statementString}' statement...`);
152
144
 
153
145
  stated = true; ///
154
146
 
@@ -157,7 +149,7 @@ export default domAssigned(class ContainedAssertion {
157
149
  statementVerified = this.statement.verify(assignments, stated, context);
158
150
 
159
151
  if (statementVerified) {
160
- context.debug(`...verified the '${containedAssertionString}' contained assertion's '${statementString}' statement.`);
152
+ context.debug(`...verified the '${statementString}' statement.`);
161
153
  }
162
154
  }
163
155
 
@@ -226,17 +218,17 @@ export default domAssigned(class ContainedAssertion {
226
218
  static fromStatementNode(statementNode, context) {
227
219
  let containedAssertion = null;
228
220
 
229
- const containedAssertionNode = containedAssertionNodeQuery(statementNode);
221
+ const containedAssertionNode = statementNode.getContainedAssertionNode();
230
222
 
231
223
  if (containedAssertionNode !== null) {
232
224
  const { Term, Frame, Statement } = dom,
233
225
  node = containedAssertionNode, ///
234
226
  string = context.nodeAsString(node),
235
227
  tokens = context.nodeAsTokens(node),
228
+ negated = containedAssertionNode.isNegated(),
236
229
  term = Term.fromContainedAssertionNode(containedAssertionNode, context),
237
230
  frame = Frame.fromContainedAssertionNode(containedAssertionNode, context),
238
- statement = Statement.fromContainedAssertionNode(containedAssertionNode, context),
239
- negated = isNegated(containedAssertionNode); ///
231
+ statement = Statement.fromContainedAssertionNode(containedAssertionNode, context);
240
232
 
241
233
  containedAssertion = new ContainedAssertion(string, node, tokens, term, frame, negated, statement);
242
234
  }
@@ -245,20 +237,6 @@ export default domAssigned(class ContainedAssertion {
245
237
  }
246
238
  });
247
239
 
248
- function isNegated(definedAssertionNode) {
249
- const terminalNodes = terminalNodesQuery(definedAssertionNode),
250
- negated = terminalNodes.some((terminalNode) => { ///
251
- const content = terminalNode.getContent(),
252
- contentMessing = (content === MISSING);
253
-
254
- if (contentMessing) {
255
- return true;
256
- }
257
- });
258
-
259
- return negated;
260
- }
261
-
262
240
  function verifyWhenDerived(term, frame, statement, negated, context) {
263
241
  let verifiedWhenDerived = false;
264
242
 
@@ -3,14 +3,9 @@
3
3
  import dom from "../../dom";
4
4
  import LocalContext from "../../context/local";
5
5
 
6
- import { UNDEFINED } from "../../constants";
7
6
  import { domAssigned } from "../../dom";
8
- import { nodeQuery, nodesQuery } from "../../utilities/query";
9
7
  import { termFromTermAndSubstitutions, frameFromFrameAndSubstitutions } from "../../utilities/substitutions";
10
8
 
11
- const terminalNodesQuery = nodesQuery("/definedAssertion/@*"),
12
- definedAssertionNodeQuery = nodeQuery("/statement/definedAssertion");
13
-
14
9
  export default domAssigned(class DefinedAssertion {
15
10
  constructor(string, node, tokens, term, frame, negated) {
16
11
  this.string = string;
@@ -81,10 +76,9 @@ export default domAssigned(class DefinedAssertion {
81
76
  let termVerified = false;
82
77
 
83
78
  if (this.term !== null) {
84
- const termString = this.term.getString(),
85
- definedAssertionString = this.string; ///
79
+ const termString = this.term.getString(); ///
86
80
 
87
- context.trace(`Verifying the '${definedAssertionString}' defined assertion's '${termString}' term...`);
81
+ context.trace(`Verifying the '${termString}' term...`);
88
82
 
89
83
  const termSimple = this.term.isSimple();
90
84
 
@@ -98,7 +92,7 @@ export default domAssigned(class DefinedAssertion {
98
92
  });
99
93
 
100
94
  if (termVerified) {
101
- context.debug(`...verified the '${definedAssertionString}' defined assertion's '${termString}' term.`);
95
+ context.debug(`...verified the '${termString}' term.`);
102
96
  }
103
97
  }
104
98
  }
@@ -110,10 +104,9 @@ export default domAssigned(class DefinedAssertion {
110
104
  let frameVerified = false;
111
105
 
112
106
  if (this.frame !== null) {
113
- const frameString = this.frame.getString(),
114
- definedAssertionString = this.string; ///
107
+ const frameString = this.frame.getString(); ///
115
108
 
116
- context.trace(`Verifying the '${definedAssertionString}' defined assertion's '${frameString}' frame...`);
109
+ context.trace(`Verifying the '${frameString}' frame...`);
117
110
 
118
111
  const frameSimple = this.frame.isSimple();
119
112
 
@@ -127,7 +120,7 @@ export default domAssigned(class DefinedAssertion {
127
120
  frameVerified = this.frame.verify(assignments, stated, context);
128
121
 
129
122
  if (frameVerified) {
130
- context.debug(`...verified the '${definedAssertionString}' defined assertion's '${frameString}' frame.`);
123
+ context.debug(`...verified the '${frameString}' frame.`);
131
124
  }
132
125
  }
133
126
  }
@@ -196,16 +189,16 @@ export default domAssigned(class DefinedAssertion {
196
189
  static fromStatementNode(statementNode, context) {
197
190
  let definedAssertion = null;
198
191
 
199
- const definedAssertionNode = definedAssertionNodeQuery(statementNode);
192
+ const definedAssertionNode = statementNode.getDefinedAssertionNode();
200
193
 
201
194
  if (definedAssertionNode !== null) {
202
195
  const { Term, Frame } = dom,
203
196
  node = definedAssertionNode, ///
204
197
  string = context.nodeAsString(node),
205
198
  tokens = context.nodeAsTokens(node),
199
+ negated = definedAssertionNode.isNegated(),
206
200
  term = Term.fromDefinedAssertionNode(definedAssertionNode, context),
207
- frame = Frame.fromDefinedAssertionNode(definedAssertionNode, context),
208
- negated = isNegated(definedAssertionNode);
201
+ frame = Frame.fromDefinedAssertionNode(definedAssertionNode, context);
209
202
 
210
203
  definedAssertion = new DefinedAssertion(string, node, tokens, term, frame, negated);
211
204
  }
@@ -214,20 +207,6 @@ export default domAssigned(class DefinedAssertion {
214
207
  }
215
208
  });
216
209
 
217
- function isNegated(definedAssertionNode) {
218
- const terminalNodes = terminalNodesQuery(definedAssertionNode),
219
- negated = terminalNodes.some((terminalNode) => { ///
220
- const content = terminalNode.getContent(),
221
- contentUndefined = (content === UNDEFINED);
222
-
223
- if (contentUndefined) {
224
- return true;
225
- }
226
- });
227
-
228
- return negated;
229
- }
230
-
231
210
  function verifyWhenDerived(term, frame, negated, context) {
232
211
  let verifiedWhenDerived = false;
233
212
 
@@ -4,11 +4,8 @@ import dom from "../../dom";
4
4
 
5
5
  import VariableAssignment from "../../assignment/variable";
6
6
 
7
- import { nodeQuery } from "../../utilities/query";
8
7
  import { domAssigned } from "../../dom";
9
8
 
10
- const propertyAssertionNodeQuery = nodeQuery("/statement/propertyAssertion");
11
-
12
9
  export default domAssigned(class PropertyAssertion {
13
10
  constructor(string, node, tokens, term, propertyRelation) {
14
11
  this.string = string;
@@ -106,10 +103,9 @@ export default domAssigned(class PropertyAssertion {
106
103
  verifyTerm(assignments, stated, context) {
107
104
  let termVerified;
108
105
 
109
- const termString = this.term.getString(),
110
- propertyAssertionString = this.string; ///
106
+ const termString = this.term.getString();
111
107
 
112
- context.trace(`Verifying the '${propertyAssertionString}' property assertion's '${termString}' term...`);
108
+ context.trace(`Verifying the '${termString}' term...`);
113
109
 
114
110
  termVerified = this.term.verify(context, () => {
115
111
  const verifiedAhead = true;
@@ -118,7 +114,7 @@ export default domAssigned(class PropertyAssertion {
118
114
  });
119
115
 
120
116
  if (termVerified) {
121
- context.debug(`...verified the '${propertyAssertionString}' property assertion's '${termString}' term.`);
117
+ context.debug(`...verified the '${termString}' term.`);
122
118
  }
123
119
 
124
120
  return termVerified;
@@ -127,15 +123,14 @@ export default domAssigned(class PropertyAssertion {
127
123
  verifyPropertyRelation(assignments, stated, context) {
128
124
  let propertyRelationVerified;
129
125
 
130
- const propertyRelationString = this.propertyRelation.getString(),
131
- propertyAssertionString = this.string; ///
126
+ const propertyRelationString = this.propertyRelation.getString();
132
127
 
133
- context.trace(`Verifying the '${propertyAssertionString}' property assertion's '${propertyRelationString}' property relation...`);
128
+ context.trace(`Verifying the '${propertyRelationString}' property relation...`);
134
129
 
135
130
  propertyRelationVerified = this.propertyRelation.verify(context);
136
131
 
137
132
  if (propertyRelationVerified) {
138
- context.debug(`...verified the '${propertyAssertionString}' property assertion's '${propertyRelationString}' property relation.`);
133
+ context.debug(`...verified the '${propertyRelationString}' property relation.`);
139
134
  }
140
135
 
141
136
  return propertyRelationVerified;
@@ -204,7 +199,7 @@ export default domAssigned(class PropertyAssertion {
204
199
  static fromStatementNode(statementNode, context) {
205
200
  let propertyAssertion = null;
206
201
 
207
- const propertyAssertionNode = propertyAssertionNodeQuery(statementNode);
202
+ const propertyAssertionNode = statementNode.getPropertyAssertionNode();
208
203
 
209
204
  if (propertyAssertionNode !== null) {
210
205
  const { Term, PropertyRelation } = dom,
@@ -3,10 +3,6 @@
3
3
  import dom from "../../dom";
4
4
 
5
5
  import { domAssigned } from "../../dom";
6
- import { nodeQuery, nodesQuery } from "../../utilities/query";
7
-
8
- const termNodesQuery = nodesQuery("/satisfiesAssertion/term"),
9
- satisfiesAssertionNodeQuery = nodeQuery("/statement/satisfiesAssertion");
10
6
 
11
7
  export default domAssigned(class SatisfiesAssertion {
12
8
  constructor(string, node, tokens, terms, reference) {
@@ -107,10 +103,9 @@ export default domAssigned(class SatisfiesAssertion {
107
103
  verifyReference(assignments, stated, context) {
108
104
  let referenceVerified = false;
109
105
 
110
- const referenceString = this.reference.getString(),
111
- satisfiesAssertionString = this.string; ///
106
+ const referenceString = this.reference.getString();
112
107
 
113
- context.trace(`Verifying the '${satisfiesAssertionString}' satisfies assertion's '${referenceString}' reference...`);
108
+ context.trace(`Verifying the '${referenceString}' reference...`);
114
109
 
115
110
  const axiom = context.findAxiomByReference(this.reference, context);
116
111
 
@@ -123,7 +118,7 @@ export default domAssigned(class SatisfiesAssertion {
123
118
  }
124
119
 
125
120
  if (referenceVerified) {
126
- context.debug(`...verified the '${satisfiesAssertionString}' satisfies assertion's '${referenceString}' reference.`);
121
+ context.debug(`...verified the '${referenceString}' reference.`);
127
122
  }
128
123
 
129
124
  return referenceVerified;
@@ -134,7 +129,7 @@ export default domAssigned(class SatisfiesAssertion {
134
129
  static fromStatementNode(statementNode, context) {
135
130
  let satisfiesAssertion = null;
136
131
 
137
- const satisfiesAssertionNode = satisfiesAssertionNodeQuery(statementNode);
132
+ const satisfiesAssertionNode = statementNode.getSatisfiedAssertionNode();
138
133
 
139
134
  if (satisfiesAssertionNode !== null) {
140
135
  const { Reference } = dom,
@@ -166,7 +161,7 @@ function termsStringFromTerms(terms) {
166
161
  }
167
162
 
168
163
  function termsFromSatisfiesAssertionNode(satisfiesAssertionNode, context) {
169
- const termNodes = termNodesQuery(satisfiesAssertionNode),
164
+ const termNodes = satisfiesAssertionNode.getTermNodes(),
170
165
  terms = termNodes.map((termNode) => {
171
166
  const { Term } = dom,
172
167
  term = Term.fromTermNode(termNode, context);
@@ -6,13 +6,9 @@ import dom from "../../dom";
6
6
 
7
7
  import { domAssigned } from "../../dom";
8
8
  import { unifyStatement } from "../../utilities/unification";
9
- import { nodeQuery, nodesQuery } from "../../utilities/query";
10
9
 
11
10
  const { match } = arrayUtilities;
12
11
 
13
- const statementNodesQuery = nodesQuery("/subproofAssertion/statement"),
14
- subproofAssertionNodeQuery = nodeQuery("/statement/subproofAssertion");
15
-
16
12
  export default domAssigned(class SubproofAssertion {
17
13
  constructor(string, node, statements) {
18
14
  this.string = string;
@@ -99,7 +95,7 @@ export default domAssigned(class SubproofAssertion {
99
95
  static fromStatementNode(statementNode, context) {
100
96
  let subproofAssertion = null;
101
97
 
102
- const subproofAssertionNode = subproofAssertionNodeQuery(statementNode);
98
+ const subproofAssertionNode = statementNode.getSubproofAssertionNode();
103
99
 
104
100
  if (subproofAssertionNode !== null) {
105
101
  const node = subproofAssertionNode, ///
@@ -115,7 +111,7 @@ export default domAssigned(class SubproofAssertion {
115
111
 
116
112
  function statementsFromSubproofAssertionNode(subproofAssertionNode, context) {
117
113
  const { Statement } = dom,
118
- statementNodes = statementNodesQuery(subproofAssertionNode),
114
+ statementNodes = subproofAssertionNode.getStatementNodes(),
119
115
  statements = statementNodes.map((statementNode) => {
120
116
  const statement = Statement.fromStatementNode(statementNode, context);
121
117
 
@@ -3,12 +3,8 @@
3
3
  import dom from "../../dom";
4
4
  import VariableAssignment from "../../assignment/variable";
5
5
 
6
- import { nodeQuery } from "../../utilities/query";
7
6
  import { domAssigned } from "../../dom";
8
7
 
9
- const variableNodeQuery = nodeQuery("/term/variable!"),
10
- typeAssertionNodeQuery = nodeQuery("/statement/typeAssertion");
11
-
12
8
  export default domAssigned(class TypeAssertion {
13
9
  constructor(string, term, type) {
14
10
  this.string = string;
@@ -155,8 +151,7 @@ export default domAssigned(class TypeAssertion {
155
151
  }
156
152
 
157
153
  const { Type, Variable } = dom,
158
- termNode = this.term.getNode(),
159
- variableNode = variableNodeQuery(termNode);
154
+ termNode = this.term.getNode();
160
155
 
161
156
  let type,
162
157
  provisional;
@@ -171,10 +166,12 @@ export default domAssigned(class TypeAssertion {
171
166
  type = Type.fromTypeAndProvisional(this.type, provisional);
172
167
  }
173
168
 
174
- const variable = Variable.fromVariableNodeAndType(variableNode, type, context);
169
+ const singularVariableNode = termNode.getSingularVariableNode();
175
170
 
176
- if (variable !== null) {
177
- const variableAssignment = VariableAssignment.fromVariable(variable),
171
+ if (singularVariableNode !== null) {
172
+ const variableNode = singularVariableNode, ///
173
+ variable = Variable.fromVariableNodeAndType(variableNode, type, context),
174
+ variableAssignment = VariableAssignment.fromVariable(variable),
178
175
  assignment = variableAssignment; ///
179
176
 
180
177
  assignments.push(assignment);
@@ -186,7 +183,7 @@ export default domAssigned(class TypeAssertion {
186
183
  static fromStatementNode(statementNode, context) {
187
184
  let typeAssertion = null;
188
185
 
189
- const typeAssertionNode = typeAssertionNodeQuery(statementNode);
186
+ const typeAssertionNode = statementNode.getTypeAssertionNode();
190
187
 
191
188
  if (typeAssertionNode !== null) {
192
189
  const { Term, Type } = dom,