lean4
lean4 copied to clipboard
Lean 4 programming language and theorem prover
This resolves the diamond between `Decidable` and `BEq`, which is starting to cause lots of headaches in mathlib.
This adds two features to `#eval` that I've wanted for a long time. - Interactive expressions and traces. - Doesn't refuse to evaluate terms that have missing `Repr`/etc. instances. `#eval...
This adds: * a module doc for `Lean.Elab.StructInst`, which gives an overview of how the code for structure instance elaboration works * docstrings for each definition in `Lean.Elab.StructInst` Note: I'm...
Now that the [naming convention](https://github.com/leanprover-community/mathlib4/wiki#naming-convention) has been tested in mathlib, I think it is safe to backport the changes to lean core and normalize any remaining inconsistencies in theorem names....
This implements the TODO in the `show` tactic: `show e` will first try to change the goal to `e`, and if that doesn't work it will try to change one...
Before, the termination argument as inferred by `GuessLex` was passed further on as `Syntax`, to be elaborated later in `WF.Rel`. This didn’t feel quite right anymore. In particular if we...
Fixes #1170. This PR adds the module name to `RefIdent` in order to distinguish conflicting names from different files. This also fixes related issues in find-references or the call hierarchy...
This was suggested by Scott Morrison to be able to help projects adjust to `Nat` having built-in custom eliminators.