occam-verify-cli 0.0.922 → 0.0.924

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 (150) hide show
  1. package/lib/axiom.js +9 -9
  2. package/lib/conclusion.js +11 -41
  3. package/lib/conjecture.js +9 -9
  4. package/lib/constants.js +1 -13
  5. package/lib/context/file.js +3 -3
  6. package/lib/context/local.js +19 -59
  7. package/lib/declaration.js +15 -15
  8. package/lib/lemma.js +9 -9
  9. package/lib/metaLemma.js +7 -7
  10. package/lib/metatheorem.js +7 -7
  11. package/lib/metavariable.js +8 -1
  12. package/lib/mixins/nodesVerifier/metaLevel.js +6 -6
  13. package/lib/premise.js +14 -91
  14. package/lib/{step/proof.js → proofStep.js} +1 -1
  15. package/lib/rule.js +1 -45
  16. package/lib/ruleNames.js +1 -9
  17. package/lib/substitution/statementForMetavariable.js +9 -1
  18. package/lib/substitution.js +1 -8
  19. package/lib/supposition.js +55 -1
  20. package/lib/theorem.js +9 -9
  21. package/lib/topLevelAssertion.js +186 -0
  22. package/lib/utilities/customGrammar.js +2 -2
  23. package/lib/utilities/match.js +13 -50
  24. package/lib/utilities/node.js +2 -27
  25. package/lib/utilities/tokens.js +1 -8
  26. package/lib/utilities/verify.js +8 -24
  27. package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +29 -29
  28. package/lib/verifier/nodes/metaLevel.js +13 -13
  29. package/lib/verify/axiom.js +4 -4
  30. package/lib/verify/conclusion.js +10 -11
  31. package/lib/verify/conjecture.js +4 -4
  32. package/lib/verify/containedAssertion.js +91 -0
  33. package/lib/verify/declaration.js +7 -7
  34. package/lib/verify/definedAssertion.js +115 -0
  35. package/lib/verify/derivation.js +7 -7
  36. package/lib/verify/frame.js +2 -2
  37. package/lib/verify/judgement.js +2 -2
  38. package/lib/verify/lemma.js +5 -5
  39. package/lib/verify/metaLemma.js +12 -12
  40. package/lib/verify/metastatement.js +48 -67
  41. package/lib/verify/metatheorem.js +12 -12
  42. package/lib/verify/metavariable.js +2 -2
  43. package/lib/verify/premise.js +11 -30
  44. package/lib/verify/proof.js +3 -3
  45. package/lib/verify/proofStep.js +8 -8
  46. package/lib/verify/rule.js +10 -10
  47. package/lib/verify/statement/qualified.js +38 -15
  48. package/lib/verify/statement/unqualified.js +38 -10
  49. package/lib/verify/statement.js +85 -92
  50. package/lib/verify/subDerivation.js +3 -3
  51. package/lib/verify/subproof.js +3 -3
  52. package/lib/verify/supposition.js +3 -3
  53. package/lib/verify/termAsConstructor.js +2 -2
  54. package/lib/verify/theorem.js +4 -4
  55. package/package.json +2 -2
  56. package/src/axiom.js +4 -4
  57. package/src/conclusion.js +13 -52
  58. package/src/conjecture.js +4 -4
  59. package/src/constants.js +0 -3
  60. package/src/context/file.js +2 -2
  61. package/src/context/local.js +21 -67
  62. package/src/declaration.js +19 -19
  63. package/src/lemma.js +4 -4
  64. package/src/metaLemma.js +4 -4
  65. package/src/metatheorem.js +4 -4
  66. package/src/metavariable.js +6 -0
  67. package/src/mixins/nodesVerifier/metaLevel.js +8 -8
  68. package/src/premise.js +20 -137
  69. package/src/rule.js +0 -67
  70. package/src/ruleNames.js +0 -2
  71. package/src/substitution/statementForMetavariable.js +14 -0
  72. package/src/substitution.js +0 -6
  73. package/src/supposition.js +46 -0
  74. package/src/theorem.js +4 -4
  75. package/src/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +36 -23
  76. package/src/utilities/customGrammar.js +1 -2
  77. package/src/utilities/match.js +13 -60
  78. package/src/utilities/node.js +3 -32
  79. package/src/utilities/tokens.js +0 -8
  80. package/src/utilities/verify.js +4 -20
  81. package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +36 -37
  82. package/src/verifier/nodes/metaLevel.js +17 -17
  83. package/src/verify/axiom.js +5 -4
  84. package/src/verify/conclusion.js +9 -13
  85. package/src/verify/conjecture.js +5 -4
  86. package/src/verify/{statementAsContainedAssertion.js → containedAssertion.js} +20 -36
  87. package/src/verify/declaration.js +8 -8
  88. package/src/verify/{statementAsDefinedAssertion.js → definedAssertion.js} +22 -37
  89. package/src/verify/derivation.js +6 -6
  90. package/src/verify/frame.js +1 -1
  91. package/src/verify/judgement.js +1 -1
  92. package/src/verify/lemma.js +8 -5
  93. package/src/verify/metaLemma.js +24 -24
  94. package/src/verify/metastatement.js +48 -76
  95. package/src/verify/metatheorem.js +23 -23
  96. package/src/verify/metavariable.js +1 -1
  97. package/src/verify/premise.js +14 -46
  98. package/src/verify/proof.js +2 -2
  99. package/src/verify/proofStep.js +4 -4
  100. package/src/verify/rule.js +11 -11
  101. package/src/verify/statement/qualified.js +56 -21
  102. package/src/verify/statement/unqualified.js +52 -10
  103. package/src/verify/statement.js +133 -39
  104. package/src/verify/subDerivation.js +2 -2
  105. package/src/verify/subproof.js +2 -2
  106. package/src/verify/supposition.js +1 -1
  107. package/src/verify/termAsConstructor.js +2 -2
  108. package/src/verify/theorem.js +7 -4
  109. package/lib/axiomLemmaTheoremConjecture.js +0 -174
  110. package/lib/metaConsequent.js +0 -108
  111. package/lib/metaLemmaMetatheorem.js +0 -191
  112. package/lib/metaSupposition.js +0 -160
  113. package/lib/node/metastatement/bracketed.js +0 -16
  114. package/lib/step/metaproof.js +0 -106
  115. package/lib/substitution/metastatementForMetavariable.js +0 -173
  116. package/lib/verify/metaConsequent.js +0 -50
  117. package/lib/verify/metaDerivation.js +0 -31
  118. package/lib/verify/metaSubDerivation.js +0 -25
  119. package/lib/verify/metaSubproof.js +0 -34
  120. package/lib/verify/metaSupposition.js +0 -61
  121. package/lib/verify/metaSuppositions.js +0 -28
  122. package/lib/verify/metaproof.js +0 -31
  123. package/lib/verify/metaproofStep.js +0 -98
  124. package/lib/verify/metastatement/qualified.js +0 -95
  125. package/lib/verify/metastatement/unqualified.js +0 -37
  126. package/lib/verify/metastatementAsContainedAssertion.js +0 -109
  127. package/lib/verify/metastatementAsDefinedAssertion.js +0 -132
  128. package/lib/verify/metavariableAgainstMetastatement.js +0 -44
  129. package/lib/verify/statementAsContainedAssertion.js +0 -109
  130. package/lib/verify/statementAsDefinedAssertion.js +0 -132
  131. package/src/metaConsequent.js +0 -83
  132. package/src/metaLemmaMetatheorem.js +0 -188
  133. package/src/metaSupposition.js +0 -127
  134. package/src/node/metastatement/bracketed.js +0 -9
  135. package/src/step/metaproof.js +0 -73
  136. package/src/substitution/metastatementForMetavariable.js +0 -90
  137. package/src/verify/metaConsequent.js +0 -61
  138. package/src/verify/metaDerivation.js +0 -23
  139. package/src/verify/metaSubDerivation.js +0 -22
  140. package/src/verify/metaSubproof.js +0 -32
  141. package/src/verify/metaSupposition.js +0 -78
  142. package/src/verify/metaSuppositions.js +0 -17
  143. package/src/verify/metaproof.js +0 -28
  144. package/src/verify/metaproofStep.js +0 -137
  145. package/src/verify/metastatement/qualified.js +0 -130
  146. package/src/verify/metastatement/unqualified.js +0 -34
  147. package/src/verify/metastatementAsContainedAssertion.js +0 -127
  148. package/src/verify/metastatementAsDefinedAssertion.js +0 -156
  149. package/src/verify/metavariableAgainstMetastatement.js +0 -42
  150. /package/src/{step/proof.js → proofStep.js} +0 -0
