occam-verify-cli 1.0.792 → 1.0.799
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 +41 -11
- 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 +23 -3
- package/lib/element/assertion/contained.js +10 -14
- package/lib/element/assertion/defined.js +6 -8
- package/lib/element/assumption/metaLevel.js +181 -0
- package/lib/element/assumption.js +24 -44
- package/lib/element/frame.js +12 -18
- package/lib/element/hypothesis.js +1 -1
- package/lib/element/judgement.js +19 -15
- package/lib/element/metavariable.js +73 -48
- package/lib/element/proofAssertion/step.js +5 -7
- package/lib/element/reference.js +21 -19
- package/lib/element/substitution/frame.js +12 -16
- 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/node/declaration/metavariable.js +4 -4
- package/lib/node/frame.js +5 -2
- package/lib/nonTerminalNodeMap.js +3 -1
- package/lib/preamble.js +2 -1
- package/lib/process/instantiate.js +8 -2
- package/lib/process/unify.js +22 -35
- package/lib/ruleNames.js +5 -1
- package/lib/utilities/context.js +5 -5
- package/lib/utilities/element.js +34 -26
- 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 +63 -12
- 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 +35 -2
- package/src/element/assertion/contained.js +10 -14
- package/src/element/assertion/defined.js +6 -8
- package/src/element/assumption/metaLevel.js +263 -0
- package/src/element/assumption.js +35 -63
- package/src/element/frame.js +11 -17
- package/src/element/hypothesis.js +1 -1
- package/src/element/judgement.js +18 -19
- package/src/element/metavariable.js +98 -58
- package/src/element/proofAssertion/step.js +5 -7
- package/src/element/reference.js +30 -23
- package/src/element/substitution/frame.js +11 -15
- 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/node/declaration/metavariable.js +4 -4
- package/src/node/frame.js +6 -1
- package/src/nonTerminalNodeMap.js +3 -0
- package/src/preamble.js +1 -0
- package/src/process/instantiate.js +4 -0
- package/src/process/unify.js +25 -50
- package/src/ruleNames.js +1 -0
- package/src/utilities/context.js +4 -4
- package/src/utilities/element.js +47 -35
- 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/context.js
CHANGED
|
@@ -114,14 +114,14 @@ export function unserialise(innerFunction, json, context) {
|
|
|
114
114
|
return innerFunction(json, context);
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
export async function asyncRestrict(innerFunction,
|
|
117
|
+
export async function asyncRestrict(innerFunction, metaLevelAssumptions, context) {
|
|
118
118
|
if (context === undefined) {
|
|
119
|
-
context =
|
|
119
|
+
context = metaLevelAssumptions; ///
|
|
120
120
|
|
|
121
|
-
|
|
121
|
+
metaLevelAssumptions = null;
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
const proofContext = ProofContext.
|
|
124
|
+
const proofContext = ProofContext.fromMetaLevelAssumptions(metaLevelAssumptions, context);
|
|
125
125
|
|
|
126
126
|
context = proofContext; ///
|
|
127
127
|
|
package/src/utilities/element.js
CHANGED
|
@@ -10,7 +10,7 @@ import { equivalenceStringFromTerms,
|
|
|
10
10
|
subproofStringFromSuppositionsAndSubDerivation,
|
|
11
11
|
procedureCallStringFromProcedureReferenceAndParameters,
|
|
12
12
|
topLevelAssertionStringFromLabelsSuppositionsAndDeduction,
|
|
13
|
-
|
|
13
|
+
topLevelMetaAssertionStringFromLabelSuppositionsDeductionAndMetaLevelAssumptions } from "../utilities/string";
|
|
14
14
|
|
|
15
15
|
export function typeFromTypeNode(typeNode, context) {
|
|
16
16
|
let type;
|
|
@@ -210,13 +210,6 @@ export function theoremFromTheoremNode(theoremNode, context) {
|
|
|
210
210
|
return theorem;
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
-
export function metaTypeFromMetaTypeNode(metaTypeNode, context) {
|
|
214
|
-
const metaTypeName = metaTypeNode.getMetaTypeName(),
|
|
215
|
-
metaType = context.findMetaTypeByMetaTypeName(metaTypeName);
|
|
216
|
-
|
|
217
|
-
return metaType;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
213
|
export function propertyFromPropertyNode(propertyNode, context) {
|
|
221
214
|
const { Property } = elements,
|
|
222
215
|
node = propertyNode, ///
|
|
@@ -346,11 +339,11 @@ export function metaLemmaFromMetaLemmaNode(metaLemmaNode, context) {
|
|
|
346
339
|
label = labelFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
|
|
347
340
|
deduction = deductionFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
|
|
348
341
|
suppositions = suppositionsFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
|
|
349
|
-
|
|
350
|
-
topLevelMetaAssertionString =
|
|
342
|
+
metaLevelAssumptions = metaLevelAssumptionsFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
|
|
343
|
+
topLevelMetaAssertionString = topLevelMetaAssertionStringFromLabelSuppositionsDeductionAndMetaLevelAssumptions(label, suppositions, deduction, metaLevelAssumptions),
|
|
351
344
|
node = metaLemmaMetathoremNode, ///
|
|
352
345
|
string = topLevelMetaAssertionString, ///
|
|
353
|
-
metaLemma = new MetaLemma(context, string, node, label, suppositions, deduction, proof,
|
|
346
|
+
metaLemma = new MetaLemma(context, string, node, label, suppositions, deduction, proof, metaLevelAssumptions);
|
|
354
347
|
|
|
355
348
|
return metaLemma;
|
|
356
349
|
}
|
|
@@ -467,11 +460,8 @@ export function assumptionFromAssumptionNode(assumptionNode, context) {
|
|
|
467
460
|
node = assumptionNode, ///
|
|
468
461
|
string = context.nodeAsString(node),
|
|
469
462
|
reference = referenceFromAssumptionNode(assumptionNode, context),
|
|
470
|
-
statement = statementFromAssumptionNode(assumptionNode, context)
|
|
471
|
-
|
|
472
|
-
context = null;
|
|
473
|
-
|
|
474
|
-
const assumption = new Assumption(context, string, node, reference, statement);
|
|
463
|
+
statement = statementFromAssumptionNode(assumptionNode, context),
|
|
464
|
+
assumption = new Assumption(context, string, node, reference, statement);
|
|
475
465
|
|
|
476
466
|
return assumption;
|
|
477
467
|
}
|
|
@@ -523,11 +513,11 @@ export function metatheoremFromMetatheoremNode(metatheoremNode, context) {
|
|
|
523
513
|
label = labelFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
|
|
524
514
|
deduction = deductionFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
|
|
525
515
|
suppositions = suppositionsFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
|
|
526
|
-
|
|
527
|
-
topLevelMetaAssertionString =
|
|
516
|
+
metaLevelAssumptions = metaLevelAssumptionsFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context),
|
|
517
|
+
topLevelMetaAssertionString = topLevelMetaAssertionStringFromLabelSuppositionsDeductionAndMetaLevelAssumptions(label, suppositions, deduction, metaLevelAssumptions),
|
|
528
518
|
node = metaLemmaMetathoremNode, ///
|
|
529
519
|
string = topLevelMetaAssertionString, ///
|
|
530
|
-
metatheorem = new Metatheorem(context, string, node, label, suppositions, deduction, proof,
|
|
520
|
+
metatheorem = new Metatheorem(context, string, node, label, suppositions, deduction, proof, metaLevelAssumptions);
|
|
531
521
|
|
|
532
522
|
return metatheorem;
|
|
533
523
|
}
|
|
@@ -730,6 +720,17 @@ export function variableDeclarationFromVariableDeclarationNode(variableDeclarati
|
|
|
730
720
|
return variableDeclaration;
|
|
731
721
|
}
|
|
732
722
|
|
|
723
|
+
export function metaLevelAssumptionFromMetaLevelAssumptionNode(metaLevelAssumptionNode, context) {
|
|
724
|
+
const { MetaLevelAssumption } = elements,
|
|
725
|
+
node = metaLevelAssumptionNode, ///
|
|
726
|
+
string = context.nodeAsString(node),
|
|
727
|
+
reference = referenceFromMetaLevelAssumptionNode(metaLevelAssumptionNode, context),
|
|
728
|
+
statement = statementFromMetaLevelAssumptionNode(metaLevelAssumptionNode, context),
|
|
729
|
+
metaLevelAssumption = new MetaLevelAssumption(context, string, node, reference, statement);
|
|
730
|
+
|
|
731
|
+
return metaLevelAssumption;
|
|
732
|
+
}
|
|
733
|
+
|
|
733
734
|
export function typePrefixDeclarationFromTypePrefixDeclarationNode(typePrefixDeclarationNode, context) {
|
|
734
735
|
const { TypePrefixDeclaration } = elements,
|
|
735
736
|
node = typePrefixDeclarationNode, ///
|
|
@@ -1072,7 +1073,7 @@ export function termFromMetavariableNode(metavariableNode, context) {
|
|
|
1072
1073
|
const termNode = metavariableNode.getTermNode();
|
|
1073
1074
|
|
|
1074
1075
|
if (termNode !== null) {
|
|
1075
|
-
term =
|
|
1076
|
+
term = context.findTermByTermNode(termNode);
|
|
1076
1077
|
}
|
|
1077
1078
|
|
|
1078
1079
|
return term;
|
|
@@ -1245,13 +1246,8 @@ export function statementFromConclusionNode(conclusinoNode, context) {
|
|
|
1245
1246
|
}
|
|
1246
1247
|
|
|
1247
1248
|
export function statementFromAssumptionNode(assumptionNode, context) {
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
const statementNode = assumptionNode.getStatementNode();
|
|
1251
|
-
|
|
1252
|
-
if (statementNode !== null) {
|
|
1253
|
-
statement = statementFromStatementNode(statementNode, context);
|
|
1254
|
-
}
|
|
1249
|
+
const statementNode = assumptionNode.getStatementNode(),
|
|
1250
|
+
statement = statementFromStatementNode(statementNode, context);
|
|
1255
1251
|
|
|
1256
1252
|
return statement;
|
|
1257
1253
|
}
|
|
@@ -1725,6 +1721,22 @@ export function targetFrameFromFrameSubstitutionNode(frameSubstitutionNode, cont
|
|
|
1725
1721
|
return targetFrame;
|
|
1726
1722
|
}
|
|
1727
1723
|
|
|
1724
|
+
export function statementFromMetaLevelAssumptionNode(metaLevelAssumptionNode, context) {
|
|
1725
|
+
const statementNode = metaLevelAssumptionNode.getStatementNode(),
|
|
1726
|
+
statement = statementFromStatementNode(statementNode, context);
|
|
1727
|
+
|
|
1728
|
+
return statement;
|
|
1729
|
+
}
|
|
1730
|
+
|
|
1731
|
+
export function referenceFromMetaLevelAssumptionNode(metaLevelAssumptionNode, context) {
|
|
1732
|
+
const { Reference } = elements,
|
|
1733
|
+
referenceNode = metaLevelAssumptionNode.getReferenceNode(),
|
|
1734
|
+
referenceString = context.nodeAsString(referenceNode),
|
|
1735
|
+
reference = Reference.fromReferenceString(referenceString, context);
|
|
1736
|
+
|
|
1737
|
+
return reference;
|
|
1738
|
+
}
|
|
1739
|
+
|
|
1728
1740
|
export function suppositionsFromTopLevelAssertionNode(topLevelAsssertionNode, context) {
|
|
1729
1741
|
const suppositionNodes = topLevelAsssertionNode.getSuppositionNodes(),
|
|
1730
1742
|
suppositions = suppositionsFromSuppositionNodes(suppositionNodes, context);
|
|
@@ -1794,18 +1806,12 @@ export function combinatorFromCombinatorDeclarationNode(combinatorDeclarationNod
|
|
|
1794
1806
|
}
|
|
1795
1807
|
|
|
1796
1808
|
export function metaTypeFromMetavariableDeclarationNode(metavariableDeclarationNode, context) {
|
|
1797
|
-
const
|
|
1798
|
-
metaType =
|
|
1809
|
+
const metaTypeName = metavariableDeclarationNode.getMetaTypeName(),
|
|
1810
|
+
metaType = context.findMetaTypeByMetaTypeName(metaTypeName);
|
|
1799
1811
|
|
|
1800
1812
|
return metaType;
|
|
1801
1813
|
}
|
|
1802
1814
|
|
|
1803
|
-
export function assumptionsFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context) {
|
|
1804
|
-
const assumptions = [];
|
|
1805
|
-
|
|
1806
|
-
return assumptions;
|
|
1807
|
-
}
|
|
1808
|
-
|
|
1809
1815
|
export function provisionalFromSimpleTypeDeclarationNode(simpleTypeDeclarationNode, context) {
|
|
1810
1816
|
const provisional = simpleTypeDeclarationNode.isProvisional();
|
|
1811
1817
|
|
|
@@ -1937,6 +1943,12 @@ export function replacementStatementFromStatementSubstitutionNode(statementSubst
|
|
|
1937
1943
|
return replacementStatement;
|
|
1938
1944
|
}
|
|
1939
1945
|
|
|
1946
|
+
export function metaLevelAssumptionsFromTopLevelMetaAssertionNode(metaLemmaMetathoremNode, context) {
|
|
1947
|
+
const metaLevelAssumptions = [];
|
|
1948
|
+
|
|
1949
|
+
return metaLevelAssumptions;
|
|
1950
|
+
}
|
|
1951
|
+
|
|
1940
1952
|
export function termsFromTermNodes(termNodes, context) {
|
|
1941
1953
|
const terms = termNodes.map((termNode) => {
|
|
1942
1954
|
const term = termFromTermNode(termNode, context);
|
package/src/utilities/json.js
CHANGED
|
@@ -565,7 +565,7 @@ export function assumptionsFromJSON(json, context) {
|
|
|
565
565
|
let { assumptions } = json;
|
|
566
566
|
|
|
567
567
|
const { Assumption } = elements,
|
|
568
|
-
|
|
568
|
+
assumptionsJSON = assumptions; ///
|
|
569
569
|
|
|
570
570
|
assumptions = assumptionsJSON.map((assumptionJSON) => {
|
|
571
571
|
const json = assumptionJSON, ///
|
|
@@ -702,6 +702,22 @@ export function propertyRelationsFromJSON(json, context) {
|
|
|
702
702
|
return propertyRelations;
|
|
703
703
|
}
|
|
704
704
|
|
|
705
|
+
export function metaLevelAssumptionsFromJSON(json, context) {
|
|
706
|
+
let { metaLevelAssumptions } = json;
|
|
707
|
+
|
|
708
|
+
const { MetaLevelAssumption } = elements,
|
|
709
|
+
metaLevelAssumptionsJSON = metaLevelAssumptions; ///
|
|
710
|
+
|
|
711
|
+
metaLevelAssumptions = metaLevelAssumptionsJSON.map((metaLevelAssumptionJSON) => {
|
|
712
|
+
const json = metaLevelAssumptionJSON, ///
|
|
713
|
+
metaLevelAssumption = MetaLevelAssumption.fromJSON(json, context);
|
|
714
|
+
|
|
715
|
+
return metaLevelAssumption;
|
|
716
|
+
});
|
|
717
|
+
|
|
718
|
+
return metaLevelAssumptions;
|
|
719
|
+
}
|
|
720
|
+
|
|
705
721
|
export function nameToNameJSON(name) {
|
|
706
722
|
const nameJSON = name; ///
|
|
707
723
|
|
|
@@ -1120,6 +1136,16 @@ export function propertyRelationsToPropertyRelationsJSON(propertyRelations) {
|
|
|
1120
1136
|
return propertyRelationsJSON;
|
|
1121
1137
|
}
|
|
1122
1138
|
|
|
1139
|
+
export function metaLevelAssumptionsToMetaLevelAssumptionsJSON(metaLevelAssumptions) {
|
|
1140
|
+
const metaLevelAssumptionsJSON = metaLevelAssumptions.map((metaLevelAssumption) => {
|
|
1141
|
+
const metaLevelAssumptionJSON = metaLevelAssumption.toJSON();
|
|
1142
|
+
|
|
1143
|
+
return metaLevelAssumptionJSON;
|
|
1144
|
+
});
|
|
1145
|
+
|
|
1146
|
+
return metaLevelAssumptionsJSON;
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1123
1149
|
function findTypeByName(name, context) {
|
|
1124
1150
|
const typeName = name, ///
|
|
1125
1151
|
type = context.findTypeByTypeName(typeName);
|
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 strict = true; ///
|
|
98
|
+
|
|
99
|
+
metavariable = metavariable.validate(strict, 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
|
}
|