consider H being ManySortedFunction of F2(),F3() such that
A3:
H is_homomorphism F2(),F3()
and
A4:
F5() = H ** F4()
by A1, A2;
take
H
; ( H is_homomorphism F2(),F3() & F5() -hash = H ** (F4() -hash) )
thus
H is_homomorphism F2(),F3()
by A3; F5() -hash = H ** (F4() -hash)
F4() -hash is_homomorphism FreeMSA ( the carrier of F1() --> NAT),F2()
by Def1;
then A5:
H ** (F4() -hash) is_homomorphism FreeMSA ( the carrier of F1() --> NAT),F3()
by A3, MSUALG_3:10;
reconsider SN = the carrier of F1() --> NAT as non-empty ManySortedSet of the carrier of F1() ;
reconsider h1 = F5() as ManySortedFunction of SN, the Sorts of F3() ;
A6:
h1 -hash is_homomorphism FreeMSA SN,F3()
by Def1;
(h1 -hash) || (FreeGen SN) =
F5() ** (Reverse SN)
by Def1
.=
H ** (F4() ** (Reverse SN))
by A4, PBOOLE:140
.=
H ** ((F4() -hash) || (FreeGen ( the carrier of F1() --> NAT)))
by Def1
.=
(H ** (F4() -hash)) || (FreeGen ( the carrier of F1() --> NAT))
by EXTENS_1:4
;
hence
F5() -hash = H ** (F4() -hash)
by A6, A5, EXTENS_1:14; verum