Skip to content

Latest commit

 

History

History

Arithmetic

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Overview

Non-linear math is generally undecidable; hence Dafny (and Z3) rely on heuristics to prove such properties. While wonderful when they work, these heuristics can lead to brittle proofs. Hence, in many projects, it can be helpful to turn off these heuristics (via Dafny's --disable-nonlinear-arithmetic flag) and instead explicitly invoke the lemmas in this library. All files in this portion of the library (except those in Internals/*Nonlinear.dfy) verify with the said flag, which should keep the library itself stable.

At a high level, each module contains the algebraic properties of a particular non-linear operation as lemmas either with explicit arguments or as quantified statements (marked *Auto).

In general, it shouldn't be necessary to directly reference anything in Internals.