https://github.com/lamg/wybe
Wybe proof checker and language definition
https://github.com/lamg/wybe
fsharp logic theorem-proving
Last synced: 3 months ago
JSON representation
Wybe proof checker and language definition
- Host: GitHub
- URL: https://github.com/lamg/wybe
- Owner: lamg
- Created: 2024-05-10T14:35:17.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-09-07T17:50:52.000Z (almost 2 years ago)
- Last Synced: 2024-09-30T06:22:11.627Z (over 1 year ago)
- Topics: fsharp, logic, theorem-proving
- Language: F#
- Homepage:
- Size: 246 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
- midnight-awesome-dapps - Wybe - A minimal and expressive contract language for Midnight (Starter Templates)
README

[![NuGet Version][NuGet Version Shield]][Wybe NuGet]
[![NuGet Downloads][NuGet Downloads Shield]][Wybe NuGet]
[![Tests][Wybe Tests Shield]][GitHub Actions]
A formal verification tool with the following features:
- DSL for writting proofs supported by F#'s computation expressions
- [Z3][Z3] as inference engine
- Extraction of proof obligations from several languages
- Cross-language proofs: semantics can be extracted from different languages and combined to prove theorems about the whole project
## Features and progress
- [ ] Check proofs written in a syntax inspired by [Dijkstra's predicate calculus][EWD1300]
- [ ] [A Logical Approach to Discrete Math][LADM]
- [x] Prove properties with booleans, integers, sequences and functions [GriesSchneider.fs](./Prover/GriesSchneider.fs)
- [ ] [Relational calculus](./documents/calc_collection.pdf)
- [ ] Extract proof obligations from
- [ ] Rust
- [ ] F#
- [ ] Golang
- [ ] [Compact][Compact Docs]
- [Compact modules](./Prover/LanguageServices/Compact/)
- [Compact demo](./Test/CompactTest.fs)
- [ ] [Wybe](./Prover/LanguageServices/Wybe/README.md), a language inspired by Dijkstra's [Guarded Command Language][GCL]
## Installation instructions
- Install the [dotnet 10](https://dotnet.microsoft.com/en-us/download) CLI
- Clone this repository locally
## Example proof

[EWD1300]: https://www.cs.utexas.edu/users/EWD/transcriptions/EWD13xx/EWD1300.html
[LADM]: https://books.google.de/books/about/A_Logical_Approach_to_Discrete_Math.html?id=ZWTDQ6H6gsUC
[Z3]: https://github.com/Z3Prover/z3
[Wybe NuGet]: https://www.nuget.org/packages/Wybe
[GitHub Actions]: https://github.com/lamg/wybe/actions
[NuGet Version Shield]: https://img.shields.io/nuget/v/Wybe?style=flat-square
[NuGet Downloads Shield]: https://img.shields.io/nuget/dt/Wybe?style=flat-square
[Wybe Tests Shield]: https://img.shields.io/github/actions/workflow/status/lamg/wybe/test.yml?style=flat-square&label=tests
[Compact Docs]: https://docs.midnight.network/develop/reference/compact
[GCL]: https://en.wikipedia.org/wiki/Guarded_Command_Language