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
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
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
253fcdcc51
fix(library/equations_compiler/elim_match): equation lemma generation
2016-08-30 15:00:43 -07:00
Leonardo de Moura
001991dbeb
feat(frontends/lean): use equations_header
2016-08-30 13:45:59 -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
b317d4bc58
refactor(library/tactic): add hsubstitution module
2016-08-29 08:19:05 -07:00
Leonardo de Moura
1a675d69fc
refactor(library/tactic/induction_tactic,library/tactic/cases_tactic): replace name_map<name> with substitutions at induction_tactic
...
This commit also removes dead code from cases_tactic
2016-08-28 14:09:22 -07:00
Leonardo de Moura
f0f9880ece
refactor(library/equations_compiler/elim_match,library/tactic/cases_tactic):
...
new design for elim_match
I still need to fix lemma generation, and refactor induction/subst tactics
2016-08-28 13:15:10 -07:00
Leonardo de Moura
95e8228e8a
refactor(library/tactic/cases_tactic): improve low-level API
2016-08-25 16:34:40 -07:00
Leonardo de Moura
cf15218eea
chore(library/equations_compiler/compiler): add new trace option
2016-08-25 10:45:08 -07:00
Leonardo de Moura
41b6358de6
chore(library/equations_compiler/elim_match): add helper methods
2016-08-25 10:44:50 -07:00
Leonardo de Moura
7851b9c097
fix(frontends/lean/definition_cmds): parameter handling
2016-08-23 21:13:54 -07:00
Leonardo de Moura
a93eada058
feat(library/type_context): improved (and simplified) cache management for type_context
2016-08-23 17:56:58 -07:00
Leonardo de Moura
27e06c80ba
feat(library/equations_compiler/elim_match): generate auxiliary definition and lemmas for match
2016-08-22 17:59:54 -07:00
Leonardo de Moura
d8447b4c53
feat(library/equations_compiler/elim_match): add noequation transition
2016-08-22 13:53:35 -07:00
Leonardo de Moura
714817edd5
fix(library/equations_compiler/util): missing get_constructors_of
2016-08-22 13:42:34 -07:00
Leonardo de Moura
963503838c
fix(library/equations_compiler/util): support for noequation
2016-08-22 13:42:03 -07:00
Leonardo de Moura
9ad64e9176
feat(library/equations_compiler/elim_match): complete transition
2016-08-22 13:23:51 -07:00
Leonardo de Moura
e81d92006b
feat(library/equations_compiler/elim_match): try to use user-provided names in the variable transition
2016-08-21 22:20:31 -07:00
Leonardo de Moura
038a250798
feat(library/equations_compiler/elim_match): add skip transition for inaccessible terms
2016-08-21 22:11:28 -07:00
Leonardo de Moura
9c55ede671
fix(library/equations_compiler/elim_match): constructor transition
2016-08-21 21:49:45 -07:00
Leonardo de Moura
67dc68b24d
feat(library/equations_compiler/elim_match): add variable/constructor transitions
2016-08-21 15:56:32 -07:00
Leonardo de Moura
2d90c73546
chore(library/equations_compiler/util): add helper method
2016-08-21 15:55:56 -07:00
Leonardo de Moura
ab6ea747ad
feat(library/equations_compiler/elim_match): elim_match main recursion skeleton
2016-08-19 09:25:13 -07:00
Leonardo de Moura
ccf0021cff
fix(library/equations_compiler/elim_match): cover more cases in value transition
2016-08-19 07:59:17 -07:00
Leonardo de Moura
9f77ca1ab1
feat(library/equations_compiler/elim_match): add is_value_transition
2016-08-18 22:03:01 -07:00
Leonardo de Moura
06b02e4912
chore(library/equations_compiler): test elim_match on nonrec equations
2016-08-18 21:00:57 -07:00
Leonardo de Moura
e68fbbc12c
chore(library/equations_compiler/elim_match): fix style and test output
2016-08-18 18:09:36 -07:00
Leonardo de Moura
7cbc178a32
feat(library/equations_compiler): add transition classifiers
2016-08-18 17:55:30 -07:00
Leonardo de Moura
ec433a193c
feat(library/equations_compiler/elim_match): add primitive for tracing intermediate states when eliminating dependent pattern matching
2016-08-18 15:36:13 -07:00
Leonardo de Moura
475b75f661
feat(library/equations_compiler/elim_match): refactor 'program' structure
2016-08-18 14:17:49 -07:00
Leonardo de Moura
05013fb61d
feat(library/equations_compiler): add elim_match skeleton
2016-08-17 21:38:23 -07:00
Leonardo de Moura
bfeb119c0c
feat(library/equations_compiler/pack_domain): avoid unnecessary 'unit' type when packing
2016-08-16 13:59:47 -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
Leonardo de Moura
9a63936339
refactor(library/equations_compiler): move pack_domain to new module
2016-08-15 08:22:23 -07:00
Leonardo de Moura
12cd8bf33c
feat(library/equations_compiler/util): pack_equations_domain does nothing if function is already unary
2016-08-14 17:12:25 -07:00
Leonardo de Moura
7059609f57
feat(library/equations_compiler): equations_compiler stub, add helper equations_editor, add preprocessing
...
The first preprocessing step packs nary functions into unary using sigma types
2016-08-14 17:02:36 -07:00