Leonardo de Moura
d6a483fe84
feat(library): add idx_metavar module
2015-06-08 16:02:37 -07:00
Leonardo de Moura
0e099b5fd8
feat(library/tactic/rewrite_tactic): apply beta&eta reduction before rewriting steps, add option 'rewrite.beta_eta' (default true) to control new feature.
2015-06-06 20:43:52 -07:00
Leonardo de Moura
1cbace9df6
feat(library/tactic/congruence_tactic): add congruence lemma generator
...
The generated congruence theorems ignore arguments that are subsingleton types.
2015-06-05 22:00:10 -07:00
Leonardo de Moura
d0d3f9bb41
refactor(kernel,library,frontends/lean): add helper functions, and cleanup collect_locals
2015-06-05 17:29:36 -07:00
Leonardo de Moura
68688ecdf6
fix(library/tactic/subst_tactic): in the standard mode, use dependent elimination in the subst tactic (when needed)
...
Before this commit, the subst tactic was producing an type incorrect
result when dependent elimination was needed (see new test for an example).
2015-06-03 17:36:04 -07:00
Leonardo de Moura
d547698a56
refactor(library,library/tactic): move class_instance_synth to library
...
This module will be needed by the simplifier
2015-06-01 16:30:40 -07:00
Leonardo de Moura
8a89588079
refactor(library,library/tactic): move auxiliary procedures from tactic to library
2015-06-01 16:19:55 -07:00
Leonardo de Moura
ca110012d8
feat(library/tactic): automate "generalize-intro-induction/cases" idiom
...
closes #645
2015-05-30 21:57:28 -07:00
Leonardo de Moura
c07d14e94a
fix(library/tactic/rewrite_tactic): incorrect assertion
2015-05-29 15:59:03 -07:00
Leonardo de Moura
85409a59d3
feat(library/tactic/rewrite_tactic): add xrewrite and krewrite tactic variants
...
closes #511
2015-05-27 16:32:43 -07:00
Leonardo de Moura
7d73f4f091
refactor(library,frontends/lean): simplify the creation of custom normalizers
2015-05-27 15:33:20 -07:00
Leonardo de Moura
ed01242bc1
chore(library/tactic/apply_tactic): remove dead code
2015-05-26 12:18:50 -07:00
Leonardo de Moura
7f0951b8e7
feat(library/tactic): improve assumption tactic performance
2015-05-25 20:22:37 -07:00
Leonardo de Moura
d0987eb3ac
feat(library/tactic): add 'subtvars' tactic
2015-05-25 16:36:44 -07:00
Leonardo de Moura
a3f23d5233
feat(library/tactic): add improved 'subst' tactic
2015-05-25 15:03:59 -07:00
Leonardo de Moura
f13ca3cd9a
feat(library/tactic/contradiction_tactic): handle (h1 : p) and (h2 : not p) hypotheses in the contradiction tactic
2015-05-25 10:29:51 -07:00
Leonardo de Moura
88975927e6
fix(library/tactic/relation_tactics): beta-reduce goal before trying to extract head symbol
2015-05-24 18:56:35 -07:00
Leonardo de Moura
004ea80e65
fix(library/tactic/rewrite_tactic): apply beta reduction when selecting patterns
2015-05-24 18:44:30 -07:00
Leonardo de Moura
b83b0c0017
fix(library/tactic/induction_tactic): fixes #619
2015-05-21 18:22:07 -07:00
Leonardo de Moura
f830bf54c2
refactor(*): clarify name_generator ownership
2015-05-21 14:32:36 -07:00
Leonardo de Moura
c2faa0fe98
refactor(library): rename equivalence_manager to relation_manager
2015-05-21 12:25:02 -07:00
Leonardo de Moura
2b4233ee8e
fix(library/tactic/induction_tactic): exception handling
2015-05-21 10:15:49 -07:00
Leonardo de Moura
d6b72ef4d7
feat(library/tactic/induction_tactic): try available recursors until one works
...
closes #615
2015-05-20 23:23:05 -07:00
Leonardo de Moura
2164ba6f20
fix(library/tactic/induction_tactic): fixes #614
2015-05-20 23:14:11 -07:00
Leonardo de Moura
51d4644832
fix(library/tactic/induction_tactic): fixes #613
2015-05-20 22:26:50 -07:00
Leonardo de Moura
5508e4b132
feat(library/tactic/induction_tactic): type class inference for minor premises
...
closes #611
2015-05-20 20:48:33 -07:00
Leonardo de Moura
029f374a69
fix(library/tactic/induction_tactic): fixes #610
2015-05-20 20:28:02 -07:00
Leonardo de Moura
3e87f09d78
feat(library/tactic/induction_tactic): add support for user-defined recursors that contain parameters that should be synthesized by type class resolution
2015-05-19 15:33:46 -07:00
Leonardo de Moura
78ee055de8
feat(library/tactic): add induction tactic with support for user defined recursors
...
closes #483
closes #492
2015-05-19 13:27:17 -07:00
Leonardo de Moura
b1ece388a6
feat(frontends/lean,library/tactic/induction_tactic): improve induction tactic notation, expand induction tactic implementation
2015-05-18 09:25:07 -07:00
Leonardo de Moura
4256984803
fix(library/tactic/inversion_tactic): incorrect check
2015-05-18 09:16:07 -07:00
Leonardo de Moura
d41bff8c43
feat(library): add helper function
2015-05-18 09:16:07 -07:00
Leonardo de Moura
84faef5d5d
feat(library/tactic/rewrite_tactic): rewrite tactic with 'iff' lemmas
2015-05-14 18:27:13 -07:00
Sebastian Ullrich
77c20e99ff
feat(library/tactic/inversion_tactic): consistent orientation of generated equalities
...
Generated equalities in proof irrelevant environments were inverted
compared with the documentation and the proof relevant case, which
resulted in newly generated local vars replacing equivalent old ones
instead of the other way around.
2015-05-14 23:32:54 +02:00
Leonardo de Moura
065a1f7501
feat(library/tactic): add 'induction' tactic skeleton
2015-05-12 20:21:25 -07:00
Leonardo de Moura
9649d540c0
fix(library/tactic/rewrite_tactic.cpp): memory leak
2015-05-11 16:19:17 -07:00
Leonardo de Moura
207e8e86da
fix(library/definitional/equations): do not clear eliminated hypotheses when invoking 'cases' tactic from definitional package
2015-05-10 11:08:02 -07:00
Leonardo de Moura
6c958a25e7
refactor(library/tactic/expr_to_tactic): make sure builtin tactics don't need to be marked opaque
...
This modification is needed since we will remove opaque definitions from
the kernel.
see issue #576
2015-05-08 16:06:16 -07:00
Leonardo de Moura
57ea660963
refactor(*): start process for eliminating of opaque
definitions from the kernel
...
see issue #576
2015-05-08 16:06:04 -07:00
Leonardo de Moura
061e26157e
fix(kernel,library): make sure macros check relevant arguments when kernel is performing full type checking
2015-05-08 12:41:23 -07:00
Leonardo de Moura
72663e8a06
feat(library/tactic/rewrite_tactic): take hypotheses into account when checking rewrite step
2015-05-08 11:34:50 -07:00
Leonardo de Moura
0b57f7d00a
refactor(library/tactic): refine interface between tactic and proof-term modes
...
Some constraints were being lost with the previous interface.
This is why we had a workaround in fintype.lean.
We can also remove some hacks we have used in the past.
2015-05-07 18:02:51 -07:00
Leonardo de Moura
ac24f19210
fix(library/tactic/rewrite_tactic): use relaxed type checker when processing rewrite "proof step"
...
That is, the restricted type checker should only be used in the
matching/unification step.
fixes #583
2015-05-07 09:57:23 -07:00
Leonardo de Moura
e0b7017435
feat(frontends/lean): make sure the proof state bit "report errors" is
...
set in the beginning of each begin-end element
see discussion at #583
2015-05-07 09:43:39 -07:00
Leonardo de Moura
210cae7d6c
fix(library/tactic): we must unfold untrusted macros when type checking intermediate results
...
Example: before this commit, the file librata/data/list/perm.lean would
not type check if the option -t 0 (trust level zero) was provided.
Reason: the intermediate term contained a macro, and macros are not
allowed at trust level zero.
2015-05-06 14:23:58 -07:00
Leonardo de Moura
84deddcca9
feat(library/tactic/rewrite_tactic): apply 'reflexivity' tactic after 'rewrite' instead of hard coded solution
2015-05-05 20:23:49 -07:00
Leonardo de Moura
c7a20644c0
fix(library/tactic/rewrite_tactic): bug in rewrite tactic (HoTT mode)
...
closes #580
2015-05-05 19:25:15 -07:00
Leonardo de Moura
a4efefb6ff
feat(library/tactic/rewrite_tactic): display type error message when
...
rewrite tactic fails
2015-05-05 19:23:41 -07:00
Leonardo de Moura
616f49c2e4
feat(frontends/lean): improved 'obtains' expression
2015-05-05 18:30:16 -07:00
Leonardo de Moura
3c8c75470f
fix(library/tactic/exact_tactic): do not report unassigned metavariables in the 'refine' tactic
2015-05-03 21:08:09 -07:00