Gabriel Ebner
d0245c4c2f
fix(library/vm/vm_int): unformly unbox small ints
2017-07-11 22:53:18 +01:00
Gabriel Ebner
27a39c4a2d
fix(library/tactic/eval): do not catch exceptions
2017-07-11 22:52:31 +01:00
Mario Carneiro
ced436a707
fix(library/vm/vm_nat): fix VM definition of nat.shiftr
...
fixes #1723
2017-07-11 20:53:15 +01:00
Josh Pollock
ee55a03205
fix(src/library/vm,tests/lean): fixes #1723
2017-07-09 08:05:05 +02:00
Sebastian Ullrich
ac8de2472e
feat(library/tactic/induction_tactic): clear hypothesis before introducing new ones
2017-07-07 10:06:30 -07:00
Leonardo de Moura
91f4fd9507
fix(library/equations_compiler/elim_match): undo bcf44f7
...
See issue #1739
Main problem with this commit: the counter-examples for non-exhaustive matches will be
cryptic when using nested inductive types.
2017-07-07 09:16:07 -07:00
Leonardo de Moura
38c2c7dae8
feat(library/equations_compiler/elim_match): extend is_value_transition trick to other infinite types
2017-07-06 22:10:23 -07:00
Gabriel Ebner
820286c02c
fix(library/equations_compiler/elim_match): check for forward dependencies with string literal matches
2017-07-06 22:04:58 -07:00
Gabriel Ebner
bcf44f7020
fix(library/equations_compiler): do not unfold generalized inductives
2017-07-06 22:04:58 -07:00
Gabriel Ebner
5e94ecc841
chore(library/equations_compiler): style
2017-07-06 22:04:58 -07:00
Gabriel Ebner
de587f938c
fix(library/equations_compiler): always use ite for string literals
2017-07-06 22:04:58 -07:00
Gabriel Ebner
50821c9fac
feat(library/equations_compiler): unpack counter-examples in wf recursion
2017-07-06 22:04:58 -07:00
Gabriel Ebner
4286adf868
feat(library/equations_compiler): use underscores for variables in missing cases
2017-07-06 22:04:58 -07:00
Gabriel Ebner
4fee7eaa70
feat(library/equations_compiler/elim_match): provide counter-examples for non-exhaustive matches
2017-07-06 22:04:58 -07:00
Leonardo de Moura
0cfb48c095
fix(library/equations_compiler/util): PR #1731
2017-07-06 21:29:23 -07:00
Sebastian Ullrich
d386e65775
fix(library/equations_compiler/util): noequation: guess arity modulo whnf
2017-07-06 20:59:58 -07:00
Leonardo de Moura
514c1e30c9
fix(library/tactic/dsimplify): issue reported by @semorrison at gitter
...
`dsimp` option `unfold_reducible` was not working correctly.
2017-07-05 21:48:44 -07:00
Leonardo de Moura
1da0bb8f79
chore(library/tactic/smt/smt_state): remove unnecessary include
2017-07-05 21:03:49 -07:00
Leonardo de Moura
cfab344bcc
fix(library/delayed_abstraction): fixes #1728
2017-07-05 17:10:18 -07:00
Leonardo de Moura
1bfaf19277
chore(library/delayed_abstraction): clarify delayed_abstraction API
2017-07-05 16:40:45 -07:00
Sebastian Ullrich
ad97607307
fix(frontends/lean/tactic_notation): always use quote_scope for parsing interactive parameters
...
Replace now redundant `qexpr` parser with `parser.pexpr`
2017-07-04 12:20:38 -07:00
Gabriel Ebner
b0185774a4
fix(library/vm/vm_expr): do not use expr_var as both function and class name
2017-07-04 09:10:35 +02:00
Leonardo de Moura
abef98c772
refactor(library/init/meta/simp_tactic): make sure dunfold tactics use name convention used at simp, dsimp, ...
2017-07-03 21:36:17 -07:00
Leonardo de Moura
6b3e28d30b
feat(library/init/meta/simp_tactic): add option for reducing [reducible] definitions at dsimp, and to_unfold : list name similar to the one in the simp tactic
...
This complete addresses the two pending items at 16711fcdba
2017-07-03 13:28:46 -07:00
Leonardo de Moura
16711fcdba
feat(library/tactic/dsimplify): new configuration options for dsimp
...
TODO for `dsimp`:
- Add an option for reducing [reducible] definitions
- Add (to_unfold : list name) similar to the one in the `simp` tactic
2017-07-02 18:26:03 -07:00
Leonardo de Moura
df091f5c34
feat(library/init/meta/interactive): simp and unfold can unfold projection applications
...
@Armael: we finally can write `simp [proj]` to unfold the `proj`
projection application.
Remark: we still need to add similar support for `dsimp`.
2017-07-02 16:28:04 -07:00
Leonardo de Moura
76eed7cb41
chore(library/init/meta): add to_unfold parameter to simplify, and remove redundant simp* tactics
...
Remark: the `to_unfold` has not been implemented yet.
2017-07-02 15:26:06 -07:00
Leonardo de Moura
d73facb8bc
feat(library/init/meta/expr): add expr.has_local_in
2017-07-01 20:23:37 -07:00
Leonardo de Moura
4604d7fd5a
feat(library/init/meta): allow users to specify tactic for discharging subgoals in the simp tactic family
...
@dselsam @Armael: this feature may be useful for you.
The doc/changes.md describes many other new features.
2017-07-01 15:35:33 -07:00
Leonardo de Moura
7c35fae9e3
refactor(library/init/meta/simp_tactic): merge simplify_core and simplify
2017-07-01 14:13:49 -07:00
Leonardo de Moura
799f0711d6
refactor(library/init/meta/simp_tactic): cleanup simp_lemmas.rewrite_core and simp_lemmas.drewrite_core
2017-07-01 13:04:26 -07:00
Leonardo de Moura
95c7c697a6
refactor(library/tactic/simp_lemmas): simp set generation should not be affected by transparency setting
2017-07-01 12:54:37 -07:00
Leonardo de Moura
677ffd761d
chore(library/tactic/simp_lemmas): do not use whnf when adding simp_lemmas
...
If the users want to normalize, then should use dsimp (or similar
tactic), before adding lemma to simp set.
2017-07-01 12:31:35 -07:00
Leonardo de Moura
e41c4d384d
chore(library/tactic/simp_lemmas): remove unnecessary whnf
2017-07-01 12:17:53 -07:00
Leonardo de Moura
60a14f25df
feat(library/init/meta/simp_tactic): add dunfold_expr back
...
`super` uses it.
2017-07-01 11:00:28 -07:00
Leonardo de Moura
b05c4e09ed
feat(library/init/meta): add memoize field to simp_config and dsimp_config
...
We use `memoize := ff` when implementing `conv.interactive.for` and
`conv.interactive.find`.
2017-07-01 10:37:09 -07:00
Leonardo de Moura
36cc27fa0f
feat(library/init/meta/converter/interactive): add for tactic to conv mode
2017-06-30 21:27:17 -07:00
Leonardo de Moura
b1bdc4690f
feat(library/init/meta/simp_tactic): cleanup dunfold
...
Here are modifications:
- It fails if no definition is unfolded.
See comment https://github.com/leanprover/lean/issues/1694#issuecomment-310956315
at issue #1694
- Users can provide configuration parameters.
- `dunfold_occs` was deleted.
2017-06-30 20:49:20 -07:00
Leonardo de Moura
52d4189805
feat(library/tactic): add dsimp_config configuration object for the dsimp tactic family
...
Now, `dsimp` fails if the goal did not change.
We can use the config object to obtain the previous behavior:
```
dsimp {fail_if_unchaged := ff}
```
See comment https://github.com/leanprover/lean/issues/1694#issuecomment-310956315
at issue #1694
2017-06-30 17:15:10 -07:00
Leonardo de Moura
f7fe2a775c
feat(library/init/meta/rewrite_tactic): improve rewrite tactic
...
`rewrite` tactic improvements
- Add support for `auto_param` and `opt_param`
- Order new goals using the same strategies available for `apply`
- Allow user to set configuration object in interactive mode.
@Armael This commit should address the issue you raised about the order
of new goals in the `rewrite` tactic.
See new test tests/lean/run/rw1.lean for examples.
2017-06-30 12:03:27 -07:00
Gabriel Ebner
c5af2a6f4c
fix(library/module): unfold macros in inductive types
2017-06-30 17:49:50 +02:00
Gabriel Ebner
89c828d630
fix(library/library_task_builder): prevent uninitialized task results when cancelled
2017-06-30 08:32:34 +02:00
Leonardo de Moura
fe51bebab3
refactor(library/init/meta/converter): new conv monad implementation
2017-06-29 16:37:22 -07:00
Leonardo de Moura
5dee3415a4
feat(library/init/meta/simp_tactic): add flag for controlling whether simp-tactics fail when input input expression is not modified
2017-06-29 16:03:20 -07:00
Leonardo de Moura
99d55811e4
feat(library/tactic/match_tactic): automatically convert metavariables occurring in patterns into temporary metavariables (i.e., which are considered during matching)
2017-06-29 11:39:18 -07:00
Leonardo de Moura
a7b895525b
feat(library/tactic/simp_lemmas): simp lemmas may contain metavariables
...
@dselsam `simp` now supports lemmas containing metavariables.
The metavariables are automatically converted into tmp metavars.
The new test contains a few examples.
2017-06-28 18:17:21 -07:00
Leonardo de Moura
1dc3f85e26
feat(library/idx_metavar): add helper function for converting metavariables occurring in an expression into temporary metavariables
2017-06-28 18:06:33 -07:00
Leonardo de Moura
103b5d09b3
feat(library/init/meta/tactic): add option for not creating new subgoals at to_expr
2017-06-28 16:46:29 -07:00
Gabriel Ebner
d6041e3228
fix(library/library_task_builder): fix segfault in cancellation
2017-06-28 17:26:47 +02:00
Mario Carneiro
e705d89490
feat(init/data/int): bitwise ops for integers
2017-06-27 18:55:52 -07:00