Leonardo de Moura
ab16278ce4
fix: missing synthesizeSyntheticMVars at elabSubst
2022-07-06 16:15:29 -07:00
Leonardo de Moura
aa9167834b
fix: coeAtOutParam can only be used after Coe.lean
2022-07-06 16:06:11 -07:00
Leonardo de Moura
55ad7beb8d
feat: add coercion placeholder for applications that return an output parameter of a local instance
2022-07-06 15:42:39 -07:00
Leonardo de Moura
e7bc114ba2
fix: bug at withAssignableSyntheticOpaque
2022-07-06 15:24:17 -07:00
Leonardo de Moura
ec4794ad10
chore: use withAssignableSyntheticOpaque
2022-07-06 15:24:17 -07:00
Leonardo de Moura
608a306ef0
refactor: simplify/cleanup DelayedMetavarAssignment
2022-07-06 15:24:17 -07:00
Leonardo de Moura
81ed8b0b32
chore: cleanup
2022-07-06 15:24:17 -07:00
Sebastian Ullrich
775ed70a84
feat: add lean --print-deps-json
2022-07-06 16:12:30 +02:00
Leonardo de Moura
38e1f6ba82
fix: missing instantiateMVars
2022-07-05 20:45:53 -07:00
Leonardo de Moura
627594b88a
fix: "dot"-notation should apply default instances before failing
...
See new test for motivating example.
2022-07-05 14:27:55 -07:00
Siddharth Bhat
e6629b760d
fix: Clearer error message for cast(▸) notation
...
The old error message said:
```
throwError "invalid `▸` notation,
expected type{indentExpr expectedType}\ndoes contain
equation left-hand-side nor right-hand-side{indentExpr heqType}"
```
The phrase `does contain ... nor ..` seems gramatically incorrect.
What was (probably) intended was `does **not** contain ... nor ...`.
We take the opportunity to clean up the error message and
be clearer that the equality does not contain the expected result type.
2022-07-05 09:01:09 -07:00
Sebastian Ullrich
6303fb77d2
fix: expansion info for macro commands
...
TODO: investigate that pp error
2022-07-05 13:18:59 +02:00
Leonardo de Moura
2446c64a99
chore: cleanup
2022-07-04 07:15:04 -07:00
Leonardo de Moura
f77ebae87f
fix: withResetUsedAssignment
2022-07-04 06:33:42 -07:00
Leonardo de Moura
05a28af429
fix: skipDefEqCache
2022-07-04 06:33:32 -07:00
Leonardo de Moura
88fc0b2503
fix: isAssigned-like functions should set usedAssignment
2022-07-04 06:20:37 -07:00
Leonardo de Moura
6b2d2ffac6
fix: preserve usedAssignment flag when replacing MetavarContext
2022-07-04 05:49:54 -07:00
Leonardo de Moura
64d46272c2
fix: do not cache when smart unfolding is disabled
2022-07-04 05:48:35 -07:00
Leonardo de Moura
a1413b8fa1
feat: cache failures at isDefEq
...
We can compile Lean with these changes, but 3 tests are still broken.
This cache is used to address a performance issue reported at
https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/deterministic.20timeout.20with.20structures/near/288180087
2022-07-03 21:52:01 -07:00
Leonardo de Moura
76245b39d1
chore: remove dead field
...
We have remove the old frontend a long time ago.
2022-07-03 15:38:48 -07:00
Leonardo de Moura
aae657571f
doc: docstrings for src/Lean/Meta/Basic.lean
2022-07-03 15:32:15 -07:00
Leonardo de Moura
03ce7cb17c
fix: dependent pattern matching bug
...
closes #1279
Originally reported at https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/case.20in.20dependent.20match.20not.20triggering.20.28.3F.29/near/288328239
2022-07-03 13:25:12 -07:00
Leonardo de Moura
68024b11a4
fix: simp_all bug when goal has duplicate hypotheses
2022-07-03 12:44:53 -07:00
Sebastian Ullrich
2f67295c7d
feat: strengthen pp* signatures
2022-07-03 19:14:49 +02:00
Sebastian Ullrich
146aefd085
feat: ppTactic
2022-07-03 19:00:13 +02:00
Leonardo de Moura
54c60d4c2d
feat: a[i] and a[i]! notation for Subarrays
2022-07-02 15:54:34 -07:00
Leonardo de Moura
b3ea1fc925
feat: a[i] notation for arrays now uses i : Fin a.size
2022-07-02 15:19:38 -07:00
Leonardo de Moura
2ebcf29cde
chore: use a[i]! for array accesses that may panic
2022-07-02 15:12:05 -07:00
Leonardo de Moura
3f3cd22366
feat: add Array.getOp! and Array.getOp?
...
Add warning when `Array.getOp` is used. TODO: replace `Array.getOp`
with safe version
2022-07-02 10:06:05 -07:00
Leonardo de Moura
e8935d996b
chore: String.get?, String.getOp?, and remove String.getOp
2022-07-02 09:59:04 -07:00
Leonardo de Moura
053bc889a3
feat: elaborate a[i]! and a[i]?
2022-07-02 07:29:58 -07:00
Leonardo de Moura
131e7be8c5
feat: add a[i]? and a[i]! parsers
2022-07-02 07:29:58 -07:00
Leonardo de Moura
a639eb185c
fix: dsimp zeta issue
2022-07-01 06:42:09 -07:00
Leonardo de Moura
d1f966fa6d
doc: docstrings for src/Lean/Elab/Term.lean
2022-06-30 19:01:34 -07:00
Leonardo de Moura
dba1f79170
feat: improve isDefEq for projections
...
When solving `a.i =?= b.i`, we first reduce `a` and `b` without using
delta reduction. If at least one become a structure, we reduce the
projection. Otherwise, we try to solve `a =?= b`, only reduce `a.i`
and `b.i` if it fails.
2022-06-30 17:00:43 -07:00
Leonardo de Moura
f3bb0be045
feat: add flag to control projection reduction at whnfCore
2022-06-30 16:48:00 -07:00
Leonardo de Moura
2c152dae7d
chore: remove unnecessary partial
2022-06-30 15:47:31 -07:00
Leonardo de Moura
e9e75af834
doc: Lean/Meta/Basic.lean
...
Add some docstrings
2022-06-30 13:32:19 -07:00
Leonardo de Moura
467ac9d98a
feat: add support for CommandElabM at #eval
...
Note that it does not use `MetaEval` to execute the term of type
`CommandEval`. Thus, we can now use `#eval` to execute simple commands.
see #1256
2022-06-29 16:34:49 -07:00
Leonardo de Moura
d83a11bac5
chore: expose exprToSyntax
2022-06-29 16:02:01 -07:00
Leonardo de Moura
95efa3dcd2
fix: withPosition case at MacroArgUtil
...
fixes #1267 after update stage0
2022-06-29 15:35:34 -07:00
Leonardo de Moura
1b7fab4497
chore: add binder types
2022-06-29 15:31:10 -07:00
Leonardo de Moura
e968dfb68c
feat: elaborate do notation even when expected type is not available
...
see issue #1256
2022-06-29 13:30:06 -07:00
Leonardo de Moura
598898a087
fix: fixes #1265
2022-06-29 12:41:14 -07:00
Leonardo de Moura
15e2a7d5b4
feat: report errors an unassigned metavars at #eval
...
See #1256
2022-06-29 11:53:33 -07:00
Sebastian Ullrich
3ed910a043
refactor: rename AsyncList.asyncTail to delayed
...
I often found the terminology confusing as it is inconsistent with
`List.tail`
2022-06-29 17:08:15 +02:00
Sebastian Ullrich
ae683af9c2
refactor: merge AsyncList.updateFinishedPrefix/finishedPrefix
...
We only ever use both of them together, and forgetting to call the first
one first could lead to subtle bugs.
2022-06-29 17:08:15 +02:00
Leonardo de Moura
98b8e300e1
feat: add evalTerm and Meta.evalExpr
...
These functions were in Mathlib 4.
2022-06-28 19:14:40 -07:00
Sebastian Ullrich
80217cfa90
fix: asynchronous head snapshot fallout
2022-06-28 16:54:29 -07:00
Sebastian Ullrich
c64ac02ffc
fix: declModifiers syntax kind
2022-06-28 22:35:13 +02:00