Skip to content
/ ticl Public
forked from vellvm/ctrees

Library for structural temporal logic proofs over coinductive, free monads with effects and choice.

License

Notifications You must be signed in to change notification settings

vellvm/ticl

 
 

Repository files navigation

Temporal Interaction and Choice Logic (TICL)

About

Mechanized verification of liveness properties for programs with effects, nondeterminism, and nontermination is difficult. Existing temporal reasoning frameworks operate on the level of models (traces, automata) not executable code, creating a verification gap and losing the benefits of modularity and composition enjoyed by structural program logics. Reasoning about infinite traces and automata requires complex (co-)inductive proof techniques and familiarity with proof assistant mechanics (e.g., guardedness checker). We propose a structural approach to the verification of temporal properties with a new temporal logic that we call ticl. Using ticl, we internalize complex (co-)inductive proof techniques to structural lemmas and reasoning about variants and invariants. We show that it is possible to perform mechanized proofs of general temporal properties, while working in a high-level of abstraction. We demonstrate the benefits of ticl by giving mechanized proofs of safety and liveness properties for programs with queues, secure memory, and distributed consensus.

Building

Dependencies are

Then use make in the root directory to build TICL and make install to install it.

Documentation

Use make doc in the root directory to build the documentation. The documentation is accessed by main.html in the root of the repository. The documentation is generated using coqdoc.

About

Library for structural temporal logic proofs over coinductive, free monads with effects and choice.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rocq Prover 99.8%
  • Other 0.2%