occam-verify-cli 0.0.959 → 0.0.961

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 (141) hide show
  1. package/bin/action/verify.js +16 -5
  2. package/bin/utilities/releaseContext.js +5 -8
  3. package/lib/context/file.js +38 -14
  4. package/lib/context/local.js +3 -9
  5. package/lib/context/release.js +82 -52
  6. package/lib/frame.js +3 -3
  7. package/lib/index.js +5 -5
  8. package/lib/metavariable.js +9 -9
  9. package/lib/proofStep.js +21 -18
  10. package/lib/releaseContext/create.js +8 -9
  11. package/lib/releaseContext/initialise.js +67 -0
  12. package/lib/rule.js +5 -5
  13. package/lib/substitution/statementForMetavariable.js +8 -8
  14. package/lib/substitution/termForVariable.js +29 -30
  15. package/lib/substitution.js +7 -7
  16. package/lib/substitutions.js +7 -7
  17. package/lib/topLevelAssertion.js +5 -5
  18. package/lib/unifier/equality.js +7 -7
  19. package/lib/unifier/intrinsicLevel.js +4 -4
  20. package/lib/unifier/metaLevel.js +10 -10
  21. package/lib/unifier/statementWithCombinator.js +147 -0
  22. package/lib/unifier/{termAgainstConstructor.js → termWithConstructor.js} +17 -17
  23. package/lib/unify/conclusionWithStatement.js +34 -0
  24. package/lib/unify/consequentWithStatement.js +34 -0
  25. package/lib/unify/metavariableWithStatement.js +74 -0
  26. package/lib/unify/premiseWithProofStep.js +41 -0
  27. package/lib/unify/premisesWithProofSteps.js +31 -0
  28. package/lib/unify/statementAtainstStatement.js +18 -18
  29. package/lib/unify/statementWithBracketedCombinator.js +30 -0
  30. package/lib/unify/statementWithCombinators.js +40 -0
  31. package/lib/unify/statementWithMetaType.js +24 -0
  32. package/lib/unify/suppositionWithProffStep.js +41 -0
  33. package/lib/unify/suppositionsWithProofSteps.js +31 -0
  34. package/lib/unify/termWithBracketedConstructor.js +37 -0
  35. package/lib/unify/termWithConstructors.js +53 -0
  36. package/lib/unify/termWithTerm.js +21 -0
  37. package/lib/unify/termWithType.js +24 -0
  38. package/lib/unify/variableWithTerm.js +54 -0
  39. package/lib/utilities/assignments.js +9 -12
  40. package/lib/verifier/intrinsicLevel.js +140 -0
  41. package/lib/verifier/metaLevel.js +11 -20
  42. package/lib/verifier/statementAsCombinator.js +9 -9
  43. package/lib/verifier/termAsConstructor.js +5 -5
  44. package/lib/verify/assertion/contained.js +2 -3
  45. package/lib/verify/assertion/defined.js +2 -4
  46. package/lib/verify/assertion/subproof.js +20 -18
  47. package/lib/verify/assertion/type.js +1 -2
  48. package/lib/verify/declaration.js +27 -9
  49. package/lib/verify/error.js +2 -2
  50. package/lib/verify/frame.js +25 -6
  51. package/lib/verify/judgement.js +3 -3
  52. package/lib/verify/metavariable.js +4 -4
  53. package/lib/verify/premise.js +3 -3
  54. package/lib/verify/proofStep.js +23 -30
  55. package/lib/verify/statement/qualified.js +93 -137
  56. package/lib/verify/statement/unqualified.js +18 -104
  57. package/lib/verify/statement.js +95 -76
  58. package/lib/verify/statementAsCombinator.js +3 -3
  59. package/lib/verify/statementGivenMetaType.js +41 -0
  60. package/lib/verify/supposition.js +3 -3
  61. package/lib/verify/term.js +36 -64
  62. package/lib/verify/termAsConstructor.js +2 -2
  63. package/lib/verify/termGivenType.js +34 -0
  64. package/package.json +1 -1
  65. package/src/context/file.js +42 -17
  66. package/src/context/local.js +4 -13
  67. package/src/context/release.js +84 -45
  68. package/src/frame.js +2 -2
  69. package/src/index.js +1 -1
  70. package/src/metavariable.js +6 -6
  71. package/src/proofStep.js +24 -19
  72. package/src/releaseContext/create.js +8 -16
  73. package/src/releaseContext/{verify.js → initialise.js} +32 -23
  74. package/src/rule.js +4 -4
  75. package/src/substitution/statementForMetavariable.js +7 -7
  76. package/src/substitution/termForVariable.js +37 -34
  77. package/src/substitution.js +5 -5
  78. package/src/substitutions.js +5 -5
  79. package/src/topLevelAssertion.js +4 -4
  80. package/src/unifier/equality.js +6 -6
  81. package/src/unifier/intrinsicLevel.js +3 -3
  82. package/src/unifier/metaLevel.js +9 -9
  83. package/src/unifier/statementWithCombinator.js +55 -0
  84. package/src/unifier/{termAgainstConstructor.js → termWithConstructor.js} +9 -9
  85. package/src/unify/{conclusionAgainstStatement.js → conclusionWithStatement.js} +3 -3
  86. package/src/unify/{consequentAgainstStatement.js → consequentWithStatement.js} +3 -3
  87. package/src/unify/{metavariableAgainstStatement.js → metavariableWithStatement.js} +12 -12
  88. package/src/unify/{premiseAgainstProofStep.js → premiseWithProofStep.js} +5 -5
  89. package/src/unify/{premisesAgainstProofSteps.js → premisesWithProofSteps.js} +3 -3
  90. package/src/unify/statementAtainstStatement.js +14 -14
  91. package/src/unify/statementWithBracketedCombinator.js +22 -0
  92. package/src/unify/statementWithCombinators.js +38 -0
  93. package/src/unify/statementWithMetaType.js +14 -0
  94. package/src/unify/{suppositionAgainstProofStep.js → suppositionWithProffStep.js} +5 -5
  95. package/src/unify/{suppositionsAgainstProofSteps.js → suppositionsWithProofSteps.js} +3 -3
  96. package/src/unify/termWithBracketedConstructor.js +36 -0
  97. package/src/unify/termWithConstructors.js +63 -0
  98. package/src/unify/{termAgainstTerm.js → termWithTerm.js} +4 -4
  99. package/src/unify/termWithType.js +15 -0
  100. package/src/unify/{variableAgainstTerm.js → variableWithTerm.js} +5 -5
  101. package/src/utilities/assignments.js +6 -13
  102. package/src/verifier/intrinsicLevel.js +42 -0
  103. package/src/verifier/metaLevel.js +13 -21
  104. package/src/verifier/statementAsCombinator.js +11 -7
  105. package/src/verifier/termAsConstructor.js +4 -3
  106. package/src/verify/assertion/contained.js +1 -3
  107. package/src/verify/assertion/defined.js +1 -4
  108. package/src/verify/assertion/subproof.js +22 -18
  109. package/src/verify/assertion/type.js +0 -1
  110. package/src/verify/declaration.js +34 -11
  111. package/src/verify/error.js +1 -1
  112. package/src/verify/frame.js +32 -5
  113. package/src/verify/judgement.js +3 -3
  114. package/src/verify/metavariable.js +3 -3
  115. package/src/verify/premise.js +3 -3
  116. package/src/verify/proofStep.js +26 -38
  117. package/src/verify/statement/qualified.js +104 -184
  118. package/src/verify/statement/unqualified.js +19 -149
  119. package/src/verify/statement.js +126 -72
  120. package/src/verify/statementAsCombinator.js +2 -2
  121. package/src/verify/statementGivenMetaType.js +37 -0
  122. package/src/verify/supposition.js +3 -3
  123. package/src/verify/term.js +38 -93
  124. package/src/verify/termAsConstructor.js +1 -1
  125. package/src/verify/termGivenType.js +32 -0
  126. package/lib/releaseContext/verify.js +0 -66
  127. package/lib/unifier/statementAgainstCombinator.js +0 -147
  128. package/lib/unify/conclusionAgainstStatement.js +0 -34
  129. package/lib/unify/consequentAgainstStatement.js +0 -34
  130. package/lib/unify/metavariableAgainstStatement.js +0 -74
  131. package/lib/unify/premiseAgainstProofStep.js +0 -41
  132. package/lib/unify/premisesAgainstProofSteps.js +0 -31
  133. package/lib/unify/statementAgainstMetaType.js +0 -48
  134. package/lib/unify/suppositionAgainstProofStep.js +0 -41
  135. package/lib/unify/suppositionsAgainstProofSteps.js +0 -31
  136. package/lib/unify/termAgainstTerm.js +0 -21
  137. package/lib/unify/termAgainstType.js +0 -32
  138. package/lib/unify/variableAgainstTerm.js +0 -54
  139. package/src/unifier/statementAgainstCombinator.js +0 -55
  140. package/src/unify/statementAgainstMetaType.js +0 -50
  141. package/src/unify/termAgainstType.js +0 -31
