occam-verify-cli 0.0.909 → 0.0.911

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 (88) hide show
  1. package/lib/axiomLemmaTheoremConjecture.js +6 -6
  2. package/lib/conclusion.js +7 -7
  3. package/lib/consequent.js +3 -3
  4. package/lib/context/file.js +7 -35
  5. package/lib/context/local.js +14 -19
  6. package/lib/context/localMeta.js +16 -21
  7. package/lib/declaration.js +10 -10
  8. package/lib/equivalence.js +15 -15
  9. package/lib/frame.js +5 -5
  10. package/lib/frameAssertion.js +3 -3
  11. package/lib/metaConsequent.js +4 -4
  12. package/lib/metaLemmaMetatheorem.js +10 -10
  13. package/lib/metaSupposition.js +10 -10
  14. package/lib/metaType.js +7 -7
  15. package/lib/metavariable.js +7 -7
  16. package/lib/mixins/nodesVerifier/intrinsiclevel.js +3 -3
  17. package/lib/mixins/nodesVerifier/metaLevel.js +3 -3
  18. package/lib/premise.js +19 -19
  19. package/lib/rule.js +21 -21
  20. package/lib/step/metaproof.js +14 -53
  21. package/lib/step/proof.js +10 -22
  22. package/lib/substitution/metastatementForMetavariable.js +11 -11
  23. package/lib/substitution/statementForMetavariable.js +9 -8
  24. package/lib/substitution/termForVariable.js +9 -9
  25. package/lib/substitution.js +11 -11
  26. package/lib/supposition.js +3 -3
  27. package/lib/type.js +7 -7
  28. package/lib/utilities/match.js +96 -0
  29. package/lib/variable.js +8 -8
  30. package/lib/verify/containedAssertion.js +54 -20
  31. package/lib/verify/definedAssertion.js +67 -33
  32. package/lib/verify/frame.js +2 -2
  33. package/lib/verify/frameAssertion.js +3 -3
  34. package/lib/verify/metaDerivation.js +7 -7
  35. package/lib/verify/metaSubDerivation.js +6 -6
  36. package/lib/verify/metaproofStep.js +98 -0
  37. package/lib/verify/metastatement/unqualified.js +4 -7
  38. package/lib/verify/metastatement.js +35 -6
  39. package/lib/verify/ruleProofStep.js +25 -14
  40. package/lib/verify/statement/unqualified.js +3 -3
  41. package/lib/verify/statement.js +4 -7
  42. package/package.json +2 -2
  43. package/src/axiomLemmaTheoremConjecture.js +6 -6
  44. package/src/conclusion.js +6 -6
  45. package/src/consequent.js +2 -2
  46. package/src/context/file.js +6 -30
  47. package/src/context/local.js +13 -19
  48. package/src/context/localMeta.js +15 -21
  49. package/src/declaration.js +12 -12
  50. package/src/equivalence.js +14 -14
  51. package/src/frame.js +4 -4
  52. package/src/frameAssertion.js +2 -2
  53. package/src/metaConsequent.js +3 -3
  54. package/src/metaLemmaMetatheorem.js +10 -10
  55. package/src/metaSupposition.js +9 -9
  56. package/src/metaType.js +7 -7
  57. package/src/metavariable.js +6 -6
  58. package/src/mixins/nodesVerifier/intrinsiclevel.js +2 -2
  59. package/src/mixins/nodesVerifier/metaLevel.js +2 -2
  60. package/src/premise.js +18 -18
  61. package/src/rule.js +22 -22
  62. package/src/step/metaproof.js +12 -73
  63. package/src/step/proof.js +8 -26
  64. package/src/substitution/metastatementForMetavariable.js +10 -10
  65. package/src/substitution/statementForMetavariable.js +6 -4
  66. package/src/substitution/termForVariable.js +8 -8
  67. package/src/substitution.js +10 -10
  68. package/src/supposition.js +2 -2
  69. package/src/type.js +7 -7
  70. package/src/utilities/match.js +100 -0
  71. package/src/variable.js +11 -11
  72. package/src/verify/containedAssertion.js +76 -27
  73. package/src/verify/definedAssertion.js +90 -41
  74. package/src/verify/frame.js +1 -1
  75. package/src/verify/frameAssertion.js +2 -2
  76. package/src/verify/metaDerivation.js +6 -6
  77. package/src/verify/metaSubDerivation.js +6 -6
  78. package/src/verify/{metaProofStep.js → metaproofStep.js} +60 -19
  79. package/src/verify/metastatement/unqualified.js +3 -7
  80. package/src/verify/metastatement.js +46 -5
  81. package/src/verify/ruleProofStep.js +22 -1
  82. package/src/verify/statement/unqualified.js +2 -2
  83. package/src/verify/statement.js +2 -6
  84. package/lib/utilities/metaproof.js +0 -59
  85. package/lib/utilities/proof.js +0 -59
  86. package/lib/verify/metaProofStep.js +0 -76
  87. package/src/utilities/metaproof.js +0 -53
  88. package/src/utilities/proof.js +0 -53
