Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unproven Integer Type Checking #402

Open
DavePearce opened this issue Nov 28, 2024 · 0 comments
Open

Unproven Integer Type Checking #402

DavePearce opened this issue Nov 28, 2024 · 0 comments

Comments

@DavePearce
Copy link
Collaborator

The goal here is to develop a type check for "unproven" types (e.g. i8 versus i8@prove, etc). Two approaches:

  • (Simple) We could use integer range analysis, along with bounded unrolling to given a quick-and-dirty check. This would unroll a given module to some number of rows, then fill in all proven columns with their ranges and then try to deduce the rest. I don't know whether this will work well, however, for modules with CT_MAX. The problem being that these modules have variable rows per call, and this will interfere. We could hard-code knowledge of CT_MAX.
  • (Non-inductive Proof) We can improve upon the above by using a simple decision procedure for inequalities and, again, unrolling to some depth.
  • (Inductive Proof) Perhaps the hardest, but also the most powerful.
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

No branches or pull requests

1 participant