occam-verify-cli 1.0.792 → 1.0.796
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/context/ephemeral.js +2 -7
- package/lib/context/file/nominal.js +5 -1
- package/lib/context/liminal.js +39 -16
- package/lib/context/proof.js +35 -40
- package/lib/context.js +11 -3
- package/lib/element/assumption/metaLevel.js +181 -0
- package/lib/element/assumption.js +20 -38
- package/lib/element/judgement.js +11 -13
- package/lib/element/metavariable.js +28 -25
- package/lib/element/substitution/reference.js +20 -1
- package/lib/element/substitution/statement.js +22 -2
- package/lib/element/topLevelMetaAssertion.js +9 -9
- package/lib/node/assumption/metaLevel.js +27 -0
- package/lib/node/assumption.js +5 -5
- package/lib/nonTerminalNodeMap.js +3 -1
- package/lib/preamble.js +2 -1
- package/lib/process/instantiate.js +8 -2
- package/lib/process/unify.js +15 -28
- package/lib/ruleNames.js +5 -1
- package/lib/utilities/context.js +5 -5
- package/lib/utilities/element.js +33 -18
- package/lib/utilities/json.js +23 -1
- package/lib/utilities/string.js +25 -14
- package/lib/utilities/unification.js +3 -3
- package/lib/utilities/validation.js +9 -14
- package/package.json +4 -4
- package/src/context/ephemeral.js +1 -9
- package/src/context/file/nominal.js +6 -0
- package/src/context/liminal.js +54 -16
- package/src/context/proof.js +41 -47
- package/src/context.js +15 -2
- package/src/element/assumption/metaLevel.js +263 -0
- package/src/element/assumption.js +30 -56
- package/src/element/judgement.js +13 -21
- package/src/element/metavariable.js +29 -28
- package/src/element/substitution/reference.js +33 -0
- package/src/element/substitution/statement.js +33 -1
- package/src/element/topLevelMetaAssertion.js +15 -15
- package/src/node/assumption/metaLevel.js +23 -0
- package/src/node/assumption.js +8 -8
- package/src/nonTerminalNodeMap.js +3 -0
- package/src/preamble.js +1 -0
- package/src/process/instantiate.js +4 -0
- package/src/process/unify.js +18 -39
- package/src/ruleNames.js +1 -0
- package/src/utilities/context.js +4 -4
- package/src/utilities/element.js +44 -25
- package/src/utilities/json.js +27 -1
- package/src/utilities/string.js +34 -19
- package/src/utilities/unification.js +3 -3
- package/src/utilities/validation.js +10 -16
package/src/utilities/string.js
CHANGED
|
@@ -117,6 +117,20 @@ export function suppositionsStringFromSuppositions(suppositions) {
|
|
|
117
117
|
return suppositionsString;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
+
export function metalevelAssumptionsStringFromMetaLevelAssumptions(metaLevelAssumptions) {
|
|
121
|
+
const metaLevelAssumptionsString = metaLevelAssumptions.reduce((metaLevelAssumptionsString, metaLevelAssumption) => {
|
|
122
|
+
const metaLevelAssumptionString = metaLevelAssumption.getString();
|
|
123
|
+
|
|
124
|
+
metaLevelAssumptionsString = (metaLevelAssumptionsString === null) ?
|
|
125
|
+
metaLevelAssumptionString: ///
|
|
126
|
+
`${metaLevelAssumptionsString}, ${metaLevelAssumptionString}`;
|
|
127
|
+
|
|
128
|
+
return metaLevelAssumptionsString;
|
|
129
|
+
}, null);
|
|
130
|
+
|
|
131
|
+
return metaLevelAssumptionsString;
|
|
132
|
+
}
|
|
133
|
+
|
|
120
134
|
export function signatureStringFromTerms(terms) {
|
|
121
135
|
const termsString = termsStringFromTerms(terms),
|
|
122
136
|
signatureString = `[${termsString}]`;
|
|
@@ -137,14 +151,6 @@ export function typeStringFromNominalTypeName(nominalTypeName) {
|
|
|
137
151
|
return typeString;
|
|
138
152
|
}
|
|
139
153
|
|
|
140
|
-
export function assumptionStringFromStatementAndReference(statement, reference) {
|
|
141
|
-
const statementString = statement.getString(),
|
|
142
|
-
referneceString = reference.getString(),
|
|
143
|
-
assumptionString = `${referneceString} :: ${statementString}`;
|
|
144
|
-
|
|
145
|
-
return assumptionString;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
154
|
export function termSubstitutionStringFromTermAndVariable(term, variable) {
|
|
149
155
|
const termString = term.getString(),
|
|
150
156
|
variableString = variable.getString(),
|
|
@@ -192,6 +198,14 @@ export function frameSubstitutionStringFromFrameAndMetavariable(frame, metavaria
|
|
|
192
198
|
return string;
|
|
193
199
|
}
|
|
194
200
|
|
|
201
|
+
export function metaLevelAssumptionStringFromStatementAndReference(statement, reference) {
|
|
202
|
+
const statementString = statement.getString(),
|
|
203
|
+
referneceString = reference.getString(),
|
|
204
|
+
metaLevelAssumptionString = `${referneceString} :: ${statementString}`;
|
|
205
|
+
|
|
206
|
+
return metaLevelAssumptionString;
|
|
207
|
+
}
|
|
208
|
+
|
|
195
209
|
export function procedureCallStringFromProcedureReferenceAndParameters(procedureReference, parameters) {
|
|
196
210
|
const procedureReferenceName = procedureReference.getName(),
|
|
197
211
|
parametersString = parametersStringFromParameters(parameters),
|
|
@@ -236,17 +250,6 @@ export function topLevelAssertionStringFromLabelsSuppositionsAndDeduction(labels
|
|
|
236
250
|
return topLevelAssertionString;
|
|
237
251
|
}
|
|
238
252
|
|
|
239
|
-
export function topLevelMetaAssertionStringFromLabelSuppositionsAndDeduction(label, suppositions, deduction) {
|
|
240
|
-
const suppositionsString = suppositionsStringFromSuppositions(suppositions),
|
|
241
|
-
deductionString = deduction.getString(),
|
|
242
|
-
labelString = label.getString(),
|
|
243
|
-
topLevelMetaAssertionString = (suppositionsString !== null) ?
|
|
244
|
-
`${labelString} :: [${suppositionsString}]...${deductionString}` :
|
|
245
|
-
`${labelString} :: ${deductionString}`;
|
|
246
|
-
|
|
247
|
-
return topLevelMetaAssertionString;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
253
|
export function statementSubstitutionStringFromStatementMetavariableAndSubstitution(statement, metavariable, substitution) {
|
|
251
254
|
const statementString = statement.getString(),
|
|
252
255
|
metavariableString = metavariable.getString(),
|
|
@@ -255,3 +258,15 @@ export function statementSubstitutionStringFromStatementMetavariableAndSubstitut
|
|
|
255
258
|
|
|
256
259
|
return statementSubstitutionString;
|
|
257
260
|
}
|
|
261
|
+
|
|
262
|
+
export function topLevelMetaAssertionStringFromLabelSuppositionsDeductionAndMetaLevelAssumptions(label, suppositions, deduction, metaLevelAssumptions) {
|
|
263
|
+
const labelString = label.getString(),
|
|
264
|
+
deductionString = deduction.getString(),
|
|
265
|
+
suppositionsString = suppositionsStringFromSuppositions(suppositions),
|
|
266
|
+
metalevelAssumptionsString = metalevelAssumptionsStringFromMetaLevelAssumptions(metaLevelAssumptions),
|
|
267
|
+
topLevelMetaAssertionString = (suppositionsString !== null) ?
|
|
268
|
+
`${labelString} :: [${suppositionsString}]...${deductionString} ${metalevelAssumptionsString}` :
|
|
269
|
+
`${labelString} :: ${deductionString} ${metalevelAssumptionsString}`;
|
|
270
|
+
|
|
271
|
+
return topLevelMetaAssertionString;
|
|
272
|
+
}
|
|
@@ -59,10 +59,10 @@ async function unifyStatementWithReference(statement, reference, satisfiesAssert
|
|
|
59
59
|
|
|
60
60
|
if (metaLevel) {
|
|
61
61
|
descend((context) => {
|
|
62
|
-
const {
|
|
63
|
-
|
|
62
|
+
const { MetaLevelAssumption } = elements,
|
|
63
|
+
metaLevelAssumption = MetaLevelAssumption.fromStatementAndReference(statement, reference, context);
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
metaLevelAssumption.validate(context);
|
|
66
66
|
|
|
67
67
|
statementUnifiesWithReference = true;
|
|
68
68
|
}, context);
|
|
@@ -94,7 +94,9 @@ function validateStatementAsMetavariable(statement, context) {
|
|
|
94
94
|
|
|
95
95
|
context.trace(`Validating the '${statementString}' statement as a metavariable...`);
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
const declared = true; ///
|
|
98
|
+
|
|
99
|
+
metavariable = metavariable.validate(declared, context);
|
|
98
100
|
|
|
99
101
|
if (metavariable !== null) {
|
|
100
102
|
statementValidatesAsMetavariable = true;
|
|
@@ -103,25 +105,17 @@ function validateStatementAsMetavariable(statement, context) {
|
|
|
103
105
|
generalContext = context, ///
|
|
104
106
|
specificContext = context; ///
|
|
105
107
|
|
|
106
|
-
let
|
|
107
|
-
frameSubstitution;
|
|
108
|
-
|
|
109
|
-
termSubstitution = TermSubstitution.fromStatement(statement, context);
|
|
110
|
-
|
|
111
|
-
if (termSubstitution !== null) {
|
|
112
|
-
termSubstitution = termSubstitution.validate(generalContext, specificContext); ///
|
|
108
|
+
let substitution;
|
|
113
109
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}
|
|
117
|
-
}
|
|
110
|
+
const frameSubstitution = FrameSubstitution.fromStatement(statement, context),
|
|
111
|
+
termSubstitution = TermSubstitution.fromStatement(statement, context);
|
|
118
112
|
|
|
119
|
-
|
|
113
|
+
substitution = (termSubstitution || frameSubstitution);
|
|
120
114
|
|
|
121
|
-
if (
|
|
122
|
-
|
|
115
|
+
if (substitution !== null) {
|
|
116
|
+
substitution = substitution.validate(generalContext, specificContext); ///
|
|
123
117
|
|
|
124
|
-
if (
|
|
118
|
+
if (substitution === null) {
|
|
125
119
|
statementValidatesAsMetavariable = false;
|
|
126
120
|
}
|
|
127
121
|
}
|