Commit graph

24104 commits

Author SHA1 Message Date
Leonardo de Moura
5e877b115b feat: improve calc tactic
> Heather suggested changing the calc tactic (not the term) such that if
the final RHS does not defeq match the goal RHS, it returns a final
inequality as a subgoal.

Closes #1342
2022-07-24 14:30:15 -07:00
Leonardo de Moura
fd0581f485 refactor: add Elab/Calc.lean 2022-07-24 13:30:05 -07:00
Leonardo de Moura
c46ef56ac7 perf: avoid blowup at deriving Repr
The fix is not perfect. I just avoided inlining in some builtin `Repr` instances.
The actual problem is at `ElimDeadBranches.lean`.

Closes #1365
2022-07-24 13:10:04 -07:00
Leonardo de Moura
5253cc6742 fix: compiler support for FloatArray.casesOn and ByteArray.casesOn
closes #1311
2022-07-24 12:36:08 -07:00
Leonardo de Moura
7829be9d54 fix: fixes #1333 2022-07-24 12:19:53 -07:00
Leonardo de Moura
2196a3518e perf: improve lazy_delta_reduction_step heuristic
It addresses a performance issue reported at
https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/performance.20of.20equality.20with.20projections.2Fmutual/near/288083209
2022-07-24 11:48:45 -07:00
Sebastian Ullrich
a941b1b859 chore: one more unused import 2022-07-24 18:24:25 +02:00
Leonardo de Moura
22d37af5c9 feat: improve calc syntax
See #1342
2022-07-24 08:32:20 -07:00
Leonardo de Moura
6cff1f1813 fix: try to postpone by .. if expectedType? = none
Reason: it may become `some ..` later. See issue #1359

