occam-verify-cli 0.0.263 → 0.0.264
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.
package/bin/ruleNames.js
CHANGED
|
@@ -4,7 +4,7 @@ const TERM_RULE_NAME = "term",
|
|
|
4
4
|
TYPE_RULE_NAME = "type",
|
|
5
5
|
ARGUMENT_RULE_NAME = "argument",
|
|
6
6
|
METAVARIABLE_RULE_NAME = "metavariable",
|
|
7
|
-
|
|
7
|
+
META_CONDITIONAL_PROOF_RULE_NAME = "metaConditionalProof",
|
|
8
8
|
QUALIFIED_METASTATEMENT_RULE_NAME = "qualifiedMetastatement",
|
|
9
9
|
UNQUALIFIED_METASTATEMENT_RULE_NAME = "unqualifiedMetastatement";
|
|
10
10
|
|
|
@@ -13,7 +13,7 @@ module.exports = {
|
|
|
13
13
|
TYPE_RULE_NAME,
|
|
14
14
|
ARGUMENT_RULE_NAME,
|
|
15
15
|
METAVARIABLE_RULE_NAME,
|
|
16
|
-
|
|
16
|
+
META_CONDITIONAL_PROOF_RULE_NAME,
|
|
17
17
|
QUALIFIED_METASTATEMENT_RULE_NAME,
|
|
18
18
|
UNQUALIFIED_METASTATEMENT_RULE_NAME
|
|
19
19
|
};
|
|
@@ -6,99 +6,99 @@ const MetaproofContext = require("../context/metaproof"),
|
|
|
6
6
|
verifyUnqualifiedMetastatement = require("../verify/metastatement/unqualified");
|
|
7
7
|
|
|
8
8
|
const { nodeQuery, nodesQuery } = require("../utilities/query"),
|
|
9
|
-
{
|
|
9
|
+
{ META_CONDITIONAL_PROOF_RULE_NAME, QUALIFIED_METASTATEMENT_RULE_NAME, UNQUALIFIED_METASTATEMENT_RULE_NAME } = require("../ruleNames");
|
|
10
10
|
|
|
11
|
-
const metaAntecedentNodeQuery = nodeQuery("/
|
|
12
|
-
metaDerivationNodeQuery = nodeQuery("/
|
|
11
|
+
const metaAntecedentNodeQuery = nodeQuery("/metaConditionalProof/metaAntecedent!"),
|
|
12
|
+
metaDerivationNodeQuery = nodeQuery("/metaConditionalProof/metaDerivation!"),
|
|
13
13
|
metaDerivationChildNodesQuery = nodesQuery("/metaDerivation/*"),
|
|
14
|
-
qualifiedMetastatementNodeQuery = nodeQuery("/
|
|
15
|
-
unqualifiedMetastatementNodeQuery = nodeQuery("/
|
|
14
|
+
qualifiedMetastatementNodeQuery = nodeQuery("/metaConditionalProof/qualifiedMetastatement!"),
|
|
15
|
+
unqualifiedMetastatementNodeQuery = nodeQuery("/metaConditionalProof/unqualifiedMetastatement!");
|
|
16
16
|
|
|
17
17
|
function verifyMetaDerivation(metaDerivationNode, context) {
|
|
18
18
|
const derived = true;
|
|
19
19
|
|
|
20
20
|
context.setDerived(derived);
|
|
21
21
|
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
let
|
|
22
|
+
const metaConditionalProofChildNodes = metaDerivationChildNodesQuery(metaDerivationNode),
|
|
23
|
+
metaConditionalProofChildNodesVerified = metaConditionalProofChildNodes.every((metaConditionalProofChildNode) => {
|
|
24
|
+
let metaConditionalProofChildNodeVerified;
|
|
25
25
|
|
|
26
|
-
const ruleName =
|
|
26
|
+
const ruleName = metaConditionalProofChildNode.getRuleName();
|
|
27
27
|
|
|
28
28
|
switch (ruleName) {
|
|
29
|
-
case
|
|
30
|
-
const
|
|
31
|
-
|
|
29
|
+
case META_CONDITIONAL_PROOF_RULE_NAME: {
|
|
30
|
+
const metaConditionalProofNode = metaConditionalProofChildNode, ///
|
|
31
|
+
metaConditionalProofVerified = verifyMetaConditionalProof(metaConditionalProofNode, context);
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
metaConditionalProofChildNodeVerified = metaConditionalProofVerified; ///
|
|
34
34
|
|
|
35
35
|
break;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
case QUALIFIED_METASTATEMENT_RULE_NAME: {
|
|
39
|
-
const qualifiedMetastatementNode =
|
|
39
|
+
const qualifiedMetastatementNode = metaConditionalProofChildNode, ///
|
|
40
40
|
qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode, context);
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
metaConditionalProofChildNodeVerified = qualifiedMetastatementVerified; ///
|
|
43
43
|
|
|
44
44
|
break;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
case UNQUALIFIED_METASTATEMENT_RULE_NAME: {
|
|
48
|
-
const unqualifiedMetastatementNode =
|
|
48
|
+
const unqualifiedMetastatementNode = metaConditionalProofChildNode, ///
|
|
49
49
|
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, context);
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
metaConditionalProofChildNodeVerified = unqualifiedMetastatementVerified; ///
|
|
52
52
|
|
|
53
53
|
break;
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
return
|
|
57
|
+
return metaConditionalProofChildNodeVerified;
|
|
58
58
|
}),
|
|
59
|
-
metaDerivationVerified =
|
|
59
|
+
metaDerivationVerified = metaConditionalProofChildNodesVerified; ///
|
|
60
60
|
|
|
61
61
|
return metaDerivationVerified;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
module.exports = verifyMetaDerivation;
|
|
65
65
|
|
|
66
|
-
function
|
|
67
|
-
let
|
|
66
|
+
function verifyMetaConditionalProof(metaConditionalProofNode, context) {
|
|
67
|
+
let metaConditionalProofVerified = false;
|
|
68
68
|
|
|
69
69
|
const metaproofContext = MetaproofContext.fromContext(context);
|
|
70
70
|
|
|
71
71
|
context = metaproofContext; ///
|
|
72
72
|
|
|
73
|
-
const metaAntecedentNode = metaAntecedentNodeQuery(
|
|
73
|
+
const metaAntecedentNode = metaAntecedentNodeQuery(metaConditionalProofNode),
|
|
74
74
|
metaAntecedentVerified = verifyMetaAntecedent(metaAntecedentNode, context);
|
|
75
75
|
|
|
76
76
|
if (metaAntecedentVerified) {
|
|
77
77
|
let metaDerivationVerified = true;
|
|
78
78
|
|
|
79
|
-
const metaDerivationNode = metaDerivationNodeQuery(
|
|
79
|
+
const metaDerivationNode = metaDerivationNodeQuery(metaConditionalProofNode);
|
|
80
80
|
|
|
81
81
|
if (metaDerivationNode !== null) {
|
|
82
82
|
metaDerivationVerified = verifyMetaDerivation(metaDerivationNode, context);
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
if (metaDerivationVerified) {
|
|
86
|
-
const qualifiedMetastatementNode = qualifiedMetastatementNodeQuery(
|
|
87
|
-
unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(
|
|
86
|
+
const qualifiedMetastatementNode = qualifiedMetastatementNodeQuery(metaConditionalProofNode),
|
|
87
|
+
unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(metaConditionalProofNode);
|
|
88
88
|
|
|
89
89
|
if (qualifiedMetastatementNode !== null) {
|
|
90
90
|
const qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode, context);
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
metaConditionalProofVerified = qualifiedMetastatementVerified; ///
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
if (unqualifiedMetastatementNode !== null) {
|
|
96
96
|
const unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, context);
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
metaConditionalProofVerified = unqualifiedMetastatementVerified; ///
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
return
|
|
103
|
+
return metaConditionalProofVerified;
|
|
104
104
|
}
|
|
@@ -1,48 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
const
|
|
4
|
-
verifyLabels = require("../../verify/labels"),
|
|
5
|
-
verifyConclusion = require("../../verify/conclusion"),
|
|
3
|
+
const verifyConclusion = require("../../verify/conclusion"),
|
|
6
4
|
verifyPremiseOrPremises = require("../../verify/premiseOrPremises");
|
|
7
5
|
|
|
8
|
-
const {
|
|
9
|
-
{ nodeQuery, nodesQuery } = require("../../utilities/query");
|
|
6
|
+
const { nodeQuery } = require("../../utilities/query");
|
|
10
7
|
|
|
11
|
-
const
|
|
12
|
-
conclusionNodeQuery = nodeQuery("/inferenceConditional/conclusion!"),
|
|
8
|
+
const conclusionNodeQuery = nodeQuery("/inferenceConditional/conclusion!"),
|
|
13
9
|
premiseOrPremisesNodeQuery = nodeQuery("/inferenceConditional/premise|premises!"),
|
|
14
10
|
inferenceConditionalNodeQuery = nodeQuery("/rule/inferenceConditional!");
|
|
15
11
|
|
|
16
|
-
function verifyInferenceConditionalRule(ruleNode,
|
|
12
|
+
function verifyInferenceConditionalRule(ruleNode, premises, conclusions, context) {
|
|
17
13
|
let inferenceConditionalRuleVerified = false;
|
|
18
14
|
|
|
19
15
|
const inferenceConditionalNode = inferenceConditionalNodeQuery(ruleNode);
|
|
20
16
|
|
|
21
17
|
if (inferenceConditionalNode !== null) {
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (premiseOrPremisesVerified) {
|
|
32
|
-
const conclusions = [],
|
|
33
|
-
conclusionNode = conclusionNodeQuery(inferenceConditionalNode),
|
|
34
|
-
conclusionVerified = verifyConclusion(conclusionNode, conclusions, context);
|
|
35
|
-
|
|
36
|
-
if (conclusionVerified) {
|
|
37
|
-
const firstConclusion = first(conclusions),
|
|
38
|
-
conclusion = firstConclusion, ///
|
|
39
|
-
rule = Rule.fromPremisesConclusionAndLabels(premises, conclusion, labels);
|
|
40
|
-
|
|
41
|
-
rules.push(rule);
|
|
42
|
-
|
|
43
|
-
inferenceConditionalRuleVerified = true;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
18
|
+
const premiseOrPremisesNode = premiseOrPremisesNodeQuery(inferenceConditionalNode),
|
|
19
|
+
premiseOrPremisesVerified = verifyPremiseOrPremises(premiseOrPremisesNode, premises, context);
|
|
20
|
+
|
|
21
|
+
if (premiseOrPremisesVerified) {
|
|
22
|
+
const conclusionNode = conclusionNodeQuery(inferenceConditionalNode),
|
|
23
|
+
conclusionVerified = verifyConclusion(conclusionNode, conclusions, context);
|
|
24
|
+
|
|
25
|
+
inferenceConditionalRuleVerified = conclusionVerified;
|
|
46
26
|
}
|
|
47
27
|
}
|
|
48
28
|
|
|
@@ -1,39 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
const
|
|
4
|
-
Conclusion = require("../../conclusion"),
|
|
5
|
-
verifyLabels = require("../../verify/labels"),
|
|
3
|
+
const Conclusion = require("../../conclusion"),
|
|
6
4
|
verifyUnqualifiedMetastatement = require("../../verify/metastatement/unqualified");
|
|
7
5
|
|
|
8
|
-
const { nodeQuery
|
|
6
|
+
const { nodeQuery } = require("../../utilities/query");
|
|
9
7
|
|
|
10
|
-
const
|
|
11
|
-
metastatementNodeQuery = nodeQuery("/*/metastatement"),
|
|
8
|
+
const metastatementNodeQuery = nodeQuery("/*/metastatement"),
|
|
12
9
|
unqualifiedMetastatementNodeQuery = nodeQuery("/rule/unqualifiedMetastatement!");
|
|
13
10
|
|
|
14
|
-
function verifyUnqualifiedMetastatementRule(ruleNode,
|
|
11
|
+
function verifyUnqualifiedMetastatementRule(ruleNode, premises, conclusions, context) {
|
|
15
12
|
let unqualifiedMetastatementRuleVerified = false;
|
|
16
13
|
|
|
17
14
|
const unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(ruleNode);
|
|
18
15
|
|
|
19
16
|
if (unqualifiedMetastatementNode !== null) {
|
|
20
|
-
const
|
|
21
|
-
labelNodes = labelNodesQuery(ruleNode),
|
|
22
|
-
labelsVerified = verifyLabels(labelNodes, labels, context);
|
|
17
|
+
const unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, context);
|
|
23
18
|
|
|
24
|
-
if (
|
|
25
|
-
const
|
|
19
|
+
if (unqualifiedMetastatementVerified) {
|
|
20
|
+
const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
|
|
21
|
+
conclusion = Conclusion.fromMetastatementNode(metastatementNode);
|
|
26
22
|
|
|
27
|
-
|
|
28
|
-
const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
|
|
29
|
-
conclusion = Conclusion.fromMetastatementNode(metastatementNode),
|
|
30
|
-
premises = [],
|
|
31
|
-
rule = Rule.fromPremisesConclusionAndLabels(premises, conclusion, labels);
|
|
23
|
+
conclusions.push(conclusion);
|
|
32
24
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
unqualifiedMetastatementRuleVerified = true;
|
|
36
|
-
}
|
|
25
|
+
unqualifiedMetastatementRuleVerified = true;
|
|
37
26
|
}
|
|
38
27
|
}
|
|
39
28
|
|
package/bin/verify/rule.js
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
const { loggingUtilities } = require("necessary");
|
|
4
4
|
|
|
5
|
-
const
|
|
5
|
+
const Rule = require("../rule"),
|
|
6
|
+
verifyLabels = require("../verify/labels"),
|
|
7
|
+
verifyMetaproof = require("../verify/metaproof"),
|
|
6
8
|
MetaproofContext = require("../context/metaproof"),
|
|
7
9
|
verifyInferenceConditionalRule = require("../verify/rule/inferenceConditional"),
|
|
8
10
|
verifyUnqualifiedMetastatementRule = require("../verify/rule/unqualifiedMetastatement");
|
|
@@ -24,13 +26,20 @@ function verifyRule(ruleNode, context) {
|
|
|
24
26
|
|
|
25
27
|
log.debug(`Verifying the '${labelsString}' rule...`);
|
|
26
28
|
|
|
29
|
+
const labels = [],
|
|
30
|
+
labelsVerified = verifyLabels(labelNodes, labels, context);
|
|
31
|
+
|
|
32
|
+
if (labelsVerified) {
|
|
33
|
+
}
|
|
34
|
+
|
|
27
35
|
const metaproofContext = MetaproofContext.fromContext(context);
|
|
28
36
|
|
|
29
37
|
context = metaproofContext; ///
|
|
30
38
|
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
39
|
+
const premises = [],
|
|
40
|
+
conclusions = [],
|
|
41
|
+
inferenceConditionalRuleVerified = verifyInferenceConditionalRule(ruleNode, premises, conclusions, context),
|
|
42
|
+
unqualifiedMetastatementRuleVerified = verifyUnqualifiedMetastatementRule(ruleNode, premises, conclusions, context);
|
|
34
43
|
|
|
35
44
|
if (inferenceConditionalRuleVerified || unqualifiedMetastatementRuleVerified) {
|
|
36
45
|
const metaproofNode = metaproofNodeQuery(ruleNode);
|
|
@@ -47,8 +56,9 @@ function verifyRule(ruleNode, context) {
|
|
|
47
56
|
}
|
|
48
57
|
|
|
49
58
|
if (ruleVerified) {
|
|
50
|
-
const
|
|
51
|
-
|
|
59
|
+
const firstConclusion = first(conclusions),
|
|
60
|
+
conclusion = firstConclusion, ///
|
|
61
|
+
rule = Rule.fromPremisesConclusionAndLabels(premises, conclusion, labels);
|
|
52
62
|
|
|
53
63
|
context.addRule(rule);
|
|
54
64
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-verify-cli",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.264",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-verify-cli",
|
|
7
7
|
"description": "Occam's Verifier",
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"argumentative": "^2.0.15",
|
|
14
14
|
"necessary": "^11.0.40",
|
|
15
|
-
"occam-custom-grammars": "^5.0.
|
|
15
|
+
"occam-custom-grammars": "^5.0.345",
|
|
16
16
|
"occam-dom": "^3.0.171",
|
|
17
17
|
"occam-grammar-utilities": "^7.0.66",
|
|
18
|
-
"occam-grammars": "^1.0.
|
|
18
|
+
"occam-grammars": "^1.0.312",
|
|
19
19
|
"occam-open-cli": "^5.0.37",
|
|
20
20
|
"occam-parsers": "^16.0.122"
|
|
21
21
|
},
|