intros. assert(gH'':in_part g(seq_set(Map_embed(omit AH
(Build_finiteT(lt_O_Sn n)))))).
apply in_part_comp_r with(seq_set(Map_embed(Seqtl AH))).
apply in_part_comp_r with(seq_set(Seqtl(Map_embed AH))).
exact gH. apply seq_set_comp. apply Sym. apply Map_embed_Seqtl.
apply seq_set_comp. change(Map_embed(Seqtl AH) ='
Map_embed(omit AH(Build_finiteT(lt_O_Sn n)))).
apply Map_embed_comp. apply Sym.
change (omit AH(Build_finiteT(lt_O_Sn n)) =' Seqtl AH).
apply omit_head_is_seqtl. elim gH''. intros j2 j2H.
assert(DORA:~omit AH(Build_finiteT(lt_O_Sn n))j2
=' AH(Build_finiteT(lt_O_Sn n))).
apply distinct_omit_removes_all. exact AH''.
unfold not. intro H. apply DORA. Opaque omit.
simpl. unfold subtype_image_equal. apply Trans with g.
apply Sym. exact j2H. exact H. Qed.
Transparent omit.

(* Specifications: *)
Lemma P5:forall(n:Nat)(G:Setoid)(A:part_set G)
(AH:seq(S n)A)(AH':full A =' seq_set AH)(AH'':distinct AH)
(c:Nat)(V:seq c(part_set G))
(Va:forall(i:fin c)(g:G),in_part g(V i)->in_part g A)
(Vb:forall(g:G)(H:in_part g A),exists i:fin c,in_part g(V i))
(Vc:forall(g:G)(H:in_part g A)(i i':fin c),
in_part g(V i)->in_part g(V i')->i =' i')
(V':seq c Nat)(V'a:forall(i:fin c),has_n_elements(V' i)(V i))
(i_:fin c)(i_H:in_part (subtype_elt(head AH))(V i_)),
forall(g:G)(gH:in_part g (seq_set(Seqtl(Map_embed AH)))),
(exists i:fin c,in_part g
((modify_seq V i_ (minus_part(V i_)(subtype_elt(head AH)))) i)).