(*symmetries*)

(* Specifications: *)
Lemma Sh_inj : injective Sh.
Definition sh := (perm Sh_inj).
Lemma sh_inv : sh^-1 = sh.
Definition Sv (sc : square) : square := tnth [tuple c3; c2; c1; c0] sc.
Lemma Sv_inj : injective Sv.
Definition sv := (perm Sv_inj).
Lemma sv_inv : sv^-1 = sv.
Definition Sd1 (sc : square) : square := tnth [tuple c0; c3; c2; c1] sc.
Lemma Sd1_inj : injective Sd1.
Definition sd1 := (perm Sd1_inj).
Lemma sd1_inv : sd1^-1 = sd1.
Definition Sd2 (sc : square) : square := tnth [tuple c2; c1; c0; c3] sc.
Lemma Sd2_inj : injective Sd2.
Definition sd2 := (perm Sd2_inj).
Lemma sd2_inv : sd2^-1 = sd2.
Lemma ord_enum4 : enum 'I_4 = [:: c0; c1; c2; c3].
Definition isometries2 := [set 1; sh].
Lemma card_iso2 : #|isometries2| = 2.
Canonical iso2_group := Group group_set_iso2.