Leonardo de Moura
0cf2c19fc2
fix: condition for selecting split target
...
Only discriminants must not have loose bound variables
2021-09-10 14:56:15 -07:00
Sebastian Ullrich
7467422b67
fix: macOS: libleanshared install name
2021-09-10 09:18:14 +02:00
Leonardo de Moura
1576040c87
chore: remove workaround
2021-09-09 19:30:31 -07:00
Leonardo de Moura
19a710ffc9
feat: add getMatchWithExtra and improve tryLemma at simp
2021-09-09 19:28:09 -07:00
Leonardo de Moura
87f49be5dd
fix: missing withReducible
2021-09-09 18:31:10 -07:00
Leonardo de Moura
f5a4b30d5f
fix: broken proof
2021-09-09 18:11:05 -07:00
Leonardo de Moura
5154f462f8
feat: add reduce conv tactic
2021-09-09 17:47:10 -07:00
Leonardo de Moura
496cc92ae9
feat: add simpMatch helper conv tactic
2021-09-09 17:29:32 -07:00
Leonardo de Moura
09eecc5c08
fix: simp was not applying rewrites to the function application prefixes
2021-09-09 17:07:14 -07:00
Leonardo de Moura
5a7badd69a
feat: add support for erasing keyed attributes
...
This commit addresses any issue described at https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Eq.2Endrec.20vs.20Eq.2Erec
2021-09-09 14:28:41 -07:00
Leonardo de Moura
b5b5370181
feat: add delta to conv mode
2021-09-09 13:07:33 -07:00
Leonardo de Moura
4087525cba
feat: add delta tactic
2021-09-09 13:07:33 -07:00
Leonardo de Moura
3c49969832
feat: add replaceLocalDeclDefEq
2021-09-09 13:07:33 -07:00
Leonardo de Moura
cd75132378
refactor: add withLocation combinator
2021-09-09 13:07:33 -07:00
Sebastian Ullrich
c5940f0149
fix: cmake/make dependencies
2021-09-09 18:12:55 +02:00
Leonardo de Moura
075ba63a8b
feat: add LEAN_ABORT_ON_PANIC
2021-09-09 04:49:16 -07:00
Sebastian Ullrich
2159a90c8c
fix: lean target dependencies
...
Fixes #661
2021-09-09 11:55:33 +02:00
Leonardo de Moura
474395aae4
perf: use binary search
2021-09-08 16:54:54 -07:00
Leonardo de Moura
193d4dc9f5
feat: optimized deriving DecidableEq for enumeration types
...
The proof term is liner on the number of constructors, but type
checking is not linear because the reduction engine in the kernel is
not efficient.
2021-09-08 16:21:32 -07:00
Leonardo de Moura
9b0dfc4b90
feat: convert "orphan" kernel nat literals n into ofNat n
2021-09-08 14:58:13 -07:00
Leonardo de Moura
9032ddd773
chore: add simp lemma for converting Nat.add back into + notation
2021-09-08 14:58:13 -07:00
Christian Pehle
bd02f16b43
feat: optimized ``deriving BEq`` for enumeration types
2021-09-08 14:57:21 -07:00
Sebastian Ullrich
a97621467f
fix: stdlib.make: missing target
2021-09-08 17:24:31 +02:00
Sebastian Ullrich
68a3799b7c
refactor: build lean in stdlib.make
2021-09-08 17:24:31 +02:00
Sebastian Ullrich
01325170a6
feat: make LEANC_CC configurable
2021-09-08 17:24:31 +02:00
Sebastian Ullrich
af78071000
chore: use -Bsymbolic in favor of -Bsymbolic-functions, which Zig doesn't like
2021-09-08 17:24:31 +02:00
Sebastian Ullrich
ab9a31a806
refactor: leanc: use case
2021-09-08 17:24:31 +02:00
Sebastian Ullrich
9702fe1981
chore: leanc: use C instead of C++ compiler
2021-09-08 17:24:31 +02:00
Leonardo de Moura
716ffecf89
chore: add sorry tactic
2021-09-08 08:10:37 -07:00
Leonardo de Moura
12af1480d6
feat: add specialize tactic
2021-09-08 08:00:02 -07:00
Sebastian Ullrich
3787c6081c
fix: pass worker cmdline options to Lean code
2021-09-08 11:34:31 +02:00
Sebastian Ullrich
58e8c5774c
fix: stdlib_flags.h
2021-09-08 11:34:31 +02:00
Leonardo de Moura
445cc3085f
refactor: avoid Name, MVarId, and FVarId confusion
2021-09-07 19:06:50 -07:00
Leonardo de Moura
53ec43ff9b
refactor: lazy evaluation for >>, <*>, <*, and *>
...
see issue: #617
2021-09-07 17:50:34 -07:00
Leonardo de Moura
51b7c4cf21
chore: remove Nondet.lean
...
It was too "unsafe", and it is dead code.
2021-09-07 17:36:20 -07:00
Leonardo de Moura
6ea7869c6a
chore: "fix" <|> notation declaration
...
The `infix` declaration was generating a delaborator, but it is
producing the invalid term
```
ConstantFunction.f myFun 3 <|> fun _ => ConstantFunction.f myFun 4
```
It is invalid because the `macro_rules` for `<|>` is based on
`binop_lazy%` which introduces the `fun _ =>` for us.
I tried to use
```
notation:20 a:21 " <|> " b:20 => HOrElse.hOrElse a fun _ : Unit => b
```
but the delaborator generator does not work for this case.
2021-09-07 17:29:27 -07:00
Leonardo de Moura
3714cf16ec
refactor: lazy evaluation for <|>
...
see #617
2021-09-07 17:06:10 -07:00
Leonardo de Moura
55f01fb6e1
feat: elaborate binop_lazy%
2021-09-07 13:30:09 -07:00
Leonardo de Moura
d991c20859
chore: add binop_lazy%
...
This is a gadget for issue #617 .
2021-09-07 13:00:36 -07:00
Leonardo de Moura
5a862a06c6
chore: remove leftover
2021-09-07 12:57:27 -07:00
Leonardo de Moura
f46eedac84
fix: fixes #655
2021-09-07 12:17:28 -07:00
Leonardo de Moura
c8406a301d
chore: reduce src/include/lean
2021-09-07 08:24:54 -07:00
Leonardo de Moura
c93982d10c
chore: disable pp.analyze for now
...
see #651
2021-09-07 07:51:43 -07:00
Leonardo de Moura
ebd8f1efa7
chore: avoid object.h dependencies
2021-09-07 07:31:48 -07:00
Daniel Selsam
b36baa143f
feat: improved name-unresolving in delab
...
Fixes #641
2021-09-07 16:26:00 +02:00
Leonardo de Moura
e2cc056cdd
fix: assertion violation
2021-09-07 07:16:12 -07:00
Leonardo de Moura
70f2200778
chore: remove enum command
...
Now, `inductive` is also efficient for big enumeration types
2021-09-06 12:01:37 -07:00
Leonardo de Moura
a7c621854e
feat: optimized noConfusion for enumeration types
2021-09-06 11:52:36 -07:00
Leonardo de Moura
d43a1c7d9a
chore: move Constructions to Meta
2021-09-06 10:51:11 -07:00
Leonardo de Moura
ab63382158
feat: add helper functions for optimized noConfusion
2021-09-06 10:33:34 -07:00