Leonardo de Moura
d6d68cd70a
feat(library/vm): expose reducibility_hints
2016-09-04 18:09:10 -07:00
Leonardo de Moura
e8397681a5
fix(library/tactic/induction_tactic): normalize type in the induction tactic
2016-09-04 17:36:26 -07:00
Leonardo de Moura
120bffce25
chore(library/equations_compiler/elim_match): add cases/induction tactic error message to trace
2016-09-04 17:33:26 -07:00
Leonardo de Moura
6c80f7b75c
feat(library/tactic/cases_tactic): normalize type
2016-09-04 17:18:50 -07:00
Leonardo de Moura
2354341c58
test(tests/lean/run): add test for equation compiler
2016-09-04 16:46:11 -07:00
Leonardo de Moura
0b2c3659cf
perf(library/compiler/nat_value): replace all numerals with nat_value_macro
...
Reason: Later we try to type check the compiler intermediate results.
If only some of the numerals are converted, we may spend a lot of time
making sure the two different representations are equivalent.
2016-09-04 16:42:40 -07:00
Leonardo de Moura
f7df7dc9a7
refactor(kernel): add reducibility_hints
2016-09-04 16:30:02 -07:00
Leonardo de Moura
7c535a53d6
chore(*): fix warnings messages
2016-09-04 09:20:19 -07:00
Leonardo de Moura
a74f02546b
refactor(*): remove abbreviation command
2016-09-03 17:11:29 -07:00
Leonardo de Moura
9a17d567ec
refactor(library/init/datatypes): remove notation nobody uses
2016-09-03 16:59:55 -07:00
Leonardo de Moura
696b190a8d
feat(library/type_context): mimic behavior of the kernel type_checker
2016-09-03 16:43:33 -07:00
Leonardo de Moura
dfc897eda6
refactor(library/init): avoid nat cases_on/rec_on hack
2016-09-03 16:22:20 -07:00
Leonardo de Moura
01a2c32d38
fix(library/old_default_converter): avoid underflow
2016-09-03 16:21:34 -07:00
Leonardo de Moura
80607c8895
perf(kernel/type_checker): use definitional height again at is_def_eq
2016-09-03 16:18:39 -07:00
Leonardo de Moura
567d6824f4
chore(library/compiler/preprocess): mark assertions as conditional
...
is_def_eq may take a very long time after the transformations are applied.
2016-09-03 16:15:22 -07:00
Leonardo de Moura
a862c6e89f
refactor(library/init/meta/declaration): def will be a keyword
2016-09-03 15:02:27 -07:00
Leonardo de Moura
029766495b
feat(library/equations_compiler/util): try to improve performance of lemma generation
...
There are still performance problems. Lemma generation is fine, but the
kernel is timing out when checking the lemma. We need to provide hints
to the kernel to avoid the performance problem.
2016-09-03 13:24:44 -07:00
Leonardo de Moura
cfbffb41ef
feat(library/equations_compiler): prove equation lemmas that use if-then-else
2016-09-03 13:23:09 -07:00
Leonardo de Moura
4d7c233684
feat(library/equations_compiler/elim_match): use if-then-else when next pattern for every equation is a variable or value
2016-09-03 13:22:25 -07:00
Leonardo de Moura
3bc5cf8d0e
feat(frontends/lean/elaborator): improve error message
2016-09-03 13:21:54 -07:00
Leonardo de Moura
a60f4e2699
fix(library/type_context): index out of bounds
2016-09-03 13:21:54 -07:00
Leonardo de Moura
4875741a37
feat(library/app_builder): add mk_ite
2016-09-02 17:04:01 -07:00
Leonardo de Moura
6dcf0725d7
fix(library/equations_compiler): erase inaccessible annotations
2016-09-02 14:11:03 -07:00
Leonardo de Moura
13f0d4e09a
refactor(library/equations_compiler): new equation lemma generation
...
The idea is to generate a lemma based on the left-hand-side provided by
the user. This feature is essential for supporting the derived inductive
datatype constructors.
2016-09-02 14:04:09 -07:00
Leonardo de Moura
7724fbed93
fix(library/equations_compiler/elim_match): do not use constructor transition for below arguments
2016-09-02 12:51:39 -07:00
Leonardo de Moura
b3d78208be
fix(library/equations_compiler/elim_match): typo
2016-09-02 12:39:21 -07:00
Leonardo de Moura
3e4d8d0f75
fix(library/equations_compiler/elim_match): dead variable
2016-09-02 12:39:05 -07:00
Leonardo de Moura
bf096eb292
chore(library/equations_compiler/structural_rec): "lemmas" ==> "equations"
2016-09-02 11:17:38 -07:00
Leonardo de Moura
691b200244
feat(library/equations_compiler/util): add [eqn_sanitizer] attribute for defeq lemmas that should be automatically applied
2016-09-02 11:06:31 -07:00
Leonardo de Moura
5e4aabf62d
feat(library/init/datatypes): add default has_sizeof instance
...
Motivation: make sure sizeof is defined for every type
2016-09-02 10:32:37 -07:00
Leonardo de Moura
0afef31be6
feat(library/tactic/defeq_simplifier): reimplement defeq simp lemma cache
2016-09-02 09:10:09 -07:00
Leonardo de Moura
02316c39b8
feat(frontends/lean/elaborator): throw an error if a local instance is declared in the middle of a declaration
2016-09-01 18:06:38 -07:00
Leonardo de Moura
0ec22bb2cf
refactor(library/type_context): new type class instance cache
2016-09-01 17:37:30 -07:00
Leonardo de Moura
ef9f9f1de0
fix(library/type_context): make sure local instances are not reset at set_env
2016-09-01 15:12:32 -07:00
Leonardo de Moura
9a2c95f35a
test(tests/lean): add test for unset_attribute tactic
2016-09-01 14:50:03 -07:00
Leonardo de Moura
a38264439f
fix(library/attribute_manager): get_instances returns deleted instances
2016-09-01 14:48:03 -07:00
Leonardo de Moura
39dc336310
feat(library/tactic/user_attribute): add set_basic_attribute and unset_attribute tactics
2016-09-01 14:17:05 -07:00
Leonardo de Moura
546f65b542
refactor(init/datatypes, init/logic): define sizeof instances and simp lemmas
2016-09-01 10:33:50 -07:00
Leonardo de Moura
49e368d49e
refactor(library/init): merge datatypes and reserved_notation
2016-09-01 09:50:51 -07:00
Leonardo de Moura
4131b4168c
refactor(library/init): define sizeof at init/datatypes
2016-09-01 09:47:46 -07:00
Leonardo de Moura
ff05f16caa
fix(library/type_context): store instance fingerprint
2016-09-01 09:01:43 -07:00
Leonardo de Moura
e061e9acab
refactor(frontends/lean/elaborator): remove elaborator::ctx()
...
The plan is to make `type_context` a transient object in the elaborator.
2016-09-01 08:28:30 -07:00
Leonardo de Moura
381f2dc434
chore(frontends/lean/elaborator): simplify mk_pp_ctx
2016-09-01 08:15:36 -07:00
Leonardo de Moura
cc6d764c6c
refactor(library/tactic/defeq_simplifier): use new type_context
2016-08-31 17:52:47 -07:00
Leonardo de Moura
3384139d38
chore(library/tactic/defeq_simplifier): improve error messages
2016-08-31 17:52:36 -07:00
Leonardo de Moura
54fd9adb47
feat(library/equations_compiler): use defeq simplifier to cleanup types of automatically synthesized lemmas
2016-08-31 15:54:03 -07:00
Leonardo de Moura
4e33ca472d
feat(library/tactic/defeq_simplifier): add helper function
2016-08-31 15:12:19 -07:00
Leonardo de Moura
51a338d9a1
fix(library/equations_compiler/structural_rec): support for reflexive inductive datatypes
2016-08-31 10:46:32 -07:00
Leonardo de Moura
924c98832b
feat(library/equations_compiler/structural_rec): generate eqn lemmas at structural_rec
2016-08-31 09:07:17 -07:00
Leonardo de Moura
33514dd6ea
feat(library/equations_compiler/structural_rec): process aux lemmas
2016-08-30 20:09:57 -07:00