-
Notifications
You must be signed in to change notification settings - Fork 62
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
human-friendly equations from PLE #569
human-friendly equations from PLE #569
Conversation
The accompanying LH branch is ucsd-progsys/liquidhaskell@develop...facundominguez:fd/ple-opts2 I still keep this PR as draft because I have to address the missing test constructors when unfolding measures as reflected functions. This impairs my ability to verify stitch-lh for instance, and worsens the experience for users in general. I thought of making the PR, anyway, because it changes a lot of things, and it can use a review already. I'm rather confident that the remaining work won't need to rewrite these patches unless the review uncovers serious flaws. All tests should pass except for stitch-lh. Update: I have solutions for the above issues in the branch for Liquid Haskell, so I have promoted this PR from the draft status. |
Wow this is awesome! Let me know if you want to chat to go over whatever is
missing/ needs to be fixed.
…On Mon, May 16, 2022 at 6:57 AM Facundo Domínguez ***@***.***> wrote:
The accompanying LH branch is ucsd-progsys/liquidhaskell@
develop...facundominguez:fd/ple-opts2
<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_ucsd-2Dprogsys_liquidhaskell_compare_develop...facundominguez-3Afd_ple-2Dopts2&d=DwMCaQ&c=-35OiAkTchMrZOngvJPOeA&r=r3JfTqNkpwIJ1InE9-ChC2ld7xwATxgUx5XHAdA0UnA&m=ytb6oAc8STuCToF1DJEkLL8fiXmv0jfGoae2ByFoAbjYmy5gG1icyCYdX6PV2S8m&s=GA6RhZpmoNBFmKfujWgQ6U8JwOAPXU_6q7aRAI8lr-Y&e=>
It disables the expression interpreter which worsens performance since the
regular PLE produces fewer and smaller equations.
I still keep this PR as draft because I have to address the missing test
constructors when unfolding measures as reflected functions. This impairs
my ability to verify stitch-lh for instance, and worsens the experience for
users in general. I thought of making the PR, anyway, because it changes a
lot of things, and it can use a review already. I'm rather confident that
the remaining work won't need to rewrite these patches unless the review
uncovers serious flaws. All tests should pass except for stitch-lh.
—
Reply to this email directly, view it on GitHub
<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_ucsd-2Dprogsys_liquid-2Dfixpoint_pull_569-23issuecomment-2D1127709071&d=DwMCaQ&c=-35OiAkTchMrZOngvJPOeA&r=r3JfTqNkpwIJ1InE9-ChC2ld7xwATxgUx5XHAdA0UnA&m=ytb6oAc8STuCToF1DJEkLL8fiXmv0jfGoae2ByFoAbjYmy5gG1icyCYdX6PV2S8m&s=mvT96gxw9gX_9CDOtQrH9kUejEHMBCdFeBwyGfXBsK8&e=>,
or unsubscribe
<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AAMS4ODM5SETVO4P2R6OUSLVKJH3FANCNFSM5WBRXG3Q&d=DwMCaQ&c=-35OiAkTchMrZOngvJPOeA&r=r3JfTqNkpwIJ1InE9-ChC2ld7xwATxgUx5XHAdA0UnA&m=ytb6oAc8STuCToF1DJEkLL8fiXmv0jfGoae2ByFoAbjYmy5gG1icyCYdX6PV2S8m&s=c0LjhlicpRrstpOLleHapWwlVtTzF8YjKY-h5lYSAJg&e=>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Here is an example of the produced equalities. In tests/pos/Rest.hs there is a function
This is proving that we can extend the environment of lambda expressions in de bruijn notation, and still preserve "closedness". With this PR, in the last branch of the case
PLE produces 18 equalities:
And this is close to the size of the equality set produced for every other branch in the function. Without this PR, we get instead:
Avoiding the use of |
b895f04
to
20a7972
Compare
This is ready for review and eventually merging. At least I think I have solutions for the remaining integration issues with LH. I'll work on solving the merge conflicts after review. |
dad6574
to
8f893b7
Compare
70bc523
to
f73828c
Compare
I rebased |
7302ab9
to
07d95d8
Compare
I tested safe-coupling, it took 114s before this change, and 65 seconds after. I need to look a liquidmeta next. |
I tried liquidmeta. There are two commits here. The first commit updates LH to Unfortunately,
|
@niki, @ranjitjhala, I think this is good to merge. But please, let me know if we need to do anything else in advance. |
I updated the chart comparing test measures. It has the same results, but the formatting is no longer screwed. |
Fixes #500
The equations produced by PLE are smaller and fewer. No benchmark worsens, some benchmarks improve, and the regular PLE catches up with the interpreted PLE speed ups.
Major changes in this PR: