Leonardo de Moura
d3242a2068
refactor(library): rename heq.of_eq heq.to_eq auxiliary lemmas
2016-01-09 12:32:18 -08:00
Johannes Hölzl
9c28552afb
feat(library/algebra): add lattice instances for Prop, fun, and set
...
Adds weak_order, lattice and complete_lattice instances for Prop, fun, and set. Adds supporting
theorems to various other places.
2016-01-06 10:57:32 -08:00
Rob Lewis
031831f101
feat(library/tactic): add replace tactic
2016-01-04 14:43:31 -05:00
Jeremy Avigad
4289daddcb
refactor(library/data/{set,finset}/basic,library/*): change notation for image to tick mark
2016-01-03 18:52:25 -08:00
Leonardo de Moura
0963ce336f
feat(library/blast): add 'grind' and 'grind_simp' blast strategies
...
The use [intro] [intro!] [elim] [simp] lemmas.
The [simp] lemmas are only used by grind_simp.
2016-01-01 17:32:13 -08:00
Leonardo de Moura
4e2494f12e
refactor(library/init/nat): minor cleanup
2016-01-01 15:56:46 -08:00
Leonardo de Moura
c3dfabf741
feat(library/blast/strategies/portfolio): add 'rec_simp'
...
recursors followed by simplification
2015-12-31 15:00:38 -08:00
Leonardo de Moura
4134fdd925
feat(library/blast/strategies/rec_strategy): give priority to user defined recursors
2015-12-31 14:55:00 -08:00
Leonardo de Moura
b35abcc6a8
refactor(library): rename strategy "msimp" ==> "inst_simp"
...
"inst_simp" means "instantiate simplification lemmas"
The idea is to make it clear that this strategy is *not* a simplifier.
2015-12-31 12:45:48 -08:00
Leonardo de Moura
dc6a3e30c0
refactor(library): test simp and msimp in the standard library
2015-12-30 11:22:58 -08:00
Leonardo de Moura
0148bb08fd
feat(library/blast): add 'ematch_simp' strategy for blast and msimp
shortcut for it.
...
This strategy is based on ematching and congruence closure, but it uses
the [simp] lemmas instead of [forward] lemmas.
2015-12-29 20:04:31 -08:00
Leonardo de Moura
7462874a4a
refactor(library): cleanup nat/int proofs
2015-12-29 12:39:53 -08:00
Leonardo de Moura
a307a0691b
refactor(library/data/nat/basic): cleanup some of the nat proofs
2015-12-29 11:43:56 -08:00
Leonardo de Moura
f177082c3b
refactor(*): normalize metaclass names
...
@avigad and @fpvandoorn, I changed the metaclasses names. They
were not uniform:
- The plural was used in some cases (e.g., [coercions]).
- In other cases a cryptic name was used (e.g., [brs]).
Now, I tried to use the attribute name as the metaclass name whenever
possible. For example, we write
definition foo [coercion] ...
definition bla [forward] ...
and
open [coercion] nat
open [forward] nat
It is easier to remember and is uniform.
2015-12-28 10:39:15 -08:00
Jeremy Avigad
6913eb0c76
refactor(library/init/subtype.lean): put subtype notation in the namespace
...
The notation { x : A | P x } is overloaded in set, and is ambiguous.
2015-12-22 16:39:13 -05:00
Jeremy Avigad
8ccafc4267
fix(library/init/function): fix typo
2015-12-22 16:39:13 -05:00
Floris van Doorn
da5f10ce63
feat(hott): minor fixes. allow the usage of numerals for trunc_index
2015-12-17 12:46:16 -08:00
Leonardo de Moura
61ecf018e9
feat(frontends/lean,library/tactic): add easy tactic parsing support for at ...
and with ...
2015-12-17 12:18:32 -08:00
Leonardo de Moura
c824a0e050
chore(library,hott): enforce naming conventions
2015-12-17 11:36:58 -08:00
Leonardo de Moura
13419d1561
chore(hott/library): cleanup
2015-12-17 11:31:07 -08:00
Sebastian Ullrich
2185ee7e95
feat(library/tactic): make let tactic transparent, introduce new opaque note tactic
...
The new let tactic is semantically equivalent to let terms, while `note`
preserves its old opaque behavior.
2015-12-14 10:14:02 -08:00
Leonardo de Moura
e3a35ba4fd
feat(frontends/lean): add 'with_attributes' tactical
...
closes #494
2015-12-13 18:27:44 -08:00
Leonardo de Moura
d4e49a8434
feat(library/tactic/intros_tactic): intro without argument should introduce a single variable
...
see #695
2015-12-13 16:28:39 -08:00
Leonardo de Moura
ef546c5c5b
refactor(library): use anonymous instance implicit arguments
2015-12-13 11:46:48 -08:00
Floris van Doorn
46739c8b70
feat(hott/algebra): port abstract structures
2015-12-09 12:34:06 -08:00
Leonardo de Moura
50df6b5698
feat(frontends/lean): rename '[intro]' ==> '[intro!]' and '[backward]' ==> '[intro]'
2015-12-07 21:33:35 -08:00
Leonardo de Moura
041c1cbb17
feat(library/blast): add strategies "grind" and "core_grind"
2015-12-07 20:30:59 -08:00
Leonardo de Moura
48bc18d492
feat(library/blast/grinder/intro_elim_lemmas): add intro/elim lemmas validation
2015-12-07 18:43:15 -08:00
Leonardo de Moura
295b1d21f5
feat(frontends/lean): add '[intro]' and '[elim]' annotations
2015-12-07 18:43:15 -08:00
Leonardo de Moura
85379b7706
feat(library/blast/actions/simple_actions): make sure contradiction action works even if classical logic support is not enabled
...
not (not (not a)) -> not a
2015-12-07 09:30:14 -08:00
Leonardo de Moura
732a92de05
feat(frontends/lean): add 'simp' as shortcut for 'with_options [blast.strategy "simp"] blast'
2015-12-06 13:14:04 -08:00
Daniel Selsam
7a117c45bf
feat(init/setoid): tag equivalence relation
2015-12-05 11:54:27 -08:00
Daniel Selsam
a04c28d4c9
refactor(library/algebra): construct simplifier sets incrementally
2015-12-04 18:28:56 -08:00
Leonardo de Moura
5da1b52e47
feat(library/blast/unit/unit_propagate): make sure unif_propagate works even if 'not' is marked as '[reducible]'
2015-12-04 16:49:21 -08:00
Leonardo de Moura
00e34683f2
feat(library/app_builder): (try to) address not-issue and other reducibility annotation related issues in the app_builder
2015-12-04 16:03:06 -08:00
Daniel Selsam
6e478696d2
feat(library/blast/unit): preprocessor placeholder
2015-12-04 08:30:04 -08:00
Daniel Selsam
2bf9989bd9
refactor(library/blast/unit): simplify module
2015-12-04 08:30:03 -08:00
Leonardo de Moura
5721bc13a7
feat(library/init/logic): annotate logical connectives as [no_pattern]
2015-11-24 18:48:22 -08:00
Leonardo de Moura
d240b06ba2
feat(library/init/logic): add new simp rules
2015-11-22 17:04:25 -08:00
Floris van Doorn
0537ef2bd9
chore(*): add me as author to files where I made nontrivial contributions
2015-11-22 14:21:26 -08:00
Floris van Doorn
cc03ca9c6d
fix(reserved_notation): make :: bind stronger than ++
...
this allows us to write l1 ++ a :: l2 without parentheses
2015-11-22 14:21:26 -08:00
Leonardo de Moura
564e8f947d
refactor(library): cleanup
2015-11-22 14:10:02 -08:00
Leonardo de Moura
c49caf3740
feat(library/blast/congruence_closure): add support for user-defined congruence lemmas in the congruence closure module
2015-11-21 14:43:51 -08:00
Leonardo de Moura
5a98a2538c
refactor(library): move basic simp/congr rules to init folder, delete some legacy files
2015-11-20 16:38:10 -08:00
Leonardo de Moura
3de9a89d93
feat(library/blast/congruence_closure): congruence_closure basics
2015-11-17 18:45:22 -08:00
Leonardo de Moura
b3ca5faa49
fix(tests/lean): some of the simplifier tests
2015-11-16 11:01:53 -08:00
Leonardo de Moura
dfaf1c2ba3
refactor(library): move basic theorems to init, remove sorry's from algebra/simplifier.lean
2015-11-16 10:26:09 -08:00
Leonardo de Moura
0dc31227f8
feat(library/init/logic): mark ne reducible
2015-11-15 15:09:02 -08:00
Leonardo de Moura
4d68e2a520
feat(library,hott): add eq.mpr and eq.mp lemmas
2015-11-14 15:40:47 -08:00
Jeremy Avigad
697df0e68c
refactor(library/*): use type classes for div and mod
2015-11-08 14:04:59 -08:00