Zulip Chat Archive

Stream: general

Topic: pequiv vs local_equiv


Yury G. Kudryashov (Mar 25 2020 at 16:40):

It seems to me that they both model the same mathematical concept. Do we need both of them?

Yury G. Kudryashov (Mar 25 2020 at 16:41):

pequivs have better definitional equality at the cost of bad codomains of to_fun and inv_fun.

Chris Hughes (Mar 25 2020 at 17:33):

pequivs also have better equality. I think, though I may be wrong, that equality of local_equiv depends on the out of domain behaviour. There's redundant information in a local equiv, which mucks up equality.

Kevin Buzzard (Mar 25 2020 at 17:45):

whatever is "out of domain behaviour"?

Chris Hughes (Mar 25 2020 at 17:45):

An example is how 01=00^{-1}=0

Chris Hughes (Mar 25 2020 at 17:47):

local_equiv is a partial function, but it's implemented as a total function that returns junk outside of the domain of the partial function.

Reid Barton (Mar 25 2020 at 17:50):

I think the answer is: try to port manifolds to pequiv or something else that has the correct equality and see if you can do it without everything falling over.

Reid Barton (Mar 25 2020 at 17:50):

If you can, it will be great.

Yury G. Kudryashov (Mar 25 2020 at 18:13):

pequiv won't work, e.g., in the inverse function theorem because I want (h.to_local_homeomorph f).to_fun = f to be defeq. This way it's much easier to prove theorems about local_homeomorphs and apply to the original function. Probably the same is the case in many places in manifolds.

Yury G. Kudryashov (Mar 25 2020 at 18:15):

Probably we should mention each equivalence in the docstring of another and prove that the quotient of local_equiv by eq_on_source is the same as pequiv.

Mario Carneiro (Mar 25 2020 at 18:16):

that's not true either, unfortunately, because of empty types

Mario Carneiro (Mar 25 2020 at 18:16):

it's not always possible to add "junk" to complete the function

Yury G. Kudryashov (Mar 25 2020 at 18:17):

OK, it's the same provided [nonempty α] [nonempty β]

Mario Carneiro (Mar 25 2020 at 18:19):

I think you can get a pequiv to invert to the original function, but you have to supply a proof that it is total

Mario Carneiro (Mar 25 2020 at 18:21):

When you are working with a pequiv, you should never talk about out of range values, and as long as you are in range it should be defeq to the original function f

Yury G. Kudryashov (Mar 25 2020 at 18:34):

Another difficulty with calculus and pequiv: I can't say that the forward/inverse function is differentiable because it has a bad codomain.

Mario Carneiro (Mar 25 2020 at 18:35):

what do you mean? I thought we had support for differentiating partial functions

Yury G. Kudryashov (Mar 25 2020 at 18:36):

Do we?

Mario Carneiro (Mar 25 2020 at 18:37):

ah, we had a big discussion about this when it was getting set up. Looks like the core definitions all assume f itself is total

Mario Carneiro (Mar 25 2020 at 18:37):

There are some useful filters for partial functions but they weren't hooked up to deriv

Mario Carneiro (Mar 25 2020 at 18:38):

I guess the nearest approximation is to say that a pequiv is differentiable if it extends to a function that is differentiable on the subset


Last updated: Dec 20 2023 at 11:08 UTC