fix(algebra/group_theory): split homomorphisms into additive and multiplicative homomorphisms
This commit is contained in:
parent
c68e013fcb
commit
11c08c51e6
1 changed files with 74 additions and 4 deletions
|
@ -25,11 +25,11 @@ namespace group
|
||||||
Group i :=
|
Group i :=
|
||||||
Group.mk i G _
|
Group.mk i G _
|
||||||
|
|
||||||
definition comm_group_Group_of_CommGroup [instance] [constructor] {i : signature} (G : CommGroup i)
|
definition comm_group_Group_of_CommGroup [instance] [constructor] [priority 900]
|
||||||
: comm_group (Group_of_CommGroup G) :=
|
{i : signature} (G : CommGroup i) : comm_group (Group_of_CommGroup G) :=
|
||||||
begin esimp, exact _ end
|
begin esimp, exact _ end
|
||||||
|
|
||||||
definition group_pType_of_Group [instance] {i : signature} (G : Group i) :
|
definition group_pType_of_Group [instance] [priority 900] {i : signature} (G : Group i) :
|
||||||
group (pType_of_Group G) :=
|
group (pType_of_Group G) :=
|
||||||
Group.struct G
|
Group.struct G
|
||||||
|
|
||||||
|
@ -77,6 +77,29 @@ namespace group
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
section additive
|
||||||
|
|
||||||
|
definition is_add_homomorphism [class] [reducible] {G₁ G₂ : Type} [add_group G₁] [add_group G₂]
|
||||||
|
(φ : G₁ → G₂) : Type :=
|
||||||
|
Π(g h : G₁), φ (g + h) = φ g + φ h
|
||||||
|
|
||||||
|
variables {G₁ G₂ : Type} (φ : G₁ → G₂) [add_group G₁] [add_group G₂] [is_add_homomorphism φ]
|
||||||
|
|
||||||
|
definition respect_add /- φ -/ : Π(g h : G₁), φ (g + h) = φ g + φ h :=
|
||||||
|
by assumption
|
||||||
|
|
||||||
|
theorem respect_zero /- φ -/ : φ 0 = 0 :=
|
||||||
|
add.right_cancel
|
||||||
|
(calc
|
||||||
|
φ 0 + φ 0 = φ (0 + 0) : respect_add φ
|
||||||
|
... = φ 0 : ap φ !zero_add
|
||||||
|
... = 0 + φ 0 : zero_add)
|
||||||
|
|
||||||
|
theorem respect_neg /- φ -/ (g : G₁) : φ (-g) = -(φ g) :=
|
||||||
|
eq_neg_of_add_eq_zero (!respect_add⁻¹ ⬝ ap φ !add.left_inv ⬝ !respect_zero)
|
||||||
|
|
||||||
|
end additive
|
||||||
|
|
||||||
structure homomorphism {i j : signature} (G₁ : Group i) (G₂ : Group j) : Type :=
|
structure homomorphism {i j : signature} (G₁ : Group i) (G₂ : Group j) : Type :=
|
||||||
(φ : G₁ → G₂)
|
(φ : G₁ → G₂)
|
||||||
(p : is_homomorphism φ)
|
(p : is_homomorphism φ)
|
||||||
|
@ -84,11 +107,19 @@ namespace group
|
||||||
infix ` →g `:55 := homomorphism
|
infix ` →g `:55 := homomorphism
|
||||||
|
|
||||||
definition group_fun [unfold 5] [coercion] := @homomorphism.φ
|
definition group_fun [unfold 5] [coercion] := @homomorphism.φ
|
||||||
definition homomorphism.struct [instance] [priority 2000] {i j : signature}
|
definition homomorphism.struct [instance] [priority 900] {i j : signature}
|
||||||
{G₁ : Group i} {G₂ : Group j} (φ : G₁ →g G₂)
|
{G₁ : Group i} {G₂ : Group j} (φ : G₁ →g G₂)
|
||||||
: is_homomorphism φ :=
|
: is_homomorphism φ :=
|
||||||
homomorphism.p φ
|
homomorphism.p φ
|
||||||
|
|
||||||
|
definition homomorphism.mulstruct [instance] [priority 2000] {G₁ G₂ : MulGroup } (φ : G₁ →g G₂)
|
||||||
|
: is_homomorphism φ :=
|
||||||
|
homomorphism.p φ
|
||||||
|
|
||||||
|
definition homomorphism.addstruct [instance] [priority 2000] {G₁ G₂ : AddGroup} (φ : G₁ →g G₂)
|
||||||
|
: is_add_homomorphism φ :=
|
||||||
|
homomorphism.p φ
|
||||||
|
|
||||||
variables {i j k l : signature} {G : Group i} {G₁ : Group j} {G₂ : Group k} {G₃ : Group l}
|
variables {i j k l : signature} {G : Group i} {G₁ : Group j} {G₂ : Group k} {G₃ : Group l}
|
||||||
{g h : G₁} {ψ : G₂ →g G₃} {φ₁ φ₂ : G₁ →g G₂} (φ : G₁ →g G₂)
|
{g h : G₁} {ψ : G₂ →g G₃} {φ₁ φ₂ : G₁ →g G₂} (φ : G₁ →g G₂)
|
||||||
|
|
||||||
|
@ -128,6 +159,45 @@ namespace group
|
||||||
exact ap (homomorphism.mk φ₁) !is_prop.elim
|
exact ap (homomorphism.mk φ₁) !is_prop.elim
|
||||||
end
|
end
|
||||||
|
|
||||||
|
section additive
|
||||||
|
variables {H₁ H₂ : AddGroup} (χ : H₁ →g H₂)
|
||||||
|
definition to_respect_add /- χ -/ (g h : H₁) : χ (g + h) = χ g + χ h :=
|
||||||
|
respect_add χ g h
|
||||||
|
|
||||||
|
theorem to_respect_zero /- χ -/ : χ 0 = 0 :=
|
||||||
|
respect_zero χ
|
||||||
|
|
||||||
|
theorem to_respect_neg /- χ -/ (g : H₁) : χ (-g) = -(χ g) :=
|
||||||
|
respect_neg χ g
|
||||||
|
|
||||||
|
end additive
|
||||||
|
|
||||||
|
section add_mul
|
||||||
|
variables {H₁ : AddGroup} {H₂ : Group i} (χ : H₁ →g H₂)
|
||||||
|
definition to_respect_add_mul /- χ -/ (g h : H₁) : χ (g + h) = χ g * χ h :=
|
||||||
|
to_respect_mul χ g h
|
||||||
|
|
||||||
|
theorem to_respect_zero_one /- χ -/ : χ 0 = 1 :=
|
||||||
|
to_respect_one χ
|
||||||
|
|
||||||
|
theorem to_respect_neg_inv /- χ -/ (g : H₁) : χ (-g) = (χ g)⁻¹ :=
|
||||||
|
to_respect_inv χ g
|
||||||
|
|
||||||
|
end add_mul
|
||||||
|
|
||||||
|
section mul_add
|
||||||
|
variables {H₁ : Group i} {H₂ : AddGroup} (χ : H₁ →g H₂)
|
||||||
|
definition to_respect_mul_add /- χ -/ (g h : H₁) : χ (g * h) = χ g + χ h :=
|
||||||
|
to_respect_mul χ g h
|
||||||
|
|
||||||
|
theorem to_respect_one_zero /- χ -/ : χ 1 = 0 :=
|
||||||
|
to_respect_one χ
|
||||||
|
|
||||||
|
theorem to_respect_inv_neg /- χ -/ (g : H₁) : χ g⁻¹ = -(χ g) :=
|
||||||
|
to_respect_inv χ g
|
||||||
|
|
||||||
|
end mul_add
|
||||||
|
|
||||||
/- categorical structure of groups + homomorphisms -/
|
/- categorical structure of groups + homomorphisms -/
|
||||||
|
|
||||||
definition homomorphism_compose [constructor] [trans] (ψ : G₂ →g G₃) (φ : G₁ →g G₂) : G₁ →g G₃ :=
|
definition homomorphism_compose [constructor] [trans] (ψ : G₂ →g G₃) (φ : G₁ →g G₂) : G₁ →g G₃ :=
|
||||||
|
|
Loading…
Reference in a new issue