occam-verify-cli 0.0.893 → 0.0.895

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.
@@ -13,7 +13,6 @@ const termNodeQuery = nodeQuery("/term!"),
13
13
  termVariableNodeQuery = nodeQuery("/term/variable!"),
14
14
  metastatementNodeQuery = nodeQuery("/metastatement!"),
15
15
  metaArgumentStatementNodeQuery = nodeQuery("/metaArgument/statement!"),
16
- metastatementStatementNodeQuery = nodeQuery("/metastatement/statement!"),
17
16
  metastatementMetavariableNodeQuery = nodeQuery("/metastatement/metavariable!"),
18
17
  metastatementSubstitutionNodeQuery = nodeQuery("/metastatement/substitution");
19
18
 
@@ -22,24 +21,6 @@ class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
22
21
  let nonTerminalNodeVerified;
23
22
 
24
23
  const nodeQueryMaps = [
25
- {
26
- nodeQueryA: metastatementMetavariableNodeQuery,
27
- nodeQueryB: metastatementStatementNodeQuery,
28
- verifyNodes: (nodeA, nodeB, substitutions, localContextA, localContextB, verifyAhead) => {
29
- let nonTerminalNodeVerified;
30
-
31
- const metastatementStatementNodeB = nodeB, ///
32
- metastatementMetavariableNodeA = nodeA, ///
33
- metastatementSubstitutionNodeA = metastatementSubstitutionNodeQuery(nonTerminalNodeA),
34
- metastatementMetavariableNodeVerifiedAgainstMetastatementStatementNode =
35
-
36
- this.verifyMetastatementMetavariableNodeAgainstMetastatementStatementNode(metastatementMetavariableNodeA, metastatementStatementNodeB, metastatementSubstitutionNodeA, substitutions, localContextA, localContextB, verifyAhead);
37
-
38
- nonTerminalNodeVerified = metastatementMetavariableNodeVerifiedAgainstMetastatementStatementNode; ///
39
-
40
- return nonTerminalNodeVerified;
41
- }
42
- },
43
24
  {
44
25
  nodeQueryA: metastatementMetavariableNodeQuery,
45
26
  nodeQueryB: metaArgumentStatementNodeQuery,
@@ -76,23 +57,6 @@ class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
76
57
  return nonTerminalNodeVerified;
77
58
  }
78
59
  },
79
- {
80
- nodeQueryA: metastatementStatementNodeQuery,
81
- nodeQueryB: statementNodeQuery,
82
- verifyNodes: (nodeA, nodeB, substitutions, localContextA, localContextB, verifyAhead) => {
83
- let nonTerminalNodeVerified;
84
-
85
- const statementNodeB = nodeB, ///
86
- metastatementStatementNodeA = nodeA, ///
87
- metastatementStatementNodeVerifiedAgainstStatementNode =
88
-
89
- this.verifyMetastatementStatementNodeAgainstStatementNode(metastatementStatementNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead);
90
-
91
- nonTerminalNodeVerified = metastatementStatementNodeVerifiedAgainstStatementNode; ///
92
-
93
- return nonTerminalNodeVerified;
94
- }
95
- },
96
60
  {
97
61
  nodeQueryA: metastatementNodeQuery,
98
62
  nodeQueryB: statementNodeQuery,
@@ -138,19 +102,6 @@ class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
138
102
  return nonTerminalNodeVerified;
139
103
  }
140
104
 
