Commit graph

69 commits

Author SHA1 Message Date
Leonardo de Moura
9306830d8c feat(library/data/list): perm is decidable 2015-04-07 09:12:10 -07:00
Leonardo de Moura
f1b7021ed0 feat(library/data/list/basic): add more theorems for disjoint predicate 2015-04-03 22:55:16 -07:00
Leonardo de Moura
23a1f5fa4b feat(library/data/list/basic): define nodup and disjoint 2015-04-03 15:44:07 -07:00
Leonardo de Moura
01f5dd9fa8 feat(library/data/list): add "erase" function lemmas 2015-04-03 13:18:48 -07:00
Leonardo de Moura
fc0ed5e46c feat(library/data/list/basic): define erase and prove basic theorems 2015-04-02 23:58:47 -07:00
Leonardo de Moura
e47c8c2d9e feat(library/data/list/basic): add quasiequality predicate l₁≈a|l₂, l₁ is equal to l₂ with 'a' inserted somewhere 2015-04-02 20:00:46 -07:00
Leonardo de Moura
e35de54cee feat(library/data/list/basic): add aux theorems 2015-03-31 18:38:05 -07:00
Leonardo de Moura
4c0ce9a619 feat(library/data/list/basic): missing theorems 2015-03-30 19:11:45 -07:00
Leonardo de Moura
42fe87d7cc feat(library/data/list/basic): add sublist predicate 2015-03-30 03:20:42 -07:00
Leonardo de Moura
66bb22f268 feat(library/data/list/basic): cleanup 2015-03-30 02:14:33 -07:00
Leonardo de Moura
75621df52b feat(frontends/lean): uniform notation for lists in tactics
closes #504
2015-03-27 17:54:48 -07:00
Leonardo de Moura
ba913876e0 feat(library/data/list/basic): enforce name conventions, add foldl_eq_foldr theorem 2015-03-14 13:06:09 -07:00
Leonardo de Moura
27e58dc534 refactor(library/data): cleanup vector and list modules 2015-03-13 22:25:21 -07:00
Leonardo de Moura
53df3d86ee feat(library/data/list/basic): use 'show' instead of 'change' tactic 2015-03-04 20:40:06 -08:00
Leonardo de Moura
b8afba47ad feat(library/data/list/basic): add some map, foldl, foldl, zip and unzip 2015-03-04 20:30:19 -08:00
Leonardo de Moura
c78734874d feat(library/data/list/basic): list A has decidable equality if A has 2015-03-04 18:48:13 -08:00
Leonardo de Moura
02d3f7c37c refactor(library/data/list): use 'change' tactic 2015-03-01 14:27:22 -08:00
Leonardo de Moura
68110faa4d feat(frontends/lean/inductive_cmd): allow '|' in inductive datatype declarations 2015-02-25 17:00:10 -08:00
Leonardo de Moura
5ca52d81ec feat(frontends/lean): ML-like notation for match and recursive equations 2015-02-25 16:20:44 -08:00
Jeremy Avigad
e513b0ead4 refactor(library,hott): rename theorems for decidable and inhabited
The convention is this: we use e.g. nat.is_inhabited and nat.has_decidable_eq
for these two purposes only, to avoid clashing with "inhabited" and "decidable_eq"
in a namespace. Otherwise, we use "decidable_foo" and "inhabited_foo".
2015-02-25 14:05:07 -08:00
Leonardo de Moura
3ede8e9150 refactor(library): use [] binder annotation when declaring instances 2015-02-24 16:12:39 -08:00
Leonardo de Moura
a35cce38b3 feat(frontends/lean): new semantics for "protected" declarations
closes #426
2015-02-11 14:09:25 -08:00
Leonardo de Moura
b4d6f6e3ed feat(frontends/lean): 'attribute' command is persistent by default 2015-01-26 11:51:17 -08:00
Leonardo de Moura
4f2e0c6d7f refactor(frontends/lean): add 'attribute' command
The new command provides a uniform way to set declaration attributes.
It replaces the commands: class, instance, coercion, multiple_instances,
reducible, irreducible
2015-01-24 20:23:21 -08:00
Leonardo de Moura
2e4a2451e6 refactor(library/reducible): simplify reducible/irreducible semantics 2015-01-08 18:52:18 -08:00
Leonardo de Moura
597f7385e8 fix(library/unifier): incorrect fix 2015-01-07 16:57:02 -08:00
Leonardo de Moura
4b47d22d05 refactor(library/data/list): use recursive equations 2015-01-07 13:38:11 -08:00
Jeremy Avigad
25394dddb7 refactor(library): change mul.left_id to mul_one, and similarly for mul.right_id, add.left_id, add.right_id 2014-12-23 21:14:36 -05:00
Jeremy Avigad
486bc321ff refactor(library/data/nat): rename theorems 2014-12-23 21:14:35 -05:00
Leonardo de Moura
abe129aa4f refactor(library): rename theorems "iff.flip_sign -> not_iff_not_of_iff" and "decidable_iff_equiv -> decidable_of_decidable_of_iff" 2014-12-15 19:17:51 -08:00
Leonardo de Moura
5cf8064269 refactor(library): rename exists_elim and exists_intro to exists.elim
and exists.intro
2014-12-15 19:07:38 -08:00
Jeremy Avigad
3e9a484851 refactor(library/logic/connectives): rename theorems 2014-12-15 15:05:44 -05:00
Leonardo de Moura
477d79ae47 refactor(library/init): move more theorems to logic 2014-12-12 13:50:53 -08:00
Leonardo de Moura
697d4359e3 refactor(library): add 'init' folder 2014-11-30 20:34:12 -08:00
Leonardo de Moura
c7f6a6b94e feat(library/definitional/cases_on): automatically add 'cases_on' 2014-10-25 17:22:02 -07:00
Leonardo de Moura
cdcde661ef feat(library/definitional/induction_on): automatically add 'induction_on' 2014-10-25 13:37:04 -07:00
Leonardo de Moura
a7a06ab0f8 feat(library/definitional/rec_on): automatically generate rec_on function for inductive datatypes 2014-10-25 13:08:59 -07:00
Leonardo de Moura
6c7e23ecaa refactor(library): use 'reserve' notation in the standard library 2014-10-21 15:39:47 -07:00
Leonardo de Moura
854e72e665 refactor(library/data/list): minimize dependencies and avoid 'sorry' warning 2014-10-20 15:32:42 -07:00
Leonardo de Moura
f63d47fef3 feat(frontends/lean/pp): support foldl/foldr notation in the pretty printer 2014-10-19 11:16:24 -07:00
Leonardo de Moura
85339c0cc1 fix(library/data/list/basic): mark :: as infixr 2014-10-19 08:58:52 -07:00
Leonardo de Moura
a26618e0f2 feat(frontends/lean): add '[]' notation for marking arguments where class-instance resolution should be applied 2014-10-12 13:06:00 -07:00
Leonardo de Moura
d6d0593afb refactor(library): remove some unnecessary sections 2014-10-10 16:33:58 -07:00
Leonardo de Moura
8f1b6178a7 chore(*): minimize the use of parameters 2014-10-09 07:13:06 -07:00
Leonardo de Moura
15779c5d1e refactor(data/list): use '!' operator, and new name convention for declaration names 2014-10-05 13:10:35 -07:00
Leonardo de Moura
73aa024c31 refactor(library/logic): remove 'core' subdirectory 2014-10-05 10:50:13 -07:00
Leonardo de Moura
4946f55290 refactor(frontends/lean): constant/axiom are top-level commands, parameter/variable/hypothesis/conjecture are section/context-level commands
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-10-02 17:55:34 -07:00
Leonardo de Moura
e64d5c4a4a refactor(library/data/nat): use new operator '!' 2014-10-01 18:39:47 -07:00
Leonardo de Moura
716cd4d651 refactor(library): rename namespace eq_ops to eq.ops 2014-10-01 17:51:17 -07:00
Leonardo de Moura
3ca1264f61 refactor(library): mark 'decidable' theorems as definitions
If we don't do that, then any 'if' term that uses one of these theorems
will get "stuck". That is, the kernel will not be able to reduce them
because theorems are always opaque
2014-09-30 09:02:37 -07:00