Gabriel Ebner
7f51628986
fix: simp: strip mdata when testing for True/False
...
Fixes #2173
2023-04-10 21:06:42 -07:00
Scott Morrison
06c752448b
chore: add missing simp lemma (¬ False) = True
2023-04-10 21:05:54 -07:00
Gabriel Ebner
8075d1f45d
fix: reset local context in mkInjectiveTheorems
2023-04-10 21:05:16 -07:00
Gabriel Ebner
4544443d98
feat: reorder tc subgoals according to out-params
2023-04-10 13:00:04 -07:00
Sebastian Ullrich
4cc6057f4a
chore: ensure consistent (Unix) encoding for source files
2023-03-10 16:27:56 +01:00
Sebastian Ullrich
51e77d152c
fix: do not inherit file handles across process creation
2023-03-10 16:27:56 +01:00
Adrien Champion
473486eeb9
fix: calc indentation and allow underscore in first relation
2023-02-23 14:20:21 -08:00
Gabriel Ebner
7992ce6b4d
chore: add test for calc
2023-02-21 16:41:46 -08:00
Gabriel Ebner
adcca17991
chore: add option to enable structure eta in tc search
2023-02-21 16:41:30 -08:00
Gabriel Ebner
75252d2b85
perf: whnf projections during defeq
2023-02-09 19:54:23 -08:00
Gabriel Ebner
448f49ee91
Revert "fix: reenable structure eta during tc search"
...
The fix is blocked by slow defeq checks for TC instances; see issues
1986 and 2055. Enabling it right now causes lots of timeouts in
mathlib4.
https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/bump.20to.202023-02-06/near/326223768
This reverts commit 15a045ee66 .
2023-02-09 11:37:30 -08:00
Gabriel Ebner
3c562c1a9b
fix: unify goal before executing nested tactics in calc
...
Fixes #2095
2023-02-09 11:34:07 -08:00
Gabriel Ebner
15a045ee66
fix: reenable structure eta during tc search
...
Fixes #2074 .
2023-02-05 11:41:00 -08:00
Gabriel Ebner
d4b9a532d2
fix: calc: synthesize default instances
...
This is necessary to figure out the types with exponentiations.
Fixes #2079
2023-02-02 14:29:21 -08:00
James Gallicchio
65db25bf49
feat: funext no arg tactic ( #2027 )
...
* feat: `funext` no arg tactic
Description of funext tactic includes behavior that is not implemented. This implements the behavior.
* fix
* feat: test new funext tactic
* use repeat for clarity of intent
2023-01-15 08:53:49 -08:00
Eric Wieser
8cd9ce0684
refactor: redefine Nat.mod such that rfl : 0 % n = 0
...
This property was true in Lean 3, and it was very convenient for working with `Fin n`.
2023-01-11 09:49:58 -08:00
James Gallicchio
37650f9147
fix: add done alternative to decreasing_with ( #2019 )
...
Previously `decreasing_with` failed if `simp_wf` closes the goal on its
own. This can cause undesired regressions when new `simp` lemmas are
introduced.
Closes #2018 .
2023-01-09 09:46:37 -08:00
Leonardo de Moura
474f1a4d39
feat: try to unify show type and expected type
...
The goal is to address the regression
```
example : (0 : Nat) + 0 = 0 :=
show 0 + 0 = 0 from rfl
```
introduced by fedf235cba
Note that we should only *try to* unify the types. Otherwise, we would
produce another regression.
```
example : Int :=
show Nat from 0
```
cc @kha
2023-01-06 08:48:48 -08:00
Leonardo de Moura
fedf235cba
fix: fixes #2011
...
In Lean 4, we have support for typing constraints of the form
```
(?m ...).1 =?= v
```
where the type of `?m ...` is a structure with a single field.
This kind of constraint is reduced to `?m ... =?= ⟨v⟩`
This feature is implemented by the function `isDefEqSingleton`.
As far as I remember, Lean 3 does not implement this feature.
This commit disables this feature if the structure is a class.
The goal is to avoid the generation of counterintuitive instances by
typing inference.
For example, in the example at issue #2011 , the following weird
instance was being generated for `Zero (f x)`
```
(@Zero.mk (f x✝) ((@instZero I (fun i => f i) fun i => inst✝¹ i).1 x✝)
```
where `inst✝¹` is the local instance `[∀ i, Zero (f i)]`
Note that this instance is definitinally equal to the expected nicer
instance `inst✝¹ x✝`.
However, the nasty instance trigger nasty unification higher order
constraints later.
Note that a few tests broke because different error messages were
produced. The new error messages seem better. I do not expect this
change to affect Mathlib4 since Lean 3 does not have this feature.
2023-01-05 17:33:45 -08:00
Leonardo de Moura
770815be9b
test: for issue #1937
2023-01-05 13:46:15 -08:00
Leonardo de Moura
9a236e70dc
fix: fixes #2009
2023-01-04 10:32:03 -08:00
Gabriel Ebner
70a6c06eef
fix: erase *dependent* local instances
2023-01-03 11:39:46 -08:00
Gabriel Ebner
d19033e443
fix: correctly parse json unicode escapes
2022-12-23 17:04:10 -08:00
Gabriel Ebner
430d7d05d6
feat: add derive handler for Nonempty
2022-12-22 03:48:15 +01:00
Gabriel Ebner
572ffe77e3
fix: implement assertAfter using revert
2022-12-21 21:42:07 +01:00
Sebastian Ullrich
96ccf192e8
fix: parenthesize by optParam values
2022-12-20 18:10:39 +01:00
Gabriel Ebner
e386d5941e
refactor: replace ignoreLevelMVarDepth by levelAssignDepth
2022-12-19 20:14:17 +01:00
Gabriel Ebner
1c8ef51124
fix: make List.toString tail-recursive
2022-12-12 22:58:21 +01:00
Leonardo de Moura
8a573b5d87
fix: fixes #1900
2022-12-02 10:04:01 -08:00
Leonardo de Moura
50fc4a6ad8
fix: fixes #1907
2022-12-02 08:59:16 -08:00
Gabriel Ebner
b0cadbc1fa
fix: support escaped field names in deriving FromJson/ToJson
2022-12-02 03:48:19 +01:00
Gabriel Ebner
3d1571896c
fix: support escaped field names in dot-notation
2022-12-02 03:48:19 +01:00
Leonardo de Moura
ffb0f42aae
fix: fixes #1901
2022-12-01 08:39:06 -08:00
Leonardo de Moura
0dda3a8c02
fix: include instance implicits that depend on outParams at outParamsPos
...
This fixes the fix for #1852
2022-12-01 06:11:48 -08:00
Leonardo de Moura
5a151ca64c
chore: fix tests
2022-11-30 17:52:37 -08:00
Leonardo de Moura
3e45060dd5
fix: disable implicit lambdas for local variables without type information
...
Problem reported at https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/why.20doesn't.20this.20unify.3F/near/312806870
2022-11-29 14:33:16 -08:00
Gabriel Ebner
bdbab653fd
fix: synthesize tc instances before propagating expected type
2022-11-29 08:16:09 -08:00
Leonardo de Moura
c510d16ef5
fix: fixes #1808
2022-11-28 07:48:54 -08:00
Leonardo de Moura
36cc7c23b6
fix: fixes #1886
2022-11-28 06:50:44 -08:00
Sebastian Ullrich
42a080fae2
fix: comments ending in --/
...
Fixes #1883
2022-11-25 10:32:49 +01:00
Leonardo de Moura
c53c5b5e16
fix: fixes #1882
...
Better support for `intro <type-ascription>`.
It was treating it as a pattern before this commit.
2022-11-24 12:40:25 -08:00
Leonardo de Moura
9d8b324f8d
fix: fixes #1869
...
Better support for simplifying class projections.
2022-11-24 11:56:36 -08:00
Leonardo de Moura
0694731af8
fix: fixes #1870
2022-11-23 05:49:19 -08:00
Leonardo de Moura
51a29098ab
fix: fixes #1852
2022-11-19 09:37:52 -08:00
Leonardo de Moura
22e96c71e9
fix: fixes #1850
2022-11-19 09:18:12 -08:00
Leonardo de Moura
a5ab59a413
fix: fixes #1851
2022-11-19 07:01:02 -08:00
Leonardo de Moura
a7107aedb3
fix: fixes #1848
2022-11-18 08:49:10 -08:00
Mario Carneiro
f74fee07e6
doc: document Init.Data.List.Basic ( #1828 )
...
* doc: document Init.Data.List.Basic
* Apply suggestions from code review
Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch>
Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch>
2022-11-18 06:16:50 -08:00
Leonardo de Moura
d2a5ea137d
fix: fixes #1842
2022-11-16 17:29:41 -08:00
Leonardo de Moura
edadd8c034
fix: fixes #1841
...
This commit adds the configuration option
`ApplyConfig.approx` (available in Lean 3), and sets it to true by
default like in Lean 3.
2022-11-16 14:46:05 -08:00