Leonardo de Moura
1cef8af1be
feat(library/tactic/simplify): add eta := tt to simp
2017-03-27 17:38:40 -07:00
Leonardo de Moura
eea46610ea
fix(library/tactic/simplify): missing projection reduction, add proj := tt to simp
2017-03-27 17:38:40 -07:00
Leonardo de Moura
161879b1bf
feat(library/init/meta): add helper tactic guard_target for generating tests
2017-03-27 17:38:40 -07:00
Leonardo de Moura
b09968a37b
feat(library/tactic/simplify): add beta := tt to simp
2017-03-27 17:38:31 -07:00
Leonardo de Moura
494e5b65c5
feat(library/init/meta/tactic): add apply_auto_param and apply_opt_param tactics
...
see #1485
2017-03-27 13:42:08 -07:00
Sebastian Ullrich
9e8ef54402
refactor(init/data/list/instances): simplify proofs
2017-03-27 13:42:08 -07:00
Sebastian Ullrich
b3a0eb9bfc
fix(init/meta/interactive): mk_simp_set: also remove equational lemmas
2017-03-27 13:42:08 -07:00
Sebastian Ullrich
c7b47c7b7f
fix(system/io): try to fix io monad
2017-03-27 13:42:08 -07:00
Sebastian Ullrich
dfd84666e2
feat(library): add functor, applicative, and monad laws, and prove them correct for non-meta instances
2017-03-27 13:42:08 -07:00
Sebastian Ullrich
b51e666bda
feat(init/category/monad): simplify monad.seq._default
2017-03-27 13:42:08 -07:00
Sebastian Ullrich
3ead6be9ca
feat(init): add default value proofs to the monadic hierarchy
2017-03-27 13:42:08 -07:00
Leonardo de Moura
900c56be05
feat(frontends/lean,library/equations_compiler): abstract proofs in equations and regular definitions
2017-03-25 14:22:52 -07:00
Leonardo de Moura
8cf43e1b30
feat(library/tactic/tactic_state): add tactic.run_io
2017-03-23 18:17:53 -07:00
Leonardo de Moura
fe3875a103
feat(library/system/io): add stdin, stdout and stderr
2017-03-23 16:49:39 -07:00
Leonardo de Moura
82748a61b7
feat(library/system/io): basic file system API
2017-03-23 16:30:16 -07:00
Leonardo de Moura
527c8851a8
refactor(library/system/io): use type classes
2017-03-23 14:29:07 -07:00
Gabriel Ebner
a8ba78e20a
refactor(frontends/lean/tactic_notation): remove irtactic in favor of itactic
2017-03-23 09:07:08 +01:00
Gabriel Ebner
098d6f8f2a
refactor(init/meta/tactic): remove report_errors argument from to_expr
2017-03-23 09:03:42 +01:00
Gabriel Ebner
c8fff9f4ff
refactor(init/meta/interaction_monad): replace rstep by istep
2017-03-23 09:03:41 +01:00
Leonardo de Moura
6887a99f08
feat(library/init/category/state): make state and state_t universe polymorphic
...
The new definitions are not fully general since they force data and
state to be in the same universe.
2017-03-22 23:45:29 -07:00
Leonardo de Moura
60dd85719c
feat(library/system/io): system.io without axioms
2017-03-22 23:36:05 -07:00
Scott Morrison
d6f5370ea7
doc(fixing_broken_links)
...
A stopgap fix for broken links in `library.md`. Addresses #1649 for now.
2017-03-22 08:13:36 -07:00
Sebastian Ullrich
a5db5ae4de
refactor(init/meta/interactive): rw: parse - separately to remove hack
2017-03-22 07:54:12 -07:00
Sebastian Ullrich
9cf80a6c94
feat(init/meta/interactive): rw goal info on ]
2017-03-22 07:54:12 -07:00
Sebastian Ullrich
da7e21696e
feat(init/meta/interactive): rw goal info on ,
2017-03-22 07:54:12 -07:00
Sebastian Ullrich
793f0baee8
feat(library/tactic/vm_monitor): use attribute for registering VM monitors
2017-03-22 07:34:27 -07:00
Rob Lewis
2e921dd533
fix(algebra): generalize theorem
2017-03-22 07:34:01 -07:00
Leonardo de Moura
8feacb27a6
feat(library/data): add buffer
2017-03-21 18:47:50 -07:00
Leonardo de Moura
fdadada3a9
fix(frontends/lean): fixes #1468
...
@kha I had to add yet another hack to fix this issue.
In notation declarations, names are resolved at notation declaration time.
So, users do not expect them to be resolved again at tactic execution time.
I addressed this problem by wrapping constants occurring in notation
declarations with a "frozen_name" annotation. This transformation is
only performed if m_in_quote is true.
Then resolve_names_fn at elaborator.cpp will not try to resolve the
names again.
This change broke two other modules. `-` notation for inverting
equations at `rw`, and `calc` expressions inside quotes.
The broke for the same reason. They were not expecting the constants
to be wrapped with an annotation.
2017-03-18 13:48:21 -07:00
Leonardo de Moura
31b6dc222d
feat(library/init/meta/expr): add expr.is_annotation
2017-03-18 13:40:11 -07:00
Sebastian Ullrich
7c31e62b16
feat(init/meta/interactive): improve pretty-printing of list_of and itactic
2017-03-17 18:20:44 -07:00
Sebastian Ullrich
421a6d6f01
feat(frontends/lean/interactive,emacs): highlight current tactic parameter
2017-03-17 18:20:44 -07:00
Sebastian Ullrich
c46936d180
fix(frontends/lean/interactive): hard-code tactic pretty printing
2017-03-17 18:20:44 -07:00
Sebastian Ullrich
803d3073ae
feat(frontends/lean): add interactive.type_formatter attribute and use it to pretty print interactive tactics
2017-03-17 18:20:44 -07:00
Sebastian Ullrich
0792bc13db
feat(frontends/lean/elaborator,init/meta/interactive): relax expr pattern elaboration and use it to implement a tactic signature pretty printer
2017-03-17 18:20:44 -07:00
Gabriel Ebner
886c824e33
feat(library/init/data/list/instances): prove decidability of bounded quantification
2017-03-17 18:03:26 -07:00
Leonardo de Moura
36770119b6
feat(library): do not generate C.destruct (for structures), and C.induction_on (for structures and inductive datatypes)
2017-03-15 14:45:13 -07:00
Sebastian Ullrich
e3b9190fe2
refactor(library/tactic/user_attribute): use attribute for registering attributes. naturally.
2017-03-15 14:06:34 -07:00
Leonardo de Moura
e0e3f51c44
feat(library/init): add unification hint for add/succ
2017-03-12 13:45:30 -07:00
Daniel Selsam
aa209d89e7
fix(library/smt/prove.lean): collect_props was collecting (H : Prop)
2017-03-12 09:54:01 -07:00
Simon Hudon
58b9d0ae8e
feat(library/data/bitvec): to_nat and of_nat cancel each other
2017-03-12 09:38:57 -07:00
Simon Hudon
b6889e91fe
feat(lib/init/data/nat): add function pow and a Galois connection between div and mul
2017-03-12 09:38:19 -07:00
Leonardo de Moura
3a4cd38ba9
chore(library/init): remove reducible annotations for id, const, etc, and move $ notation to core.lean
2017-03-11 11:34:16 -08:00
Leonardo de Moura
2f6c4d91e4
feat(library/init/core): simplify proofs
2017-03-10 22:42:21 -08:00
Daniel Selsam
e72d516252
refactor(inductive_compiler): use subst to prove packs injective instead of constructors
2017-03-10 22:27:29 -08:00
Daniel Selsam
538ac8d187
feat(inductive_compiler): generate injectivity lemmas
2017-03-10 22:27:18 -08:00
Leonardo de Moura
98e93b73b2
feat(library/init/meta/name): add name.replace_prefix
2017-03-10 22:16:21 -08:00
Sebastian Ullrich
16558bf082
refactor(library,library): rename pre_monad to has_bind
2017-03-09 20:32:25 -08:00
Sebastian Ullrich
763097dbd2
refactor(library): revise the monadic hierarchy
2017-03-09 20:30:03 -08:00
Leonardo de Moura
9d3c0497cb
chore(frontends/lean): rename transient commands
...
See issue #1432
2017-03-09 18:41:19 -08:00