Commit graph

3310 commits

Author SHA1 Message Date
Leonardo de Moura
38f7f9bbdc fix(library/type_context): ignore unification constraints of the form ?m =?= delayed[?m] 2016-09-11 17:25:30 -07:00
Leonardo de Moura
2e609c8539 fix(library/type_context): support for delayed_abstraction at check_assignment 2016-09-11 17:12:32 -07:00
Leonardo de Moura
24f76d5260 feat(frontends/lean/elaborator): improve convoy and elim 2016-09-10 22:51:26 -07:00
Leonardo de Moura
ef5350759b chore(library/init/quot): annotate quot eliminators 2016-09-10 22:51:07 -07:00
Leonardo de Moura
61f7702940 feat(frontends/lean/elaborator): disable checks 2016-09-10 22:50:29 -07:00
Leonardo de Moura
214e91d1ae feat(frontends/lean/elaborator): improve match_convoy in the new elaborator 2016-09-10 21:41:40 -07:00
Leonardo de Moura
318c94bfce fix(kernel/inductive/inductive): kernel should reject inductive datatype declaration for I where I occurs in an index 2016-09-10 17:45:58 -07:00
Daniel Selsam
b0c5744eea feat(inductive_compiler): support for mutually inductive types 2016-09-10 14:22:27 -07:00
Leonardo de Moura
019f40c48c feat(frontends/lean/decl_util): avoid _main in nested auxiliary declarations 2016-09-10 14:13:30 -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
91994ff823 feat(frontends/lean/elaborator): switch to new let-decls 2016-09-10 13:00:53 -07:00
Leonardo de Moura
8d9e508a11 fix(frontends/lean/structure_cmd): leftover 2016-09-10 12:57:24 -07:00
Leonardo de Moura
da966eeba0 chore(tests/lean): delete old tests 2016-09-10 12:13:11 -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
77bbd1e4e7 test(tests/lean/run): add more tests for new elaborator 2016-09-09 12:39:37 -07:00
Leonardo de Moura
fc0230730d feat(frontends/lean/elaborator): make sure all equations have the same number of patterns 2016-09-09 12:13:41 -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
cef118cbda chore(tests/lean/run/new_elab1): make sure new elaborator is used in the test 2016-09-08 19:24:39 -07:00
Leonardo de Moura
89bc55aece feat(frontends/lean/elaborator): improve expected type for equation rhs 2016-09-08 19:22:26 -07:00
Leonardo de Moura
23e443ef71 feat(frontends/lean/elaborator): add support for no_confusion in the new elaborator 2016-09-08 18:48:48 -07:00
Leonardo de Moura
b12fa5c8da feat(frontends/lean): add support for 'suffices'-expression in the new elaborator 2016-09-08 17:26:27 -07:00
Leonardo de Moura
dcc314c109 feat(library/noncomputable): improve is_noncomputable 2016-09-08 14:02:23 -07:00
Leonardo de Moura
5c7150c813 fix(frontends/lean/elaborator): make sure equations do not contain unassigned metavars before using eqn compiler 2016-09-08 10:47:15 -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
57f02dd768 test(tests/lean/run/pack_unpack1): add dependent function example 2016-09-07 16:05:05 -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
f954ddbdbf feat(library/injectivity): add injectivity attribute 2016-09-06 18:01:09 -07:00
Leonardo de Moura
31de40ff4d refactor(frontends/lean): rename attribute [constructor] ==> [elab_with_expected_type] 2016-09-06 13:12:51 -07:00
Leonardo de Moura
d5aae42b7c feat(frontends/lean): use new elaborator to elaborate examples when set_option new_elaborator true 2016-09-05 09:52:01 -07:00
Leonardo de Moura
2a912c2650 feat(frontends/lean, library): move constructor attribute to frontend
Now, it only affects the elaborator.
2016-09-05 09:34:45 -07:00
Leonardo de Moura
81a30a69d2 refactor(library/normalize): remove unfold and unfold_full attributes 2016-09-05 08:40:58 -07:00
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
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
a74f02546b refactor(*): remove abbreviation command 2016-09-03 17:11:29 -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
80607c8895 perf(kernel/type_checker): use definitional height again at is_def_eq 2016-09-03 16:18:39 -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
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
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
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
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
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