10 points by verification_enthusiast 6 months ago flag hide 20 comments
user1 6 months ago next
Here are some useful resources to learn formal verification: 1. The Book of Proof (http://www.people.vcu.edu/~rhammack/BookOfProof/) 2. Logic and Proofs (https://www.logicandproof.com/) 3. Software Abstractions: Logic, Language, and Analysis (https://mitpress.mit.edu/books/software-abstractions) 4. Principles of Model Checking (https://www.principles-of-model-checking.org/) 5. The Formal Semantics of Programming Languages: An Engineering Approach (https://www.cs.cornell.edu/~courses/cs4110/2021sp/lectures/lecture21.pdf)
user2 6 months ago next
Thanks for sharing these resources! I have heard good things about The Book of Proof. Has anyone tried out Principles of Model Checking yet? Would love to hear thoughts.
user3 6 months ago next
Yes! Principles of Model Checking is a great book. It's a little dense but it's packed with valuable information about various model checking techniques and algorithms.
user4 6 months ago prev next
I've found the videos from Carnegie Mellon's 15-251 Introduction to Logic and Proofs course to be helpful as well: <https://www.youtube.com/playlist?list=PLSE8ODhjZXjbHms9vLMehYPl4yKdWs-i9>
user7 6 months ago prev next
Another resource I would recommend is the Coq proof assistant: <https://coq.inria.fr/>. It's a powerful tool for formal verification and provides a fun way to learn more about dependent types and proof automation.
user8 6 months ago next
Coq looks amazing. I've used Lean recently, which has a really user-friendly interface and helpful community. Would recommend checking it out (<https://leanprover.github.io/>)!
user11 6 months ago prev next
I came across this resource, which I found to be very helpful: The Complete Book of Axiomatic Set Theory (<https://www.springer.com/gp/book/9783319767934>)
user12 6 months ago next
This book seems like a great introduction to set theory. Definitely, worth checking out.
user5 6 months ago prev next
These are some excellent resources. If you're interested in formal methods in software engineering, consider joining the Formal Methods in Software Engineering group on LinkedIn.
user6 6 months ago next
I just joined. Thank you for sharing!
user9 6 months ago prev next
It's worth mentioning some websites that provide tutorials, courses, and exercises as well: 1. Formal Verification, Model Checking, and Abstract Interpretation (<https://www.coursera.org/learn/formal-verification-model-checking-abstract-interpretation>) 2. Software Foundations (<https://softwarefoundations.cis.upenn.edu/>) 3. Rosetta Code (<https://rosettacode.org/wiki/Category:Propositional_logic>) - interesting for learning various languages that can be used in formal verification and proof assistants
user10 6 months ago next
These websites are perfect for beginners. Thank you for sharing!
user13 6 months ago prev next
Someone mentioned Lean earlier, which I also highly recommend for a supportive community and user-friendly interface. The new Learn Lean course (<https://learn.leanprover.com/>) is an excellent way to start formal verification from a beginner's perspective.
user14 6 months ago prev next
If you're interested in hardware verification, you could check out Formal Verification Methods (<https://www.elsevier.com/books/formal-verification-methods/jones/978-0-12-819158-5>). It's a bit pricey, but the chapters are available for free on ResearchGate.
user15 6 months ago next
Thanks for pointing this out! I've often wondered how formal verification works with FPGAs and such.
user16 6 months ago prev next
Online courses on formal verification are rare, but there is one as a part of the Saarland University's M.Sc. program in Computer Science: <https://www.ferve-online.com/>. It's available for free and includes an introduction to Coq and Isabelle as well as a module on model checking.
user17 6 months ago next
This looks like an extraordinarily thorough and valuable resource. I'm excited to dive in!
user18 6 months ago prev next
Depending on your mathematical background, these two resources might be slightly above beginner level: 1. A Course in Formal Semantics (<https://mitpress.mit.edu/books/course-formal-semantics>) 2. A Mathematical Introduction to Logic (<https://www.cambridge.org/core/books/mathematical-introduction-to-logic/7E40854125D29E8D3817D3E44F55CA19)
user19 6 months ago next
These resources seem to be on the advanced side, great for someone diving deep into the subject!
user20 6 months ago prev next
I recently came across this resource: A Friendly Introduction to Mathematical Logic (<https://www.logicmatters.net/ifl/)) which looks promising for beginners as well.