@@ -24,9 +24,9 @@ export default class Supposition {
24
24
 
25
25
  return verifiedAhead;
26
26
  }),
27
- statementNodeMatches = nonTerminalNodeVerified; ///
27
+ matchesStatementNode = nonTerminalNodeVerified; ///
28
28
 
29
- return statementNodeMatches;
29
+ return matchesStatementNode;
30
30
  }
31
31
 
32
32
  toJSON(tokens) {
package/src/type.js CHANGED
@@ -92,23 +92,23 @@ export default class Type {
92
92
  }
93
93
 
94
94
  matchName(name) {
95
- const nameMatches = (this.name === name);
95
+ const matchesName = (this.name === name);
96
96
 
97
- return nameMatches;
97
+ return matchesName;
98
98
  }
99
99
 
100
100
  matchTypeName(typeName) {
101
- const typeNameMatches = (this.name === typeName);
101
+ const matchesTypeName = (this.name === typeName);
102
102
 
103
- return typeNameMatches;
103
+ return matchesTypeName;
104
104
  }
105
105
 
106
106
  matchTypeNode(typeNode) {
107
107
  const typeName = typeNameFromTypeNode(typeNode),
108
- typeNameMatches = this.matchTypeName(typeName),
109
- typeNodeMatches = typeNameMatches; ///
108
+ matchesTypeName = this.matchTypeName(typeName),
109
+ matchesTypeNode = matchesTypeName; ///
110
110
 
111
- return typeNodeMatches;
111
+ return matchesTypeNode;
112
112
  }
113
113
 
114
114
  asString(tokens, noSuperType = false) {
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ import bracketedStatementNode from "../node/statement/bracketed";
4
+ import bracketedMetastatementNode from "../node/metastatement/bracketed";
5
+
6
+ import { nodeQuery } from "../utilities/query";
7
+ import { BRACKETED_STATEMENT_DEPTH, BRACKETED_METASTATEMENT_DEPTH } from "../constants";
8
+
9
+ const bracketedStatementChildNodeQuery = nodeQuery("/statement/metaArgument!/statement!"),
10
+ bracketedMetastatementChildNodeQuery = nodeQuery("/metastatement/metastatement!");
11
+
12
+ export function matchStatementModuloBrackets(statementNodeA, statementNodeB) {
13
+ let statementMatchesModuloBrackets = false;
14
+
15
+ if (!statementMatchesModuloBrackets) {
16
+ const statementNodeAMatchesStatementNodeB = statementNodeA.match(statementNodeB);
17
+
18
+ statementMatchesModuloBrackets = statementNodeAMatchesStatementNodeB; ///
19
+ }
20
+
21
+ if (!statementMatchesModuloBrackets) {
22
+ const bracketedStatementChildNodeA = bracketedStatementChildNodeFromStatementNode(statementNodeA);
23
+
24
+ if (bracketedStatementChildNodeA !== null) {
25
+ const bracketedStatementChildNodeAMatchStatementNodeB = bracketedStatementChildNodeA.match(statementNodeB);
26
+
27
+ statementMatchesModuloBrackets = bracketedStatementChildNodeAMatchStatementNodeB; ///
28
+ }
29
+ }
30
+
31
+ if (!statementMatchesModuloBrackets) {
32
+ const bracketedStatementChildNodeB = bracketedStatementChildNodeFromStatementNode(statementNodeB);
33
+
34
+ if (bracketedStatementChildNodeB !== null) {
35
+ const statementNodeAMatchBracketedStatementChildNodeB = statementNodeA.match(bracketedStatementChildNodeB);
36
+
37
+ statementMatchesModuloBrackets = statementNodeAMatchBracketedStatementChildNodeB; ///
38
+ }
39
+ }
40
+
41
+ return statementMatchesModuloBrackets;
42
+ }
43
+
44
+ export function matchMetastatementModuloBrackets(metastatementNodeA, metastatementNodeB) {
45
+ let metastatementMatches = false;
46
+
47
+ if (!metastatementMatches) {
48
+ const metastatementNodeMatches = metastatementNodeA.match(metastatementNodeB);
49
+
50
+ metastatementMatches = metastatementNodeMatches; ///
51
+ }
52
+
53
+ if (!metastatementMatches) {
54
+ const bracketedMetastatementChildNodeA = bracketedMetastatementChildNodeFromMetastatementNode(metastatementNodeA);
55
+
56
+ if (bracketedMetastatementChildNodeA !== null) {
57
+ const bracketedMetastatementChildNodeAMatchesMetastatementNodeB = bracketedMetastatementChildNodeA.match(metastatementNodeB);
58
+
59
+ metastatementMatches = bracketedMetastatementChildNodeAMatchesMetastatementNodeB; ///
60
+ }
61
+ }
62
+
63
+ if (!metastatementMatches) {
64
+ const bracketedMetastatementChildNodeB = bracketedMetastatementChildNodeFromMetastatementNode(metastatementNodeB);
65
+
66
+ if (bracketedMetastatementChildNodeB !== null) {
67
+ const metastatementNodeAMatchesBracketedMetastatementChildNodeB = metastatementNodeA.match(bracketedMetastatementChildNodeB);
68
+
69
+ metastatementMatches = metastatementNodeAMatchesBracketedMetastatementChildNodeB; ///
70
+ }
71
+ }
72
+
73
+ return metastatementMatches;
74
+ }
75
+
76
+ export function bracketedStatementChildNodeFromStatementNode(statementNode) {
77
+ let bracketedStatementChildNode = null;
78
+
79
+ const depth = BRACKETED_STATEMENT_DEPTH,
80
+ statementNodeMatchBracketedStatementNode = statementNode.match(bracketedStatementNode, depth);
81
+
82
+ if (statementNodeMatchBracketedStatementNode) {
83
+ bracketedStatementChildNode = bracketedStatementChildNodeQuery(statementNode);
84
+ }
85
+
86
+ return bracketedStatementChildNode;
87
+ }
88
+
89
+ export function bracketedMetastatementChildNodeFromMetastatementNode(metastatementNode) {
90
+ let bracketedMetastatementChildNode = null;
91
+
92
+ const depth = BRACKETED_METASTATEMENT_DEPTH,
93
+ metastatementNodeMatchesBracketedMetastatementNode = metastatementNode.match(bracketedMetastatementNode, depth);
94
+
95
+ if (metastatementNodeMatchesBracketedMetastatementNode) {
96
+ bracketedMetastatementChildNode = bracketedMetastatementChildNodeQuery(metastatementNode);
97
+ }
98
+
99
+ return bracketedMetastatementChildNode;
100
+ }
package/src/variable.js CHANGED
@@ -21,31 +21,31 @@ export default class Variable {
21
21
  match(variable) {
22
22
  const type = variable.getType(),
23
23
  node = variable.getNode(),
24
- typeMatches = this.matchType(type),
25
- nodeMatches = this.matchNode(node),
26
- matches = nodeMatches && typeMatches;
24
+ matchesType = this.matchType(type),
25
+ matchesNode = this.matchNode(node),
26
+ matches = matchesNode && matchesType;
27
27
 
28
28
  return matches;
29
29
  }
30
30
 
31
31
  matchNode(node) {
32
- const nodeMatches = this.node.match(node);
32
+ const matchesNode = this.node.match(node);
33
33
 
34
- return nodeMatches;
34
+ return matchesNode;
35
35
  }
36
36
 
37
37
  matchType(type) {
38
- const typeMatches = this.type.match(type);
38
+ const matchesType = this.type.match(type);
39
39
 
40
- return typeMatches;
40
+ return matchesType;
41
41
  }
42
42
 
43
43
  matchNodeAndType(node, type) {
44
- const nodeMatches = this.matchNode(node),
45
- typeMatches = this.matchType(type),
46
- nodeAndTypeMatch = nodeMatches && typeMatches;
44
+ const matchesNode = this.matchNode(node),
45
+ matchesType = this.matchType(type),
46
+ matchesNodeAndType = matchesNode && matchesType;
47
47
 
48
- return nodeAndTypeMatch;
48
+ return matchesNodeAndType;
49
49
  }
50
50
 
51
51
  asString(tokens) {
@@ -6,37 +6,86 @@ import { nodeQuery, nodesQuery } from "../utilities/query";
6
6
  const variableNodeQuery = nodeQuery("/containedAssertion/term/variable!"),
7
7
  metastatementVariableNodesQuery = nodesQuery("/containedAssertion/statement//variable");
8
8
 
9
- export default function verifyContainedAssertion(containedAssertionNode) {
10
- let containedAssertionVerified = false;
11
-
12
- const containedAssertionNegated = isAssertionNegated(containedAssertionNode),
13
- variableNode = variableNodeQuery(containedAssertionNode),
14
- negated = containedAssertionNegated; ///
15
-
16
- if (false) {
17
- ///
18
- } else if (variableNode !== null) {
19
- const metastatementVariableNodes = metastatementVariableNodesQuery(containedAssertionNode),
20
- variableNodeMatchesMetaArgumentVariableNode = metastatementVariableNodes.some((metastatementVariableNode) => {
21
- const variableNodeMatchesMetaArgumentVariableNode = variableNode.match(metastatementVariableNode);
22
-
23
- if (variableNodeMatchesMetaArgumentVariableNode) {
24
- return true;
25
- }
26
- });
27
-
28
- if (!negated) {
29
- if (variableNodeMatchesMetaArgumentVariableNode) {
30
- containedAssertionVerified = true;
31
- }
9
+ export default function verifyContainedAssertion(containedAssertionNode, assignments, derived, localContext) {
10
+ let containedAssertionVerified;
11
+
12
+ const containedAssertionString = localContext.nodeAsString(containedAssertionNode);
13
+
14
+ localContext.trace(`Verifying the '${containedAssertionString}' contained assertion...`, containedAssertionNode);
15
+
16
+ const containedAssertionFunctions = [
17
+ verifyDerivedContainedAssertion,
18
+ verifyStatedContainedAssertion
19
+ ];
20
+
21
+ containedAssertionVerified = containedAssertionFunctions.some((containedAssertionFunction) => {
22
+ const containedAssertionVerified = containedAssertionFunction(containedAssertionNode, assignments, derived, localContext);
23
+
24
+ if (containedAssertionVerified) {
25
+ return true;
32
26
  }
27
+ });
28
+
29
+ if (containedAssertionVerified) {
30
+ localContext.debug(`...verified the '${containedAssertionString}' contained assertion.`, containedAssertionNode);
31
+ }
32
+
33
+ return containedAssertionVerified;
34
+ }
35
+
36
+ function verifyDerivedContainedAssertion(containedAssertionNode, assignments, derived, localContext) {
37
+ let derivedContainedAssertionVerified = false;
38
+
39
+ if (derived) {
40
+ const containedAssertionString = localContext.nodeAsString(containedAssertionNode);
41
+
42
+ localContext.trace(`Verifying the derived '${containedAssertionString}' contained assertion...`, containedAssertionNode);
33
43
 
34
- if (negated) {
35
- if (!variableNodeMatchesMetaArgumentVariableNode) {
36
- containedAssertionVerified = true;
44
+ const containedAssertionNegated = isAssertionNegated(containedAssertionNode),
45
+ variableNode = variableNodeQuery(containedAssertionNode),
46
+ negated = containedAssertionNegated; ///
47
+
48
+ if (false) {
49
+ ///
50
+ } else if (variableNode !== null) {
51
+ const metastatementVariableNodes = metastatementVariableNodesQuery(containedAssertionNode),
52
+ variableNodeMatchesMetaArgumentVariableNode = metastatementVariableNodes.some((metastatementVariableNode) => {
53
+ const variableNodeMatchesMetaArgumentVariableNode = variableNode.match(metastatementVariableNode);
54
+
55
+ if (variableNodeMatchesMetaArgumentVariableNode) {
56
+ return true;
57
+ }
58
+ });
59
+
60
+ if (!negated) {
61
+ if (variableNodeMatchesMetaArgumentVariableNode) {
62
+ derivedContainedAssertionVerified = true;
63
+ }
37
64
  }
65
+
66
+ if (negated) {
67
+ if (!variableNodeMatchesMetaArgumentVariableNode) {
68
+ derivedContainedAssertionVerified = true;
69
+ }
70
+ }
71
+ }
72
+
73
+ if (derivedContainedAssertionVerified) {
74
+ localContext.debug(`...verified the derived '${containedAssertionString}' contained assertion.`, containedAssertionNode);
38
75
  }
39
76
  }
40
77
 
41
- return containedAssertionVerified;
78
+ return derivedContainedAssertionVerified;
79
+ }
80
+
81
+ function verifyStatedContainedAssertion(containedAssertionNode, assignments, derived, localContext) {
82
+ let derivedStatedAssertionVerified = false;
83
+
84
+ if (!derived) {
85
+ const containedAssertionString = localContext.nodeAsString(containedAssertionNode);
86
+
87
+ localContext.debug(`The stated '${containedAssertionString}' contained assertion cannot be verified.`, containedAssertionNode);
88
+ }
89
+
90
+ return derivedStatedAssertionVerified;
42
91
  }
@@ -9,60 +9,109 @@ import { isAssertionNegated } from "../utilities/verify";
9
9
  const termNodeQuery = nodeQuery("/definedAssertion/term!"),
10
10
  variableNodeQuery = nodeQuery("/definedAssertion/term/variable!");
11
11
 
12
- export default function verifyDefinedAssertion(definedAssertionNode, localContext) {
13
- let definedAssertionVerified = false;
12
+ export default function verifyDefinedAssertion(definedAssertionNode, assignments, derived, localContext) {
13
+ let definedAssertionVerified;
14
14
 
15
- const definedAssertionNegated = isAssertionNegated(definedAssertionNode),
16
- variableNode = variableNodeQuery(definedAssertionNode),
17
- termNode = termNodeQuery(definedAssertionNode),
18
- negated = definedAssertionNegated; ///
15
+ const definedAssertionString = localContext.nodeAsString(definedAssertionNode);
19
16
 
20
- if (false) {
21
- ///
22
- } else if (variableNode !== null) {
23
- const variable = localContext.findVariableByVariableNode(variableNode);
17
+ localContext.trace(`Verifying the '${definedAssertionString}' defined assertion...`, definedAssertionNode);
24
18
 
25
- if (variable !== null) {
26
- const variableDefined = localContext.isVariableDefined(variable);
19
+ const definedAssertionFunctions = [
20
+ verifyDerivedDefinedAssertion,
21
+ verifyStatedDefinedAssertion
22
+ ];
27
23
 
28
- if (!negated) {
29
- if (variableDefined) {
30
- definedAssertionVerified = true;
24
+ definedAssertionVerified = definedAssertionFunctions.some((definedAssertionFunction) => {
25
+ const definedAssertionVerified = definedAssertionFunction(definedAssertionNode, assignments, derived, localContext);
26
+
27
+ if (definedAssertionVerified) {
28
+ return true;
29
+ }
30
+ });
31
+
32
+ if (definedAssertionVerified) {
33
+ localContext.debug(`...verified the '${definedAssertionString}' defined assertion.`, definedAssertionNode);
34
+ }
35
+
36
+ return definedAssertionVerified;
37
+ }
38
+
39
+ function verifyDerivedDefinedAssertion(definedAssertionNode, assignments, derived, localContext) {
40
+ let derivedDefinedAssertionVerified = false;
41
+
42
+ if (derived) {
43
+ const definedAssertionString = localContext.nodeAsString(definedAssertionNode);
44
+
45
+ localContext.trace(`Verifying the derived '${definedAssertionString}' defined assertion...`, definedAssertionNode);
46
+
47
+ const definedAssertionNegated = isAssertionNegated(definedAssertionNode),
48
+ variableNode = variableNodeQuery(definedAssertionNode),
49
+ termNode = termNodeQuery(definedAssertionNode),
50
+ negated = definedAssertionNegated; ///
51
+
52
+ if (false) {
53
+ ///
54
+ } else if (variableNode !== null) {
55
+ const variable = localContext.findVariableByVariableNode(variableNode);
56
+
57
+ if (variable !== null) {
58
+ const variableDefined = localContext.isVariableDefined(variable);
59
+
60
+ if (!negated) {
61
+ if (variableDefined) {
62
+ derivedDefinedAssertionVerified = true;
63
+ }
31
64
  }
32
- }
33
65
 
34
- if (negated) {
35
- if (!variableDefined) {
36
- definedAssertionVerified = true;
66
+ if (negated) {
67
+ if (!variableDefined) {
68
+ derivedDefinedAssertionVerified = true;
69
+ }
37
70
  }
38
71
  }
39
- }
40
- } else if (termNode !== null) {
41
- const terms = [],
42
- termVerified = verifyTerm(termNode, terms, localContext, () => {
43
- const verifiedAhead = true;
44
-
45
- return verifiedAhead;
46
- });
47
-
48
- if (termVerified) {
49
- const firstTerm = first(terms),
50
- term = firstTerm, ///
51
- termGrounded = localContext.isTermGrounded(term);
52
-
53
- if (!negated) {
54
- if (termGrounded) {
55
- definedAssertionVerified = true;
72
+ } else if (termNode !== null) {
73
+ const terms = [],
74
+ termVerified = verifyTerm(termNode, terms, localContext, () => {
75
+ const verifiedAhead = true;
76
+
77
+ return verifiedAhead;
78
+ });
79
+
80
+ if (termVerified) {
81
+ const firstTerm = first(terms),
82
+ term = firstTerm, ///
83
+ termGrounded = localContext.isTermGrounded(term);
84
+
85
+ if (!negated) {
86
+ if (termGrounded) {
87
+ derivedDefinedAssertionVerified = true;
88
+ }
56
89
  }
57
- }
58
90
 
59
- if (negated) {
60
- if (!termGrounded) {
61
- definedAssertionVerified = true;
91
+ if (negated) {
92
+ if (!termGrounded) {
93
+ derivedDefinedAssertionVerified = true;
94
+ }
62
95
  }
63
96
  }
64
97
  }
98
+
99
+ if (derivedDefinedAssertionVerified) {
100
+ localContext.debug(`...verified the derived '${definedAssertionString}' defined assertion.`, definedAssertionNode);
101
+ }
65
102
  }
66
103
 
67
- return definedAssertionVerified;
104
+ return derivedDefinedAssertionVerified;
105
+ }
106
+
107
+ function verifyStatedDefinedAssertion(definedAssertionNode, assignments, derived, localContext) {
108
+ let derivedStatedAssertionVerified = false;
109
+
110
+ if (!derived) {
111
+ const definedAssertionString = localContext.nodeAsString(definedAssertionNode);
112
+
113
+ localContext.debug(`The stated '${definedAssertionString}' defined assertion cannot be verified.`, definedAssertionNode);
114
+ }
115
+
116
+ return derivedStatedAssertionVerified;
68
117
  }
@@ -10,7 +10,7 @@ import { nodesQuery } from "../utilities/query";
10
10
  const declarationNodesQuery = nodesQuery("/frame/declaration"),
11
11
  metavariableNodesQuery = nodesQuery("/frame/metavariable");
12
12
 
13
- export default function verifyFrame(frameNode, frames, derived, localMetaContext) {
13
+ export default function verifyFrame(frameNode, frames, assignments, derived, localMetaContext) {
14
14
  let frameVerified;
15
15
 
16
16
  const frameString = localMetaContext.nodeAsString(frameNode);
@@ -55,7 +55,7 @@ function verifyDerivedFrameAssertion(frameAssertionNode, assignments, derived, l
55
55
  if (frameAssertion !== null) {
56
56
  const frames = [],
57
57
  frameNode = frameNodeQuery(frameAssertionNode),
58
- frameVerified = verifyFrame(frameNode, frames, derived, localMetaContext);
58
+ frameVerified = verifyFrame(frameNode, frames, assignments, derived, localMetaContext);
59
59
 
60
60
  if (frameVerified) {
61
61
  const firstFrame = first(frames),
@@ -114,7 +114,7 @@ function verifyStatedFrameAssertion(frameAssertionNode, assignments, derived, lo
114
114
  if (metavariableVerified) {
115
115
  const frames = [],
116
116
  frameNode = frameNodeQuery(frameAssertionNode),
117
- frameVerified = verifyFrame(frameNode, frames, derived, localMetaContext);
117
+ frameVerified = verifyFrame(frameNode, frames, assignments, derived, localMetaContext);
118
118
 
119
119
  if (frameVerified) {
120
120
  const firstFrame = first(frames),
@@ -1,20 +1,20 @@
1
1
  "use strict";
2
2
 
3
- import verifyMetaProofStep from "../verify/metaProofStep";
3
+ import verifyMetaproofStep from "../verify/metaproofStep";
4
4
 
5
5
  import { nodesQuery } from "../utilities/query";
6
6
 
7
- const metaProofStepNodesQuery = nodesQuery("/metaDerivation/metaProofStep|lastMetaProofStep");
7
+ const metaproofStepNodesQuery = nodesQuery("/metaDerivation/metaproofStep|lastMetaproofStep");
8
8
 
9
9
  export default function verifyMetaDerivation(metaDerivationNode, substitutions, localMetaContext) {
10
10
  let metaDerivationVerified;
11
11
 
12
- const metaProofStepNodes = metaProofStepNodesQuery(metaDerivationNode);
12
+ const metaproofStepNodes = metaproofStepNodesQuery(metaDerivationNode);
13
13
 
14
- metaDerivationVerified = metaProofStepNodes.every((metaProofStepNode) => {
15
- const metaProofStepVerified = verifyMetaProofStep(metaProofStepNode, substitutions, localMetaContext);
14
+ metaDerivationVerified = metaproofStepNodes.every((metaproofStepNode) => {
15
+ const metaproofStepVerified = verifyMetaproofStep(metaproofStepNode, substitutions, localMetaContext);
16
16
 
17
- if (metaProofStepVerified) {
17
+ if (metaproofStepVerified) {
18
18
  return true;
19
19
  }
20
20
  });
@@ -2,18 +2,18 @@
2
2
 
3
3
  import { nodesQuery } from "../utilities/query";
4
4
 
5
- const metaProofStepNodesQuery = nodesQuery("/metaSubDerivation/metaProofStep|lastMetaProofStep");
5
+ const metaproofStepNodesQuery = nodesQuery("/metaSubDerivation/metaproofStep|lastMetaproofStep");
6
6
 
7
7
  export default function verifyMetaSubDerivation(metaSubDerivationNode, substitutions, localMetaContext) {
8
8
  let metaSubDerivationVerified;
9
9
 
10
- const metaProofStepNodes = metaProofStepNodesQuery(metaSubDerivationNode);
10
+ const metaproofStepNodes = metaproofStepNodesQuery(metaSubDerivationNode);
11
11
 
12
- metaSubDerivationVerified = metaProofStepNodes.every((metaProofStepNode) => {
13
- const { verifyMetaProofStep } = verifyMetaSubDerivation,
14
- metaProofStepVerified = verifyMetaProofStep(metaProofStepNode, substitutions, localMetaContext);
12
+ metaSubDerivationVerified = metaproofStepNodes.every((metaproofStepNode) => {
13
+ const { verifyMetaproofStep } = verifyMetaSubDerivation,
14
+ metaproofStepVerified = verifyMetaproofStep(metaproofStepNode, substitutions, localMetaContext);
15
15
 
16
- if (metaProofStepVerified) {
16
+ if (metaproofStepVerified) {
17
17
  return true;
18
18
  }
19
19
  });
@@ -11,21 +11,21 @@ import verifyUnqualifiedMetastatement from "../verify/metastatement/unqualified"
11
11
  import { nodeQuery } from "../utilities/query";
12
12
  import { assignAssignment } from "../utilities/assignments";
13
13
 
14
- const metaSubproofNodeQuery = nodeQuery("/metaProofStep|lastMetaProofStep/metaSubproof!"),
14
+ const metaSubproofNodeQuery = nodeQuery("/metaproofStep|lastMetaproofStep/metaSubproof!"),
15
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!");
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
20
 
21
- export default function verifyMetaProofStep(metaProofStepNode, substitutions, localMetaContext) {
22
- let metaProofStepVerified = false;
21
+ export default function verifyMetaproofStep(metaproofStepNode, substitutions, localMetaContext) {
22
+ let metaproofStepVerified = false;
23
23
 
24
- const metaSubproofNode = metaSubproofNodeQuery(metaProofStepNode),
25
- qualifiedStatementNode = qualifiedStatementNodeQuery(metaProofStepNode),
26
- unqualifiedStatementNode = unqualifiedStatementNodeQuery(metaProofStepNode),
27
- qualifiedMetastatementNode = qualifiedMetastatementNodeQuery(metaProofStepNode),
28
- unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(metaProofStepNode);
24
+ const metaSubproofNode = metaSubproofNodeQuery(metaproofStepNode),
25
+ qualifiedStatementNode = qualifiedStatementNodeQuery(metaproofStepNode),
26
+ unqualifiedStatementNode = unqualifiedStatementNodeQuery(metaproofStepNode),
27
+ qualifiedMetastatementNode = qualifiedMetastatementNodeQuery(metaproofStepNode),
28
+ unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(metaproofStepNode);
29
29
 
30
30
  if (false) {
31
31
  ///
@@ -39,12 +39,53 @@ export default function verifyMetaProofStep(metaProofStepNode, substitutions, lo
39
39
 
40
40
  localMetaContext.addMetaproofStep(metaproofStep);
41
41
 
42
- metaProofStepVerified = true;
42
+ metaproofStepVerified = true;
43
43
  }
44
44
  } else if (qualifiedStatementNode !== null) {
45
- debugger
45
+ let qualifiedStatementVerified;
46
+
47
+ const assignments = [],
48
+ localContext = localMetaContext; ///
49
+
50
+ qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, assignments, localContext);
51
+
52
+ if (qualifiedStatementVerified) {
53
+ const assignmentAssigned = assignAssignment(assignments, localContext);
54
+
55
+ qualifiedStatementVerified = assignmentAssigned; ///
56
+ }
57
+
58
+ if (qualifiedStatementVerified) {
59
+ const statementNode = statementNodeQuery(qualifiedStatementNode),
60
+ metaproofStep = MetaproofStep.fromStatementNode(statementNode);
61
+
62
+ localMetaContext.addMetaproofStep(metaproofStep);
63
+
64
+ metaproofStepVerified = true;
65
+ }
46
66
  } else if (unqualifiedStatementNode !== null) {
47
- debugger
67
+ let qualifiedStatementVerified;
68
+
69
+ const assignments = [],
70
+ localContext = localMetaContext, ///
71
+ substitutions = null;
72
+
73
+ qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, substitutions, assignments, localContext);
74
+
75
+ if (qualifiedStatementVerified) {
76
+ const assignmentAssigned = assignAssignment(assignments, localContext);
77
+
78
+ qualifiedStatementVerified = assignmentAssigned; ///
79
+ }
80
+
81
+ if (qualifiedStatementVerified) {
82
+ const statementNode = statementNodeQuery(qualifiedStatementNode),
83
+ metaproofStep = MetaproofStep.fromStatementNode(statementNode);
84
+
85
+ localMetaContext.addMetaproofStep(metaproofStep);
86
+
87
+ metaproofStepVerified = qualifiedStatementVerified; ///
88
+ }
48
89
  } else if (qualifiedMetastatementNode !== null) {
49
90
  let qualifiedMetastatementVerified;
50
91
 
@@ -65,7 +106,7 @@ export default function verifyMetaProofStep(metaProofStepNode, substitutions, lo
65
106
 
66
107
  localMetaContext.addMetaproofStep(metaproofStep);
67
108
 
68
- metaProofStepVerified = qualifiedMetastatementVerified; ///
109
+ metaproofStepVerified = qualifiedMetastatementVerified; ///
69
110
  }
70
111
  } else if (unqualifiedMetastatementNode !== null) {
71
112
  let unqualifiedMetastatementVerified;
@@ -88,13 +129,13 @@ export default function verifyMetaProofStep(metaProofStepNode, substitutions, lo
88
129
 
89
130
  localMetaContext.addMetaproofStep(metaproofStep);
90
131
 
91
- metaProofStepVerified = true;
132
+ metaproofStepVerified = true;
92
133
  }
93
134
  }
94
135
 
95
- return metaProofStepVerified;
136
+ return metaproofStepVerified;
96
137
  }
97
138
 
98
139
  Object.assign(verifyMetaSubDerivation, {
99
- verifyMetaProofStep
140
+ verifyMetaproofStep
100
141
  });