occam-verify-cli 0.0.921 → 0.0.923

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 (120) hide show
  1. package/lib/axiomLemmaTheoremConjecture.js +3 -4
  2. package/lib/conclusion.js +13 -43
  3. package/lib/constants.js +1 -5
  4. package/lib/context/local.js +386 -0
  5. package/lib/declaration.js +15 -15
  6. package/lib/metaLemmaMetatheorem.js +59 -59
  7. package/lib/mixins/context.js +17 -13
  8. package/lib/mixins/nodesVerifier/metaLevel.js +6 -6
  9. package/lib/premise.js +16 -94
  10. package/lib/{step/proof.js → proofStep.js} +1 -1
  11. package/lib/rule.js +1 -45
  12. package/lib/ruleNames.js +1 -9
  13. package/lib/substitution/statementForMetavariable.js +9 -1
  14. package/lib/substitution.js +1 -8
  15. package/lib/supposition.js +55 -1
  16. package/lib/utilities/customGrammar.js +2 -2
  17. package/lib/utilities/match.js +13 -50
  18. package/lib/utilities/node.js +2 -27
  19. package/lib/utilities/tokens.js +1 -8
  20. package/lib/utilities/verify.js +8 -24
  21. package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +29 -29
  22. package/lib/verifier/nodes/metaLevel.js +13 -13
  23. package/lib/verify/axiom.js +3 -3
  24. package/lib/verify/conclusion.js +10 -11
  25. package/lib/verify/conjecture.js +3 -3
  26. package/lib/verify/declaration.js +6 -6
  27. package/lib/verify/lemma.js +3 -3
  28. package/lib/verify/metaLemma.js +13 -13
  29. package/lib/verify/metastatement.js +64 -64
  30. package/lib/verify/metatheorem.js +13 -13
  31. package/lib/verify/premise.js +11 -30
  32. package/lib/verify/proof.js +3 -4
  33. package/lib/verify/proofStep.js +5 -5
  34. package/lib/verify/rule.js +11 -11
  35. package/lib/verify/statement/qualified.js +35 -9
  36. package/lib/verify/statement/unqualified.js +1 -1
  37. package/lib/verify/subproof.js +3 -4
  38. package/lib/verify/supposition.js +3 -3
  39. package/lib/verify/termAsConstructor.js +3 -3
  40. package/lib/verify/theorem.js +3 -3
  41. package/package.json +4 -4
  42. package/src/axiomLemmaTheoremConjecture.js +2 -4
  43. package/src/conclusion.js +15 -54
  44. package/src/constants.js +0 -1
  45. package/src/context/{local/intrinsicLevel.js → local.js} +182 -97
  46. package/src/declaration.js +19 -19
  47. package/src/metaLemmaMetatheorem.js +58 -58
  48. package/src/mixins/context.js +12 -9
  49. package/src/mixins/nodesVerifier/metaLevel.js +8 -8
  50. package/src/premise.js +25 -143
  51. package/src/rule.js +0 -67
  52. package/src/ruleNames.js +0 -2
  53. package/src/substitution/statementForMetavariable.js +14 -0
  54. package/src/substitution.js +0 -6
  55. package/src/supposition.js +46 -0
  56. package/src/utilities/customGrammar.js +1 -2
  57. package/src/utilities/match.js +13 -60
  58. package/src/utilities/node.js +3 -32
  59. package/src/utilities/tokens.js +0 -8
  60. package/src/utilities/verify.js +4 -20
  61. package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +36 -37
  62. package/src/verifier/nodes/metaLevel.js +17 -17
  63. package/src/verify/axiom.js +3 -4
  64. package/src/verify/conclusion.js +9 -13
  65. package/src/verify/conjecture.js +3 -4
  66. package/src/verify/declaration.js +7 -7
  67. package/src/verify/lemma.js +3 -4
  68. package/src/verify/metaLemma.js +24 -25
  69. package/src/verify/metastatement.js +64 -64
  70. package/src/verify/metatheorem.js +23 -24
  71. package/src/verify/premise.js +14 -46
  72. package/src/verify/proof.js +2 -4
  73. package/src/verify/proofStep.js +1 -1
  74. package/src/verify/rule.js +11 -12
  75. package/src/verify/statement/qualified.js +43 -9
  76. package/src/verify/statement/unqualified.js +1 -1
  77. package/src/verify/subproof.js +2 -4
  78. package/src/verify/supposition.js +1 -1
  79. package/src/verify/termAsConstructor.js +3 -4
  80. package/src/verify/theorem.js +3 -4
  81. package/lib/context/local/intrinsicLevel.js +0 -326
  82. package/lib/context/local/metaLevel.js +0 -282
  83. package/lib/metaConsequent.js +0 -108
  84. package/lib/metaSupposition.js +0 -160
  85. package/lib/node/metastatement/bracketed.js +0 -16
  86. package/lib/step/metaproof.js +0 -106
  87. package/lib/substitution/metastatementForMetavariable.js +0 -173
  88. package/lib/verify/metaConsequent.js +0 -50
  89. package/lib/verify/metaDerivation.js +0 -31
  90. package/lib/verify/metaSubDerivation.js +0 -25
  91. package/lib/verify/metaSubproof.js +0 -35
  92. package/lib/verify/metaSupposition.js +0 -61
  93. package/lib/verify/metaSuppositions.js +0 -28
  94. package/lib/verify/metaproof.js +0 -32
  95. package/lib/verify/metaproofStep.js +0 -98
  96. package/lib/verify/metastatement/qualified.js +0 -95
  97. package/lib/verify/metastatement/unqualified.js +0 -37
  98. package/lib/verify/metastatementAsContainedAssertion.js +0 -109
  99. package/lib/verify/metastatementAsDefinedAssertion.js +0 -132
  100. package/lib/verify/metavariableAgainstMetastatement.js +0 -44
  101. package/src/context/local/metaLevel.js +0 -191
  102. package/src/metaConsequent.js +0 -83
  103. package/src/metaSupposition.js +0 -127
  104. package/src/node/metastatement/bracketed.js +0 -9
  105. package/src/step/metaproof.js +0 -73
  106. package/src/substitution/metastatementForMetavariable.js +0 -90
  107. package/src/verify/metaConsequent.js +0 -61
  108. package/src/verify/metaDerivation.js +0 -23
  109. package/src/verify/metaSubDerivation.js +0 -22
  110. package/src/verify/metaSubproof.js +0 -34
  111. package/src/verify/metaSupposition.js +0 -78
  112. package/src/verify/metaSuppositions.js +0 -17
  113. package/src/verify/metaproof.js +0 -30
  114. package/src/verify/metaproofStep.js +0 -137
  115. package/src/verify/metastatement/qualified.js +0 -130
  116. package/src/verify/metastatement/unqualified.js +0 -34
  117. package/src/verify/metastatementAsContainedAssertion.js +0 -127
  118. package/src/verify/metastatementAsDefinedAssertion.js +0 -156
  119. package/src/verify/metavariableAgainstMetastatement.js +0 -42
  120. /package/src/{step/proof.js → proofStep.js} +0 -0
