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

Unify infrastructure for compositional verification #553

Open
atomb opened this issue Oct 1, 2019 · 4 comments
Open

Unify infrastructure for compositional verification #553

atomb opened this issue Oct 1, 2019 · 4 comments
Labels
needs design Technical design work is needed for issue to progress subsystem: crucible-jvm Issues related to Java verification with crucible-jvm subsystem: crucible-llvm Issues related to LLVM bitcode verification with crucible-llvm subsystem: crucible-mir Issues related to Rust verification with crucible-mir and/or mir-json type: enhancement Issues describing an improvement to an existing feature or capability
Milestone

Comments

@atomb
Copy link
Contributor

atomb commented Oct 1, 2019

The implementations of compositional verification for Java and LLVM overlap to a very significant degree. We've put a good deal of effort into factoring out common code, with some success, but I expect there's more we can do. Reducing duplicate code would reduce the maintenance burden, and also reduce the cost of implementing compositional reasoning for new languages (such as Rust MIR or x86).

@atomb atomb added the type: enhancement Issues describing an improvement to an existing feature or capability label Oct 1, 2019
@atomb atomb added this to the 1.0 milestone Oct 1, 2019
@brianhuffman
Copy link
Contributor

Duplicate of #379?

@atomb
Copy link
Contributor Author

atomb commented Oct 2, 2019

This one is intended to be more general, though perhaps the initial description didn't convey that as well as it could. Whereas #379 is entirely about code duplication, this issue covers different approaches that may allow more sharing, as well. Even if #379 were resolved as well as possible, I think there are more improvements we could make to the overall architecture.

@atomb atomb removed this from the 0.5 milestone Feb 5, 2020
@brianhuffman brianhuffman added the tech debt Issues that document or involve technical debt label Jul 16, 2021
@robdockins robdockins added needs design Technical design work is needed for issue to progress and removed tech debt Issues that document or involve technical debt labels Jul 16, 2021
@kquick
Copy link
Member

kquick commented Jul 16, 2021

The Java support identified some LLVM-specific things that needed an equivalent implementation; the Rust work may help inform the right generalization (both improving and removing existing generalizations).

@atomb
Copy link
Contributor Author

atomb commented Jul 22, 2021

The Gillian system (Part 1, Part 2) may provide some inspiration about how to effectively decompose things in a language-independent way. I believe they were somewhat inspired by SAW in the way they approached the problem.

@RyanGlScott RyanGlScott added subsystem: crucible-llvm Issues related to LLVM bitcode verification with crucible-llvm subsystem: crucible-jvm Issues related to Java verification with crucible-jvm subsystem: crucible-mir Issues related to Rust verification with crucible-mir and/or mir-json labels Aug 10, 2023
@sauclovian-g sauclovian-g added this to the 2025T1 milestone Oct 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs design Technical design work is needed for issue to progress subsystem: crucible-jvm Issues related to Java verification with crucible-jvm subsystem: crucible-llvm Issues related to LLVM bitcode verification with crucible-llvm subsystem: crucible-mir Issues related to Rust verification with crucible-mir and/or mir-json type: enhancement Issues describing an improvement to an existing feature or capability
Projects
None yet
Development

No branches or pull requests

6 participants