occam-verify-cli 0.0.920 → 0.0.922

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 (52) hide show
  1. package/lib/axiomLemmaTheoremConjecture.js +3 -4
  2. package/lib/conclusion.js +4 -4
  3. package/lib/context/local.js +426 -0
  4. package/lib/metaConsequent.js +3 -3
  5. package/lib/metaSupposition.js +5 -5
  6. package/lib/mixins/context.js +17 -13
  7. package/lib/premise.js +8 -9
  8. package/lib/verify/axiom.js +3 -3
  9. package/lib/verify/conjecture.js +3 -3
  10. package/lib/verify/lemma.js +3 -3
  11. package/lib/verify/metaLemma.js +4 -4
  12. package/lib/verify/metaSubproof.js +5 -6
  13. package/lib/verify/metaproof.js +6 -7
  14. package/lib/verify/metatheorem.js +4 -4
  15. package/lib/verify/proof.js +3 -4
  16. package/lib/verify/rule.js +11 -10
  17. package/lib/verify/subproof.js +3 -4
  18. package/lib/verify/termAsConstructor.js +3 -3
  19. package/lib/verify/theorem.js +3 -3
  20. package/package.json +4 -4
  21. package/src/axiomLemmaTheoremConjecture.js +2 -4
  22. package/src/conclusion.js +3 -3
  23. package/src/context/{local/intrinsicLevel.js → local.js} +223 -91
  24. package/src/metaConsequent.js +3 -3
  25. package/src/metaSupposition.js +5 -5
  26. package/src/mixins/context.js +12 -9
  27. package/src/premise.js +11 -12
  28. package/src/verify/axiom.js +3 -4
  29. package/src/verify/conjecture.js +3 -4
  30. package/src/verify/lemma.js +3 -4
  31. package/src/verify/metaLemma.js +4 -4
  32. package/src/verify/metaSubproof.js +5 -7
  33. package/src/verify/metaproof.js +7 -10
  34. package/src/verify/metatheorem.js +4 -4
  35. package/src/verify/proof.js +2 -4
  36. package/src/verify/rule.js +14 -12
  37. package/src/verify/subproof.js +2 -4
  38. package/src/verify/termAsConstructor.js +3 -4
  39. package/src/verify/theorem.js +3 -4
  40. package/lib/context/local/intrinsicLevel.js +0 -326
  41. package/lib/context/local/metaLevel.js +0 -282
  42. package/lib/verify/ruleDerivation.js +0 -31
  43. package/lib/verify/ruleProof.js +0 -32
  44. package/lib/verify/ruleProofStep.js +0 -98
  45. package/lib/verify/ruleSubDerivation.js +0 -25
  46. package/lib/verify/ruleSubproof.js +0 -35
  47. package/src/context/local/metaLevel.js +0 -191
  48. package/src/verify/ruleDerivation.js +0 -23
  49. package/src/verify/ruleProof.js +0 -31
  50. package/src/verify/ruleProofStep.js +0 -139
  51. package/src/verify/ruleSubDerivation.js +0 -22
  52. package/src/verify/ruleSubproof.js +0 -34
