occam-verify-cli 0.0.921 → 0.0.923
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/axiomLemmaTheoremConjecture.js +3 -4
- package/lib/conclusion.js +13 -43
- package/lib/constants.js +1 -5
- package/lib/context/local.js +386 -0
- package/lib/declaration.js +15 -15
- package/lib/metaLemmaMetatheorem.js +59 -59
- package/lib/mixins/context.js +17 -13
- package/lib/mixins/nodesVerifier/metaLevel.js +6 -6
- package/lib/premise.js +16 -94
- package/lib/{step/proof.js → proofStep.js} +1 -1
- package/lib/rule.js +1 -45
- package/lib/ruleNames.js +1 -9
- package/lib/substitution/statementForMetavariable.js +9 -1
- package/lib/substitution.js +1 -8
- package/lib/supposition.js +55 -1
- package/lib/utilities/customGrammar.js +2 -2
- package/lib/utilities/match.js +13 -50
- package/lib/utilities/node.js +2 -27
- package/lib/utilities/tokens.js +1 -8
- package/lib/utilities/verify.js +8 -24
- package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +29 -29
- package/lib/verifier/nodes/metaLevel.js +13 -13
- package/lib/verify/axiom.js +3 -3
- package/lib/verify/conclusion.js +10 -11
- package/lib/verify/conjecture.js +3 -3
- package/lib/verify/declaration.js +6 -6
- package/lib/verify/lemma.js +3 -3
- package/lib/verify/metaLemma.js +13 -13
- package/lib/verify/metastatement.js +64 -64
- package/lib/verify/metatheorem.js +13 -13
- package/lib/verify/premise.js +11 -30
- package/lib/verify/proof.js +3 -4
- package/lib/verify/proofStep.js +5 -5
- package/lib/verify/rule.js +11 -11
- package/lib/verify/statement/qualified.js +35 -9
- package/lib/verify/statement/unqualified.js +1 -1
- package/lib/verify/subproof.js +3 -4
- package/lib/verify/supposition.js +3 -3
- package/lib/verify/termAsConstructor.js +3 -3
- package/lib/verify/theorem.js +3 -3
- package/package.json +4 -4
- package/src/axiomLemmaTheoremConjecture.js +2 -4
- package/src/conclusion.js +15 -54
- package/src/constants.js +0 -1
- package/src/context/{local/intrinsicLevel.js → local.js} +182 -97
- package/src/declaration.js +19 -19
- package/src/metaLemmaMetatheorem.js +58 -58
- package/src/mixins/context.js +12 -9
- package/src/mixins/nodesVerifier/metaLevel.js +8 -8
- package/src/premise.js +25 -143
- package/src/rule.js +0 -67
- package/src/ruleNames.js +0 -2
- package/src/substitution/statementForMetavariable.js +14 -0
- package/src/substitution.js +0 -6
- package/src/supposition.js +46 -0
- package/src/utilities/customGrammar.js +1 -2
- package/src/utilities/match.js +13 -60
- package/src/utilities/node.js +3 -32
- package/src/utilities/tokens.js +0 -8
- package/src/utilities/verify.js +4 -20
- package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +36 -37
- package/src/verifier/nodes/metaLevel.js +17 -17
- package/src/verify/axiom.js +3 -4
- package/src/verify/conclusion.js +9 -13
- package/src/verify/conjecture.js +3 -4
- package/src/verify/declaration.js +7 -7
- package/src/verify/lemma.js +3 -4
- package/src/verify/metaLemma.js +24 -25
- package/src/verify/metastatement.js +64 -64
- package/src/verify/metatheorem.js +23 -24
- package/src/verify/premise.js +14 -46
- package/src/verify/proof.js +2 -4
- package/src/verify/proofStep.js +1 -1
- package/src/verify/rule.js +11 -12
- package/src/verify/statement/qualified.js +43 -9
- package/src/verify/statement/unqualified.js +1 -1
- package/src/verify/subproof.js +2 -4
- package/src/verify/supposition.js +1 -1
- package/src/verify/termAsConstructor.js +3 -4
- package/src/verify/theorem.js +3 -4
- package/lib/context/local/intrinsicLevel.js +0 -326
- package/lib/context/local/metaLevel.js +0 -282
- package/lib/metaConsequent.js +0 -108
- package/lib/metaSupposition.js +0 -160
- package/lib/node/metastatement/bracketed.js +0 -16
- package/lib/step/metaproof.js +0 -106
- package/lib/substitution/metastatementForMetavariable.js +0 -173
- package/lib/verify/metaConsequent.js +0 -50
- package/lib/verify/metaDerivation.js +0 -31
- package/lib/verify/metaSubDerivation.js +0 -25
- package/lib/verify/metaSubproof.js +0 -35
- package/lib/verify/metaSupposition.js +0 -61
- package/lib/verify/metaSuppositions.js +0 -28
- package/lib/verify/metaproof.js +0 -32
- package/lib/verify/metaproofStep.js +0 -98
- package/lib/verify/metastatement/qualified.js +0 -95
- package/lib/verify/metastatement/unqualified.js +0 -37
- package/lib/verify/metastatementAsContainedAssertion.js +0 -109
- package/lib/verify/metastatementAsDefinedAssertion.js +0 -132
- package/lib/verify/metavariableAgainstMetastatement.js +0 -44
- package/src/context/local/metaLevel.js +0 -191
- package/src/metaConsequent.js +0 -83
- package/src/metaSupposition.js +0 -127
- package/src/node/metastatement/bracketed.js +0 -9
- package/src/step/metaproof.js +0 -73
- package/src/substitution/metastatementForMetavariable.js +0 -90
- package/src/verify/metaConsequent.js +0 -61
- package/src/verify/metaDerivation.js +0 -23
- package/src/verify/metaSubDerivation.js +0 -22
- package/src/verify/metaSubproof.js +0 -34
- package/src/verify/metaSupposition.js +0 -78
- package/src/verify/metaSuppositions.js +0 -17
- package/src/verify/metaproof.js +0 -30
- package/src/verify/metaproofStep.js +0 -137
- package/src/verify/metastatement/qualified.js +0 -130
- package/src/verify/metastatement/unqualified.js +0 -34
- package/src/verify/metastatementAsContainedAssertion.js +0 -127
- package/src/verify/metastatementAsDefinedAssertion.js +0 -156
- package/src/verify/metavariableAgainstMetastatement.js +0 -42
- /package/src/{step/proof.js → proofStep.js} +0 -0
|
@@ -1,156 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import MetastatementForMetavariableSubstitution from "../substitution/metastatementForMetavariable";
|
|
4
|
-
|
|
5
|
-
export default function verifyMetavariableAgainstMetastatement(metavariableNode, metastatementNode, substitutions, verifyAhead) {
|
|
6
|
-
let metavariableVerifiedAgainstMetastatement = false;
|
|
7
|
-
|
|
8
|
-
const substitution = substitutions.find((substitution) => {
|
|
9
|
-
const substitutionMatchesMetavariableNodeA = substitution.matchMetavariableNode(metavariableNode);
|
|
10
|
-
|
|
11
|
-
if (substitutionMatchesMetavariableNodeA) {
|
|
12
|
-
return true;
|
|
13
|
-
}
|
|
14
|
-
}) || null;
|
|
15
|
-
|
|
16
|
-
if (substitution !== null) {
|
|
17
|
-
const metastatementNodeMatches = substitution.matchMetastatementNode(metastatementNode);
|
|
18
|
-
|
|
19
|
-
if (metastatementNodeMatches) {
|
|
20
|
-
const verifiedAhead = verifyAhead();
|
|
21
|
-
|
|
22
|
-
metavariableVerifiedAgainstMetastatement = verifiedAhead; ///
|
|
23
|
-
}
|
|
24
|
-
} else {
|
|
25
|
-
let verifiedAhead;
|
|
26
|
-
|
|
27
|
-
const metastatementForMetavariableSubstitution = MetastatementForMetavariableSubstitution.fromMetavariableNodeAndMetastatementNode(metavariableNode, metastatementNode),
|
|
28
|
-
substitution = metastatementForMetavariableSubstitution; ///
|
|
29
|
-
|
|
30
|
-
substitutions.push(substitution);
|
|
31
|
-
|
|
32
|
-
verifiedAhead = verifyAhead();
|
|
33
|
-
|
|
34
|
-
if (!verifiedAhead) {
|
|
35
|
-
substitutions.pop();
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
metavariableVerifiedAgainstMetastatement = verifiedAhead; ///
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return metavariableVerifiedAgainstMetastatement;
|
|
42
|
-
}
|
|
File without changes
|