Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes #3238 by changing the typing axiom for the encoded range constants.
The way we do this now is by adding the following snippet to the prelude of the encoding:
Essentially this is declaring
1- The way we construct the abstract range constants, i.e.
Range_const i
, using a freshi
for every constant2- A typing axiom for it. The axiom essentially says that, for any type
ty
such thatValid (Prims.isPrimitiveRangeType ty)
, all range constants are typeable at this type. The only type satisfying this will beFStar.Range.__range
, but we cannot mention it here (and forward declaring a definition from such a module seems unwise). So we use this indirection, which is defined in prims, and state the following axiom inFStar.Range.fsti
: