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

Symbolic Execution not terminating #130

Closed
weaversa opened this issue Oct 21, 2014 · 1 comment
Closed

Symbolic Execution not terminating #130

weaversa opened this issue Oct 21, 2014 · 1 comment
Assignees
Labels
bug Something not working correctly
Milestone

Comments

@weaversa
Copy link
Collaborator

parity xs = ys!0
  where ys = [False] # [y ^ x | x <- xs | y <- ys ]

prefix f xs = ys!0
  where ys = [xs@0] # [ f y x | y <- ys | x <- tail xs ]

par = prefix (^)
Main> :prove \(x:[2]) -> (par x) == (parity x)
Using exhaustive testing.
passed 1024 tests.
QED
Main> :prove \(x:[1]) -> (par x) == (parity x)

Another example (much simpler than Mark's) where the symbolic execution is not terminating, but should.

brianhuffman pushed a commit that referenced this issue Oct 21, 2014
Previously it would try to convert the recursive value directly
into a VWord constructor, forcing all bits immediately and causing
non-termination. Now it produces a VSeq constructor instead.

This addresses issue #130.
@brianhuffman
Copy link
Contributor

Fixed in 337b7d3. It was an issue with the symbolic simulator being too strict in the presence of recursive definitions. I'll close the issue as soon as I get around to adding a regression test for this.

@brianhuffman brianhuffman self-assigned this Oct 21, 2014
brianhuffman pushed a commit that referenced this issue Oct 23, 2014
@kiniry kiniry added the bug Something not working correctly label Dec 3, 2014
@kiniry kiniry added this to the Cryptol 2.2 milestone Dec 3, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something not working correctly
Projects
None yet
Development

No branches or pull requests

3 participants