Leonardo de Moura
870de844dc
chore: annotate relevant monadic code with [alwaysInline]
...
TODO: after we delete old code generator, we should replace
`@[alwaysInline, inline]` with `@[alwaysInline]`.
Remainder: we want the old code generator to ignore `@[alwaysInline]`
annotations, in particular, the new ones on `instance` commands that
are actually annotations for the instance methods.
2022-10-12 19:48:02 -07:00
Gabriel Ebner
38d3e37c75
perf: improve Unhygienic.run code
2022-10-12 19:36:05 -07:00
Leonardo de Moura
767bda2c28
chore: preparing to change the semantics of @[inline] instance
...
In the new code generator, we are going to lambda lift the instance
methods before saving the code at the end of the base phase. The goal is to make instance
ligth weight and cheap to inline. The anotation `@[inline]` is going
to be an annotation for the lambda lifted methods.
2022-10-11 20:35:56 -07:00
Mario Carneiro
d4219c9d70
fix: List.Mem should have two parameters
2022-10-09 05:46:52 -07:00
Sebastian Ullrich
48d3bbdde9
fix: explicit drive letter normalization in FilePath <-> URI conversions
2022-10-08 10:12:11 -07:00
Sebastian Ullrich
8d34cc15cf
fix: path normalization should not case-normalize entire path
2022-10-08 10:12:11 -07:00
Leonardo de Moura
5b1aac7b8f
fix: avoid nontermination on non-utf8 input
...
This is not a perfect solution, but ensures the non-termination does
not happen. The changes also make it easier to prove termination in
the future.
TODO: validate UTF8 input?
closes #1690
2022-10-06 17:45:21 -07:00
Sebastian Ullrich
d417c0238a
doc: normalize Init.Conv docs
2022-10-06 17:27:33 -07:00
Leonardo de Moura
ee59048bfb
chore: remove dead declaration
...
We have merged `lcErased` and `lcAny` in the new code generator.
2022-10-05 05:17:31 -07:00
Leonardo de Moura
f63734cba4
chore: unexpanders for Name.mkStr* and Array.mkArray*
...
closes #1675
2022-10-04 17:18:36 -07:00
Leonardo de Moura
e9d5dfc689
chore: closes #1683
2022-10-04 16:46:08 -07:00
Leonardo de Moura
5746338c15
fix: mark Lean.Name.mkStr* functions as [reducible]
...
This is needed for type checking `TSyntax`.
2022-09-29 17:36:30 -07:00
Leonardo de Moura
676d2b1462
feat: new ToExpr Name
...
`Quote Name` was already using the optimized `Syntax.mkNameLit`
2022-09-29 17:27:45 -07:00
Leonardo de Moura
126da8185d
feat: more compact quotations
...
Trying to control the generated code size.
2022-09-29 16:56:43 -07:00
Sebastian Ullrich
9e6814b09e
doc: fix inline docs
2022-09-29 09:36:28 +02:00
Leonardo de Moura
5c925f9345
feat: add functions to create small arrays and use them in the constant folder
...
It reduces the code generated for functions using a bunch
of quotations. For example, the size of
`Lean.Elab.Term.Do.ToTerm.matchNestedTermResult` went from 2348 to 1507
2022-09-28 22:00:50 -07:00
Sebastian Ullrich
71e647049f
refactor: lexOrd should not be an instance
2022-09-28 15:57:01 -07:00
Sebastian Ullrich
d0a002ffff
fix: prefer longer parse even if unsuccessful
2022-09-28 15:57:01 -07:00
Mario Carneiro
2a748d3035
fix: conv case => should close the goal conv-style
2022-09-28 14:24:44 -07:00
Mario Carneiro
b8ed329a5d
feat: add dsimp conv <- mathlib4
...
Co-authored-by: Moritz Doll <doll@uni-bremen.de>
2022-09-28 14:24:44 -07:00
Mario Carneiro
a09934c693
feat: more conv goal structuring tactics
2022-09-28 14:24:44 -07:00
Mario Carneiro
d843e2a418
chore: add docs and test
2022-09-27 22:09:54 +02:00
Mario Carneiro
280d8c9c9b
feat: add (canonical := true) option in Syntax
2022-09-27 22:09:54 +02:00
Mario Carneiro
9b9998f5c8
feat: pattern (occs := ...) conv
2022-09-25 19:52:56 -07:00
Mario Carneiro
fa13d7321f
feat: generalize e = x at h
2022-09-25 06:42:20 -07:00
Mario Carneiro
97bcc7fd7c
feat: add ForM -> ForIn adapter
2022-09-25 06:40:56 -07:00
Mario Carneiro
7dc0e1aa7d
fix: tweak formatter spacing for tactics
2022-09-25 06:40:56 -07:00
Ed Ayers
2a6697e077
feat: goal-diffs ( #1610 )
2022-09-24 11:46:11 +02:00
Mario Carneiro
2ac687b22b
feat: if _ : cond then t else e syntax (part 2)
2022-09-22 11:01:08 -07:00
Mario Carneiro
b8cf796941
feat: if _ : cond then t else e syntax
2022-09-22 11:01:08 -07:00
Mario Carneiro
3f229d5437
fix: add colGt
2022-09-21 18:04:31 -07:00
Mario Carneiro
ef0736c303
feat: multiple delta (part 2)
2022-09-21 18:04:31 -07:00
Mario Carneiro
90353d7fd7
feat: multiple delta, delta conv, unfold
2022-09-21 18:04:31 -07:00
Mario Carneiro
b922483ebc
chore: remove getElem' delab
2022-09-21 06:21:00 -07:00
Mario Carneiro
2aa882a416
chore: remove getElem', use custom delab
2022-09-21 06:21:00 -07:00
Mario Carneiro
553be10b90
fix: getElem' should be an abbrev
2022-09-21 06:21:00 -07:00
Mario Carneiro
3e83e28e8f
feat: injections with names
2022-09-20 17:36:35 -07:00
Mario Carneiro
a74892a36b
feat: multiple case
2022-09-20 14:15:37 -07:00
Mario Carneiro
65a861da68
feat: multiple case (part 1)
2022-09-20 14:15:37 -07:00
Mario Carneiro
356db4e1df
fix: simplify termination_by clause
2022-09-19 13:49:20 -07:00
Mario Carneiro
bb23fc0c86
chore: extract termination lemma for reverse
2022-09-19 13:49:20 -07:00
Mario Carneiro
ed6a5bba88
chore: rename insertAt to insertAt!
2022-09-19 13:49:20 -07:00
Mario Carneiro
f8c6306469
feat: remove bounds checks in Array.{reverse, insertAt}
2022-09-19 13:49:20 -07:00
Mario Carneiro
61df1e5073
feat: expose that panic α = default
2022-09-19 08:59:08 -07:00
Gabriel Ebner
2b5c1e397a
feat: use sepBy1Indent for conv blocks
2022-09-18 16:43:23 -07:00
Gabriel Ebner
7356840cbc
feat: use sepBy1Indent for tactic blocks
2022-09-18 16:43:23 -07:00
E.W.Ayers
993115a937
feat: Kleisli operators
2022-09-16 05:49:56 -07:00
Leonardo de Moura
d3b0b49c43
feat: improve elabBinRelCore
...
See new test and comments at `elaBinRelCore`
2022-09-15 15:17:57 -07:00
Juan Pablo Romero
0742fd6fc3
docs: fix typo in SeqRight docstring
2022-09-14 10:17:15 -07:00
Gabriel Ebner
ed9b5bcb92
fix: make all syntax accessors non-panicking
2022-09-14 10:17:00 -07:00