lean4
lean4 copied to clipboard
Lean 4 programming language and theorem prover
### Description If a nested inductive goes through a type that has an optional parameter, there is an "application type mismatch" failure from the `inductive` command. ### Steps to Reproduce...
This is a variant of #4827, mostly to improve my understanding. When replacing recursive calls by the corresponding induction hypothesis, it replaces the use of `IndPredBelow.backwardsChaining` with a non-recursive search...
`MVarId.apply` is clever in the order it returns mvars, by putting those arising from non-dependent arguments first. If we lean on that behavior, this fixes #1672. H'T to @DanielFabian, this...
when transforming the `match` statements in `IndPredBelow`, given a local variable `x : T`, we need to search for `hx : T.below x`. Previously this was done using the custom...
Fixes an issue where each alternative in choice nodes would get their own arguments. Now cdot function expansion is aware of choice nodes. Also modifies the variable naming so that...
This is "upstreaming" mathlib's `unfold_let` tactic by incorporating its functionality into `unfold`. Now `unfold` can, in addition to unfolding global definitions, unfold local definitions. An improvement to `unfold_let` is that...
### Description If ambiguous notation appears inside a cdot function, then the function can end up with more arguments than expected since `expandCDot?` collects cdots from each alternative in choice...
now that we support structural mutual recursion, I expect that every `DecidableEq` instance be implemented using structural recursion, so let's be explicit about it.
this improves support for structural recursion over inductive *predicates* when there are reflexive arguments. Consider ```lean inductive F: Prop where | base | step (fn: Nat → F) -- set_option...
### Prerequisites Please put an X between the brackets as you perform the following steps: * [x] Check that your issue is not already filed: https://github.com/leanprover/lean4/issues * [x] Test your...