occam-verify-cli 1.0.421 → 1.0.427

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 (272) hide show
  1. package/lib/action/verify.js +7 -3
  2. package/lib/context/file.js +8 -44
  3. package/lib/context/local.js +8 -26
  4. package/lib/context/nominal.js +64 -0
  5. package/lib/context/release.js +2 -2
  6. package/lib/context/temporary.js +6 -58
  7. package/lib/element/assertion/contained.js +303 -0
  8. package/lib/element/assertion/defined.js +318 -0
  9. package/lib/element/assertion/property.js +299 -0
  10. package/lib/element/assertion/satisfies.js +264 -0
  11. package/lib/element/assertion/subproof.js +178 -0
  12. package/lib/element/assertion/type.js +294 -0
  13. package/lib/{ontology → element}/assertion.js +9 -9
  14. package/lib/element/assumption.js +365 -0
  15. package/lib/element/axiom.js +332 -0
  16. package/lib/element/axiomLemmaTheoremConjecture.js +346 -0
  17. package/lib/element/conclusion.js +151 -0
  18. package/lib/{ontology → element}/conjecture.js +7 -14
  19. package/lib/element/declaration/combinator.js +161 -0
  20. package/lib/element/declaration/complexType.js +343 -0
  21. package/lib/element/declaration/constructor.js +193 -0
  22. package/lib/element/declaration/metavariable.js +193 -0
  23. package/lib/element/declaration/simpleType.js +240 -0
  24. package/lib/element/declaration/typePrefix.js +179 -0
  25. package/lib/element/declaration/variable.js +196 -0
  26. package/lib/{ontology → element}/declaration.js +9 -9
  27. package/lib/element/deduction.js +207 -0
  28. package/lib/element/derivation.js +96 -0
  29. package/lib/element/equality.js +275 -0
  30. package/lib/element/equivalence.js +316 -0
  31. package/lib/element/equivalences.js +264 -0
  32. package/lib/{ontology → element}/error.js +12 -12
  33. package/lib/element/frame.js +387 -0
  34. package/lib/element/hypothesis.js +195 -0
  35. package/lib/element/judgement.js +243 -0
  36. package/lib/element/label.js +198 -0
  37. package/lib/{ontology → element}/lemma.js +7 -7
  38. package/lib/{ontology → element}/metaLemma.js +8 -8
  39. package/lib/element/metaLemmaMetatheorem.js +234 -0
  40. package/lib/{ontology → element}/metaType.js +18 -11
  41. package/lib/{ontology → element}/metatheorem.js +8 -8
  42. package/lib/element/metavariable.js +459 -0
  43. package/lib/element/parameter.js +108 -0
  44. package/lib/element/premise.js +310 -0
  45. package/lib/element/procedureCall.js +243 -0
  46. package/lib/{ontology → element}/procedureReference.js +3 -3
  47. package/lib/{ontology → element}/proof.js +4 -4
  48. package/lib/element/property.js +128 -0
  49. package/lib/element/propertyRelation.js +195 -0
  50. package/lib/element/reference.js +304 -0
  51. package/lib/element/rule.js +373 -0
  52. package/lib/element/section.js +255 -0
  53. package/lib/element/signature.js +217 -0
  54. package/lib/element/statement/combinator/bracketed.js +166 -0
  55. package/lib/element/statement/combinator.js +105 -0
  56. package/lib/element/statement.js +386 -0
  57. package/lib/element/step.js +274 -0
  58. package/lib/element/subDerivation.js +137 -0
  59. package/lib/element/subproof.js +240 -0
  60. package/lib/element/substitution/frame.js +216 -0
  61. package/lib/{ontology → element}/substitution/reference.js +5 -4
  62. package/lib/{ontology → element}/substitution/statement.js +7 -6
  63. package/lib/element/substitution/term.js +265 -0
  64. package/lib/element/substitution.js +206 -0
  65. package/lib/element/substitutions.js +425 -0
  66. package/lib/element/supposition.js +323 -0
  67. package/lib/{ontology → element/term}/constructor/bracketed.js +11 -7
  68. package/lib/element/term/constructor.js +172 -0
  69. package/lib/element/term.js +322 -0
  70. package/lib/{ontology → element}/theorem.js +8 -8
  71. package/lib/element/type.js +490 -0
  72. package/lib/element/typePrefix.js +99 -0
  73. package/lib/element/variable.js +345 -0
  74. package/lib/elements.js +27 -0
  75. package/lib/mixins/statement/verify.js +14 -14
  76. package/lib/mixins/step/unify.js +12 -12
  77. package/lib/mixins/term/verify.js +4 -4
  78. package/lib/node/substitution/frame.js +15 -1
  79. package/lib/node/substitution/statement.js +37 -1
  80. package/lib/node/substitution/term.js +15 -1
  81. package/lib/preamble.js +63 -63
  82. package/lib/process/assign.js +58 -0
  83. package/lib/process/instantiate.js +68 -7
  84. package/lib/process/unify.js +26 -26
  85. package/lib/process/verify.js +21 -21
  86. package/lib/utilities/brackets.js +9 -18
  87. package/lib/utilities/customGrammar.js +1 -1
  88. package/lib/utilities/element.js +1128 -0
  89. package/lib/utilities/json.js +32 -32
  90. package/lib/utilities/node.js +49 -61
  91. package/lib/utilities/statement.js +83 -0
  92. package/lib/utilities/string.js +98 -56
  93. package/package.json +6 -6
  94. package/src/action/verify.js +8 -1
  95. package/src/context/file.js +9 -39
  96. package/src/context/local.js +5 -11
  97. package/src/context/nominal.js +30 -0
  98. package/src/context/release.js +1 -1
  99. package/src/context/temporary.js +6 -63
  100. package/src/{ontology → element}/assertion/contained.js +4 -25
  101. package/src/{ontology → element}/assertion/defined.js +7 -26
  102. package/src/{ontology → element}/assertion/property.js +7 -26
  103. package/src/{ontology → element}/assertion/satisfies.js +5 -53
  104. package/src/{ontology → element}/assertion/subproof.js +3 -32
  105. package/src/{ontology → element}/assertion/type.js +7 -26
  106. package/src/{ontology → element}/assertion.js +6 -6
  107. package/src/{ontology → element}/assumption.js +3 -27
  108. package/src/{ontology → element}/axiom.js +4 -11
  109. package/src/{ontology/topLevelAssertion.js → element/axiomLemmaTheoremConjecture.js} +9 -105
  110. package/src/{ontology → element}/conclusion.js +4 -19
  111. package/src/{ontology → element}/conjecture.js +4 -11
  112. package/src/{ontology → element}/declaration/combinator.js +3 -14
  113. package/src/{ontology → element}/declaration/complexType.js +3 -19
  114. package/src/{ontology → element}/declaration/constructor.js +3 -14
  115. package/src/{ontology → element}/declaration/metavariable.js +3 -39
  116. package/src/{ontology → element}/declaration/simpleType.js +3 -19
  117. package/src/{ontology → element}/declaration/typePrefix.js +3 -15
  118. package/src/{ontology → element}/declaration/variable.js +3 -14
  119. package/src/{ontology → element}/declaration.js +6 -6
  120. package/src/{ontology → element}/deduction.js +9 -22
  121. package/src/{ontology → element}/derivation.js +2 -32
  122. package/src/{ontology → element}/equality.js +18 -42
  123. package/src/{ontology → element}/equivalence.js +17 -2
  124. package/src/{ontology → element}/equivalences.js +1 -1
  125. package/src/{ontology → element}/error.js +8 -8
  126. package/src/{ontology → element}/frame.js +8 -56
  127. package/src/{ontology → element}/hypothesis.js +5 -5
  128. package/src/{ontology → element}/judgement.js +7 -7
  129. package/src/{ontology → element}/label.js +3 -3
  130. package/src/{ontology → element}/lemma.js +4 -4
  131. package/src/{ontology → element}/metaLemma.js +5 -5
  132. package/src/{ontology/topLevelMetaAssertion.js → element/metaLemmaMetatheorem.js} +11 -11
  133. package/src/{ontology → element}/metaType.js +11 -7
  134. package/src/{ontology → element}/metatheorem.js +5 -5
  135. package/src/{ontology → element}/metavariable.js +10 -60
  136. package/src/{ontology → element}/parameter.js +1 -1
  137. package/src/{ontology → element}/premise.js +14 -14
  138. package/src/{ontology → element}/procedureCall.js +4 -4
  139. package/src/{ontology → element}/procedureReference.js +1 -1
  140. package/src/{ontology → element}/proof.js +3 -3
  141. package/src/{ontology → element}/property.js +7 -15
  142. package/src/{ontology → element}/propertyRelation.js +5 -11
  143. package/src/{ontology → element}/reference.js +5 -19
  144. package/src/{ontology → element}/rule.js +13 -13
  145. package/src/{ontology → element}/section.js +10 -10
  146. package/src/{ontology → element}/signature.js +12 -15
  147. package/src/element/statement/combinator/bracketed.js +38 -0
  148. package/src/element/statement/combinator.js +59 -0
  149. package/src/{ontology → element}/statement.js +11 -27
  150. package/src/{ontology → element}/step.js +10 -44
  151. package/src/{ontology → element}/subDerivation.js +3 -24
  152. package/src/{ontology → element}/subproof.js +3 -43
  153. package/src/{ontology → element}/substitution/frame.js +4 -21
  154. package/src/{ontology → element}/substitution/reference.js +3 -3
  155. package/src/{ontology → element}/substitution/statement.js +6 -10
  156. package/src/{ontology → element}/substitution/term.js +7 -23
  157. package/src/{ontology → element}/substitutions.js +1 -1
  158. package/src/{ontology → element}/supposition.js +10 -10
  159. package/src/{ontology → element/term}/constructor/bracketed.js +12 -13
  160. package/src/element/term/constructor.js +82 -0
  161. package/src/{ontology → element}/term.js +6 -38
  162. package/src/{ontology → element}/theorem.js +5 -5
  163. package/src/{ontology → element}/type.js +17 -64
  164. package/src/{ontology → element}/typePrefix.js +8 -12
  165. package/src/{ontology → element}/variable.js +9 -20
  166. package/src/elements.js +13 -0
  167. package/src/mixins/statement/verify.js +4 -4
  168. package/src/mixins/step/unify.js +6 -6
  169. package/src/mixins/term/verify.js +3 -3
  170. package/src/node/substitution/frame.js +14 -0
  171. package/src/node/substitution/statement.js +40 -0
  172. package/src/node/substitution/term.js +15 -0
  173. package/src/preamble.js +62 -62
  174. package/src/process/assign.js +59 -0
  175. package/src/process/instantiate.js +67 -15
  176. package/src/process/unify.js +37 -39
  177. package/src/process/verify.js +20 -20
  178. package/src/utilities/brackets.js +12 -17
  179. package/src/utilities/customGrammar.js +3 -3
  180. package/src/utilities/element.js +1380 -0
  181. package/src/utilities/json.js +31 -31
  182. package/src/utilities/node.js +56 -64
  183. package/src/utilities/{context.js → statement.js} +10 -39
  184. package/src/utilities/string.js +120 -52
  185. package/lib/assignment/equality.js +0 -62
  186. package/lib/assignment/judgement.js +0 -62
  187. package/lib/assignment/variable.js +0 -64
  188. package/lib/context/bracketed/combinator.js +0 -121
  189. package/lib/context/bracketed/constructor.js +0 -121
  190. package/lib/context/bracketted.js +0 -86
  191. package/lib/context/partial/metavariable.js +0 -180
  192. package/lib/context/partial/statement.js +0 -180
  193. package/lib/context/partial/term.js +0 -192
  194. package/lib/context/partial/variable.js +0 -192
  195. package/lib/context/partial.js +0 -93
  196. package/lib/ontology/assertion/contained.js +0 -357
  197. package/lib/ontology/assertion/defined.js +0 -331
  198. package/lib/ontology/assertion/property.js +0 -313
  199. package/lib/ontology/assertion/satisfies.js +0 -302
  200. package/lib/ontology/assertion/subproof.js +0 -240
  201. package/lib/ontology/assertion/type.js +0 -308
  202. package/lib/ontology/assumption.js +0 -383
  203. package/lib/ontology/axiom.js +0 -339
  204. package/lib/ontology/combinator/bracketed.js +0 -202
  205. package/lib/ontology/combinator.js +0 -155
  206. package/lib/ontology/conclusion.js +0 -201
  207. package/lib/ontology/constructor.js +0 -185
  208. package/lib/ontology/declaration/combinator.js +0 -210
  209. package/lib/ontology/declaration/complexType.js +0 -393
  210. package/lib/ontology/declaration/constructor.js +0 -242
  211. package/lib/ontology/declaration/metavariable.js +0 -257
  212. package/lib/ontology/declaration/simpleType.js +0 -290
  213. package/lib/ontology/declaration/typePrefix.js +0 -228
  214. package/lib/ontology/declaration/variable.js +0 -245
  215. package/lib/ontology/deduction.js +0 -215
  216. package/lib/ontology/derivation.js +0 -155
  217. package/lib/ontology/equality.js +0 -288
  218. package/lib/ontology/equivalence.js +0 -295
  219. package/lib/ontology/equivalences.js +0 -264
  220. package/lib/ontology/frame.js +0 -419
  221. package/lib/ontology/hypothesis.js +0 -190
  222. package/lib/ontology/judgement.js +0 -248
  223. package/lib/ontology/label.js +0 -198
  224. package/lib/ontology/metavariable.js +0 -502
  225. package/lib/ontology/parameter.js +0 -108
  226. package/lib/ontology/premise.js +0 -310
  227. package/lib/ontology/procedureCall.js +0 -243
  228. package/lib/ontology/property.js +0 -166
  229. package/lib/ontology/propertyRelation.js +0 -202
  230. package/lib/ontology/reference.js +0 -315
  231. package/lib/ontology/rule.js +0 -373
  232. package/lib/ontology/section.js +0 -255
  233. package/lib/ontology/signature.js +0 -217
  234. package/lib/ontology/statement.js +0 -398
  235. package/lib/ontology/step.js +0 -295
  236. package/lib/ontology/subDerivation.js +0 -147
  237. package/lib/ontology/subproof.js +0 -265
  238. package/lib/ontology/substitution/frame.js +0 -261
  239. package/lib/ontology/substitution/term.js +0 -269
  240. package/lib/ontology/substitution.js +0 -206
  241. package/lib/ontology/substitutions.js +0 -425
  242. package/lib/ontology/supposition.js +0 -323
  243. package/lib/ontology/term.js +0 -351
  244. package/lib/ontology/topLevelAssertion.js +0 -431
  245. package/lib/ontology/topLevelMetaAssertion.js +0 -234
  246. package/lib/ontology/type.js +0 -556
  247. package/lib/ontology/typePrefix.js +0 -99
  248. package/lib/ontology/variable.js +0 -343
  249. package/lib/ontology.js +0 -27
  250. package/lib/utilities/assignments.js +0 -19
  251. package/lib/utilities/context.js +0 -101
  252. package/lib/utilities/subproof.js +0 -42
  253. package/lib/utilities/type.js +0 -40
  254. package/src/assignment/equality.js +0 -29
  255. package/src/assignment/judgement.js +0 -29
  256. package/src/assignment/variable.js +0 -34
  257. package/src/context/bracketed/combinator.js +0 -31
  258. package/src/context/bracketed/constructor.js +0 -31
  259. package/src/context/bracketted.js +0 -41
  260. package/src/context/partial/metavariable.js +0 -39
  261. package/src/context/partial/statement.js +0 -39
  262. package/src/context/partial/term.js +0 -49
  263. package/src/context/partial/variable.js +0 -49
  264. package/src/context/partial.js +0 -71
  265. package/src/ontology/combinator/bracketed.js +0 -38
  266. package/src/ontology/combinator.js +0 -72
  267. package/src/ontology/constructor.js +0 -105
  268. package/src/ontology.js +0 -13
  269. package/src/utilities/assignments.js +0 -11
  270. package/src/utilities/subproof.js +0 -56
  271. package/src/utilities/type.js +0 -35
  272. /package/src/{ontology → element}/substitution.js +0 -0
