Commit graph

52 commits

Author SHA1 Message Date
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
Leonardo de Moura
26eb6fa849 feat(*): new numeral encoding 2015-11-08 14:04:55 -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
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
Jeremy Avigad
aa8dfba5a5 feat/fix(library/algebra/*): add some useful theorems, fix implicit arguments 2015-09-20 20:47:30 -04:00
Jeremy Avigad
7dda69fec7 feat/refactor(library/theories/number_theory/irrational_roots,library/*): show nth roots irrational, and add lots of missing theorems 2015-08-16 23:23:23 -04:00
Jeremy Avigad
eca3437388 refactor(library/algebra/ring): add alternate names for dvd.intro, dvd.intro_left 2015-08-09 22:13:18 -04:00
Rob Lewis
00262e4e47 feat(library/algebra): finish adding one-directional versions of iff theorems 2015-08-07 13:30:23 -07:00
Leonardo de Moura
0de715ae54 refactor(library/data): cleanup proofs using new features 2015-07-21 09:57:10 -07: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
cf574d0127 feat(library): assign priorities to notation declarations in the standard library
Now, even if the user opens the namespaces in the "wrong" order, the
notation + coercions will behave as expected.
2015-06-30 17:38:13 -07:00
Leonardo de Moura
3215af3926 feat(frontends/lean): add '[trans-instance]' attribute
see issue #666
2015-06-27 14:07:29 -07:00
Leonardo de Moura
018518f0cf refactor(library/algebra/ring): more robust proofs 2015-06-22 15:31:03 -07:00
Rob Lewis
b23e23061f feat(library/algebra): finish/move more general theorems from reals to algebra) 2015-06-16 11:30:12 -07:00
Jeremy Avigad
ffa648a090 feat/refactor(library/*): various additions and improvements 2015-06-01 12:35:44 +10:00
Jeremy Avigad
b76445df39 feat(library/data/{nat,int}/div.lean,*): improve and extend div in nat and int 2015-05-30 22:10:21 +10:00
Jeremy Avigad
8bebd104ff refactor(library/*): remove 'Module:' lines 2015-05-23 20:52:23 +10:00
Jeremy Avigad
d33c91d7b9 fix({hott,library}/algebra/*): fix names 2015-05-23 14:05:06 +10:00
Leonardo de Moura
19361f0196 feat(library/unifier): do not fire type class resolution as last resort when type contains metavariables
see discussion at #604
2015-05-18 15:45:23 -07:00
Jeremy Avigad
ff701a9812 feat(library/data/nat/bigops.lean): add finite products and sums for nat 2015-05-16 22:26:59 +10: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
87f6fc6b6a feat(library/algebra/ring): remove sorrys 2015-03-30 11:55:48 -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
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
Leonardo de Moura
3c24461e51 refactor(*): modify '|' binding power, use 'abs a' instead of '|a|', and '(a | b)' instead of 'a | b' 2015-02-25 15:18:21 -08:00
Leonardo de Moura
f9ff4ee6bd refactor(library/algebra/ring): use rewrite tactic at ring module 2015-02-08 17:35:01 -08:00
Leonardo de Moura
96c161a659 feat(library/algebra/ring): simplify ring theorems using rewrite tactic 2015-02-05 18:48:02 -08:00
Jeremy Avigad
8d5a7a96b6 feat(library/data/nat/div): revise theorems, add lcm 2015-01-31 21:52:35 -08:00
Leonardo de Moura
ae7b5a9bc9 fix(library/algebra): add missing [reducible]
It addresses issues raised at #403
2015-01-21 15:53:56 -08:00
Jeremy Avigad
44642a4285 feat(library/algebra/ordered_ring,library/data/int/): add sign and theorems about abs, make int an instance, port theorems 2015-01-21 15:46:17 -08:00
Leonardo de Moura
2717adde94 feat(library/unifier): add option 'unifier.conservative', use option by default in the calc_assistant 2015-01-19 16:23:29 -08:00
Leonardo de Moura
7149c49553 refactor(library/algebra): factor out proofs from coercions
Coercions/instances should be simple definitions
2015-01-19 13:00:24 -08:00
Leonardo de Moura
edcc92d9c7 feat(frontends/lean): remove 'using' from structure instance command 2015-01-17 09:38:10 -08:00
Leonardo de Moura
3d63c0b5dc refactor(library/algebra/ring): using new structure instance syntax sugar to define instance 2015-01-16 17:42:30 -08:00
Jeremy Avigad
cecabbb401 refactor(library/data/int,library/algebra): make int an instnance of ordered ring, rename theorems 2014-12-26 16:25:05 -05: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
5bc6dd84cf feat(library/data/nat): make nat an instance of comm_semiring 2014-12-23 21:14:35 -05:00
Jeremy Avigad
486bc321ff refactor(library/data/nat): rename theorems 2014-12-23 21:14:35 -05:00
Jeremy Avigad
0f0da64264 refactor(library/data/int): make int instance of integral domain 2014-12-22 15:33:42 -05:00
Jeremy Avigad
da7a403b6c refactor(library/algebra/ring): make dvd a definition 2014-12-22 15:33:41 -05:00
Jeremy Avigad
9d2587c79b refactor(library/data/int/basic): make the integers an instance of ring 2014-12-17 13:32:38 -05: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
Jeremy Avigad
6f775be1b6 feat(library/algebra/ordered_ring): start on ordered_ring, and minor changes elsewhere 2014-12-13 11:35:35 -08:00
Leonardo de Moura
d6c8e23b03 refactor(library/init/logic): move theorems to library/logic 2014-12-12 13:24:17 -08:00
Jeremy Avigad
57effaf1a9 refactor(library/algebra): use new naming conventions, add information to speed up proofs 2014-12-02 12:14:14 -08:00
Leonardo de Moura
697d4359e3 refactor(library): add 'init' folder 2014-11-30 20:34:12 -08:00
Jeremy Avigad
58e325f0af feat(library/algebra): add to developments of group, ordered_group, and ring 2014-11-28 22:54:15 -08:00
Leonardo de Moura
df51ba8b7c feat(library/definitional/projection): use strict implicit inference, closes #344 2014-11-25 18:04:06 -08:00