Ltac is_isoPtac p f e0 e1 e2 e3 :=
suff ->: p = f by [rewrite inE eqxx ?orbT];
let e := fresh "e" in apply/permP;
do 5?[case] => // ?; [move: e0 | move: e1 | move: e2 | move: e3] => e;
apply: etrans (congr1 p _) (etrans e _); apply/eqP; rewrite // permE.

(* Specifications: *)
Lemma is_isoP : forall p, reflect (is_iso p) (p \in isometries).
Lemma group_set_iso : group_set isometries.
Canonical iso_group := Group group_set_iso.
Lemma card_rot : #|rot| = 4.
Lemma group_set_rotations : group_set rotations.
Definition coin0 (sc : col_squares) : colors := sc c0.