occam-verify-cli 1.0.420 → 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 +10 -10
  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,105 +0,0 @@
1
- "use strict";
2
-
3
- import ontology from "../ontology";
4
-
5
- import { define } from "../ontology";
6
- import { baseType } from ".//type";
7
- import { unifyTermWithConstructor } from "../process/unify";
8
- import { termFromJSON, termToTermJSON } from "../utilities/json";
9
-
10
- export default define(class Constructor {
11
- constructor(string, term) {
12
- this.string = string;
13
- this.term = term;
14
- }
15
-
16
- getString() {
17
- return this.string;
18
- }
19
-
20
- getTerm() {
21
- return this.term;
22
- }
23
-
24
- getType() { return this.term.getType(); }
25
-
26
- isProvisional() { return this.term.isProvisional(); }
27
-
28
- setType(type) { this.term.setType(type); }
29
-
30
- unifyTerm(term, context, verifyAhead) {
31
- let termUnifies = false;
32
-
33
- const constructor = this, ///
34
- termString = term.getString(),
35
- constructorString = constructor.getString();
36
-
37
- context.trace(`Unifying the '${termString}' term with the '${constructorString}' constructor...`);
38
-
39
- const termUnifiesWithConstructor = unifyTermWithConstructor(term, constructor, context);
40
-
41
- if (termUnifiesWithConstructor) {
42
- let verifiesAhead;
43
-
44
- const type = constructor.getType();
45
-
46
- term.setType(type);
47
-
48
- verifiesAhead = verifyAhead();
49
-
50
- termUnifies = verifiesAhead; ///
51
- }
52
-
53
- if (termUnifies) {
54
- context.debug(`...unified the '${termString}' term with the '${constructorString}' constructor.`);
55
- }
56
-
57
- return termUnifies;
58
- }
59
-
60
- toJSON() {
61
- const termJSON = termToTermJSON(this.term),
62
- term = termJSON, ///
63
- json = {
64
- term
65
- };
66
-
67
- return json;
68
- }
69
-
70
- static name = "Constructor";
71
-
72
- static fromJSON(json, context) {
73
- const term = termFromJSON(json, context),
74
- string = stringFromTerm(term),
75
- constructor = new Constructor(string, term);
76
-
77
- return constructor;
78
- }
79
-
80
- static fromConstructorDeclarationNode(constructorDeclarationNode, context) {
81
- const { Term } = ontology,
82
- term = Term.fromConstructorDeclarationNode(constructorDeclarationNode, context),
83
- string = stringFromTerm(term),
84
- constructor = new Constructor(string, term);
85
-
86
- return constructor;
87
- }
88
- });
89
-
90
- function stringFromTerm(term) {
91
- let string;
92
-
93
- const termString = term.getString(),
94
- type = term.getType();
95
-
96
- if (type === baseType) {
97
- string = termString; ///
98
- } else {
99
- const typeString = type.getString();
100
-
101
- string = `${termString}:${typeString}`;
102
- }
103
-
104
- return string;
105
- }
package/src/ontology.js DELETED
@@ -1,13 +0,0 @@
1
- "use strict";
2
-
3
- const ontology = {};
4
-
5
- export function define(Class) {
6
- const { name } = Class;
7
-
8
- ontology[name] = Class;
9
-
10
- return Class;
11
- }
12
-
13
- export default ontology;
@@ -1,11 +0,0 @@
1
- "use strict";
2
-
3
- export function assignAssignments(assignments, context) {
4
- const assignmentsAssigned = assignments.every((assigment) => {
5
- const assignmentAssigned = assigment.assign(context);
6
-
7
- return assignmentAssigned
8
- });
9
-
10
- return assignmentsAssigned;
11
- }
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- export function subproofStringFromSubproofNode(subproofNode, context) {
4
- const suppositionStatementsOrNonsenseString = suppositionStatementOrNonsenseStringFromSubproofNode(subproofNode, context),
5
- lastStatementOrNonsenseString = lastStatementOrNonsenseStringFromSubproofNode(subproofNode, context),
6
- subproofString = `[${suppositionStatementsOrNonsenseString}] ... ${lastStatementOrNonsenseString}`;
7
-
8
- return subproofString;
9
- }
10
-
11
- function suppositionStatementOrNonsenseStringFromSubproofNode(subproofNode, context) {
12
- const suppositionNodes = subproofNode.getSuppositionNodes(),
13
- suppositionStatementsOrNonsenseString = suppositionNodes.reduce((suppositionStatementsOrNonsenseString, suppositionNode) => {
14
- const suppositionOrStepNode = suppositionNode, ///
15
- statementOrNonsenseString = statementOrNonsenseStringFromSuppositionOrStepNode(suppositionOrStepNode, context),
16
- suppositionStatementOrNonsenseString = statementOrNonsenseString; ///
17
-
18
- suppositionStatementsOrNonsenseString = (suppositionStatementsOrNonsenseString !== null) ?
19
- `${suppositionStatementsOrNonsenseString}, ${suppositionStatementOrNonsenseString}` :
20
- suppositionStatementOrNonsenseString; ///
21
-
22
- return suppositionStatementsOrNonsenseString;
23
- }, null);
24
-
25
- return suppositionStatementsOrNonsenseString;
26
- }
27
-
28
- function lastStatementOrNonsenseStringFromSubproofNode(subproofNode, context) {
29
- const lastStepNode = subproofNode.getLastStepNode(),
30
- suppositionOrStepNode = lastStepNode, ///
31
- statementOrNonsenseString = statementOrNonsenseStringFromSuppositionOrStepNode(suppositionOrStepNode, context),
32
- lastStatementOrNonsenseString = statementOrNonsenseString; ///
33
-
34
- return lastStatementOrNonsenseString;
35
- }
36
-
37
- function statementOrNonsenseStringFromSuppositionOrStepNode(suppositionOrStepNode, context) {
38
- let statementOrNonsenseString;
39
-
40
- const nonsenseNode = suppositionOrStepNode.getNonsenseNode(),
41
- statementNode = suppositionOrStepNode.getStatementNode();
42
-
43
- if (false) {
44
- ///
45
- } else if (nonsenseNode !== null) {
46
- const nonsenseString = context.nodeAsString(nonsenseNode);
47
-
48
- statementOrNonsenseString = nonsenseString; ///
49
- } else if (statementNode !== null) {
50
- const statementString = context.nodeAsString(statementNode);
51
-
52
- statementOrNonsenseString = statementString; ///
53
- }
54
-
55
- return statementOrNonsenseString;
56
- }
@@ -1,35 +0,0 @@
1
- "use strict";
2
-
3
- import { baseType } from "../ontology/type";
4
-
5
- export function stringFromTypeNameTypePrefixNameAndSuperTypes(typeName, typePrefixName, superTypes) {
6
- let string;
7
-
8
- string = (typePrefixName !== null) ?
9
- `${typePrefixName}${typeName}`:
10
- typeName;
11
-
12
- const superTypesString = superTypesStringFromSuperTypes(superTypes);
13
-
14
- if (superTypesString !== null) {
15
- string = `${string}:${superTypesString}`;
16
- }
17
-
18
- return string;
19
- }
20
-
21
- export function superTypesStringFromSuperTypes(superTypes) {
22
- const superTypesString = superTypes.reduce((superTypesString, superType) => {
23
- if (superType !== baseType) {
24
- const superTypeString = superType.getString();
25
-
26
- superTypesString = (superTypesString === null) ?
27
- `'${superTypeString}'` :
28
- `${superTypesString}, '${superTypeString}'`;
29
- }
30
-
31
- return superTypesString;
32
- }, null);
33
-
34
- return superTypesString;
35
- }
File without changes