Commit graph

1729 commits

Author SHA1 Message Date
Jeremy Avigad
86b64cf43b feat(library/data/set/*,library/algebra/group_bigops): better finiteness lemmas, reindexing for big operations 2015-12-31 15:16:57 -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
bd03619b5c refactor(library/data/list/basic): test 'rec_inst_simp' blast strategy
recursor + instantiate [simp] lemmas + congruence closure
2015-12-31 13:03:47 -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
41a01bb606 feat(library/blast/forward/ematch): add option 'blast.ematch.max_instances' 2015-12-29 20:36:11 -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
726867a8fb refactor(library/algebra/ring): minor cleanup 2015-12-29 11:16:18 -08:00
Leonardo de Moura
3557bd36e7 refactor(library/algebra/group): cleanup proofs using simp and add [simp] attribute 2015-12-29 10:48:47 -08:00
Leonardo de Moura
b117a10f82 refactor(library/blast/simplifier): use priority_queue to store simp/congr lemmas, use name convention used at forward/backward lemmas, normalize lemmas when blast starts, cache get_simp_lemmas 2015-12-28 17:52:57 -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
c52ffda0e0 feat(library/algebra/intervals): add notation for intervals 2015-12-26 10:45:53 -08:00
Jeremy Avigad
395eab7c2c feat(library/theories/topology/basic): start on topology (with Jacob Gross) 2015-12-26 10:29:58 -08:00
Jeremy Avigad
549feb5d7f feat(library/data/set/basic): add notation and theorems for large unions and intersections 2015-12-26 08:02:04 -08:00
Jeremy Avigad
d83e5d25fc feat(library/theories/measure_theory/extended_real): start on extended reals 2015-12-24 16:27:48 -05:00
Jeremy Avigad
84cdf3d36d feat(library/theories/analysis/normed_space): start theory of normed spaces for analysis 2015-12-22 16:39:13 -05:00
Jeremy Avigad
08fbf127c6 feat(library/theories/analysis/metric_space,real_limit): define complete metric space, make real an instance 2015-12-22 16:39:13 -05:00
Jeremy Avigad
5b3fbf1618 feat(library/algebra/module): make a start on modules and vector spaces (with material from Nathaniel Thomas) 2015-12-22 16:39:13 -05: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
Jeremy Avigad
baf11d0018 feat(library/algebra/ring_bigops): make start on file with more properties of sums and products 2015-12-22 16:39:13 -05:00
Jeremy Avigad
0e3b13f1a0 refactor(library/algebra): combine group_bigops and group_set_bigops 2015-12-22 16:39:13 -05:00
Soonho Kong
f1daf8f24e fix(algebra/group.lean): remove unnecessary use of add.assoc from theorem bit0_add_bit1_helper 2015-12-22 09:12:57 -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
Leonardo de Moura
42eda36225 chore(library/algebra/ordered_ring): use 'note' 2015-12-15 09:33:57 -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
193a9d8cde refactor(library/norm_num): avoid manual constant name initialization
@rlewis1988 We group all Lean constants used in the C++ code at
src/library/constants.txt

Jeremy and Floris check this file before renaming constants in the
library. So, they can quickly decide whether C++ code will be affected
or not.

We also have a python script for initializing the C++ name objects.
To use the script:
   - go to src/library
   - execute
       python ../../script/gen_constants_cpp.py constants.txt

It will create the boring initialization and finalization code, and
declare a procedure get_<id>_name() for each constant in the file constants.txt.

I also move the norm_num1.lean to the set of unit tests that are
executed whenever we push a commit to the main branch.

I found an assertion violation at line 606. Could you take a look?

Best,
Leo
2015-12-13 21:38:59 -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
49eae56db4 test(library/theories/group_theory): test auto-include in the group theory library 2015-12-13 13:40:54 -08:00
Leonardo de Moura
ef546c5c5b refactor(library): use anonymous instance implicit arguments 2015-12-13 11:46:48 -08:00
Floris van Doorn
2325d23f68 feat(hott): port nat and int from the standard library 2015-12-09 12:36:11 -08:00
Floris van Doorn
46739c8b70 feat(hott/algebra): port abstract structures 2015-12-09 12:34:06 -08:00
Leonardo de Moura
1b80dc0df6 feat(library/data/real/basic): improve performance 2015-12-09 10:57:16 -08:00
Jacob Gross
ab91f8dd5f feat(library/data/set/basic): add sInter_insert
add sInter supporting lemma
2015-12-07 21:39:30 -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
Leonardo de Moura
b36ce49f2b fix(tests,doc): adjust tests to changes in the standard library 2015-12-05 23:52:16 -08:00
Leonardo de Moura
b94e31a72c refactor(library): remove algebra namespace 2015-12-05 23:50:01 -08:00
Daniel Selsam
7a117c45bf feat(init/setoid): tag equivalence relation 2015-12-05 11:54:27 -08:00
Leonardo de Moura
fa938bb94c feat(frontends/lean/decl_cmds): allow modifier to be provided after the 'attribute' keyword, test 'at' keyword 2015-12-05 11:50:08 -08:00
Daniel Selsam
934b502c6f refactor(algebra/numeral): prove lemmas incrementally 2015-12-05 08:56:56 -08:00
Daniel Selsam
2e4765482b fix(algebra/ring): fix names 2015-12-05 08:56:56 -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
Jacob Gross
dd6bed371a feat(library/data/set/basic): Added a supporting lemma for sUnion, which will be essential for proofs by induction on finite sets 2015-12-02 23:05:59 -08:00
Joe Hendrix
719a78d541 style(library/data/bv): Use syntax for dite 2015-12-02 23:01:26 -08:00
Joe Hendrix
3574ad1f11 style(library/data/bv): Simplify from_bv and bv_mul 2015-12-02 23:01:26 -08:00
Joe Hendrix
fd1999a97f feat(library/data/bv): Add signed/unsigned comparisons. 2015-12-02 23:01:26 -08:00
Joe Hendrix
5cf6e18af0 refactor(library/data/bv): Cleanup formatting inconsistencies 2015-12-02 23:01:26 -08:00
Joe Hendrix
3fddca81b5 feat(library/data/bv): Add preliminary bitvector ops. 2015-12-02 23:01:26 -08:00
Joe Hendrix
e4c839f362 feat(library/data/tuple): Add tuple combinators 2015-12-02 23:01:26 -08:00
Joe Hendrix
42afd89583 feat(library/data/list): Add additonal list combinators. 2015-12-02 23:01:26 -08:00
Joe Hendrix
63a17a3f48 feat(library/data/bool): Add bxor definition 2015-12-02 23:01:26 -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
482c68b387 feat(*/list): add some computation rules for lists in both libraries 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
Floris van Doorn
5abc450fad feat(list): port list.basic from the standard library 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
Daniel Selsam
2eeab1c757 fix(algebra/simplifier): use export 2015-11-16 20:39:15 -08:00
Daniel Selsam
49ff8640d9 fix(library/blast/simplifier): use ac rules for numerals 2015-11-16 20:39:15 -08:00
Daniel Selsam
8ca5d87f0b feat(library/blast/simplifier): rely on norm_num for recursion 2015-11-16 20:33: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
Daniel Selsam
5e8068b2b2 feat(library/blast/simplifier): draft of fusion 2015-11-16 09:13:07 -08:00
Daniel Selsam
30b1b79c4e fix(algebra/simplifier): update numeral simp rules 2015-11-16 09:12:29 -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
Daniel Selsam
4ba6b4f3f1 fix(algebra/simplifier): reference norm_num namespace 2015-11-12 21:28:11 -08:00
Daniel Selsam
00a5cd519e feat(algebra/simplifier): simp rule set for units 2015-11-12 21:23:28 -08:00
Daniel Selsam
e7890fb456 feat(algebra/simplifier): useful simp rule sets 2015-11-12 21:23:28 -08:00
Jeremy Avigad
98ddc62f6c feat(library/data/complex): add complex numbers 2015-11-12 21:05:38 -08:00
Rob Lewis
44a099f6f1 feat(norm_num): performance and style fixes 2015-11-12 20:53:37 -08:00
Rob Lewis
4bf0519843 feat(norm_num): numeral normalizer works for +, -, *, / 2015-11-12 20:53:37 -08:00
Rob Lewis
616450be64 feat(library/norm_num): extend norm_num to handle subtraction 2015-11-12 20:53:37 -08:00
Leonardo de Moura
5ceac83b6a feat(frontends/lean/elaborator): restrict the number of places where coercions are considered
We do not consider coercions around meta-variables anymore.
2015-11-11 12:37:19 -08:00
Leonardo de Moura
9bedbbb739 refactor(library,hott): remove coercions between algebraic structures
They are classes, and mixing coercion with type class resolution is a
recipe for disaster (aka counterintuitive behavior).
2015-11-11 11:57:44 -08:00
Daniel Selsam
bacb9f99aa fix(logic/quantifiers): restore original 2015-11-08 14:05:03 -08:00
Daniel Selsam
34f4e315ee feat(logic/quantifiers): tag congruence theorems 2015-11-08 14:05:02 -08:00
Jeremy Avigad
697df0e68c refactor(library/*): use type classes for div and mod 2015-11-08 14:04:59 -08:00
Jeremy Avigad
eea4e4ec55 fix(tests/lean/*): fix tests 2015-11-08 14:04:59 -08:00
Jeremy Avigad
2beb0030d6 refactor(library/*): protect sub in nat, div in nat and int 2015-11-08 14:04:59 -08:00
Jeremy Avigad
b1719c3823 refactor(library/real/*): protect theorems 2015-11-08 14:04:59 -08:00
Jeremy Avigad
9e5a27dc77 refactor(library/{pnat,rat,real}/*): protect theorems in pnat and rat 2015-11-08 14:04:59 -08:00
Jeremy Avigad
da5bd03656 refactor(library/init/nat,library/data/nat/*): chagne dots to underscores in protected names 2015-11-08 14:04:59 -08:00
Jeremy Avigad
6dfaf1863c refactor(library/data/int/{basic,order}): protect theorem names 2015-11-08 14:04:59 -08:00
Jeremy Avigad
dc8858d764 refactor(library/init/nat,library/): protect more nat theorems 2015-11-08 14:04:59 -08:00
Jeremy Avigad
7bb2ffb79a refactor(library/data/nat/*): protect some theorems in nat 2015-11-08 14:04:59 -08:00
Leonardo de Moura
4eafcfe945 chore(library/data/fintype/function): fix indentation 2015-11-08 14:04:58 -08:00
Leonardo de Moura
33006919b3 refactor(library/theories/group_theory/hom): cleanup definition 2015-11-08 14:04:58 -08:00
Leonardo de Moura
a10aef0792 fix(library/data/tuple): modify definition to make sure we can compile it using new type class resolution procedure
The issue are universe level constraints that cannot be solved by the
new procedure.
2015-11-08 14:04:58 -08:00
Leonardo de Moura
5468076400 refactor(library/data): cleanup proofs 2015-11-08 14:04:58 -08:00
Leonardo de Moura
bd41b6ea13 refactor(library/data/rat/basic): cleanup proof 2015-11-08 14:04:58 -08:00
Leonardo de Moura
ac01e9e352 refactor(library/data/int/basic): cleanup proof 2015-11-08 14:04:58 -08:00
Leonardo de Moura
bceac9ece5 refactor(library/data/nat/sub): cleanup nasty proofs 2015-11-08 14:04:58 -08:00
Leonardo de Moura
c2ed5d3f1f fix(library/algebra/category/constructions): make proof more robust 2015-11-08 14:04:58 -08:00
Leonardo de Moura
65d7c05737 fix(library/algebra/complete_lattice): avoid looping instances 2015-11-08 14:04:57 -08:00
Leonardo de Moura
9348701a5b fix(library/logic/examples/instances_test): we do not support the set_option class.conservative false anymore 2015-11-08 14:04:57 -08:00
Rob Lewis
958add9ef8 feat(library/norm_num): fix numeral normalization to work on new numeral structure; add support for multiplication 2015-11-08 14:04:56 -08:00
Leonardo de Moura
13ccbaa0d9 refactor(library/data/encodable): mark auxiliary theorems as private 2015-11-08 14:04:56 -08:00
Leonardo de Moura
f14d0523ec refactor(library/data/set/filter): add missing [instance] attribute 2015-11-08 14:04:56 -08:00
Leonardo de Moura
08c061e1fa refactor(library/data/set): remove [reducible] annotation from set operations 2015-11-08 14:04:56 -08:00
Leonardo de Moura
6df31d3406 refactor(library/data/nat/basic): mark some theorems as protected to avoid overloading 2015-11-08 14:04:56 -08:00
Rob Lewis
0aaa8a9770 feat(theories/analysis/real_limit): fix analysis.real_limit 2015-11-08 14:04:56 -08:00
Leonardo de Moura
6779cb4fc6 refactor(library/data/real/division): make sure \sy and / notation for reals is available even when we do not open the namespace algebra 2015-11-08 14:04:56 -08:00
Leonardo de Moura
7838ed386d refactor(frontends/lean/pp,library/init/reserved_notation): pretty print "nat numerals" nicely even when namespace nat is not open 2015-11-08 14:04:56 -08:00
Leonardo de Moura
840f0ea05d fix(library/theories/analysis/real_limit): minor 2015-11-08 14:04:55 -08:00
Leonardo de Moura
9fb59a05f5 fix(library/theories/analysis/metric_space): minor correction 2015-11-08 14:04:55 -08:00
Leonardo de Moura
fa937395d9 fix(library/data/real): minor adjustments 2015-11-08 14:04:55 -08:00
Rob Lewis
670ac6ae19 fix(real/order): remove sorry 2015-11-08 14:04:55 -08:00
Rob Lewis
06c1a97259 feat(library/real): fix real.complete 2015-11-08 14:04:55 -08:00
Rob Lewis
0d0df0417d fix(library/real): fix real.division 2015-11-08 14:04:55 -08:00
Rob Lewis
f4e1f3bb1b feat(library/data/real): fix real.order 2015-11-08 14:04:55 -08:00
Leonardo de Moura
fbe80d48dc chore(library): remove "set_option pp.*" commands 2015-11-08 14:04:55 -08:00
Leonardo de Moura
ce21996635 feat(library): define custom recursors for nat, and minimize the use of krewrite 2015-11-08 14:04:55 -08:00
Leonardo de Moura
6e44a42779 refactor(library/data/int,library/data/rat): rename theorems: of_nat_zero, of_nat_one, of_int_zero, of_int_one 2015-11-08 14:04:55 -08:00
Leonardo de Moura
e8454fad26 fix(library/data/real/basic): remove obsolete notation declarations 2015-11-08 14:04:55 -08:00
Jeremy Avigad
7f88e9ad33 fix(library/data/real,library/theories/group_theory): group theory and real/basic 2015-11-08 14:04:55 -08:00
Jeremy Avigad
ffbb2be6ac fix(library/theories/group_theory): group_theory 2015-11-08 14:04:55 -08:00
Leonardo de Moura
0eec984485 fix(library/data/equiv): minor adjustment 2015-11-08 14:04:55 -08:00
Leonardo de Moura
724aacb2c1 fix(library): remove "-[notations]" hack at "open -[notations] algebra" 2015-11-08 14:04:55 -08:00
Leonardo de Moura
26eb6fa849 feat(*): new numeral encoding 2015-11-08 14:04:55 -08:00
Leonardo de Moura
8ee214f133 checkpoint: new numeral encoding 2015-11-08 14:04:55 -08:00
Leonardo de Moura
f6d22c0002 fix(library/theories/group_theory/finsubg): fix compilation errors 2015-11-08 14:04:55 -08:00
Leonardo de Moura
8657ccfc04 fix(library/data/int/gcd): remove sorry 2015-11-08 14:04:55 -08:00
Leonardo de Moura
a9f5735bb5 fix(library/data/int/basic): remove sorry's 2015-11-08 14:04:55 -08:00
Leonardo de Moura
843e95ade6 fix(library/data/real/basic): some real theorems 2015-11-08 14:04:55 -08:00
Leonardo de Moura
c0990d1902 fix(library/data/pnat): pnat with type classes 2015-11-08 14:04:55 -08:00
Leonardo de Moura
a23c05549e fix(library/data/int/div): int div 2015-11-08 14:04:54 -08:00
Jeremy Avigad
1ffe62341b fix(library/data/int): more int problems 2015-11-08 14:04:54 -08:00
Leonardo de Moura
07b33ec75e fix(library/data/int,library/data/rat): int and rat 2015-11-08 14:04:54 -08:00
Leonardo de Moura
744d1cba3d feat(library,hott,frontends/lean): avoid keywords with hyphen 2015-11-08 14:04:54 -08:00
Leonardo de Moura
27b4eb2058 fix(library/data): hf, int, nat, pnat 2015-11-08 14:04:54 -08:00
Leonardo de Moura
3369152559 fix(library/data,library/theories): fin, bag, finset, hf, list, ... 2015-11-08 14:04:54 -08:00
Leonardo de Moura
e6d7e89419 fix(library/data/int,library/data/nat): nat and int 2015-11-08 14:04:54 -08:00
Leonardo de Moura
a618bd7d6c refactor(library): use type classes for encoding all arithmetic operations
Before this commit we were using overloading for concrete structures and
type classes for abstract ones.

This is the first of series of commits that implement this modification
2015-11-08 14:04:54 -08:00
Leonardo de Moura
06e35b4863 fix(library/algebra/numeral): remove redundant definitions 2015-11-08 14:04:54 -08:00
Leonardo de Moura
e4f0f6a9b4 feat(library): numeral normalization skeleton 2015-10-08 12:49:12 -07:00
Leonardo de Moura
5f967f40b2 fix(library/data/nat/basic): simplify two lemmas 2015-10-07 10:32:20 -07:00
Floris van Doorn
115dedbd1c fix(hott): notation spacing and markdown files 2015-10-02 16:26:10 -07:00
Leonardo de Moura
ede23a3267 feat(hott,library): add additional spacing hints 2015-09-30 17:41:44 -07:00
Sebastian Ullrich
d1b5031dbd feat(library): add some spacing hints 2015-09-30 17:36:32 -07:00
Floris van Doorn
3c4c722afd feat(hott): port more from chapters 4 and 6 of the book 2015-09-28 09:09:21 -07:00
Leonardo de Moura
33f46fd137 feat(library/blast): parse blast tactic and invoke stub 2015-09-25 12:45:16 -07:00
Jeremy Avigad
719e9043cd feat(library/data/set/equinumerosity): add Cantor's theorem, Schroeder-Bernstein theorem 2015-09-25 09:32:28 -07:00
Jeremy Avigad
2c7526e1fc feat(library/*): add various theorems 2015-09-25 09:32:28 -07:00
Jeremy Avigad
135f5ff96b feat(library/init/quot.lean): declare calc subst rule for iff 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
42c9bdc463 feat(library/theories/analysis/{metric_space,real_limit}: add convergence theorems 2015-09-20 20:51:28 -04:00
Jeremy Avigad
aa8dfba5a5 feat/fix(library/algebra/*): add some useful theorems, fix implicit arguments 2015-09-20 20:47:30 -04:00
Jeremy Avigad
9561e379c7 fix(library/data/set/basic): make set_of reducible 2015-09-20 19:54:46 -04:00
Rob Lewis
8fef4a95d4 chore(library/algebra/ordered_field): generalize theorem from reals 2015-09-17 16:23:22 -04:00
Rob Lewis
d6be32e4ef feat(library/theories/analysis): refactor IVT proof, add more general version of IVT 2015-09-17 16:22:46 -04:00
Rob Lewis
856a09d70e chore(library/theories/analysis): make proof of IVT compile faster 2015-09-16 16:44:28 -04:00
Rob Lewis
631b9b3312 feat(library/theories/analysis): clean and simplify proof of IVT 2015-09-16 08:28:11 -07:00
Rob Lewis
ee257a7c6c chore(library/data/{nat,real}): rename and move iterate function 2015-09-16 08:28:11 -07:00
Rob Lewis
ea3915f279 feat(library/theories/analysis): prove intermediate value theorem 2015-09-16 08:28:11 -07:00
Rob Lewis
f5dcb1e0a9 feat(library/algebra): add missing theorems to algebra library 2015-09-16 08:28:11 -07:00
Rob Lewis
4312f1e54b chore(library/data/real): clean and rename theorems in completeness proofs 2015-09-16 08:28:11 -07:00
Rob Lewis
f4fa38e365 chore(library/data/{rat, pnat}): move theorems from reals to more appropriate places 2015-09-16 08:28:11 -07:00
Jeremy Avigad
352a906ba2 feat(library/theories/{metric_space,real_limit}): define metric spaces, limits, instantiate reals 2015-09-12 21:46:09 -04:00
Jeremy Avigad
948cdee366 feat(library/algebra/ordered_group): add variant of triangle inequality 2015-09-12 21:46:09 -04:00
Jeremy Avigad
b48b33c412 feat(library/data/real/division): add useful rules for proving equalities 2015-09-12 21:46:09 -04:00
Jeremy Avigad
780c950414 refactor(library/data/int/order): use 'exists' instead of 'ex', 'least' instead of 'smallest', etc. 2015-09-12 21:46:09 -04:00
Jeremy Avigad
1affeec3c6 fix(library/algebra/ordered_filed): rename theorems 2015-09-12 21:46:09 -04: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
d9e166f77f feat/refactor(library/data/real/*): add / improve casts to real from nat, int, rat 2015-09-12 21:46:09 -04:00
Jeremy Avigad
de83a68667 refactor(library/data/{int,rat}/*): clean up casts between nat, int, and rat 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
Leonardo de Moura
3035dd7e66 refactor(library/data/finset/equiv): remove workarounds added by commit e9809a453d
The workarounds were needed due to a bug at local_context class.
The problem has been fixed at df3100d2cd
2015-09-12 17:19:49 -07:00
Leonardo de Moura
e9809a453d fix(library/data/finset/equiv): broken proof
TODO: investigate why the proof has to be fixed
2015-09-11 23:24:29 -07:00
Rob Lewis
8d1f449491 refactor(library/data/real): move and rename theorems 2015-09-11 08:52:53 -07:00
Leonardo de Moura
3c1d6ec67a feat(library/algebra/algebra): add link to complete lattices module 2015-09-04 13:04:36 -07:00
Sebastian Reuße
f8a773be11 chore(library/algebra): remove obsolete link. 2015-09-04 09:41:34 +02:00
Rob Lewis
e722120e34 fix(library/data/rat/order): declare decidable_le an instance 2015-09-03 15:43:07 -07:00
Jeremy Avigad
2ab7928257 refactor(library/data/set/basic): standardize intro and elim theorem names 2015-09-03 15:38:27 -07:00
Floris van Doorn
9a439d4a4e feat(library.md): update reference to classical axiom 2015-09-01 15:17:46 -07:00
Jeremy Avigad
072971f3bb feat(library/data/finset/comb,library/data/set/basic): define set complement 2015-09-01 14:47:19 -07:00
Jeremy Avigad
840ef98829 refactor(library/init/nat): make \nat notation available at top level 2015-09-01 14:47:19 -07:00
Jeremy Avigad
51e0d31304 refactor(library/algebra/ordered_ring,ordered_field): move theorems from ordered_field to ordered_ring 2015-09-01 14:47:19 -07:00
Jeremy Avigad
7d72c9b6b5 refactor(library/algebra/{field,ordered_field}, library/*): more renaming, setting implicit arguments
Many theorems for division rings and fields have stronger versions for discrete fields, where we
assume x / 0 = 0. Before, we used primes to distinguish the versions, but that has the downside
that e.g. for rat and real, all the theorems are equally present. Now, I qualified the weaker ones
with division_ring.foo or field.foo. Maybe that is not ideal, but let's try it.

I also set implicit arguments with the following convention: an argument to a theorem should be
explicit unless it can be inferred from the other arguments and hypotheses.
2015-09-01 14:47:19 -07:00
Jeremy Avigad
93c2d1e9d0 refactor(library/algebra/ordered_field): rename theorems to maintain consistency with other parts of the library 2015-09-01 14:47:19 -07:00