occam-verify-cli 0.0.919 → 0.0.921

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 (37) hide show
  1. package/lib/utilities/verify.js +22 -6
  2. package/lib/verifier/nodes/metaLevel.js +22 -2
  3. package/lib/verify/metaLemma.js +2 -2
  4. package/lib/verify/metaSubproof.js +3 -3
  5. package/lib/verify/metaSupposition.js +2 -2
  6. package/lib/verify/metaproof.js +4 -4
  7. package/lib/verify/metastatement.js +5 -1
  8. package/lib/verify/metastatementAsContainedAssertion.js +109 -0
  9. package/lib/verify/metastatementAsDefinedAssertion.js +132 -0
  10. package/lib/verify/metatheorem.js +2 -2
  11. package/lib/verify/premise.js +2 -2
  12. package/lib/verify/rule.js +9 -8
  13. package/lib/verify/statementAsContainedAssertion.js +15 -20
  14. package/package.json +4 -4
  15. package/src/utilities/verify.js +20 -4
  16. package/src/verifier/nodes/metaLevel.js +32 -1
  17. package/src/verify/metaLemma.js +2 -1
  18. package/src/verify/metaSubproof.js +3 -3
  19. package/src/verify/metaSupposition.js +1 -2
  20. package/src/verify/metaproof.js +5 -6
  21. package/src/verify/metastatement.js +4 -0
  22. package/src/verify/metastatementAsContainedAssertion.js +127 -0
  23. package/src/verify/metastatementAsDefinedAssertion.js +156 -0
  24. package/src/verify/metatheorem.js +2 -1
  25. package/src/verify/premise.js +1 -2
  26. package/src/verify/rule.js +11 -8
  27. package/src/verify/statementAsContainedAssertion.js +21 -26
  28. package/lib/verify/ruleDerivation.js +0 -31
  29. package/lib/verify/ruleProof.js +0 -32
  30. package/lib/verify/ruleProofStep.js +0 -98
  31. package/lib/verify/ruleSubDerivation.js +0 -25
  32. package/lib/verify/ruleSubproof.js +0 -35
  33. package/src/verify/ruleDerivation.js +0 -23
  34. package/src/verify/ruleProof.js +0 -31
  35. package/src/verify/ruleProofStep.js +0 -139
  36. package/src/verify/ruleSubDerivation.js +0 -22
  37. package/src/verify/ruleSubproof.js +0 -34
