Leonardo de Moura
072bf0b3b4
refactor(library): make sure "choose" compute inside the kernel
2015-04-25 23:10:48 -07:00
Leonardo de Moura
d455bb4c5b
feat(library/data/fintype): add decidable_exists_finite
2015-04-25 21:38:03 -07:00
Leonardo de Moura
6bb6644c25
feat(library/data/squash): define squash type using quotients
2015-04-24 18:11:25 -07:00
Leonardo de Moura
9d01868361
feat(frontends/lean): use rewrite tactic to implement unfold (it has a unfold step)
...
closes #502
2015-04-24 17:23:12 -07:00
Leonardo de Moura
1149ead14c
chore(library/logic/examples/colog88): remove unnecessary annotation
2015-04-24 12:45:06 -07:00
Leonardo de Moura
a5306e70eb
feat(library/logic/examples/negative): add example showing that allowing negative inductive datatypes would lead to inconsistency
2015-04-24 09:33:09 -07:00
Leonardo de Moura
15c331591e
feat(library/logic/examples/colog88): add example from COLOG-88 paper
2015-04-24 09:33:09 -07:00
Leonardo de Moura
2613e7c444
fix(frontends/lean): bug when handling identifiers in tactics
...
This bug was reported by Jeremy in the Lean Google group:
https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/lean-discuss/ZKJ8WPPEVJA/n05x6rPRzvMJ
2015-04-22 16:03:22 -07:00
Floris van Doorn
9d805437f0
fix(reserved_notation): lower binding power of 'iff'
2015-04-22 13:06:11 -07:00
Leonardo de Moura
670eac9d50
refactor(library): avoid 'context' command in the standard library
2015-04-21 19:13:19 -07:00
Leonardo de Moura
bf8a7eb9b4
fix(library/scoped_ext): bug in local metadata in sections
...
The problem is described in issue #554
2015-04-21 18:56:28 -07:00
Leonardo de Moura
6f6d106a10
feat(library/tactic): add "check_expr" tactic
...
closes #486
2015-04-19 19:00:05 -07:00
Leonardo de Moura
306087b5d3
refactor(library/data): rename 'countable' to 'encodable', define countable in the usual way, and prove all 'encodable' type is 'countable'
2015-04-19 14:20:47 -07:00
Jeremy Avigad
f4398115b4
feat(library/data/rat/basic.lean): begin theory of rationals, show rat is a field
2015-04-18 11:39:52 -07:00
Jeremy Avigad
6359132b67
refactor(library/algebra/field.lean): rename has_decidable_eq and declare instance
2015-04-18 11:39:52 -07:00
Jeremy Avigad
dfaeb475cc
feat(library/init/reserved_notation.lean): add equiv relation symbol
2015-04-18 11:39:52 -07:00
Jeremy Avigad
5eb7fef564
feat(library/algebra/order.lean, data/int/{basic,order}.lean): add theorem, correct gt_trans
2015-04-18 11:39:52 -07:00
Jeremy Avigad
53919699bc
refactor(library/logic/axioms/prop_decidable.lean): simplify proof of prop_decidable (using arbitrary instead of epsilon)
2015-04-18 11:39:52 -07:00
Leonardo de Moura
cc63a40a01
feat(library): enforce name conventions on old nat declarations
2015-04-18 10:50:30 -07:00
Leonardo de Moura
10954a073c
feat(library/logic/examples): add new example from Martín Escardó paper
2015-04-17 15:22:52 -07:00
Leonardo de Moura
9cb759e0a9
feat(library/logic/axioms/examples/leftinv_of_inj): add classical example
2015-04-16 22:39:51 -07:00
Leonardo de Moura
3b84a63874
fix(library/algebra/function): terminology
2015-04-16 20:52:18 -07:00
Leonardo de Moura
2e675c1bdd
feat(library/data/examples/notcountable): add example showing that nat -> nat is not countable
2015-04-16 14:54:34 -07:00
Leonardo de Moura
df8ebeeefc
feat(library/logic/axioms/examples/diaconescu): remove redundant hypothesis
2015-04-16 14:04:09 -07:00
Leonardo de Moura
7529ee0a5c
feat(library/data/countable): prove axiom of choice and skolem theorem for countable types and decidable relations
2015-04-16 12:36:27 -07:00
Leonardo de Moura
0dd7667836
feat(library/data/countable): choice function for countable types
2015-04-16 12:29:06 -07:00
Leonardo de Moura
7a4f43d6ab
feat(library/data/nat/choose): choice function for natural numbers
2015-04-16 11:33:26 -07:00
Leonardo de Moura
b14d3dbeba
chore(library/data/countable): add copyright notice
2015-04-16 09:24:53 -07:00
Leonardo de Moura
036900280d
feat(library/data/countable): show that a type is countable by providing an injection to a type already known to be countable
2015-04-15 10:30:24 -07:00
Leonardo de Moura
039f1de524
fix(library/data/countable): typos
2015-04-14 21:26:56 -07:00
Leonardo de Moura
9534cfe92f
feat(library/data/countable): prove that (list A) is countable if A is countable
2015-04-14 21:17:18 -07:00
Leonardo de Moura
a7db8a2bac
theorem(library/data/countable): prove that the product of two countable types is countable
2015-04-14 20:39:58 -07:00
Leonardo de Moura
38b880b939
feat(library/data/nat/pairing): add unpair_mkpair theorem
2015-04-14 20:28:20 -07:00
Leonardo de Moura
f7a43c7997
feat(library/data/nat/sqrt): generalize sqrt_eq theorem
2015-04-14 20:10:18 -07:00
Leonardo de Moura
faca0acd26
feat(library/data/nat/sqrt): add sqrt_eq theorem
2015-04-14 15:38:54 -07:00
Leonardo de Moura
11dbcda9d2
feat(library/data/nat/pairing): add "elegant" pairing/unpairing function
2015-04-14 09:01:15 -07:00
Leonardo de Moura
2eb7538c96
fix(library/data/nat/sqrt): adjust to reflect recent changes
2015-04-14 09:01:15 -07:00
Leonardo de Moura
4180b80df6
feat(library/data/nat/power): define power and add basic theorems
2015-04-14 09:01:15 -07:00
Leonardo de Moura
ff72a520ff
feat(library/data/nat/div): add mul_cancel theorems
2015-04-14 09:01:15 -07:00
Leonardo de Moura
c73c1dbb63
feat(library/data/nat/sub): add two extra theorems
2015-04-14 09:01:15 -07:00
Leonardo de Moura
11c9bb4626
feat(library/data/nat): naive square root function
2015-04-14 09:01:15 -07:00
Leonardo de Moura
2453a6ab45
feat(library/data/countable): define countable type class
2015-04-14 09:01:15 -07:00
Leonardo de Moura
a24d4e47cd
feat(library/init/nat): add missing decidable_ge and decidable_lt
2015-04-14 09:01:15 -07:00
Leonardo de Moura
82eada7d56
feat(library/data/list/basic): add find nth theorem
2015-04-14 09:01:15 -07:00
Leonardo de Moura
07e195e9f1
feat(library/data/fintype): add decidable_finite_pred instance
2015-04-12 20:07:04 -07:00
Leonardo de Moura
00d68cadc8
refactor(library/data/fintype): cleanup and mark location that exposes bug in the 'cases' tactic
2015-04-12 17:52:41 -07:00
Leonardo de Moura
f523d3a995
feat(library/data): add structure for converting a list of elements into a type, and then show the resultant type is a finite type
2015-04-12 17:33:58 -07:00
Leonardo de Moura
d9f8b0f3d7
feat(library/data/finset/comb): add cross_product to finset
2015-04-11 19:46:04 -07:00
Leonardo de Moura
4c827293a8
feat(library/data/list/perm): add perm_cross_product theorem
2015-04-11 19:13:34 -07:00
Leonardo de Moura
41ddc97e0d
feat(library/data/list): define filter function for lists
2015-04-11 18:22:22 -07:00
Leonardo de Moura
c437fbe0bc
feat(library/data/fintype): prove that A->B has decidable equality when A is a finite type and B has decidable equality
2015-04-11 16:45:27 -07:00
Leonardo de Moura
3df7fe120c
feat(library/algebra/function): define curry and uncurry functions
2015-04-11 16:45:07 -07:00
Leonardo de Moura
3edf0dffdf
feat(library/data/finset): define subset for finsets
2015-04-11 15:29:12 -07:00
Leonardo de Moura
dfef4c5daf
feat(library/data): define fintype type class
2015-04-11 14:55:41 -07:00
Leonardo de Moura
06d4ae971d
feat(library/data/list): add nodup_cross_product theorem
2015-04-11 14:31:01 -07:00
Leonardo de Moura
54a2d9750e
refactor(library/data): simplify definition of disjoint
2015-04-11 14:04:09 -07:00
Leonardo de Moura
ee895e00dd
feat(library/data/list): define cross_product for lists
2015-04-11 13:52:50 -07:00
Leonardo de Moura
fefddcd0f9
fix(library/data/list/perm): broken theorem
2015-04-11 09:42:24 -07:00
Leonardo de Moura
1b34f40f36
feat(library/data/list/set): add decidable_nodup
2015-04-11 09:39:26 -07:00
Leonardo de Moura
dff05557a3
feat(library/data/finset): add all combinator theorems
2015-04-11 09:28:27 -07:00
Leonardo de Moura
5304c5afb8
feat(library/data/list/set): add 'all' theorems
2015-04-11 09:28:05 -07:00
Leonardo de Moura
32b07c4561
feat(library/data/finset): define map for finset
2015-04-10 17:14:10 -07:00
Leonardo de Moura
a24c0bf1db
feat(library/data/finset): define intersection for finsets
2015-04-10 16:45:25 -07:00
Leonardo de Moura
49d6d43926
feat(library/data/list): define intersection for lists
2015-04-10 16:31:44 -07:00
Leonardo de Moura
d59c671054
feat(library/data/list/comb): define upto list generator
2015-04-10 15:32:44 -07:00
Leonardo de Moura
9d8b5aa347
feat(library/data/list/comb): add any/all theorems
2015-04-10 07:01:14 -07:00
Floris van Doorn
d1b98b6919
fix(reserved_notation): make is_typeof an abbreviation
2015-04-10 06:35:15 -07:00
Leonardo de Moura
5caa983919
feat(library/data/finset): redefine bigop for finset
2015-04-10 06:13:32 -07:00
Leonardo de Moura
53f730ec82
feat(library/data/list/bigop): add bigop perm theorem
2015-04-10 06:01:23 -07:00
Leonardo de Moura
608e2838bf
feat(library/data/list): define bigop for lists
2015-04-10 05:52:19 -07:00
Leonardo de Moura
4be8741a39
feat(library/data/list): break list/basic.lean into smaller files
2015-04-10 05:19:52 -07:00
Leonardo de Moura
a223b9b1f7
feat(library/data/finset): add bigop for finset + commutative groups
2015-04-09 20:00:00 -07:00
Leonardo de Moura
795acc70a6
refactor(library/data/finset): move finset to its own directory
2015-04-09 19:30:09 -07:00
Leonardo de Moura
ca377e5f8b
feat(library/data/list/basic): add foldr/foldl theorems
2015-04-09 18:48:04 -07:00
Leonardo de Moura
b209f442f7
refactor(library/data/list) fix theorem name, and do not rely on implementation of mem
2015-04-09 16:27:48 -07:00
Leonardo de Moura
2ab2f7dc9d
feat(library/data/finset): add basic support for finite sets
2015-04-09 15:51:23 -07:00
Leonardo de Moura
571ff76080
feat(library/data/list/perm): add perm_ext theorem
2015-04-09 15:27:32 -07:00
Leonardo de Moura
64173ddf93
feat(library/data/list/basic): more nodup theorems
2015-04-09 14:50:00 -07:00
Leonardo de Moura
b4611ba33d
feat(library/data/list/basic): add mem erase theorems
2015-04-09 13:19:51 -07:00
Leonardo de Moura
5ba5e66665
feat(library/algebra/binary): add auxiliary theorems
2015-04-09 11:00:59 -07:00
Leonardo de Moura
d5176ebae5
refactor(library/algebra/binary): define right_commutative and left_commutative
2015-04-09 10:54:28 -07:00
Leonardo de Moura
8522fbec4b
feat(library/data/list): more general theorems for perm foldl and foldr, and other minor improvements
2015-04-09 09:29:58 -07:00
Leonardo de Moura
07ff0900aa
feat(library/data/list): add permutation theorems for union and insert
2015-04-08 19:02:35 -07:00
Leonardo de Moura
33422a387a
feat(library/data/list/basic): define 'union' and 'insert' for lists
2015-04-08 18:12:51 -07:00
Leonardo de Moura
c95bd8ba61
feat(library/data/list): add erase_dup and theorems
2015-04-08 12:28:48 -07:00
Leonardo de Moura
05bd6b5fe7
feat(library/data/list): add foldr/foldl equality theorems for permutations
2015-04-08 10:36:05 -07:00
Jeremy Avigad
eb5089bf27
feat(library/data/set): add theory of functions and maps between sets
2015-04-08 09:46:34 -07:00
Jeremy Avigad
1f4ddd7a0f
refactor(library/init/funext.lean): break out definition of equivalence, and hide auxiliary theorems
2015-04-08 09:46:34 -07:00
Jeremy Avigad
5812b35d93
feat(library/data/set/function.lean): begin theory of functions on sets
2015-04-08 09:46:34 -07:00
Leonardo de Moura
afc75f141c
refactor(library/data/list/perm): prove auxiliary theorems using 'match-with'
2015-04-08 09:43:17 -07:00
Leonardo de Moura
56d20852aa
refactor(library/data/list/perm): remove dead code
2015-04-08 09:32:28 -07:00
Leonardo de Moura
ef1b057b63
refactor(library/data/list/perm): cleanup theorem
2015-04-08 09:29:40 -07:00
Leonardo de Moura
e0e65705db
feat(library/data/list/perm): add perm inversion theorems
2015-04-07 18:54:02 -07:00
Leonardo de Moura
c6a35e718d
refactor(library/data/list/perm): use by_cases instead of dependent-if
2015-04-07 09:26:24 -07:00
Leonardo de Moura
9306830d8c
feat(library/data/list): perm is decidable
2015-04-07 09:12:10 -07:00
Leonardo de Moura
1d87016f03
refactor(library): move some theorems to init
2015-04-07 07:46:11 -07:00
Leonardo de Moura
2bc13f6bfd
feat(library/tactic/exact): enforce goal type during elaboration when executing 'exact' tactic
...
Remark: this was the behavior of the 'sexact' tactic.
This commit also adds the 'rexact' (relaxed exact) tactic which does not
enforce the goal type.
closes #495
2015-04-06 13:23:38 -07:00
Leonardo de Moura
754276a660
feat(frontends/lean): round parenthesis for [tactic1 | tactic2]
...
This commit also replaces the notation for divides
`(` a `|` b `)`
with
a `∣` b
The character `∣` is entered by typing \|
closes #516
2015-04-06 09:24:09 -07:00
Leonardo de Moura
3b959c9e6c
refactor(library/data): move perm to list folder
2015-04-05 12:01:32 -07:00
Jeremy Avigad
c563548980
feat(library/data/set/basic.lean): add definitions and simplify proofs
2015-04-05 12:36:54 -04:00
Jeremy Avigad
e76e445ece
feat(library/logic/connectives.lean): add calculation rules for true and false, and move exists unique to quantifiers
2015-04-05 12:15:21 -04:00
Jeremy Avigad
c6c50a61b3
refactor(library/data/set/basic.lean): take advantage of extensionality in sets
2015-04-05 10:12:27 -04:00
Jeremy Avigad
74ff43a543
refactor(library/init/{funext,quot}.lean): adjust comments and headers
2015-04-05 10:11:53 -04:00
Jeremy Avigad
6596217a84
refactor(library/data/set): expand set.lean to set directory
2015-04-05 09:27:15 -04:00
Leonardo de Moura
4ec0e1b07c
feat(frontends/lean): improve calc mode
...
Now, it automatically supports transitivity of the form
(R a b) -> (b = c) -> R a c
(a = b) -> (R b c) -> R a c
closes #507
2015-04-04 08:58:35 -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
3b0f666646
feat(library/algebra/function): define injective
2015-04-03 15:43:44 -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
44ba0e10c0
feat(library/init/logic): add rewrite rules for decidable
2015-04-02 23:31:40 -07:00
Leonardo de Moura
9f3ba66295
feat(library/data/perm): add more theorems
2015-04-02 20:00:46 -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
5a394ac7ea
feat(library/data/perm): add more theorems
2015-04-02 09:21:20 -07:00
Leonardo de Moura
92d6e93971
feat(library/data/perm): cleanup and add calculational proof support to perm
2015-04-02 08:50:05 -07:00
Leonardo de Moura
54136c1ec0
feat(library/data/perm): add list permutation module
2015-04-01 23:00:02 -07:00
Leonardo de Moura
dbe54c4fb5
feat(library/data): define unordered pairs using quotients
2015-04-01 17:30:49 -07:00
Leonardo de Moura
3951b50282
feat(library/data/prod): define swap
2015-04-01 17:30:37 -07:00
Leonardo de Moura
7b64a47221
refactor(library/init): add auxiliary function mk_equivalence
2015-04-01 17:30:20 -07:00
Leonardo de Moura
4fcb560ea7
feat(library/init/funext): add subsingleton_pi instance using funext
2015-04-01 13:05:05 -07:00
Leonardo de Moura
ced742083a
feat(library/init/quot): add helper function quot.rec_on_subsingleton₂
2015-04-01 13:04:41 -07:00
Leonardo de Moura
ed1acd9fb0
feat(library/init): move propext to init/quot, add Jeremy's funext theorem
2015-04-01 12:36:33 -07:00
Leonardo de Moura
0da4f191fc
feat(library/init/quot): add rec_on for subsingleton types
2015-04-01 11:57:39 -07:00
Leonardo de Moura
ce5e83eb3e
refactor(library/init): move subsingleton to init folder
2015-04-01 11:57:29 -07:00
Leonardo de Moura
b960e123b1
feat(kernel): add experimental support for quotient types
2015-03-31 22:04:16 -07:00
Leonardo de Moura
a52cb009dc
refactor(library): reorganize init folder and add setoid
2015-03-31 19:56:05 -07:00
Leonardo de Moura
6e6cc749a8
feat(library/logic/axioms): break prop_complete into propext and em
...
The user may want to use propext without assuming em.
2015-03-31 18:51:43 -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
87f6fc6b6a
feat(library/algebra/ring): remove sorrys
2015-03-30 11:55:48 -07:00
Leonardo de Moura
56af7ba535
feat(library/algebra/ordered_ring): remove sorry
2015-03-30 11:01:26 -07:00
Leonardo de Moura
3d4a02089a
feat(library/logic/examples/propositional): add different encoding
2015-03-30 07:13:19 -07:00
Leonardo de Moura
9d34431bb6
feat(library/logic/examples/propositional/soundness): cleanup precedence levels
2015-03-30 05:42:47 -07:00
Leonardo de Moura
5ef88bfbc8
feat(library/logic/examples/propositional): add example based on Floris Coq files formalizing propositional Calculus
2015-03-30 05:12:29 -07:00
Leonardo de Moura
299cbe4b25
feat(library/data/bool): add auxiliary theorems for bool
2015-03-30 04:55:28 -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
ec1a60b02c
feat(library/init/logic): add helper function for proving decidable equality
2015-03-30 02:14:26 -07:00
Leonardo de Moura
5b9d52c0dd
refactor(library/data/int/order): cleanup
2015-03-28 12:58:40 -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
Rob Lewis
abcc56a2a7
feat(library/algebra):refactor field and ordered_field more appropriately
2015-03-27 11:54:11 -07:00
Rob Lewis
b79f600fbc
style(library/algebra/ordered_field):fix indentation, shorten calc statements
2015-03-27 11:52:30 -07:00
Rob Lewis
94b9aaea45
feat(library/algebra/ordered_field): prove more theorems
2015-03-27 11:52:30 -07:00
Rob Lewis
a1028922bd
feat(library/algebra/ordered_field): complete proofs of many theorems. Define discrete linear ordered field
2015-03-27 11:52:30 -07:00
Rob Lewis
4099de7754
feat(library/algebra/field): redefine field so that 1/0=0. Many theorems lose hypotheses in discrete setting.
2015-03-27 11:52:29 -07:00
Rob Lewis
365f1ebcb6
feat(library/algebra/ordered_field): prove more theorems for ordered field
2015-03-27 11:45:57 -07:00
Rob Lewis
11f82eacfb
feat(library/algebra/ordered_field.lean): add ordered fields
2015-03-27 11:45:57 -07:00
Jeremy Avigad
e019ab5500
fix(library/init/logic.lean): rename inhabited_imp_nonempty
2015-03-25 18:29:06 -07:00
Jeremy Avigad
8e007b3441
feat(library/logic/axioms/hilbert.lean): add 'some' operator
2015-03-25 18:29:06 -07:00
Jeremy Avigad
765f6f21f8
fix(library/algebra/ring.lean): allow degenerate semirings and rings, but not degenerate ordered_semirings and ordered_rings. Closes #478 .
2015-03-25 18:29:06 -07:00