Leonardo de Moura
f73ff914eb
feat: extensible elaboration functions
...
@kha `termParserAttr.lean` has a small example
2020-01-10 15:05:14 -08:00
Leonardo de Moura
63cd3a8c41
fix: nontermination at isDefEqOffset
2020-01-10 13:25:20 -08:00
Leonardo de Moura
06b6beb9f7
feat: add kabstract
2020-01-10 13:10:03 -08:00
Leonardo de Moura
3077d13b56
feat: add HeadIndex
2020-01-10 11:58:22 -08:00
Leonardo de Moura
947438afbe
feat: add Occurrences
2020-01-10 11:06:36 -08:00
Leonardo de Moura
a76b104f61
chore: move Message to Lean
2020-01-10 10:58:50 -08:00
Leonardo de Moura
f8c7d6ca6b
feat: elaborate optParam
2020-01-10 09:32:01 -08:00
Leonardo de Moura
d7b23cf297
fix: typo
2020-01-10 08:36:48 -08:00
Daniel Selsam
27158eb3e2
fix: DiscrTree typos
2020-01-10 08:07:41 -08:00
Leonardo de Moura
c5111de0f0
feat: add option set_option synthInstance.maxSteps <num>
...
cc @dselsam @kha
2020-01-10 08:04:25 -08:00
Leonardo de Moura
733ea89000
feat: improve application type mismatch error message
2020-01-09 16:41:27 -08:00
Leonardo de Moura
3d1ee3f408
fix: add isNewAnswer predicate
...
reactivate `typeclass_coerce.lean` test
2020-01-09 13:37:21 -08:00
Leonardo de Moura
125faad936
fix: missing do
...
This is nasty. The following
```
if entry.answers.contains answer then pure () -- if answer was already found, then do nothing
else
let newEntry := { answers := entry.answers.push answer, .. entry };
modify $ fun s => { tableEntries := s.tableEntries.insert key newEntry, .. s };
entry.waiters.forM (wakeUp answer)
```
was being parsed as
```
if entry.answers.contains answer then pure () -- if answer was already found, then do nothing
else
(let newEntry := { answers := entry.answers.push answer, .. entry };
modify $ fun s => { tableEntries := s.tableEntries.insert key newEntry, .. s });
entry.waiters.forM (wakeUp answer)
```
2020-01-09 12:44:41 -08:00
Leonardo de Moura
f3d4005fc6
fix: outParam support
2020-01-09 11:39:12 -08:00
Leonardo de Moura
78c50125dd
fix: bug preprocessArgs
2020-01-09 11:13:25 -08:00
Leonardo de Moura
ebd20432b6
fix: isDefEqOffset
2020-01-09 10:47:02 -08:00
Leonardo de Moura
11d15575f7
feat: ignore Nat.succ, Nat.zero Nat.add and HasAdd.add at `DiscrTree
...
@dselsam We need this feature to be able to retrieve instances of the
form `Top (Nat.succ ?m)` given `Top 1` where `1` is the literal `1`
2020-01-09 10:28:09 -08:00
Leonardo de Moura
f49e1cd0fb
fix: isDefEqOffset
2020-01-09 10:10:32 -08:00
Leonardo de Moura
2a8e179a64
feat: add #synth command to new frontend
2020-01-09 09:54:45 -08:00
Leonardo de Moura
923bd321ef
chore: remove unnecessary commands
2020-01-09 09:45:07 -08:00
Leonardo de Moura
5888a790d1
feat: add #synth command to new frontend
2020-01-09 09:42:22 -08:00
Leonardo de Moura
c06d515027
fix: typo
2020-01-08 21:22:46 -08:00
Leonardo de Moura
48578c9743
chore: remove hacks
2020-01-08 21:09:17 -08:00
Leonardo de Moura
b2fa433368
chore: add more info to error messages
2020-01-08 21:09:17 -08:00
Leonardo de Moura
d92e59a6fb
chore: add temporary staging workaround
2020-01-08 21:09:17 -08:00
Leonardo de Moura
01c5b0710c
feat: pointer equality for IO.ref
2020-01-08 21:09:17 -08:00
Leonardo de Moura
c98e3290e4
refactor: parser attributes
2020-01-08 21:09:11 -08:00
Leonardo de Moura
fe09e99fef
chore: disable attribute features that are not currently being used
2020-01-08 15:49:55 -08:00
Leonardo de Moura
e056908933
fix: getDeclNamesForCodeGen
2020-01-08 15:11:49 -08:00
Leonardo de Moura
9ebf21f2d5
fix: elabConstant
2020-01-08 15:06:18 -08:00
Leonardo de Moura
c4ad3a2390
refactor: ParserContextCore and ParserContext
2020-01-08 14:20:53 -08:00
Leonardo de Moura
8484aa08f3
feat: decodeCharLit
2020-01-08 10:50:47 -08:00
Leonardo de Moura
f2958f1f6c
feat: decodeStrLit
2020-01-08 10:47:33 -08:00
Leonardo de Moura
7c7e76defb
fix: missing repr
2020-01-08 08:32:14 -08:00
Leonardo de Moura
0137500c83
fix: missing decodeStrLit and decodeCharLit
...
They are just placeholders.
2020-01-08 08:28:22 -08:00
Leonardo de Moura
b774ed1505
fix: update tokens
2020-01-08 08:28:15 -08:00
Leonardo de Moura
0049cb361e
chore: remove unnecessary instantiateMVars
...
The `MessageData` formatter invokes `instantiateMVars`.
2020-01-07 17:26:28 -08:00
Leonardo de Moura
187897d90d
fix: bug at expandOptType
2020-01-07 17:14:49 -08:00
Leonardo de Moura
3de7d6d5c3
fix: remove mvarTypeNotWellFormedInSmallerLCtx
...
We use `check` recursively instead of `isWellFormed`.
@kha This was the last bug for the repro
```
```
This example works now, but I am sure there are many other bugs.
2020-01-07 16:56:10 -08:00
Leonardo de Moura
2ce2610c0a
feat: add compileDecl
...
cc @kha
2020-01-07 16:38:41 -08:00
Leonardo de Moura
69be2148d6
chore: remove buggy optimization
2020-01-07 16:29:59 -08:00
Leonardo de Moura
4b08b1eea3
fix: ?m t =?= ?n
2020-01-07 16:05:17 -08:00
Leonardo de Moura
7caf5051c7
fix: use isDefEq approximations
...
We do the same in the Lean3 elaborator
2020-01-07 13:48:40 -08:00
Leonardo de Moura
de88427fc1
fix: use given type as expectedType
2020-01-07 13:48:23 -08:00
Leonardo de Moura
a99523b4b3
feat: add set_option ppOld false option for disabling ppOld
...
The old pretty printer often sucks.
2020-01-07 13:20:54 -08:00
Leonardo de Moura
d059b7be76
chore: add stuck trace message
2020-01-07 12:56:15 -08:00
Leonardo de Moura
a17ae70be7
feat: elaborate set_option
2020-01-07 12:08:00 -08:00
Leonardo de Moura
62bdbba78d
chore: missing instantiateMVars
2020-01-07 11:34:21 -08:00
Leonardo de Moura
070682c4e9
feat: add addContext
2020-01-07 11:04:52 -08:00
Leonardo de Moura
091cc48901
feat: expose old pretty printer in Lean
2020-01-07 10:29:10 -08:00