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.
Files changed (51) hide show
  1. package/lib/context/ephemeral.js +2 -7
  2. package/lib/context/file/nominal.js +5 -1
  3. package/lib/context/liminal.js +39 -16
  4. package/lib/context/proof.js +35 -40
  5. package/lib/context.js +11 -3
  6. package/lib/element/assumption/metaLevel.js +181 -0
  7. package/lib/element/assumption.js +20 -38
  8. package/lib/element/judgement.js +11 -13
  9. package/lib/element/metavariable.js +28 -25
  10. package/lib/element/substitution/reference.js +20 -1
  11. package/lib/element/substitution/statement.js +22 -2
  12. package/lib/element/topLevelMetaAssertion.js +9 -9
  13. package/lib/node/assumption/metaLevel.js +27 -0
  14. package/lib/node/assumption.js +5 -5
  15. package/lib/nonTerminalNodeMap.js +3 -1
  16. package/lib/preamble.js +2 -1
  17. package/lib/process/instantiate.js +8 -2
  18. package/lib/process/unify.js +15 -28
  19. package/lib/ruleNames.js +5 -1
  20. package/lib/utilities/context.js +5 -5
  21. package/lib/utilities/element.js +33 -18
  22. package/lib/utilities/json.js +23 -1
  23. package/lib/utilities/string.js +25 -14
  24. package/lib/utilities/unification.js +3 -3
  25. package/lib/utilities/validation.js +9 -14
  26. package/package.json +4 -4
  27. package/src/context/ephemeral.js +1 -9
  28. package/src/context/file/nominal.js +6 -0
  29. package/src/context/liminal.js +54 -16
  30. package/src/context/proof.js +41 -47
  31. package/src/context.js +15 -2
  32. package/src/element/assumption/metaLevel.js +263 -0
  33. package/src/element/assumption.js +30 -56
  34. package/src/element/judgement.js +13 -21
  35. package/src/element/metavariable.js +29 -28
  36. package/src/element/substitution/reference.js +33 -0
  37. package/src/element/substitution/statement.js +33 -1
  38. package/src/element/topLevelMetaAssertion.js +15 -15
  39. package/src/node/assumption/metaLevel.js +23 -0
  40. package/src/node/assumption.js +8 -8
  41. package/src/nonTerminalNodeMap.js +3 -0
  42. package/src/preamble.js +1 -0
  43. package/src/process/instantiate.js +4 -0
  44. package/src/process/unify.js +18 -39
  45. package/src/ruleNames.js +1 -0
  46. package/src/utilities/context.js +4 -4
  47. package/src/utilities/element.js +44 -25
  48. package/src/utilities/json.js +27 -1
  49. package/src/utilities/string.js +34 -19
  50. package/src/utilities/unification.js +3 -3
  51. package/src/utilities/validation.js +10 -16
@@ -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 { Assumption } = elements,
63
- assumption = Assumption.fromStatementAndReference(statement, reference, context);
62
+ const { MetaLevelAssumption } = elements,
63
+ metaLevelAssumption = MetaLevelAssumption.fromStatementAndReference(statement, reference, context);
64
64
 
65
- assumption.validate(context);
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
- metavariable = metavariable.validate(context);
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 termSubstitution,
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
- if (termSubstitution === null) {
115
- statementValidatesAsMetavariable = false;
116
- }
117
- }
110
+ const frameSubstitution = FrameSubstitution.fromStatement(statement, context),
111
+ termSubstitution = TermSubstitution.fromStatement(statement, context);
118
112
 
119
- frameSubstitution = FrameSubstitution.fromStatement(statement, context);
113
+ substitution = (termSubstitution || frameSubstitution);
120
114
 
121
- if (frameSubstitution !== null) {
122
- frameSubstitution = frameSubstitution.validate(generalContext, specificContext); ///
115
+ if (substitution !== null) {
116
+ substitution = substitution.validate(generalContext, specificContext); ///
123
117
 
124
- if (frameSubstitution === null) {
118
+ if (substitution === null) {
125
119
  statementValidatesAsMetavariable = false;
126
120
  }
127
121
  }