@@ -1,137 +0,0 @@
1
- "use strict";
2
-
3
- import MetaproofStep from "../step/metaproof";
4
- import verifyMetaSubproof from "../verify/metaSubproof";
5
- import verifyMetaSubDerivation from "../verify/metaSubDerivation";
6
- import verifyQualifiedStatement from "../verify/statement/qualified";
7
- import verifyUnqualifiedStatement from "../verify/statement/unqualified";
8
- import verifyQualifiedMetastatement from "../verify/metastatement/qualified";
9
- import verifyUnqualifiedMetastatement from "../verify/metastatement/unqualified";
10
-
11
- import { nodeQuery } from "../utilities/query";
12
- import { assignAssignment } from "../utilities/assignments";
13
-
14
- const metaSubproofNodeQuery = nodeQuery("/metaproofStep|lastMetaproofStep/metaSubproof!"),
15
- metastatementNodeQuery = nodeQuery("/qualifiedMetastatement|unqualifiedMetastatement/metastatement!"),
16
- qualifiedStatementNodeQuery = nodeQuery("/metaproofStep|lastMetaproofStep/qualifiedStatement!"),
17
- unqualifiedStatementNodeQuery = nodeQuery("/metaproofStep|lastMetaproofStep/unqualifiedStatement!"),
18
- qualifiedMetastatementNodeQuery = nodeQuery("/metaproofStep|lastMetaproofStep/qualifiedMetastatement!"),
19
- unqualifiedMetastatementNodeQuery = nodeQuery("/metaproofStep|lastMetaproofStep/unqualifiedMetastatement!");
20
-
21
- export default function verifyMetaproofStep(metaproofStepNode, substitutions, localContext) {
22
- let metaproofStepVerified = false;
23
-
24
- const metaSubproofNode = metaSubproofNodeQuery(metaproofStepNode),
25
- qualifiedStatementNode = qualifiedStatementNodeQuery(metaproofStepNode),
26
- unqualifiedStatementNode = unqualifiedStatementNodeQuery(metaproofStepNode),
27
- qualifiedMetastatementNode = qualifiedMetastatementNodeQuery(metaproofStepNode),
28
- unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(metaproofStepNode);
29
-
30
- if (false) {
31
- ///
32
- } else if (metaSubproofNode !== null) {
33
- let metaSubproofVerified;
34
-
35
- metaSubproofVerified = verifyMetaSubproof(metaSubproofNode, substitutions, localContext);
36
-
37
- if (metaSubproofVerified) {
38
- const metaproofStep = MetaproofStep.fromMetaSubproofNode(metaSubproofNode);
39
-
40
- localContext.addMetaproofStep(metaproofStep);
41
-
42
- metaproofStepVerified = true;
43
- }
44
- } else if (qualifiedStatementNode !== null) {
45
- let qualifiedStatementVerified;
46
-
47
- const assignments = []; ///
48
-
49
- qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, assignments, localContext);
50
-
51
- if (qualifiedStatementVerified) {
52
- const assignmentAssigned = assignAssignment(assignments, localContext);
53
-
54
- qualifiedStatementVerified = assignmentAssigned; ///
55
- }
56
-
57
- if (qualifiedStatementVerified) {
58
- const statementNode = statementNodeQuery(qualifiedStatementNode),
59
- metaproofStep = MetaproofStep.fromStatementNode(statementNode);
60
-
61
- localContext.addMetaproofStep(metaproofStep);
62
-
63
- metaproofStepVerified = true;
64
- }
65
- } else if (unqualifiedStatementNode !== null) {
66
- let unqualifiedStatementVerified;
67
-
68
- const derived = true,
69
- assignments = [];
70
-
71
- unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
72
-
73
- if (unqualifiedStatementVerified) {
74
- const assignmentAssigned = assignAssignment(assignments, localContext);
75
-
76
- unqualifiedStatementVerified = assignmentAssigned; ///
77
- }
78
-
79
- if (unqualifiedStatementVerified) {
80
- const statementNode = statementNodeQuery(unqualifiedStatementNode),
81
- metaproofStep = MetaproofStep.fromStatementNode(statementNode);
82
-
83
- localContext.addMetaproofStep(metaproofStep);
84
-
85
- metaproofStepVerified = unqualifiedStatementVerified; ///
86
- }
87
- } else if (qualifiedMetastatementNode !== null) {
88
- let qualifiedMetastatementVerified;
89
-
90
- const assignments = [];
91
-
92
- qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments, localContext);
93
-
94
- if (qualifiedMetastatementVerified) {
95
- const assignmentAssigned = assignAssignment(assignments, localContext);
96
-
97
- qualifiedMetastatementVerified = assignmentAssigned; ///
98
- }
99
-
100
- if (qualifiedMetastatementVerified) {
101
- const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
102
- metaproofStep = MetaproofStep.fromMetastatementNode(metastatementNode);
103
-
104
- localContext.addMetaproofStep(metaproofStep);
105
-
106
- metaproofStepVerified = qualifiedMetastatementVerified; ///
107
- }
108
- } else if (unqualifiedMetastatementNode !== null) {
109
- let unqualifiedMetastatementVerified;
110
-
111
- const derived = true,
112
- assignments = [];
113
-
114
- unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext);
115
-
116
- if (unqualifiedMetastatementVerified) {
117
- const assignmentAssigned = assignAssignment(assignments, localContext);
118
-
119
- unqualifiedMetastatementVerified = assignmentAssigned; ///
120
- }
121
-
122
- if (unqualifiedMetastatementVerified) {
123
- const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
124
- metaproofStep = MetaproofStep.fromMetastatementNode(metastatementNode);
125
-
126
- localContext.addMetaproofStep(metaproofStep);
127
-
128
- metaproofStepVerified = true;
129
- }
130
- }
131
-
132
- return metaproofStepVerified;
133
- }
134
-
135
- Object.assign(verifyMetaSubDerivation, {
136
- verifyMetaproofStep
137
- });
@@ -1,130 +0,0 @@
1
- "use strict";
2
-
3
- import verifyMetavariableAgainstMetastatement from "../../verify/metavariableAgainstMetastatement";
4
-
5
- import { nodeQuery } from "../../utilities/query";
6
-
7
- const metavariableNodeQuery = nodeQuery("/qualifiedMetastatement/reference!/metavariable!"),
8
- metastatementNodeQuery = nodeQuery("/qualifiedMetastatement/metastatement!");
9
-
10
- export default function verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments, localContext) {
11
- let qualifiedMetastatementVerified;
12
-
13
- const qualifiedMetastatementString = localContext.nodeAsString(qualifiedMetastatementNode);
14
-
15
- localContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement...`, qualifiedMetastatementNode);
16
-
17
- const metavariableNode = metavariableNodeQuery(qualifiedMetastatementNode),
18
- verifyQualifiedMetastatementFunctions = [
19
- verifyQualifiedMetastatementAAgainstRule,
20
- verifyQualifiedMetastatementAAgainstReference
21
- ];
22
-
23
- qualifiedMetastatementVerified = verifyQualifiedMetastatementFunctions.some((verifyQualifiedMetastatementFunction) => { ///
24
- const qualifiedMetastatementVerified = verifyQualifiedMetastatementFunction(qualifiedMetastatementNode, metavariableNode, substitutions, localContext);
25
-
26
- if (qualifiedMetastatementVerified) {
27
- return true;
28
- }
29
- });
30
-
31
- if (qualifiedMetastatementVerified) {
32
- const derived = false,
33
- metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
34
- metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived, localContext, () => {
35
- const verifiedAhead = true;
36
-
37
- return verifiedAhead;
38
- });
39
-
40
- qualifiedMetastatementVerified = metastatementVerified; ///
41
- }
42
-
43
- if (qualifiedMetastatementVerified) {
44
- localContext.debug(`...verified the '${qualifiedMetastatementString}' qualified metastatement.`, qualifiedMetastatementNode);
45
- }
46
-
47
- return qualifiedMetastatementVerified;
48
- }
49
-
50
- function verifyQualifiedMetastatementAAgainstRule(qualifiedMetastatementNode, metavariableNode, substitutions, localContext) {
51
- let qualifiedMetastatementVerifiedAgainstRule = false;
52
-
53
- const rule = localContext.findRuleByMetavariableNode(metavariableNode);
54
-
55
- if (rule !== null) {
56
- const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
57
- metavariableString = localContext.nodeAsString(metavariableNode),
58
- qualifiedMetastatementString = localContext.nodeAsString(qualifiedMetastatementNode);
59
-
60
- localContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' rule...`, qualifiedMetastatementNode);
61
-
62
- const ruleMatchesMetastatement = rule.matchMetastatement(metastatementNode, localContext);
63
-
64
- qualifiedMetastatementVerifiedAgainstRule = ruleMatchesMetastatement; ///
65
-
66
- if (qualifiedMetastatementVerifiedAgainstRule) {
67
- localContext.debug(`...verified the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' rule.`, qualifiedMetastatementNode);
68
- }
69
- }
70
-
71
- return qualifiedMetastatementVerifiedAgainstRule;
72
- }
73
-
74
- function verifyQualifiedMetastatementAAgainstReference(qualifiedMetastatementNode, metavariableNode, substitutions, localContext) {
75
- let qualifiedMetastatementVerifiedAgainstReference = false;
76
-
77
- if (substitutions !== null) {
78
- const metavariableString = localContext.nodeAsString(metavariableNode),
79
- metavariablePresent = localContext.isMetavariablePresentByMetavariableNode(metavariableNode, localContext),
80
- qualifiedMetastatementString = localContext.nodeAsString(qualifiedMetastatementNode);
81
-
82
- localContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' reference...`, qualifiedMetastatementNode);
83
-
84
- if (metavariablePresent) {
85
- const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
86
- metavariableVerifiedAgainstMetastatement = verifyMetavariableAgainstMetastatement(metavariableNode, metastatementNode, substitutions, () => {
87
- const verifiedAhead = true;
88
-
89
- return verifiedAhead;
90
- });
91
-
92
- qualifiedMetastatementVerifiedAgainstReference = metavariableVerifiedAgainstMetastatement; ///
93
- }
94
-
95
- if (qualifiedMetastatementVerifiedAgainstReference) {
96
- localContext.debug(`...verified the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' reference.`, qualifiedMetastatementNode);
97
- }
98
- }
99
-
100
- return qualifiedMetastatementVerifiedAgainstReference;
101
- }
102
-
103
- function verifyMetastatement(metastatementNode, assignments, derived, localContext) {
104
- let metastatementVerified;
105
-
106
- const metastatementString = localContext.nodeAsString(metastatementNode);
107
-
108
- localContext.trace(`Verifying the '${metastatementString}' metastatement...`, metastatementNode);
109
-
110
- const verifyMetaStatementFunctions = [
111
- ///
112
- ];
113
-
114
- verifyMetaStatementFunctions.some((verifyStatementFunction) => {
115
- const metastatementVerified = verifyStatementFunction(metastatementNode, assignments, derived, localContext);
116
-
117
- if (metastatementVerified) {
118
- return true;
119
- }
120
- });
121
-
122
- metastatementVerified = true; ///
123
-
124
- if (metastatementVerified) {
125
- localContext.debug(`...verified the '${metastatementString}' metastatement.`, metastatementNode);
126
- }
127
-
128
- return metastatementVerified;
129
- }
130
-
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- import verifyMetastatement from "../../verify/metastatement";
4
-
5
- import { nodeQuery } from "../../utilities/query";
6
-
7
- const metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!");
8
-
9
- export default function verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext) {
10
- let unqualifiedMetastatementVerified = false;
11
-
12
- const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
13
- unqualifiedMetastatementString = localContext.nodeAsString(unqualifiedMetastatementNode);
14
-
15
- localContext.trace(`Verifying the '${unqualifiedMetastatementString}' unqualified metastatement...`, unqualifiedMetastatementNode);
16
-
17
- if (derived) {
18
- const matchesMetastatementNode = localContext.matchMetastatementNode(metastatementNode);
19
-
20
- unqualifiedMetastatementVerified = matchesMetastatementNode; ///
21
- }
22
-
23
- if (!unqualifiedMetastatementVerified) {
24
- const metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived, localContext);
25
-
26
- unqualifiedMetastatementVerified = metastatementVerified; ///
27
- }
28
-
29
- if (unqualifiedMetastatementVerified) {
30
- localContext.debug(`...verified the '${unqualifiedMetastatementString}' unqualified metastatement.`, unqualifiedMetastatementNode);
31
- }
32
-
33
- return unqualifiedMetastatementVerified;
34
- }
@@ -1,127 +0,0 @@
1
- "use strict";
2
-
3
- import metaLevelNodeVerifier from "../verifier/node/metaLevel";
4
-
5
- import { CONTAINED } from "../constants";
6
- import { nodeQuery, nodesQuery } from "../utilities/query";
7
- import { isMetastatementNegated } from "../utilities/verify";
8
-
9
- const termNodeQuery = nodeQuery("/metastatement/term!"),
10
- operatorTerminalNodesQuery = nodesQuery("/metastatement/@operator"),
11
- metastatementTermNodesQuery = nodesQuery("/metastatement/metastatement//term");
12
-
13
- export default function verifyMetastatementAsContainedAssertion(metastatementNode, assignments, derived, localContext) {
14
- let metastatementVerifiedAsContainedAssertion;
15
-
16
- const metastatementContainedAssertion = isMetastatementContainedAssertion(metastatementNode);
17
-
18
- if (metastatementContainedAssertion) {
19
- const metastatementString = localContext.nodeAsString(metastatementNode);
20
-
21
- localContext.trace(`Verifying the '${metastatementString}' metastatement as a contained assertion...`, metastatementNode);
22
-
23
- const metastatementFunctions = [
24
- verifyMetastatementAsDerivedContainedAssertion,
25
- verifyMetastatementAsStatedContainedAssertion
26
- ];
27
-
28
- metastatementVerifiedAsContainedAssertion = metastatementFunctions.some((metastatementFunction) => {
29
- const metastatementVerifiedAsContainedAssertion = metastatementFunction(metastatementNode, assignments, derived, localContext);
30
-
31
- if (metastatementVerifiedAsContainedAssertion) {
32
- return true;
33
- }
34
- });
35
-
36
- if (metastatementVerifiedAsContainedAssertion) {
37
- localContext.debug(`...verified the '${metastatementString}' metastatement as a contained assertion.`, metastatementNode);
38
- }
39
- }
40
-
41
- return metastatementVerifiedAsContainedAssertion;
42
- }
43
-
44
- function verifyMetastatementAsDerivedContainedAssertion(metastatementNode, assignments, derived, localContext) {
45
- let metastatementVerifiedAsDefinedContainedAssertion = false;
46
-
47
- if (derived) {
48
- const metastatementString = localContext.nodeAsString(metastatementNode);
49
-
50
- localContext.trace(`Verifying the derived '${metastatementString}' metastatement as a contained assertion...`, metastatementNode);
51
-
52
- const metastatementNegated = isMetastatementNegated(metastatementNode),
53
- negated = metastatementNegated,
54
- termNode = termNodeQuery(metastatementNode),
55
- metastatementTermNodes = metastatementTermNodesQuery(metastatementNode),
56
- termNodeMatchesMetaArgumentTermNode = metastatementTermNodes.some((metastatementTermNode) => {
57
- const termNodeMatchesMetaArgumentTermNode = termNode.match(metastatementTermNode);
58
-
59
- if (termNodeMatchesMetaArgumentTermNode) {
60
- return true;
61
- }
62
- });
63
-
64
- if (!negated) {
65
- if (termNodeMatchesMetaArgumentTermNode) {
66
- metastatementVerifiedAsDefinedContainedAssertion = true;
67
- }
68
- }
69
-
70
- if (negated) {
71
- if (!termNodeMatchesMetaArgumentTermNode) {
72
- metastatementVerifiedAsDefinedContainedAssertion = true;
73
- }
74
- }
75
-
76
- if (metastatementVerifiedAsDefinedContainedAssertion) {
77
- localContext.debug(`...verified the derived '${metastatementString}' metastatement as a contained assertion.`, metastatementNode);
78
- }
79
- }
80
-
81
- return metastatementVerifiedAsDefinedContainedAssertion;
82
- }
83
-
84
- function verifyMetastatementAsStatedContainedAssertion(metastatementNode, assignments, derived, localContext) {
85
- let metastatementVerifiedAsStatedContainedAssertion = false;
86
-
87
- if (!derived) {
88
- const metastatementString = localContext.nodeAsString(metastatementNode);
89
-
90
- localContext.trace(`Verifying the stated '${metastatementString}' metastatement as a contained assertion...`, metastatementNode);
91
-
92
- const intrinsicLevel = localContext.isIntrinsicLevel();
93
-
94
- if (intrinsicLevel) {
95
- localContext.debug(`The stated '${metastatementString}' metastatement as a contained assertion cannot be verified at intrinsic level.`, metastatementNode);
96
- } else {
97
- const nonTerminalNode = metastatementNode, ///
98
- nonTerminalNodeVerified = metaLevelNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localContext, () => {
99
- const verifiedAhead = true;
100
-
101
- return verifiedAhead;
102
- });
103
-
104
- metastatementVerifiedAsStatedContainedAssertion = nonTerminalNodeVerified; ///
105
- }
106
-
107
- if (metastatementVerifiedAsStatedContainedAssertion) {
108
- localContext.debug(`...verified the stated '${metastatementString}' metastatement as a contained assertion.`, metastatementNode);
109
- }
110
- }
111
-
112
- return metastatementVerifiedAsStatedContainedAssertion;
113
- }
114
-
115
- export function isMetastatementContainedAssertion(metastatementNode) {
116
- const operatorTerminalNodes = operatorTerminalNodesQuery(metastatementNode),
117
- metastatementContainedAssertion = operatorTerminalNodes.some((operatorTerminalNode) => {
118
- const content = operatorTerminalNode.getContent(),
119
- contentContained = (content === CONTAINED);
120
-
121
- if (contentContained) {
122
- return true;
123
- }
124
- });
125
-
126
- return metastatementContainedAssertion;
127
- }
@@ -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