https://github.com/viperproject/gobra-libs
Standard library for the Gobra verifier for Go. Contains definitions and lemmas useful for verifying large projects.
https://github.com/viperproject/gobra-libs
Last synced: about 1 year ago
JSON representation
Standard library for the Gobra verifier for Go. Contains definitions and lemmas useful for verifying large projects.
- Host: GitHub
- URL: https://github.com/viperproject/gobra-libs
- Owner: viperproject
- License: mit
- Created: 2023-09-21T11:27:20.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-18T20:56:57.000Z (over 1 year ago)
- Last Synced: 2025-04-01T19:48:39.323Z (about 1 year ago)
- Language: Python
- Size: 1.77 MB
- Stars: 2
- Watchers: 2
- Forks: 2
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gobra-libs
This project contains definitions and lemmas that are generally useful to any verification project using Gobra.
Currently, the project contains packages to reason about sets (`sets`), sequences (`seqs`), maps in Go (`gomaps`), and mathematical maps (`dicts`), but we hope to gradually increase its functionality.
We draw inspiration from multiple sources, including [dafny-lang/libraries](https://github.com/dafny-lang/libraries), [vstd](https://github.com/verus-lang/verus/tree/main/source/vstd), and the [Why3 standard library](https://www.why3.org/stdlib/). Furthermore, this library builds on top of utility packages originally developed for diverse verification projects, e.g., [VerifiedSCION](https://github.com/viperproject/VerifiedSCION) and [viperproject/program-proofs-gobra](https://github.com/viperproject/program-proofs-gobra).
This project was originally developed as a Practical Work project by Daniel Nezamabadi at ETH Zurich. You can find more details about it [in the report](https://ethz.ch/content/dam/ethz/special-interest/infk/chair-program-method/pm/documents/Education/Theses/Daniel_Nezamabadi_PW_Report.pdf).
## Contributing
The goal of this project is to make it easy to maintain and re-use common definitions across different verification projects that use Gobra. If you find yourself re-using definitions between projects, or if you develop libraries that might benefit others, please consider contributing.