@@ -1,156 +0,0 @@
1
- "use strict";
2
-
3
- import verifyTerm from "./term";
4
- import metaLevelNodeVerifier from "../verifier/node/metaLevel";
5
-
6
- import { first } from "../utilities/array";
7
- import { DEFINED } from "../constants";
8
- import { nodeQuery, nodesQuery } from "../utilities/query";
9
- import { isMetastatementNegated } from "../utilities/verify";
10
-
11
- const termNodeQuery = nodeQuery("/metastatement/term!"),
12
- variableNodeQuery = nodeQuery("/metastatement/term/variable!"),
13
- operatorTerminalNodesQuery = nodesQuery("/metastatement/@operator");
14
-
15
- export default function verifyMetastatementAsDefinedAssertion(metastatementNode, assignments, derived, localContext) {
16
- let metastatementVerifiedAsDefinedAssertion = false;
17
-
18
- const metastatementDefinedAssertion = isMetastatementDefinedAssertion(metastatementNode);
19
-
20
- if (metastatementDefinedAssertion) {
21
- const metastatementString = localContext.nodeAsString(metastatementNode);
22
-
23
- localContext.trace(`Verifying the '${metastatementString}' metastatement as a defined assertion...`, metastatementNode);
24
-
25
- const definedAssertionFunctions = [
26
- verifyDerivedMetastatementAsDefinedAssertion,
27
- verifyStatedMetastatementAsDefinedAssertion
28
- ];
29
-
30
- metastatementVerifiedAsDefinedAssertion = definedAssertionFunctions.some((definedAssertionFunction) => {
31
- const metastatementVerifiedAsDefinedAssertion = definedAssertionFunction(metastatementNode, assignments, derived, localContext);
32
-
33
- if (metastatementVerifiedAsDefinedAssertion) {
34
- return true;
35
- }
36
- });
37
-
38
- if (metastatementVerifiedAsDefinedAssertion) {
39
- localContext.debug(`...verified the '${metastatementString}' metastatement as a defined assertion.`, metastatementNode);
40
- }
41
- }
42
-
43
- return metastatementVerifiedAsDefinedAssertion;
44
- }
45
-
46
- function verifyDerivedMetastatementAsDefinedAssertion(metastatementNode, assignments, derived, localContext) {
47
- let derivedMetastatementVerifiedAsDefeindAssertion = false;
48
-
49
- if (derived) {
50
- const metastatementString = localContext.nodeAsString(metastatementNode);
51
-
52
- localContext.trace(`Verifying the derived '${metastatementString}' metastatement as a defined assertion...`, metastatementNode);
53
-
54
- const metastatementNegated = isMetastatementNegated(metastatementNode),
55
- variableNode = variableNodeQuery(metastatementNode),
56
- termNode = termNodeQuery(metastatementNode);
57
-
58
- if (false) {
59
- ///
60
- } else if (variableNode !== null) {
61
- const variable = localContext.findVariableByVariableNode(variableNode);
62
-
63
- if (variable !== null) {
64
- const variableDefined = localContext.isVariableDefined(variable);
65
-
66
- if (!metastatementNegated) {
67
- if (variableDefined) {
68
- derivedMetastatementVerifiedAsDefeindAssertion = true;
69
- }
70
- }
71
-
72
- if (metastatementNegated) {
73
- if (!variableDefined) {
74
- derivedMetastatementVerifiedAsDefeindAssertion = true;
75
- }
76
- }
77
- }
78
- } else if (termNode !== null) {
79
- const terms = [],
80
- termVerified = verifyTerm(termNode, terms, localContext, () => {
81
- const verifiedAhead = true;
82
-
83
- return verifiedAhead;
84
- });
85
-
86
- if (termVerified) {
87
- const firstTerm = first(terms),
88
- term = firstTerm, ///
89
- termGrounded = localContext.isTermGrounded(term);
90
-
91
- if (!metastatementNegated) {
92
- if (termGrounded) {
93
- derivedMetastatementVerifiedAsDefeindAssertion = true;
94
- }
95
- }
96
-
97
- if (metastatementNegated) {
98
- if (!termGrounded) {
99
- derivedMetastatementVerifiedAsDefeindAssertion = true;
100
- }
101
- }
102
- }
103
- }
104
-
105
- if (derivedMetastatementVerifiedAsDefeindAssertion) {
106
- localContext.debug(`...verified the derived '${metastatementString}' metastatement as a defined assertion.`, metastatementNode);
107
- }
108
- }
109
-
110
- return derivedMetastatementVerifiedAsDefeindAssertion;
111
- }
112
-
113
- function verifyStatedMetastatementAsDefinedAssertion(metastatementNode, assignments, derived, localContext) {
114
- let statedMetastatementVerifiedAsDefinedAssertion = false;
115
-
116
- if (!derived) {
117
- const metastatementString = localContext.nodeAsString(metastatementNode);
118
-
119
- localContext.trace(`Verifying the stated '${metastatementString}' metastatement as a defined assertion...`, metastatementNode);
120
-
121
- const intrinsicLevel = localContext.isIntrinsicLevel();
122
-
123
- if (intrinsicLevel) {
124
- localContext.debug(`The stated '${metastatementString}' metastatement as a defined assertion cannot be verified at intrinsic level.`, metastatementNode);
125
- } else {
126
- const nonTerminalNode = metastatementNode, ///
127
- nonTerminalNodeVerified = metaLevelNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localContext, () => {
128
- const verifiedAhead = true;
129
-
130
- return verifiedAhead;
131
- });
132
-
133
- statedMetastatementVerifiedAsDefinedAssertion = nonTerminalNodeVerified; ///
134
- }
135
-
136
- if (statedMetastatementVerifiedAsDefinedAssertion) {
137
- localContext.debug(`...verified the stated '${metastatementString}' metastatement as a defined assertion.`, metastatementNode);
138
- }
139
- }
140
-
141
- return statedMetastatementVerifiedAsDefinedAssertion;
142
- }
143
-
144
- export function isMetastatementDefinedAssertion(metastatementNode) {
145
- const operatorTerminalNodes = operatorTerminalNodesQuery(metastatementNode),
146
- metastatementDefinedAssertion = operatorTerminalNodes.some((operatorTerminalNode) => {
147
- const content = operatorTerminalNode.getContent(),
148
- contentDefined = (content === DEFINED);
149
-
150
- if (contentDefined) {
151
- return true;
152
- }
153
- });
154
-
155
- return metastatementDefinedAssertion;
156
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
-
3
- import MetastatementForMetavariableSubstitution from "../substitution/metastatementForMetavariable";
4
-
5
- export default function verifyMetavariableAgainstMetastatement(metavariableNode, metastatementNode, substitutions, verifyAhead) {
6
- let metavariableVerifiedAgainstMetastatement = false;
7
-
8
- const substitution = substitutions.find((substitution) => {
9
- const substitutionMatchesMetavariableNodeA = substitution.matchMetavariableNode(metavariableNode);
10
-
11
- if (substitutionMatchesMetavariableNodeA) {
12
- return true;
13
- }
14
- }) || null;
15
-
16
- if (substitution !== null) {
17
- const metastatementNodeMatches = substitution.matchMetastatementNode(metastatementNode);
18
-
19
- if (metastatementNodeMatches) {
20
- const verifiedAhead = verifyAhead();
21
-
22
- metavariableVerifiedAgainstMetastatement = verifiedAhead; ///
23
- }
24
- } else {
25
- let verifiedAhead;
26
-
27
- const metastatementForMetavariableSubstitution = MetastatementForMetavariableSubstitution.fromMetavariableNodeAndMetastatementNode(metavariableNode, metastatementNode),
28
- substitution = metastatementForMetavariableSubstitution; ///
29
-
30
- substitutions.push(substitution);
31
-
32
- verifiedAhead = verifyAhead();
33
-
34
- if (!verifiedAhead) {
35
- substitutions.pop();
36
- }
37
-
38
- metavariableVerifiedAgainstMetastatement = verifiedAhead; ///
39
- }
40
-
41
- return metavariableVerifiedAgainstMetastatement;
42
- }
File without changes