Ltac iso_tac :=
let a := fresh "a" in apply/permP => a;
apply/eqP; rewrite !permM !permE; case: a; do 6?case.
Ltac inv_tac :=
apply: esym (etrans _ (mul1g _)); apply: canRL (mulgK _) _; iso_tac.

(* Specifications: *)
Lemma dir_s0p : forall p,  (s0 * p) \in dir_iso3 -> p \notin dir_iso3.
Definition is_iso3b p :=  (p * s0 == s0 * p).