occam-verify-cli 0.0.914 → 0.0.916
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/lib/assignment/judgement.js +62 -0
- package/lib/axiomLemmaTheoremConjecture.js +4 -3
- package/lib/conclusion.js +5 -5
- package/lib/context/file.js +7 -7
- package/lib/context/local/intrinsicLevel.js +326 -0
- package/lib/context/local/metaLevel.js +290 -0
- package/lib/judgement.js +87 -0
- package/lib/metaConsequent.js +4 -4
- package/lib/metaLemmaMetatheorem.js +11 -11
- package/lib/metaSupposition.js +7 -7
- package/lib/metavariable.js +5 -5
- package/lib/premise.js +12 -12
- package/lib/rule.js +12 -12
- package/lib/verifier/node/metaLevel.js +214 -0
- package/lib/verifier/node/statementAsCombinator.js +9 -9
- package/lib/verifier/node/termAsConstructor.js +7 -7
- package/lib/verify/axiom.js +3 -3
- package/lib/verify/conclusion.js +7 -7
- package/lib/verify/conjecture.js +3 -3
- package/lib/verify/containedAssertion.js +23 -4
- package/lib/verify/declaration.js +15 -15
- package/lib/verify/definedAssertion.js +18 -4
- package/lib/verify/derivation.js +3 -3
- package/lib/verify/frame.js +19 -19
- package/lib/verify/judgement.js +121 -0
- package/lib/verify/lemma.js +3 -3
- package/lib/verify/metaConsequent.js +7 -7
- package/lib/verify/metaDerivation.js +3 -3
- package/lib/verify/metaLemma.js +6 -6
- package/lib/verify/metaSubDerivation.js +3 -3
- package/lib/verify/metaSubproof.js +7 -6
- package/lib/verify/metaSupposition.js +9 -9
- package/lib/verify/metaSuppositions.js +3 -3
- package/lib/verify/metaproof.js +7 -6
- package/lib/verify/metaproofStep.js +16 -16
- package/lib/verify/metastatement/qualified.js +22 -22
- package/lib/verify/metastatement/unqualified.js +7 -7
- package/lib/verify/metastatement.js +37 -37
- package/lib/verify/metatheorem.js +6 -6
- package/lib/verify/metavariable.js +6 -6
- package/lib/verify/premise.js +9 -9
- package/lib/verify/premises.js +3 -3
- package/lib/verify/proof.js +4 -3
- package/lib/verify/rule.js +6 -6
- package/lib/verify/ruleDerivation.js +3 -3
- package/lib/verify/ruleProof.js +7 -6
- package/lib/verify/ruleProofStep.js +16 -16
- package/lib/verify/ruleSubDerivation.js +3 -3
- package/lib/verify/ruleSubproof.js +7 -6
- package/lib/verify/statement.js +4 -17
- package/lib/verify/subDerivation.js +3 -3
- package/lib/verify/subproof.js +4 -3
- package/lib/verify/termAsConstructor.js +3 -3
- package/lib/verify/theorem.js +4 -4
- package/package.json +2 -2
- package/src/assignment/judgement.js +30 -0
- package/src/axiomLemmaTheoremConjecture.js +4 -2
- package/src/conclusion.js +7 -7
- package/src/context/file.js +5 -5
- package/src/context/{local.js → local/intrinsicLevel.js} +25 -20
- package/src/context/{localMeta.js → local/metaLevel.js} +50 -45
- package/src/{frameAssertion.js → judgement.js} +5 -5
- package/src/metaConsequent.js +7 -7
- package/src/metaLemmaMetatheorem.js +11 -11
- package/src/metaSupposition.js +13 -13
- package/src/metavariable.js +6 -7
- package/src/premise.js +26 -26
- package/src/rule.js +12 -12
- package/src/verifier/node/{metastatement.js → metaLevel.js} +19 -21
- package/src/verifier/node/statementAsCombinator.js +8 -8
- package/src/verifier/node/termAsConstructor.js +6 -6
- package/src/verify/axiom.js +4 -3
- package/src/verify/conclusion.js +5 -6
- package/src/verify/conjecture.js +4 -3
- package/src/verify/containedAssertion.js +24 -3
- package/src/verify/declaration.js +15 -15
- package/src/verify/definedAssertion.js +23 -3
- package/src/verify/derivation.js +2 -2
- package/src/verify/frame.js +18 -18
- package/src/verify/judgement.js +169 -0
- package/src/verify/lemma.js +4 -3
- package/src/verify/metaConsequent.js +5 -6
- package/src/verify/metaDerivation.js +2 -2
- package/src/verify/metaLemma.js +8 -7
- package/src/verify/metaSubDerivation.js +2 -2
- package/src/verify/metaSubproof.js +7 -5
- package/src/verify/metaSupposition.js +7 -8
- package/src/verify/metaSuppositions.js +2 -2
- package/src/verify/metaproof.js +7 -5
- package/src/verify/metaproofStep.js +13 -17
- package/src/verify/metastatement/qualified.js +24 -24
- package/src/verify/metastatement/unqualified.js +6 -6
- package/src/verify/metastatement.js +36 -36
- package/src/verify/metatheorem.js +8 -7
- package/src/verify/metavariable.js +5 -5
- package/src/verify/premise.js +7 -8
- package/src/verify/premises.js +2 -2
- package/src/verify/proof.js +4 -2
- package/src/verify/rule.js +8 -7
- package/src/verify/ruleDerivation.js +2 -2
- package/src/verify/ruleProof.js +7 -5
- package/src/verify/ruleProofStep.js +13 -17
- package/src/verify/ruleSubDerivation.js +2 -2
- package/src/verify/ruleSubproof.js +7 -5
- package/src/verify/statement.js +2 -22
- package/src/verify/subDerivation.js +2 -2
- package/src/verify/subproof.js +4 -2
- package/src/verify/termAsConstructor.js +4 -3
- package/src/verify/theorem.js +5 -4
- package/lib/assignment/frameAssertion.js +0 -62
- package/lib/context/local.js +0 -320
- package/lib/context/localMeta.js +0 -284
- package/lib/frameAssertion.js +0 -87
- package/lib/verifier/node/metastatement.js +0 -214
- package/lib/verify/frameAssertion.js +0 -121
- package/src/assignment/frameAssertion.js +0 -30
- package/src/verify/frameAssertion.js +0 -169
|
@@ -7,12 +7,12 @@ import { nodeQuery } from "../../utilities/query";
|
|
|
7
7
|
const metavariableNodeQuery = nodeQuery("/qualifiedMetastatement/reference!/metavariable!"),
|
|
8
8
|
metastatementNodeQuery = nodeQuery("/qualifiedMetastatement/metastatement!");
|
|
9
9
|
|
|
10
|
-
export default function verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments,
|
|
10
|
+
export default function verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments, localContext) {
|
|
11
11
|
let qualifiedMetastatementVerified;
|
|
12
12
|
|
|
13
|
-
const qualifiedMetastatementString =
|
|
13
|
+
const qualifiedMetastatementString = localContext.nodeAsString(qualifiedMetastatementNode);
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
localContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement...`, qualifiedMetastatementNode);
|
|
16
16
|
|
|
17
17
|
const metavariableNode = metavariableNodeQuery(qualifiedMetastatementNode),
|
|
18
18
|
verifyQualifiedMetastatementFunctions = [
|
|
@@ -21,7 +21,7 @@ export default function verifyQualifiedMetastatement(qualifiedMetastatementNode,
|
|
|
21
21
|
];
|
|
22
22
|
|
|
23
23
|
qualifiedMetastatementVerified = verifyQualifiedMetastatementFunctions.some((verifyQualifiedMetastatementFunction) => { ///
|
|
24
|
-
const qualifiedMetastatementVerified = verifyQualifiedMetastatementFunction(qualifiedMetastatementNode, metavariableNode, substitutions,
|
|
24
|
+
const qualifiedMetastatementVerified = verifyQualifiedMetastatementFunction(qualifiedMetastatementNode, metavariableNode, substitutions, localContext);
|
|
25
25
|
|
|
26
26
|
if (qualifiedMetastatementVerified) {
|
|
27
27
|
return true;
|
|
@@ -31,7 +31,7 @@ export default function verifyQualifiedMetastatement(qualifiedMetastatementNode,
|
|
|
31
31
|
if (qualifiedMetastatementVerified) {
|
|
32
32
|
const derived = false,
|
|
33
33
|
metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
|
|
34
|
-
metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived,
|
|
34
|
+
metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived, localContext, () => {
|
|
35
35
|
const verifiedAhead = true;
|
|
36
36
|
|
|
37
37
|
return verifiedAhead;
|
|
@@ -41,45 +41,45 @@ export default function verifyQualifiedMetastatement(qualifiedMetastatementNode,
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
if (qualifiedMetastatementVerified) {
|
|
44
|
-
|
|
44
|
+
localContext.debug(`...verified the '${qualifiedMetastatementString}' qualified metastatement.`, qualifiedMetastatementNode);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
return qualifiedMetastatementVerified;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
function verifyQualifiedMetastatementAAgainstRule(qualifiedMetastatementNode, metavariableNode, substitutions,
|
|
50
|
+
function verifyQualifiedMetastatementAAgainstRule(qualifiedMetastatementNode, metavariableNode, substitutions, localContext) {
|
|
51
51
|
let qualifiedMetastatementVerifiedAgainstRule = false;
|
|
52
52
|
|
|
53
|
-
const rule =
|
|
53
|
+
const rule = localContext.findRuleByMetavariableNode(metavariableNode);
|
|
54
54
|
|
|
55
55
|
if (rule !== null) {
|
|
56
56
|
const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
|
|
57
|
-
metavariableString =
|
|
58
|
-
qualifiedMetastatementString =
|
|
57
|
+
metavariableString = localContext.nodeAsString(metavariableNode),
|
|
58
|
+
qualifiedMetastatementString = localContext.nodeAsString(qualifiedMetastatementNode);
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
localContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' rule...`, qualifiedMetastatementNode);
|
|
61
61
|
|
|
62
|
-
const ruleMatchesMetastatement = rule.matchMetastatement(metastatementNode,
|
|
62
|
+
const ruleMatchesMetastatement = rule.matchMetastatement(metastatementNode, localContext);
|
|
63
63
|
|
|
64
64
|
qualifiedMetastatementVerifiedAgainstRule = ruleMatchesMetastatement; ///
|
|
65
65
|
|
|
66
66
|
if (qualifiedMetastatementVerifiedAgainstRule) {
|
|
67
|
-
|
|
67
|
+
localContext.debug(`...verified the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' rule.`, qualifiedMetastatementNode);
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
return qualifiedMetastatementVerifiedAgainstRule;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
function verifyQualifiedMetastatementAAgainstReference(qualifiedMetastatementNode, metavariableNode, substitutions,
|
|
74
|
+
function verifyQualifiedMetastatementAAgainstReference(qualifiedMetastatementNode, metavariableNode, substitutions, localContext) {
|
|
75
75
|
let qualifiedMetastatementVerifiedAgainstReference = false;
|
|
76
76
|
|
|
77
77
|
if (substitutions !== null) {
|
|
78
|
-
const metavariableString =
|
|
79
|
-
metavariablePresent =
|
|
80
|
-
qualifiedMetastatementString =
|
|
78
|
+
const metavariableString = localContext.nodeAsString(metavariableNode),
|
|
79
|
+
metavariablePresent = localContext.isMetavariablePresentByMetavariableNode(metavariableNode, localContext),
|
|
80
|
+
qualifiedMetastatementString = localContext.nodeAsString(qualifiedMetastatementNode);
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
localContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' reference...`, qualifiedMetastatementNode);
|
|
83
83
|
|
|
84
84
|
if (metavariablePresent) {
|
|
85
85
|
const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
|
|
@@ -93,26 +93,26 @@ function verifyQualifiedMetastatementAAgainstReference(qualifiedMetastatementNod
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
if (qualifiedMetastatementVerifiedAgainstReference) {
|
|
96
|
-
|
|
96
|
+
localContext.debug(`...verified the '${qualifiedMetastatementString}' qualified metastatement against the '${metavariableString}' reference.`, qualifiedMetastatementNode);
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
return qualifiedMetastatementVerifiedAgainstReference;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
function verifyMetastatement(metastatementNode, assignments, derived,
|
|
103
|
+
function verifyMetastatement(metastatementNode, assignments, derived, localContext) {
|
|
104
104
|
let metastatementVerified;
|
|
105
105
|
|
|
106
|
-
const metastatementString =
|
|
106
|
+
const metastatementString = localContext.nodeAsString(metastatementNode);
|
|
107
107
|
|
|
108
|
-
|
|
108
|
+
localContext.trace(`Verifying the '${metastatementString}' metastatement...`, metastatementNode);
|
|
109
109
|
|
|
110
110
|
const verifyMetaStatementFunctions = [
|
|
111
111
|
///
|
|
112
112
|
];
|
|
113
113
|
|
|
114
114
|
verifyMetaStatementFunctions.some((verifyStatementFunction) => {
|
|
115
|
-
const metastatementVerified = verifyStatementFunction(metastatementNode, assignments, derived,
|
|
115
|
+
const metastatementVerified = verifyStatementFunction(metastatementNode, assignments, derived, localContext);
|
|
116
116
|
|
|
117
117
|
if (metastatementVerified) {
|
|
118
118
|
return true;
|
|
@@ -122,7 +122,7 @@ function verifyMetastatement(metastatementNode, assignments, derived, localMetaC
|
|
|
122
122
|
metastatementVerified = true; ///
|
|
123
123
|
|
|
124
124
|
if (metastatementVerified) {
|
|
125
|
-
|
|
125
|
+
localContext.debug(`...verified the '${metastatementString}' metastatement.`, metastatementNode);
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
return metastatementVerified;
|
|
@@ -6,28 +6,28 @@ import { nodeQuery } from "../../utilities/query";
|
|
|
6
6
|
|
|
7
7
|
const metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!");
|
|
8
8
|
|
|
9
|
-
export default function verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived,
|
|
9
|
+
export default function verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext) {
|
|
10
10
|
let unqualifiedMetastatementVerified = false;
|
|
11
11
|
|
|
12
12
|
const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
|
|
13
|
-
unqualifiedMetastatementString =
|
|
13
|
+
unqualifiedMetastatementString = localContext.nodeAsString(unqualifiedMetastatementNode);
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
localContext.trace(`Verifying the '${unqualifiedMetastatementString}' unqualified metastatement...`, unqualifiedMetastatementNode);
|
|
16
16
|
|
|
17
17
|
if (derived) {
|
|
18
|
-
const matchesMetastatementNode =
|
|
18
|
+
const matchesMetastatementNode = localContext.matchMetastatementNode(metastatementNode);
|
|
19
19
|
|
|
20
20
|
unqualifiedMetastatementVerified = matchesMetastatementNode; ///
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
if (!unqualifiedMetastatementVerified) {
|
|
24
|
-
const metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived,
|
|
24
|
+
const metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived, localContext);
|
|
25
25
|
|
|
26
26
|
unqualifiedMetastatementVerified = metastatementVerified; ///
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
if (unqualifiedMetastatementVerified) {
|
|
30
|
-
|
|
30
|
+
localContext.debug(`...verified the '${unqualifiedMetastatementString}' unqualified metastatement.`, unqualifiedMetastatementNode);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
return unqualifiedMetastatementVerified;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import
|
|
3
|
+
import verifyJudgement from "../verify/judgement";
|
|
4
|
+
import metaLevelNodeVerifier from "../verifier/node/metaLevel";
|
|
5
5
|
|
|
6
6
|
import { nodeQuery } from "../utilities/query";
|
|
7
7
|
|
|
8
|
-
const
|
|
8
|
+
const judgementNodeQuery = nodeQuery("/metastatement/judgement!");
|
|
9
9
|
|
|
10
|
-
function verifyMetastatement(metastatementNode, assignments, derived,
|
|
10
|
+
function verifyMetastatement(metastatementNode, assignments, derived, localContext) {
|
|
11
11
|
let metastatementVerified;
|
|
12
12
|
|
|
13
|
-
const metastatementString =
|
|
13
|
+
const metastatementString = localContext.nodeAsString(metastatementNode);
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
localContext.trace(`Verifying the '${metastatementString}' metastatement...`, metastatementNode);
|
|
16
16
|
|
|
17
17
|
const verifyMetaStatementFunctions = [
|
|
18
|
-
|
|
18
|
+
verifyMetastatementAsJudgement,
|
|
19
19
|
verifyMetastatementAsIs
|
|
20
20
|
];
|
|
21
21
|
|
|
22
22
|
metastatementVerified = verifyMetaStatementFunctions.some((verifyStatementFunction) => {
|
|
23
|
-
const metastatementVerified = verifyStatementFunction(metastatementNode, assignments, derived,
|
|
23
|
+
const metastatementVerified = verifyStatementFunction(metastatementNode, assignments, derived, localContext);
|
|
24
24
|
|
|
25
25
|
if (metastatementVerified) {
|
|
26
26
|
return true;
|
|
@@ -28,49 +28,49 @@ function verifyMetastatement(metastatementNode, assignments, derived, localMetaC
|
|
|
28
28
|
});
|
|
29
29
|
|
|
30
30
|
if (metastatementVerified) {
|
|
31
|
-
|
|
31
|
+
localContext.debug(`...verified the '${metastatementString}' metastatement.`, metastatementNode);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
return metastatementVerified;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
Object.assign(
|
|
37
|
+
Object.assign(metaLevelNodeVerifier, {
|
|
38
38
|
verifyMetastatement
|
|
39
39
|
});
|
|
40
40
|
|
|
41
41
|
export default verifyMetastatement;
|
|
42
42
|
|
|
43
|
-
function
|
|
44
|
-
let
|
|
43
|
+
function verifyMetastatementAsJudgement(metastatementNode, assignments, derived, localContext) {
|
|
44
|
+
let metastatementVerifiedAsJudgement = false;
|
|
45
45
|
|
|
46
|
-
const
|
|
46
|
+
const judgementNode = judgementNodeQuery(metastatementNode);
|
|
47
47
|
|
|
48
|
-
if (
|
|
49
|
-
const metastatementString =
|
|
48
|
+
if (judgementNode !== null) {
|
|
49
|
+
const metastatementString = localContext.nodeAsString(metastatementNode);
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
localContext.trace(`Verifying the '${metastatementString}' metastatement as a judgement...`, metastatementNode);
|
|
52
52
|
|
|
53
|
-
const
|
|
53
|
+
const judgementVerified = verifyJudgement(judgementNode, assignments, derived, localContext);
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
metastatementVerifiedAsJudgement = judgementVerified; ///
|
|
56
56
|
|
|
57
|
-
if (
|
|
58
|
-
|
|
57
|
+
if (metastatementVerifiedAsJudgement) {
|
|
58
|
+
localContext.debug(`...verified the '${metastatementString}' metastatement as a judgement.`, metastatementNode);
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
return
|
|
62
|
+
return metastatementVerifiedAsJudgement;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
function verifyMetastatementAsIs(metastatementNode, assignments, derived,
|
|
65
|
+
function verifyMetastatementAsIs(metastatementNode, assignments, derived, localContext) {
|
|
66
66
|
let metastatementVerifiedAsIs;
|
|
67
67
|
|
|
68
|
-
const
|
|
68
|
+
const judgementNode = judgementNodeQuery(metastatementNode);
|
|
69
69
|
|
|
70
|
-
if (
|
|
71
|
-
const metastatementString =
|
|
70
|
+
if (judgementNode === null) {
|
|
71
|
+
const metastatementString = localContext.nodeAsString(metastatementNode);
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
localContext.trace(`Verifying the '${metastatementString}' metastatement as is...`, metastatementNode);
|
|
74
74
|
|
|
75
75
|
const verifyMetastatementAsIsFunctions = [
|
|
76
76
|
verifyDerivedMetastatementAsIs,
|
|
@@ -78,7 +78,7 @@ function verifyMetastatementAsIs(metastatementNode, assignments, derived, localM
|
|
|
78
78
|
];
|
|
79
79
|
|
|
80
80
|
metastatementVerifiedAsIs = verifyMetastatementAsIsFunctions.some((verifyMetastatementAsIsFunction) => {
|
|
81
|
-
const metastatementVerifiedAsIs = verifyMetastatementAsIsFunction(metastatementNode, assignments, derived,
|
|
81
|
+
const metastatementVerifiedAsIs = verifyMetastatementAsIsFunction(metastatementNode, assignments, derived, localContext);
|
|
82
82
|
|
|
83
83
|
if (metastatementVerifiedAsIs) {
|
|
84
84
|
return true;
|
|
@@ -86,35 +86,35 @@ function verifyMetastatementAsIs(metastatementNode, assignments, derived, localM
|
|
|
86
86
|
});
|
|
87
87
|
|
|
88
88
|
if (metastatementVerifiedAsIs) {
|
|
89
|
-
|
|
89
|
+
localContext.debug(`...verified the '${metastatementString}' metastatement as is.`, metastatementNode);
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
return metastatementVerifiedAsIs;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
function verifyDerivedMetastatementAsIs(metastatementNode, assignments, derived,
|
|
96
|
+
function verifyDerivedMetastatementAsIs(metastatementNode, assignments, derived, localContext) {
|
|
97
97
|
let derivedMetastatementVerifiedAsIs = false;
|
|
98
98
|
|
|
99
99
|
if (derived) {
|
|
100
|
-
const metastatementString =
|
|
100
|
+
const metastatementString = localContext.nodeAsString(metastatementNode);
|
|
101
101
|
|
|
102
|
-
|
|
102
|
+
localContext.debug(`Cannot verify the derived '${metastatementString}' metastatement as is.`, metastatementNode);
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
return derivedMetastatementVerifiedAsIs;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
function verifyStatedMetastatementAsIs(metastatementNode, assignments, derived,
|
|
108
|
+
function verifyStatedMetastatementAsIs(metastatementNode, assignments, derived, localContext) {
|
|
109
109
|
let statedMetastatementVerifiedAsIs = false;
|
|
110
110
|
|
|
111
111
|
if (!derived) {
|
|
112
|
-
const metastatementString =
|
|
112
|
+
const metastatementString = localContext.nodeAsString(metastatementNode);
|
|
113
113
|
|
|
114
|
-
|
|
114
|
+
localContext.trace(`Verifying the stated '${metastatementString}' metastatement as is...`, metastatementNode);
|
|
115
115
|
|
|
116
116
|
const nonTerminalNode = metastatementNode, ///
|
|
117
|
-
nonTerminalNodeVerified =
|
|
117
|
+
nonTerminalNodeVerified = metaLevelNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localContext, () => {
|
|
118
118
|
const verifiedAhead = true;
|
|
119
119
|
|
|
120
120
|
return verifiedAhead;
|
|
@@ -123,7 +123,7 @@ function verifyStatedMetastatementAsIs(metastatementNode, assignments, derived,
|
|
|
123
123
|
statedMetastatementVerifiedAsIs = nonTerminalNodeVerified; ///
|
|
124
124
|
|
|
125
125
|
if (statedMetastatementVerifiedAsIs) {
|
|
126
|
-
|
|
126
|
+
localContext.debug(`...verified the stated '${metastatementString}' metastatement as is.`, metastatementNode);
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import Metatheorem from "../metatheorem";
|
|
4
4
|
import verifyLabels from "../verify/labels";
|
|
5
5
|
import verifyMetaproof from "../verify/metaproof";
|
|
6
|
-
import LocalMetaContext from "../context/localMeta";
|
|
7
6
|
import verifyMetaConsequent from "../verify/metaConsequent";
|
|
7
|
+
import MetaLevelLocalContext from "../context/local/metaLevel";
|
|
8
8
|
import verifyMetaSuppositions from "../verify/metaSuppositions";
|
|
9
9
|
|
|
10
10
|
import { first } from "../utilities/array";
|
|
@@ -19,8 +19,7 @@ export default function verifyMetatheorem(metatheoremNode, fileContext) {
|
|
|
19
19
|
let metatheoremVerified = false;
|
|
20
20
|
|
|
21
21
|
const labelNodes = labelNodesQuery(metatheoremNode),
|
|
22
|
-
labelsString = fileContext.nodesAsString(labelNodes)
|
|
23
|
-
localMetaContext = LocalMetaContext.fromFileContext(fileContext);
|
|
22
|
+
labelsString = fileContext.nodesAsString(labelNodes);
|
|
24
23
|
|
|
25
24
|
fileContext.trace(`Verifying the '${labelsString}' metatheorem...`, metatheoremNode);
|
|
26
25
|
|
|
@@ -28,21 +27,23 @@ export default function verifyMetatheorem(metatheoremNode, fileContext) {
|
|
|
28
27
|
labelsVerified = verifyLabels(labelNodes, labels, fileContext);
|
|
29
28
|
|
|
30
29
|
if (labelsVerified) {
|
|
31
|
-
const
|
|
30
|
+
const metaLevelLocalContext = MetaLevelLocalContext.fromFileContext(fileContext),
|
|
31
|
+
localContext = metaLevelLocalContext, ///
|
|
32
|
+
substitutions = [],
|
|
32
33
|
metaSuppositions = [],
|
|
33
34
|
metaSuppositionNodes = metaSuppositionsNodeQuery(metatheoremNode),
|
|
34
|
-
metaSuppositionsVerified = verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, substitutions,
|
|
35
|
+
metaSuppositionsVerified = verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, substitutions, localContext);
|
|
35
36
|
|
|
36
37
|
if (metaSuppositionsVerified) {
|
|
37
38
|
const metaConsequents = [],
|
|
38
39
|
metaConsequentNode = metaConsequentNodeQuery(metatheoremNode),
|
|
39
|
-
metaConsequentVerified = verifyMetaConsequent(metaConsequentNode, metaConsequents, substitutions,
|
|
40
|
+
metaConsequentVerified = verifyMetaConsequent(metaConsequentNode, metaConsequents, substitutions, localContext);
|
|
40
41
|
|
|
41
42
|
if (metaConsequentVerified) {
|
|
42
43
|
const metaproofNode = metaproofNodeQuery(metatheoremNode),
|
|
43
44
|
firstMetaConsequent = first(metaConsequents),
|
|
44
45
|
metaConsequent = firstMetaConsequent, ///
|
|
45
|
-
metaproofVerified = verifyMetaproof(metaproofNode, metaConsequent, substitutions,
|
|
46
|
+
metaproofVerified = verifyMetaproof(metaproofNode, metaConsequent, substitutions, localContext);
|
|
46
47
|
|
|
47
48
|
if (metaproofVerified) {
|
|
48
49
|
const metatheorem = Metatheorem.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, metaSuppositions, metaConsequent, substitutions, fileContext);
|
|
@@ -66,14 +66,14 @@ export default function verifyMetavariable(metavariableNode, metaTypeNode, fileC
|
|
|
66
66
|
return metavariableVerified;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
export function verifyStandaloneMetavariable(metavariableNode,
|
|
69
|
+
export function verifyStandaloneMetavariable(metavariableNode, localContext, verifyAhead) {
|
|
70
70
|
let standaloneMetavariableVerified = false;
|
|
71
71
|
|
|
72
|
-
const metavariableString =
|
|
72
|
+
const metavariableString = localContext.nodeAsString(metavariableNode);
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
localContext.trace(`Verifying the '${metavariableString}' standalone metavariable...`, metavariableNode);
|
|
75
75
|
|
|
76
|
-
const metavariablePresent =
|
|
76
|
+
const metavariablePresent = localContext.isMetavariablePresentByMetavariableNode(metavariableNode, localContext);
|
|
77
77
|
|
|
78
78
|
if (metavariablePresent) {
|
|
79
79
|
const verifiedAhead = verifyAhead();
|
|
@@ -82,7 +82,7 @@ export function verifyStandaloneMetavariable(metavariableNode, localMetaContext,
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
if (standaloneMetavariableVerified) {
|
|
85
|
-
|
|
85
|
+
localContext.debug(`...verified the '${metavariableString}' standalone metavariable.`, metavariableNode);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
return standaloneMetavariableVerified;
|
package/src/verify/premise.js
CHANGED
|
@@ -13,12 +13,12 @@ const statementNodeQuery = nodeQuery("/unqualifiedStatement/statement!"),
|
|
|
13
13
|
unqualifiedStatementNodeQuery = nodeQuery("/premise/unqualifiedStatement!"),
|
|
14
14
|
unqualifiedMetastatementNodeQuery = nodeQuery("/premise/unqualifiedMetastatement!");
|
|
15
15
|
|
|
16
|
-
export default function verifyPremise(premiseNode, premises,
|
|
16
|
+
export default function verifyPremise(premiseNode, premises, localContext) {
|
|
17
17
|
let premiseVerified;
|
|
18
18
|
|
|
19
|
-
const premiseString =
|
|
19
|
+
const premiseString = localContext.nodeAsString(premiseNode);
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
localContext.trace(`Verifying the '${premiseString}' premise...`, premiseNode);
|
|
22
22
|
|
|
23
23
|
const unqualifiedStatementNode = unqualifiedStatementNodeQuery(premiseNode),
|
|
24
24
|
unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(premiseNode);
|
|
@@ -26,7 +26,6 @@ export default function verifyPremise(premiseNode, premises, localMetaContext) {
|
|
|
26
26
|
if (unqualifiedStatementNode !== null) {
|
|
27
27
|
const derived = false,
|
|
28
28
|
assignments = [],
|
|
29
|
-
localContext = localMetaContext, ///
|
|
30
29
|
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
|
|
31
30
|
|
|
32
31
|
if (unqualifiedStatementVerified) {
|
|
@@ -39,10 +38,10 @@ export default function verifyPremise(premiseNode, premises, localMetaContext) {
|
|
|
39
38
|
if (unqualifiedMetastatementNode !== null) {
|
|
40
39
|
const derived = false,
|
|
41
40
|
assignments = [],
|
|
42
|
-
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived,
|
|
41
|
+
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext);
|
|
43
42
|
|
|
44
43
|
if (unqualifiedMetastatementVerified) {
|
|
45
|
-
const localContext =
|
|
44
|
+
const localContext = localContext, ///
|
|
46
45
|
assignmentAssigned = assignAssignment(assignments, localContext);
|
|
47
46
|
|
|
48
47
|
premiseVerified = assignmentAssigned; ///
|
|
@@ -71,9 +70,9 @@ export default function verifyPremise(premiseNode, premises, localMetaContext) {
|
|
|
71
70
|
|
|
72
71
|
premises.push(premise);
|
|
73
72
|
|
|
74
|
-
|
|
73
|
+
localContext.addMetaproofStep(metaproofStep);
|
|
75
74
|
|
|
76
|
-
|
|
75
|
+
localContext.debug(`...verified the '${premiseString}' premise.`, premiseNode);
|
|
77
76
|
}
|
|
78
77
|
|
|
79
78
|
return premiseVerified;
|
package/src/verify/premises.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
import verifyPremise from "../verify/premise";
|
|
4
4
|
|
|
5
|
-
export default function verifyPremises(premiseNodes, premises,
|
|
5
|
+
export default function verifyPremises(premiseNodes, premises, localContext) {
|
|
6
6
|
let premisesVerified;
|
|
7
7
|
|
|
8
8
|
premisesVerified = premiseNodes.every((premiseNode) => {
|
|
9
|
-
const premiseVerified = verifyPremise(premiseNode, premises,
|
|
9
|
+
const premiseVerified = verifyPremise(premiseNode, premises, localContext);
|
|
10
10
|
|
|
11
11
|
if (premiseVerified) {
|
|
12
12
|
return true;
|
package/src/verify/proof.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import LocalContext from "../context/local";
|
|
4
3
|
import verifyDerivation from "../verify/derivation";
|
|
4
|
+
import IntrinsicLevelLocalContext from "../context/local/intrinsicLevel";
|
|
5
5
|
|
|
6
6
|
import { nodeQuery } from "../utilities/query";
|
|
7
7
|
|
|
@@ -10,7 +10,9 @@ const derivationNodeQuery = nodeQuery("/proof/derivation!");
|
|
|
10
10
|
export default function verifyProof(proofNode, conclusion, localContext) {
|
|
11
11
|
let proofVerified = false;
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
const intrinsicLevelLocalContext = IntrinsicLevelLocalContext.fromLocalContext(localContext); ///
|
|
14
|
+
|
|
15
|
+
localContext = intrinsicLevelLocalContext; ///
|
|
14
16
|
|
|
15
17
|
const derivationNode = derivationNodeQuery(proofNode),
|
|
16
18
|
derivationVerified = verifyDerivation(derivationNode, localContext);
|
package/src/verify/rule.js
CHANGED
|
@@ -4,8 +4,8 @@ import Rule from "../rule";
|
|
|
4
4
|
import verifyLabels from "../verify/labels";
|
|
5
5
|
import verifyPremises from "../verify/premises";
|
|
6
6
|
import verifyRuleProof from "../verify/ruleProof";
|
|
7
|
-
import LocalMetaContext from "../context/localMeta";
|
|
8
7
|
import verifyConclusion from "../verify/conclusion";
|
|
8
|
+
import MetaLevelLocalContext from "../context/local/metaLevel";
|
|
9
9
|
|
|
10
10
|
import { first } from "../utilities/array";
|
|
11
11
|
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
@@ -19,8 +19,7 @@ export default function verifyRule(ruleNode, fileContext) {
|
|
|
19
19
|
let ruleVerified = false;
|
|
20
20
|
|
|
21
21
|
const labelNodes = labelNodesQuery(ruleNode),
|
|
22
|
-
labelsString = fileContext.nodesAsString(labelNodes)
|
|
23
|
-
localMetaContext = LocalMetaContext.fromFileContext(fileContext);
|
|
22
|
+
labelsString = fileContext.nodesAsString(labelNodes);
|
|
24
23
|
|
|
25
24
|
fileContext.trace(`Verifying the '${labelsString}' rule...`, ruleNode);
|
|
26
25
|
|
|
@@ -28,14 +27,16 @@ export default function verifyRule(ruleNode, fileContext) {
|
|
|
28
27
|
labelsVerified = verifyLabels(labelNodes, labels, fileContext);
|
|
29
28
|
|
|
30
29
|
if (labelsVerified) {
|
|
31
|
-
const
|
|
30
|
+
const metaLevelLocalContext = MetaLevelLocalContext.fromFileContext(fileContext),
|
|
31
|
+
premises = [],
|
|
32
|
+
localContext = metaLevelLocalContext, ///
|
|
32
33
|
premiseNodes = premisesNodeQuery(ruleNode),
|
|
33
|
-
premisesVerified = verifyPremises(premiseNodes, premises,
|
|
34
|
+
premisesVerified = verifyPremises(premiseNodes, premises, localContext);
|
|
34
35
|
|
|
35
36
|
if (premisesVerified) {
|
|
36
37
|
const conclusions = [],
|
|
37
38
|
conclusionNode = conclusionNodeQuery(ruleNode),
|
|
38
|
-
conclusionVerified = verifyConclusion(conclusionNode, conclusions,
|
|
39
|
+
conclusionVerified = verifyConclusion(conclusionNode, conclusions, localContext);
|
|
39
40
|
|
|
40
41
|
if (conclusionVerified) {
|
|
41
42
|
const ruleProofNode = ruleProofNodeQuery(ruleNode),
|
|
@@ -45,7 +46,7 @@ export default function verifyRule(ruleNode, fileContext) {
|
|
|
45
46
|
let ruleProofVerified = true; ///
|
|
46
47
|
|
|
47
48
|
if (ruleProofNode !== null) {
|
|
48
|
-
ruleProofVerified = verifyRuleProof(ruleProofNode, conclusion,
|
|
49
|
+
ruleProofVerified = verifyRuleProof(ruleProofNode, conclusion, localContext);
|
|
49
50
|
}
|
|
50
51
|
|
|
51
52
|
if (ruleProofVerified) {
|
|
@@ -6,13 +6,13 @@ import { nodesQuery } from "../utilities/query";
|
|
|
6
6
|
|
|
7
7
|
const ruleProofStepNodesQuery = nodesQuery("/ruleDerivation/ruleProofStep|lastRuleProofStep");
|
|
8
8
|
|
|
9
|
-
export default function verifyRuleDerivation(ruleDerivationNode,
|
|
9
|
+
export default function verifyRuleDerivation(ruleDerivationNode, localContext) {
|
|
10
10
|
let ruleDerivationVerified;
|
|
11
11
|
|
|
12
12
|
const ruleProofStepNodes = ruleProofStepNodesQuery(ruleDerivationNode);
|
|
13
13
|
|
|
14
14
|
ruleDerivationVerified = ruleProofStepNodes.every((ruleProofStepNode) => {
|
|
15
|
-
const ruleProofStepVerified = verifyRuleProofStep(ruleProofStepNode,
|
|
15
|
+
const ruleProofStepVerified = verifyRuleProofStep(ruleProofStepNode, localContext);
|
|
16
16
|
|
|
17
17
|
if (ruleProofStepVerified) {
|
|
18
18
|
return true;
|
package/src/verify/ruleProof.js
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import LocalMetaContext from "../context/localMeta";
|
|
4
3
|
import verifyRuleDerivation from "../verify/ruleDerivation";
|
|
4
|
+
import MetaLevelLocalContext from "../context/local/metaLevel";
|
|
5
5
|
|
|
6
6
|
import { nodeQuery } from "../utilities/query";
|
|
7
7
|
|
|
8
8
|
const ruleDerivationNodeQuery = nodeQuery("/ruleProof/ruleDerivation!");
|
|
9
9
|
|
|
10
|
-
export default function verifyRuleProof(ruleProofNode, conclusion,
|
|
10
|
+
export default function verifyRuleProof(ruleProofNode, conclusion, localContext) {
|
|
11
11
|
let ruleProofVerified = false;
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
const metaLevelLocalContext = MetaLevelLocalContext.fromLocalContext(localContext);
|
|
14
|
+
|
|
15
|
+
localContext = metaLevelLocalContext; ///
|
|
14
16
|
|
|
15
17
|
const ruleDerivationNode = ruleDerivationNodeQuery(ruleProofNode),
|
|
16
|
-
ruleDerivationVerified = verifyRuleDerivation(ruleDerivationNode,
|
|
18
|
+
ruleDerivationVerified = verifyRuleDerivation(ruleDerivationNode, localContext);
|
|
17
19
|
|
|
18
20
|
if (ruleDerivationVerified) {
|
|
19
|
-
const lastMetaproofStep =
|
|
21
|
+
const lastMetaproofStep = localContext.getLastMetaproofStep(),
|
|
20
22
|
metaproofStep = lastMetaproofStep, ///
|
|
21
23
|
metastatementNode = metaproofStep.getMetastatementNode(),
|
|
22
24
|
conclusionMetastatementNode = conclusion.getMetastatementNode(),
|