What is the difference between lean, f * and dafny?

Are they from Microsoft and look like they’re proof helpers? Besides syntactic differences, are there practical aspects that make them different from each other (for example, the ability to do automation, expressive power, etc.)? I am new to official verification.

Edit: I'm not asking which one is better, I'm just interested in a technical comparison of the various functions offered by these tools. I'm looking for something like this

+4
source share
1 answer

Each tool has a unique design and is built and depends on different people with different goals and philosophies, but the authors are all friends and have been sitting in several offices of each other for several years.

Rustan Leino developed Dafny as the successor to many of the systems he built before including ESC Java and SpeC #.

Dafny Java #, , , , , .. . - , . Dafny , , Boogie , , , , SMT, Z3 CVC4, .

Dafny - - . .

F * , , ML, , Dafny, - , Dafny, Lean, LiquidHaskell ..

F * SMT, Dafny, , Boogie. F * , Lean.

F * , Dafny , - Dijkstra Monads "" , - . DM , , Pure , , .

Lean- Coq , Lean - -, (SMT) . . Lean SMT Lean.

F * Lean , .

, .

: Lean, F *, Dafny, MSR ~ 7 .

+6
source

Source: https://habr.com/ru/post/1684936/


All Articles