Commit graph

1156 commits

Author SHA1 Message Date
Leonardo de Moura
9e601cb1cd feat(library/init/nat): port nat.lean to new elaborator 2016-09-12 13:43:08 -07:00
Sebastian Ullrich
5e3e54e208 feat(library/tactic/user_attribute): Support pure function caching for user-defined attributes 2016-09-12 10:38:48 -07:00
Leonardo de Moura
ef5350759b chore(library/init/quot): annotate quot eliminators 2016-09-10 22:51:07 -07:00
Leonardo de Moura
f53ff9a3b6 feat(frontends/lean/elaborator): add [elab_as_eliminator] attribute 2016-09-10 21:58:30 -07:00
Daniel Selsam
b0c5744eea feat(inductive_compiler): support for mutually inductive types 2016-09-10 14:22:27 -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
2a7d259252 refactor(library/init/nat): cleanup 2016-09-08 19:19:43 -07:00
Leonardo de Moura
c6d44d2e49 chore(library/init/nat): fix style 2016-09-08 16:31:42 -07:00
Leonardo de Moura
5043e30c8e feat(library/init/nat): add helper lemmas for proving that two nat numerals are different 2016-09-08 16:29:44 -07:00
Leonardo de Moura
983d15e486 chore(library/init/quot): remove unnecessary universe constraint 2016-09-06 18:01:26 -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
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
89e852446a feat(library/init/id_locked): add auxiliary definition id_locked 2016-09-04 18:39:34 -07:00
Leonardo de Moura
7747c83915 doc(library/init/meta/declaration): document reducibility_hints 2016-09-04 18:29:24 -07:00
Leonardo de Moura
d6d68cd70a feat(library/vm): expose reducibility_hints 2016-09-04 18:09:10 -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
dfc897eda6 refactor(library/init): avoid nat cases_on/rec_on hack 2016-09-03 16:22:20 -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
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
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
Jeremy Avigad
48a1267eac fix(library/init/applicative.lean): delete leftover from debugging 2016-08-23 21:54:09 -07:00
Jeremy Avigad
8c89620f79 fix(library/init/state): remove spurious argument from 'read' 2016-08-23 21:53:57 -07:00
Leonardo de Moura
e18500dcd4 feat(frontends/lean/parser): _ is an anonymous variable again in patterns. 2016-08-23 14:06:24 -07:00
Leonardo de Moura
e4fd627ae2 feat(library/attribute_manager): fingerprints
The fingerprint changes whenever a new attribute is added.
2016-08-23 08:20:37 -07:00
Jeremy Avigad
345defded4 feat(library/init/meta/rb_map): a useful variant of red black maps 2016-08-21 22:31:54 -07:00
Jeremy Avigad
0304d1ceab feat(library/init/monad_combinators): add monad combinators 2016-08-21 22:31:54 -07:00
Jeremy Avigad
766f3f18ee feat(library/init/meta/tactic): generalize first for any return type 2016-08-21 22:31:54 -07:00
Jeremy Avigad
4af0e0a2de fix(library/init/meta/simp_tactic): fix typo 2016-08-21 22:31:54 -07:00
Daniel Selsam
4f8db64e23 refactor(simplifier): many fixes, extensions, and tests
fix(simplifier): missing simp rule in prop simplifier
fix(library/unfold_macros): do not look for untrusted macros when using sufficient trust level
2016-08-19 14:57:03 -07:00
Leonardo de Moura
e99eb6d47e feat(frontends/lean): revising inaccessible terms syntax again :( 2016-08-19 13:57:12 -07:00
Leonardo de Moura
50c147cd0e feat(frontends/lean/parser): allow string literals in patterns 2016-08-18 21:00:27 -07:00
Sebastian Ullrich
21e8c23ed7 feat(library/vm/user_attribute): use command instead of attribute for registering 2016-08-18 15:51:41 -07:00
Sebastian Ullrich
ca8be3857c feat(library/user_attribute): add user-defined attributes and make attribute_manager environment-aware 2016-08-18 12:56:44 -07:00
Leonardo de Moura
cd77f7167e chore(frontends/lean): run_tactic ==> run_command
add `command` as alias for `tactic unit`
2016-08-18 12:53:21 -07:00
Leonardo de Moura
db7b32cf0d fix(library/init/nat): missing annotations 2016-08-18 11:00:31 -07:00
Leonardo de Moura
ddc3789929 feat(frontends/lean): add run_tactic command
This commit also adds the tactic `add_decl`.
2016-08-18 10:56:18 -07:00
Leonardo de Moura
6a880d51a4 feat(library/init): define nat.mod in the init folder too 2016-08-18 10:51:40 -07:00
Leonardo de Moura
93d395ecc7 feat(library/init): make sure nat.div is defined in the init folder 2016-08-18 10:48:47 -07:00
Leonardo de Moura
b37c96d2ea chore(library/init/nat): remove 'local attribute' hack
It is not needed anymore. All attributes are now global.
2016-08-18 10:44:33 -07:00
Leonardo de Moura
93d48ae620 feat(frontends/lean/parser): revised pattern validation 2016-08-17 15:42:13 -07:00
Daniel Selsam
a9b01991c2 feat(frontends/lean/inductive_cmd): new frontend for the inductive cmd
Conflicts:
	src/frontends/lean/CMakeLists.txt
	src/frontends/lean/structure_cmd.h
2016-08-17 07:34:03 -07:00
Sebastian Ullrich
8bbcbb14cf chore(library, tests): use new attribute chaining syntax
sed -E -i 's/(attribute(\s*(\w|\.)+)* \[[^]]+)\] \[/\1, /' {library,tests}/**/*.lean  # repeat as needed
2016-08-16 13:49:03 -07:00
Leonardo de Moura
c9475774f4 feat(library/tactic/tactic_state): add is_def_eq and is_def_eq_core tactics 2016-08-16 11:08:03 -07:00
Leonardo de Moura
095585b61c feat(library/init): new notation for sum types 2016-08-16 10:45:08 -07:00
Leonardo de Moura
9fe8e09f30 feat(init/reserved_notation): product binds to the right 2016-08-16 10:34:32 -07:00
Leonardo de Moura
f8e5753a13 feat(library/type_context, library/tactic): add eta-expansion method and tactic 2016-08-14 16:15:12 -07:00