Commit graph

140 commits

Author SHA1 Message Date
Leonardo de Moura
a88dca17bc chore: style 2020-01-14 08:51:50 -08:00
Daniel Selsam
4a0d8b475c doc: try naming result type 2020-01-14 08:49:41 -08:00
Leonardo de Moura
6d77aa20aa feat: catch deep recursion at MetaM, TermElabM and CommandElabM
cc @Kha
2020-01-11 15:03:58 -08:00
Leonardo de Moura
48600dbbfc refactor: registerAttribute ==> registerBuiltinAttribute 2020-01-10 17:08:12 -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
a76b104f61 chore: move Message to Lean 2020-01-10 10:58:50 -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
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
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
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
d059b7be76 chore: add stuck trace message 2020-01-07 12:56:15 -08:00
Leonardo de Moura
0231841984 feat: applyAttributes 2020-01-05 16:22:46 -08:00
Leonardo de Moura
c233225153 feat: add mkForallUsedOnly
This commit also fixes a bug at `mkBinding` for unused let-decls
2020-01-05 11:53:39 -08:00
Daniel Selsam
91f97fb0d9 fix: typos in SynthInstance.lean 2020-01-03 10:29:01 -08:00
Leonardo de Moura
9d53fa701c chore: combine MessageData.context + MessageData.withOptions into MessageData.context 2019-12-22 09:15:04 -08:00
Leonardo de Moura
6a3f06642c feat: add option for controlling sytax max depth in trace messages 2019-12-22 08:56:13 -08:00
Leonardo de Moura
a32fd2e693 feat: implement design documented at 868a217202 2019-12-21 15:53:36 -08:00
Leonardo de Moura
c5c158e5b9 fix: isDefEqQuick 2019-12-19 11:10:58 -08:00
Leonardo de Moura
fadd453395 fix: avoid nontermination 2019-12-19 10:37:24 -08:00
Leonardo de Moura
40576ac3dd fix: missing ! 2019-12-19 10:27:49 -08:00
Leonardo de Moura
bdc9ea6fc6 fix: unregistered level metavariable 2019-12-19 09:58:05 -08:00
Leonardo de Moura
c5d2b06037 feat: add decLevel? 2019-12-16 17:32:35 -08:00
Leonardo de Moura
e922f8a46c feat: split synthetic into synthetic and syntheticOpaque 2019-12-16 17:06:45 -08:00
Leonardo de Moura
067dca5a65 chore: naming convention 2019-12-15 18:28:00 -08:00
Leonardo de Moura
e0510520ed chore: update TODOs 2019-12-15 18:12:45 -08:00
Leonardo de Moura
248cc2ec3a chore: naming convention 2019-12-15 07:48:42 -08:00
Leonardo de Moura
ac86983128 chore: naming convention 2019-12-15 07:40:32 -08:00
Leonardo de Moura
a80c5c8339 chore: naming convention 2019-12-14 12:00:25 -08:00
Leonardo de Moura
4184165573 feat: enable foApprox and ctxApprox during type class instance synthesis 2019-12-13 19:24:00 -08:00
Leonardo de Moura
93d987461a chore: naming convention 2019-12-13 19:17:45 -08:00
Leonardo de Moura
119742e463 feat: make sure MetaM also implements new unifier approximation 2019-12-13 19:12:53 -08:00
Leonardo de Moura
afc50a801d feat: add lazy unfolding to field name resolution 2019-12-13 09:52:44 -08:00
Leonardo de Moura
523748f40a fix: bug at isDefEq 2019-12-12 14:28:04 -08:00
Leonardo de Moura
36648ebe69 fix: DiscrTree.getKeyArgs 2019-12-12 05:04:31 -08:00
Leonardo de Moura
34332ecaa9 fix: forallBoundedTelescope 2019-12-11 18:08:41 -08:00
Leonardo de Moura
4b285a48dc fix: forallMetaTelescopeReducing 2019-12-11 18:03:11 -08:00
Leonardo de Moura
77bf2a60e1 fix: lambdaMetaTelescope 2019-12-11 17:50:34 -08:00
Leonardo de Moura
b773bb9ceb fix: make sure instances created by class command are stored in the new DiscrTree 2019-12-11 17:16:12 -08:00
Leonardo de Moura
e13a10fbf2 feat: elaborate explicit and implicit arguments 2019-12-11 09:04:26 -08:00
Leonardo de Moura
c3005671f5 chore: avoid ^do ... 2019-12-11 06:19:12 -08:00