Skip to content

Commit 010c169

Browse files
authored
Merge pull request #1949 from Alizter/ps/rr/cleanup_in_abgroups
cleanup in AbGroups
2 parents 3173ed9 + cd51c41 commit 010c169

File tree

3 files changed

+27
-25
lines changed

3 files changed

+27
-25
lines changed

theories/Algebra/AbGroups/AbPushout.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ Proof.
7171
srapply path_sigma_hprop.
7272
refine (grp_quotient_rec_beta _ Y _ _ @ _).
7373
apply equiv_path_grouphomomorphism; intro bc.
74-
exact (ab_biprod_rec_beta' (phi $o grp_quotient_map) bc).
74+
exact (ab_biprod_rec_eta (phi $o grp_quotient_map) bc).
7575
Defined.
7676

7777
(** Restricting [ab_pushout_rec] along [ab_pushout_inl] recovers the left inducing map. *)

theories/Algebra/AbGroups/Biproduct.v

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ Proof.
4747
intros [f g]. exact (ab_biprod_rec f g).
4848
Defined.
4949

50-
Proposition ab_biprod_rec_beta' {A B Y : AbGroup}
50+
Proposition ab_biprod_rec_eta {A B Y : AbGroup}
5151
(u : ab_biprod A B $-> Y)
5252
: ab_biprod_rec (u $o ab_biprod_inl) (u $o ab_biprod_inr) == u.
5353
Proof.
@@ -58,29 +58,19 @@ Proof.
5858
- exact (left_identity b).
5959
Defined.
6060

61-
Proposition ab_biprod_rec_beta `{Funext} {A B Y : AbGroup}
62-
(u : ab_biprod A B $-> Y)
63-
: ab_biprod_rec (u $o ab_biprod_inl) (u $o ab_biprod_inr) = u.
64-
Proof.
65-
apply equiv_path_grouphomomorphism.
66-
exact (ab_biprod_rec_beta' u).
67-
Defined.
68-
69-
Proposition ab_biprod_rec_inl_beta `{Funext} {A B Y : AbGroup}
61+
Proposition ab_biprod_rec_inl_beta {A B Y : AbGroup}
7062
(a : A $-> Y) (b : B $-> Y)
71-
: (ab_biprod_rec a b) $o ab_biprod_inl = a.
63+
: (ab_biprod_rec a b) $o ab_biprod_inl == a.
7264
Proof.
73-
apply equiv_path_grouphomomorphism.
7465
intro x; simpl.
7566
rewrite (grp_homo_unit b).
7667
exact (right_identity (a x)).
7768
Defined.
7869

79-
Proposition ab_biprod_rec_inr_beta `{Funext} {A B Y : AbGroup}
70+
Proposition ab_biprod_rec_inr_beta {A B Y : AbGroup}
8071
(a : A $-> Y) (b : B $-> Y)
81-
: (ab_biprod_rec a b) $o ab_biprod_inr = b.
72+
: (ab_biprod_rec a b) $o ab_biprod_inr == b.
8273
Proof.
83-
apply equiv_path_grouphomomorphism.
8474
intro y; simpl.
8575
rewrite (grp_homo_unit a).
8676
exact (left_identity (b y)).
@@ -93,19 +83,22 @@ Proof.
9383
- intro phi.
9484
exact (phi $o ab_biprod_inl, phi $o ab_biprod_inr).
9585
- intro phi.
96-
exact (ab_biprod_rec_beta phi).
86+
apply equiv_path_grouphomomorphism.
87+
exact (ab_biprod_rec_eta phi).
9788
- intros [a b].
9889
apply path_prod.
99-
+ apply ab_biprod_rec_inl_beta.
100-
+ apply ab_biprod_rec_inr_beta.
90+
+ apply equiv_path_grouphomomorphism.
91+
apply ab_biprod_rec_inl_beta.
92+
+ apply equiv_path_grouphomomorphism.
93+
apply ab_biprod_rec_inr_beta.
10194
Defined.
10295

10396
(** Corecursion principle, inherited from Groups/Group.v. *)
10497
Definition ab_biprod_corec {A B X : AbGroup} (f : X $-> A) (g : X $-> B)
10598
: X $-> ab_biprod A B
10699
:= grp_prod_corec f g.
107100

108-
Definition ab_corec_beta {X Y A B : AbGroup} (f : X $-> Y) (g0 : Y $-> A) (g1 : Y $-> B)
101+
Definition ab_corec_eta {X Y A B : AbGroup} (f : X $-> Y) (g0 : Y $-> A) (g1 : Y $-> B)
109102
: ab_biprod_corec g0 g1 $o f $== ab_biprod_corec (g0 $o f) (g1 $o f)
110103
:= fun _ => idpath.
111104

@@ -190,17 +183,26 @@ Proof.
190183
- exact (left_identity _)^.
191184
Defined.
192185

186+
Lemma ab_biprod_corec_eta' {A B X : AbGroup} (f g : ab_biprod A B $-> X)
187+
: (f $o ab_biprod_inl $== g $o ab_biprod_inl)
188+
-> (f $o ab_biprod_inr $== g $o ab_biprod_inr)
189+
-> f $== g.
190+
Proof.
191+
intros h k.
192+
intros [a b].
193+
refine (ap f (ab_biprod_decompose _ _) @ _ @ ap g (ab_biprod_decompose _ _)^).
194+
refine (grp_homo_op _ _ _ @ _ @ (grp_homo_op _ _ _)^).
195+
exact (ap011 (+) (h a) (k b)).
196+
Defined.
197+
193198
(* Maps out of biproducts are determined on the two inclusions. *)
194199
Lemma equiv_path_biprod_corec `{Funext} {A B X : AbGroup} (phi psi : ab_biprod A B $-> X)
195200
: ((phi $o ab_biprod_inl == psi $o ab_biprod_inl) * (phi $o ab_biprod_inr == psi $o ab_biprod_inr))
196201
<~> phi == psi.
197202
Proof.
198203
apply equiv_iff_hprop.
199204
- intros [h k].
200-
intros [a b].
201-
refine (ap phi (ab_biprod_decompose _ _) @ _ @ ap psi (ab_biprod_decompose _ _)^).
202-
refine (grp_homo_op _ _ _ @ _ @ (grp_homo_op _ _ _)^).
203-
exact (ap011 (+) (h a) (k b)).
205+
apply ab_biprod_corec_eta'; assumption.
204206
- intro h.
205207
exact (fun a => h _, fun b => h _).
206208
Defined.

theories/Algebra/AbSES/Core.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,7 @@ Proposition projection_split_beta {B A : AbGroup} (E : AbSES B A)
625625
: projection_split_iso E h o (inclusion _) == ab_biprod_inl.
626626
Proof.
627627
intro a.
628-
refine (ap _ (ab_corec_beta _ _ _ _) @ _).
628+
refine (ap _ (ab_corec_eta _ _ _ _) @ _).
629629
refine (ab_biprod_functor_beta _ _ _ _ _ @ _).
630630
nrapply path_prod'.
631631
2: rapply cx_isexact.

0 commit comments

Comments
 (0)