Commit graph

106 commits

Author SHA1 Message Date
Leonardo de Moura
ebd912d243 feat(library/eqn_lemmas): add map function name => equational lemmas 2016-10-09 11:48:55 -07:00
Leonardo de Moura
476684a284 refactor(library,library/tactic/defeq_simplifier): use simp_lemmas in the defeq_simplifier 2016-10-08 22:15:27 -07:00
Leonardo de Moura
1e93c2c235 refactor(library/rfl_lemmas): simplify 2016-10-06 16:49:20 -07:00
Leonardo de Moura
d0d75c0923 refactor(kernel): reduce number of configurations supported in the kernel
Now, eta and impredicativity are assumed to be always true.

Motivation: the rest of the system assumes eta.
Regarding impredicativity, we decided to support only the standard library.
2016-09-27 17:07:01 -07:00
Leonardo de Moura
823357462e feat(library/equations_compiler/structural_rec): validation 2016-09-23 13:50:55 -07:00
Leonardo de Moura
9068dd9a88 chore(library/equations_compiler/equations): style 2016-09-23 10:05:18 -07:00
Leonardo de Moura
c8e13cd391 feat(frontends/lean): minimize errors being reported 2016-09-23 09:20:31 -07:00
Leonardo de Moura
5e5285ee67 refactor(library): rename pr1/pr2 ==> fst/snd 2016-09-21 09:48:39 -07:00
Leonardo de Moura
89f62edaf0 refactor(library): reduce dependecies on old code, simplify normalize module 2016-09-19 22:12:34 -07:00
Leonardo de Moura
c66dbf202b chore(library/equations_compiler): remove old equation compiler 2016-09-19 17:13:30 -07:00
Leonardo de Moura
9a967001be chore(library/equations_compiler/compiler): use exception until well_founded recursion support is implemented 2016-09-19 14:41:25 -07:00
Leonardo de Moura
9d9f2b2636 fix(library/equations_compiler/structural_rec): bug at check_arg_type 2016-09-18 18:36:20 -07:00
Leonardo de Moura
5df705ebe8 fix(library/equations_compiler/compiler): nested match-exprs in meta_definitions 2016-09-18 17:20:52 -07:00
Leonardo de Moura
194d1be0dd fix(library/equations_compiler/structural_rec): reflexive type support 2016-09-18 16:15:31 -07:00
Leonardo de Moura
6657876566 feat(library/equations_compiler): add support for meta_definitions 2016-09-18 10:52:38 -07:00
Leonardo de Moura
7fb407d2fd fix(library/equations_compiler/structural_rec): typo 2016-09-16 07:56:28 -07:00
Leonardo de Moura
2248dccfd4 feat(library/equations_compiler/elim_match): do not create auxiliary definition when compiling meta-definitions and/or lemmas 2016-09-12 12:54:01 -07:00
Leonardo de Moura
d43764b6fb refactor(library/tactic/defeq_simplifier): move defeq_simp_lemmas to library
This commit also renames them to "rfl_lemmas".
Reason: these lemmas will be used at type_context::is_def_eq and type_context::whnf
2016-09-12 10:36:11 -07:00
Leonardo de Moura
6ac64c7250 feat(library/equations_compiler/elim_match): make process_transport more robust 2016-09-11 16:21:15 -07:00
Leonardo de Moura
932d14241b chore(kernel): remove support for mutually inductive datatypes from the kernel 2016-09-10 17:39:17 -07:00
Leonardo de Moura
e6dd5242fc feat(library/equations_compiler): add option eqn_compiler.zeta 2016-09-10 14:00:16 -07:00
Leonardo de Moura
50ef0185d9 fix(library/equations_compiler/structural_rec): missing relaxed_whnf 2016-09-10 12:14:00 -07:00
Leonardo de Moura
96d27b6b8f fix(library/equations_compiler/elim_match): missing case for is_complete_transition 2016-09-10 12:13:31 -07:00
Leonardo de Moura
4df0c1fe93 feat(library/equations_compiler/compiler): do not use let-expresssions at pull_nested_rec_fn 2016-09-09 18:20:36 -07:00
Leonardo de Moura
c25ac7f54f feat(library/equations_compiler): pull nested recursive calls 2016-09-09 17:56:56 -07:00
Leonardo de Moura
1d5f0895d4 chore(library/equations_compiler/util): disable sanitizer by default 2016-09-09 17:53:13 -07:00
Leonardo de Moura
a0fb3eb2f9 feat(library/equations_compiler/equations): add helper function 2016-09-09 17:43:42 -07:00
Leonardo de Moura
15f3622cbb fix(library/equations_compiler/pack_domain): missing case 2016-09-09 13:39:51 -07:00
Leonardo de Moura
c1521b8416 feat(library/equations_compiler/elim_match): improve process_no_equation case 2016-09-09 12:40:16 -07:00
Leonardo de Moura
f64d1483e9 fix(library/equations_compiler/elim_match): avoid nontermination at process_no_equation 2016-09-09 09:00:57 -07:00
Leonardo de Moura
3857ae09f7 feat(library/equations_compiler/elim_match): add max number of steps 2016-09-09 08:48:34 -07:00
Leonardo de Moura
96fa8856bc feat(library/equations_compiler): add mk_nonrec 2016-09-08 14:09:05 -07:00
Leonardo de Moura
14d009ce92 refactor(library/equations_compiler): improve mk_equation_lemma 2016-09-08 11:50:58 -07:00
Leonardo de Moura
f4f92ed2d1 chore(library/equations_compiler/util): add comment 2016-09-08 10:28:30 -07:00
Leonardo de Moura
7d56382baa feat(library/equations_compiler/util): generate equation lemmas for equations using invertible functions 2016-09-07 17:57:10 -07:00
Leonardo de Moura
f7699d8719 fix(library/equations_compiler/elim_match): support dependent functions handling invertible functions 2016-09-07 16:04:08 -07:00
Leonardo de Moura
2f7a1a3579 feat(library/equations_compiler/elim_match): add support for invertible functions 2016-09-07 08:53:56 -07:00
Leonardo de Moura
bedb508a8f feat(library/equations_compiler): do not generate bytecode for lemmas 2016-09-06 15:14:47 -07:00
Leonardo de Moura
c9cee9a702 feat(library/equations_compiler): add flag indicating whether we are compiling a lemma or not 2016-09-06 15:09:54 -07:00
Leonardo de Moura
385a28a410 chore(library/equations_compiler/util): use nested_exception 2016-09-06 13:37:10 -07:00
Leonardo de Moura
01107f7aae feat(library/equations_compiler): generate bytecode for auxiliary definitions 2016-09-06 13:29:12 -07:00
Leonardo de Moura
ff9500d7f9 feat(library/exception): add nested_exception 2016-09-06 12:57:06 -07:00
Leonardo de Moura
d8caecff49 refactor(library/exception): avoid throw_generic_exception functions 2016-09-06 12:37:56 -07:00
Leonardo de Moura
a0b8766ffb refactor(library): merge exception modules 2016-09-06 09:12: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
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
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