141
- verifyMetastatementMetavariableNodeAgainstMetastatementStatementNode(metastatementMetavariableNodeA, metastatementStatementNodeB, metastatementSubstitutionNodeA, substitutions, localContextA, localContextB, verifyAhead) {
142
- let metastatementMetavariableNodeVerifiedAgainstMetastatementStatementNode;
143
-
144
- const statementNode = metastatementStatementNodeB, ///
145
- metavariableNode = metastatementMetavariableNodeA, ///
146
- substitutionNode = metastatementSubstitutionNodeA, ///
147
- metavariableVerifiedAgainstStatement = verifyMetavariableAgainstStatement(metavariableNode, statementNode, substitutionNode, substitutions, localContextA, localContextB, verifyAhead)
148
-
149
- metastatementMetavariableNodeVerifiedAgainstMetastatementStatementNode = metavariableVerifiedAgainstStatement; ///
150
-
151
- return metastatementMetavariableNodeVerifiedAgainstMetastatementStatementNode;
152
- }
153
-
154
105
  verifyMetastatementMetavariableNodeAgainstMetaArgumentStatementNode(metastatementMetavariableNodeA, metaArgumentStatementNodeB, metastatementSubstitutionNodeA, substitutions, localContextA, localContextB, verifyAhead) {
155
106
  let metastatementMetavariableNodeVerifiedAgainstMetaArgumentStatementNode;
156
107
 
@@ -177,18 +128,6 @@ class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
177
128
  return metastatementMetavariableNodeVerifiedAgainstStatementNode;
178
129
  }
179
130
 
