This repository has been archived by the owner on Apr 2, 2023. It is now read-only.
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.
I remove the scope-check that occurs between every refinement step, and insert a few scope-checks where it is needed in order to maintain semantic correctness.
The only place the scope-check is really semantically necessary is when a term comes from the user and not from the refiner. For instance, in the
Exact
rules.Elsewhere, having this check would help us catch bugs in the refiner, but generally it is an invariant that the refiner must produce terms that are well-scoped wrt. their context anyway. In light of RedPRL/sml-typed-abts#110, it becomes expensive to wastefully calculate free variables, so I want to minimize calls to
varctx
in RedPRL.I am trying out a number of performance tweaks, and may add more things to this PR.