Skip to content

Commit 26e28f0

Browse files
feat: port Algebra.Hom.Equiv.Units.GroupWithZero (#901)
mathlib3 655994e298904d7e5bbd1e18c95defd7b543eb94 Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>
1 parent cd34133 commit 26e28f0

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import Mathlib.Algebra.Hom.Commute
3030
import Mathlib.Algebra.Hom.Embedding
3131
import Mathlib.Algebra.Hom.Equiv.Basic
3232
import Mathlib.Algebra.Hom.Equiv.Units.Basic
33+
import Mathlib.Algebra.Hom.Equiv.Units.GroupWithZero
3334
import Mathlib.Algebra.Hom.Group
3435
import Mathlib.Algebra.Hom.Units
3536
import Mathlib.Algebra.Homology.ComplexShape
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/-
2+
Copyright (c) 2018 Johannes Hölzl. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Johannes Hölzl, Callum Sutton, Yury Kudryashov
5+
-/
6+
import Mathlib.Algebra.Hom.Equiv.Units.Basic
7+
import Mathlib.Algebra.GroupWithZero.Units.Basic
8+
9+
/-!
10+
# Multiplication by a nonzero element in a `GroupWithZero` is a permutation.
11+
-/
12+
13+
14+
variable {G : Type _}
15+
16+
namespace Equiv
17+
18+
section GroupWithZero
19+
20+
variable [GroupWithZero G]
21+
22+
/-- Left multiplication by a nonzero element in a `GroupWithZero` is a permutation of the
23+
underlying type. -/
24+
@[simps (config := { fullyApplied := false })]
25+
protected def mulLeft₀ (a : G) (ha : a ≠ 0) : Perm G :=
26+
(Units.mk0 a ha).mulLeft
27+
#align equiv.mul_left₀ Equiv.mulLeft₀
28+
29+
theorem mulLeft_bijective₀ (a : G) (ha : a ≠ 0) : Function.Bijective ((· * ·) a : G → G) :=
30+
(Equiv.mulLeft₀ a ha).bijective
31+
#align equiv.mul_left_bijective₀ Equiv.mulLeft_bijective₀
32+
33+
/-- Right multiplication by a nonzero element in a `GroupWithZero` is a permutation of the
34+
underlying type. -/
35+
@[simps (config := { fullyApplied := false })]
36+
protected def mulRight₀ (a : G) (ha : a ≠ 0) : Perm G :=
37+
(Units.mk0 a ha).mulRight
38+
#align equiv.mul_right₀ Equiv.mulRight₀
39+
40+
theorem mulRight_bijective₀ (a : G) (ha : a ≠ 0) : Function.Bijective ((· * a) : G → G) :=
41+
(Equiv.mulRight₀ a ha).bijective
42+
#align equiv.mul_right_bijective₀ Equiv.mulRight_bijective₀
43+
44+
end GroupWithZero
45+
46+
end Equiv

0 commit comments

Comments
 (0)