set f = U -concatenation ;
set D = U * ;
defpred S1[ set ] means $1 is FinSequence of U;
defpred S2[] means for p1, q1, p2, q2 being U -valued FinSequence st p1 in X & p2 in X & p1 ^ q1 = p2 ^ q2 holds
( p1 = p2 & q1 = q2 );
thus
( X is U -prefix implies S2[] )
( ( for p1, q1, p2, q2 being U -valued FinSequence st p1 in X & p2 in X & p1 ^ q1 = p2 ^ q2 holds
( p1 = p2 & q1 = q2 ) ) implies X is U -prefix )
assume A4:
S2[]
; X is U -prefix
now for x1, x2, d1, d2 being set st x1 in X /\ (U *) & x2 in X /\ (U *) & d1 in U * & d2 in U * & (U -concatenation) . (x1,d1) = (U -concatenation) . (x2,d2) holds
( x1 = x2 & d1 = d2 )let x1,
x2,
d1,
d2 be
set ;
( x1 in X /\ (U *) & x2 in X /\ (U *) & d1 in U * & d2 in U * & (U -concatenation) . (x1,d1) = (U -concatenation) . (x2,d2) implies ( x1 = x2 & d1 = d2 ) )assume A5:
(
x1 in X /\ (U *) &
x2 in X /\ (U *) &
d1 in U * &
d2 in U * )
;
( (U -concatenation) . (x1,d1) = (U -concatenation) . (x2,d2) implies ( x1 = x2 & d1 = d2 ) )then reconsider x11 =
x1,
x22 =
x2,
d11 =
d1,
d22 =
d2 as
Element of
U * ;
assume
(U -concatenation) . (
x1,
d1)
= (U -concatenation) . (
x2,
d2)
;
( x1 = x2 & d1 = d2 )then x11 ^ d11 =
(U -concatenation) . (
x22,
d22)
by Th4
.=
x22 ^ d22
by Th4
;
hence
(
x1 = x2 &
d1 = d2 )
by A4, A5;
verum end;
hence
X is U -prefix
by Def10; verum