←News detail

Lauren TanUpdated Oct 25 21:29

pstack v0.15.27 adds a formal verification skill

AI summary

pstack v0.15.27 releases a new skill, /create-formal-verification-skill, which is still in beta. This skill is a meta-skill that generates new skills and formal verification suites based on the feature the user wants to verify, for example modeling a concurrent state machine in TLA+, or using Rust's kani to check for undefined behavior. The author used it to model their own code in TLA+ and has already found several bugs.

Body

pstack v0.15.27 ships with a new skill /create-formal-verification-skill!

it's still in beta, and similar to /create-verification-skill, this is a meta-skill that creates a new skill and formal verification suite based on the characteristics you want to verify. for example, you may want to model state machines and systems with concurrency using TLA+, or use kani in rust to check for undefined behavior.

if you're new to formal verification, think of it as mathematically proving properties and invariants (something that must always be true) or "laws" of your system. usually, this means modeling your programs in a separate language like with TLA+ and then running the solver on that spec. newer approaches like with kani and @bendlang take a different approach where there is no separate language: you write kani in rust, and bend in bend (it's also a programming language, and the proofs are written as laws and expressed in its type system).

historically formal verification never reached mainstream status because of the difficulty in modeling and writing proofs. it's quite difficult to model your business requirements and keep them in sync! but i expect that we will see more innovation in formal verification in the future as being able to formally verifiy that the code does what you intended gives your agents superpowers in writing correct software.

in the meantime though, i've been experimenting with modeling our code with TLA+ and have already found several bugs with the skill created by /create-formal-verification-skill.

try it out and let me know how it goes!

Source

Lauren Tan