Jeremy Avigad
b4d8b1db33
fix(library/library.md): update and correct information. Fixes #973 .
2016-01-24 16:26:58 -08:00
Jeremy Avigad
27865e1c8b
feat(library/algebra/order_bigops): add min and max over finsets and finite sets
2016-01-24 16:26:57 -08:00
Jeremy Avigad
53b2d90c90
feat(library/data/{set,finset}): add some useful facts
2016-01-24 16:26:57 -08:00
Jeremy Avigad
69d953126a
refactor(library/algebra/ordered_group,ordered_ring): add versions of classes with decidable linear order, for min and max
2016-01-24 16:26:57 -08:00
Jeremy Avigad
1980baf784
feat(library/algebra/group_bigops): add Prod_semigroup, for cases without a unit
2016-01-24 16:26:57 -08:00
Leonardo de Moura
dc5ca99afa
fix(library/data/real/basic): unnecessary level of indirection
...
At real.comm_ring, `add` is `@add real real_has_add`.
This is bad for any tactic (e.g., blast) that only unfolds reducible definitions.
`add` is not reducible. So, the tactic will not be able to establish
that `@add real real_has_add` is definitionally equal to `real.add`.
2016-01-24 13:37:15 -08:00
Jeremy Avigad
86fc326e08
refactor/feat(library/theories/analysis/*): reorganize analysis library and add some theorems
2016-01-16 10:53:56 -08:00
Leonardo de Moura
b975717875
feat(init/logic): add cast_heq
2016-01-13 14:18:01 -08:00
Leonardo de Moura
8f7b533ca1
refactor(library): move 'cast' to init folder
2016-01-13 11:17:42 -08:00
Leonardo de Moura
c646c3cacc
feat(library/init/logic): add subsingleton.helim with heterogeneous equality
2016-01-10 16:47:45 -08:00
Leonardo de Moura
d3242a2068
refactor(library): rename heq.of_eq heq.to_eq auxiliary lemmas
2016-01-09 12:32:18 -08:00
Johannes Hölzl
12571c92d8
refactor(library/algebra): explicit parameters also for fun instances
2016-01-06 10:58:14 -08:00
Johannes Hölzl
6d6a00f48b
refactor(library/algebra): fix theorem names
2016-01-06 10:57:55 -08:00
Johannes Hölzl
f7ea9a5f64
feat(library/algebra): add theory about Galois connections
...
Adds a small theory about Galois connections, i.e. order theoretic adjoints, and their relations to
least upper and greatest lower bounds.
2016-01-06 10:57:32 -08:00
Johannes Hölzl
9c28552afb
feat(library/algebra): add lattice instances for Prop, fun, and set
...
Adds weak_order, lattice and complete_lattice instances for Prop, fun, and set. Adds supporting
theorems to various other places.
2016-01-06 10:57:32 -08:00
Rob Lewis
458725e63f
feat(library/algebra): add missing theorems to group and ordered ring
2016-01-04 14:45:39 -05:00
Rob Lewis
031831f101
feat(library/tactic): add replace tactic
2016-01-04 14:43:31 -05:00
Jeremy Avigad
d9118ded76
feat(library/theories/topology/basic): show that generated topology is initial
2016-01-03 18:52:25 -08:00
Jeremy Avigad
4289daddcb
refactor(library/data/{set,finset}/basic,library/*): change notation for image to tick mark
2016-01-03 18:52:25 -08:00
Jeremy Avigad
17f6ab3a71
fix(library/data/set/basic): fix spacing in notation
2016-01-03 18:52:25 -08:00
Jeremy Avigad
7600d04533
library/algebra/complete_lattice): fix typo in comment
2016-01-03 18:52:25 -08:00
Jeremy Avigad
173368801b
fix(library/algebra/interval): rename namespace, and move a theorem
2016-01-03 18:52:25 -08:00
Jeremy Avigad
31aa256b99
feat(library/theories/measure_theory/sigma_algebra): start with definition and properties of sigma algebras
2016-01-03 18:52:25 -08:00
Jeremy Avigad
721f6c87bf
feat(library/data/set/basic): add some theorems
2016-01-03 18:52:25 -08:00
Leonardo de Moura
66a722ff5a
feat(library/unifier): remove "eager delta hack", use is_def_eq when delta-constraint does not have metavariables anymore
...
The "eager-delta hack" was added to minimize problems in the interaction
between coercions and delta-constraints.
2016-01-03 12:39:32 -08:00
Leonardo de Moura
5feef27c2b
feat(frontends/lean/notation_cmd): relax restriction on user defined tokens
...
Before this commit, Lean would forbid new tokens containing '(' or ')'.
We relax this restriction. Now, we just forbid new tokens starting with '(' or ending with ')'.
2016-01-02 13:58:46 -08:00
Leonardo de Moura
0963ce336f
feat(library/blast): add 'grind' and 'grind_simp' blast strategies
...
The use [intro] [intro!] [elim] [simp] lemmas.
The [simp] lemmas are only used by grind_simp.
2016-01-01 17:32:13 -08:00
Leonardo de Moura
4f1415174e
refactor(library/data): "union." ==> "union_", "inter." ==> "inter_"
2016-01-01 16:13:44 -08:00
Leonardo de Moura
4e2494f12e
refactor(library/init/nat): minor cleanup
2016-01-01 15:56:46 -08:00
Leonardo de Moura
ac9d6c2021
refactor(library/data/bool): cleanup bool proofs and fix bxor definition
2016-01-01 13:52:42 -08:00
Leonardo de Moura
52ec7e6d57
feat(library/blast/recursor): add 'blast.recursor.max_rounds' options and iterative deepening for recursor_strategy
2016-01-01 13:09:37 -08:00
Leonardo de Moura
712e19e22a
fix(library/blast/forward/ematch): bug in the ematching procedure
2015-12-31 21:26:44 -08:00
Leonardo de Moura
54f2c0f254
feat(library/blast/forward): inst_simp should use the left-hand-side as a pattern (if none is provided by the user)
...
The motivation is to reduce the number of instances generated by ematching.
For example, given
inv_inv: forall a, (a⁻¹)⁻¹ = a
the new heuristic uses ((a⁻¹)⁻¹) as the pattern.
This matches the intuition that inv_inv should be used a simplification
rule.
The default pattern inference procedure would use (a⁻¹). This is bad
because it generates an infinite chain of instances whenever there is a
term (a⁻¹) in the proof state.
By using (a⁻¹), we get
(a⁻¹)⁻¹ = a
Now that we have (a⁻¹)⁻¹, we can match again and generate
((a⁻¹)⁻¹)⁻¹ = a⁻¹
and so on
2015-12-31 20:20:39 -08:00
Jeremy Avigad
0fb398c217
fix(library/data/nat/bigops): delete some blank lines
2015-12-31 15:16:57 -08:00
Jeremy Avigad
7f25dd6646
feat(library/data/nat/bigops): sums and products over intervals of natural numbers
2015-12-31 15:16:57 -08:00
Jeremy Avigad
12a69bad04
refactor(library/data/finset/basic,library/*): get rid of finset singleton
2015-12-31 15:16:57 -08:00
Jeremy Avigad
8a00a431e8
refactor(library/data/finset/basic): rename theorem
2015-12-31 15:16:57 -08:00
Jeremy Avigad
a28ded641c
refactor(library/algebra/interval): rename intervals to interval
2015-12-31 15:16:57 -08:00
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