Leonardo de Moura
3d1f682144
feat: missing whnf at checkParamsAndResultType
2021-10-25 13:08:43 -07:00
Leonardo de Moura
57f02804f3
feat: use forallTelescopeReducing
...
This is needed now that we allow definitions at `inductive`.
2021-10-25 13:05:23 -07:00
Leonardo de Moura
80a73dd903
feat: basic support for definitions at inductive declarations
2021-10-25 12:44:35 -07:00
Leonardo de Moura
1bd78590e6
test: for Lean 3 nocomputable issue
...
Issue reported at
https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/noncomputable.20tainting/near/258174927
2021-10-19 07:15:55 -07:00
Leonardo de Moura
1d372ed7e3
test: well-founded recursion for unary function
2021-10-19 06:47:59 -07:00
Leonardo de Moura
c425397b45
feat: Hashable instances for UInt8 and UInt16
2021-10-18 17:19:39 -07:00
Leonardo de Moura
e336ff5f93
feat: indentation sensitiviy for macro and elab commands
...
This commit fixes issue reported at
https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Command.20terminator/near/257674790
2021-10-18 17:16:09 -07:00
Leonardo de Moura
284177a80a
feat: missing instances and getOp for byte/float arrays
2021-10-18 16:54:56 -07:00
Leonardo de Moura
6b2303b243
fix: bug at tryLemmaCore when numExtraArgs > 1
...
Fixes bug reported at
https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Simp.20bug.20-.20produces.60application.20type.20mismatch.60/near/257711901
2021-10-18 13:59:19 -07:00
Sebastian Ullrich
d3cf0b8098
fix: deriving Ord on parameterized types
...
Fixes #732
2021-10-18 10:08:13 +02:00
Leonardo de Moura
81729d96f9
fix: make sure Quot primitives stay in eta expanded form
...
fixes #716
2021-10-08 09:36:06 -07:00
Leonardo de Moura
15ac3c2542
test: small repro for issue #716
2021-10-08 09:36:06 -07:00
Leonardo de Moura
85150731b7
test: put unit back, but rename it to someVal
...
It is the simple and more efficient.
We just set `someVal` with the first value of `vars`.
Recall that `vars` is never empty.
2021-10-06 18:09:06 -07:00
Leonardo de Moura
f64753c106
test: simplify ac_expr.lean
...
We don't want to avoid proofs at `List.getIdx` and `Expr` when doing proofs by reflection.
The new encoding avoids that by using the fact that `vars` in
`Context` should never be empty.
To be honest, the best approach is still the old `unit`. We can just
rename it to `inhabitant` to make sure users don't assume it is the
unit of the AC operator. Then, we can just set it with the first element
of `vars` and avoid proofs at `denote`.
2021-10-06 17:56:26 -07:00
Leonardo de Moura
079ad47f02
fix: mixed unary and non-unary functions
2021-10-06 17:33:51 -07:00
Leonardo de Moura
790a22c5df
test: mutual recursion by well-founded recursion
2021-10-06 16:38:42 -07:00
Leonardo de Moura
7f660af4c6
feat: add repeat tactic to conv mode
2021-10-06 14:05:44 -07:00
Leonardo de Moura
8ec9fda6c4
fix: improve widening operator used at the ElimDeadBranches abstract interpreter
2021-10-06 12:54:07 -07:00
Leonardo de Moura
85c49cfeb3
feat: apply termination tactic provided by user
2021-10-03 18:47:52 -07:00
Leonardo de Moura
1e44902243
fix: add withFreshMacroScope at expandMacroImpl?
2021-10-02 16:57:25 -07:00
Leonardo de Moura
15347272c7
feat: elaborate wait_* notation
...
We can use to define `if-then-else` using macros
2021-10-02 16:27:22 -07:00
Leonardo de Moura
b510bb305d
feat: elaborate let_mvar%
2021-10-02 16:12:50 -07:00
Leonardo de Moura
acd21052c0
chore: remove old notation
2021-10-02 15:06:40 -07:00
Daniel Fabian
e1f591ba61
test: do no use unit in ac_expr.lean.
...
It is not necessary to define a unit element for the proof to go through.
2021-10-02 11:11:08 -07:00
Leonardo de Moura
2546a2cf7e
test: add test for if-then-else issue
...
The issue was reported here:
https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Required.20type.20annotation.20using.20Array
2021-09-30 22:23:22 -07:00
Leonardo de Moura
837677cb4c
test: doc string
2021-09-30 11:27:09 -07:00
Leonardo de Moura
ff38774b95
test: printDecls
2021-09-29 17:44:21 -07:00
Leonardo de Moura
09d0c93589
feat: declare functions in mutual block using auxiliary fuction defined using WF
2021-09-29 11:24:52 -07:00
Leonardo de Moura
608417b946
fix: check number of explicit variables at induction/cases alternatives when @ is not used
...
fixes #690
2021-09-29 07:39:38 -07:00
Leonardo de Moura
200a38e20c
feat: improve letIdLhs parser
...
The extra space is only really needed to distinguish an array update (NIY)
```
let x[i] := ...
```
from a declaration taking an instance argument
```
let f [Monad m] := ...
```
closes #696
2021-09-28 18:10:25 -07:00
Leonardo de Moura
d0462153a0
fix: bug at smart unfolding procedure
...
It fixes an issue reported at https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Simplifications.20in.20proofs.2Ftype-checking.20not.20happening.3B.20wh.2E.2E.2E
2021-09-28 10:45:54 -07:00
Leonardo de Moura
1282fb2d97
fix: getMatchWithExtra
...
`getMatchKeyArgs` returns arguments in reverse order.
2021-09-25 08:36:12 -07:00
Chris Lovett
ad7c5b26a7
fix: UTF-8 file path support for lean on Windows
...
* fix msys2 windows build so the windows apps support utf-8 file paths.
* use windres to compile default-manifest.o
* windres is in binutils.
* stop modifying default-manifest.o
* copy to stage0
* fix semicolon joining of lists in add_custom_target
* undo changes to stage0 as per CR feedback.
* fix makefile
* fix: revert cmakelists.txt COMMAND_EXPAND_LISTS change
* fix: msys2 dependencies
* add unit test for decoding UTF-8 chars to prove "lean.exe" can read utf-8 encoded files where utf-8 is also used in the file name.
* fix: utf-8 test by using windows-2022
* fix: do we really need cmake 3.11 or will 3.10 do?
* nope, really does require cmake 11.
2021-09-22 12:21:52 +02:00
Leonardo de Moura
9085167872
test: Fin match test that relies heavily on contradiction
...
This example is based on a Lean 3 issue described at
https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/equation.20compiler.20help.20me.20plz
2021-09-21 12:57:08 -07:00
Leonardo de Moura
2cbf0ba8e9
test: add "parameters" that are fixed in all equations
2021-09-20 12:58:22 -07:00
Leonardo de Moura
41a58459d7
test: equational theorem generation
2021-09-20 11:12:42 -07:00
Leonardo de Moura
9e980b2a78
fix: bug at decAux?
...
We are getting a few "stuck at universe constraint" errors after the
fix. We may need to add some kind of approximation in the future.
2021-09-20 07:12:57 -07:00
Leonardo de Moura
fe55205105
test: equational theorem test
2021-09-19 09:34:08 -07:00
Leonardo de Moura
82f3042fa4
fix: equational theorem generation for structural recursion
2021-09-19 08:48:40 -07:00
Leonardo de Moura
c795a75045
feat: modify approach for generating equational theorems
2021-09-18 15:58:31 -07:00
Leonardo de Moura
2a9ba9f795
fix: add support for hierachical names containing numerical parts
...
closes #677
2021-09-17 19:21:49 -07:00
Leonardo de Moura
d413aa1dc5
feat: generate proofs for structural (conditional) equality theorems
2021-09-17 18:57:39 -07:00
Leonardo de Moura
1a0badac06
feat: generate conditional structural equation theorem types
...
TODO: proofs
2021-09-17 16:49:30 -07:00
Leonardo de Moura
d378df47d7
fix: fixes #633
2021-09-16 14:11:34 -07:00
Leonardo de Moura
04b7924154
chore: fix tests
2021-09-16 10:29:38 -07:00
Leonardo de Moura
6fb2a2b47b
chore: remove ≅ notation for HEq
...
We don't really needed it here.
2021-09-15 08:06:32 -07:00
Leonardo de Moura
ae8989a8c6
feat: add mkAppOptM' and mkAppM'
2021-09-15 06:35:40 -07:00
Daniel Selsam
5eed3b73bf
chore: adjust pp.analyze funext test
2021-09-15 09:41:16 +02:00
Daniel Selsam
664737def8
feat: trust subtype.mk by default
2021-09-15 09:41:16 +02:00
Daniel Selsam
4b011affca
chore: better msgs in pp.analyze test
2021-09-15 09:41:16 +02:00