Leonardo de Moura
bbcd2247f2
feat: extend valid set of valid auto bound names
...
@Kha The motivation was Andrew's example :)
Users often use `u₁`, `u1`, `u₂`, ... to name universe variables.
2020-12-19 12:36:19 -08:00
Leonardo de Moura
68701b86e4
feat: add Repr Name
2020-12-18 14:32:49 -08:00
Leonardo de Moura
793ffa2f11
feat: add helper class ReprAtom
2020-12-18 14:14:46 -08:00
Leonardo de Moura
b6905f66d6
fix: missing files
2020-12-18 11:47:00 -08:00
Leonardo de Moura
92f0afa424
chore: fix tests
2020-12-18 11:21:30 -08:00
Leonardo de Moura
5f6e66a53f
refactor: Repr
...
Modifications:
- Result type is `Format`
- It takes the context precedence like Haskell `Show`
2020-12-18 11:21:30 -08:00
Leonardo de Moura
2e11c3bdff
feat: dependencies
2020-12-18 11:21:30 -08:00
Leonardo de Moura
40bfafdadb
refactor: dependencies
2020-12-18 11:21:30 -08:00
Leonardo de Moura
15335efae2
refactor: move Format to Init package
...
We are going to use it to define `Repr` class.
2020-12-18 11:21:30 -08:00
Leonardo de Moura
67bcff3bc8
chore: use deriving DecidableEq
2020-12-17 17:48:23 -08:00
Leonardo de Moura
dee3c2c8d8
feat: improve deriving DecidableEq
2020-12-17 17:30:23 -08:00
Leonardo de Moura
87b6385bea
feat: add deriving DecidableEq
2020-12-17 17:30:23 -08:00
Leonardo de Moura
a4901f131b
feat: mark propDecidable as a scoped instance
2020-12-16 10:45:49 -08:00
Leonardo de Moura
7c865e7bd9
feat: sort instances by priority
2020-12-16 10:45:27 -08:00
Leonardo de Moura
fe08b28c7c
feat: add Array.insertionSort
2020-12-16 10:45:27 -08:00
Sebastian Ullrich
29c2023410
fix: adapt to new matchAlt syntax
2020-12-16 18:52:56 +01:00
Leonardo de Moura
7b67cd2c4a
chore: fix priorities
2020-12-16 07:11:02 -08:00
Leonardo de Moura
5b588b5984
fix: defaultInstance priorities
2020-12-16 06:52:55 -08:00
Leonardo de Moura
85e0b4fdb0
chore: add priority issue workaround
2020-12-15 21:25:37 -08:00
Leonardo de Moura
d4ae9e73b1
fix: missing comma
2020-12-15 20:29:28 -08:00
Leonardo de Moura
42a28261fd
chore: temporarily use 100000 as priority
2020-12-15 20:21:27 -08:00
Leonardo de Moura
d4f4eda0ea
feat: make sure expandMacro reduces prec and prio DSLs
2020-12-15 15:27:39 -08:00
Leonardo de Moura
abe7481453
feat: elaborate prio DSL
2020-12-14 16:25:10 -08:00
Leonardo de Moura
a2afd10060
feat: prio DSL
2020-12-14 16:07:02 -08:00
Leonardo de Moura
fcaf38d566
fix: handle prec DSL at infixl macro
2020-12-14 15:35:37 -08:00
Leonardo de Moura
911a433010
chore: remove temp comments
2020-12-14 15:10:41 -08:00
Leonardo de Moura
f95a450894
feat: add builtin prec/prio parsers
2020-12-14 15:05:39 -08:00
Leonardo de Moura
cfb60c0cf3
chore: avoid auto generated names
2020-12-14 14:49:34 -08:00
Leonardo de Moura
7d1d7dc171
feat: prec DSL
2020-12-14 13:25:08 -08:00
Leonardo de Moura
5a5a49a54a
feat: add class abbrev macro
2020-12-14 10:19:00 -08:00
Leonardo de Moura
731ca49088
chore: cleanup
2020-12-13 15:51:34 -08:00
Leonardo de Moura
04a07c15b9
chore: use deriving Inhabited
2020-12-13 11:57:59 -08:00
Leonardo de Moura
bbafaf8805
fix: Array.mk and Array.data externs
2020-12-13 11:10:01 -08:00
Leonardo de Moura
3b6d65c3c3
chore: use deriving Inhabited
2020-12-13 10:09:20 -08:00
Leonardo de Moura
5249fdc24d
chore: cleanup and style
2020-12-12 10:36:26 -08:00
Leonardo de Moura
9333fb4cf6
chore: style
2020-12-12 08:34:00 -08:00
Sebastian Ullrich
554d0b4d4c
chore: adapt stdlib to new antiquotation splices
2020-12-12 17:20:03 +01:00
Sebastian Ullrich
8dfa588983
feat: introduce SepArray and use it for sepBy antiquotation splices
2020-12-12 16:02:15 +01:00
Leonardo de Moura
76fb1799fe
chore: goodies for deriving command
2020-12-11 18:08:50 -08:00
Leonardo de Moura
c8298f4446
feat: support for big list literals
...
This encoding prevents stack overflows.
2020-12-10 17:19:46 -08:00
Leonardo de Moura
0b8edeeadc
chore: use double quoted literals
2020-12-09 17:51:01 -08:00
Sebastian Ullrich
1cb51ba42e
fix: precedence of new sepBy shorthands
2020-12-09 19:02:17 +01:00
Sebastian Ullrich
36e924d124
fix: rwRuleSeq
2020-12-09 18:50:04 +01:00
Sebastian Ullrich
d9246a8415
chore: adapt to new syntax syntax and introduce a few sepBy shorthands
2020-12-09 18:01:05 +01:00
Sebastian Ullrich
4dfa7e1187
feat: use actual separator in sepBy antiquotation scope
2020-12-09 17:48:05 +01:00
Sebastian Ullrich
7788e75c10
fix: use new sepBy syntax syntax
2020-12-09 17:36:29 +01:00
Sebastian Ullrich
f4267c9bf8
chore: revise Syntax.Traverser changes
2020-12-09 10:38:22 +01:00
Leonardo de Moura
f2339268b1
fix: adjust code to new match-compiler
...
In the new frontend,
```lean
@[macroInline] def or : Bool → Bool → Bool
| true, _ => true
| false, b => b
```
is compiled as
```lean
def or (x y : Bool) : Bool :=
or.match_1 _ x y (fun _ => true) (fun b => b)
```
Thus, the `[macroInline]` attribute does not guarantee that `y` is
evalutated only when `x` is `false`. The new definition does.
This issue was not exposed before because the compiler has an
optimization that float let-decls when they are used in a single
branch.
@Kha We have talked about removing `macroInline`, and defining
functions such as `or` as
```lean
@[inline] def or (x : Bool) (y : Unit -> Bool) : Bool :=
match x with
| true => true
| false => y ()
```
and define `x || y` as notation for `or x (fun _ => y)`.
I think this is the way to go for polymorphic operators such as `<|>`,
but I am not sure about `or`. New users will probably be puzzled by
it. In particular when they are writing proofs.
2020-12-08 13:46:00 -08:00
Leonardo de Moura
702c258773
fix: index out of bounds
...
@Kha Please take a look at `Traverser` and check whether the
workaround is appropriate or not.
2020-12-08 11:44:10 -08:00
Leonardo de Moura
6a41d04827
fix: missing panics
2020-12-08 10:36:53 -08:00