@@ -1,191 +0,0 @@
1
- "use strict";
2
-
3
- import IntrinsicLevelLocalContext from "../../context/local/intrinsicLevel";
4
-
5
- import { last, reverse } from "../../utilities/array";
6
-
7
- class MetaLevelLocalContext extends IntrinsicLevelLocalContext {
8
- constructor(context, variables, proofSteps, equivalences, judgements, metavariables, metaproofSteps) {
9
- super(context, variables, proofSteps, equivalences);
10
-
11
- this.judgements = judgements;
12
- this.metavariables = metavariables;
13
- this.metaproofSteps = metaproofSteps;
14
- }
15
-
16
- getJudgements() {
17
- let judgements = this.context.getJudgements();
18
-
19
- judgements = [ ///
20
- ...this.judgements,
21
- ...judgements
22
- ]
23
-
24
- return judgements;
25
- }
26
-
27
- getMetavariables() {
28
- let metavariables = this.context.getMetavariables();
29
-
30
- metavariables = [ ///
31
- ...this.metavariables,
32
- ...metavariables
33
- ]
34
-
35
- return metavariables;
36
- }
37
-
38
- getMetaproofSteps() {
39
- let metaproofSteps = this.context.getMetaproofSteps();
40
-
41
- metaproofSteps = [ ///
42
- ...metaproofSteps,
43
- ...this.metaproofSteps
44
- ];
45
-
46
- return metaproofSteps;
47
- }
48
-
49
- isIntrinsicLevel() {
50
- const intrinsicLevel = false;
51
-
52
- return intrinsicLevel;
53
- }
54
-
55
- getLastMetaproofStep() {
56
- let lastMetaproofStep = null;
57
-
58
- const metaproofStepsLength = this.metaproofSteps.length;
59
-
60
- if (metaproofStepsLength > 0) {
61
- lastMetaproofStep = last(this.metaproofSteps);
62
- }
63
-
64
- return lastMetaproofStep;
65
- }
66
-
67
- addJudgement(judgement) {
68
- let judgementAdded = false;
69
-
70
- const metavariableNode = judgement.getMetavariableNode(),
71
- judgementPresent = this.isJudgementPresentByMetavariableNode(metavariableNode);
72
-
73
- if (!judgementPresent) {
74
- this.judgements.push(judgement);
75
-
76
- judgementAdded = true;
77
- }
78
-
79
- return judgementAdded;
80
- }
81
-
82
- addMetavariable(metavariable) {
83
- let metavariableAdded = false;
84
-
85
- const node = metavariable.getName(),
86
- metavariablePresent = this.metavariables.some((metavariable) => {
87
- const metavariableMatchesNode = metavariable.matchNode(node);
88
-
89
- if (metavariableMatchesNode) {
90
- return true;
91
- }
92
- });
93
-
94
- if (!metavariablePresent) {
95
- this.metavariables.push(metavariable);
96
-
97
- metavariableAdded = true;
98
- }
99
-
100
- return metavariableAdded;
101
- }
102
-
103
- addMetaproofStep(metaproofStep) {
104
- this.metaproofSteps.push(metaproofStep);
105
- }
106
-
107
- matchMetastatementNode(metastatementNode) {
108
- let metaproofSteps = this.getMetaproofSteps();
109
-
110
- metaproofSteps = reverse(metaproofSteps); ///
111
-
112
- const matchesMetastatementNode = metaproofSteps.some((metaproofStep) => {
113
- const metaproofStepMatchesMetastatementNode = metaproofStep.matchMetastatementNode(metastatementNode);
114
-
115
- if (metaproofStepMatchesMetastatementNode) {
116
- return true;
117
- }
118
- });
119
-
120
- return matchesMetastatementNode;
121
- }
122
-
123
- findMetavariableByMetavariableNode(metavariableNode, metaLevelLocalContext) {
124
- const node = metavariableNode, ///
125
- metavariables = this.getMetavariables(),
126
- metavariable = metavariables.find((metavariable) => {
127
- const matches = metavariable.matchNode(node, metaLevelLocalContext);
128
-
129
- if (matches) {
130
- return true;
131
- }
132
- }) || null;
133
-
134
- return metavariable;
135
- }
136
-
137
- findJudgementByMetavariableNode(metavariableNode) {
138
- const judgements = this.getJudgements(),
139
- judgement = judgements.find((judgement) => {
140
- const judgementMatchesMetavariableNode = judgement.matchMetavariableNode(metavariableNode);
141
-
142
- if (judgementMatchesMetavariableNode) {
143
- return true;
144
- }
145
- }) || null;
146
-
147
- return judgement;
148
- }
149
-
150
- isMetavariablePresentByMetavariableNode(metavariableNode, metaLevelLocalContext) {
151
- const metavariable = this.findMetavariableByMetavariableNode(metavariableNode, metaLevelLocalContext),
152
- metavariablePresent = (metavariable !== null);
153
-
154
- return metavariablePresent;
155
- }
156
-
157
- isJudgementPresentByMetavariableNode(metavariableNode) {
158
- const judgement = this.findJudgementByMetavariableNode(metavariableNode),
159
- judgementPresent = (judgement !== null);
160
-
161
- return judgementPresent;
162
- }
163
-
164
- static fromFileContext(fileContext) {
165
- const context = fileContext, ///
166
- variables = [],
167
- proofSteps = [],
168
- equivalences = [],
169
- judgements = [],
170
- metavariables = [],
171
- metaproofSteps = [],
172
- metaLevelLocalContext = new MetaLevelLocalContext(context, variables, proofSteps, equivalences, judgements, metavariables, metaproofSteps);
173
-
174
- return metaLevelLocalContext;
175
- }
176
-
177
- static fromLocalContext(localContext) {
178
- const context = localContext, ///
179
- variables = [],
180
- proofSteps = [],
181
- equivalences = [],
182
- judgements = [],
183
- metavariables = [],
184
- metaproofSteps = [],
185
- metaLevelLocalContext = new MetaLevelLocalContext(context, variables, proofSteps, equivalences, judgements, metavariables, metaproofSteps); ///
186
-
187
- return metaLevelLocalContext;
188
- }
189
- }
190
-
191
- export default MetaLevelLocalContext;
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- import verifyRuleProofStep from "../verify/ruleProofStep";
4
-
5
- import { nodesQuery } from "../utilities/query";
6
-
7
- const ruleProofStepNodesQuery = nodesQuery("/ruleDerivation/ruleProofStep|lastRuleProofStep");
8
-
9
- export default function verifyRuleDerivation(ruleDerivationNode, localContext) {
10
- let ruleDerivationVerified;
11
-
12
- const ruleProofStepNodes = ruleProofStepNodesQuery(ruleDerivationNode);
13
-
14
- ruleDerivationVerified = ruleProofStepNodes.every((ruleProofStepNode) => {
15
- const ruleProofStepVerified = verifyRuleProofStep(ruleProofStepNode, localContext);
16
-
17
- if (ruleProofStepVerified) {
18
- return true;
19
- }
20
- });
21
-
22
- return ruleDerivationVerified;
23
- }
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- import verifyRuleDerivation from "../verify/ruleDerivation";
4
- import MetaLevelLocalContext from "../context/local/metaLevel";
5
-
6
- import { nodeQuery } from "../utilities/query";
7
-
8
- const ruleDerivationNodeQuery = nodeQuery("/ruleProof/ruleDerivation!");
9
-
10
- export default function verifyRuleProof(ruleProofNode, conclusion, localContext) {
11
- let ruleProofVerified = false;
12
-
13
- const metaLevelLocalContext = MetaLevelLocalContext.fromLocalContext(localContext);
14
-
15
- localContext = metaLevelLocalContext; ///
16
-
17
- const ruleDerivationNode = ruleDerivationNodeQuery(ruleProofNode),
18
- ruleDerivationVerified = verifyRuleDerivation(ruleDerivationNode, localContext);
19
-
20
- if (ruleDerivationVerified) {
21
- const lastMetaproofStep = localContext.getLastMetaproofStep(),
22
- metaproofStep = lastMetaproofStep, ///
23
- metastatementNode = metaproofStep.getMetastatementNode(),
24
- conclusionMetastatementNode = conclusion.getMetastatementNode(),
25
- metastatementNodeMatchConclusionMetastatementNode = metastatementNode.match(conclusionMetastatementNode);
26
-
27
- ruleProofVerified = metastatementNodeMatchConclusionMetastatementNode; ///
28
- }
29
-
30
- return ruleProofVerified;
31
- }
@@ -1,139 +0,0 @@
1
- "use strict";
2
-
3
- import MetaproofStep from "../step/metaproof";
4
- import verifyRuleSubproof from "../verify/ruleSubproof";
5
- import verifyRuleSubDerivation from "../verify/ruleSubDerivation";
6
- import verifyQualifiedStatement from "../verify/statement/qualified";
7
- import verifyUnqualifiedStatement from "../verify/statement/unqualified";
8
- import verifyQualifiedMetastatement from "../verify/metastatement/qualified";
9
- import verifyUnqualifiedMetastatement from "../verify/metastatement/unqualified";
10
-
11
- import { nodeQuery } from "../utilities/query";
12
- import { assignAssignment } from "../utilities/assignments";
13
-
14
- const statementNodeQuery = nodeQuery("/qualifiedStatement|unqualifiedStatement/statement!"),
15
- ruleSubproofNodeQuery = nodeQuery("/ruleProofStep|lastRuleProofStep/ruleSubproof!"),
16
- metastatementNodeQuery = nodeQuery("/qualifiedMetastatement|unqualifiedMetastatement/metastatement!"),
17
- qualifiedStatementNodeQuery = nodeQuery("/ruleProofStep|lastRuleProofStep/qualifiedStatement!"),
18
- unqualifiedStatementNodeQuery = nodeQuery("/ruleProofStep|lastRuleProofStep/unqualifiedStatement!"),
19
- qualifiedMetastatementNodeQuery = nodeQuery("/ruleProofStep|lastRuleProofStep/qualifiedMetastatement!"),
20
- unqualifiedMetastatementNodeQuery = nodeQuery("/ruleProofStep|lastRuleProofStep/unqualifiedMetastatement!");
21
-
22
- export default function verifyRuleProofStep(ruleProofStepNode, localContext) {
23
- let ruleProofStepVerified = false;
24
-
25
- const ruleSubproofNode = ruleSubproofNodeQuery(ruleProofStepNode),
26
- qualifiedStatementNode = qualifiedStatementNodeQuery(ruleProofStepNode),
27
- unqualifiedStatementNode = unqualifiedStatementNodeQuery(ruleProofStepNode),
28
- qualifiedMetastatementNode = qualifiedMetastatementNodeQuery(ruleProofStepNode),
29
- unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(ruleProofStepNode);
30
-
31
- if (false) {
32
- ///
33
- } else if (ruleSubproofNode !== null) {
34
- let ruleSubproofVerified;
35
-
36
- ruleSubproofVerified = verifyRuleSubproof(ruleSubproofNode, localContext);
37
-
38
- if (ruleSubproofVerified) {
39
- const metaproofStep = MetaproofStep.fromRuleSubproofNode(ruleSubproofNode);
40
-
41
- localContext.addMetaproofStep(metaproofStep);
42
-
43
- ruleProofStepVerified = true;
44
- }
45
- } else if (qualifiedStatementNode !== null) {
46
- let qualifiedStatementVerified;
47
-
48
- const assignments = [];
49
-
50
- qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, assignments, localContext);
51
-
52
- if (qualifiedStatementVerified) {
53
- const assignmentAssigned = assignAssignment(assignments, localContext);
54
-
55
- qualifiedStatementVerified = assignmentAssigned; ///
56
- }
57
-
58
- if (qualifiedStatementVerified) {
59
- const statementNode = statementNodeQuery(qualifiedStatementNode),
60
- metaproofStep = MetaproofStep.fromStatementNode(statementNode);
61
-
62
- localContext.addMetaproofStep(metaproofStep);
63
-
64
- ruleProofStepVerified = true;
65
- }
66
- } else if (unqualifiedStatementNode !== null) {
67
- let unqualifiedStatementVerified;
68
-
69
- const derived = true,
70
- assignments = [];
71
-
72
- unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
73
-
74
- if (unqualifiedStatementVerified) {
75
- const assignmentAssigned = assignAssignment(assignments, localContext);
76
-
77
- unqualifiedStatementVerified = assignmentAssigned; ///
78
- }
79
-
80
- if (unqualifiedStatementVerified) {
81
- const statementNode = statementNodeQuery(unqualifiedStatementNode),
82
- metaproofStep = MetaproofStep.fromStatementNode(statementNode);
83
-
84
- localContext.addMetaproofStep(metaproofStep);
85
-
86
- ruleProofStepVerified = unqualifiedStatementVerified; ///
87
- }
88
- } else if (qualifiedMetastatementNode !== null) {
89
- let qualifiedMetastatementVerified;
90
-
91
- const assignments = [],
92
- substitutions = null;
93
-
94
- qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments, localContext);
95
-
96
- if (qualifiedMetastatementVerified) {
97
- const assignmentAssigned = assignAssignment(assignments, localContext);
98
-
99
- qualifiedMetastatementVerified = assignmentAssigned; ///
100
- }
101
-
102
- if (qualifiedMetastatementVerified) {
103
- const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
104
- metaproofStep = MetaproofStep.fromMetastatementNode(metastatementNode);
105
-
106
- localContext.addMetaproofStep(metaproofStep);
107
-
108
- ruleProofStepVerified = qualifiedMetastatementVerified; ///
109
- }
110
- } else if (unqualifiedMetastatementNode !== null) {
111
- let unqualifiedMetastatementVerified;
112
-
113
- const derived = true,
114
- assignments = [];
115
-
116
- unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext);
117
-
118
- if (unqualifiedMetastatementVerified) {
119
- const assignmentAssigned = assignAssignment(assignments, localContext);
120
-
121
- unqualifiedMetastatementVerified = assignmentAssigned; ///
122
- }
123
-
124
- if (unqualifiedMetastatementVerified) {
125
- const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
126
- metaproofStep = MetaproofStep.fromMetastatementNode(metastatementNode);
127
-
128
- localContext.addMetaproofStep(metaproofStep);
129
-
130
- ruleProofStepVerified = true;
131
- }
132
- }
133
-
134
- return ruleProofStepVerified;
135
- }
136
-
137
- Object.assign(verifyRuleSubDerivation, {
138
- verifyRuleProofStep
139
- });
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- import { nodesQuery } from "../utilities/query";
4
-
5
- const ruleProofStepNodesQuery = nodesQuery("/ruleSubDerivation/ruleProofStep|lastRuleProofStep");
6
-
7
- export default function verifyRuleSubDerivation(ruleSubDerivationNode, localContext) {
8
- let ruleSubDerivationVerified;
9
-
10
- const ruleProofStepNodes = ruleProofStepNodesQuery(ruleSubDerivationNode);
11
-
12
- ruleSubDerivationVerified = ruleProofStepNodes.every((ruleProofStepNode) => {
13
- const { verifyRuleProofStep } = verifyRuleSubDerivation,
14
- ruleProofStepVerified = verifyRuleProofStep(ruleProofStepNode, localContext);
15
-
16
- if (ruleProofStepVerified) {
17
- return true;
18
- }
19
- });
20
-
21
- return ruleSubDerivationVerified;
22
- }
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- import verifyPremises from "../verify/premises";
4
- import MetaLevelLocalContext from "../context/local/metaLevel";
5
- import verifyRuleSubDerivation from "../verify/ruleSubDerivation";
6
-
7
- import { nodeQuery, nodesQuery } from "../utilities/query";
8
-
9
- const premiseNodesQuery = nodesQuery("/ruleSubproof/premise"),
10
- ruleSubDerivationNodeQuery = nodeQuery("/ruleSubproof/ruleSubDerivation");
11
-
12
- export default function verifyRuleSubproof(ruleSubproofNode, localContext) {
13
- let ruleSubproofVerified = false;
14
-
15
- const metaLevelLocalContext = MetaLevelLocalContext.fromLocalContext(localContext);
16
-
17
- localContext = metaLevelLocalContext; ///
18
-
19
- const premises = [],
20
- premiseNodes = premiseNodesQuery(ruleSubproofNode),
21
- premisesVerified = verifyPremises(premiseNodes, premises, localContext);
22
-
23
- if (premisesVerified) {
24
- const ruleSubDerivationNode = ruleSubDerivationNodeQuery(ruleSubproofNode),
25
- ruleSubDerivationVerified = verifyRuleSubDerivation(ruleSubDerivationNode, localContext);
26
-
27
- if (ruleSubDerivationVerified) {
28
- ruleSubproofVerified = true;
29
- }
30
- }
31
-
32
- return ruleSubproofVerified;
33
- }
34
-