Commit graph

181 commits

Author SHA1 Message Date
Jeremy Avigad
2c7526e1fc feat(library/*): add various theorems 2015-09-25 09:32:28 -07:00
Leonardo de Moura
3d4475b7d9 refactor(library/logic/cast): simplify proofs 2015-09-21 12:34:24 -07:00
Jeremy Avigad
8db9afbf1c feat/refactor(data/real/complete): add another archimedean property, rename theorems 2015-09-12 21:46:09 -04:00
Jeremy Avigad
20f6b4c6bd feat(library/logic/quantifiers): add 'the' 2015-09-12 21:46:09 -04:00
Jeremy Avigad
072971f3bb feat(library/data/finset/comb,library/data/set/basic): define set complement 2015-09-01 14:47:19 -07:00
Leonardo de Moura
d2eb99bf11 refactor(library/logic): move logic/choice.lean to init/classical.lean
choice axiom is now in the classical namespace.
2015-08-12 18:37:33 -07:00
Leonardo de Moura
cb9830beaf refactor(library/logic/choice): move prop_decidable instance into namespace 'classical' 2015-08-12 17:06:15 -07:00
Jeremy Avigad
d77bdaabc2 refactor(library/logic/eq): rename two theorems 2015-08-09 22:13:18 -04:00
Leonardo de Moura
88c659c54e feaf(library): make sure basic standard library can be compiled with option "--to_axiom"
We use this option to erase proofs when generating the javascript
version. The proofs are erased to minimize the size of the file that
must be downloaded by users
2015-07-29 16:11:23 -07:00
Leonardo de Moura
bbd6946a15 refactor(library/logic/axioms): we have only one extra axiom 2015-07-29 13:36:23 -07:00
Leonardo de Moura
6dbcf86fd4 feat(library/logic/axioms): use diaconescu to prove em
With the new "noncomputable" feature we can use Hilbert's choice without
being concerned it may accidentaly "leak" inside definitions we don't
want to use it.
2015-07-29 13:01:07 -07:00
Leonardo de Moura
0bda39c8ac feat(frontends/lean): check for noncomputability when moving theorems from theorem_queue to environment 2015-07-29 13:01:07 -07:00
Leonardo de Moura
308af87b69 feat(library): add 'noncomputable' keyword for the standard library 2015-07-28 21:56:35 -07:00
Jeremy Avigad
471c9058eb fix/feat(library/logic/connectives,library/data/{finset,set}): fix names or.left_distrib etc., fix implicit arguments, and make small additions 2015-07-27 07:46:59 -07:00
Mario Carneiro
066b0fcdf9 feat(library): clean up "sorry"s in library
Breaking changes: pnat was redefined to use subtype instead of a custom inductive type, which affects the notation for pnat 2 and 3
2015-07-24 12:21:33 -04:00
Leonardo de Moura
86e9002b66 doc(library/logic/axioms/examples): add alternative proof for has_left_inverse_of_injective 2015-07-22 22:11:13 -07:00
Leonardo de Moura
18dd7c13f9 feat(frontends/lean): add '[congr]' attribute 2015-07-22 17:21:47 -07:00
Leonardo de Moura
092c8d05b9 feat(frontends/lean,library): rename '[rewrite]' to '[simp]' 2015-07-22 09:01:42 -07:00
Leonardo de Moura
8ad6312764 feat(library/hlist): add helper eq.rec lemmas 2015-07-20 14:56:50 -07:00
Leonardo de Moura
ade60278d0 refactor(library): rename iff.mp' to iff.mpr 2015-07-18 08:52:58 -05:00
Leonardo de Moura
ebe6ec0017 feat(library): add '[rewrite]' annotation some some theorems 2015-07-13 16:39:53 -04:00
Leonardo de Moura
1881ad0aef feat(library/logic/weak_fan): add weak_fan theorem 2015-07-13 10:18:12 -04:00
Leonardo de Moura
a9515ac7a4 feat(library/tactic/rewrite_tactic): try to fold nested recursive applications after unfolding a recursive function
See issue #692.
The implementation still has some rough spots.
It is not clear what the right semantic is.
Moreover, the folds in e_closure could not be eliminated automatically.
2015-07-08 21:19:18 -04:00
Leonardo de Moura
77d5657813 refactor(library/algebra/function): move function.lean to init folder
Motivation: this file defines basic things such as function composition.
In the HoTT library, it is located in the init folder.
2015-07-06 07:29:56 -07:00
Leonardo de Moura
97b3fd45ce fix(library/logic/axioms/prop_decidable): fixes #704 2015-06-26 19:14:36 -07:00
Jeremy Avigad
d28eb919f1 refactor(library/logic/axioms/examples/diaconescu.lean): mild reformatting, to match tutorial 2015-06-20 21:13:00 -07:00
Leonardo de Moura
ff5022c2f4 feat(library/data/axioms): add 'type_decidable'
In Lean standard mode, Hilbert choice implies that all types are
decidable.
2015-06-14 17:33:22 -07:00
Jeremy Avigad
1c93c5bbb2 feat(library/logic/{connectives.lean,quantiers.lean}): add iff congruence rules 2015-06-08 16:58:08 +10:00
Floris van Doorn
ff41886a32 feat(nat/bquant): give instances for quantification bounded with le
also add theorems c_iff_c to logic/connectives, where c is a connective
2015-06-04 20:14:13 -04:00
Floris van Doorn
876aa20ad6 feat(hott): Port remainder of §6.3 and §7.2 from the HoTT book
Also prove a theorem similar to Lemma 7.3.1

There are still some sorry's in hit.suspension
2015-06-04 20:14:12 -04:00
Jeremy Avigad
df69bb4cfc feat(library/*): add theorems from Haitao on sets and functions, clean up 2015-06-04 11:55:25 -07:00
Jeremy Avigad
03952ae12c feat(library/logic/{connectives,identities},library/algebra/function): cleanup and some additions from Haitao Zhang 2015-06-04 11:55:25 -07:00
Leonardo de Moura
16d03c17ee refactor(library/logic/eq): use 'substvars' tactic 2015-06-02 23:55:51 -07:00
Leonardo de Moura
2f9005827c feat(library/init/logic): 'if-then-else' and 'dependent-if-then-else' congruence theorems
We will use these theorems to test the new simplifier.
2015-06-02 13:27:50 -07:00
Leonardo de Moura
1238f43575 feat(library/logic/examples): add "double-negation translation" example 2015-05-31 18:18:10 -07:00
Jeremy Avigad
8bebd104ff refactor(library/*): remove 'Module:' lines 2015-05-23 20:52:23 +10:00
Jeremy Avigad
db7bdce451 refactor(logic/funext.lean, algebra/function.lean): delete logic/funext, merge into algebra/function 2015-05-23 16:16:36 +10:00
Leonardo de Moura
396f77aa68 fix(library,hott): comment 'exit' commands to avoid warnings during compilation 2015-05-11 11:49:23 -07:00
Leonardo de Moura
8086ad7461 feat(library/init): define quot.hrec_on and quot.hrec_on₂ based on heterogeneous equality
They are easier to use than the version with nested eq.rec's
2015-05-09 09:49:41 -07:00
Leonardo de Moura
57ea660963 refactor(*): start process for eliminating of opaque definitions from the kernel
see issue #576
2015-05-08 16:06:04 -07:00
Jeremy Avigad
e4c75ae8ae feat(library/logic/connective.lean): add distributivity laws 2015-05-08 19:51:37 +10:00
Leonardo de Moura
7aa0e466a5 test(library): test new 'obtain' expression in the standard library 2015-05-05 18:30:16 -07:00
Leonardo de Moura
cd17618f4a refactor(library): replace 'calc_trans', 'calc_symm', 'calc_refl' and 'calc_subst' commands with attributes '[symm]', '[refl]', '[trans]' and '[subst]'
These attributes are used by the calc command.
They will also be used by tactics such as 'reflexivity', 'symmetry' and
'transitivity'.

See issue #500
2015-05-02 15:15:35 -07:00
Leonardo de Moura
458d13025f refactor(library,hott): define 'congr' in the initialization files 2015-05-02 11:29:31 -07:00
Leonardo de Moura
9760968b45 refactor(library,hott): use/test new 'contradiction' tactic in the standard and hott libraries 2015-04-30 13:56: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
670eac9d50 refactor(library): avoid 'context' command in the standard library 2015-04-21 19:13:19 -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