Commit graph

33954 commits

Author SHA1 Message Date
Leonardo de Moura
4a0ae8326c feat: compute the fixed prefix size for mutually recursive definitions 2022-02-17 14:12:05 -08:00
Leonardo de Moura
3f0be7901e chore: update stage0 2022-02-17 10:52:34 -08:00
Leonardo de Moura
dedb6ee01b fix: skip value if type is computationally irrelevant 2022-02-17 10:41:16 -08:00
Leonardo de Moura
ba0904060b chore: missing trace_pp_expr 2022-02-17 10:40:21 -08:00
Leonardo de Moura
4ed5c8405b feat: improve IR checker error messages 2022-02-17 09:51:05 -08:00
Leonardo de Moura
6b1297fe85 chore: update stage0 2022-02-16 13:52:28 -08:00
Xubai Wang
ca521e1188 feat: add position to mod doc 2022-02-16 13:50:19 -08:00
Leonardo de Moura
373a64ee09 test: for isNoncomputable 2022-02-16 13:37:49 -08:00
Leonardo de Moura
9d6c26a4a6 chore: update stage0 2022-02-16 13:33:33 -08:00
Leonardo de Moura
e1d9dc4b38 feat: store noncomputable declarations 2022-02-16 13:33:02 -08:00
Leonardo de Moura
31e90c8f65 chore: update stage0 2022-02-16 13:22:44 -08:00
Leonardo de Moura
4ba1e0ad4b feat: add isNoncomputable function for querying whether a given declaration has been marked as "noncomputable" by users 2022-02-16 13:20:31 -08:00
Leonardo de Moura
ad5099ec3c fix: mkLetRecClosureFor for nested let-recs
closes #1020
2022-02-16 12:44:02 -08:00
Leonardo de Moura
86328bcb9f feat: tail recursive List.iota and [csimp] theorem 2022-02-16 11:25:46 -08:00
Sebastian Ullrich
65d00098c7 chore: fix List.get use (leanprover/lake#56) 2022-02-16 13:21:33 -05:00
Leonardo de Moura
d46d246cd9 fix: documentation 2022-02-15 16:19:35 -08:00
Leonardo de Moura
80bb1454c5 doc: add example to RELEASES.md 2022-02-15 16:09:36 -08:00
Leonardo de Moura
3f4d8f370a fix: backtrack InfoTree when backtracking at the discriminant refinement method
This commit addresses issue described at https://github.com/leanprover/lean4/issues/1018#issuecomment-1040597212

closes #1018
2022-02-15 16:01:09 -08:00
Leonardo de Moura
fd9165415e feat: try to preserve variable names during discriminant refinement
This fixes second issue at #1018
2022-02-15 15:54:03 -08:00
Leonardo de Moura
56cdacfc28 feat: allow synthetic holes to be used as patterns
They are useful for getting meaningful pattern variable names when the hole
is not an inaccessible pattern. See new test.

We are going to use this feature to address issue 2 at #1018.
2022-02-15 15:34:14 -08:00
Leonardo de Moura
da1a327d13 chore: remove old comment 2022-02-15 15:01:26 -08:00
Leonardo de Moura
1f230c336b chore: style 2022-02-15 13:32:48 -08:00
Leonardo de Moura
045527daac chore: update stage0 2022-02-15 12:23:11 -08:00
Leonardo de Moura
2435119e6a chore: update stage0 2022-02-15 12:20:34 -08:00
Leonardo de Moura
993ec54db6 chore: avoid hack that may introduce unnecessary dependencies 2022-02-15 12:17:40 -08:00
Leonardo de Moura
e07823bb12 chore: remove unnecessary partial
TODO: we should generate an error/warning when `partial` is not necessary
2022-02-15 12:16:49 -08:00
Leonardo de Moura
a2613a36a4 fix: incorrect dependencies due to assigned variables 2022-02-15 12:15:45 -08:00
Leonardo de Moura
bd89bdde8a fix: core library
see #1018
2022-02-15 12:12:56 -08:00
Leonardo de Moura
df584567f5 feat: (generalizing := true) is the default behavior for match-expressions
closes #1018
2022-02-15 11:12:04 -08:00
Sebastian Ullrich
e9ee9204c4 chore: update Lake 2022-02-15 19:19:19 +01:00
Sebastian Ullrich
54522006f4 refactor: List.get: take Fin to align with Array.get
/cc @leodemoura
2022-02-15 18:41:22 +01:00
Leonardo de Moura
d1e5e4166a feat: use sorry instead of trying to synthesize Inhabited at error recovery 2022-02-15 09:15:18 -08:00
Leonardo de Moura
f75fdcb19b feat: when Lean cannot prove termination, then report error and add definition as partial, and if it fails add as axiom 2022-02-15 07:44:27 -08:00
Sebastian Ullrich
4b03666ecc chore: include orphan file 2022-02-15 09:44:19 +01:00
Leonardo de Moura
f33cb27d1c doc: update RELEASES.md 2022-02-14 15:58:58 -08:00
Leonardo de Moura
66e0b72c6f test: notation for providing names to equality proofs in match expressions is not whitespace sensitivity anymore 2022-02-14 15:51:23 -08:00
Leonardo de Moura
409530306c chore: update stage0 2022-02-14 15:48:11 -08:00
Leonardo de Moura
764a1d9f51 chore: fix tests 2022-02-14 15:47:12 -08:00
Leonardo de Moura
c67ee9fdf4 feat: add pp annotation for match parser 2022-02-14 15:46:52 -08:00
Leonardo de Moura
ffca6975f2 chore: remove bootstrapping workarounds 2022-02-14 15:39:21 -08:00
Leonardo de Moura
42c80c7483 feat: remove whitespace sensitivity at match discriminants 2022-02-14 15:37:40 -08:00
Leonardo de Moura
2a2ad75faa chore: update stage0 2022-02-14 15:37:01 -08:00
Leonardo de Moura
93b5b74b36 feat: modify notation for providing motive in "match" expressions 2022-02-14 15:36:14 -08:00
Leonardo de Moura
0030208d99 chore: prepare to change builtin syntax 2022-02-14 14:17:24 -08:00
Leonardo de Moura
a0fb412989 chore: update stage0
Make sure previous fix is also applied to enumeration types in the
core library.
2022-02-14 12:06:42 -08:00
Leonardo de Moura
07043e73b0 chore: fix tests 2022-02-14 12:06:03 -08:00
Leonardo de Moura
aa63fda835 fix: mark auxiliary noConfusion declarations for enumeration types as [reducible]
closes #1016
2022-02-14 12:03:49 -08:00
Leonardo de Moura
ee9fcd30e8 fix: mark Nat.decEq as [reducible]
It is used by the `noConfusionType` construction for enumeration types,
and we want it to reduce even when the reducibility setting is
`TransparencyMode.reducible` as for other inductive types.

see issue #1016
2022-02-14 12:00:29 -08:00
Leonardo de Moura
93d5351fba feat: display reducibility status at #print 2022-02-14 11:52:41 -08:00
Leonardo de Moura
420d0f2a3f fix: make sure noConfusionTypeEnum and noConfusionEnum fully reduce even reducibility setting is set to TransparencyMode.reducible
The previous definition would not fully reduce since `ite` and `dite`
are not tagged as `[reducible]`.

see issue #1016
2022-02-14 11:39:18 -08:00