occam-verify-cli 1.0.448 → 1.0.472
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/constants.js +13 -5
- package/lib/context/ephemeral.js +270 -0
- package/lib/context/file.js +136 -128
- package/lib/context/liminal.js +120 -0
- package/lib/context/literal.js +92 -0
- package/lib/context/nominal.js +15 -1
- package/lib/context/release.js +68 -9
- package/lib/context/scoped.js +322 -0
- package/lib/context/synthetic.js +133 -0
- package/lib/element/assertion/contained.js +66 -66
- package/lib/element/assertion/defined.js +32 -32
- package/lib/element/assertion/property.js +39 -39
- package/lib/element/assertion/satisfies.js +22 -22
- package/lib/element/assumption.js +71 -87
- package/lib/element/combinator/bracketed.js +1 -10
- package/lib/element/conclusion.js +19 -15
- package/lib/element/constructor/bracketed.js +1 -10
- package/lib/element/constructor.js +2 -2
- package/lib/element/declaration/combinator.js +1 -2
- package/lib/element/declaration/metavariable.js +3 -3
- package/lib/element/declaration/variable.js +3 -3
- package/lib/element/deduction.js +26 -20
- package/lib/element/derivation.js +3 -3
- package/lib/element/equality.js +5 -5
- package/lib/element/equivalence.js +112 -107
- package/lib/element/equivalences.js +24 -10
- package/lib/element/error.js +3 -3
- package/lib/element/frame.js +73 -62
- package/lib/element/hypothesis.js +2 -2
- package/lib/element/judgement.js +40 -60
- package/lib/element/metaType.js +4 -4
- package/lib/element/metavariable.js +49 -38
- package/lib/element/parameter.js +13 -5
- package/lib/element/procedureCall.js +16 -16
- package/lib/element/proof.js +14 -13
- package/lib/element/proofAssertion/premise.js +319 -0
- package/lib/element/proofAssertion/step.js +309 -0
- package/lib/element/proofAssertion/supposition.js +333 -0
- package/lib/element/proofAssertion.js +20 -10
- package/lib/element/propertyRelation.js +2 -2
- package/lib/element/reference.js +72 -30
- package/lib/element/rule.js +26 -28
- package/lib/element/section.js +5 -5
- package/lib/element/signature.js +9 -6
- package/lib/element/statement.js +44 -36
- package/lib/element/subproof.js +18 -17
- package/lib/element/substitution/frame.js +86 -49
- package/lib/element/substitution/reference.js +101 -19
- package/lib/element/substitution/statement.js +128 -105
- package/lib/element/substitution/term.js +93 -57
- package/lib/element/substitution.js +20 -69
- package/lib/element/substitutions.js +49 -34
- package/lib/element/term.js +41 -30
- package/lib/element/topLevelAssertion/axiom.js +331 -0
- package/lib/element/{conjecture.js → topLevelAssertion/conjecture.js} +10 -10
- package/lib/element/{lemma.js → topLevelAssertion/lemma.js} +9 -9
- package/lib/element/{theorem.js → topLevelAssertion/theorem.js} +8 -8
- package/lib/element/topLevelAssertion.js +434 -0
- package/lib/element/{metaLemma.js → topLevelMetaAssertion/metaLemma.js} +8 -8
- package/lib/element/{metatheorem.js → topLevelMetaAssertion/metatheorem.js} +8 -8
- package/lib/element/topLevelMetaAssertion.js +293 -0
- package/lib/element/type.js +4 -4
- package/lib/element/variable.js +48 -40
- package/lib/index.js +3 -3
- package/lib/main.js +3 -3
- package/lib/metaTypes.js +18 -15
- package/lib/node/frame.js +2 -2
- package/lib/node/metavariable.js +4 -4
- package/lib/node/parameter.js +28 -7
- package/lib/node/proofAssertion/premise.js +116 -0
- package/lib/node/proofAssertion/step.js +152 -0
- package/lib/node/proofAssertion/supposition.js +116 -0
- package/lib/node/{premise.js → proofAssertion.js} +11 -18
- package/lib/node/statement.js +2 -2
- package/lib/node/substitution/frame.js +9 -31
- package/lib/node/substitution/reference.js +137 -0
- package/lib/node/substitution/statement.js +9 -31
- package/lib/node/substitution/term.js +9 -23
- package/lib/node/{axiom.js → topLevelAssertion/axiom.js} +7 -7
- package/lib/node/{conjecture.js → topLevelAssertion/conjecture.js} +7 -7
- package/lib/node/{lemma.js → topLevelAssertion/lemma.js} +7 -7
- package/lib/node/{theorem.js → topLevelAssertion/theorem.js} +7 -7
- package/lib/node/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +9 -9
- package/lib/node/{metaLemma.js → topLevelMetaAssertion/metaLemma.js} +7 -7
- package/lib/node/{metatheorem.js → topLevelMetaAssertion/metatheorem.js} +7 -7
- package/lib/node/{metaLemmaMetaTheorem.js → topLevelMetaAssertion.js} +9 -9
- package/lib/nonTerminalNodeMap.js +15 -14
- package/lib/preamble.js +10 -10
- package/lib/process/instantiate.js +6 -21
- package/lib/process/unify.js +11 -10
- package/lib/tokenTypes.js +22 -0
- package/lib/types.js +3 -3
- package/lib/utilities/bnf.js +5 -5
- package/lib/utilities/context.js +63 -0
- package/lib/utilities/element.js +235 -408
- package/lib/utilities/instance.js +12 -34
- package/lib/utilities/json.js +3 -2
- package/lib/utilities/string.js +56 -21
- package/lib/utilities/unification.js +38 -32
- package/lib/utilities/validation.js +47 -50
- package/package.json +2 -2
- package/src/constants.js +12 -1
- package/src/context/ephemeral.js +257 -0
- package/src/context/file.js +108 -116
- package/src/context/liminal.js +67 -0
- package/src/context/literal.js +51 -0
- package/src/context/nominal.js +12 -0
- package/src/context/release.js +48 -8
- package/src/context/{local.js → scoped.js} +43 -125
- package/src/context/synthetic.js +60 -0
- package/src/element/assertion/contained.js +49 -47
- package/src/element/assertion/defined.js +29 -27
- package/src/element/assertion/property.js +35 -35
- package/src/element/assertion/satisfies.js +19 -18
- package/src/element/assumption.js +71 -93
- package/src/element/combinator/bracketed.js +0 -7
- package/src/element/conclusion.js +25 -24
- package/src/element/constructor/bracketed.js +0 -7
- package/src/element/constructor.js +1 -1
- package/src/element/declaration/combinator.js +0 -1
- package/src/element/declaration/metavariable.js +2 -2
- package/src/element/declaration/variable.js +5 -5
- package/src/element/deduction.js +33 -31
- package/src/element/derivation.js +2 -2
- package/src/element/equality.js +4 -4
- package/src/element/equivalence.js +115 -135
- package/src/element/equivalences.js +9 -7
- package/src/element/error.js +4 -2
- package/src/element/frame.js +80 -65
- package/src/element/hypothesis.js +1 -1
- package/src/element/judgement.js +42 -62
- package/src/element/metaType.js +3 -4
- package/src/element/metavariable.js +59 -56
- package/src/element/parameter.js +10 -5
- package/src/element/procedureCall.js +20 -18
- package/src/element/proof.js +14 -16
- package/src/element/{premise.js → proofAssertion/premise.js} +57 -53
- package/src/element/{step.js → proofAssertion/step.js} +59 -62
- package/src/element/{supposition.js → proofAssertion/supposition.js} +67 -56
- package/src/element/proofAssertion.js +24 -13
- package/src/element/propertyRelation.js +1 -1
- package/src/element/reference.js +87 -37
- package/src/element/rule.js +31 -37
- package/src/element/section.js +5 -5
- package/src/element/signature.js +8 -8
- package/src/element/statement.js +52 -48
- package/src/element/subproof.js +16 -18
- package/src/element/substitution/frame.js +104 -50
- package/src/element/substitution/reference.js +120 -20
- package/src/element/substitution/statement.js +169 -130
- package/src/element/substitution/term.js +104 -63
- package/src/element/substitution.js +16 -58
- package/src/element/substitutions.js +43 -41
- package/src/element/term.js +47 -41
- package/src/element/{axiom.js → topLevelAssertion/axiom.js} +22 -20
- package/src/element/{conjecture.js → topLevelAssertion/conjecture.js} +5 -6
- package/src/element/{lemma.js → topLevelAssertion/lemma.js} +5 -6
- package/src/element/{theorem.js → topLevelAssertion/theorem.js} +5 -5
- package/src/element/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +37 -33
- package/src/element/{metaLemma.js → topLevelMetaAssertion/metaLemma.js} +5 -6
- package/src/element/{metatheorem.js → topLevelMetaAssertion/metatheorem.js} +5 -6
- package/src/element/{metaLemmaMetatheorem.js → topLevelMetaAssertion.js} +19 -17
- package/src/element/type.js +2 -4
- package/src/element/variable.js +47 -48
- package/src/index.js +2 -1
- package/src/main.js +2 -1
- package/src/metaTypes.js +25 -9
- package/src/node/frame.js +1 -1
- package/src/node/metavariable.js +3 -3
- package/src/node/parameter.js +32 -5
- package/src/node/proofAssertion/premise.js +16 -0
- package/src/node/{step.js → proofAssertion/step.js} +4 -18
- package/src/node/proofAssertion/supposition.js +16 -0
- package/src/node/proofAssertion.js +23 -0
- package/src/node/statement.js +1 -1
- package/src/node/substitution/frame.js +6 -32
- package/src/node/substitution/reference.js +38 -0
- package/src/node/substitution/statement.js +6 -32
- package/src/node/substitution/term.js +6 -22
- package/src/node/topLevelAssertion/axiom.js +13 -0
- package/src/node/topLevelAssertion/conjecture.js +13 -0
- package/src/node/topLevelAssertion/lemma.js +13 -0
- package/src/node/topLevelAssertion/theorem.js +13 -0
- package/src/node/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +1 -1
- package/src/node/topLevelMetaAssertion/metaLemma.js +13 -0
- package/src/node/topLevelMetaAssertion/metatheorem.js +13 -0
- package/src/node/{metaLemmaMetaTheorem.js → topLevelMetaAssertion.js} +1 -1
- package/src/nonTerminalNodeMap.js +15 -12
- package/src/preamble.js +9 -9
- package/src/process/instantiate.js +27 -36
- package/src/process/unify.js +10 -9
- package/src/tokenTypes.js +4 -0
- package/src/types.js +4 -2
- package/src/utilities/bnf.js +3 -2
- package/src/utilities/context.js +46 -0
- package/src/utilities/element.js +302 -509
- package/src/utilities/instance.js +19 -42
- package/src/utilities/json.js +3 -1
- package/src/utilities/string.js +69 -28
- package/src/utilities/unification.js +41 -38
- package/src/utilities/validation.js +66 -75
- package/lib/context/local.js +0 -605
- package/lib/context/temporary.js +0 -752
- package/lib/element/axiom.js +0 -329
- package/lib/element/axiomLemmaTheoremConjecture.js +0 -427
- package/lib/element/metaLemmaMetatheorem.js +0 -289
- package/lib/element/premise.js +0 -307
- package/lib/element/step.js +0 -311
- package/lib/element/supposition.js +0 -320
- package/lib/log.js +0 -150
- package/lib/node/step.js +0 -166
- package/lib/node/supposition.js +0 -130
- package/src/context/temporary.js +0 -476
- package/src/log.js +0 -118
- package/src/node/axiom.js +0 -13
- package/src/node/conjecture.js +0 -13
- package/src/node/lemma.js +0 -13
- package/src/node/metaLemma.js +0 -13
- package/src/node/metatheorem.js +0 -13
- package/src/node/premise.js +0 -30
- package/src/node/supposition.js +0 -30
- package/src/node/theorem.js +0 -13
package/src/context/temporary.js
DELETED
|
@@ -1,476 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { arrayUtilities } from "necessary";
|
|
4
|
-
|
|
5
|
-
const { extract, compress } = arrayUtilities;
|
|
6
|
-
|
|
7
|
-
export default class TemporaryContext {
|
|
8
|
-
constructor(context, terms, frames, statements, assertions, references, substitutions) {
|
|
9
|
-
this.context = context;
|
|
10
|
-
this.terms = terms;
|
|
11
|
-
this.frames = frames;
|
|
12
|
-
this.statements = statements;
|
|
13
|
-
this.assertions = assertions;
|
|
14
|
-
this.references = references;
|
|
15
|
-
this.substitutions = substitutions;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
getContext() {
|
|
19
|
-
return this.context;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
getTerms() {
|
|
23
|
-
return this.terms;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
getFrames() {
|
|
27
|
-
return this.frames;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
getStatements() {
|
|
31
|
-
return this.statements;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
getAssertions() {
|
|
35
|
-
return this.assertions;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
getReferences() {
|
|
39
|
-
return this.references;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
getSubstitutions() {
|
|
43
|
-
return this.substitutions;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
addTerm(term) {
|
|
47
|
-
const termA = term, ///
|
|
48
|
-
context = this, ///
|
|
49
|
-
termString = term.getString();
|
|
50
|
-
|
|
51
|
-
extract(this.terms, (term) => {
|
|
52
|
-
const termB = term, ///
|
|
53
|
-
termAEqualToTermB = termA.isEqualTo(termB);
|
|
54
|
-
|
|
55
|
-
if (termAEqualToTermB) {
|
|
56
|
-
return true;
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
context.trace(`ADded the '${termString}' term to the context.`);
|
|
61
|
-
|
|
62
|
-
this.terms.push(term);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
addFrame(frame) {
|
|
66
|
-
const frameA = frame, ///
|
|
67
|
-
context = this, ///
|
|
68
|
-
frameString = frame.getString();
|
|
69
|
-
|
|
70
|
-
extract(this.frames, (frame) => {
|
|
71
|
-
const frameB = frame, ///
|
|
72
|
-
frameAEqualToFrameB = frameA.isEqualTo(frameB);
|
|
73
|
-
|
|
74
|
-
if (frameAEqualToFrameB) {
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
context.trace(`Added the '${frameString}' frame to the context.`);
|
|
80
|
-
|
|
81
|
-
this.frames.push(frame);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
addStatement(statement) {
|
|
85
|
-
const context = this, ///
|
|
86
|
-
statementA = statement, ///
|
|
87
|
-
statementString = statement.getString();
|
|
88
|
-
|
|
89
|
-
extract(this.statements, (statement) => {
|
|
90
|
-
const statementB = statement, ///
|
|
91
|
-
statementAEqualToFrameB = statementA.isEqualTo(statementB);
|
|
92
|
-
|
|
93
|
-
if (statementAEqualToFrameB) {
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
context.trace(`Added the '${statementString}' statement to the context.`);
|
|
99
|
-
|
|
100
|
-
this.statements.push(statement);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
addAssertion(assertion) {
|
|
104
|
-
const context = this, ///
|
|
105
|
-
assertionA = assertion, ///
|
|
106
|
-
assertionString = assertion.getString();
|
|
107
|
-
|
|
108
|
-
extract(this.assertions, (assertion) => {
|
|
109
|
-
const assertionB = assertion, ///
|
|
110
|
-
assertionAEqualToAssertionB = assertionA.isEqualTo(assertionB);
|
|
111
|
-
|
|
112
|
-
if (assertionAEqualToAssertionB) {
|
|
113
|
-
return true;
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
context.trace(`Added the '${assertionString}' assertion to the context.`);
|
|
118
|
-
|
|
119
|
-
this.assertions.push(assertion);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
addReference(reference) {
|
|
123
|
-
const context = this, ///
|
|
124
|
-
referenceA = reference, ///
|
|
125
|
-
referenceString = reference.getString();
|
|
126
|
-
|
|
127
|
-
extract(this.references, (reference) => {
|
|
128
|
-
const referenceB = reference, ///
|
|
129
|
-
referenceAEqualToReferenceB = referenceA.isEqualTo(referenceB);
|
|
130
|
-
|
|
131
|
-
if (referenceAEqualToReferenceB) {
|
|
132
|
-
return true;
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
context.trace(`Added the '${referenceString}' reference to the context.`);
|
|
137
|
-
|
|
138
|
-
this.references.push(reference);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
addSubstitution(substitution) {
|
|
142
|
-
const context = this, ///
|
|
143
|
-
substitutionA = substitution, ///
|
|
144
|
-
substitutionString = substitution.getString();
|
|
145
|
-
|
|
146
|
-
extract(this.substitutions, (substitution) => {
|
|
147
|
-
const substitutionB = substitution, ///
|
|
148
|
-
substituionAEqualToSubstitutionB = substitutionA.isEqualTo(substitutionB);
|
|
149
|
-
|
|
150
|
-
if (substituionAEqualToSubstitutionB) {
|
|
151
|
-
return true;
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
context.trace(`Added the '${substitutionString}' substitution to the context.`);
|
|
156
|
-
|
|
157
|
-
this.substitutions.push(substitution);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
findTermByTermNode(termNode) {
|
|
161
|
-
const term = this.terms.find((term) => {
|
|
162
|
-
const termNodeMatches = term.matchNode(termNode);
|
|
163
|
-
|
|
164
|
-
if (termNodeMatches) {
|
|
165
|
-
return true;
|
|
166
|
-
}
|
|
167
|
-
}) || null;
|
|
168
|
-
|
|
169
|
-
return term;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
findFrameByFrameNode(frameNode) {
|
|
173
|
-
const frame = this.frames.find((frame) => {
|
|
174
|
-
const frameNodeMatches = frame.matchNode(frameNode);
|
|
175
|
-
|
|
176
|
-
if (frameNodeMatches) {
|
|
177
|
-
return true;
|
|
178
|
-
}
|
|
179
|
-
}) || null;
|
|
180
|
-
|
|
181
|
-
return frame;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
findStatementByStatementNode(statementNode) {
|
|
185
|
-
const statement = this.statements.find((statement) => {
|
|
186
|
-
const statementNodeMatches = statement.matchNode(statementNode);
|
|
187
|
-
|
|
188
|
-
if (statementNodeMatches) {
|
|
189
|
-
return true;
|
|
190
|
-
}
|
|
191
|
-
}) || null;
|
|
192
|
-
|
|
193
|
-
return statement;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
findAssertionByAssertionNode(assertionNode) {
|
|
197
|
-
const assertion = this.assertions.find((assertion) => {
|
|
198
|
-
const assertionNodeMatches = assertion.matchNode(assertionNode);
|
|
199
|
-
|
|
200
|
-
if (assertionNodeMatches) {
|
|
201
|
-
return true;
|
|
202
|
-
}
|
|
203
|
-
}) || null;
|
|
204
|
-
|
|
205
|
-
return assertion;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
findReferenceByMetavariableNode(metavariableNode) {
|
|
209
|
-
const reference = this.references.find((reference) => {
|
|
210
|
-
const referenceMatcheMetavariableNode = reference.matchMetavariableNode(metavariableNode);
|
|
211
|
-
|
|
212
|
-
if (referenceMatcheMetavariableNode) {
|
|
213
|
-
return true;
|
|
214
|
-
}
|
|
215
|
-
}) || null;
|
|
216
|
-
|
|
217
|
-
return reference;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
findSubstitutionBySubstitutionNode(substitutionNode) {
|
|
221
|
-
const substitution = this.substitutions.find((substitution) => {
|
|
222
|
-
const substitutionNodeMatches = substitution.matchNode(substitutionNode);
|
|
223
|
-
|
|
224
|
-
if (substitutionNodeMatches) {
|
|
225
|
-
return true;
|
|
226
|
-
}
|
|
227
|
-
}) || null;
|
|
228
|
-
|
|
229
|
-
return substitution;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
getVariables(nested = true) { return this.context.getVariables(nested); }
|
|
233
|
-
|
|
234
|
-
getJudgements() { return this.context.getJudgements(); }
|
|
235
|
-
|
|
236
|
-
getEquivalences() { return this.context.getEquivalences(); }
|
|
237
|
-
|
|
238
|
-
getProofAssertions() { return this.context.getProofAssertions(); }
|
|
239
|
-
|
|
240
|
-
getLastProofAssertion() { return this.context.getLastProofAssertion(); }
|
|
241
|
-
|
|
242
|
-
getSubproofOrProofAssertions() { return this.context.getSubproofOrProofAssertions(); }
|
|
243
|
-
|
|
244
|
-
getFilePath() { return this.context.getFilePath(); }
|
|
245
|
-
|
|
246
|
-
getLexer() { return this.context.getLexer(); }
|
|
247
|
-
|
|
248
|
-
getParser() { return this.context.getParser(); }
|
|
249
|
-
|
|
250
|
-
getAxioms() { return this.context.getAxioms(); }
|
|
251
|
-
|
|
252
|
-
getLemmas() { return this.context.getLemmas(); }
|
|
253
|
-
|
|
254
|
-
getTheorems() { return this.context.getTheorems(); }
|
|
255
|
-
|
|
256
|
-
getConjectures() { return this.context.getConjectures(); }
|
|
257
|
-
|
|
258
|
-
getCombinators() { return this.context.getCombinators(); }
|
|
259
|
-
|
|
260
|
-
getConstructors() { return this.context.getConstructors(); }
|
|
261
|
-
|
|
262
|
-
getTypePrefix() { return this.context.getTypePrefix(); }
|
|
263
|
-
|
|
264
|
-
addAxiom(axiom) { this.context.addAxiom(axiom); }
|
|
265
|
-
|
|
266
|
-
addLemma(lemma) { this.context.addLemma(lemma); }
|
|
267
|
-
|
|
268
|
-
addTheorem(theorem) { this.context.addTheorem(theorem); }
|
|
269
|
-
|
|
270
|
-
addEquality(equality) { return this.context.addEquality(equality); }
|
|
271
|
-
|
|
272
|
-
addVariable(variable, nested = true) { return this.context.addVariable(variable, nested); }
|
|
273
|
-
|
|
274
|
-
addJudgement(judgement) { return this.context.addJudgement(judgement); }
|
|
275
|
-
|
|
276
|
-
addSubproofOrProofAssertion(subproofOrProofAssertion) { this.context.addSubproofOrProofAssertion(subproofOrProofAssertion); }
|
|
277
|
-
|
|
278
|
-
findProcedureByName(name) { return this.context.findProcedureByName(name); }
|
|
279
|
-
|
|
280
|
-
findLabelByReference(reference, context) { return this.context.findLabelByReference(reference, context); }
|
|
281
|
-
|
|
282
|
-
findRuleByReference(reference) { return this.context.findRuleByReference(reference); }
|
|
283
|
-
|
|
284
|
-
findAxiomByReference(reference) { return this.context.findAxiomByReference(reference); }
|
|
285
|
-
|
|
286
|
-
findLemmaByReference(reference) { return this.context.findLemmaByReference(reference); }
|
|
287
|
-
|
|
288
|
-
findTheoremByReference(reference) { return this.context.findTheoremByReference(reference); }
|
|
289
|
-
|
|
290
|
-
findConjectureByReference(reference) { return this.context.findConjectureByReference(reference); }
|
|
291
|
-
|
|
292
|
-
findMetaLemmasByReference(reference) { return this.context.findMetaLemmasByReference(reference); }
|
|
293
|
-
|
|
294
|
-
findMetatheoremsByReference(reference) { return this.context.findMetatheoremsByReference(reference); }
|
|
295
|
-
|
|
296
|
-
findMetaLemmaMetatheoremByReference(reference) { return this.context.findMetaLemmaMetatheoremByReference(reference); }
|
|
297
|
-
|
|
298
|
-
findMetaLemmaMetatheoremsByReference(reference) { return this.context.findMetaLemmaMetatheoremsByReference(reference); }
|
|
299
|
-
|
|
300
|
-
findVariableByVariableIdentifier(variableIdentifier, nested = true) { return this.context.findVariableByVariableIdentifier(variableIdentifier, nested); }
|
|
301
|
-
|
|
302
|
-
findJudgementByMetavariable(metavariable) { return this.context.findJudgementByMetavariable(metavariable); }
|
|
303
|
-
|
|
304
|
-
findEquivalenceByTerm(term) { return this.context.findEquivalenceByTerm(term); }
|
|
305
|
-
|
|
306
|
-
findMetavariable(metavariable) { return this.context.findMetavariable(metavariable); }
|
|
307
|
-
|
|
308
|
-
findLabelByMetavariable(metavariable) { return this.context.findLabelByMetavariable(metavariable); }
|
|
309
|
-
|
|
310
|
-
findTypeByNominalTypeName(nominalTypeName) { return this.context.findTypeByNominalTypeName(nominalTypeName); }
|
|
311
|
-
|
|
312
|
-
findMetaTypeByMetaTypeName(metaTypeName) { return this.context.findMetaTypeByMetaTypeName(metaTypeName); }
|
|
313
|
-
|
|
314
|
-
findMetavariableByMetavariableName(metavariableName) { return this.context.findMetavariableByMetavariableName(metavariableName); }
|
|
315
|
-
|
|
316
|
-
isProcedurePresentByName(name) { return this.context.isProcedurePresentByName(name); }
|
|
317
|
-
|
|
318
|
-
isLabelPresentByReference(reference) { return this.context.isLabelPresentByReference(reference); }
|
|
319
|
-
|
|
320
|
-
isMetavariablePresentByReference(reference) { return this.context.isMetavariablePresentByReference(reference); }
|
|
321
|
-
|
|
322
|
-
isMetaLemmaMetatheoremPresentByReference(reference) { return this.context.isMetaLemmaMetatheoremPresentByReference(reference); }
|
|
323
|
-
|
|
324
|
-
findAxiomLemmaTheoremOrConjectureByReference(reference) { return this.context.findAxiomLemmaTheoremOrConjectureByReference(reference); }
|
|
325
|
-
|
|
326
|
-
isMetavariablePresent(metavariable) { return this.context.isMetavariablePresent(metavariable); }
|
|
327
|
-
|
|
328
|
-
isTypePresentByTypeName(typeName, includeRelease = true, includeDependencies = true) { return this.context.isTypePresentByTypeName(typeName, includeRelease, includeDependencies); }
|
|
329
|
-
|
|
330
|
-
isTypePresentByNominalTypeName(nominalTypeName) { return this.context.isTypePresentByNominalTypeName(nominalTypeName); }
|
|
331
|
-
|
|
332
|
-
isTypePresentByPrefixedTypeName(prefixedTypeName) { return this.context.isTypePresentByPrefixedTypeName(prefixedTypeName); }
|
|
333
|
-
|
|
334
|
-
isTypePrefixPresentByTypePrefixName(typePrefixName) { return this.context.isTypePrefixPresentByTypePrefixName(typePrefixName); }
|
|
335
|
-
|
|
336
|
-
isVariablePresentByVariableIdentifier(variableIdentifier, nested = true) { return this.context.findVariableByVariableIdentifier(variableIdentifier, nested); }
|
|
337
|
-
|
|
338
|
-
isLabelPresentByMetavariableName(metavariableName) { return this.context.isLabelPresentByMetavariableName(metavariableName); }
|
|
339
|
-
|
|
340
|
-
isLabelPresentByMetavariable(metavariable) { return this.context.isLabelPresentByMetavariable(metavariable); }
|
|
341
|
-
|
|
342
|
-
isMetavariablePresentByMetavariableName(metavariableNode) { return this.context.isMetavariablePresentByMetavariableName(metavariableNode); }
|
|
343
|
-
|
|
344
|
-
isJudgementPresentByMetavariable(metavariable) { return this.context.isJudgementPresentByMetavariable(metavariable); }
|
|
345
|
-
|
|
346
|
-
isTermGrounded(term) { return this.context.isTermGrounded(term); }
|
|
347
|
-
|
|
348
|
-
isVariableDefined(variable) { return this.context.isVariableDefined(variable); }
|
|
349
|
-
|
|
350
|
-
isMetavariableDefined(metavariable) { return this.context.isMetavariableDefined(metavariable); }
|
|
351
|
-
|
|
352
|
-
compareTermAndPropertyRelation(term, propertyRelation) { return this.context.compareTermAndPropertyRelation(term, propertyRelation); }
|
|
353
|
-
|
|
354
|
-
nodeAsString(node) { return this.context.nodeAsString(node); }
|
|
355
|
-
|
|
356
|
-
nodesAsString(node) { return this.context.nodesAsString(node); }
|
|
357
|
-
|
|
358
|
-
trace(message, node = null) { this.context.trace(message, node); }
|
|
359
|
-
|
|
360
|
-
debug(message, node = null) { this.context.debug(message, node); }
|
|
361
|
-
|
|
362
|
-
info(message, node = null) { this.context.info(message, node); }
|
|
363
|
-
|
|
364
|
-
warning(message, node = null) { this.context.warning(message, node); }
|
|
365
|
-
|
|
366
|
-
error(message, node = null) { this.context.error(message, node); }
|
|
367
|
-
|
|
368
|
-
merge(context) {
|
|
369
|
-
const terms = context.getTerms(),
|
|
370
|
-
frames = context.getFrames(),
|
|
371
|
-
statements = context.getStatements(),
|
|
372
|
-
assertions = context.getAssertions(),
|
|
373
|
-
references = context.getReferences(),
|
|
374
|
-
substitutions = context.getSubstitutions();
|
|
375
|
-
|
|
376
|
-
this.terms = [
|
|
377
|
-
...this.terms,
|
|
378
|
-
...terms
|
|
379
|
-
];
|
|
380
|
-
|
|
381
|
-
this.frames = [
|
|
382
|
-
...this.frames,
|
|
383
|
-
...frames
|
|
384
|
-
];
|
|
385
|
-
|
|
386
|
-
this.statements = [
|
|
387
|
-
...this.statements,
|
|
388
|
-
...statements
|
|
389
|
-
];
|
|
390
|
-
|
|
391
|
-
this.assertions = [
|
|
392
|
-
...this.assertions,
|
|
393
|
-
...assertions
|
|
394
|
-
];
|
|
395
|
-
|
|
396
|
-
this.references = [
|
|
397
|
-
...this.references,
|
|
398
|
-
...references
|
|
399
|
-
];
|
|
400
|
-
|
|
401
|
-
this.substitutions = [
|
|
402
|
-
...this.substitutions,
|
|
403
|
-
...substitutions
|
|
404
|
-
];
|
|
405
|
-
|
|
406
|
-
compress(this.terms, (termA, termB) => {
|
|
407
|
-
const termAEqualToTermB = termA.isEqualTo(termB);
|
|
408
|
-
|
|
409
|
-
if (!termAEqualToTermB) {
|
|
410
|
-
return true;
|
|
411
|
-
}
|
|
412
|
-
});
|
|
413
|
-
|
|
414
|
-
compress(this.frames, (frameA, frameB) => {
|
|
415
|
-
const frameAEqualToFrameB = frameA.isEqualTo(frameB);
|
|
416
|
-
|
|
417
|
-
if (!frameAEqualToFrameB) {
|
|
418
|
-
return true;
|
|
419
|
-
}
|
|
420
|
-
});
|
|
421
|
-
|
|
422
|
-
compress(this.statements, (statementA, statementB) => {
|
|
423
|
-
const statementAEqualToStatementB = statementA.isEqualTo(statementB);
|
|
424
|
-
|
|
425
|
-
if (!statementAEqualToStatementB) {
|
|
426
|
-
return true;
|
|
427
|
-
}
|
|
428
|
-
});
|
|
429
|
-
|
|
430
|
-
compress(this.assertions, (assertionA, assertionB) => {
|
|
431
|
-
const assertionAEqualToAssertionB = assertionA.isEqualTo(assertionB);
|
|
432
|
-
|
|
433
|
-
if (!assertionAEqualToAssertionB) {
|
|
434
|
-
return true;
|
|
435
|
-
}
|
|
436
|
-
});
|
|
437
|
-
|
|
438
|
-
compress(this.references, (referenceA, referenceB) => {
|
|
439
|
-
const referenceAEqualToReferenceB = referenceA.isEqualTo(referenceB);
|
|
440
|
-
|
|
441
|
-
if (!referenceAEqualToReferenceB) {
|
|
442
|
-
return true;
|
|
443
|
-
}
|
|
444
|
-
});
|
|
445
|
-
|
|
446
|
-
compress(this.substitutions, (substitutionA, substitutionB) => {
|
|
447
|
-
const substitutionAEqualToSubstitutionB = substitutionA.isEqualTo(substitutionB);
|
|
448
|
-
|
|
449
|
-
if (!substitutionAEqualToSubstitutionB) {
|
|
450
|
-
return true;
|
|
451
|
-
}
|
|
452
|
-
});
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
static fromNothing(context) {
|
|
456
|
-
const terms = [],
|
|
457
|
-
frames = [],
|
|
458
|
-
statements = [],
|
|
459
|
-
assertions = [],
|
|
460
|
-
references = [],
|
|
461
|
-
substitutions = [],
|
|
462
|
-
temporaryContext = new TemporaryContext(context, terms, frames, statements, assertions, references, substitutions);
|
|
463
|
-
|
|
464
|
-
return temporaryContext;
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
static fromTermsAndFrames(terms, frames, context) {
|
|
468
|
-
const statements = [],
|
|
469
|
-
assertions = [],
|
|
470
|
-
references = [],
|
|
471
|
-
substitutions = [],
|
|
472
|
-
temporaryContext = new TemporaryContext(context, terms, frames, statements, assertions, references, substitutions);
|
|
473
|
-
|
|
474
|
-
return temporaryContext;
|
|
475
|
-
}
|
|
476
|
-
}
|
package/src/log.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { levels } from "necessary";
|
|
4
|
-
import {EMPTY_STRING} from "./constants";
|
|
5
|
-
|
|
6
|
-
const { TRACE_LEVEL, DEBUG_LEVEL, INFO_LEVEL, WARNING_LEVEL, ERROR_LEVEL } = levels;
|
|
7
|
-
|
|
8
|
-
export default class Log {
|
|
9
|
-
constructor(messages, logLevel, follow) {
|
|
10
|
-
this.messages = messages;
|
|
11
|
-
this.logLevel = logLevel;
|
|
12
|
-
this.follow = follow;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
getMessages() {
|
|
16
|
-
return this.messages;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
getLogLevel() {
|
|
20
|
-
return this.logLevel;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
getFollow() {
|
|
24
|
-
return this.follow;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
trace(message, filePath, lineIndex = null) {
|
|
28
|
-
const level = TRACE_LEVEL;
|
|
29
|
-
|
|
30
|
-
this.write(level, message, filePath, lineIndex);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
debug(message, filePath, lineIndex = null) {
|
|
34
|
-
const level = DEBUG_LEVEL;
|
|
35
|
-
|
|
36
|
-
this.write(level, message, filePath, lineIndex);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
info(message, filePath, lineIndex = null) {
|
|
40
|
-
const level = INFO_LEVEL;
|
|
41
|
-
|
|
42
|
-
this.write(level, message, filePath, lineIndex);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
warning(message, filePath, lineIndex = null) {
|
|
46
|
-
const level = WARNING_LEVEL;
|
|
47
|
-
|
|
48
|
-
this.write(level, message, filePath, lineIndex);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
error(message, filePath, lineIndex = null) {
|
|
52
|
-
const level = ERROR_LEVEL;
|
|
53
|
-
|
|
54
|
-
this.write(level, message, filePath, lineIndex);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
write(level, message, filePath, lineIndex) {
|
|
58
|
-
const levels = [
|
|
59
|
-
TRACE_LEVEL,
|
|
60
|
-
DEBUG_LEVEL,
|
|
61
|
-
INFO_LEVEL,
|
|
62
|
-
WARNING_LEVEL,
|
|
63
|
-
ERROR_LEVEL
|
|
64
|
-
],
|
|
65
|
-
levelIndex = levels.indexOf(level),
|
|
66
|
-
logLevelIndex = levels.indexOf(this.logLevel);
|
|
67
|
-
|
|
68
|
-
if (levelIndex < logLevelIndex) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
message = formatMessage(level, message, filePath, lineIndex); ///
|
|
73
|
-
|
|
74
|
-
this.follow ?
|
|
75
|
-
console.log(message) :
|
|
76
|
-
this.messages.push(message);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
static fromNothing() {
|
|
80
|
-
const messages = [],
|
|
81
|
-
logLevel = TRACE_LEVEL,
|
|
82
|
-
follow = false,
|
|
83
|
-
log = new Log(messages, logLevel, follow);
|
|
84
|
-
|
|
85
|
-
return log;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
static fromFollowAndLogLevel(follow, logLevel) {
|
|
89
|
-
const messages = follow ?
|
|
90
|
-
null :
|
|
91
|
-
[],
|
|
92
|
-
log = new Log(messages, logLevel, follow);
|
|
93
|
-
|
|
94
|
-
return log;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
function formatMessage(level, message, filePath = null, lineIndex = null) {
|
|
99
|
-
let formattedMessage = EMPTY_STRING;
|
|
100
|
-
|
|
101
|
-
const upperCaseLevel = level.toUpperCase();
|
|
102
|
-
|
|
103
|
-
formattedMessage += `${upperCaseLevel}:`;
|
|
104
|
-
|
|
105
|
-
if (filePath !== null) {
|
|
106
|
-
formattedMessage += ` ${filePath}`;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
if (lineIndex !== null) {
|
|
110
|
-
formattedMessage += ` [${lineIndex}]`;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
formattedMessage += ` - ${message}`;
|
|
114
|
-
|
|
115
|
-
message = formattedMessage; ///
|
|
116
|
-
|
|
117
|
-
return message;
|
|
118
|
-
}
|
package/src/node/axiom.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import AxiomLemmaTheoremConjectureNode from "../node/axiomLemmaTheoremConjecture";
|
|
4
|
-
|
|
5
|
-
import { AXIOM_BODY_RULE_NAME, AXIOM_HEADER_RULE_NAME } from "../ruleNames";
|
|
6
|
-
|
|
7
|
-
export default class AxiomNode extends AxiomLemmaTheoremConjectureNode {
|
|
8
|
-
static bodyRuleName = AXIOM_BODY_RULE_NAME;
|
|
9
|
-
|
|
10
|
-
static headerRuleName = AXIOM_HEADER_RULE_NAME;
|
|
11
|
-
|
|
12
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AxiomLemmaTheoremConjectureNode.fromRuleNameChildNodesOpacityAndPrecedence(AxiomNode, ruleName, childNodes, opacity, precedence); }
|
|
13
|
-
}
|
package/src/node/conjecture.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import AxiomLemmaTheoremConjectureNode from "../node/axiomLemmaTheoremConjecture";
|
|
4
|
-
|
|
5
|
-
import { CONJECTURE_BODY_RULE_NAME, CONJECTURE_HEADER_RULE_NAME } from "../ruleNames";
|
|
6
|
-
|
|
7
|
-
export default class ConjectureNode extends AxiomLemmaTheoremConjectureNode {
|
|
8
|
-
static bodyRuleName = CONJECTURE_BODY_RULE_NAME;
|
|
9
|
-
|
|
10
|
-
static headerRuleName = CONJECTURE_HEADER_RULE_NAME;
|
|
11
|
-
|
|
12
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AxiomLemmaTheoremConjectureNode.fromRuleNameChildNodesOpacityAndPrecedence(ConjectureNode, ruleName, childNodes, opacity, precedence); }
|
|
13
|
-
}
|
package/src/node/lemma.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import AxiomLemmaTheoremConjectureNode from "../node/axiomLemmaTheoremConjecture";
|
|
4
|
-
|
|
5
|
-
import { LEMMA_BODY_RULE_NAME, LEMMA_HEADER_RULE_NAME } from "../ruleNames";
|
|
6
|
-
|
|
7
|
-
export default class LemmaNode extends AxiomLemmaTheoremConjectureNode {
|
|
8
|
-
static bodyRuleName = LEMMA_BODY_RULE_NAME;
|
|
9
|
-
|
|
10
|
-
static headerRuleName = LEMMA_HEADER_RULE_NAME;
|
|
11
|
-
|
|
12
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AxiomLemmaTheoremConjectureNode.fromRuleNameChildNodesOpacityAndPrecedence(LemmaNode, ruleName, childNodes, opacity, precedence); }
|
|
13
|
-
}
|
package/src/node/metaLemma.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import MetaLemmaMetaTheoremNode from "../node/metaLemmaMetaTheorem";
|
|
4
|
-
|
|
5
|
-
import { META_LEMMA_BODY_RULE_NAME, META_LEMMA_HEADER_RULE_NAME } from "../ruleNames";
|
|
6
|
-
|
|
7
|
-
export default class MetaLemmaNode extends MetaLemmaMetaTheoremNode {
|
|
8
|
-
static bodyRuleName = META_LEMMA_BODY_RULE_NAME;
|
|
9
|
-
|
|
10
|
-
static headerRuleName = META_LEMMA_HEADER_RULE_NAME;
|
|
11
|
-
|
|
12
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return MetaLemmaMetaTheoremNode.fromRuleNameChildNodesOpacityAndPrecedence(MetaLemmaNode, ruleName, childNodes, opacity, precedence); }
|
|
13
|
-
}
|
package/src/node/metatheorem.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import MetaLemmaMetaTheoremNode from "../node/metaLemmaMetaTheorem";
|
|
4
|
-
|
|
5
|
-
import { METATHEOREM_BODY_RULE_NAME, METATHEOREM_HEADER_RULE_NAME } from "../ruleNames";
|
|
6
|
-
|
|
7
|
-
export default class MetatheoremNode extends MetaLemmaMetaTheoremNode {
|
|
8
|
-
static bodyRuleName = METATHEOREM_BODY_RULE_NAME;
|
|
9
|
-
|
|
10
|
-
static headerRuleName = METATHEOREM_HEADER_RULE_NAME;
|
|
11
|
-
|
|
12
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return MetaLemmaMetaTheoremNode.fromRuleNameChildNodesOpacityAndPrecedence(MetatheoremNode, ruleName, childNodes, opacity, precedence); }
|
|
13
|
-
}
|
package/src/node/premise.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import NonTerminalNode from "../nonTerminalNode";
|
|
4
|
-
|
|
5
|
-
import { NONSENSE_RULE_NAME, STATEMENT_RULE_NAME, PROCEDURE_CALL_RULE_NAME } from "../ruleNames";
|
|
6
|
-
|
|
7
|
-
export default class PremiseNode extends NonTerminalNode {
|
|
8
|
-
getNonsenseNode() {
|
|
9
|
-
const ruleName = NONSENSE_RULE_NAME,
|
|
10
|
-
nonsenseNode = this.getNodeByRuleName(ruleName);
|
|
11
|
-
|
|
12
|
-
return nonsenseNode;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
getStatementNode() {
|
|
16
|
-
const ruleName = STATEMENT_RULE_NAME,
|
|
17
|
-
statementNode = this.getNodeByRuleName(ruleName);
|
|
18
|
-
|
|
19
|
-
return statementNode;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
getProcedureCallNode() {
|
|
23
|
-
const ruleName = PROCEDURE_CALL_RULE_NAME,
|
|
24
|
-
procedureCallNode = this.getNodeByRuleName(ruleName);
|
|
25
|
-
|
|
26
|
-
return procedureCallNode;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(PremiseNode, ruleName, childNodes, opacity, precedence); }
|
|
30
|
-
}
|