180
- verifyMetastatementStatementNodeAgainstStatementNode(metastatementStatementNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead) {
181
- let metastatementStatementNodeVerifiedAgainstStatementNode;
182
-
183
- const nonTerminalNodeA = metastatementStatementNodeA, ///
184
- nonTerminalNodeB = statementNodeB, ///
185
- nonTerminalNodeVerified = super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
186
-
187
- metastatementStatementNodeVerifiedAgainstStatementNode = nonTerminalNodeVerified; ///
188
-
189
- return metastatementStatementNodeVerifiedAgainstStatementNode;
190
- }
191
-
192
131
  verifyMetastatementNodeAgainstStatementNode(metastatementNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead) {
193
132
  let metastatementNodeVerifiedAgainstStatementNode;
194
133
 
@@ -32,7 +32,7 @@ export default function verifyMetaProofStep(metaProofStepNode, substitutions, lo
32
32
  } else if (metaSubproofNode !== null) {
33
33
  let metaSubproofVerified;
34
34
 
35
- metaSubproofVerified = verifyMetaSubproof(metaSubproofNode, localMetaContext);
35
+ metaSubproofVerified = verifyMetaSubproof(metaSubproofNode, substitutions, localMetaContext);
36
36
 
37
37
  if (metaSubproofVerified) {
38
38
  const metaproofStep = MetaproofStep.fromMetaSubproofNode(metaSubproofNode);
@@ -4,14 +4,14 @@ import { nodesQuery } from "../utilities/query";
4
4
 
5
5
  const metaProofStepNodesQuery = nodesQuery("/metaSubDerivation/metaProofStep|lastMetaProofStep");
6
6
 
7
- export default function verifyMetaSubDerivation(metaSubDerivationNode, localMetaContext) {
7
+ export default function verifyMetaSubDerivation(metaSubDerivationNode, substitutions, localMetaContext) {
8
8
  let metaSubDerivationVerified;
9
9
 
10
10
  const metaProofStepNodes = metaProofStepNodesQuery(metaSubDerivationNode);
11
11
 
12
12
  metaSubDerivationVerified = metaProofStepNodes.every((metaProofStepNode) => {
13
13
  const { verifyMetaProofStep } = verifyMetaSubDerivation,
14
- metaProofStepVerified = verifyMetaProofStep(metaProofStepNode, localMetaContext);
14
+ metaProofStepVerified = verifyMetaProofStep(metaProofStepNode, substitutions, localMetaContext);
15
15
 
16
16
  if (metaProofStepVerified) {
17
17
  return true;
@@ -9,7 +9,7 @@ import { nodeQuery, nodesQuery } from "../utilities/query";
9
9
  const suppositionNodesQuery = nodesQuery("/metaSubproof/supposition"),
10
10
  metaSubDerivationNodeQuery = nodeQuery("/metaSubproof/metaSubDerivation");
11
11
 
12
- export default function verifyMetaSubproof(metaSubproofNode, localMetaContext) {
12
+ export default function verifyMetaSubproof(metaSubproofNode, substitutions, localMetaContext) {
13
13
  let metaSubproofVerified = false;
14
14
 
15
15
  localMetaContext = LocalMetaContext.fromLocalMetaContext(localMetaContext); ///
@@ -20,7 +20,7 @@ export default function verifyMetaSubproof(metaSubproofNode, localMetaContext) {
20
20
 
21
21
  if (metaSuppositionsVerified) {
22
22
  const metaSubDerivationNode = metaSubDerivationNodeQuery(metaSubproofNode),
23
- metaSubDerivationVerified = verifyMetaSubDerivation(metaSubDerivationNode, localMetaContext);
23
+ metaSubDerivationVerified = verifyMetaSubDerivation(metaSubDerivationNode, substitutions, localMetaContext);
24
24
 
25
25
  if (metaSubDerivationVerified) {
26
26
  metaSubproofVerified = true;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- import verifyMetastatement from "../../verify/metastatement";
4
3
  import verifyMetavariableAgainstMetastatement from "../../verify/metavariableAgainstMetastatement";
5
4
 
6
5
  import { nodeQuery } from "../../utilities/query";
@@ -15,28 +14,30 @@ export default function verifyQualifiedMetastatement(qualifiedMetastatementNode,
15
14
 
16
15
  localMetaContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement...`, qualifiedMetastatementNode);
17
16
 
18
- const derived = false,
19
- metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
20
- metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived, localMetaContext, () => {
21
- const verifiedAhead = true;
17
+ const metavariableNode = metavariableNodeQuery(qualifiedMetastatementNode),
18
+ verifyQualifiedMetastatementFunctions = [
19
+ verifyQualifiedMetastatementAAgainstRule,
20
+ verifyQualifiedMetastatementAAgainstReference
21
+ ];
22
22
 
23
- return verifiedAhead;
24
- });
23
+ qualifiedMetastatementVerified = verifyQualifiedMetastatementFunctions.some((verifyQualifiedMetastatementFunction) => { ///
24
+ const qualifiedMetastatementVerified = verifyQualifiedMetastatementFunction(qualifiedMetastatementNode, metavariableNode, substitutions, localMetaContext);
25
25
 
26
- if (metastatementVerified) {
27
- const metavariableNode = metavariableNodeQuery(qualifiedMetastatementNode),
28
- verifyQualifiedMetastatementFunctions = [
29
- verifyQualifiedMetastatementAAgainstRule,
30
- verifyQualifiedMetastatementAAgainstReference
31
- ];
32
-
33
- qualifiedMetastatementVerified = verifyQualifiedMetastatementFunctions.some((verifyQualifiedMetastatementFunction) => { ///
34
- const qualifiedMetastatementVerified = verifyQualifiedMetastatementFunction(qualifiedMetastatementNode, metavariableNode, substitutions, localMetaContext);
35
-
36
- if (qualifiedMetastatementVerified) {
37
- return true;
38
- }
39
- });
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, localMetaContext, () => {
35
+ const verifiedAhead = true;
36
+
37
+ return verifiedAhead;
38
+ });
39
+
40
+ qualifiedMetastatementVerified = metastatementVerified; ///
40
41
  }
41
42
 
42
43
  if (qualifiedMetastatementVerified) {
@@ -98,3 +99,32 @@ function verifyQualifiedMetastatementAAgainstReference(qualifiedMetastatementNod
98
99
 
99
100
  return qualifiedMetastatementVerifiedAgainstReference;
100
101
  }
102
+
103
+ function verifyMetastatement(metastatementNode, assignments, derived, localMetaContext) {
104
+ let metastatementVerified;
105
+
106
+ const metastatementString = localMetaContext.nodeAsString(metastatementNode);
107
+
108
+ localMetaContext.trace(`Verifying the '${metastatementString}' metastatement...`, metastatementNode);
109
+
110
+ const verifyMetaStatementFunctions = [
111
+ ///
112
+ ];
113
+
114
+ verifyMetaStatementFunctions.some((verifyStatementFunction) => {
115
+ const metastatementVerified = verifyStatementFunction(metastatementNode, assignments, derived, localMetaContext);
116
+
117
+ if (metastatementVerified) {
118
+ return true;
119
+ }
120
+ });
121
+
122
+ metastatementVerified = true; ///
123
+
124
+ if (metastatementVerified) {
125
+ localMetaContext.debug(`...verified the '${metastatementString}' metastatement.`, metastatementNode);
126
+ }
127
+
128
+ return metastatementVerified;
129
+ }
130
+
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import LocalContext from "../context/local";
3
4
  import MetaproofStep from "../step/metaproof";
4
5
  import verifyRuleSubproof from "../verify/ruleSubproof";
5
6
  import verifyRuleSubDerivation from "../verify/ruleSubDerivation";
@@ -11,7 +12,8 @@ import verifyUnqualifiedMetastatement from "../verify/metastatement/unqualified"
11
12
  import { nodeQuery } from "../utilities/query";
12
13
  import { assignAssignment } from "../utilities/assignments";
13
14
 
14
- const ruleSubproofNodeQuery = nodeQuery("/ruleProofStep|lastRuleProofStep/ruleSubproof!"),
15
+ const statementNodeQuery = nodeQuery("/qualifiedStatement|unqualifiedStatement/statement!"),
16
+ ruleSubproofNodeQuery = nodeQuery("/ruleProofStep|lastRuleProofStep/ruleSubproof!"),
15
17
  metastatementNodeQuery = nodeQuery("/qualifiedMetastatement|unqualifiedMetastatement/metastatement!"),
16
18
  qualifiedStatementNodeQuery = nodeQuery("/ruleProofStep|lastRuleProofStep/qualifiedStatement!"),
17
19
  unqualifiedStatementNodeQuery = nodeQuery("/ruleProofStep|lastRuleProofStep/unqualifiedStatement!"),
@@ -42,7 +44,27 @@ export default function verifyRuleProofStep(ruleProofStepNode, localMetaContext)
42
44
  ruleProofStepVerified = true;
43
45
  }
44
46
  } else if (qualifiedStatementNode !== null) {
45
- debugger
47
+ let qualifiedStatementVerified;
48
+
49
+ const assignments = [],
50
+ localContext = LocalContext.fromLocalMetaContext(localMetaContext);
51
+
52
+ qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, assignments, localContext);
53
+
54
+ if (qualifiedStatementVerified) {
55
+ const assignmentAssigned = assignAssignment(assignments, localContext);
56
+
57
+ qualifiedStatementVerified = assignmentAssigned; ///
58
+ }
59
+
60
+ if (qualifiedStatementVerified) {
61
+ const statementNode = statementNodeQuery(qualifiedStatementNode),
62
+ metaproofStep = MetaproofStep.fromStatementNode(statementNode);
63
+
64
+ localMetaContext.addMetaproofStep(metaproofStep);
65
+
66
+ ruleProofStepVerified = true;
67
+ }
46
68
  } else if (unqualifiedStatementNode !== null) {
47
69
  debugger
48
70
  } else if (qualifiedMetastatementNode !== null) {
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import verifyStatement from "../../verify/statement";
4
-
5
3
  import { nodeQuery } from "../../utilities/query";
4
+ import { verifyStatementAsEquality, verifyStatementAsTypeAssertion } from "../../verify/statement";
6
5
 
7
6
  const statementNodeQuery = nodeQuery("/qualifiedStatement/statement!"),
8
7
  metavariableNodeQuery = nodeQuery("/qualifiedStatement/reference!/metavariable!");
@@ -14,31 +13,33 @@ export default function verifyQualifiedStatement(qualifiedStatementNode, assignm
14
13
 
15
14
  localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement...`, qualifiedStatementNode);
16
15
 
17
- const derived = false,
18
- statementNode = statementNodeQuery(qualifiedStatementNode),
19
- statementVerified = verifyStatement(statementNode, assignments, derived, localContext, () => {
20
- const verifiedAhead = true;
16
+ const metavariableNode = metavariableNodeQuery(qualifiedStatementNode),
17
+ verifyQualifiedStatementFunctions = [
18
+ verifyQualifiedStatementAAgainstRule,
19
+ verifyQualifiedStatementAAgainstAxiom,
20
+ verifyQualifiedStatementAAgainstLemma,
21
+ verifyQualifiedStatementAAgainstTheorem,
22
+ verifyQualifiedStatementAAgainstConjecture
23
+ ];
21
24
 
22
- return verifiedAhead;
23
- });
25
+ qualifiedStatementVerified = verifyQualifiedStatementFunctions.some((verifyQualifiedStatementFunction) => { ///
26
+ const qualifiedStatementVerified = verifyQualifiedStatementFunction(qualifiedStatementNode, metavariableNode, localContext);
24
27
 
25
- if (statementVerified) {
26
- const metavariableNode = metavariableNodeQuery(qualifiedStatementNode),
27
- verifyQualifiedStatementFunctions = [
28
- verifyQualifiedStatementAAgainstRule,
29
- verifyQualifiedStatementAAgainstAxiom,
30
- verifyQualifiedStatementAAgainstLemma,
31
- verifyQualifiedStatementAAgainstTheorem,
32
- verifyQualifiedStatementAAgainstConjecture
33
- ];
34
-
35
- qualifiedStatementVerified = verifyQualifiedStatementFunctions.some((verifyQualifiedStatementFunction) => { ///
36
- const qualifiedStatementVerified = verifyQualifiedStatementFunction(qualifiedStatementNode, metavariableNode, localContext);
37
-
38
- if (qualifiedStatementVerified) {
39
- return true;
40
- }
41
- });
28
+ if (qualifiedStatementVerified) {
29
+ return true;
30
+ }
31
+ });
32
+
33
+ if (qualifiedStatementVerified) {
34
+ const derived = false,
35
+ statementNode = statementNodeQuery(qualifiedStatementNode),
36
+ statementVerified = verifyStatement(statementNode, assignments, derived, localContext, () => {
37
+ const verifiedAhead = true;
38
+
39
+ return verifiedAhead;
40
+ });
41
+
42
+ qualifiedStatementVerified = statementVerified; ///
42
43
  }
43
44
 
44
45
  if (qualifiedStatementVerified) {
@@ -167,3 +168,32 @@ function verifyQualifiedStatementAAgainstConjecture(qualifiedStatementNode, meta
167
168
 
168
169
  return qualifiedStatementVerifiedAgainstConjecture;
169
170
  }
171
+
172
+ function verifyStatement(statementNode, assignments, derived, localContext, verifyAhead) {
173
+ let statementVerified;
174
+
175
+ const statementString = localContext.nodeAsString(statementNode);
176
+
177
+ localContext.trace(`Verifying the '${statementString}' statement...`, statementNode);
178
+
179
+ const verifyStatementFunctions = [
180
+ verifyStatementAsEquality,
181
+ verifyStatementAsTypeAssertion
182
+ ];
183
+
184
+ verifyStatementFunctions.some((verifyStatementFunction) => {
185
+ const statementVerified = verifyStatementFunction(statementNode, assignments, derived, localContext, verifyAhead);
186
+
187
+ if (statementVerified) {
188
+ return true;
189
+ }
190
+ });
191
+
192
+ statementVerified = true; ///
193
+
194
+ if (statementVerified) {
195
+ localContext.debug(`...verified the '${statementString}' statement.`, statementNode);
196
+ }
197
+
198
+ return statementVerified;
199
+ }
@@ -71,7 +71,7 @@ Object.assign(statementAgainstCombinatorNodesVerifier, {
71
71
 
72
72
  export default verifyStatement;
73
73
 
74
- function verifyStatementAsEquality(statementNode, assignments, derived, localContext, verifyAhead) {
74
+ export function verifyStatementAsEquality(statementNode, assignments, derived, localContext, verifyAhead) {
75
75
  let statementVerifiedAsEquality = false;
76
76
 
77
77
  const equalityNode = equalityNodeQuery(statementNode);
@@ -93,7 +93,7 @@ function verifyStatementAsEquality(statementNode, assignments, derived, localCon
93
93
  return statementVerifiedAsEquality;
94
94
  }
95
95
 
96
- function verifyStatementAsTypeAssertion(statementNode, assignments, derived, localContext, verifyAhead) {
96
+ export function verifyStatementAsTypeAssertion(statementNode, assignments, derived, localContext, verifyAhead) {
97
97
  let statementVerifiedAsTypeAssertion = false;
98
98
 
99
99
  const typeAssertionNode = typeAssertionNodeQuery(statementNode);