Closes #1359
2022-07-24 08:03:25 -07:00
Leonardo de Moura
28fc2f9d37 fix: improve "{varName} cannot be reassigned" error message
closes #1341
2022-07-24 07:44:34 -07:00
Leonardo de Moura
ad5ee05a03 chore: consistent use of backticks in error messages at Do.lean 2022-07-24 07:42:04 -07:00
Leonardo de Moura
8de798c4a6 feat: reject [macroInline] declarations in recursive declarations
closes #1363
2022-07-24 07:26:35 -07:00
Sebastian Ullrich
6a767a66a1 perf: reduce Lean.Parser.Basic imports 2022-07-23 23:01:52 +02:00
Sebastian Ullrich
5160cb7b0f refactor: remove some unnecessary antiquotation kind annotations 2022-07-23 17:09:32 +02:00
Sebastian Ullrich
cf380956a3 fix: regression from previous commit 2022-07-23 17:09:32 +02:00
Sebastian Ullrich
b1a9c58d43 feat: relax eager antiquotation parsing 2022-07-23 17:09:32 +02:00
Mario Carneiro
f6211b1a74
chore: convert doc/mod comments from /- to /--//-! (#1354) 2022-07-22 12:05:31 -07:00
Sebastian Ullrich
40c1bde7f1 feat: trace for backtracked tactic exceptions 2022-07-22 11:49:50 -07:00
Sebastian Ullrich
5e9ca825d1 refactor: simplify evalTactic backtracking 2022-07-22 11:49:50 -07:00
Leonardo de Moura
8f4ad15a47 fix: ensure messages associated with last exception are not lost at evalTactic
closes #1358
2022-07-22 12:05:29 -04:00
Sebastian Ullrich
1f081ee6cb feat: doc comment support for unif_hint 2022-07-22 14:30:49 +02:00
Sebastian Ullrich
8e07e80f72 feat: docComment parser alias 2022-07-22 14:30:49 +02:00
Sebastian Ullrich
a10a5335ba fix: do not highlight module docstrings
Fixes #1353
2022-07-22 13:47:47 +02:00
Gabriel Ebner
4d5515ab0c fix: do not use native_decide 2022-07-22 13:06:04 +02:00
Mario Carneiro
f36f94a0e3 fix: malformed/misaligned markdown code fences (part 2) 2022-07-22 13:03:02 +02:00
Sebastian Ullrich
5d187b8beb fix: register tokens in parser quotation 2022-07-21 23:49:57 +02:00
Sebastian Ullrich
563d42f6d6 fix: make foApprox mdata-invariant 2022-07-21 14:05:47 -07:00
Andrés Goens
b36b50adb2
feat: syntax for using while condition in proofs 2022-07-21 16:57:35 +00:00
tydeu
bd7739d02e chore: add sanity check for SemanticTokenType/Modifier.names 2022-07-21 18:36:52 +02:00
Henrik Böving
8932878274 feat: Functor instance for List 2022-07-21 08:08:48 -07:00
E.W.Ayers
5dda654766 feat: make elabSimpArgs public
This is used in two places in mathlib4.
2022-07-21 05:37:56 -07:00
Leonardo de Moura
b581c2fa17 fix: evalTactic
Another bug reported by Patrick.
2022-07-20 19:12:53 -04:00
Scott Morrison
aeeaaa6efc feat: size of a LocalContext 2022-07-20 15:31:10 -07:00
E.W.Ayers
b9c0fd2ab3 doc: fix AppBuilder docs 2022-07-20 15:30:30 -07:00
E.W.Ayers
caa2d9d80f doc: AppBuilder.lean 2022-07-20 15:30:30 -07:00
E.W.Ayers
14156f5e6a doc: fix assignExprMVar 2022-07-20 15:30:30 -07:00
Ed Ayers
0bfee4fe1f doc: apply suggestions from code review
Co-authored-by: Gabriel Ebner <gebner@gebner.org>
2022-07-20 15:30:30 -07:00
E.W.Ayers
64dec36ae3 doc: various docstrings 2022-07-20 15:30:30 -07:00
E.W.Ayers
8fe76ba9f4 doc: prelude Nat, Fin, USize 2022-07-20 15:30:30 -07:00
Sebastian Ullrich
c43a84ca30 fix: unsafe initialize 2022-07-20 22:37:01 +02:00
Sebastian Ullrich
15bb3ccf6b chore: reduce TSyntax.Compat scope in Elab.Declaration 2022-07-20 22:12:20 +02:00
Sebastian Ullrich
cdb855d281 feat: support all sensible modifiers on (builtin_)initialize
Resolves #1324
2022-07-20 22:12:20 +02:00
Mario Carneiro
a2ef6bd19e fix: malformed/misaligned markdown code fences 2022-07-20 11:12:42 +02:00
Leonardo de Moura
3846dd60fd fix: evalTactic
This commit fixes bug reported by Patrick Massot.
It happened when using `macro_rules` and `elab_rules` for the same
`SyntaxNodeKind`.

It also fixes missing error messages when there is more than one
elaboration functions and there is `abortTactic` exception.

Remark: this commit also changes the evaluation order. Macros are
now tried before elaboration rules. The motivation is that macros are
already applied before elaboration functions in the term elaborator.
2022-07-19 23:28:14 -04:00
Leonardo de Moura
6558f56c29 fix: rename tactic 2022-07-19 23:28:14 -04:00
Leonardo de Moura
013b9e14f7 chore: fix typo 2022-07-19 23:28:14 -04:00
Gabriel Ebner
f2e7cbfbaf chore: use inaccessible name for RpcEncodingPacket 2022-07-19 22:55:42 +02:00
Gabriel Ebner
4ce56f7c05 fix: use field names if specified 2022-07-19 22:55:42 +02:00
Gabriel Ebner
59f528e678 fix: support empty inductives in json derive 2022-07-19 22:55:42 +02:00
Gabriel Ebner
2c0f8fac99 feat: support unused params in RpcEncoding deriver 2022-07-19 22:55:42 +02:00