Zulip Chat Archive
Stream: Is there code for X?
Topic: S1 and other topological spaces
Pedro Minicz (Sep 22 2020 at 16:30):
Is the circle S1 in mathlib? Or R/Z?
Johan Commelin (Sep 22 2020 at 16:32):
@Patrick Massot I guess you have been thinking about the circle for Sphere eversion. What's the status?
Heather Macbeth (Sep 22 2020 at 16:55):
@Pedro Minicz What kind of circle do you want? The manifold circle doesn't exist yet.
Heather Macbeth (Sep 22 2020 at 16:56):
But it exists as a topological space quite easily.
Heather Macbeth (Sep 22 2020 at 16:57):
You could probably even build a manifold structure on S1 "by hand" at the moment.
Heather Macbeth (Sep 22 2020 at 16:58):
But no one has done it because it seems better to wait until submanifolds and quotient manifolds are defined, then construct it either as a submanifold of R^2 or as a quotient manifold of R^1 (or both).
Pedro Minicz (Sep 22 2020 at 17:04):
Heather Macbeth said:
Pedro Minicz What kind of circle do you want? The manifold circle doesn't exist yet.
The topological space
Kevin Buzzard (Sep 22 2020 at 17:04):
You could just take the subspace of R^2, that will get a topology.
Pedro Minicz (Sep 22 2020 at 17:04):
Currently I am working with a quotient space R/Z, which is quite easy to make
Pedro Minicz (Sep 22 2020 at 17:05):
I was wondering if something was defined on mathlib
Heather Macbeth (Sep 22 2020 at 17:05):
I remember it's mentioned as a topological space in @Sebastien Gouezel 's manifolds exercises,
https://github.com/leanprover-community/lftcm2020/blob/master/src/exercises_sources/friday/manifolds.lean
Kevin Buzzard (Sep 22 2020 at 17:05):
What is the question here? For example if you have a type R/Z and a map from R and a topology on R you'll be able to give R/Z the quotient topology, which will be the right one.
Heather Macbeth (Sep 22 2020 at 17:05):
Oh -- in fact it's a metric space, docs#metric.sphere
Heather Macbeth (Sep 22 2020 at 17:07):
And yes, the quotient space should also work, are you using the quotient topological space API? docs#quotient.topological_space
Pedro Minicz (Sep 22 2020 at 17:08):
Yes. Currently I have this:
import topology.constructions
import topology.instances.real
noncomputable theory
def r (a b : ℝ) : Prop := ∃ k : ℤ, a - b = k
lemma r_refl : reflexive r :=
λ _, ⟨0, by simp⟩
lemma r_symm : symmetric r :=
λ _ _ ⟨a, _⟩, ⟨-a, by { push_cast, linarith }⟩
lemma r_trans : transitive r :=
λ _ _ _ ⟨a, _⟩ ⟨b, _⟩, ⟨a + b, by { push_cast, linarith }⟩
lemma r_equiv : equivalence r := ⟨r_refl, r_symm, r_trans⟩
def r_setoid : setoid ℝ := ⟨r, r_equiv⟩
def RZ : Type := quotient r_setoid
notation `ℝ/ℤ` := RZ
def RZ.mk : ℝ → ℝ/ℤ := @quotient.mk _ r_setoid
instance : topological_space ℝ/ℤ :=
by { unfold RZ, apply_instance }
lemma quotient_map_mk : quotient_map RZ.mk :=
by { unfold RZ.mk, exact quotient_map_quot_mk }
example : ¬ ∃ f, function.right_inverse RZ.mk f ∧ continuous f :=
sorry
Pedro Minicz (Sep 22 2020 at 17:08):
Heather Macbeth said:
Oh -- in fact it's a metric space, docs#metric.sphere
docs#metric.sphere looks interesting. Good to know it exists.
Heather Macbeth (Sep 22 2020 at 17:10):
btw, I think @Yury G. Kudryashov has also worked with circles, eg
https://github.com/leanprover-community/mathlib/blob/f2458d6/src/dynamics/circle/rotation_number/translation_number.lean
Heather Macbeth (Sep 22 2020 at 17:11):
I don't know anything about that file, maybe he just treates functions on the circle as periodic functions on the line.
Heather Macbeth (Sep 22 2020 at 17:12):
@Kevin Buzzard (or other algebraists), does mathlib have quotients by a group action (rather than by a setoid)?
Kevin Buzzard (Sep 22 2020 at 17:13):
I don't know. We can quotient groups by non-normal subgroups but I'm not sure about general group actions.
Johan Commelin (Sep 22 2020 at 17:15):
Yes, I think we have the type of orbits, but no topology afaik
Kevin Buzzard (Sep 22 2020 at 17:16):
But presumably the topology will often just be the quotient topology, which we also have
Heather Macbeth (Sep 22 2020 at 17:16):
Johan Commelin said:
Yes, I think we have the type of orbits, but no topology afaik
maybe @Pedro Minicz could adapt his code to do this :grinning:
Pedro Minicz (Sep 22 2020 at 17:22):
I'd love to! I am learning topology/algebra now on grad school, so I am newbie, but would love to contribute
Adam Topaz (Sep 22 2020 at 17:41):
Heather Macbeth said:
Kevin Buzzard (or other algebraists), does mathlib have quotients by a group action (rather than by a setoid)?
This is fairly easy to do with quot
as opposed to quotient
.
Adam Topaz (Sep 22 2020 at 17:44):
import algebra
variables (M : Type*) [monoid M] (α : Type*) [mul_action M α]
def foo := quot (λ (x y : α), ∃ (a : M), a • x = y)
Kevin Buzzard (Sep 22 2020 at 17:45):
Skipping the proof that it's an equivalence relation, even though it is :-) (oh actually it isn't because Adam used monoids not groups!)
Adam Topaz (Sep 22 2020 at 18:00):
quot
never gets the respect it deserves...
Kevin Buzzard (Sep 22 2020 at 18:01):
Kenny has suggested to me that this sort of thing should be used more often, e.g. maybe you should be able to quotient a group by a subset, and it will quotient by the subgroup it generates.
Kyle Miller (Sep 22 2020 at 18:22):
Is there any way to describe the equivalence relation for a monoid action on a set other than "the equivalence relation generated by (λ (x y : α), ∃ (a : M), a • x = y)
"? (For quotient
-philes, there's eqv_gen.setoid
, but all that it seems to really give you is not needing to use quot.exact
or quot.eqv_gen_sound
)
Adam Topaz (Sep 22 2020 at 18:26):
It's complicated to describe in this case. The best I can come up with is this: The forgetful functor from sets with a group action to sets with a monoid action has a left adjoint. (It's a souped up version of the groupification functor from monoids to groups.) The equivalence relation is "essentially" the equivalence relation induced by the group action via this left adjoint (by this I mean they have the same quotients, but there can be some analogues of zero divisors which will complicate things). I don't know if any of this makes sense.
Adam Topaz (Sep 22 2020 at 18:28):
And concerning @Kevin Buzzard 's comment -- this sounds similar to what Scott just did for rings :)
https://github.com/leanprover-community/mathlib/blob/master/src/algebra/ring_quot.lean
Adam Topaz (Sep 22 2020 at 18:28):
Note that we still don't have two-sided ideals, but we have quotients of rings!
Reid Barton (Sep 22 2020 at 18:32):
In sufficiently weak systems you can have quotient
but not quot
or inductive types that are recursive, and then I believe you won't be able to define the quotient by a monoid action (but will be able to define the quotient by a group action of course).
Patrick Massot (Sep 22 2020 at 23:08):
Johan Commelin said:
Patrick Massot I guess you have been thinking about the circle for Sphere eversion. What's the status?
Sorry I missed this question. We have functions defined on circles everywhere in this project, they are defined as periodic functions on .
Yury G. Kudryashov (Sep 22 2020 at 23:57):
In dynamics/circle/rotation_number/translation_number
I define a circle self-map as a map f : \R → \R
such that f (x + 1) = f x + 1
.
Yury G. Kudryashov (Sep 22 2020 at 23:58):
This way I can state many interesting results without using quotients.
Last updated: Dec 20 2023 at 11:08 UTC