occam-verify-cli 0.0.1002 → 0.0.1005

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 (184) hide show
  1. package/README.md +0 -2
  2. package/bin/abbreviations.js +1 -3
  3. package/bin/action/help.js +0 -2
  4. package/bin/action/verify.js +4 -24
  5. package/bin/defaults.js +0 -2
  6. package/bin/main.js +3 -4
  7. package/bin/options.js +0 -2
  8. package/lib/assertion/subproof.js +106 -0
  9. package/lib/assignment/metavariable.js +2 -2
  10. package/lib/combinator.js +50 -16
  11. package/lib/conclusion.js +73 -14
  12. package/lib/context/file.js +191 -31
  13. package/lib/context/local.js +37 -49
  14. package/lib/context/release.js +42 -35
  15. package/lib/context/release.other.js +605 -0
  16. package/lib/declaration/combinator.js +83 -0
  17. package/lib/derivation.js +86 -0
  18. package/lib/equality.js +3 -11
  19. package/lib/index.js +1 -1
  20. package/lib/judgement.js +3 -10
  21. package/lib/label.js +58 -16
  22. package/lib/log.js +3 -11
  23. package/lib/metaType.js +31 -19
  24. package/lib/metavariable.js +39 -12
  25. package/lib/mixins/statement/qualified/unify.js +118 -0
  26. package/lib/mixins/statement/unify.js +57 -0
  27. package/lib/mixins/statement/verify.js +184 -0
  28. package/lib/node/statement/combinator/bracketed.js +15 -11
  29. package/lib/ocmbinator/bracketed.js +52 -8
  30. package/lib/premise.js +109 -56
  31. package/lib/proof.js +91 -0
  32. package/lib/proofStep.js +78 -25
  33. package/lib/reference.js +62 -16
  34. package/lib/rule.js +146 -26
  35. package/lib/ruleNames.js +5 -5
  36. package/lib/statement/qualified.js +127 -0
  37. package/lib/statement/unqualified.js +89 -0
  38. package/lib/statement.js +176 -0
  39. package/lib/subDerivation.js +86 -0
  40. package/lib/subproof.js +155 -0
  41. package/lib/substitution/frameForMetavariable.js +14 -15
  42. package/lib/substitution/statementForMetavariable.js +23 -24
  43. package/lib/substitution/termForVariable.js +11 -12
  44. package/lib/substitution.js +9 -2
  45. package/lib/substitutions.js +14 -14
  46. package/lib/supposition.js +92 -60
  47. package/lib/unifier/statementWithCombinator.js +3 -3
  48. package/lib/unify/metavariableWithFrame.js +2 -2
  49. package/lib/unify/metavariableWithStatement.js +2 -2
  50. package/lib/unify/metavariableWithStatementGivenSubstitution.js +2 -2
  51. package/lib/unify/variableWithTerm.js +2 -2
  52. package/lib/utilities/node.js +13 -11
  53. package/lib/utilities/releaseContext.js +3 -3
  54. package/lib/utilities/string.js +8 -2
  55. package/lib/utilities/subproof.js +5 -5
  56. package/lib/utilities/tokens.js +10 -10
  57. package/lib/variable.js +1 -10
  58. package/lib/verifier/metaLevel.js +2 -2
  59. package/lib/verifier/topLevel.js +5 -5
  60. package/lib/verify/axiom.js +3 -5
  61. package/lib/verify/conjecture.js +4 -7
  62. package/lib/verify/consequent.js +2 -3
  63. package/lib/verify/declaration/combinator.js +2 -14
  64. package/lib/verify/declaration/metavariable.js +9 -10
  65. package/lib/verify/files.js +4 -4
  66. package/lib/verify/frame.js +12 -12
  67. package/lib/verify/lemma.js +4 -7
  68. package/lib/verify/metaLemma.js +4 -7
  69. package/lib/verify/metatheorem.js +4 -7
  70. package/lib/verify/proofStep.js +2 -31
  71. package/lib/verify/theorem.js +4 -7
  72. package/package.json +4 -4
  73. package/src/assertion/subproof.js +84 -0
  74. package/src/assignment/metavariable.js +2 -2
  75. package/src/combinator.js +45 -15
  76. package/src/conclusion.js +83 -13
  77. package/src/context/file.js +223 -11
  78. package/src/context/local.js +12 -16
  79. package/src/context/release.js +57 -39
  80. package/src/context/release.other.js +547 -0
  81. package/src/declaration/combinator.js +44 -0
  82. package/src/derivation.js +50 -0
  83. package/src/equality.js +2 -9
  84. package/src/index.js +0 -1
  85. package/src/judgement.js +2 -8
  86. package/src/label.js +56 -13
  87. package/src/log.js +2 -9
  88. package/src/metaType.js +26 -14
  89. package/src/metavariable.js +57 -9
  90. package/src/mixins/statement/qualified/unify.js +186 -0
  91. package/src/mixins/statement/unify.js +70 -0
  92. package/src/mixins/statement/verify.js +274 -0
  93. package/src/node/statement/combinator/bracketed.js +4 -3
  94. package/src/ocmbinator/bracketed.js +15 -12
  95. package/src/premise.js +136 -44
  96. package/src/proof.js +58 -0
  97. package/src/proofStep.js +92 -22
  98. package/src/reference.js +58 -12
  99. package/src/rule.js +199 -30
  100. package/src/ruleNames.js +1 -1
  101. package/src/statement/qualified.js +104 -0
  102. package/src/statement/unqualified.js +60 -0
  103. package/src/statement.js +179 -0
  104. package/src/subDerivation.js +52 -0
  105. package/src/subproof.js +99 -0
  106. package/src/substitution/frameForMetavariable.js +20 -17
  107. package/src/substitution/statementForMetavariable.js +31 -29
  108. package/src/substitution/termForVariable.js +15 -14
  109. package/src/substitution.js +8 -0
  110. package/src/substitutions.js +12 -13
  111. package/src/supposition.js +94 -44
  112. package/src/unifier/statementWithCombinator.js +6 -3
  113. package/src/unify/metavariableWithFrame.js +1 -1
  114. package/src/unify/metavariableWithStatement.js +1 -1
  115. package/src/unify/metavariableWithStatementGivenSubstitution.js +1 -1
  116. package/src/unify/variableWithTerm.js +1 -1
  117. package/src/utilities/node.js +18 -12
  118. package/src/utilities/releaseContext.js +2 -2
  119. package/src/utilities/string.js +6 -2
  120. package/src/utilities/subproof.js +2 -2
  121. package/src/utilities/tokens.js +7 -7
  122. package/src/variable.js +0 -10
  123. package/src/verifier/metaLevel.js +3 -2
  124. package/src/verifier/topLevel.js +6 -4
  125. package/src/verify/axiom.js +1 -2
  126. package/src/verify/conjecture.js +2 -3
  127. package/src/verify/consequent.js +1 -1
  128. package/src/verify/declaration/combinator.js +0 -20
  129. package/src/verify/declaration/metavariable.js +8 -12
  130. package/src/verify/files.js +3 -3
  131. package/src/verify/frame.js +11 -11
  132. package/src/verify/lemma.js +2 -3
  133. package/src/verify/metaLemma.js +2 -3
  134. package/src/verify/metatheorem.js +2 -3
  135. package/src/verify/proofStep.js +0 -41
  136. package/src/verify/theorem.js +2 -3
  137. package/lib/tokens/combinatorStatement/bracketed.js +0 -17
  138. package/lib/unify/premiseWithProofStep.js +0 -41
  139. package/lib/unify/premisesWithProofSteps.js +0 -31
  140. package/lib/unify/qualifiedStatement.js +0 -136
  141. package/lib/unify/statementWithBracketedCombinator.js +0 -30
  142. package/lib/unify/statementWithCombinator.js +0 -29
  143. package/lib/unify/statementWithCombinators.js +0 -31
  144. package/lib/unify/statementWithMetaType.js +0 -24
  145. package/lib/verify/conclusion.js +0 -39
  146. package/lib/verify/derivation.js +0 -31
  147. package/lib/verify/label.js +0 -37
  148. package/lib/verify/labels.js +0 -28
  149. package/lib/verify/premise.js +0 -45
  150. package/lib/verify/premises.js +0 -28
  151. package/lib/verify/proof.js +0 -34
  152. package/lib/verify/rule.js +0 -56
  153. package/lib/verify/statement/qualified.js +0 -41
  154. package/lib/verify/statement/unqualified.js +0 -45
  155. package/lib/verify/statement.js +0 -219
  156. package/lib/verify/statementAsCombinator.js +0 -33
  157. package/lib/verify/statementGivenMetaType.js +0 -52
  158. package/lib/verify/subproof.js +0 -34
  159. package/lib/verify/supposition.js +0 -45
  160. package/lib/verify/suppositions.js +0 -28
  161. package/src/tokens/combinatorStatement/bracketed.js +0 -10
  162. package/src/unify/premiseWithProofStep.js +0 -54
  163. package/src/unify/premisesWithProofSteps.js +0 -23
  164. package/src/unify/qualifiedStatement.js +0 -208
  165. package/src/unify/statementWithBracketedCombinator.js +0 -22
  166. package/src/unify/statementWithCombinator.js +0 -22
  167. package/src/unify/statementWithCombinators.js +0 -23
  168. package/src/unify/statementWithMetaType.js +0 -14
  169. package/src/verify/conclusion.js +0 -40
  170. package/src/verify/derivation.js +0 -23
  171. package/src/verify/label.js +0 -34
  172. package/src/verify/labels.js +0 -17
  173. package/src/verify/premise.js +0 -49
  174. package/src/verify/premises.js +0 -17
  175. package/src/verify/proof.js +0 -31
  176. package/src/verify/rule.js +0 -71
  177. package/src/verify/statement/qualified.js +0 -40
  178. package/src/verify/statement/unqualified.js +0 -49
  179. package/src/verify/statement.js +0 -312
  180. package/src/verify/statementAsCombinator.js +0 -27
  181. package/src/verify/statementGivenMetaType.js +0 -52
  182. package/src/verify/subproof.js +0 -32
  183. package/src/verify/supposition.js +0 -49
  184. package/src/verify/suppositions.js +0 -17