@@ -1,19 +1,18 @@
1
1
  "use strict";
2
2
 
3
- import ontology from "../ontology";
4
- import MetavariablePartialContext from "../context/partial/metavariable";
3
+ import elements from "../elements";
5
4
 
6
- import { define } from "../ontology";
5
+ import { define } from "../elements";
7
6
  import { EMPTY_STRING } from "../constants";
7
+ import { instantiateMetavariable } from "../process/instantiate";
8
8
  import { typeFromJSON, typeToTypeJSON } from "../utilities/json";
9
9
  import { metaTypeFromJSON, metaTypeToMetaTypeJSON } from "../utilities/json";
10
10
  import { unifyMetavariable, unifyMetavariableIntrinsically } from "../process/unify";
11
11
 
12
12
  export default define(class Metavariable {
13
- constructor(string, node, tokens, name, type, metaType) {
13
+ constructor(string, node, name, type, metaType) {
14
14
  this.string = string;
15
15
  this.node = node;
16
- this.tokens = tokens;
17
16
  this.name = name;
18
17
  this.type = type;
19
18
  this.metaType = metaType;
@@ -27,10 +26,6 @@ export default define(class Metavariable {
27
26
  return this.node;
28
27
  }
29
28
 
30
- getTokens() {
31
- return this.tokens;
32
- }
33
-
34
29
  getName() {
35
30
  return this.name;
36
31
  }
@@ -43,18 +38,6 @@ export default define(class Metavariable {
43
38
  return this.metaType;
44
39
  }
45
40
 
46
- setNode(node) {
47
- this.node = node;
48
- }
49
-
50
- setTokens(tokens) {
51
- this.tokens = tokens;
52
- }
53
-
54
- setName(name) {
55
- this.name = name;
56
- }
57
-
58
41
  setType(type) {
59
42
  this.type = type;
60
43
  }
@@ -156,7 +139,7 @@ export default define(class Metavariable {
156
139
  frameUnifies = true;
157
140
  }
158
141
  } else {
159
- const { FrameSubstitution } = ontology,
142
+ const { FrameSubstitution } = elements,
160
143
  context = specificContext, ///
161
144
  metavariable = this, ///
162
145
  frameSubstitution = FrameSubstitution.fromFrameAndMetavariable(frame, metavariable, context),
@@ -204,7 +187,7 @@ export default define(class Metavariable {
204
187
  statementUnifies = true;
205
188
  }
206
189
  } else {
207
- const { StatementSubstitution } = ontology,
190
+ const { StatementSubstitution } = elements,
208
191
  metavariable = this,
209
192
  statementSubstitution = StatementSubstitution.fromStatementMetavariableAndSubstitution(statement, metavariable, substitution, context);
210
193
 
@@ -249,7 +232,7 @@ export default define(class Metavariable {
249
232
  referenceUnifies = true;
250
233
  }
251
234
  } else {
252
- const { ReferenceSubstitution } = ontology,
235
+ const { ReferenceSubstitution } = elements,
253
236
  metavariable = this,
254
237
  referenceSubstitution = ReferenceSubstitution.fromReferenceAndMetavariable(reference, metavariable, context),
255
238
  substitution = referenceSubstitution; ///
@@ -422,18 +405,13 @@ export default define(class Metavariable {
422
405
 
423
406
  static fromJSON(json, context) {
424
407
  const { string } = json,
425
- lexer = context.getLexer(),
426
- parser = context.getParser(),
427
- metavariablePartialContext = MetavariablePartialContext.fromStringLexerAndParser(string, lexer, parser),
428
- metavariableTokens = metavariablePartialContext.getMetavariableTokens(),
429
- metavariableNode = metavariablePartialContext.getMetavariableNode(),
408
+ metavariableNode = instantiateMetavariable(string, context),
430
409
  metavariableName = metavariableNode.getMetavariableName(),
431
410
  name = metavariableName, ///
432
411
  node = metavariableNode, ///
433
- tokens = metavariableTokens, ///
434
412
  type = typeFromJSON(json, context),
435
413
  metaType = metaTypeFromJSON(json, context),
436
- metavariable = new Metavariable(string, node, tokens, name, type, metaType);
414
+ metavariable = new Metavariable(string, node, name, type, metaType);
437
415
 
438
416
  return metavariable;
439
417
  }
@@ -498,7 +476,7 @@ export default define(class Metavariable {
498
476
  }
499
477
 
500
478
  static fromMetavariableDeclarationNode(metavariableDeclarationNode, context) {
501
- const { MetaType } = ontology,
479
+ const { MetaType } = elements,
502
480
  metavariableNode = metavariableDeclarationNode.getMetavariableNode(),
503
481
  type = typeFromMetavariableDeclarationNode(metavariableDeclarationNode, context),
504
482
  metaType = MetaType.fromMetavariableDeclarationNode(metavariableDeclarationNode, context),
@@ -511,31 +489,3 @@ export default define(class Metavariable {
511
489
  return metavariable;
512
490
  }
513
491
  });
514
-
515
- function metavariableFromMetavariableNode(metavariableNode, context) {
516
- const { Metavariable } = ontology,
517
- metavariableName = metavariableNode.getMetavariableName(),
518
- type = null,
519
- name = metavariableName, ///
520
- node = metavariableNode, ///
521
- string = context.nodeAsString(node),
522
- tokens = context.nodeAsTokens(node),
523
- metaType = null,
524
- metavariable = new Metavariable(string, node, tokens, name, type, metaType);
525
-
526
- return metavariable;
527
- }
528
-
529
- function typeFromMetavariableDeclarationNode(metavariableDeclarationNode, context) {
530
- let type = null;
531
-
532
- const typeNode = metavariableDeclarationNode.getTypeNode();
533
-
534
- if (typeNode !== null) {
535
- const nominalTypeName = typeNode.getNominalTypeName();
536
-
537
- type = context.findTypeByNominalTypeName(nominalTypeName);
538
- }
539
-
540
- return type;
541
- }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { define } from "../ontology";
3
+ import { define } from "../elements";
4
4
 
5
5
  export default define(class Parameter {
6
6
  constructor(name) {
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
 
3
- import ontology from "../ontology";
3
+ import elements from "../elements";
4
4
  import TemporaryContext from "../context/temporary";
5
+ import assignAssignments from "../process/assign";
5
6
 
6
- import { define } from "../ontology";
7
- import { assignAssignments } from "../utilities/assignments";
8
- import { subproofAssertionFromStatement } from "../utilities/context";
7
+ import { define } from "../elements";
8
+ import { subproofAssertionFromStatement } from "../utilities/statement";
9
9
  import { termsFromJSON, framesFromJSON, statementFromJSON, procedureCallFromJSON, termsToTermsJSON, framesToFramesJSON, statementToStatementJSON, procedureCallToProcedureCallJSON } from "../utilities/json";
10
10
 
11
11
  export default define(class Premise {
12
- constructor(context, node, string, statement, procedureCall) {
12
+ constructor(context, string, node, statement, procedureCall) {
13
13
  this.context = context;
14
- this.node = node;
15
14
  this.string = string;
15
+ this.node = node;
16
16
  this.statement = statement;
17
17
  this.procedureCall = procedureCall;
18
18
  }
@@ -21,14 +21,14 @@ export default define(class Premise {
21
21
  return this.context;
22
22
  }
23
23
 
24
- getNode() {
25
- return this.node;
26
- }
27
-
28
24
  getString() {
29
25
  return this.string;
30
26
  }
31
27
 
28
+ getNode() {
29
+ return this.node;
30
+ }
31
+
32
32
  getStatement() {
33
33
  return this.statement;
34
34
  }
@@ -59,7 +59,7 @@ export default define(class Premise {
59
59
  const assignmentsAssigned = assignAssignments(assignments, context);
60
60
 
61
61
  if (assignmentsAssigned) {
62
- const { Step } = ontology,
62
+ const { Step } = elements,
63
63
  step = Step.fromStatement(this.statement, context),
64
64
  stepOrSubproof = step; ///
65
65
 
@@ -273,13 +273,13 @@ export default define(class Premise {
273
273
 
274
274
  context = temporaryContext; ///
275
275
 
276
- const premise = new Premise(context, node, string, statement, procedureCall);
276
+ const premise = new Premise(context, string, node, statement, procedureCall);
277
277
 
278
278
  return premise;
279
279
  }
280
280
 
281
281
  static fromPremiseNode(premiseNode, context) {
282
- const { Statement, ProcedureCall } = ontology,
282
+ const { Statement, ProcedureCall } = elements,
283
283
  node = premiseNode, ///
284
284
  string = context.nodeAsString(node),
285
285
  statement = Statement.fromPremiseNode(premiseNode, context),
@@ -288,7 +288,7 @@ export default define(class Premise {
288
288
 
289
289
  context = temporaryContext; ///
290
290
 
291
- const premise = new Premise(context, node, string, statement, procedureCall);
291
+ const premise = new Premise(context, string, node, statement, procedureCall);
292
292
 
293
293
  return premise
294
294
  }
@@ -2,9 +2,9 @@
2
2
 
3
3
  import { Expressions } from "occam-furtle";
4
4
 
5
- import ontology from "../ontology";
5
+ import elements from "../elements";
6
6
 
7
- import { define } from "../ontology";
7
+ import { define } from "../elements";
8
8
  import { parametersFromJSON, procedureReferenceFromJSON, parametersToParametersJSON, procedureReferenceToProcedureReferenceJSON } from "../utilities/json";
9
9
 
10
10
  export default define(class ProcedureCall {
@@ -153,7 +153,7 @@ export default define(class ProcedureCall {
153
153
  });
154
154
 
155
155
  function procedureCallFromProcedureCallNode(procedureCallNode, context) {
156
- const { ProcedureCall, ProcedureReference } = ontology,
156
+ const { ProcedureCall, ProcedureReference } = elements,
157
157
  node = procedureCallNode, ///
158
158
  parameters = parametersFromProcedureCallNode(procedureCallNode, context),
159
159
  procedureReference = ProcedureReference.fromProcedureCallNode(procedureCallNode, context),
@@ -164,7 +164,7 @@ function procedureCallFromProcedureCallNode(procedureCallNode, context) {
164
164
  }
165
165
 
166
166
  function parametersFromProcedureCallNode(procedureCallNode, context) {
167
- const { Parameter } = ontology,
167
+ const { Parameter } = elements,
168
168
  parameterNodes = procedureCallNode.getParameterNodes(),
169
169
  parameters = parameterNodes.map((parameterNode) => {
170
170
  const parameter = Parameter.fromParameterNode(parameterNode, context);
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { define } from "../ontology";
3
+ import { define } from "../elements";
4
4
 
5
5
  export default define(class ProcedureReference {
6
6
  constructor(string, name) {
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
- import ontology from "../ontology";
3
+ import elements from "../elements";
4
4
  import LocalContext from "../context/local";
5
5
 
6
- import { define } from "../ontology";
6
+ import { define } from "../elements";
7
7
 
8
8
  export default define(class Proof {
9
9
  constructor(derivation) {
@@ -56,7 +56,7 @@ export default define(class Proof {
56
56
  let proof = null;
57
57
 
58
58
  if (proofNode !== null) {
59
- const { Derivation } = ontology,
59
+ const { Derivation } = elements,
60
60
  derivationNode = proofNode.getDerivationNode(),
61
61
  derivation = Derivation.fromDerivationNode(derivationNode, context);
62
62
 
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import ontology from "../ontology";
4
-
5
- import { define } from "../ontology";
3
+ import { define } from "../elements";
6
4
 
7
5
  export default define(class Property {
8
- constructor(string, name, nominalTypeName) {
6
+ constructor(string, node, name, nominalTypeName) {
9
7
  this.string = string;
8
+ this.node = node;
10
9
  this.name = name;
11
10
  this.nominalTypeName = nominalTypeName;
12
11
  }
@@ -15,6 +14,10 @@ export default define(class Property {
15
14
  return this.string;
16
15
  }
17
16
 
17
+ getNode() {
18
+ return this.node;
19
+ }
20
+
18
21
  getName() {
19
22
  return this.name;
20
23
  }
@@ -73,14 +76,3 @@ export default define(class Property {
73
76
  return property;
74
77
  }
75
78
  });
76
-
77
- function propertyFromPropertyNode(propertyNode, context) {
78
- const { Property } = ontology,
79
- propertyName = propertyNode.getPropertyName(),
80
- nominalTypeName = null,
81
- name = propertyName, ///
82
- string = name, ///
83
- property = new Property(string, name, nominalTypeName);
84
-
85
- return property;
86
- }
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import ontology from "../ontology";
3
+ import elements from "../elements";
4
4
 
5
- import { define } from "../ontology";
5
+ import { define } from "../elements";
6
6
 
7
7
  export default define(class PropertyRelation {
8
- constructor(string, node, tokens, property, term) {
8
+ constructor(string, node, property, term) {
9
9
  this.string = string;
10
10
  this.node = node;
11
- this.tokens = tokens;
12
11
  this.property = property;
13
12
  this.term = term;
14
13
  }
@@ -21,10 +20,6 @@ export default define(class PropertyRelation {
21
20
  return this.node;
22
21
  }
23
22
 
24
- getTokens() {
25
- return this.tokens;
26
- }
27
-
28
23
  getProperty() {
29
24
  return this.property;
30
25
  }
@@ -120,14 +115,13 @@ export default define(class PropertyRelation {
120
115
  static name = "PropertyRelation";
121
116
 
122
117
  static fromPropertyAssertionNode(propertyAssertionNode, context) {
123
- const { Term, Property } = ontology,
118
+ const { Term, Property } = elements,
124
119
  propertyRelationNode = propertyAssertionNode.getPropertyRelationNode(),
125
120
  node = propertyRelationNode, ///
126
121
  string = context.nodeAsString(node),
127
- tokens = context.nodeAsTokens(node),
128
122
  property = Property.fromPropertyRelationNode(propertyRelationNode, context),
129
123
  term = Term.fromPropertyRelationNode(propertyRelationNode, context),
130
- propertyRelation = new PropertyRelation(string, node, tokens, property, term);
124
+ propertyRelation = new PropertyRelation(string, node, property, term);
131
125
 
132
126
  return propertyRelation;
133
127
  }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
- import ontology from "../ontology";
3
+ import elements from "../elements";
4
4
 
5
- import { define } from "../ontology";
5
+ import { define } from "../elements";
6
6
  import { referenceMetaType } from ".//metaType";
7
7
  import { unifyMetavariableIntrinsically } from "../process/unify";
8
8
  import { metavariableFromJSON, metavariableToMetavariableJSON } from "../utilities/json";
@@ -140,7 +140,7 @@ export default define(class Reference {
140
140
 
141
141
  context.trace(`Unifying the '${metavariableString}' metavariable with the '${referenceString}' reference...`);
142
142
 
143
- const { Substitutions } = ontology,
143
+ const { Substitutions } = elements,
144
144
  substitutions = Substitutions.fromNothing(),
145
145
  generalContext = context, ///
146
146
  specificContext = context, ///
@@ -166,7 +166,7 @@ export default define(class Reference {
166
166
 
167
167
  context.trace(`Unifying the '${metaLemmaMetatheoremString}' meta-lemma or metatheorem with the '${referenceString}' reference...`);
168
168
 
169
- const { Substitutions } = ontology,
169
+ const { Substitutions } = elements,
170
170
  label = metaLemmaMetatheorem.getLabel(),
171
171
  substitutions = Substitutions.fromNothing(),
172
172
  labelUnifies = this.unifyLabel(label, substitutions, context);
@@ -211,12 +211,6 @@ export default define(class Reference {
211
211
  return reference;
212
212
  }
213
213
 
214
- static fromReferenceNode(referenceNode, context) {
215
- const reference = referenceFromReferenceNode(referenceNode, context);
216
-
217
- return reference;
218
- }
219
-
220
214
  static fromAssumptionNode(assumptionNode, context) {
221
215
  let reference = null;
222
216
 
@@ -255,16 +249,8 @@ export default define(class Reference {
255
249
  }
256
250
  });
257
251
 
258
- function referenceFromReferenceNode(referenceNode, context) {
259
- const { Reference, Metavariable } = ontology,
260
- metavariable = Metavariable.fromReferenceNode(referenceNode, context),
261
- reference = new Reference(metavariable);
262
-
263
- return reference;
264
- }
265
-
266
252
  function referenceFromMetavariableNode(metavariableNode, context) {
267
- const { Reference, Metavariable } = ontology,
253
+ const { Reference, Metavariable } = elements,
268
254
  metavariable = Metavariable.fromMetavariableNode(metavariableNode, context),
269
255
  reference = new Reference(metavariable);
270
256
 
@@ -2,11 +2,11 @@
2
2
 
3
3
  import { arrayUtilities } from "necessary";
4
4
 
5
- import ontology from "../ontology";
5
+ import elements from "../elements";
6
6
  import LocalContext from "../context/local";
7
7
 
8
- import { define } from "../ontology";
9
- import { labelsStringFromLabels } from "./topLevelAssertion";
8
+ import { define } from "../elements";
9
+ import { labelsStringFromLabels } from "./axiomLemmaTheoremConjecture";
10
10
  import { labelsFromJSON,
11
11
  premisesFromJSON,
12
12
  conclusionFromJSON,
@@ -17,10 +17,10 @@ import { labelsFromJSON,
17
17
  const { reverse, extract, backwardsEvery } = arrayUtilities;
18
18
 
19
19
  export default define(class Rule {
20
- constructor(context, node, string, labels, premises, conclusion, proof) {
20
+ constructor(context, string, node, labels, premises, conclusion, proof) {
21
21
  this.context = context;
22
- this.node = node;
23
22
  this.string = string;
23
+ this.node = node;
24
24
  this.labels = labels;
25
25
  this.premises = premises;
26
26
  this.conclusion = conclusion;
@@ -148,7 +148,7 @@ export default define(class Rule {
148
148
  if (this.proof === null) {
149
149
  proofVerifies = true;
150
150
  } else {
151
- const { Substitutions } = ontology,
151
+ const { Substitutions } = elements,
152
152
  substitutions = Substitutions.fromNothing();
153
153
 
154
154
  proofVerifies = this.proof.verify(substitutions, this.conclusion, context);
@@ -172,7 +172,7 @@ export default define(class Rule {
172
172
  unifyStatementAndStepsOrSubproofs(statement, stepsOrSubproofs, context) {
173
173
  let statementAndStepsOrSubproofsUnify = false;
174
174
 
175
- const { Substitutions } = ontology,
175
+ const { Substitutions } = elements,
176
176
  substitutions = Substitutions.fromNothing(),
177
177
  statementUnifiesWithConclusion = this.unifyStatementWithConclusion(statement, substitutions, context);
178
178
 
@@ -261,7 +261,7 @@ export default define(class Rule {
261
261
  conclusion = conclusionFromJSON(json, context),
262
262
  string = stringFromLabelsPremisesAndConclusion(labels, premises, conclusion);
263
263
 
264
- rule = new Rule(context, node, string, labels, premises, conclusion, proof);
264
+ rule = new Rule(context, string, node, labels, premises, conclusion, proof);
265
265
 
266
266
  return rule;
267
267
  }
@@ -273,14 +273,14 @@ export default define(class Rule {
273
273
  premises = premisesFromRuleNode(ruleNode, context),
274
274
  conclusion = conclusionFromRuleNode(ruleNode, context),
275
275
  string = stringFromLabelsPremisesAndConclusion(labels, premises, conclusion),
276
- rule = new Rule(context, node, string, labels, premises, conclusion, proof);
276
+ rule = new Rule(context, string, node, labels, premises, conclusion, proof);
277
277
 
278
278
  return rule;
279
279
  }
280
280
  });
281
281
 
282
282
  function proofFromRuleNode(ruleNode, context) {
283
- const { Proof } = ontology,
283
+ const { Proof } = elements,
284
284
  proofNode = ruleNode.getProofNode(),
285
285
  proof = Proof.fromProofNode(proofNode, context);
286
286
 
@@ -288,7 +288,7 @@ function proofFromRuleNode(ruleNode, context) {
288
288
  }
289
289
 
290
290
  function labelsFromRuleNode(ruleNode, context) {
291
- const { Label } = ontology,
291
+ const { Label } = elements,
292
292
  labelNodes = ruleNode.getLabelNodes(),
293
293
  labels = labelNodes.map((labelNode) => {
294
294
  const label = Label.fromLabelNode(labelNode, context);
@@ -300,7 +300,7 @@ function labelsFromRuleNode(ruleNode, context) {
300
300
  }
301
301
 
302
302
  function premisesFromRuleNode(ruleNode, context) {
303
- const { Premise } = ontology,
303
+ const { Premise } = elements,
304
304
  premiseNodes = ruleNode.getPremiseNodes(),
305
305
  premises = premiseNodes.map((premiseNode) => {
306
306
  const premise = Premise.fromPremiseNode(premiseNode, context);
@@ -312,7 +312,7 @@ function premisesFromRuleNode(ruleNode, context) {
312
312
  }
313
313
 
314
314
  function conclusionFromRuleNode(ruleNode, context) {
315
- const { Conclusion } = ontology,
315
+ const { Conclusion } = elements,
316
316
  conclusionNode = ruleNode.getConclusionNode(),
317
317
  conclusion = Conclusion.fromConclusionNode(conclusionNode, context);
318
318
 
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
 
3
- import ontology from "../ontology";
3
+ import elements from "../elements";
4
4
  import LocalContext from "../context/local";
5
5
 
6
- import { define } from "../ontology";
6
+ import { define } from "../elements";
7
7
 
8
8
  export default define(class Section {
9
- constructor(context, node, string, hypotheses, axiom, lemma, theorem, conjecture) {
9
+ constructor(context, string, node, hypotheses, axiom, lemma, theorem, conjecture) {
10
10
  this.context = context;
11
- this.node = node;
12
11
  this.string = string;
12
+ this.node = node;
13
13
  this.hypotheses = hypotheses;
14
14
  this.axiom = axiom;
15
15
  this.lemma = lemma;
@@ -103,7 +103,7 @@ export default define(class Section {
103
103
  conjecture = conjectureFroSectionNode(sectionNode, context),
104
104
  node = sectionNode, ///
105
105
  string = stringFromHypothesesAxiomLemmaTheoremAndConjecture(hypotheses, axiom, lemma, theorem, conjecture, context),
106
- section = new Section(context, node, string, hypotheses, axiom, lemma, theorem, conjecture);
106
+ section = new Section(context, string, node, hypotheses, axiom, lemma, theorem, conjecture);
107
107
 
108
108
  return section;
109
109
  }
@@ -115,7 +115,7 @@ function axiomFroSectionNode(sectionNode, context) {
115
115
  const axiomNode = sectionNode.getAxiomNode();
116
116
 
117
117
  if (axiomNode !== null) {
118
- const { Axiom } = ontology;
118
+ const { Axiom } = elements;
119
119
 
120
120
  axiom = Axiom.fromAxiomNode(axiomNode, context);
121
121
  }
@@ -129,7 +129,7 @@ function lemmaFroSectionNode(sectionNode, context) {
129
129
  const lemmaNode = sectionNode.getLemmaNode();
130
130
 
131
131
  if (lemmaNode !== null) {
132
- const { Lemma } = ontology;
132
+ const { Lemma } = elements;
133
133
 
134
134
  lemma = Lemma.fromLemmaNode(lemmaNode, context);
135
135
  }
@@ -143,7 +143,7 @@ function theoremFroSectionNode(sectionNode, context) {
143
143
  const theoremNode = sectionNode.getTheoremNode();
144
144
 
145
145
  if (theoremNode !== null) {
146
- const { Theorem } = ontology;
146
+ const { Theorem } = elements;
147
147
 
148
148
  theorem = Theorem.fromTheoremNode(theoremNode, context);
149
149
  }
@@ -157,7 +157,7 @@ function conjectureFroSectionNode(sectionNode, context) {
157
157
  const conjectureNode = sectionNode.getConjectureNode();
158
158
 
159
159
  if (conjectureNode !== null) {
160
- const { Conjecture } = ontology;
160
+ const { Conjecture } = elements;
161
161
 
162
162
  conjecture = Conjecture.fromConjectureNode(conjectureNode, context);
163
163
  }
@@ -167,7 +167,7 @@ function conjectureFroSectionNode(sectionNode, context) {
167
167
 
168
168
  function hypothesesFromHypothesisNodes(hypothesisNodes, context) {
169
169
  const hypotheses = hypothesisNodes.map((hypothesisNode) => {
170
- const { Hypothesis } = ontology,
170
+ const { Hypothesis } = elements,
171
171
  hypothesis = Hypothesis.fromHypothesisNode(hypothesisNode, context);
172
172
 
173
173
  return hypothesis;
@@ -2,17 +2,18 @@
2
2
 
3
3
  import { arrayUtilities } from "necessary";
4
4
 
5
- import ontology from "../ontology";
5
+ import elements from "../elements";
6
6
 
7
- import { define } from "../ontology";
7
+ import { define } from "../elements";
8
+ import { signatureStringFromTerms } from "../utilities/string";
8
9
  import { termsFromJSON, termsToTermsJSON } from "../utilities/json";
9
- import { stringFromTerms, variableFromTerm, termsFromTermNodes } from "../utilities/node";
10
10
 
11
11
  const { match, compare, correlate } = arrayUtilities;
12
12
 
13
13
  export default define(class Signature {
14
- constructor(string, terms) {
14
+ constructor(string, node, terms) {
15
15
  this.string = string;
16
+ this.node = node;
16
17
  this.terms = terms;
17
18
  }
18
19
 
@@ -20,6 +21,10 @@ export default define(class Signature {
20
21
  return this.string;
21
22
  }
22
23
 
24
+ getNode() {
25
+ return this.node;
26
+ }
27
+
23
28
  getTerms() {
24
29
  return this.terms;
25
30
  }
@@ -66,7 +71,7 @@ export default define(class Signature {
66
71
  termTypeEqualToOrSubTypeOfVariableType = termType.isEqualToOrSubTypeOf(variableType);
67
72
 
68
73
  if (termTypeEqualToOrSubTypeOfVariableType) {
69
- const { TermSubstitution } = ontology,
74
+ const { TermSubstitution } = elements,
70
75
  context = specificContext, ///
71
76
  termSubstitution = TermSubstitution.fromTernAndVariable(term, variable, context),
72
77
  substitution = termSubstitution; ///
@@ -153,16 +158,8 @@ export default define(class Signature {
153
158
 
154
159
  static fromJSON(json, context) {
155
160
  const terms = termsFromJSON(json, context),
156
- string = stringFromTerms(terms),
157
- signature = new Signature(string, terms);
158
-
159
- return signature;
160
- }
161
-
162
- static fromSignatureNode(signatureNode, context) {
163
- const termNodes = signatureNode.getTermNodes(),
164
- terms = termsFromTermNodes(termNodes, context),
165
- string = stringFromTerms(terms),
161
+ signatureString = signatureStringFromTerms(terms),
162
+ string = signatureString, ///
166
163
  signature = new Signature(string, terms);
167
164
 
168
165
  return signature;