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

ListSet implementation. #822

Open
wants to merge 3 commits into
base: scala-2
Choose a base branch
from
Open

Conversation

OStevan
Copy link
Contributor

@OStevan OStevan commented Aug 11, 2020

ListSet implementation with some basic functionality. Along with this there are additional proofs for Lists. Any suggestions regarding changes in naming and proof generalization are welcome.

Copy link
Contributor

@jad-hamza jad-hamza left a 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.

frontends/library/stainless/collection/List.scala Outdated Show resolved Hide resolved
}.ensuring(_ ⇒ first.contains(elem) ==> second.contains(elem))

@opaque
def transitivePredicate[T](elem: T, list: T ⇒ Boolean, p: T => Boolean): Unit = {
Copy link
Contributor

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?

Copy link
Contributor Author

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.

@romac
Copy link
Member

romac commented Aug 12, 2020

Looks like the build is stuck even though all tests passed.

@jad-hamza
Copy link
Contributor

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?

@samarion
Copy link
Member

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.

@jad-hamza jad-hamza force-pushed the ostevan/lis-set branch 3 times, most recently from d55d4ab to 77bdc27 Compare September 10, 2020 12:46
@vkuncak
Copy link
Collaborator

vkuncak commented Apr 25, 2021

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.

@vkuncak vkuncak self-requested a review April 26, 2021 14:50
@vkuncak
Copy link
Collaborator

vkuncak commented Oct 31, 2024

@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.

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

Successfully merging this pull request may close these issues.

5 participants