-
Notifications
You must be signed in to change notification settings - Fork 53
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
ListSet implementation. #822
base: scala-2
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the nice additions! I commented on a few minor things, and I would try to make the lemmas and specifications be less dependent on the forall
quantifier which is not stable at the moment.
}.ensuring(_ ⇒ first.contains(elem) ==> second.contains(elem)) | ||
|
||
@opaque | ||
def transitivePredicate[T](elem: T, list: T ⇒ Boolean, p: T => Boolean): Unit = { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Strange lemma :) Is it really needed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I need it here, filteringWithExpandingPredicateCreatesSubsets
not sure why isn't it obvious.
Looks like the build is stuck even though all tests passed. |
The two builds might have been killed due to memory or time usage, can we increase the limits? |
Yeah, it should be possible. The memory limit is hard-coded in the larabot code here. Someone should also investigate why the build doesn't get killed correctly and end in failure. |
d755e3a
to
7a46bba
Compare
d55d4ab
to
77bdc27
Compare
77bdc27
to
c470a83
Compare
Going forward, we are trying to not use non-bounded foralls and we try to put the data structures into https://github.com/epfl-lara/bolts/ whenever they are not treated specially in front end extraction. |
@samuelchassot we should check if we should put this into bolts/data-structures and if we can get some of it using set.toList functionality in stainless library. |
ListSet
implementation with some basic functionality. Along with this there are additional proofs forLists
. Any suggestions regarding changes in naming and proof generalization are welcome.