Skip to content
This repository has been archived by the owner on Jul 31, 2023. It is now read-only.

Exploit parallelism #66

Open
alastairreid opened this issue Nov 9, 2020 · 0 comments
Open

Exploit parallelism #66

alastairreid opened this issue Nov 9, 2020 · 0 comments

Comments

@alastairreid
Copy link
Contributor

cargo-verify currently exploits parallelism between verification targets but not within each individual verification.
To exploit parallelism. we need some way of doing a case split on input values (which hopefully makes values more concrete).
It is not clear whether this needs to be under user control (allowing the user to indicate case splits that may make sense) or whether it can be automatic.

Some places to get ideas from

  • Proptest-derive modifiers
    (see also recursive strategies).
    Weights are used to modify the probability of generating particular random values.
    In a verification context, do they also indicate something about useful case splits or the number of parallel verification processes to assign to a particular case or the order in which to explore case splits in a sequential verification effort?

  • DeepState: Symbolic Unit Testing for C and C++ - sections II, III and IV describe various optimizations

Challenges:

  • Is there an effective way to apply sharding?
  • If we add hints to aid verification:
    • do they work for all verification tools?
    • do different tools need conflicting annotations?
    • can fuzz-testers use the annotations as well?
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant