Maybe these should be in mathlib #
@[simp]
@[simp]
def
MonoidHom.equivKerProdRangeOfLeftInverse
{B : Type u_1}
{C : Type u_2}
[CommGroup B]
[Group C]
(f : B →* C)
(g : C →* B)
(hfg : Function.LeftInverse ⇑f ⇑g)
:
If a surjective group homomorphism f : B →* C has a section g : C →* B, then there is a
natural isomorphism of B to ker(f) × im(g). We use im(g) instead of C since if B
has topology, then both of ker(f) and im(g) will also get topology automatically.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
MonoidHom.val_fst_equivKerProdRangeOfLeftInverse_apply
{B : Type u_1}
{C : Type u_2}
[CommGroup B]
[Group C]
(f : B →* C)
(g : C →* B)
(hfg : Function.LeftInverse ⇑f ⇑g)
(x : B)
:
@[simp]
theorem
MonoidHom.val_snd_equivKerProdRangeOfLeftInverse_apply
{B : Type u_1}
{C : Type u_2}
[CommGroup B]
[Group C]
(f : B →* C)
(g : C →* B)
(hfg : Function.LeftInverse ⇑f ⇑g)
(x : B)
:
theorem
MonoidHom.continuous_equivKerProdRangeOfLeftInverse_symm
{B : Type u_1}
{C : Type u_2}
[CommGroup B]
[Group C]
(f : B →* C)
(g : C →* B)
(hfg : Function.LeftInverse ⇑f ⇑g)
[TopologicalSpace B]
[ContinuousMul B]
:
Continuous ⇑(f.equivKerProdRangeOfLeftInverse g hfg).symm
theorem
MonoidHom.continuous_equivKerProdRangeOfLeftInverse
{B : Type u_1}
{C : Type u_2}
[CommGroup B]
[Group C]
(f : B →* C)
(g : C →* B)
(hfg : Function.LeftInverse ⇑f ⇑g)
[TopologicalSpace B]
[IsTopologicalGroup B]
(hc : Continuous (⇑g ∘ ⇑f))
:
Continuous ⇑(f.equivKerProdRangeOfLeftInverse g hfg)
def
MonoidHom.continuousEquivKerProdRangeOfLeftInverse
{B : Type u_1}
{C : Type u_2}
[CommGroup B]
[Group C]
(f : B →* C)
(g : C →* B)
(hfg : Function.LeftInverse ⇑f ⇑g)
[TopologicalSpace B]
[IsTopologicalGroup B]
(hc : Continuous (⇑g ∘ ⇑f))
:
Continuous version of equivKerProdRangeOfLeftInverse.
Equations
- f.continuousEquivKerProdRangeOfLeftInverse g hfg hc = { toMulEquiv := f.equivKerProdRangeOfLeftInverse g hfg, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
@[simp]
theorem
MonoidHom.val_fst_continuousEquivKerProdRangeOfLeftInverse_apply
{B : Type u_1}
{C : Type u_2}
[CommGroup B]
[Group C]
(f : B →* C)
(g : C →* B)
(hfg : Function.LeftInverse ⇑f ⇑g)
[TopologicalSpace B]
[IsTopologicalGroup B]
(hc : Continuous (⇑g ∘ ⇑f))
(x : B)
:
@[simp]
theorem
MonoidHom.val_snd_continuousEquivKerProdRangeOfLeftInverse_apply
{B : Type u_1}
{C : Type u_2}
[CommGroup B]
[Group C]
(f : B →* C)
(g : C →* B)
(hfg : Function.LeftInverse ⇑f ⇑g)
[TopologicalSpace B]
[IsTopologicalGroup B]
(hc : Continuous (⇑g ∘ ⇑f))
(x : B)
:
@[simp]
theorem
MonoidHom.continuousEquivKerProdRangeOfLeftInverse_symm_apply
{B : Type u_1}
{C : Type u_2}
[CommGroup B]
[Group C]
(f : B →* C)
(g : C →* B)
(hfg : Function.LeftInverse ⇑f ⇑g)
[TopologicalSpace B]
[IsTopologicalGroup B]
(hc : Continuous (⇑g ∘ ⇑f))
(x : ↥f.ker × ↥g.range)
:
instance
PadicInt.isLocalHom_toZModPow
(p : ℕ)
[Fact (Nat.Prime p)]
(n : ℕ)
[NeZero n]
:
IsLocalHom (toZModPow n)
theorem
PadicInt.unitsMap_toZModPow_surjective
(p : ℕ)
[Fact (Nat.Prime p)]
(n : ℕ)
:
Function.Surjective ⇑(Units.map ↑(toZModPow n))