Zulip Chat Archive

Stream: maths

Topic: quotient classes


Chris Hughes (Feb 08 2019 at 00:55):

Can I suggest the creation of something a bit like this. quotient_map can be extended with group_hom, linear_map localisation_map, etc., and used to do definitions on quotient objects that are not defined using the quot constant. I'm considering a major refactoring using something like this.

import logic.function data.quot
open function

structure quotient_map (α β : Type*) :=
(to_fun : α  β)
(inv_fun : trunc {f : β  α // right_inverse f to_fun})

Kenny Lau (Feb 08 2019 at 00:55):

I don't think you can prove that quotienting by a setoid is a quotient_map

Mario Carneiro (Feb 08 2019 at 01:03):

I think this is not the right assumption. The inverse map should be B -> quotient (to_fun ⁻¹'o eq)

Mario Carneiro (Feb 08 2019 at 01:03):

and it should be an equiv when paired with the lift of to_fun

Mario Carneiro (Feb 08 2019 at 01:05):

(this might be a use for is_equiv, if that was ever added for the category stuff)

Kenny Lau (Feb 08 2019 at 01:09):

quot is important because it is the only thing that can reach other universes

Chris Hughes (Feb 08 2019 at 13:00):

I think you actually mean set.preimage f ∘ eq ∘ f, though I've no idea why you'd write it like this.

Chris Hughes (Feb 08 2019 at 13:05):

Or even better (∘ f) ∘ eq ∘ f

Kevin Buzzard (Feb 08 2019 at 14:00):

for some interpretations of "better", at least :-)

Mario Carneiro (Feb 08 2019 at 21:26):

I admit what I wrote is not quite type correct, but I do mean what I wrote. (That notation is order.preimage.) We should have a setoid construction for this case since it's a very common situation (it is also universal, any equivalence relation can be written as f x = f y for an appropriate f), but there is already an easy proof using preimage.equivalence and eq.equivalence.


Last updated: Dec 20 2023 at 11:08 UTC