proposition: Lemma Zisometry_of_iso f : free S -> {in S, isometry f, to 'Z[irr G]} -> {tau : {linear 'CF(L) -> 'CF(G)} | {in S, tau =1 f} & {in 'Z[S], isometry tau, to 'Z[irr G]}}.
proof: Proof. move=> freeS [If Zf]; have [tau Dtau Itau] := isometry_of_free freeS If. exists tau => //; split; first by apply: sub_in2 Itau; apply: zchar_span. move=> _ /zchar_nth_expansion[a Za ->]; rewrite linear_sum rpred_sum // => i _. by rewrite linearZ rpredZ_int ?Dtau ?Zf ?mem_nth. Qed.
imports: HB(structures) mathcomp(ssreflect ssrbool ssrfun eqtype ssrnat seq path) mathcomp(div choice fintype tuple finfun bigop prime order) mathcomp(ssralg poly finset fingroup morphism perm) mathcomp(automorphism quotient finalg action gproduct) mathcomp(zmodp commutator cyclic center pgroup sylow) mathcomp(frobenius vector ssrnum ssrint archimedean intdiv) mathcomp(algC algnum classfun character integral_char)