Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion theories/Algebra/Groups/FreeGroup.v
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,14 @@ Section Reduction.
(** Finally we have defined the free group on [A] *)
Definition FreeGroup : Group.
Proof.
snapply (Build_Group freegroup_type); repeat split; exact _.
snapply (Build_Group freegroup_type).
- exact _.
- exact _.
- exact _.
- split.
+ repeat split; exact _.
+ exact _.
+ exact _.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm curious how reflexivity could possibly solve any of the goals here. That doesn't look possible to me. And it's a bit annoying to be unable to use `repeat split'.

Do either of the following work?

    snapply (Build_Group freegroup_type).
    4: repeat split.
    all: exact _.

or with the second line replaced with

    4: split.  4: split.  4: split.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One of the goals is the fact that inv x is the left-inverse of x. Since the unit and the operation are not yet instantiated, there is a solution that makes op the constant operation returning the unit.
Oh, good catch, 4: repeat split causes the issue, but 4: split. 4: repeat split does work, thank you.

Defined.

Definition word_rec (G : Group) (s : A -> G) : A + A -> G.
Expand Down
9 changes: 8 additions & 1 deletion theories/Algebra/Groups/FreeProduct.v
Original file line number Diff line number Diff line change
Expand Up @@ -524,7 +524,14 @@ Section AmalgamatedFreeProduct.

Definition AmalgamatedFreeProduct : Group.
Proof.
snapply (Build_Group amal_type); repeat split; exact _.
snapply (Build_Group amal_type).
- exact _.
- exact _.
- exact _.
- split.
+ repeat split; exact _.
+ exact _.
+ exact _.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd also prefer something more concise here.

Defined.

End AmalgamatedFreeProduct.
Expand Down
15 changes: 8 additions & 7 deletions theories/Algebra/Groups/Group.v
Original file line number Diff line number Diff line change
Expand Up @@ -969,17 +969,18 @@ Definition grp_prod : Group -> Group -> Group.
Proof.
intros G H.
snapply (Build_Group (G * H)).
4: repeat split.
- intros [g1 h1] [g2 h2].
exact (g1 * g2, h1 * h2).
- exact (1, 1).
- exact (functor_prod inv inv).
- exact _.
- intros x y z; apply path_prod'; apply simple_associativity.
- intros x; apply path_prod'; apply left_identity.
- intros x; apply path_prod'; apply right_identity.
- intros x; apply path_prod'; apply left_inverse.
- intros x; apply path_prod'; apply right_inverse.
- split.
+ repeat split.
* exact _.
* intros x y z; apply path_prod'; apply simple_associativity.
* intros x; apply path_prod'; apply left_identity.
* intros x; apply path_prod'; apply right_identity.
+ intros x; apply path_prod'; apply left_inverse.
+ intros x; apply path_prod'; apply right_inverse.
Defined.

(** Maps into the direct product can be built by mapping separately into each factor. *)
Expand Down
59 changes: 30 additions & 29 deletions theories/Homotopy/HomotopyGroup.v
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,7 @@ Instance is1functor_homotopygroup_type_ptype (n : nat)
definitionally equal to [Pi 1 (iterated_loops n X)] *)
Definition Pi1 (X : pType) : Group.
Proof.
srapply (Build_Group (Tr 0 (loops X)));
repeat split.
srapply (Build_Group (Tr 0 (loops X))).
(** Operation *)
- intros x y.
strip_truncations.
Expand All @@ -57,33 +56,35 @@ Proof.
(** Inverse *)
- srapply Trunc_rec; intro x.
exact (tr x^).
(** [IsHSet] *)
- exact _.
(** Associativity *)
- intros x y z.
strip_truncations.
cbn; apply ap.
apply concat_p_pp.
(** Left identity *)
- intro x.
strip_truncations.
cbn; apply ap.
apply concat_1p.
(** Right identity *)
- intro x.
strip_truncations.
cbn; apply ap.
apply concat_p1.
(** Left inverse *)
- intro x.
strip_truncations.
apply (ap tr).
apply concat_Vp.
(** Right inverse *)
- intro x.
strip_truncations.
apply (ap tr).
apply concat_pV.
- split.
+ repeat split.
(** [IsHSet] *)
* exact _.
(** Associativity *)
* intros x y z.
strip_truncations.
cbn; apply ap.
apply concat_p_pp.
(** Left identity *)
* intro x.
strip_truncations.
cbn; apply ap.
apply concat_1p.
(** Right identity *)
* intro x.
strip_truncations.
cbn; apply ap.
apply concat_p1.
(** Left inverse *)
+ intro x.
strip_truncations.
apply (ap tr).
apply concat_Vp.
(** Right inverse *)
+ intro x.
strip_truncations.
apply (ap tr).
apply concat_pV.
Defined.

(** Definition of the nth homotopy group *)
Expand Down
Loading