occam-verify-cli 0.0.914 → 0.0.916

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 (117) hide show
  1. package/lib/assignment/judgement.js +62 -0
  2. package/lib/axiomLemmaTheoremConjecture.js +4 -3
  3. package/lib/conclusion.js +5 -5
  4. package/lib/context/file.js +7 -7
  5. package/lib/context/local/intrinsicLevel.js +326 -0
  6. package/lib/context/local/metaLevel.js +290 -0
  7. package/lib/judgement.js +87 -0
  8. package/lib/metaConsequent.js +4 -4
  9. package/lib/metaLemmaMetatheorem.js +11 -11
  10. package/lib/metaSupposition.js +7 -7
  11. package/lib/metavariable.js +5 -5
  12. package/lib/premise.js +12 -12
  13. package/lib/rule.js +12 -12
  14. package/lib/verifier/node/metaLevel.js +214 -0
  15. package/lib/verifier/node/statementAsCombinator.js +9 -9
  16. package/lib/verifier/node/termAsConstructor.js +7 -7
  17. package/lib/verify/axiom.js +3 -3
  18. package/lib/verify/conclusion.js +7 -7
  19. package/lib/verify/conjecture.js +3 -3
  20. package/lib/verify/containedAssertion.js +23 -4
  21. package/lib/verify/declaration.js +15 -15
  22. package/lib/verify/definedAssertion.js +18 -4
  23. package/lib/verify/derivation.js +3 -3
  24. package/lib/verify/frame.js +19 -19
  25. package/lib/verify/judgement.js +121 -0
  26. package/lib/verify/lemma.js +3 -3
  27. package/lib/verify/metaConsequent.js +7 -7
  28. package/lib/verify/metaDerivation.js +3 -3
  29. package/lib/verify/metaLemma.js +6 -6
  30. package/lib/verify/metaSubDerivation.js +3 -3
  31. package/lib/verify/metaSubproof.js +7 -6
  32. package/lib/verify/metaSupposition.js +9 -9
  33. package/lib/verify/metaSuppositions.js +3 -3
  34. package/lib/verify/metaproof.js +7 -6
  35. package/lib/verify/metaproofStep.js +16 -16
  36. package/lib/verify/metastatement/qualified.js +22 -22
  37. package/lib/verify/metastatement/unqualified.js +7 -7
  38. package/lib/verify/metastatement.js +37 -37
  39. package/lib/verify/metatheorem.js +6 -6
  40. package/lib/verify/metavariable.js +6 -6
  41. package/lib/verify/premise.js +9 -9
  42. package/lib/verify/premises.js +3 -3
  43. package/lib/verify/proof.js +4 -3
  44. package/lib/verify/rule.js +6 -6
  45. package/lib/verify/ruleDerivation.js +3 -3
  46. package/lib/verify/ruleProof.js +7 -6
  47. package/lib/verify/ruleProofStep.js +16 -16
  48. package/lib/verify/ruleSubDerivation.js +3 -3
  49. package/lib/verify/ruleSubproof.js +7 -6
  50. package/lib/verify/statement.js +4 -17
  51. package/lib/verify/subDerivation.js +3 -3
  52. package/lib/verify/subproof.js +4 -3
  53. package/lib/verify/termAsConstructor.js +3 -3
  54. package/lib/verify/theorem.js +4 -4
  55. package/package.json +2 -2
  56. package/src/assignment/judgement.js +30 -0
  57. package/src/axiomLemmaTheoremConjecture.js +4 -2
  58. package/src/conclusion.js +7 -7
  59. package/src/context/file.js +5 -5
  60. package/src/context/{local.js → local/intrinsicLevel.js} +25 -20
  61. package/src/context/{localMeta.js → local/metaLevel.js} +50 -45
  62. package/src/{frameAssertion.js → judgement.js} +5 -5
  63. package/src/metaConsequent.js +7 -7
  64. package/src/metaLemmaMetatheorem.js +11 -11
  65. package/src/metaSupposition.js +13 -13
  66. package/src/metavariable.js +6 -7
  67. package/src/premise.js +26 -26
  68. package/src/rule.js +12 -12
  69. package/src/verifier/node/{metastatement.js → metaLevel.js} +19 -21
  70. package/src/verifier/node/statementAsCombinator.js +8 -8
  71. package/src/verifier/node/termAsConstructor.js +6 -6
  72. package/src/verify/axiom.js +4 -3
  73. package/src/verify/conclusion.js +5 -6
  74. package/src/verify/conjecture.js +4 -3
  75. package/src/verify/containedAssertion.js +24 -3
  76. package/src/verify/declaration.js +15 -15
  77. package/src/verify/definedAssertion.js +23 -3
  78. package/src/verify/derivation.js +2 -2
  79. package/src/verify/frame.js +18 -18
  80. package/src/verify/judgement.js +169 -0
  81. package/src/verify/lemma.js +4 -3
  82. package/src/verify/metaConsequent.js +5 -6
  83. package/src/verify/metaDerivation.js +2 -2
  84. package/src/verify/metaLemma.js +8 -7
  85. package/src/verify/metaSubDerivation.js +2 -2
  86. package/src/verify/metaSubproof.js +7 -5
  87. package/src/verify/metaSupposition.js +7 -8
  88. package/src/verify/metaSuppositions.js +2 -2
  89. package/src/verify/metaproof.js +7 -5
  90. package/src/verify/metaproofStep.js +13 -17
  91. package/src/verify/metastatement/qualified.js +24 -24
  92. package/src/verify/metastatement/unqualified.js +6 -6
  93. package/src/verify/metastatement.js +36 -36
  94. package/src/verify/metatheorem.js +8 -7
  95. package/src/verify/metavariable.js +5 -5
  96. package/src/verify/premise.js +7 -8
  97. package/src/verify/premises.js +2 -2
  98. package/src/verify/proof.js +4 -2
  99. package/src/verify/rule.js +8 -7
  100. package/src/verify/ruleDerivation.js +2 -2
  101. package/src/verify/ruleProof.js +7 -5
  102. package/src/verify/ruleProofStep.js +13 -17
  103. package/src/verify/ruleSubDerivation.js +2 -2
  104. package/src/verify/ruleSubproof.js +7 -5
  105. package/src/verify/statement.js +2 -22
  106. package/src/verify/subDerivation.js +2 -2
  107. package/src/verify/subproof.js +4 -2
  108. package/src/verify/termAsConstructor.js +4 -3
  109. package/src/verify/theorem.js +5 -4
  110. package/lib/assignment/frameAssertion.js +0 -62
  111. package/lib/context/local.js +0 -320
  112. package/lib/context/localMeta.js +0 -284
  113. package/lib/frameAssertion.js +0 -87
  114. package/lib/verifier/node/metastatement.js +0 -214
  115. package/lib/verify/frameAssertion.js +0 -121
  116. package/src/assignment/frameAssertion.js +0 -30
  117. package/src/verify/frameAssertion.js +0 -169
