Floris van Doorn
e5d5ef9d55
feat(hott/library): various changes and additions.
...
Most notably:
Give le.refl the attribute [refl]. This simplifies tactic proofs in various places.
Redefine the order of trunc_index, and instantiate it as weak order.
Add more about pointed equivalences.
2016-03-03 10:13:20 -08:00
Floris van Doorn
bf403e124a
feat(nat/div): port to HoTT library
2016-03-03 10:13:20 -08:00
Jeremy Avigad
87252bbffe
fix(library/data/set/basic): add spaces in notation for bounded quantifiers
2016-03-03 11:50:40 -05:00
Jeremy Avigad
dc6cd71236
fix(library/algebra/monotone): fix theorem names
2016-03-02 22:54:51 -05:00
Jeremy Avigad
4050892889
refactor(library/*): rename 'compose' to 'comp'
2016-03-02 22:48:05 -05:00
Jeremy Avigad
ebb3e60096
feat(library/algebra/monotone): add properties of monotone functions
2016-03-02 22:01:35 -05:00
Jeremy Avigad
3d09144d73
feat(library/algebra/homomorphism): add homomorphisms between algebraic structures
2016-03-02 19:45:45 -05:00
Daniel Selsam
c23528b5d8
feat(library/blast/blast): use defeq_simplifier to normalize
2016-03-01 13:44:33 -08:00
Leonardo de Moura
fbe5188480
refactor(frontends/lean): remove 'by+' and 'begin+' tokens
2016-02-29 13:45:43 -08:00
Leonardo de Moura
79ba2638b7
fix(library/data/set/equinumerosity): add missing 'using'
2016-02-29 13:29:03 -08:00
Leonardo de Moura
faa0031d4e
refactor(library,hott): remove 'by+' and 'begin+'
2016-02-29 13:15:48 -08:00
Leonardo de Moura
b41c65f549
feat(frontends/lean): remove '[visible]' annotation, remove 'is_visible' tracking
2016-02-29 12:31:23 -08:00
Leonardo de Moura
3b73b5b207
fix(library/theories/group_theory): have-tactic
2016-02-29 12:13:53 -08:00
Leonardo de Moura
deb1b3dc79
refactor(library): replace assert
-exprs with have
-exprs
2016-02-29 11:53:26 -08:00
Leonardo de Moura
101cf1ec4c
feat(frontends/lean): remove difference between 'have' and 'assert'
2016-02-29 11:28:20 -08:00
Leonardo de Moura
5a4dd3f237
feat(library/reducible): remove [quasireducible]
annotation
2016-02-25 17:42:44 -08:00
Leonardo de Moura
768ba1c363
refactor(library/hott): remove more unnecessary annotations
2016-02-25 14:30:00 -08:00
Leonardo de Moura
510168a387
refactor(library,hott): remove unnecessary annotations
2016-02-25 12:26:20 -08:00
Leonardo de Moura
146edde5b3
feat(library/class): mark instances as quasireducible by default
...
quasireducible are also known as lazyreducible.
There is a lot of work to be done.
We still need to revise blast, and add a normalizer for type class
instances. This commit worksaround that by eagerly unfolding
quasireducible.
2016-02-25 12:11:29 -08:00
Leonardo de Moura
c85d6d5a1e
fix(library/init/tactic): typo
2016-02-24 16:10:35 -08:00
Leonardo de Moura
1924b2884c
refactor(library/tactic): remove 'append' and 'interleave' tacticals
...
Preparation for major refactoring in the tactic framework.
2016-02-24 16:02:16 -08:00
Sebastian Ullrich
3de216d302
chore(*.md): fix/remove broken links
2016-02-23 10:11:24 -08:00
Jeremy Avigad
1546c04154
feat(library/theories/analysis/complex_norm): instantiate complex numbers as a real normed vector space
2016-02-22 11:25:24 -08:00
Jeremy Avigad
5246072e96
feat(library/theories/analysis/inner_product): add real inner product spaces
2016-02-22 11:25:24 -08:00
Jeremy Avigad
7f1eb76091
feat(library/theories/analysis/normed_space): add specializations to modules over the reals, to help the elaborator
2016-02-22 11:25:24 -08:00
Jeremy Avigad
ea42a76dc5
refactor/feat(library/theories/analysis/sqrt): break out sqrt, add properties
2016-02-22 11:25:23 -08:00
Jeremy Avigad
3c18f05cab
feat(library/algebra): add some useful facts
2016-02-22 11:25:23 -08:00
Jeremy Avigad
158acf878d
feat(library/data/set/filter): work in material from Jacob Gross
2016-02-22 11:25:23 -08:00
Jeremy Avigad
41342f53df
refactor(library/data/set/filter): get filters working with complete lattice notation
2016-02-22 11:25:23 -08:00
Jeremy Avigad
a08395b17e
refactor(library/algebra/complete_lattice): make complete lattices more usable
...
I addressed two problems. First, the theorem names and notation were all in
the namespace complete_lattice. The problem was that if you opened that
namespace, names (like "sup" and "inf") and notation clashed with global notation
for lattices.
The other problem was that if you defined a lattice using Sup, the Sup you got
was not the Sup you want; it was the Sup-construction from the Inf-construction
from the Sup.
Everything seems good now.
2016-02-22 11:25:23 -08:00
Jeremy Avigad
7fe71c972f
feat(library/data/set/basic): add theorems for bounded unions and intersections
2016-02-22 11:25:23 -08:00
Jeremy Avigad
518a77587a
refactor(library/data/{set,finset},library/*): use compl for set and finset complement
2016-02-22 11:25:23 -08:00
Jeremy Avigad
8f83c78bc9
fix(library/logic/identities,library/*): fix implicit arguments, add implications. Closes #1002 .
2016-02-22 11:25:23 -08:00
Jeremy Avigad
769ae6830d
feat(library/data/set/function): add facts about preimages
2016-02-22 11:25:23 -08:00
Jeremy Avigad
a72f6666e8
feat(library/data/set/basic): add two theorems
2016-02-22 11:25:23 -08:00
Jeremy Avigad
797905b803
feat(library/theories/topology/order_topology): add order_topology, from Jacob Gross
2016-02-22 11:25:23 -08:00
Jeremy Avigad
b8d3f34d14
feat(library/data/set/basic): add a couple of theorems
2016-02-22 11:25:23 -08:00
Jeremy Avigad
03cd2c0013
feat/refactor(library/algebra/interval): use i for infinite, add some theorems
2016-02-22 11:25:23 -08:00
Jeremy Avigad
e80559237a
fix(library/data/real): tinker with instances
...
Convert two instances of has_zero and has_one to local instance,
and change one "[instance]" to a "[trans_instance]". This (by
accident) fixed a problem Rob had a couple of weeks ago.
2016-02-22 11:25:23 -08:00
Jeremy Avigad
15c9ec12cf
fix(library/data/real/division): make temporary has_div only a local instance
2016-02-22 11:25:23 -08:00
Floris van Doorn
facd94a1b4
feat(hott): various changes
...
more about pointed truncated types, including pointed sets.
also increase the priority of some basic instances that nat/num/pos_num/trunc_index have 0, 1 and + (in both libraries)
also move the notation + for sum into the namespace sum, to (sometimes) avoid overloading with add
2016-02-22 11:15:38 -08:00
Jacob Gross
db8ed5dd08
feat (library/theories/topology/basic) : add separation theorems
...
add T0, T1, T2 separation theorems and add closed singleton theorem for T1 spaces
2016-02-22 11:11:54 -08:00
Sean Leather
7852524370
fix(library/data/list/sorted): incorrect name
2016-02-22 11:06:39 -08:00
Rob Lewis
b047c9c037
refactor(theories/{analysis, topology}): clean up proofs connecting open balls and open sets
2016-02-12 11:50:11 -08:00
Rob Lewis
68bc41b5fe
feat(data/set): add missing set theorems
2016-02-12 11:50:11 -08:00
Rob Lewis
4a41e78124
fix(theories/analysis): make variables implicit in continuous_at_intro
2016-02-12 11:50:10 -08:00
Rob Lewis
2c56a2c48b
feat(theories/{analysis, topology}): show eps-delta and topological continuity coincide on metric spaces
2016-02-12 11:50:10 -08:00
Rob Lewis
eb05741ce6
feat(data/set): add missing set membership theorems
2016-02-12 11:50:10 -08:00
Rob Lewis
685049988c
feat(theories/analysis): define metric topology
2016-02-12 11:50:10 -08:00
Rob Lewis
b8d86ffe48
feat(theories/topology): add theorem for proving sets open
2016-02-12 11:50:10 -08:00
Floris van Doorn
e14d4a4c0c
feat(init/wf): port from standard library to HoTT library
...
After this commit we need some more advanced theorems in init/wf, notably function extenstionality.
For this reason I had to refactor the init folder a little bit.
To keep the init folders in both libraries similar, I did the same refactorization in the standard library, even though that was not required for the standard library
2016-02-09 10:03:48 -08:00
Leonardo de Moura
42fbc63bb6
fix(library/tc_multigraph): avoid name collisions
...
@avigad, @fpvandoorn, @rlewis1988, @dselsam
I changed how transitive instances are named.
The motivation is to avoid a naming collision problem found by Daniel.
Before this commit, we were getting an error on the following file
tests/lean/run/collision_bug.lean.
Now, transitive instances contain the prefix "_trans_".
It makes it clear this is an internal definition and it should not be used
by users.
This change also demonstrates (again) how the `rewrite` tactic is
fragile. The problem is that the matching procedure used by it has
very little support for solving matching constraints that involving type
class instances. Eventually, we will need to reimplement `rewrite`
using the new unification procedure used in blast.
In the meantime, the workaround is to use `krewrite` (as usual).
2016-02-04 13:15:42 -08:00
Rob Lewis
87ec5ada07
fix(analysis/metric_space): unnecessary import, style, remove unnecessary lines
2016-02-04 11:03:28 -08:00
Rob Lewis
a675a5ede2
fix(algebra/ordered_field, analysis/real_limit): generalize theorem to ordered fields
2016-02-04 11:03:28 -08:00
Rob Lewis
f402f322aa
feat(theories/analysis): add theorems about convergent sequences, functions, and continuity
2016-02-04 11:03:28 -08:00
Rob Lewis
ffed988a34
feat(data/list): add missing theorems
2016-02-04 11:03:28 -08:00
Rob Lewis
dcfc496992
feat(algebra/ordered_field): ad missing theorem
2016-02-04 11:03:28 -08:00
Rob Lewis
40a1371cd0
feat(theories/analysis): define real square roots
2016-02-04 11:03:28 -08:00
Rob Lewis
796e16bdb7
feat(library/theories/analysis): add theorems about convergent functions in metric spaces
2016-02-04 11:03:28 -08:00
Rob Lewis
cb4f71b16c
feat(library/data/real): add more theorems concerning rationals embedded in reals
2016-02-04 11:03:28 -08:00
Rob Lewis
110036c4dc
feat(library/algebra/ordered_field): add missing theorems
2016-02-04 11:03:28 -08:00
Leonardo de Moura
790dbc53c3
refactor(library/algebra/ring): cleanup
2016-02-03 20:07:12 -08:00
Leonardo de Moura
cb12b9b876
refactor(library): cleanup proofs
...
Fixed proofs that broke when we tried to implement a "checkpoint" have.
2016-02-03 19:52:23 -08:00
Leonardo de Moura
c779590517
feat(library/algebra/ring): add lemma
2016-01-30 16:34:59 -08:00
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