Leonardo de Moura
3d6cc2de08
feat: add notFollowedByCategoryToken parser
2020-09-26 15:53:23 -07:00
Leonardo de Moura
3f4499be08
feat: allow trailing ; at doSeqBracketed
2020-09-26 14:20:47 -07:00
Leonardo de Moura
e31fd665f0
feat: add checkLineLe parser
2020-09-26 14:03:28 -07:00
Leonardo de Moura
17e97baf8d
chore: remove workaround
2020-09-26 13:39:55 -07:00
Leonardo de Moura
13ded3f964
chore: use doElem category
2020-09-26 12:51:24 -07:00
Leonardo de Moura
a1579f3123
fix: notFollowedBy info
2020-09-26 12:33:11 -07:00
Leonardo de Moura
7d91ddafeb
feat: expose getPatternVars
2020-09-26 12:33:11 -07:00
Leonardo de Moura
1320848037
chore: rename file
2020-09-26 12:33:11 -07:00
Leonardo de Moura
2d8506b7c6
feat: add doElem parser category
2020-09-26 06:18:44 -07:00
Leonardo de Moura
27be7e6812
fix: leaking isDefEqStuckExceptionId
2020-09-25 18:48:23 -07:00
Leonardo de Moura
8e159f004c
fix: missing synthesizeSyntheticMVarsNoPostponing at elabMatch
2020-09-25 18:48:23 -07:00
Leonardo de Moura
78adaf3e94
fix: "let rec" attributes were not being processed
2020-09-25 18:48:23 -07:00
Leonardo de Moura
049ff2b022
fix: bad message
2020-09-25 18:48:23 -07:00
Sebastian Ullrich
eae32b08a6
fix: pretty printing multiple universe levels
...
Fixes #190
2020-09-25 20:06:18 +02:00
Leonardo de Moura
240680db1a
feat: add binductionOn support
2020-09-25 07:18:14 -07:00
Leonardo de Moura
1775d9b04b
fix: visit types
...
See new test `tests/lean/run/def14.lean`
2020-09-25 06:48:51 -07:00
Leonardo de Moura
44129ce461
refactor: move withoutModifyingEnv to MonadEnv
2020-09-25 06:48:51 -07:00
Leonardo de Moura
0e16bd60dc
fix: missing case
2020-09-25 06:48:51 -07:00
Sebastian Ullrich
402d4437c0
chore: fix interactive use of stage 0
2020-09-25 11:22:06 +02:00
Leonardo de Moura
e4f492d68a
feat: add support for reflexive inductive datatypes
2020-09-24 20:30:12 -07:00
Leonardo de Moura
66d35cdd76
fix: the generated matcher must be able to eliminate into different universe levels
2020-09-24 19:34:14 -07:00
Leonardo de Moura
98f7e9b3e4
chore: naming convention
2020-09-24 19:22:24 -07:00
Leonardo de Moura
53acb2b56f
chore: naming convention
2020-09-24 17:50:17 -07:00
Leonardo de Moura
3256a24813
fix: bug at toBelow
2020-09-24 17:38:51 -07:00
Leonardo de Moura
7edc52682b
fix: processNonVariable
2020-09-24 17:16:50 -07:00
Sebastian Ullrich
c54d51b0c9
chore: go back to previous bootstrapping scheme where the stage N+1 stdlib is created using the stage N compiler
2020-09-24 18:57:53 +02:00
Leonardo de Moura
6a51ec8427
fix: missing case (kernel projection) at isExprDefEqAuxImpl
2020-09-23 18:24:56 -07:00
Leonardo de Moura
a5ee729554
chore: cleanup ExprDefEq a bit
2020-09-23 18:24:56 -07:00
Leonardo de Moura
6ac2f50d94
fix: Expr.proj case at whnfCoreImp
2020-09-23 18:24:56 -07:00
Leonardo de Moura
3c24366b41
feat: basic toBelow
2020-09-23 18:24:56 -07:00
Leonardo de Moura
0174004b1c
feat: improver error message generation for termination checking
2020-09-23 18:24:56 -07:00
Leonardo de Moura
bd01093388
feat: add Meta.forEachExpr
2020-09-23 18:24:56 -07:00
Leonardo de Moura
44eee0c3a4
feat: improve replaceRecApps
2020-09-23 18:24:56 -07:00
Sebastian Ullrich
fa55c1e088
fix: pretty printing loose bvars
...
Fixes #192
2020-09-23 11:13:23 +02:00
Leonardo de Moura
8135d37ddb
feat: add MatcherApp.addArg
...
Helper method for adding a new (dependent) argument to a (dependent) matcher.
2020-09-22 18:56:02 -07:00
Leonardo de Moura
3586337c56
perf: handle easy case efficiently
2020-09-22 18:55:13 -07:00
Leonardo de Moura
661548a2fe
refactor: move mkArrow to MetaM
2020-09-22 18:55:02 -07:00
Leonardo de Moura
1256fc3cbc
refactor: move MatcherInfo methods to Meta namespace
2020-09-22 16:59:21 -07:00
Leonardo de Moura
8a920f7aeb
feat: replaceRecApps find matcher
2020-09-22 16:55:15 -07:00
Leonardo de Moura
a397b3d2ae
feat: add matchMatcherApp?
2020-09-22 16:54:54 -07:00
Leonardo de Moura
41e6447837
refactor: use MetaM and exceptions
2020-09-22 16:05:28 -07:00
Leonardo de Moura
25bcc95b13
feat: construct brecOn application
...
TODO: replace recursive application with `below` argument
2020-09-22 14:39:22 -07:00
Leonardo de Moura
0511b73d80
feat: add replaceFVars
2020-09-22 14:24:03 -07:00
Leonardo de Moura
bbc1f4d461
fix: throwAppTypeMismatch should be polymorphic
...
We use it from `TermElabM` and `MetaM`, and they have different
`TermElabM` implementations.
2020-09-22 09:35:59 -07:00
Leonardo de Moura
05e5d934d3
feat: change default precedence for new syntax
...
Now, the following example produces a syntax error.
```lean
macro "foo!" x:term : term => `($x + 1)
check id foo! 10
```
@Kha, I think the heuristic is simple and defensible.
If the new syntax starts and ends with token, than the precedence is
`maxPrec`. Otherwise, it is `leadPrec`.
see #180
2020-09-21 19:04:03 -07:00
Leonardo de Moura
dc9626ceab
feat: try to improve weird error message
...
@Kha Before this commit, we were producing the error "expected command" at the `let` token
```lean
check id let x := 1; x
```
The new error is "expected command, but found term; this error may be
due to parsing precedence levels, consider parenthesizing the term".
The example above looks artificial, but it will happen all the time as
users start to define their own notation.
2020-09-21 18:29:01 -07:00
Leonardo de Moura
f4b5ec710f
fix: fixes #175
2020-09-21 17:12:07 -07:00
Leonardo de Moura
b0564a32b9
feat: add AttrM
...
We are going to use `AttrM` to implement solution 2 described at https://github.com/leanprover/lean4/issues/175
2020-09-21 16:44:20 -07:00
Leonardo de Moura
cab56d1e1b
chore: do not invoke the hooks from addImported
...
@Kha I am working on issue
https://github.com/leanprover/lean4/issues/175
I am using solution 2 described there. The hooks will be at `AttrM`
instead of `CoreM`.
AFAICT code deleted by this commit is not necessary.
2020-09-21 16:28:07 -07:00
Leonardo de Moura
151e877513
refactor: seal EnvExtension type
...
The motivation is to prevent users from tinkering with its internal
implementation details that rely on unsafe features.
The new test crashed before this commit.
2020-09-21 12:24:44 -07:00