@@ -1,169 +0,0 @@
1
- "use strict";
2
-
3
- import verifyFrame from "../verify/frame";
4
- import frameMetaType from "../metaType/frame";
5
- import FrameAssertion from "../frameAssertion";
6
- import FrameAssertionAssignment from "../assignment/frameAssertion";
7
-
8
- import { first } from "../utilities/array";
9
- import { nodeQuery } from "../utilities/query";
10
-
11
- const frameNodeQuery = nodeQuery("/frameAssertion/frame!"),
12
- metavariableNodeQuery = nodeQuery("/frameAssertion/metavariable!");
13
-
14
- export default function verifyFrameAssertion(frameAssertionNode, assignments, derived, localMetaContext) {
15
- let frameAssertionVerified;
16
-
17
- const frameAssertionString = localMetaContext.nodeAsString(frameAssertionNode);
18
-
19
- localMetaContext.trace(`Verifying the '${frameAssertionString}' frame assertion...`, frameAssertionNode);
20
-
21
- const verifyFrameAssertionFunctions = [
22
- verifyDerivedFrameAssertion,
23
- verifyStatedFrameAssertion
24
- ];
25
-
26
- frameAssertionVerified = verifyFrameAssertionFunctions.some((verifyFrameAssertionFunction) => {
27
- const frameAssertionVerified = verifyFrameAssertionFunction(frameAssertionNode, assignments, derived, localMetaContext);
28
-
29
- if (frameAssertionVerified) {
30
- return true;
31
- }
32
- });
33
-
34
- if (frameAssertionVerified) {
35
- localMetaContext.debug(`...verified the '${frameAssertionString}' frame assertion.`, frameAssertionNode);
36
- }
37
-
38
- return frameAssertionVerified;
39
- }
40
-
41
- function verifyDerivedFrameAssertion(frameAssertionNode, assignments, derived, localMetaContext) {
42
- let derivedFrameAssertionVerified = false;
43
-
44
- if (derived) {
45
- const frameAssertionString = localMetaContext.nodeAsString(frameAssertionNode);
46
-
47
- localMetaContext.trace(`Verifying the '${frameAssertionString}' derived frame assertion...`, frameAssertionNode);
48
-
49
- const metavariableNode = metavariableNodeQuery(frameAssertionNode),
50
- metavariableVerified = verifyMetavariable(metavariableNode, localMetaContext);
51
-
52
- if (metavariableVerified) {
53
- const frameAssertion = localMetaContext.findFrameAssertionByMetavariableNode(metavariableNode);
54
-
55
- if (frameAssertion !== null) {
56
- const frames = [],
57
- frameNode = frameNodeQuery(frameAssertionNode),
58
- frameVerified = verifyFrame(frameNode, frames, assignments, derived, localMetaContext);
59
-
60
- if (frameVerified) {
61
- const firstFrame = first(frames),
62
- frame = firstFrame, ///
63
- frameSingular = frame.isSingular();
64
-
65
- if (frameSingular) {
66
- const declaration = frame.getDeclaration(),
67
- metavariableNode = declaration.getMetavariableNode(),
68
- metaLemma = localMetaContext.findMetaLemmaByMetavariableNode(metavariableNode),
69
- metatheorem = localMetaContext.findMetatheoremByMetavariableNode(metavariableNode),
70
- metaLemmaMetatheorem = (metaLemma || metatheorem); ///
71
-
72
- if (metaLemmaMetatheorem !== null) {
73
- const declarationMatchesMetaLemmaMetatheorem = declaration.matchMetaLemmaOrMetaTheorem(metaLemmaMetatheorem),
74
- frameAssertionMatchesMetaLemmaMetatheorem = frameAssertion.matchMetaLemmaOrMetaTheorem(metaLemmaMetatheorem);
75
-
76
- derivedFrameAssertionVerified = (declarationMatchesMetaLemmaMetatheorem && frameAssertionMatchesMetaLemmaMetatheorem);
77
- } else {
78
- const metavariableString = localMetaContext.nodeAsString(metavariableNode);
79
-
80
- localMetaContext.debug(`There are no meta-lemmas or metatheorems corresponding to the '${metavariableString}' metavariable.`, frameAssertionNode);
81
- }
82
- } else {
83
- const frameString = localMetaContext.nodeAsString(frameNode);
84
-
85
- localMetaContext.debug(`The '${frameString}' is not singular.`, frameAssertionNode);
86
- }
87
- }
88
- } else {
89
- const metavariableString = localMetaContext.nodeAsString(metavariableNode);
90
-
91
- localMetaContext.debug(`There is no frameAssertion present for the '${metavariableString}' metavariable.`, frameAssertionNode);
92
- }
93
- }
94
-
95
- if (derivedFrameAssertionVerified) {
96
- localMetaContext.debug(`...verified the '${frameAssertionString}' derived frame assertion.`, frameAssertionNode);
97
- }
98
- }
99
-
100
- return derivedFrameAssertionVerified;
101
- }
102
-
103
- function verifyStatedFrameAssertion(frameAssertionNode, assignments, derived, localMetaContext) {
104
- let statedFrameAssertionVerified = false;
105
-
106
- if (!derived) {
107
- const frameAssertionString = localMetaContext.nodeAsString(frameAssertionNode);
108
-
109
- localMetaContext.trace(`Verifying the '${frameAssertionString}' stated frame assertion...`, frameAssertionNode);
110
-
111
- const metavariableNode = metavariableNodeQuery(frameAssertionNode),
112
- metavariableVerified = verifyMetavariable(metavariableNode, localMetaContext);
113
-
114
- if (metavariableVerified) {
115
- const frames = [],
116
- frameNode = frameNodeQuery(frameAssertionNode),
117
- frameVerified = verifyFrame(frameNode, frames, assignments, derived, localMetaContext);
118
-
119
- if (frameVerified) {
120
- const firstFrame = first(frames),
121
- frame = firstFrame, ///
122
- frameAssertion = FrameAssertion.fromFrameAssertionNodeFrameAndMetavariableNode(frameAssertionNode, frame, metavariableNode),
123
- frameAssertionAssignment = FrameAssertionAssignment.fromFrameAssertion(frameAssertion),
124
- assignment = frameAssertionAssignment;
125
-
126
- assignments.push(assignment);
127
-
128
- statedFrameAssertionVerified = true;
129
- }
130
- }
131
-
132
- if (statedFrameAssertionVerified) {
133
- localMetaContext.debug(`...verified the '${frameAssertionString}' stated frame assertion.`, frameAssertionNode);
134
- }
135
- }
136
-
137
- return statedFrameAssertionVerified;
138
- }
139
-
140
- function verifyMetavariable(metavariableNode, localMetaContext) {
141
- let metavariableVerified = false;
142
-
143
- const metavariableString = localMetaContext.nodeAsString(metavariableNode);
144
-
145
- localMetaContext.trace(`Verifying the '${metavariableString}' metavariable...`, metavariableNode);
146
-
147
- const metavariable = localMetaContext.findMetavariableByMetavariableNode(metavariableNode, localMetaContext);
148
-
149
- if (metavariable !== null) {
150
- const metaType = metavariable.getMetaType();
151
-
152
- if (metaType === frameMetaType) {
153
- metavariableVerified = true;
154
- } else {
155
- const frameMetaTypeName = frameMetaType.getName(),
156
- metaTypeString = metaType.asString();
157
-
158
- localMetaContext.debug(`The '${metavariableString}' metavariable's meta-type is '${metaTypeString}' when it should be '${frameMetaTypeName}'.`, metavariableNode);
159
- }
160
- } else {
161
- localMetaContext.debug(`The '${metavariableString}' metavariable is not present'.`, metavariableNode);
162
- }
163
-
164
- if (metavariableVerified) {
165
- localMetaContext.debug(`...verified the '${metavariableString}' metavariable.`, metavariableNode);
166
- }
167
-
168
- return metavariableVerified;
169
- }