Skip to content

Conversation

brianhuffman
Copy link
Contributor

This is a draft PR that, when complete, will simplify the saw-core term representation by:

  • removing the RecursorApp special application form in favor of App
  • removing the RecursorType special form in favor of ordinary Pi types
  • removing the Recursor term constructor in favor of Constant
  • removing the CompiledRecursor record in favor of fields stored in the datatype declaration in the global environment.

This is a follow-up to PR #2422, intended to address #2358.

This is a step toward the complete removal of `RecursorApp` (#2358).
The `RecursorApp` constructor still exists, and contains the list of
index arguments to the recursor.
It was wrongly returning a lambda instead of a Pi type for the
type of a recursor applied to indices. Now it correctly matches
the type returned by scTypeCheck.
@brianhuffman
Copy link
Contributor Author

We have a couple of remaining test failures in heapster-tests, which I have tracked down to the normalizeSharedTerm' function from the TermModel saw-core simulator backend. This backend uses the Value type (specifically the VExtra constructor) in an unconventional way that interacts badly with my proposed patch to the saw-core simulator's implementation of recursors.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant