Leonardo de Moura
cbd36e897b
chore: remove ToExpr Expr
2021-08-14 06:16:46 -07:00
Leonardo de Moura
d8340f55a5
doc: document new binop% elaborator
2021-08-13 20:10:30 -07:00
Leonardo de Moura
d52de3392b
chore: remove workaround
2021-08-13 19:35:47 -07:00
Leonardo de Moura
a15a36b8d3
chore: cleanup Subarray instances
2021-08-13 19:29:09 -07:00
Leonardo de Moura
ddec62f77b
feat: synthesize pending metavariables created before binop% too
...
Reason: some of the `binop%` arguments may be let-variables, and the
values assigned to the let-variables may be in the pending list.
2021-08-13 19:25:45 -07:00
Leonardo de Moura
2994747ed9
chore: remove workaround
2021-08-13 18:25:32 -07:00
Leonardo de Moura
4ee2f80d66
fix: improve binop% elaborator
2021-08-13 17:33:32 -07:00
Leonardo de Moura
4b58c4cc02
refactor: instances that "hide" coercions
...
Example:
```
instance [CoeHTCT α β] [Add β] : HAdd α β β where
hAdd a b := Add.add a b
```
2021-08-13 17:18:55 -07:00
Leonardo de Moura
ef46b0145b
chore: use binop% to define the notations >> and <|>
...
Motivation: we want to delete the instances
```
instance [CoeHTCT α β] [OrElse β] : HOrElse α β β where
hOrElse a b := OrElse.orElse a b
instance [CoeHTCT α β] [OrElse β] : HOrElse β α β where
hOrElse a b := OrElse.orElse a b
instance [CoeHTCT α β] [AndThen β] : HAndThen α β β where
hAndThen a b := AndThen.andThen a b
instance [CoeHTCT α β] [AndThen β] : HAndThen β α β where
hAndThen a b := AndThen.andThen a b
```
after we update stage0
2021-08-13 17:13:01 -07:00
Leonardo de Moura
b012050917
chore: remove some macros that use binop%
...
For example, given `i : Int` and `n : Nat`, we don't want to coerce `n`
into a `Int` in the term `i ^ n`.
2021-08-13 17:00:59 -07:00
Leonardo de Moura
3418eb7e1f
fix: check whether CoeHTCT has already been defined or not at hasCoe
2021-08-13 17:00:59 -07:00
Leonardo de Moura
be23709737
chore: use binop% to define ++ notation
2021-08-13 16:26:35 -07:00
Leonardo de Moura
d3d03df83c
feat: new elaborator for binop%
...
cc @gebner.
2021-08-13 15:44:59 -07:00
Leonardo de Moura
24fe2875c6
chore: change Pow class
...
Based on the suggestion at https://github.com/leanprover/lean4/issues/433
2021-08-12 13:59:55 -07:00
Sebastian Ullrich
16026e9edd
perf: restore monad instance specialization hack
2021-08-12 21:09:09 +02:00
Leonardo de Moura
a6b6d61b39
chore: simplify mkProjStx?
2021-08-12 09:50:43 -07:00
Leonardo de Moura
da03262937
fix: check redundant sources at structure instance notation
2021-08-12 09:16:30 -07:00
Sebastian Ullrich
917eb4d081
chore: collect stdlib compilation flags in new header
2021-08-12 07:51:50 -07:00
Sebastian Ullrich
9c15f94be3
perf: do not use parsers from the current stage inside quotations by default
2021-08-12 07:51:50 -07:00
Sebastian Ullrich
20accf5105
feat: revise macro parameter syntax
2021-08-12 07:48:42 -07:00
Sebastian Ullrich
6c220423ed
chore: adjust stx precedences
2021-08-12 07:48:42 -07:00
Leonardo de Moura
c68882ca67
feat: structure instance notation with multiple sources
...
closes #462
closes #463
2021-08-12 06:18:47 -07:00
Leonardo de Moura
a02a490a10
feat: add mkProjStx?
2021-08-12 05:41:00 -07:00
Leonardo de Moura
2dfde4637f
fix: index out of bounds
2021-08-12 05:39:19 -07:00
Leonardo de Moura
accf198a88
feat: add ExplicitSourceInfo
2021-08-12 04:29:19 -07:00
Leonardo de Moura
c591902547
refactor: add structure to Source.explicit
2021-08-12 04:10:47 -07:00
Leonardo de Moura
45e4dc26e1
refactor: simplify Source.explicit
2021-08-12 03:40:30 -07:00
Daniel Selsam
5952a857cd
feat: pp.analyze improve heuristics for fun binders
2021-08-12 09:37:57 +02:00
Daniel Selsam
638d0ca8ed
feat: pp.instances and pp.instanceTypes
2021-08-12 09:33:30 +02:00
Daniel Selsam
040141f137
feat: unexpander for Subtype
2021-08-12 09:32:33 +02:00
Leonardo de Moura
67103f54a9
chore: add TODOs for multiple sources
2021-08-11 19:28:49 -07:00
Leonardo de Moura
74bd537465
fix: generation of to* field names
2021-08-11 17:25:02 -07:00
Leonardo de Moura
d78101f00d
chore: remove mutual recursion workaround
...
It was a leftover hack for the old frontend.
2021-08-11 16:57:53 -07:00
Leonardo de Moura
4abbb3d74c
chore: cleanup
2021-08-11 16:05:07 -07:00
Leonardo de Moura
f1738ce2a0
feat: add macro for expanding field abbrev notation
...
The new macro allows us to use the field abbrev notation in patterns
too. See new test.
2021-08-11 16:02:50 -07:00
Leonardo de Moura
09c2b668e6
feat: allow multiple sources in the structure instance parser
...
This commit also fixes some macros, and make sure the elaborator still
works, but it does not support multiple sources yet.
2021-08-11 13:07:56 -07:00
Daniel Selsam
efb3f528a6
fix: handle MData-wrapped app fns consistently in delaborator
...
Fixes #625
2021-08-11 18:53:32 +02:00
Sebastian Ullrich
3b43ab47f1
fix: formatter: check for comment tokens
...
Fixes #624
2021-08-11 17:37:18 +02:00
Leonardo de Moura
d471f8df60
fix: fixes #621
2021-08-10 21:15:35 -07:00
Leonardo de Moura
39ce3044ec
feat: emit warning message when failed to copy default value
2021-08-10 20:56:20 -07:00
Leonardo de Moura
61b3e6bcb8
fix: reduce projections of expanded structures at copyDefaultValue?
2021-08-10 20:50:59 -07:00
Leonardo de Moura
63ad42ba47
refactor: move and generalize reduceProj?
2021-08-10 20:21:04 -07:00
Leonardo de Moura
0623bb3860
feat: update fieldMap with composite field
2021-08-10 20:04:41 -07:00
Leonardo de Moura
ae03f15c92
test: default value set at copied structure
2021-08-10 19:00:34 -07:00
Leonardo de Moura
3b1285bee8
feat: process overriden default values in copied parents
2021-08-10 18:55:12 -07:00
Leonardo de Moura
295cae8afd
feat: copy field default values
...
Only basic examples are working. We still have many TODOs
2021-08-10 16:53:10 -07:00
Leonardo de Moura
47b8fa15f1
fix: propagate visibility annotation
2021-08-10 15:34:07 -07:00
Leonardo de Moura
16ea00586d
fix: fixes #620
2021-08-10 15:06:06 -07:00
Leonardo de Moura
972f00b0ff
fix: pending metavariable issue
...
It fixes issue reported at https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/let.20overload
2021-08-10 14:52:53 -07:00
Leonardo de Moura
7cec20582b
feat: add instance Alternative (MonadCacheT α β m)
2021-08-10 14:28:04 -07:00