Commit graph

31 commits

Author SHA1 Message Date
Leonardo de Moura
aa0abd5cef fix(library/equations_compiler/structural_rec): bug in decoder 2016-12-18 22:51:02 -08:00
Leonardo de Moura
b75e8b99f5 fix(library/equations_compiler/structural_rec): missing case: reflexive inductive type eliminating into Prop
see #1199
2016-11-23 13:56:01 -08:00
Leonardo de Moura
823357462e feat(library/equations_compiler/structural_rec): validation 2016-09-23 13:50:55 -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
9d9f2b2636 fix(library/equations_compiler/structural_rec): bug at check_arg_type 2016-09-18 18:36:20 -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
7fb407d2fd fix(library/equations_compiler/structural_rec): typo 2016-09-16 07:56:28 -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
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
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
01107f7aae feat(library/equations_compiler): generate bytecode for auxiliary definitions 2016-09-06 13:29:12 -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
cfbffb41ef feat(library/equations_compiler): prove equation lemmas that use if-then-else 2016-09-03 13:23:09 -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
bf096eb292 chore(library/equations_compiler/structural_rec): "lemmas" ==> "equations" 2016-09-02 11:17:38 -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
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
Leonardo de Moura
2fc0e5fa05 feat(library/equations_compiler/structural_rec): add aux definition 2016-08-30 18:33:24 -07:00
Leonardo de Moura
230db1bc92 feat(library/equations_compiler/structural_rec): generate brec_on-based function
We still need to generate lemmas and induction principle.
2016-08-29 15:58:13 -07:00
Leonardo de Moura
f1f45cc2b7 feat(library/equations_compiler/structural_rec): better support for structural recursion (based on brec_on)
For example, before this commit, structural_rec would not support the
function to_nat defined below.

```
set_option new_elaborator true

inductive foo : bool → Type
| Z  : foo ff
| O  : foo ff → foo tt
| E  : foo tt → foo ff

definition to_nat : ∀ {b}, foo b → nat
| .ff Z     := 0
| .tt (O n) := to_nat n + 1
| .ff (E n) := to_nat n + 1
```
2016-08-29 10:51:09 -07:00
Leonardo de Moura
b08af16d5f refactor(library/equations_compiler): remove unnecessary abstraction
We changed how we are going to process derived inductive datatypes.
2016-08-29 09:25:01 -07:00
Leonardo de Moura
7669e18c77 feat(library/equations_compiler): add unbounded_rec 2016-08-16 12:54:54 -07:00
Leonardo de Moura
532a38befa feat(library/equations_compiler/structural_rec): finish structural recursion step 2016-08-16 08:08:51 -07:00
Leonardo de Moura
8b67480cee feat(library/equations_compiler): add step for handling structural recursion 2016-08-15 18:00:25 -07:00