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

Add a section on model-checkers / formal verification tools #157

Open
rurban opened this issue Feb 20, 2023 · 4 comments
Open

Add a section on model-checkers / formal verification tools #157

rurban opened this issue Feb 20, 2023 · 4 comments
Labels
content New content for the book

Comments

@rurban
Copy link

rurban commented Feb 20, 2023

Recommending just sanitizers or fuzzers is a bit too simplistic.
They might found vulns, but a model-checker will find all vulns, not on just the tested values which might appear in your test-suite.
Discuss benefits, limitations (loops and recursion).

Yes, I do use model checkers on my compilers and stdlib.

@kbeyls
Copy link
Member

kbeyls commented Feb 20, 2023

Thank you for making this suggestion, @rurban !
I agree that static analysis tools should also be covered, especially because they tend to be "compilers" of sorts themselves. I'm thinking of tools such as clang-static-analyzer. I wonder if you're thinking of a different class of tools when referring to "model-checkers"?

@kbeyls
Copy link
Member

kbeyls commented Feb 20, 2023

@all-contributors please add @rurban for ideas, bug reports

@allcontributors
Copy link
Contributor

@kbeyls

I've put up a pull request to add @rurban! 🎉

@rurban
Copy link
Author

rurban commented Feb 20, 2023

Model checkers are formal verification tools, which cannot prove termination, but can symbolically verify functions. The best even within the C syntax, without any annotations.

cbmc is the industry standard, frama-c with it's plugins is also commonly used. The better ones are also used for crypto or kernels.

@kbeyls kbeyls added the content New content for the book label Feb 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
content New content for the book
Projects
None yet
Development

No branches or pull requests

2 participants