-
Notifications
You must be signed in to change notification settings - Fork 122
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
Add an associative function symbol #493
base: develop
Are you sure you want to change the base?
Add an associative function symbol #493
Conversation
charlie-j
commented
Sep 13, 2022
This reverts commit b0bd3c2.
It is now properly managed, with a term constructor taking tuples. Normal A form is maintained directly in the FAPP structure.
…2222/cc/tamarin-prover into feature-assoc-concat
This PR (silently) fixes the |
Oh shit, I indeed forgot to mention it. For the associative operator, we add the fact that maude warnings are now caught by Tamarin, so the DH issue became visible when running the regression tests. |
Updated based on the merge of #495 |
This should be put on hold until #507 is merged. |
Easily allows to switch on a single model from the associative to the non associative behavior, and notably allows for simple export to Proverif.
a015a4c
to
91b0206
Compare
As #507 was merged, I updated this branch. So ideally, I'd like to use the same yellow coloring in the incomplete case. HOWEVER, the incomplete cases here are exceptions returned by the Maude/Process.hs file, using the @rsasse @jdreier do you have any intuition on this? Do you think there's no chance I can get this to work kind of cleanly? |
I've tried a first option, which is to add a wrapper for the result, using
where
This creates batshit crazy propagation, going from the bottom, I tried to update everything for several hours, but it is just completely unreasonable. Many utility functions, the simplest being folds, all test, setAny etc have to be recoded to account for the new type. At some point I tried the other option, to use an exception carried by the Reader monade of WithMaude. Here, the advantage is that we don't have to update all functions that work in the WithMaude monade. However, doing a grep runReader gives an idea of the number of points where the exception needs to be handled, and then from those points ir should go all the way up to rankProofMethods. Once again, it was becoming crazy. So, after losing quite a lot of time on it, my two core observations:
TLDR, I give up on going for the nice integration. I let you decide if you want to keep it in or out as is. |