@@ -0,0 +1,127 @@
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
+ }
@@ -0,0 +1,156 @@
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
+ }
@@ -43,7 +43,8 @@ export default function verifyMetatheorem(metatheoremNode, fileContext) {
43
43
  const metaproofNode = metaproofNodeQuery(metatheoremNode),
44
44
  firstMetaConsequent = first(metaConsequents),
45
45
  metaConsequent = firstMetaConsequent, ///
46
- metaproofVerified = verifyMetaproof(metaproofNode, metaConsequent, substitutions, localContext);
46
+ metastatementNode = metaConsequent.getMetastatementNode(),
47
+ metaproofVerified = verifyMetaproof(metaproofNode, metastatementNode, substitutions, localContext);
47
48
 
48
49
  if (metaproofVerified) {
49
50
  const metatheorem = Metatheorem.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, metaSuppositions, metaConsequent, substitutions, fileContext);
@@ -41,8 +41,7 @@ export default function verifyPremise(premiseNode, premises, localContext) {
41
41
  unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext);
42
42
 
43
43
  if (unqualifiedMetastatementVerified) {
44
- const localContext = localContext, ///
45
- assignmentAssigned = assignAssignment(assignments, localContext);
44
+ const assignmentAssigned = assignAssignment(assignments, localContext);
46
45
 
47
46
  premiseVerified = assignmentAssigned; ///
48
47
  }
@@ -3,7 +3,7 @@
3
3
  import Rule from "../rule";
4
4
  import verifyLabels from "../verify/labels";
5
5
  import verifyPremises from "../verify/premises";
6
- import verifyRuleProof from "../verify/ruleProof";
6
+ import verifyMetaproof from "../verify/metaproof";
7
7
  import verifyConclusion from "../verify/conclusion";
8
8
  import MetaLevelLocalContext from "../context/local/metaLevel";
9
9
 
@@ -12,7 +12,7 @@ import { nodeQuery, nodesQuery } from "../utilities/query";
12
12
 
13
13
  const labelNodesQuery = nodesQuery("/rule/label"),
14
14
  premisesNodeQuery = nodesQuery("/rule/premise"),
15
- ruleProofNodeQuery = nodeQuery("/rule/ruleProof!"),
15
+ metaproofNodeQuery = nodeQuery("/rule/metaproof!"),
16
16
  conclusionNodeQuery = nodeQuery("/rule/conclusion!");
17
17
 
18
18
  export default function verifyRule(ruleNode, fileContext) {
@@ -39,17 +39,20 @@ export default function verifyRule(ruleNode, fileContext) {
39
39
  conclusionVerified = verifyConclusion(conclusionNode, conclusions, localContext);
40
40
 
41
41
  if (conclusionVerified) {
42
- const ruleProofNode = ruleProofNodeQuery(ruleNode),
43
- firstConclusion = first(conclusions),
42
+ let metaproofVerified = true; ///
43
+
44
+ const firstConclusion = first(conclusions),
45
+ metaproofNode = metaproofNodeQuery(ruleNode),
44
46
  conclusion = firstConclusion; ///
45
47
 
46
- let ruleProofVerified = true; ///
48
+ if (metaproofNode !== null) {
49
+ const substitutions = [],
50
+ metastatementNode = conclusion.getMetastatementNode();
47
51
 
48
- if (ruleProofNode !== null) {
49
- ruleProofVerified = verifyRuleProof(ruleProofNode, conclusion, localContext);
52
+ metaproofVerified = verifyMetaproof(metaproofNode, metastatementNode, substitutions, localContext);
50
53
  }
51
54
 
52
- if (ruleProofVerified) {
55
+ if (metaproofVerified) {
53
56
  const rule = Rule.fromLabelsPremisesConclusionAndFileContext(labels, premises, conclusion, fileContext);
54
57
 
55
58
  fileContext.addRule(rule);
@@ -6,9 +6,9 @@ import { CONTAINED } from "../constants";
6
6
  import { isStatementNegated } from "../utilities/verify";
7
7
  import { nodeQuery, nodesQuery } from "../utilities/query";
8
8
 
9
- const variableNodeQuery = nodeQuery("/statement/term/variable!"),
10
- operatorTerminalNodesQuery = nodesQuery("/statement/@operator"),
11
- statementVariableNodesQuery = nodesQuery("/statement/metaArgument/statement//variable");
9
+ const termNodeQuery = nodeQuery("/statement/term!"),
10
+ statementTermNodesQuery = nodesQuery("/statement/metaArgument/statement//term"),
11
+ operatorTerminalNodesQuery = nodesQuery("/statement/@operator");
12
12
 
13
13
  export default function verifyStatementAsContainedAssertion(statementNode, assignments, derived, localContext) {
14
14
  let statementVerifiedAsContainedAssertion;
@@ -50,31 +50,26 @@ function verifyStatementAsDerivedContainedAssertion(statementNode, assignments,
50
50
  localContext.trace(`Verifying the derived '${statementString}' statement as a contained assertion...`, statementNode);
51
51
 
52
52
  const statementNegated = isStatementNegated(statementNode),
53
- variableNode = variableNodeQuery(statementNode),
54
- negated = statementNegated; ///
55
-
56
- if (false) {
57
- ///
58
- } else if (variableNode !== null) {
59
- const statementVariableNodes = statementVariableNodesQuery(statementNode),
60
- variableNodeMatchesMetaArgumentVariableNode = statementVariableNodes.some((statementVariableNode) => {
61
- const variableNodeMatchesMetaArgumentVariableNode = variableNode.match(statementVariableNode);
62
-
63
- if (variableNodeMatchesMetaArgumentVariableNode) {
64
- return true;
65
- }
66
- });
67
-
68
- if (!negated) {
69
- if (variableNodeMatchesMetaArgumentVariableNode) {
70
- statementVerifiedAsDefinedContainedAssertion = true;
71
- }
53
+ termNode = termNodeQuery(statementNode),
54
+ negated = statementNegated, ///
55
+ statementTermNodes = statementTermNodesQuery(statementNode),
56
+ termNodeMatchesMetaArgumentVariableNode = statementTermNodes.some((statementTermNode) => {
57
+ const termNodeMatchesMetaArgumentVariableNode = termNode.match(statementTermNode);
58
+
59
+ if (termNodeMatchesMetaArgumentVariableNode) {
60
+ return true;
61
+ }
62
+ });
63
+
64
+ if (!negated) {
65
+ if (termNodeMatchesMetaArgumentVariableNode) {
66
+ statementVerifiedAsDefinedContainedAssertion = true;
72
67
  }
68
+ }
73
69
 
74
- if (negated) {
75
- if (!variableNodeMatchesMetaArgumentVariableNode) {
76
- statementVerifiedAsDefinedContainedAssertion = true;
77
- }
70
+ if (negated) {
71
+ if (!termNodeMatchesMetaArgumentVariableNode) {
72
+ statementVerifiedAsDefinedContainedAssertion = true;
78
73
  }
79
74
  }
80
75
 
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return verifyRuleDerivation;
9
- }
10
- });
11
- var _ruleProofStep = /*#__PURE__*/ _interop_require_default(require("../verify/ruleProofStep"));
12
- var _query = require("../utilities/query");
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
18
- var ruleProofStepNodesQuery = (0, _query.nodesQuery)("/ruleDerivation/ruleProofStep|lastRuleProofStep");
19
- function verifyRuleDerivation(ruleDerivationNode, localContext) {
20
- var ruleDerivationVerified;
21
- var ruleProofStepNodes = ruleProofStepNodesQuery(ruleDerivationNode);
22
- ruleDerivationVerified = ruleProofStepNodes.every(function(ruleProofStepNode) {
23
- var ruleProofStepVerified = (0, _ruleProofStep.default)(ruleProofStepNode, localContext);
24
- if (ruleProofStepVerified) {
25
- return true;
26
- }
27
- });
28
- return ruleDerivationVerified;
29
- }
30
-
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZURlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlSdWxlUHJvb2ZTdGVwIGZyb20gXCIuLi92ZXJpZnkvcnVsZVByb29mU3RlcFwiO1xuXG5pbXBvcnQgeyBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBydWxlUHJvb2ZTdGVwTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcnVsZURlcml2YXRpb24vcnVsZVByb29mU3RlcHxsYXN0UnVsZVByb29mU3RlcFwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5UnVsZURlcml2YXRpb24ocnVsZURlcml2YXRpb25Ob2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgcnVsZVByb29mU3RlcE5vZGVzID0gcnVsZVByb29mU3RlcE5vZGVzUXVlcnkocnVsZURlcml2YXRpb25Ob2RlKTtcblxuICBydWxlRGVyaXZhdGlvblZlcmlmaWVkID0gcnVsZVByb29mU3RlcE5vZGVzLmV2ZXJ5KChydWxlUHJvb2ZTdGVwTm9kZSkgPT4ge1xuICAgIGNvbnN0IHJ1bGVQcm9vZlN0ZXBWZXJpZmllZCA9IHZlcmlmeVJ1bGVQcm9vZlN0ZXAocnVsZVByb29mU3RlcE5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAocnVsZVByb29mU3RlcFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBydWxlRGVyaXZhdGlvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVJ1bGVEZXJpdmF0aW9uIiwicnVsZVByb29mU3RlcE5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicnVsZURlcml2YXRpb25Ob2RlIiwibG9jYWxDb250ZXh0IiwicnVsZURlcml2YXRpb25WZXJpZmllZCIsInJ1bGVQcm9vZlN0ZXBOb2RlcyIsImV2ZXJ5IiwicnVsZVByb29mU3RlcE5vZGUiLCJydWxlUHJvb2ZTdGVwVmVyaWZpZWQiLCJ2ZXJpZnlSdWxlUHJvb2ZTdGVwIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQXdCQTs7O29FQU5RO3FCQUVMOzs7Ozs7QUFFM0IsSUFBTUMsMEJBQTBCQyxJQUFBQSxpQkFBVSxFQUFDO0FBRTVCLFNBQVNGLHFCQUFxQkcsa0JBQWtCLEVBQUVDLFlBQVk7SUFDM0UsSUFBSUM7SUFFSixJQUFNQyxxQkFBcUJMLHdCQUF3QkU7SUFFbkRFLHlCQUF5QkMsbUJBQW1CQyxLQUFLLENBQUMsU0FBQ0M7UUFDakQsSUFBTUMsd0JBQXdCQyxJQUFBQSxzQkFBbUIsRUFBQ0YsbUJBQW1CSjtRQUVyRSxJQUFJSyx1QkFBdUI7WUFDekIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPSjtBQUNUIn0=
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return verifyRuleProof;
9
- }
10
- });
11
- var _ruleDerivation = /*#__PURE__*/ _interop_require_default(require("../verify/ruleDerivation"));
12
- var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../context/local/metaLevel"));
13
- var _query = require("../utilities/query");
14
- function _interop_require_default(obj) {
15
- return obj && obj.__esModule ? obj : {
16
- default: obj
17
- };
18
- }
19
- var ruleDerivationNodeQuery = (0, _query.nodeQuery)("/ruleProof/ruleDerivation!");
20
- function verifyRuleProof(ruleProofNode, conclusion, localContext) {
21
- var ruleProofVerified = false;
22
- var metaLevelLocalContext = _metaLevel.default.fromLocalContext(localContext);
23
- localContext = metaLevelLocalContext; ///
24
- var ruleDerivationNode = ruleDerivationNodeQuery(ruleProofNode), ruleDerivationVerified = (0, _ruleDerivation.default)(ruleDerivationNode, localContext);
25
- if (ruleDerivationVerified) {
26
- var lastMetaproofStep = localContext.getLastMetaproofStep(), metaproofStep = lastMetaproofStep, metastatementNode = metaproofStep.getMetastatementNode(), conclusionMetastatementNode = conclusion.getMetastatementNode(), metastatementNodeMatchConclusionMetastatementNode = metastatementNode.match(conclusionMetastatementNode);
27
- ruleProofVerified = metastatementNodeMatchConclusionMetastatementNode; ///
28
- }
29
- return ruleProofVerified;
30
- }
31
-
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZVByb29mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5UnVsZURlcml2YXRpb24gZnJvbSBcIi4uL3ZlcmlmeS9ydWxlRGVyaXZhdGlvblwiO1xuaW1wb3J0IE1ldGFMZXZlbExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbC9tZXRhTGV2ZWxcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBydWxlRGVyaXZhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ydWxlUHJvb2YvcnVsZURlcml2YXRpb24hXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlUHJvb2YocnVsZVByb29mTm9kZSwgY29uY2x1c2lvbiwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBydWxlUHJvb2ZWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGFMZXZlbExvY2FsQ29udGV4dCA9IE1ldGFMZXZlbExvY2FsQ29udGV4dC5mcm9tTG9jYWxDb250ZXh0KGxvY2FsQ29udGV4dCk7XG5cbiAgbG9jYWxDb250ZXh0ID0gbWV0YUxldmVsTG9jYWxDb250ZXh0OyAvLy9cblxuICBjb25zdCBydWxlRGVyaXZhdGlvbk5vZGUgPSBydWxlRGVyaXZhdGlvbk5vZGVRdWVyeShydWxlUHJvb2ZOb2RlKSxcbiAgICAgICAgcnVsZURlcml2YXRpb25WZXJpZmllZCA9IHZlcmlmeVJ1bGVEZXJpdmF0aW9uKHJ1bGVEZXJpdmF0aW9uTm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICBpZiAocnVsZURlcml2YXRpb25WZXJpZmllZCkge1xuICAgIGNvbnN0IGxhc3RNZXRhcHJvb2ZTdGVwID0gbG9jYWxDb250ZXh0LmdldExhc3RNZXRhcHJvb2ZTdGVwKCksXG4gICAgICAgICAgbWV0YXByb29mU3RlcCA9IGxhc3RNZXRhcHJvb2ZTdGVwLCAvLy9cbiAgICAgICAgICBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFwcm9vZlN0ZXAuZ2V0TWV0YXN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgICBjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUgPSBjb25jbHVzaW9uLmdldE1ldGFzdGF0ZW1lbnROb2RlKCksXG4gICAgICAgICAgbWV0YXN0YXRlbWVudE5vZGVNYXRjaENvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlLm1hdGNoKGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBydWxlUHJvb2ZWZXJpZmllZCA9IG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hDb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGU7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBydWxlUHJvb2ZWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlSdWxlUHJvb2YiLCJydWxlRGVyaXZhdGlvbk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInJ1bGVQcm9vZk5vZGUiLCJjb25jbHVzaW9uIiwibG9jYWxDb250ZXh0IiwicnVsZVByb29mVmVyaWZpZWQiLCJtZXRhTGV2ZWxMb2NhbENvbnRleHQiLCJNZXRhTGV2ZWxMb2NhbENvbnRleHQiLCJmcm9tTG9jYWxDb250ZXh0IiwicnVsZURlcml2YXRpb25Ob2RlIiwicnVsZURlcml2YXRpb25WZXJpZmllZCIsInZlcmlmeVJ1bGVEZXJpdmF0aW9uIiwibGFzdE1ldGFwcm9vZlN0ZXAiLCJnZXRMYXN0TWV0YXByb29mU3RlcCIsIm1ldGFwcm9vZlN0ZXAiLCJtZXRhc3RhdGVtZW50Tm9kZSIsImdldE1ldGFzdGF0ZW1lbnROb2RlIiwiY29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlIiwibWV0YXN0YXRlbWVudE5vZGVNYXRjaENvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSIsIm1hdGNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQXdCQTs7O3FFQVBTO2dFQUNDO3FCQUVSOzs7Ozs7QUFFMUIsSUFBTUMsMEJBQTBCQyxJQUFBQSxnQkFBUyxFQUFDO0FBRTNCLFNBQVNGLGdCQUFnQkcsYUFBYSxFQUFFQyxVQUFVLEVBQUVDLFlBQVk7SUFDN0UsSUFBSUMsb0JBQW9CO0lBRXhCLElBQU1DLHdCQUF3QkMsa0JBQXFCLENBQUNDLGdCQUFnQixDQUFDSjtJQUVyRUEsZUFBZUUsdUJBQXVCLEdBQUc7SUFFekMsSUFBTUcscUJBQXFCVCx3QkFBd0JFLGdCQUM3Q1EseUJBQXlCQyxJQUFBQSx1QkFBb0IsRUFBQ0Ysb0JBQW9CTDtJQUV4RSxJQUFJTSx3QkFBd0I7UUFDMUIsSUFBTUUsb0JBQW9CUixhQUFhUyxvQkFBb0IsSUFDckRDLGdCQUFnQkYsbUJBQ2hCRyxvQkFBb0JELGNBQWNFLG9CQUFvQixJQUN0REMsOEJBQThCZCxXQUFXYSxvQkFBb0IsSUFDN0RFLG9EQUFvREgsa0JBQWtCSSxLQUFLLENBQUNGO1FBRWxGWixvQkFBb0JhLG1EQUFvRCxHQUFHO0lBQzdFO0lBRUEsT0FBT2I7QUFDVCJ9
@@ -1,98 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return verifyRuleProofStep;
9
- }
10
- });
11
- var _metaproof = /*#__PURE__*/ _interop_require_default(require("../step/metaproof"));
12
- var _ruleSubproof = /*#__PURE__*/ _interop_require_default(require("../verify/ruleSubproof"));
13
- var _ruleSubDerivation = /*#__PURE__*/ _interop_require_default(require("../verify/ruleSubDerivation"));
14
- var _qualified = /*#__PURE__*/ _interop_require_default(require("../verify/statement/qualified"));
15
- var _unqualified = /*#__PURE__*/ _interop_require_default(require("../verify/statement/unqualified"));
16
- var _qualified1 = /*#__PURE__*/ _interop_require_default(require("../verify/metastatement/qualified"));
17
- var _unqualified1 = /*#__PURE__*/ _interop_require_default(require("../verify/metastatement/unqualified"));
18
- var _query = require("../utilities/query");
19
- var _assignments = require("../utilities/assignments");
20
- function _interop_require_default(obj) {
21
- return obj && obj.__esModule ? obj : {
22
- default: obj
23
- };
24
- }
25
- var statementNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement|unqualifiedStatement/statement!"), ruleSubproofNodeQuery = (0, _query.nodeQuery)("/ruleProofStep|lastRuleProofStep/ruleSubproof!"), metastatementNodeQuery = (0, _query.nodeQuery)("/qualifiedMetastatement|unqualifiedMetastatement/metastatement!"), qualifiedStatementNodeQuery = (0, _query.nodeQuery)("/ruleProofStep|lastRuleProofStep/qualifiedStatement!"), unqualifiedStatementNodeQuery = (0, _query.nodeQuery)("/ruleProofStep|lastRuleProofStep/unqualifiedStatement!"), qualifiedMetastatementNodeQuery = (0, _query.nodeQuery)("/ruleProofStep|lastRuleProofStep/qualifiedMetastatement!"), unqualifiedMetastatementNodeQuery = (0, _query.nodeQuery)("/ruleProofStep|lastRuleProofStep/unqualifiedMetastatement!");
26
- function verifyRuleProofStep(ruleProofStepNode, localContext) {
27
- var ruleProofStepVerified = false;
28
- var ruleSubproofNode = ruleSubproofNodeQuery(ruleProofStepNode), qualifiedStatementNode = qualifiedStatementNodeQuery(ruleProofStepNode), unqualifiedStatementNode = unqualifiedStatementNodeQuery(ruleProofStepNode), qualifiedMetastatementNode = qualifiedMetastatementNodeQuery(ruleProofStepNode), unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(ruleProofStepNode);
29
- if (false) {
30
- ///
31
- } else if (ruleSubproofNode !== null) {
32
- var ruleSubproofVerified;
33
- ruleSubproofVerified = (0, _ruleSubproof.default)(ruleSubproofNode, localContext);
34
- if (ruleSubproofVerified) {
35
- var metaproofStep = _metaproof.default.fromRuleSubproofNode(ruleSubproofNode);
36
- localContext.addMetaproofStep(metaproofStep);
37
- ruleProofStepVerified = true;
38
- }
39
- } else if (qualifiedStatementNode !== null) {
40
- var qualifiedStatementVerified;
41
- var assignments = [];
42
- qualifiedStatementVerified = (0, _qualified.default)(qualifiedStatementNode, assignments, localContext);
43
- if (qualifiedStatementVerified) {
44
- var assignmentAssigned = (0, _assignments.assignAssignment)(assignments, localContext);
45
- qualifiedStatementVerified = assignmentAssigned; ///
46
- }
47
- if (qualifiedStatementVerified) {
48
- var statementNode = statementNodeQuery(qualifiedStatementNode), metaproofStep1 = _metaproof.default.fromStatementNode(statementNode);
49
- localContext.addMetaproofStep(metaproofStep1);
50
- ruleProofStepVerified = true;
51
- }
52
- } else if (unqualifiedStatementNode !== null) {
53
- var unqualifiedStatementVerified;
54
- var derived = true, assignments1 = [];
55
- unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, assignments1, derived, localContext);
56
- if (unqualifiedStatementVerified) {
57
- var assignmentAssigned1 = (0, _assignments.assignAssignment)(assignments1, localContext);
58
- unqualifiedStatementVerified = assignmentAssigned1; ///
59
- }
60
- if (unqualifiedStatementVerified) {
61
- var statementNode1 = statementNodeQuery(unqualifiedStatementNode), metaproofStep2 = _metaproof.default.fromStatementNode(statementNode1);
62
- localContext.addMetaproofStep(metaproofStep2);
63
- ruleProofStepVerified = unqualifiedStatementVerified; ///
64
- }
65
- } else if (qualifiedMetastatementNode !== null) {
66
- var qualifiedMetastatementVerified;
67
- var assignments2 = [], substitutions = null;
68
- qualifiedMetastatementVerified = (0, _qualified1.default)(qualifiedMetastatementNode, substitutions, assignments2, localContext);
69
- if (qualifiedMetastatementVerified) {
70
- var assignmentAssigned2 = (0, _assignments.assignAssignment)(assignments2, localContext);
71
- qualifiedMetastatementVerified = assignmentAssigned2; ///
72
- }
73
- if (qualifiedMetastatementVerified) {
74
- var metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode), metaproofStep3 = _metaproof.default.fromMetastatementNode(metastatementNode);
75
- localContext.addMetaproofStep(metaproofStep3);
76
- ruleProofStepVerified = qualifiedMetastatementVerified; ///
77
- }
78
- } else if (unqualifiedMetastatementNode !== null) {
79
- var unqualifiedMetastatementVerified;
80
- var derived1 = true, assignments3 = [];
81
- unqualifiedMetastatementVerified = (0, _unqualified1.default)(unqualifiedMetastatementNode, assignments3, derived1, localContext);
82
- if (unqualifiedMetastatementVerified) {
83
- var assignmentAssigned3 = (0, _assignments.assignAssignment)(assignments3, localContext);
84
- unqualifiedMetastatementVerified = assignmentAssigned3; ///
85
- }
86
- if (unqualifiedMetastatementVerified) {
87
- var metastatementNode1 = metastatementNodeQuery(unqualifiedMetastatementNode), metaproofStep4 = _metaproof.default.fromMetastatementNode(metastatementNode1);
88
- localContext.addMetaproofStep(metaproofStep4);
89
- ruleProofStepVerified = true;
90
- }
91
- }
92
- return ruleProofStepVerified;
93
- }
94
- Object.assign(_ruleSubDerivation.default, {
95
- verifyRuleProofStep: verifyRuleProofStep
96
- });
97
-
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZVByb29mU3RlcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE1ldGFwcm9vZlN0ZXAgZnJvbSBcIi4uL3N0ZXAvbWV0YXByb29mXCI7XG5pbXBvcnQgdmVyaWZ5UnVsZVN1YnByb29mIGZyb20gXCIuLi92ZXJpZnkvcnVsZVN1YnByb29mXCI7XG5pbXBvcnQgdmVyaWZ5UnVsZVN1YkRlcml2YXRpb24gZnJvbSBcIi4uL3ZlcmlmeS9ydWxlU3ViRGVyaXZhdGlvblwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC9xdWFsaWZpZWRcIjtcbmltcG9ydCB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC91bnF1YWxpZmllZFwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgZnJvbSBcIi4uL3ZlcmlmeS9tZXRhc3RhdGVtZW50L3F1YWxpZmllZFwiO1xuaW1wb3J0IHZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L21ldGFzdGF0ZW1lbnQvdW5xdWFsaWZpZWRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgYXNzaWduQXNzaWdubWVudCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXNzaWdubWVudHNcIjtcblxuY29uc3Qgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3F1YWxpZmllZFN0YXRlbWVudHx1bnF1YWxpZmllZFN0YXRlbWVudC9zdGF0ZW1lbnQhXCIpLFxuICAgICAgcnVsZVN1YnByb29mTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3J1bGVQcm9vZlN0ZXB8bGFzdFJ1bGVQcm9vZlN0ZXAvcnVsZVN1YnByb29mIVwiKSxcbiAgICAgIG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcXVhbGlmaWVkTWV0YXN0YXRlbWVudHx1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQvbWV0YXN0YXRlbWVudCFcIiksXG4gICAgICBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZVByb29mU3RlcHxsYXN0UnVsZVByb29mU3RlcC9xdWFsaWZpZWRTdGF0ZW1lbnQhXCIpLFxuICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZVByb29mU3RlcHxsYXN0UnVsZVByb29mU3RlcC91bnF1YWxpZmllZFN0YXRlbWVudCFcIiksXG4gICAgICBxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3J1bGVQcm9vZlN0ZXB8bGFzdFJ1bGVQcm9vZlN0ZXAvcXVhbGlmaWVkTWV0YXN0YXRlbWVudCFcIiksXG4gICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZVByb29mU3RlcHxsYXN0UnVsZVByb29mU3RlcC91bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlUHJvb2ZTdGVwKHJ1bGVQcm9vZlN0ZXBOb2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHJ1bGVQcm9vZlN0ZXBWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHJ1bGVTdWJwcm9vZk5vZGUgPSBydWxlU3VicHJvb2ZOb2RlUXVlcnkocnVsZVByb29mU3RlcE5vZGUpLFxuICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gcXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5KHJ1bGVQcm9vZlN0ZXBOb2RlKSxcbiAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkocnVsZVByb29mU3RlcE5vZGUpLFxuICAgICAgICBxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSA9IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlUXVlcnkocnVsZVByb29mU3RlcE5vZGUpLFxuICAgICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5KHJ1bGVQcm9vZlN0ZXBOb2RlKTtcblxuICBpZiAoZmFsc2UpIHtcbiAgICAvLy9cbiAgfSBlbHNlIGlmIChydWxlU3VicHJvb2ZOb2RlICE9PSBudWxsKSB7XG4gICAgbGV0IHJ1bGVTdWJwcm9vZlZlcmlmaWVkO1xuXG4gICAgcnVsZVN1YnByb29mVmVyaWZpZWQgPSB2ZXJpZnlSdWxlU3VicHJvb2YocnVsZVN1YnByb29mTm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChydWxlU3VicHJvb2ZWZXJpZmllZCkge1xuICAgICAgY29uc3QgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbVJ1bGVTdWJwcm9vZk5vZGUocnVsZVN1YnByb29mTm9kZSk7XG5cbiAgICAgIGxvY2FsQ29udGV4dC5hZGRNZXRhcHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICBydWxlUHJvb2ZTdGVwVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cbiAgfSBlbHNlIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkO1xuXG4gICAgY29uc3QgYXNzaWdubWVudHMgPSBbXTtcblxuICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50KHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBhc3NpZ25tZW50QXNzaWduZWQgPSBhc3NpZ25Bc3NpZ25tZW50KGFzc2lnbm1lbnRzLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IGFzc2lnbm1lbnRBc3NpZ25lZDsgLy8vXG4gICAgfVxuXG4gICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIGxvY2FsQ29udGV4dC5hZGRNZXRhcHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICBydWxlUHJvb2ZTdGVwVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cbiAgfSBlbHNlIGlmICh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBsZXQgdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDtcblxuICAgIGNvbnN0IGRlcml2ZWQgPSB0cnVlLFxuICAgICAgICAgIGFzc2lnbm1lbnRzID0gW107XG5cbiAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmICh1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBhc3NpZ25tZW50QXNzaWduZWQgPSBhc3NpZ25Bc3NpZ25tZW50KGFzc2lnbm1lbnRzLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gYXNzaWdubWVudEFzc2lnbmVkOyAvLy9cbiAgICB9XG5cbiAgICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIGxvY2FsQ29udGV4dC5hZGRNZXRhcHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICBydWxlUHJvb2ZTdGVwVmVyaWZpZWQgPSB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkOyAvLy9cbiAgICB9XG4gIH0gZWxzZSBpZiAocXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBsZXQgcXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkO1xuXG4gICAgY29uc3QgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICBzdWJzdGl0dXRpb25zID0gbnVsbDtcblxuICAgIHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVF1YWxpZmllZE1ldGFzdGF0ZW1lbnQocXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGFzc2lnbm1lbnRzLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgY29uc3QgYXNzaWdubWVudEFzc2lnbmVkID0gYXNzaWduQXNzaWdubWVudChhc3NpZ25tZW50cywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gYXNzaWdubWVudEFzc2lnbmVkOyAvLy9cbiAgICB9XG5cbiAgICBpZiAocXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgbG9jYWxDb250ZXh0LmFkZE1ldGFwcm9vZlN0ZXAobWV0YXByb29mU3RlcCk7XG5cbiAgICAgIHJ1bGVQcm9vZlN0ZXBWZXJpZmllZCA9IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgfVxuICB9IGVsc2UgaWYgKHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBsZXQgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgICBjb25zdCBkZXJpdmVkID0gdHJ1ZSxcbiAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdO1xuXG4gICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGFzc2lnbm1lbnRBc3NpZ25lZCA9IGFzc2lnbkFzc2lnbm1lbnQoYXNzaWdubWVudHMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gYXNzaWdubWVudEFzc2lnbmVkOyAvLy9cbiAgICB9XG5cbiAgICBpZiAodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgIG1ldGFwcm9vZlN0ZXAgPSBNZXRhcHJvb2ZTdGVwLmZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIGxvY2FsQ29udGV4dC5hZGRNZXRhcHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICBydWxlUHJvb2ZTdGVwVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBydWxlUHJvb2ZTdGVwVmVyaWZpZWQ7XG59XG5cbk9iamVjdC5hc3NpZ24odmVyaWZ5UnVsZVN1YkRlcml2YXRpb24sIHtcbiAgdmVyaWZ5UnVsZVByb29mU3RlcFxufSk7XG4iXSwibmFtZXMiOlsidmVyaWZ5UnVsZVByb29mU3RlcCIsInN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInJ1bGVTdWJwcm9vZk5vZGVRdWVyeSIsIm1ldGFzdGF0ZW1lbnROb2RlUXVlcnkiLCJxdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsInF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlUXVlcnkiLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlUXVlcnkiLCJydWxlUHJvb2ZTdGVwTm9kZSIsImxvY2FsQ29udGV4dCIsInJ1bGVQcm9vZlN0ZXBWZXJpZmllZCIsInJ1bGVTdWJwcm9vZk5vZGUiLCJxdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwicXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUiLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlIiwicnVsZVN1YnByb29mVmVyaWZpZWQiLCJ2ZXJpZnlSdWxlU3VicHJvb2YiLCJtZXRhcHJvb2ZTdGVwIiwiTWV0YXByb29mU3RlcCIsImZyb21SdWxlU3VicHJvb2ZOb2RlIiwiYWRkTWV0YXByb29mU3RlcCIsInF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwiYXNzaWdubWVudHMiLCJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQiLCJhc3NpZ25tZW50QXNzaWduZWQiLCJhc3NpZ25Bc3NpZ25tZW50Iiwic3RhdGVtZW50Tm9kZSIsImZyb21TdGF0ZW1lbnROb2RlIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsImRlcml2ZWQiLCJ2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCIsInF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsInN1YnN0aXR1dGlvbnMiLCJ2ZXJpZnlRdWFsaWZpZWRNZXRhc3RhdGVtZW50IiwibWV0YXN0YXRlbWVudE5vZGUiLCJmcm9tTWV0YXN0YXRlbWVudE5vZGUiLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCIsIk9iamVjdCIsImFzc2lnbiIsInZlcmlmeVJ1bGVTdWJEZXJpdmF0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFxQkE7OztlQUF3QkE7OztnRUFuQkU7bUVBQ0s7d0VBQ0s7Z0VBQ0M7a0VBQ0U7aUVBQ0U7bUVBQ0U7cUJBRWpCOzJCQUNPOzs7Ozs7QUFFakMsSUFBTUMscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDLHdEQUMvQkMsd0JBQXdCRCxJQUFBQSxnQkFBUyxFQUFDLG1EQUNsQ0UseUJBQXlCRixJQUFBQSxnQkFBUyxFQUFDLG9FQUNuQ0csOEJBQThCSCxJQUFBQSxnQkFBUyxFQUFDLHlEQUN4Q0ksZ0NBQWdDSixJQUFBQSxnQkFBUyxFQUFDLDJEQUMxQ0ssa0NBQWtDTCxJQUFBQSxnQkFBUyxFQUFDLDZEQUM1Q00sb0NBQW9DTixJQUFBQSxnQkFBUyxFQUFDO0FBRXJDLFNBQVNGLG9CQUFvQlMsaUJBQWlCLEVBQUVDLFlBQVk7SUFDekUsSUFBSUMsd0JBQXdCO0lBRTVCLElBQU1DLG1CQUFtQlQsc0JBQXNCTSxvQkFDekNJLHlCQUF5QlIsNEJBQTRCSSxvQkFDckRLLDJCQUEyQlIsOEJBQThCRyxvQkFDekRNLDZCQUE2QlIsZ0NBQWdDRSxvQkFDN0RPLCtCQUEr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
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return verifyRuleSubDerivation;
9
- }
10
- });
11
- var _query = require("../utilities/query");
12
- var ruleProofStepNodesQuery = (0, _query.nodesQuery)("/ruleSubDerivation/ruleProofStep|lastRuleProofStep");
13
- function verifyRuleSubDerivation(ruleSubDerivationNode, localContext) {
14
- var ruleSubDerivationVerified;
15
- var ruleProofStepNodes = ruleProofStepNodesQuery(ruleSubDerivationNode);
16
- ruleSubDerivationVerified = ruleProofStepNodes.every(function(ruleProofStepNode) {
17
- var verifyRuleProofStep = verifyRuleSubDerivation.verifyRuleProofStep, ruleProofStepVerified = verifyRuleProofStep(ruleProofStepNode, localContext);
18
- if (ruleProofStepVerified) {
19
- return true;
20
- }
21
- });
22
- return ruleSubDerivationVerified;
23
- }
24
-
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZVN1YkRlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHJ1bGVQcm9vZlN0ZXBOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9ydWxlU3ViRGVyaXZhdGlvbi9ydWxlUHJvb2ZTdGVwfGxhc3RSdWxlUHJvb2ZTdGVwXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbihydWxlU3ViRGVyaXZhdGlvbk5vZGUsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgcnVsZVN1YkRlcml2YXRpb25WZXJpZmllZDtcblxuICBjb25zdCBydWxlUHJvb2ZTdGVwTm9kZXMgPSBydWxlUHJvb2ZTdGVwTm9kZXNRdWVyeShydWxlU3ViRGVyaXZhdGlvbk5vZGUpO1xuXG4gIHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQgPSBydWxlUHJvb2ZTdGVwTm9kZXMuZXZlcnkoKHJ1bGVQcm9vZlN0ZXBOb2RlKSA9PiB7XG4gICAgY29uc3QgeyB2ZXJpZnlSdWxlUHJvb2ZTdGVwIH0gPSB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbixcbiAgICAgICAgICBydWxlUHJvb2ZTdGVwVmVyaWZpZWQgPSB2ZXJpZnlSdWxlUHJvb2ZTdGVwKHJ1bGVQcm9vZlN0ZXBOb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHJ1bGVQcm9vZlN0ZXBWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcnVsZVN1YkRlcml2YXRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbiIsInJ1bGVQcm9vZlN0ZXBOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInJ1bGVTdWJEZXJpdmF0aW9uTm9kZSIsImxvY2FsQ29udGV4dCIsInJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQiLCJydWxlUHJvb2ZTdGVwTm9kZXMiLCJldmVyeSIsInJ1bGVQcm9vZlN0ZXBOb2RlIiwidmVyaWZ5UnVsZVByb29mU3RlcCIsInJ1bGVQcm9vZlN0ZXBWZXJpZmllZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUF3QkE7OztxQkFKRztBQUUzQixJQUFNQywwQkFBMEJDLElBQUFBLGlCQUFVLEVBQUM7QUFFNUIsU0FBU0Ysd0JBQXdCRyxxQkFBcUIsRUFBRUMsWUFBWTtJQUNqRixJQUFJQztJQUVKLElBQU1DLHFCQUFxQkwsd0JBQXdCRTtJQUVuREUsNEJBQTRCQyxtQkFBbUJDLEtBQUssQ0FBQyxTQUFDQztRQUNwRCxJQUFNLEFBQUVDLHNCQUF3QlQsd0JBQXhCUyxxQkFDRkMsd0JBQXdCRCxvQkFBb0JELG1CQUFtQko7UUFFckUsSUFBSU0sdUJBQXVCO1lBQ3pCLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT0w7QUFDVCJ9