@@ -1,312 +0,0 @@
1
- "use strict";
2
-
3
- import shim from "../shim";
4
- import verifyFrame from "../verify/frame";
5
- import verifyEquality from "../verify/equality";
6
- import verifyJudgement from "../verify/judgement";
7
- import verifyDeclaration from "../verify/declaration";
8
- import verifyTypeAssertion from "../verify/assertion/type";
9
- import metavariableUnifier from "../unifier/metavariable";
10
- import verifyDefinedAssertion from "../verify/assertion/defined";
11
- import verifySubproofAssertion from "../verify/assertion/subproof";
12
- import verifyContainedAssertion from "../verify/assertion/contained";
13
- import unifyStatementWithCombinators from "../unify/statementWithCombinators";
14
- import unifyStatementWithBracketedCombinator from "../unify/statementWithBracketedCombinator";
15
-
16
- import { nodeQuery } from "../utilities/query";
17
- import { metavariableNameFromMetavariableNode } from "../utilities/name";
18
-
19
- const frameNodeQuery = nodeQuery("/statement/frame!"),
20
- equalityNodeQuery = nodeQuery("/statement/equality!"),
21
- judgementNodeQuery = nodeQuery("/statement/judgement!"),
22
- declarationNodeQuery = nodeQuery("/statement/declaration!"),
23
- metavariableNodeQuery = nodeQuery("/statement/metavariable!"),
24
- typeAssertionNodeQuery = nodeQuery("/statement/typeAssertion!"),
25
- definedAssertionNodeQuery = nodeQuery("/statement/definedAssertion!"),
26
- subproofAssertionNodeQuery = nodeQuery("/statement/subproofAssertion!"),
27
- containedAssertionNodeQuery = nodeQuery("/statement/containedAssertion!");
28
-
29
- const unifyStatementFunctions = [
30
- unifyStatementWithBracketedCombinator,
31
- unifyStatementWithCombinators
32
- ],
33
- verifyStatementFunctions = [
34
- verifyStatementAsMetavariable,
35
- verifyStatementAsEquality,
36
- verifyStatementAsFrame,
37
- verifyStatementAsJudgement,
38
- verifyStatementAsDeclaration,
39
- verifyStatementAsTypeAssertion,
40
- verifyStatementAsDefinedAssertion,
41
- verifyStatementAsSubproofAssertion,
42
- verifyStatementAsContainedAssertion
43
- ];
44
-
45
- function verifyStatement(statementNode, assignments, stated, localContext) {
46
- let statementVerified = false;
47
-
48
- const statementString = localContext.nodeAsString(statementNode);
49
-
50
- localContext.trace(`Verifying the '${statementString}' statement...`, statementNode);
51
-
52
- if (!statementVerified) {
53
- const statementUnified = unifyStatementFunctions.some((unifyStatementFunction) => {
54
- const statementUnified = unifyStatementFunction(statementNode, assignments, stated, localContext);
55
-
56
- if (statementUnified) {
57
- return true;
58
- }
59
- });
60
-
61
- statementVerified = statementUnified; ///
62
- }
63
-
64
- if (!statementVerified) {
65
- statementVerified = verifyStatementFunctions.some((verifyStatementFunction) => {
66
- const statementVerified = verifyStatementFunction(statementNode, assignments, stated, localContext);
67
-
68
- if (statementVerified) {
69
- return true;
70
- }
71
- });
72
- }
73
-
74
- if (statementVerified) {
75
- localContext.debug(`...verified the '${statementString}' statement.`, statementNode);
76
- }
77
-
78
- return statementVerified;
79
- }
80
-
81
- Object.assign(shim, {
82
- verifyStatement
83
- });
84
-
85
- export default verifyStatement;
86
-
87
- function verifyStatementAsMetavariable(statementNode, assignments, stated, localContext) {
88
- let statementVerifiedAsMetavariable = false;
89
-
90
- const metavariableNode = metavariableNodeQuery(statementNode);
91
-
92
- if (metavariableNode !== null) {
93
- const statementString = localContext.nodeAsString(statementNode);
94
-
95
- localContext.trace(`Verifying the '${statementString}' statement as a metavariable...`, statementNode);
96
-
97
- const metavariableUnified = unifyMetavariable(metavariableNode, localContext);
98
-
99
- statementVerifiedAsMetavariable = metavariableUnified; ///
100
-
101
- if (statementVerifiedAsMetavariable) {
102
- localContext.debug(`...verified the '${statementString}' statement as a metavariable.`, statementNode);
103
- }
104
- }
105
-
106
- return statementVerifiedAsMetavariable;
107
- }
108
-
109
- function verifyStatementAsEquality(statementNode, assignments, stated, localContext) {
110
- let statementVerifiedAsEquality = false;
111
-
112
- const equalityNode = equalityNodeQuery(statementNode);
113
-
114
- if (equalityNode !== null) {
115
- const statementString = localContext.nodeAsString(statementNode);
116
-
117
- localContext.trace(`Verifying the '${statementString}' statement as an equality...`, statementNode);
118
-
119
- const equalityVerified = verifyEquality(equalityNode, assignments, stated, localContext);
120
-
121
- statementVerifiedAsEquality = equalityVerified; ///
122
-
123
- if (statementVerifiedAsEquality) {
124
- localContext.debug(`...verified the '${statementString}' statement as an equality.`, statementNode);
125
- }
126
- }
127
-
128
- return statementVerifiedAsEquality;
129
- }
130
-
131
- function verifyStatementAsFrame(statementNode, assignments, stated, localContext) {
132
- let statementVerifiedAsFrame = false;
133
-
134
- const frameNode = frameNodeQuery(statementNode);
135
-
136
- if (frameNode !== null) {
137
- const statementString = localContext.nodeAsString(statementNode);
138
-
139
- localContext.trace(`Verifying the '${statementString}' statement as a frame...`, statementNode);
140
-
141
- const frameVerified = verifyFrame(frameNode, assignments, stated, localContext);
142
-
143
- statementVerifiedAsFrame = frameVerified; ///
144
-
145
- if (statementVerifiedAsFrame) {
146
- localContext.debug(`...verified the '${statementString}' statement as a frame.`, statementNode);
147
- }
148
- }
149
-
150
- return statementVerifiedAsFrame;
151
- }
152
-
153
- function verifyStatementAsJudgement(statementNode, assignments, stated, localContext) {
154
- let statementVerifiedAsJudgement = false;
155
-
156
- const judgementNode = judgementNodeQuery(statementNode);
157
-
158
- if (judgementNode !== null) {
159
- const statementString = localContext.nodeAsString(statementNode);
160
-
161
- localContext.trace(`Verifying the '${statementString}' statement as a judgement...`, statementNode);
162
-
163
- const judgementVerified = verifyJudgement(judgementNode, assignments, stated, localContext);
164
-
165
- statementVerifiedAsJudgement = judgementVerified; ///
166
-
167
- if (statementVerifiedAsJudgement) {
168
- localContext.debug(`...verified the '${statementString}' statement as a judgement.`, statementNode);
169
- }
170
- }
171
-
172
- return statementVerifiedAsJudgement;
173
- }
174
-
175
- function verifyStatementAsDeclaration(statementNode, assignments, stated, localContext) {
176
- let statementVerifiedAsDeclaration = false;
177
-
178
- const declarationNode = declarationNodeQuery(statementNode);
179
-
180
- if (declarationNode !== null) {
181
- const statementString = localContext.nodeAsString(statementNode);
182
-
183
- localContext.trace(`Verifying the '${statementString}' statement as a declaration...`, statementNode);
184
-
185
- const declarationVerified = verifyDeclaration(declarationNode, assignments, stated, localContext);
186
-
187
- statementVerifiedAsDeclaration = declarationVerified; ///
188
-
189
- if (statementVerifiedAsDeclaration) {
190
- localContext.debug(`...verified the '${statementString}' statement as a declaration.`, statementNode);
191
- }
192
- }
193
-
194
- return statementVerifiedAsDeclaration;
195
- }
196
-
197
- function verifyStatementAsTypeAssertion(statementNode, assignments, stated, localContext) {
198
- let statementVerifiedAsTypeAssertion = false;
199
-
200
- const typeAssertionNode = typeAssertionNodeQuery(statementNode);
201
-
202
- if (typeAssertionNode !== null) {
203
- const statementString = localContext.nodeAsString(statementNode);
204
-
205
- localContext.trace(`Verifying the '${statementString}' statement as a type assertion...`, statementNode);
206
-
207
- const typeAssertionVerified = verifyTypeAssertion(typeAssertionNode, assignments, stated, localContext);
208
-
209
- statementVerifiedAsTypeAssertion = typeAssertionVerified; ///
210
-
211
- if (statementVerifiedAsTypeAssertion) {
212
- localContext.debug(`...verified the '${statementString}' statement as a type assertion.`, statementNode);
213
- }
214
- }
215
-
216
- return statementVerifiedAsTypeAssertion;
217
- }
218
-
219
- function verifyStatementAsDefinedAssertion(statementNode, assignments, stated, localContext) {
220
- let statementVerifiedAsDefinedAssertion = false;
221
-
222
- const definedAssertionNode = definedAssertionNodeQuery(statementNode);
223
-
224
- if (definedAssertionNode !== null) {
225
- const statementString = localContext.nodeAsString(statementNode);
226
-
227
- localContext.trace(`Verifying the '${statementString}' statement as a defined assertion...`, statementNode);
228
-
229
- const definedAssertionVerified = verifyDefinedAssertion(definedAssertionNode, assignments, stated, localContext);
230
-
231
- statementVerifiedAsDefinedAssertion = definedAssertionVerified; ///
232
-
233
- if (statementVerifiedAsDefinedAssertion) {
234
- localContext.debug(`...verified the '${statementString}' statement as a defined assertion.`, statementNode);
235
- }
236
- }
237
-
238
- return statementVerifiedAsDefinedAssertion;
239
- }
240
-
241
- function verifyStatementAsSubproofAssertion(statementNode, assignments, stated, localContext) {
242
- let statementVerifiedAsSubproofAssertion = false;
243
-
244
- const subproofAssertionNode = subproofAssertionNodeQuery(statementNode);
245
-
246
- if (subproofAssertionNode !== null) {
247
- const statementString = localContext.nodeAsString(statementNode);
248
-
249
- localContext.trace(`Verifying the '${statementString}' statement as a subproof assertion...`, statementNode);
250
-
251
- const subproofAssertionVerified = verifySubproofAssertion(subproofAssertionNode, assignments, stated, localContext);
252
-
253
- statementVerifiedAsSubproofAssertion = subproofAssertionVerified; ///
254
-
255
- if (statementVerifiedAsSubproofAssertion) {
256
- localContext.debug(`...verified the '${statementString}' statement as a subproof assertion.`, statementNode);
257
- }
258
- }
259
-
260
- return statementVerifiedAsSubproofAssertion;
261
- }
262
-
263
- function verifyStatementAsContainedAssertion(statementNode, assignments, stated, localContext) {
264
- let statementVerifiedAsContainedAssertion = false;
265
-
266
- const containedAssertionNode = containedAssertionNodeQuery(statementNode);
267
-
268
- if (containedAssertionNode !== null) {
269
- const statementString = localContext.nodeAsString(statementNode);
270
-
271
- localContext.trace(`Verifying the '${statementString}' statement as a contained assertion...`, statementNode);
272
-
273
- const containedAssertionVerified = verifyContainedAssertion(containedAssertionNode, assignments, stated, localContext);
274
-
275
- statementVerifiedAsContainedAssertion = containedAssertionVerified; ///
276
-
277
- if (statementVerifiedAsContainedAssertion) {
278
- localContext.debug(`...verified the '${statementString}' statement as a contained assertion.`, statementNode);
279
- }
280
- }
281
-
282
- return statementVerifiedAsContainedAssertion;
283
- }
284
-
285
- function unifyMetavariable(metavariableNode, localContext) {
286
- let metavariableUnified;
287
-
288
- const metavariableString = localContext.nodeAsString(metavariableNode);
289
-
290
- localContext.trace(`Unifying the '${metavariableString}' metavariable...`, metavariableNode);
291
-
292
- const metavariableName = metavariableNameFromMetavariableNode(metavariableNode),
293
- metavariable = localContext.findMetavariableByMetavariableName(metavariableName);
294
-
295
- if (metavariable !== null) {
296
- const metavariableNodeA = metavariableNode; ///
297
-
298
- metavariableNode = metavariable.getNode();
299
-
300
- const metavariableNodeB = metavariableNode; ///
301
-
302
- const unified = metavariableUnifier.unify(metavariableNodeA, metavariableNodeB, localContext);
303
-
304
- metavariableUnified = unified; ///
305
- }
306
-
307
- if (metavariableUnified) {
308
- localContext.debug(`...unified the '${metavariableString}' metavariable.`, metavariableNode);
309
- }
310
-
311
- return metavariableUnified;
312
- }
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- import Combinator from "../combinator";
4
- import statementAsCombinatorVerifier from "../verifier/statementAsCombinator";
5
-
6
- export default function verifyStatementAsCombinator(statementNode, fileContext) {
7
- let statementVerifiedAsCombinator;
8
-
9
- const statementString = fileContext.nodeAsString(statementNode);
10
-
11
- fileContext.trace(`Verifying the '${statementString}' statement as a combinator...`, statementNode);
12
-
13
- statementVerifiedAsCombinator = statementAsCombinatorVerifier.verifyStatement(statementNode, fileContext);
14
-
15
- if (statementVerifiedAsCombinator) {
16
- const tokens = fileContext.getTokens(),
17
- combinator = Combinator.fromStatementNodeAndTokens(statementNode, tokens);
18
-
19
- fileContext.addCombinator(combinator);
20
- }
21
-
22
- if (statementVerifiedAsCombinator) {
23
- fileContext.debug(`...verified the '${statementString}' statement as a combinator.`, statementNode);
24
- }
25
-
26
- return statementVerifiedAsCombinator;
27
- }
@@ -1,52 +0,0 @@
1
- "use strict";
2
-
3
- import shim from "../shim";
4
-
5
- import { nodeQuery } from "../utilities/query";
6
- import { metavariableNameFromMetavariableNode } from "../utilities/name";
7
- import { FRAME_META_TYPE_NAME, REFERENCE_META_TYPE_NAME, STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
8
-
9
- const metavariableNodeQuery = nodeQuery("/statement/metavariable!");
10
-
11
- export default function verifyStatementGivenMetaType(statementNode, metaType, assignments, stated, localContext) {
12
- let statementVerifiedGivenMetaType;
13
-
14
- const metaTypeName = metaType.getName();
15
-
16
- switch (metaTypeName) {
17
- case FRAME_META_TYPE_NAME:
18
- case REFERENCE_META_TYPE_NAME: {
19
- debugger
20
-
21
- statementVerifiedGivenMetaType = false;
22
-
23
- const metavariableNode = metavariableNodeQuery(statementNode);
24
-
25
- if (metavariableNode !== null) {
26
- const metavariableName = metavariableNameFromMetavariableNode(metavariableNode),
27
- metavariable = localContext.findMetavariableByMetavariableName(metavariableName);
28
-
29
- if (metavariable !== null) {
30
- const metavariableMetaType = metavariable.getMetaType();
31
-
32
- if (metavariableMetaType === metaType) {
33
- statementVerifiedGivenMetaType = true;
34
- }
35
- }
36
- }
37
-
38
- break;
39
- }
40
-
41
- case STATEMENT_META_TYPE_NAME: {
42
- const { verifyStatement } = shim,
43
- statementVerified = verifyStatement(statementNode, assignments, stated, localContext)
44
-
45
- statementVerifiedGivenMetaType = statementVerified; ///
46
-
47
- break;
48
- }
49
- }
50
-
51
- return statementVerifiedGivenMetaType;
52
- }
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- import LocalContext from "../context/local";
4
- import verifySuppositions from "../verify/suppositions";
5
- import verifySubDerivation from "../verify/subDerivation";
6
-
7
- import { nodeQuery, nodesQuery } from "../utilities/query";
8
-
9
- const suppositionNodesQuery = nodesQuery("/subproof/supposition"),
10
- subDerivationNodeQuery = nodeQuery("/subproof/subDerivation");
11
-
12
- export default function verifySubproof(subproofNode, substitutions, localContext) {
13
- let subproofVerified = false;
14
-
15
- localContext = LocalContext.fromLocalContext(localContext); ///
16
-
17
- const suppositions = [],
18
- suppositionNodes = suppositionNodesQuery(subproofNode),
19
- suppositionsVerified = verifySuppositions(suppositionNodes, suppositions, localContext);
20
-
21
- if (suppositionsVerified) {
22
- const subDerivationNode = subDerivationNodeQuery(subproofNode),
23
- subDerivationVerified = verifySubDerivation(subDerivationNode, substitutions, localContext);
24
-
25
- if (subDerivationVerified) {
26
- subproofVerified = true;
27
- }
28
- }
29
-
30
- return subproofVerified;
31
- }
32
-
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- import ProofStep from "../proofStep";
4
- import Supposition from "../supposition";
5
- import verifyStatement from "../verify/statement";
6
-
7
- import { nodeQuery } from "../utilities/query";
8
- import { assignAssignments } from "../utilities/assignments";
9
-
10
- const statementNodeQuery = nodeQuery("/unqualifiedStatement/statement!"),
11
- unqualifiedStatementNodeQuery = nodeQuery("/supposition/unqualifiedStatement!");
12
-
13
- export default function verifySupposition(suppositionNode, suppositions, localContext) {
14
- let suppositionVerified = false;
15
-
16
- const suppositionString = localContext.nodeAsString(suppositionNode);
17
-
18
- localContext.trace(`Verifying the '${suppositionString}' supposition...`, suppositionNode);
19
-
20
- const unqualifiedStatementNode = unqualifiedStatementNodeQuery(suppositionNode);
21
-
22
- if (unqualifiedStatementNode !== null) {
23
- const stated = true,
24
- assignments = [],
25
- statementNode = statementNodeQuery(unqualifiedStatementNode),
26
- statementVerified = verifyStatement(statementNode, assignments, stated, localContext);
27
-
28
- if (statementVerified) {
29
- const assignmentsAssigned = assignAssignments(assignments, localContext);
30
-
31
- if (assignmentsAssigned) {
32
- const supposition = Supposition.fromStatementNode(statementNode),
33
- proofStep = ProofStep.fromStatementNode(statementNode);
34
-
35
- suppositions.push(supposition);
36
-
37
- localContext.addProofStep(proofStep);
38
-
39
- suppositionVerified = true;
40
- }
41
- }
42
- }
43
-
44
- if (suppositionVerified) {
45
- localContext.debug(`...verified the '${suppositionString}' supposition.`, suppositionNode);
46
- }
47
-
48
- return suppositionVerified;
49
- }
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- import verifySupposition from "../verify/supposition";
4
-
5
- export default function verifySuppositions(suppositionNodes, suppositions, localContext) {
6
- let suppositionsVerified;
7
-
8
- suppositionsVerified = suppositionNodes.every((suppositionNode) => {
9
- const suppositionVerified = verifySupposition(suppositionNode, suppositions, localContext);
10
-
11
- if (suppositionVerified) {
12
- return true;
13
- }
14
- });
15
-
16
- return suppositionsVerified;
17
- }