@@ -7,7 +7,7 @@ import verifyQualifiedStatement from "../verify/statement/qualified";
7
7
  import verifyUnqualifiedStatement from "../verify/statement/unqualified";
8
8
 
9
9
  import { nodeQuery } from "../utilities/query";
10
- import { assignAssignment } from "../utilities/assignments";
10
+ import { assignAssignments } from "../utilities/assignments";
11
11
 
12
12
  const subproofNodeQuery = nodeQuery("/proofStep|lastProofStep/subproof!"),
13
13
  statementNodeQuery = nodeQuery("/qualifiedStatement|unqualifiedStatement/statement!"),
@@ -21,63 +21,51 @@ export default function verifyProofStep(proofStepNode, substitutions, localConte
21
21
  qualifiedStatementNode = qualifiedStatementNodeQuery(proofStepNode),
22
22
  unqualifiedStatementNode = unqualifiedStatementNodeQuery(proofStepNode);
23
23
 
24
- if (false) {
25
- ///
26
- } else if (subproofNode !== null) {
24
+ let proofStep = null;
25
+
26
+ if (subproofNode !== null) {
27
27
  let subproofVerified;
28
28
 
29
29
  subproofVerified = verifySubproof(subproofNode, substitutions, localContext);
30
30
 
31
31
  if (subproofVerified) {
32
- const proofStep = ProofStep.fromSubproofNode(subproofNode);
33
-
34
- localContext.addProofStep(proofStep);
35
-
36
- proofStepVerified = true;
32
+ proofStep = ProofStep.fromSubproofNode(subproofNode);
37
33
  }
38
- } else if (qualifiedStatementNode !== null) {
39
- let qualifiedStatementVerified;
40
-
41
- const assignments = [];
34
+ } else {
35
+ const derived = true,
36
+ assignments = [];
42
37
 
43
- qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, substitutions, assignments, localContext);
38
+ let statementVerified = false;
44
39
 
45
- if (qualifiedStatementVerified) {
46
- const assignmentAssigned = assignAssignment(assignments, localContext);
40
+ if (qualifiedStatementNode !== null) {
41
+ const qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, substitutions, assignments, derived, localContext);
47
42
 
48
- qualifiedStatementVerified = assignmentAssigned; ///
49
- }
43
+ const statementNode = statementNodeQuery(qualifiedStatementNode);
50
44
 
51
- if (qualifiedStatementVerified) {
52
- const statementNode = statementNodeQuery(qualifiedStatementNode),
53
- proofStep = ProofStep.fromStatementNode(statementNode);
45
+ proofStep = ProofStep.fromStatementNode(statementNode);
54
46
 
55
- localContext.addProofStep(proofStep);
56
-
57
- proofStepVerified = true;
47
+ statementVerified = qualifiedStatementVerified; ///
58
48
  }
59
- } else if (unqualifiedStatementNode !== null) {
60
- let unqualifiedStatementVerified;
61
49
 
62
- const derived = true,
63
- assignments = [];
50
+ if (unqualifiedStatementNode !== null) {
51
+ const unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
64
52
 
65
- unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
53
+ const statementNode = statementNodeQuery(unqualifiedStatementNode);
66
54
 
67
- if (unqualifiedStatementVerified) {
68
- const assignmentAssigned = assignAssignment(assignments, localContext);
55
+ proofStep = ProofStep.fromStatementNode(statementNode);
69
56
 
70
- unqualifiedStatementVerified = assignmentAssigned; ///
57
+ statementVerified = unqualifiedStatementVerified; ///
71
58
  }
72
59
 
73
- if (unqualifiedStatementVerified) {
74
- const statementNode = statementNodeQuery(unqualifiedStatementNode),
75
- proofStep = ProofStep.fromStatementNode(statementNode);
60
+ if (statementVerified) {
61
+ assignAssignments(assignments, localContext);
62
+ }
63
+ }
76
64
 
77
- localContext.addProofStep(proofStep);
65
+ if (proofStep !== null) {
66
+ localContext.addProofStep(proofStep);
78
67
 
79
- proofStepVerified = true;
80
- }
68
+ proofStepVerified = true;
81
69
  }
82
70
 
83
71
  return proofStepVerified;
@@ -1,48 +1,39 @@
1
1
  "use strict";
2
2
 
3
- import verifyEquality from "../equality";
4
- import verifyJudgement from "../judgement";
5
- import verifyTypeAssertion from "../assertion/type";
6
- import unifyMetavariableAgainstStatement from "../../unify/metavariableAgainstStatement";
3
+ import verifyStatement from "../../verify/statement";
7
4
 
8
5
  import { nodeQuery } from "../../utilities/query";
9
6
 
10
7
  const statementNodeQuery = nodeQuery("/qualifiedStatement/statement!"),
11
- equalityNodeQuery = nodeQuery("/statement/equality!"),
12
- judgementNodeQuery = nodeQuery("/statement/judgement!"),
13
- metavariableNodeQuery = nodeQuery("/qualifiedStatement/reference/metavariable!"),
14
- typeAssertionNodeQuery = nodeQuery("/statement/typeAssertion!");
15
-
16
- export default function verifyQualifiedStatement(qualifiedStatementNode, substitutions, assignments, localContext) {
8
+ metavariableNodeQuery = nodeQuery("/qualifiedStatement/reference/metavariable!");
9
+
10
+ const unifyDerivedQualifiedStatementFunctions = [
11
+ unifyDerivedQualifiedStatementAWithRule,
12
+ unifyDerivedQualifiedStatementAWithAxiom,
13
+ unifyDerivedQualifiedStatementAWithLemma,
14
+ unifyDerivedQualifiedStatementAWithTheorem,
15
+ unifyDerivedQualifiedStatementAWithConjecture,
16
+ unifyDerivedQualifiedStatementAWithReference
17
+ ];
18
+
19
+ export default function verifyQualifiedStatement(qualifiedStatementNode, substitutions, assignments, derived, localContext) {
17
20
  let qualifiedStatementVerified;
18
21
 
19
22
  const qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
20
23
 
21
24
  localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement...`, qualifiedStatementNode);
22
25
 
23
- const unifyQualifiedStatementFunctions = [
24
- unifyQualifiedStatementAAgainstRule,
25
- unifyQualifiedStatementAAgainstAxiom,
26
- unifyQualifiedStatementAAgainstLemma,
27
- unifyQualifiedStatementAAgainstTheorem,
28
- unifyQualifiedStatementAAgainstConjecture,
29
- unifyQualifiedStatementAAgainstReference
30
- ];
26
+ const statementNode = statementNodeQuery(qualifiedStatementNode),
27
+ statementVerified = verifyStatement(statementNode, assignments, derived, localContext);
31
28
 
32
- const qualifiedStatementUnified = unifyQualifiedStatementFunctions.some((unifyQualifiedStatementFunction) => { ///
33
- const qualifiedStatementUnified = unifyQualifiedStatementFunction(qualifiedStatementNode, substitutions, localContext);
29
+ if (statementVerified) {
30
+ if (derived) {
31
+ const derivedQualifiedStatementVerified = verifyDerivedQualifiedStatement(qualifiedStatementNode, substitutions, localContext);
34
32
 
35
- if (qualifiedStatementUnified) {
36
- return true;
33
+ qualifiedStatementVerified = derivedQualifiedStatementVerified; ///
34
+ } else {
35
+ qualifiedStatementVerified = true;
37
36
  }
38
- });
39
-
40
- if (qualifiedStatementUnified) {
41
- const derived = false,
42
- statementNode = statementNodeQuery(qualifiedStatementNode),
43
- statedStatementVerified = verifyStatedStatement(statementNode, assignments, derived, localContext);
44
-
45
- qualifiedStatementVerified = statedStatementVerified; ///
46
37
  }
47
38
 
48
39
  if (qualifiedStatementVerified) {
@@ -52,8 +43,30 @@ export default function verifyQualifiedStatement(qualifiedStatementNode, substit
52
43
  return qualifiedStatementVerified;
53
44
  }
54
45
 
55
- function unifyQualifiedStatementAAgainstRule(qualifiedStatementNode, substitutions, localContext) {
56
- let qualifiedStatementUnifiedAgainstRule = false;
46
+ function verifyDerivedQualifiedStatement(qualifiedStatementNode, substitutions, localContext) {
47
+ let derivedQualifiedStatementVerified;
48
+
49
+ const qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
50
+
51
+ localContext.trace(`Verifying the '${qualifiedStatementString}' derived qualified statement...`, qualifiedStatementNode);
52
+
53
+ const derivedQualifiedStatementUnified = unifyDerivedQualifiedStatementFunctions.some((unifyDerivedQualifiedStatementFunction) => {
54
+ const derivedQualifiedStatementUnified = unifyDerivedQualifiedStatementFunction(qualifiedStatementNode, substitutions, localContext);
55
+
56
+ return derivedQualifiedStatementUnified;
57
+ });
58
+
59
+ derivedQualifiedStatementVerified = derivedQualifiedStatementUnified; ///
60
+
61
+ if (derivedQualifiedStatementVerified) {
62
+ localContext.debug(`...verified the '${qualifiedStatementString}' derived qualified statement.`, qualifiedStatementNode);
63
+ }
64
+
65
+ return derivedQualifiedStatementVerified;
66
+ }
67
+
68
+ function unifyDerivedQualifiedStatementAWithRule(qualifiedStatementNode, substitutions, localContext) {
69
+ let derivedQualifiedStatementUnifiedWithRule = false;
57
70
 
58
71
  const metavariableNode = metavariableNodeQuery(qualifiedStatementNode),
59
72
  rule = localContext.findRuleByMetavariableNode(metavariableNode);
@@ -63,22 +76,22 @@ function unifyQualifiedStatementAAgainstRule(qualifiedStatementNode, substitutio
63
76
  metavariableString = localContext.nodeAsString(metavariableNode),
64
77
  qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
65
78
 
66
- localContext.trace(`Unifying the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' rule...`, qualifiedStatementNode);
79
+ localContext.trace(`Unifying the '${qualifiedStatementString}' derived qualified statement with the '${metavariableString}' rule...`, qualifiedStatementNode);
67
80
 
68
- const ruleMatchesStatement = rule.unifyStatement(statementNode, localContext);
81
+ const statementUnified = rule.unifyStatement(statementNode, localContext);
69
82
 
70
- qualifiedStatementUnifiedAgainstRule = ruleMatchesStatement; ///
83
+ derivedQualifiedStatementUnifiedWithRule = statementUnified; ///
71
84
 
72
- if (qualifiedStatementUnifiedAgainstRule) {
73
- localContext.debug(`...unified the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' rule.`, qualifiedStatementNode);
85
+ if (derivedQualifiedStatementUnifiedWithRule) {
86
+ localContext.debug(`...unified the '${qualifiedStatementString}' derived qualified statement with the '${metavariableString}' rule.`, qualifiedStatementNode);
74
87
  }
75
88
  }
76
89
 
77
- return qualifiedStatementUnifiedAgainstRule;
90
+ return derivedQualifiedStatementUnifiedWithRule;
78
91
  }
79
92
 
80
- function unifyQualifiedStatementAAgainstAxiom(qualifiedStatementNode, substitutions, localContext) {
81
- let qualifiedStatementUnifiedAgainstAxiom = false;
93
+ function unifyDerivedQualifiedStatementAWithAxiom(qualifiedStatementNode, substitutions, localContext) {
94
+ let derivedQualifiedStatementUnifiedWithAxiom = false;
82
95
 
83
96
  const metavariableNode = metavariableNodeQuery(qualifiedStatementNode),
84
97
  axiom = localContext.findAxiomByMetavariableNode(metavariableNode);
@@ -88,22 +101,22 @@ function unifyQualifiedStatementAAgainstAxiom(qualifiedStatementNode, substituti
88
101
  metavariableString = localContext.nodeAsString(metavariableNode),
89
102
  qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
90
103
 
91
- localContext.trace(`Unifying the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' axiom...`, qualifiedStatementNode);
104
+ localContext.trace(`Unifying the '${qualifiedStatementString}' derived qualified statement with the '${metavariableString}' axiom...`, qualifiedStatementNode);
92
105
 
93
- const axiomMatchesStatement = axiom.unifyStatement(statementNode, localContext);
106
+ const statementUnified = axiom.unifyStatement(statementNode, localContext);
94
107
 
95
- qualifiedStatementUnifiedAgainstAxiom = axiomMatchesStatement; ///
108
+ derivedQualifiedStatementUnifiedWithAxiom = statementUnified; ///
96
109
 
97
- if (qualifiedStatementUnifiedAgainstAxiom) {
98
- localContext.debug(`...unified the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' axiom.`, qualifiedStatementNode);
110
+ if (derivedQualifiedStatementUnifiedWithAxiom) {
111
+ localContext.debug(`...unified the '${qualifiedStatementString}' derived qualified statement with the '${metavariableString}' axiom.`, qualifiedStatementNode);
99
112
  }
100
113
  }
101
114
 
102
- return qualifiedStatementUnifiedAgainstAxiom;
115
+ return derivedQualifiedStatementUnifiedWithAxiom;
103
116
  }
104
117
 
105
- function unifyQualifiedStatementAAgainstLemma(qualifiedStatementNode, substitutions, localContext) {
106
- let qualifiedStatementUnifiedAgainstLemma = false;
118
+ function unifyDerivedQualifiedStatementAWithLemma(qualifiedStatementNode, substitutions, localContext) {
119
+ let derivedQualifiedStatementUnifiedWithLemma = false;
107
120
 
108
121
  const metavariableNode = metavariableNodeQuery(qualifiedStatementNode),
109
122
  lemma = localContext.findLemmaByMetavariableNode(metavariableNode);
@@ -113,22 +126,22 @@ function unifyQualifiedStatementAAgainstLemma(qualifiedStatementNode, substituti
113
126
  metavariableString = localContext.nodeAsString(metavariableNode),
114
127
  qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
115
128
 
116
- localContext.trace(`Unifying the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' lemma...`, qualifiedStatementNode);
129
+ localContext.trace(`Unifying the '${qualifiedStatementString}' derived qualified statement with the '${metavariableString}' lemma...`, qualifiedStatementNode);
117
130
 
118
- const lemmaMatchesStatement = lemma.unifyStatement(statementNode, localContext);
131
+ const statementUnified = lemma.unifyStatement(statementNode, localContext);
119
132
 
120
- qualifiedStatementUnifiedAgainstLemma = lemmaMatchesStatement; ///
133
+ derivedQualifiedStatementUnifiedWithLemma = statementUnified; ///
121
134
 
122
- if (qualifiedStatementUnifiedAgainstLemma) {
123
- localContext.debug(`...unified the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' lemma.`, qualifiedStatementNode);
135
+ if (derivedQualifiedStatementUnifiedWithLemma) {
136
+ localContext.debug(`...unified the '${qualifiedStatementString}' derived qualified statement with the '${metavariableString}' lemma.`, qualifiedStatementNode);
124
137
  }
125
138
  }
126
139
 
127
- return qualifiedStatementUnifiedAgainstLemma;
140
+ return derivedQualifiedStatementUnifiedWithLemma;
128
141
  }
129
142
 
130
- function unifyQualifiedStatementAAgainstTheorem(qualifiedStatementNode, substitutions, localContext) {
131
- let qualifiedStatementUnifiedAgainstTheorem = false;
143
+ function unifyDerivedQualifiedStatementAWithTheorem(qualifiedStatementNode, substitutions, localContext) {
144
+ let derivedQualifiedStatementUnifiedWithTheorem = false;
132
145
 
133
146
  const metavariableNode = metavariableNodeQuery(qualifiedStatementNode),
134
147
  theorem = localContext.findTheoremByMetavariableNode(metavariableNode);
@@ -138,22 +151,22 @@ function unifyQualifiedStatementAAgainstTheorem(qualifiedStatementNode, substitu
138
151
  metavariableString = localContext.nodeAsString(metavariableNode),
139
152
  qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
140
153
 
141
- localContext.trace(`Unifying the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' theorem...`, qualifiedStatementNode);
154
+ localContext.trace(`Unifying the '${qualifiedStatementString}' derived qualified statement with the '${metavariableString}' theorem...`, qualifiedStatementNode);
142
155
 
143
- const theoremMatchesStatement = theorem.unifyStatement(statementNode, localContext);
156
+ const statementUnified = theorem.unifyStatement(statementNode, localContext);
144
157
 
145
- qualifiedStatementUnifiedAgainstTheorem = theoremMatchesStatement; ///
158
+ derivedQualifiedStatementUnifiedWithTheorem = statementUnified; ///
146
159
 
147
- if (qualifiedStatementUnifiedAgainstTheorem) {
148
- localContext.debug(`...unified the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' theorem.`, qualifiedStatementNode);
160
+ if (derivedQualifiedStatementUnifiedWithTheorem) {
161
+ localContext.debug(`...unified the '${qualifiedStatementString}' derived qualified statement with the '${metavariableString}' theorem.`, qualifiedStatementNode);
149
162
  }
150
163
  }
151
164
 
152
- return qualifiedStatementUnifiedAgainstTheorem;
165
+ return derivedQualifiedStatementUnifiedWithTheorem;
153
166
  }
154
167
 
155
- function unifyQualifiedStatementAAgainstConjecture(qualifiedStatementNode, substitutions, localContext) {
156
- let qualifiedStatementUnifiedAgainstConjecture = false;
168
+ function unifyDerivedQualifiedStatementAWithConjecture(qualifiedStatementNode, substitutions, localContext) {
169
+ let derivedQualifiedStatementUnifiedWithConjecture = false;
157
170
 
158
171
  const metavariableNode = metavariableNodeQuery(qualifiedStatementNode),
159
172
  conjecture = localContext.findConjectureByMetavariableNode(metavariableNode);
@@ -163,145 +176,52 @@ function unifyQualifiedStatementAAgainstConjecture(qualifiedStatementNode, subst
163
176
  metavariableString = localContext.nodeAsString(metavariableNode),
164
177
  qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
165
178
 
166
- localContext.trace(`Unifying the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' conjecture...`, qualifiedStatementNode);
179
+ localContext.trace(`Unifying the '${qualifiedStatementString}' derived qualified statement with the '${metavariableString}' conjecture...`, qualifiedStatementNode);
167
180
 
168
- const conjectureMatchesStatement = conjecture.unifyStatement(statementNode, localContext);
181
+ const statementUnified = conjecture.unifyStatement(statementNode, localContext);
169
182
 
170
- qualifiedStatementUnifiedAgainstConjecture = conjectureMatchesStatement; ///
183
+ derivedQualifiedStatementUnifiedWithConjecture = statementUnified; ///
171
184
 
172
- if (qualifiedStatementUnifiedAgainstConjecture) {
173
- localContext.debug(`...unified the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' conjecture.`, qualifiedStatementNode);
185
+ if (derivedQualifiedStatementUnifiedWithConjecture) {
186
+ localContext.debug(`...unified the '${qualifiedStatementString}' derived qualified statement with the '${metavariableString}' conjecture.`, qualifiedStatementNode);
174
187
  }
175
188
  }
176
189
 
177
- return qualifiedStatementUnifiedAgainstConjecture;
190
+ return derivedQualifiedStatementUnifiedWithConjecture;
178
191
  }
179
192
 
180
- function unifyQualifiedStatementAAgainstReference(qualifiedStatementNode, substitutions, localContext) {
181
- let qualifiedStatementUnifiedAgainstReference = false;
193
+ function unifyDerivedQualifiedStatementAWithReference(qualifiedStatementNode, substitutions, localContext) {
194
+ let derivedQualifiedStatementUnifiedWithReference = false;
182
195
 
183
196
  const metavariableNode = metavariableNodeQuery(qualifiedStatementNode),
184
197
  metavariableString = localContext.nodeAsString(metavariableNode),
185
198
  metavariablePresent = localContext.isMetavariablePresentByMetavariableNode(metavariableNode),
186
199
  qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
187
200
 
188
- localContext.trace(`Unifying the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' reference...`, qualifiedStatementNode);
201
+ localContext.trace(`Unifying the '${qualifiedStatementString}' derived qualified statement with the '${metavariableString}' reference...`, qualifiedStatementNode);
189
202
 
190
203
  if (metavariablePresent) {
191
- const statementNode = statementNodeQuery(qualifiedStatementNode),
192
- localContextA = null,
193
- localContextB = localContext, ///
194
- statementNodeB = statementNode, ///
195
- substitutionNodeA = null,
196
- metavariableNodeA = metavariableNode, ///
197
- metavariableUnifiedAgainstStatement = unifyMetavariableAgainstStatement(metavariableNodeA, statementNodeB, substitutionNodeA, substitutions, localContextA, localContextB, () => {
198
- const verifiedAhead = true;
199
-
200
- return verifiedAhead;
201
- });
202
-
203
- qualifiedStatementUnifiedAgainstReference = metavariableUnifiedAgainstStatement; ///
204
- }
205
-
206
- if (qualifiedStatementUnifiedAgainstReference) {
207
- localContext.debug(`...unified the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' reference.`, qualifiedStatementNode);
208
- }
209
-
210
- return qualifiedStatementUnifiedAgainstReference;
211
- }
212
-
213
- function verifyStatedStatement(statementNode, assignments, derived, localContext) {
214
- let statedStatementVerified;
215
-
216
- const statementString = localContext.nodeAsString(statementNode);
217
-
218
- localContext.trace(`Verifying the '${statementString}' stated statement...`, statementNode);
219
-
220
- const verifyStatedStatementFunctions = [
221
- verifyStatedStatementAsEquality,
222
- verifyStatedStatementAsJudgement,
223
- verifyStatedStatementAsTypeAssertion
224
- ];
225
-
226
- verifyStatedStatementFunctions.every((verifyStatedStatementFunction) => { ///
227
- const statedStatementVerified = verifyStatedStatementFunction(statementNode, assignments, derived, localContext);
228
-
229
- if (statedStatementVerified) {
230
- return true;
231
- }
232
- });
233
-
234
- statedStatementVerified = true; ///
235
204
 
236
- if (statedStatementVerified) {
237
- localContext.debug(`...verified the '${statementString}' stated statement.`, statementNode);
205
+ debugger
206
+
207
+ // const statementNode = statementNodeQuery(qualifiedStatementNode),
208
+ // localContextA = null,
209
+ // localContextB = localContext, ///
210
+ // statementNodeB = statementNode, ///
211
+ // substitutionNodeA = null,
212
+ // metavariableNodeA = metavariableNode, ///
213
+ // metavariableUnifiedWithStatement = unifyMetavariableWithStatement(metavariableNodeA, statementNodeB, substitutionNodeA, substitutions, localContextA, localContextB, () => {
214
+ // const verifiedAhead = true;
215
+ //
216
+ // return verifiedAhead;
217
+ // });
218
+ //
219
+ // derivedQualifiedStatementUnifiedWithReference = metavariableUnifiedWithStatement; ///
238
220
  }
239
221
 
240
- return statedStatementVerified;
241
- }
242
-
243
- function verifyStatedStatementAsEquality(statementNode, assignments, derived, localContext) {
244
- let statedStatementVerifiedAsEquality = true; ///
245
-
246
- const equalityNode = equalityNodeQuery(statementNode);
247
-
248
- if (equalityNode !== null) {
249
- const statementString = localContext.nodeAsString(statementNode);
250
-
251
- localContext.trace(`Verifying the '${statementString}' stated statement as an equality...`, statementNode);
252
-
253
- const equalityVerified = verifyEquality(equalityNode, assignments, derived, localContext);
254
-
255
- statedStatementVerifiedAsEquality = equalityVerified; ///
256
-
257
- if (statedStatementVerifiedAsEquality) {
258
- localContext.debug(`...verified the '${statementString}' stated statement as an equality.`, statementNode);
259
- }
260
- }
261
-
262
- return statedStatementVerifiedAsEquality;
263
- }
264
-
265
- function verifyStatedStatementAsJudgement(statementNode, assignments, derived, localContext) {
266
- let statedStatementVerifiedAsJudgement = true;
267
-
268
- const judgementNode = judgementNodeQuery(statementNode);
269
-
270
- if (judgementNode !== null) {
271
- const statementString = localContext.nodeAsString(statementNode);
272
-
273
- localContext.trace(`Verifying the '${statementString}' stated statement as a judgement...`, statementNode);
274
-
275
- const judgementVerified = verifyJudgement(judgementNode, assignments, derived, localContext);
276
-
277
- statedStatementVerifiedAsJudgement = judgementVerified; ///
278
-
279
- if (statedStatementVerifiedAsJudgement) {
280
- localContext.debug(`...verified the '${statementString}' stated statement as a judgement.`, statementNode);
281
- }
282
- }
283
-
284
- return statedStatementVerifiedAsJudgement;
285
- }
286
-
287
- function verifyStatedStatementAsTypeAssertion(statementNode, assignments, derived, localContext) {
288
- let statementVerifiedAsTypeAssertion = true; ///
289
-
290
- const typeAssertionNode = typeAssertionNodeQuery(statementNode);
291
-
292
- if (typeAssertionNode !== null) {
293
- const statementString = localContext.nodeAsString(statementNode);
294
-
295
- localContext.trace(`Verifying the '${statementString}' stated statement as a type assertion...`, statementNode);
296
-
297
- const typeAssertionVerified = verifyTypeAssertion(typeAssertionNode, assignments, derived, localContext);
298
-
299
- statementVerifiedAsTypeAssertion = typeAssertionVerified; ///
300
-
301
- if (statementVerifiedAsTypeAssertion) {
302
- localContext.debug(`...verified the '${statementString}' stated statement as a type assertion.`, statementNode);
303
- }
222
+ if (derivedQualifiedStatementUnifiedWithReference) {
223
+ localContext.debug(`...unified the '${qualifiedStatementString}' derived qualified statement with the '${metavariableString}' reference.`, qualifiedStatementNode);
304
224
  }
305
225
 
306
- return statementVerifiedAsTypeAssertion;
226
+ return derivedQualifiedStatementUnifiedWithReference;
307
227
  }