lean4
lean4 copied to clipboard
Lean 4 programming language and theorem prover
Consider the MWE: ```lean def fails : MetaM Unit := do let mut val : Bool ← do pure true -- unknown identifier val val := Bool.not val -- FAILS!...
This is a follow-up to https://github.com/leanprover/lean4/pull/5609, where we add lemmas characterizing `smtUDiv` and `smtSDiv`'s behavior when the denominator is zero. We build some `slt` theory, connecting it to `msb` for...
This PR adds a logic of stateful predicates SPred to Std.Do in order to support reasoning about monadic programs. It comes with a dedicated proof mode the tactics of which...
The branch on which I try migrating the old ranges to the new ones.
This PR replaces all usages of `[:]` slice notation in `src` with the new `[...]` notation.
This PR introduces polymorphic slices in their most basic form. They come with a notation similar to the new range notation. `Subarray` is now also a slice and can produce...
This PR improves the error messages produced by invalid projections and field notation. It also adds a hint to the "function expected" error message noting the argument to which the...