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
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
07b33ec75e
fix(library/data/int,library/data/rat): int and rat
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
Sebastian Ullrich
d1b5031dbd
feat(library): add some spacing hints
2015-09-30 17:36:32 -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
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
Rob Lewis
e722120e34
fix(library/data/rat/order): declare decidable_le an instance
2015-09-03 15:43:07 -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
92af727daf
fix(library/data/real/{basic,division,order}: use notation for 0 and 1
...
These changes were needed because e.g. real.add_zero was "x + zero = x", and rewrite
would not match it to a goal "t + 0".
The fix was a lot harder than I expected. At first, migrate failed with resource
errors. In the end, what worked was this: I defined the coercion from num to real
directly (rather than infer num -> nat -> int -> rat -> real).
I still don't understand what the issues are, though. There are subtle issues with
numerals and coercions and migrate.
(We are not alone. Isabelle also suffers from the fact that there are too many
"zero"s and "one"s.)
2015-09-01 14:47:19 -07: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
e416291135
feat(library/algebra/*,library/data/*): small additions and changes
2015-08-14 18:49:57 -07:00
Jeremy Avigad
a56a7d2736
feat(library/data/rat/basic): prove numerator and denominator are coprime
2015-08-14 18:49:57 -07:00
Leonardo de Moura
bf65acb126
feat(library/data/rat): show that the rationals are encodable and countable
2015-08-12 21:31:24 -07:00
Jeremy Avigad
4b39400439
feat(library/data/{int,rat,real}/bigops): add bigops for int, rat, real
...
Because migrate does not handle parameters, we have to migrate by hand.
2015-08-08 17:20:23 -04:00
Jeremy Avigad
36c7aad6ee
fix(library/data/rat/basic): define pow before migrate
2015-08-01 18:23:36 +01: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
0de715ae54
refactor(library/data): cleanup proofs using new features
2015-07-21 09:57:10 -07:00
Leonardo de Moura
48f8b8f18d
refactor(library): use new 'suppose'-expression
2015-07-19 21:15:20 -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
3ab0e07ba9
feat(frontends/lean): add simp tactic frontend stub
...
This commit also removes the fake_simplifier. It doesn't work anymore
because simp is now a reserved word.
2015-07-14 09:54:53 -04:00
Leonardo de Moura
0f64a6e545
feat(library/data/rat/order): use 'trans-instance' to improve performance of migrate command
2015-07-01 08:57:10 -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
Jeremy Avigad
130eb3f6d9
fix(library/data/int/basic): change notation from -[n+1] to -[1+n] to avoid conflict e.g. with -[coercions]
2015-06-29 15:23:11 +10:00
Jeremy Avigad
93e5124d71
feat(library/algebra/order): add lattices, min, max
2015-06-29 15:23:11 +10:00
Rob Lewis
34868d196e
feat(library/data/rat): define pos natural upper bounds of rationals
2015-06-16 11:30:12 -07:00
Rob Lewis
1f4765e30a
feat(library/algebra/ordered_ring): add theorems used for rational upper bounds
2015-06-16 11:30:12 -07:00
Leonardo de Moura
226a5800dd
fix(library/data/rat/order): adjust file to recent changes
2015-06-10 16:56:17 -07:00
Jeremy Avigad
658c5a2c49
feat(library/rat/basic.lean): add reduce for rat, and num and denom
2015-06-10 16:39:17 -07:00
Jeremy Avigad
ffa648a090
feat/refactor(library/*): various additions and improvements
2015-06-01 12:35:44 +10:00
Rob Lewis
2273dc669e
feat(library/data): fill in sorrys in int and rat orderings
2015-05-29 14:11:51 +10:00
Leonardo de Moura
47e5633498
feat(frontends/lean/calc_proof_elaborator): avoid unnecessary unfolding in the calc tactic
2015-05-27 12:07:39 -07:00
Rob Lewis
681f431d4b
feat(library/data/rat): make rat subtraction reducible, fix migration of min/max
2015-05-26 11:52:34 +10:00
Jeremy Avigad
a64c0ea845
feat/refactor(library/data/{int,rat}/*): improve casting from nat to int to rat
2015-05-25 16:50:42 -07:00
Jeremy Avigad
8bebd104ff
refactor(library/*): remove 'Module:' lines
2015-05-23 20:52:23 +10:00
Jeremy Avigad
f65a49b2c3
feat/fix(library/data/nat,int): add power to int, add trans attributes, power notation
2015-05-23 15:38:42 +10:00
Jeremy Avigad
4bc93b59e3
feat(library/data/rat/{basic,order}.lean): add property of of_int
2015-05-23 12:34:07 +10:00
Jeremy Avigad
42616f766f
refactor(library/data/{nat,int,rat}/{basic.lean,order.lean}: make algebra instance declarations local
2015-05-12 06:20:47 -07:00
Leonardo de Moura
f25c301c98
fix(library/data/rat): migrate for rat
2015-05-12 04:46:34 -07:00
Leonardo de Moura
5798ac43de
fix(frontends/lean/structure_cmd): 'structure' command must set unfold-c attribute for auxiliary recursors
...
fixes #582
2015-05-07 09:09:07 -07: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
17c07cdb02
feat(library/data/rat/order): define abs and sign for rat before migrate
2015-04-27 12:59:02 -07:00
Jeremy Avigad
7a1064b7e8
refactor(library/algebra/order.lean): rename a field in an order structure
2015-04-27 12:03:41 -07:00
Jeremy Avigad
d8e40d90d6
feat(library/data/rat/order.lean): make rat a linear ordered field
2015-04-27 12:03:41 -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