-
Notifications
You must be signed in to change notification settings - Fork 9
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
Cannot enumerate terms for larger depths #226
Comments
Hi! Thanks for your question, I'm excited that you're trying to use Enumo :) I think your issue is in how you're using
So in your code, you're doing
And then you plug in
And finally you plug in
Correct me if I'm wrong, but I think you're trying to enumerate these terms:
In that case, I think you'll want to make a workload that's something like this:
Please let me know if that helps, and don't hesitate to reach out with any other questions! |
Hello @ajpal , Replacing the enumeration with with:
produces the following enumerated terms:
instead of something like
Could you suggest how to rectify this? |
Also another question: Consider that the enumerated terms are of different types. For example, consider that we have a DSL of 32 bit integers and 64 bit integers and operations operating on 32-bit and 64 bit operations respectively. Once can convert to 64 bit integers using a sign-extension and the reverse using a truncation. Could you specify how we can enumerate expressions in these case? We want to enumerate all expressions up to depth 3 where the output type may be either a 64-bit value or a 32-bit value. Your help will be greatly appreciated! |
Sorry, I missed this reply!! I don't understand or repro the issue with
I get
Which is, I think, as expected. Can you clarify and/or send me a branch I can play around with? For the second question (about enumerating different types), Workload terms aren't typed (they're just s-expressions). The semantics of what the term means is up to your implementation of |
Hello Anjali, <32-bit-expr>: <16-bit-expr>: <8-bit-expr>: As you can see the expressions are mutually recursive, and so I'm unsure of how to express a workload such as this. Say we wanted to enumerate all expressions upto depth 3 where the final return type is |
Hello, I am trying to enumerate these terms using Enumo.
The validation function is returning
Invalid
for now since I need to call an external program containing the semantics to validate it instead of encoding it in Z3. However, on running the test, the terms don't enumerate to the specified depth.We are trying to generate the rule
(vec_d_dsl (vec_s_dsl a)) = a
. Can you point to any reasons as to why that pattern is not being enumerated?The text was updated successfully, but these errors were encountered: