let tm1, tm2 be TuringStr ; for s1 being All-State of tm1
for h being Element of NAT
for t being Tape of tm1
for s2 being All-State of tm2
for s3 being All-State of (tm1 ';' tm2) st s1 is Accept-Halt & s1 = [ the InitS of tm1,h,t] & s2 is Accept-Halt & s2 = [ the InitS of tm2,((Result s1) `2_3),((Result s1) `3_3)] & s3 = [ the InitS of (tm1 ';' tm2),h,t] holds
( s3 is Accept-Halt & (Result s3) `2_3 = (Result s2) `2_3 & (Result s3) `3_3 = (Result s2) `3_3 )
let s1 be All-State of tm1; for h being Element of NAT
for t being Tape of tm1
for s2 being All-State of tm2
for s3 being All-State of (tm1 ';' tm2) st s1 is Accept-Halt & s1 = [ the InitS of tm1,h,t] & s2 is Accept-Halt & s2 = [ the InitS of tm2,((Result s1) `2_3),((Result s1) `3_3)] & s3 = [ the InitS of (tm1 ';' tm2),h,t] holds
( s3 is Accept-Halt & (Result s3) `2_3 = (Result s2) `2_3 & (Result s3) `3_3 = (Result s2) `3_3 )
let h be Element of NAT ; for t being Tape of tm1
for s2 being All-State of tm2
for s3 being All-State of (tm1 ';' tm2) st s1 is Accept-Halt & s1 = [ the InitS of tm1,h,t] & s2 is Accept-Halt & s2 = [ the InitS of tm2,((Result s1) `2_3),((Result s1) `3_3)] & s3 = [ the InitS of (tm1 ';' tm2),h,t] holds
( s3 is Accept-Halt & (Result s3) `2_3 = (Result s2) `2_3 & (Result s3) `3_3 = (Result s2) `3_3 )
let t be Tape of tm1; for s2 being All-State of tm2
for s3 being All-State of (tm1 ';' tm2) st s1 is Accept-Halt & s1 = [ the InitS of tm1,h,t] & s2 is Accept-Halt & s2 = [ the InitS of tm2,((Result s1) `2_3),((Result s1) `3_3)] & s3 = [ the InitS of (tm1 ';' tm2),h,t] holds
( s3 is Accept-Halt & (Result s3) `2_3 = (Result s2) `2_3 & (Result s3) `3_3 = (Result s2) `3_3 )
let s2 be All-State of tm2; for s3 being All-State of (tm1 ';' tm2) st s1 is Accept-Halt & s1 = [ the InitS of tm1,h,t] & s2 is Accept-Halt & s2 = [ the InitS of tm2,((Result s1) `2_3),((Result s1) `3_3)] & s3 = [ the InitS of (tm1 ';' tm2),h,t] holds
( s3 is Accept-Halt & (Result s3) `2_3 = (Result s2) `2_3 & (Result s3) `3_3 = (Result s2) `3_3 )
let s3 be All-State of (tm1 ';' tm2); ( s1 is Accept-Halt & s1 = [ the InitS of tm1,h,t] & s2 is Accept-Halt & s2 = [ the InitS of tm2,((Result s1) `2_3),((Result s1) `3_3)] & s3 = [ the InitS of (tm1 ';' tm2),h,t] implies ( s3 is Accept-Halt & (Result s3) `2_3 = (Result s2) `2_3 & (Result s3) `3_3 = (Result s2) `3_3 ) )
set p0 = the InitS of tm1;
set q0 = the InitS of tm2;
assume that
A1:
s1 is Accept-Halt
and
A2:
s1 = [ the InitS of tm1,h,t]
and
A3:
s2 is Accept-Halt
and
A4:
s2 = [ the InitS of tm2,((Result s1) `2_3),((Result s1) `3_3)]
and
A5:
s3 = [ the InitS of (tm1 ';' tm2),h,t]
; ( s3 is Accept-Halt & (Result s3) `2_3 = (Result s2) `2_3 & (Result s3) `3_3 = (Result s2) `3_3 )
set pF = the AcceptS of tm1;
set qF = the AcceptS of tm2;
consider k being Nat such that
A6:
((Computation s1) . k) `1_3 = the AcceptS of tm1
and
A7:
Result s1 = (Computation s1) . k
and
A8:
for i being Nat st i < k holds
((Computation s1) . i) `1_3 <> the AcceptS of tm1
by A1, Th13;
defpred S1[ Nat] means ( $1 <= k implies ( [(((Computation s1) . $1) `1_3), the InitS of tm2] = ((Computation s3) . $1) `1_3 & ((Computation s1) . $1) `2_3 = ((Computation s3) . $1) `2_3 & ((Computation s1) . $1) `3_3 = ((Computation s3) . $1) `3_3 ) );
A9:
for i being Nat st S1[i] holds
S1[i + 1]
proof
let i be
Nat;
( S1[i] implies S1[i + 1] )
assume A10:
S1[
i]
;
S1[i + 1]
now ( i + 1 <= k implies ( [(((Computation s1) . (i + 1)) `1_3), the InitS of tm2] = ((Computation s3) . (i + 1)) `1_3 & ((Computation s1) . (i + 1)) `2_3 = ((Computation s3) . (i + 1)) `2_3 & ((Computation s1) . (i + 1)) `3_3 = ((Computation s3) . (i + 1)) `3_3 ) )set s1i1 =
(Computation s1) . (i + 1);
set s1i =
(Computation s1) . i;
set s3i1 =
(Computation s3) . (i + 1);
set s3i =
(Computation s3) . i;
A11:
i < i + 1
by XREAL_1:29;
set f =
TRAN ((Computation s3) . i);
reconsider h =
Head ((Computation s1) . i) as
Element of
INT ;
reconsider ss1 =
((Computation s1) . i) `3_3 as
Tape of
tm1 ;
reconsider y =
ss1 . h as
Symbol of
tm1 ;
reconsider ss3 =
((Computation s3) . i) `3_3 as
Tape of
(tm1 ';' tm2) ;
set p =
((Computation s1) . i) `1_3 ;
set g =
TRAN ((Computation s1) . i);
assume A12:
i + 1
<= k
;
( [(((Computation s1) . (i + 1)) `1_3), the InitS of tm2] = ((Computation s3) . (i + 1)) `1_3 & ((Computation s1) . (i + 1)) `2_3 = ((Computation s3) . (i + 1)) `2_3 & ((Computation s1) . (i + 1)) `3_3 = ((Computation s3) . (i + 1)) `3_3 )then A13:
i < k
by A11, XXREAL_0:2;
then A14:
((Computation s1) . i) `1_3 <> the
AcceptS of
tm1
by A8;
A15:
((Computation s3) . i) `1_3 <> the
AcceptS of
(tm1 ';' tm2)
A16:
TRAN ((Computation s3) . i) =
the
Tran of
(tm1 ';' tm2) . [[(((Computation s1) . i) `1_3), the InitS of tm2],y]
by A10, A12, A11, XXREAL_0:2
.=
[[((TRAN ((Computation s1) . i)) `1_3), the InitS of tm2],((TRAN ((Computation s1) . i)) `2_3),((TRAN ((Computation s1) . i)) `3_3)]
by A8, A13, Th43
;
then A17:
(TRAN ((Computation s1) . i)) `2_3 = (TRAN ((Computation s3) . i)) `2_3
;
A18:
(Computation s3) . (i + 1) =
Following ((Computation s3) . i)
by Def7
.=
[((TRAN ((Computation s3) . i)) `1_3),((Head ((Computation s3) . i)) + (offset (TRAN ((Computation s3) . i)))),(Tape-Chg (ss3,(Head ((Computation s3) . i)),((TRAN ((Computation s3) . i)) `2_3)))]
by A15, Def6
;
A19:
(Computation s1) . (i + 1) =
Following ((Computation s1) . i)
by Def7
.=
[((TRAN ((Computation s1) . i)) `1_3),(h + (offset (TRAN ((Computation s1) . i)))),(Tape-Chg (ss1,h,((TRAN ((Computation s1) . i)) `2_3)))]
by A14, Def6
;
hence [(((Computation s1) . (i + 1)) `1_3), the InitS of tm2] =
[((TRAN ((Computation s1) . i)) `1_3), the InitS of tm2]
.=
(TRAN ((Computation s3) . i)) `1_3
by A16
.=
((Computation s3) . (i + 1)) `1_3
by A18
;
( ((Computation s1) . (i + 1)) `2_3 = ((Computation s3) . (i + 1)) `2_3 & ((Computation s1) . (i + 1)) `3_3 = ((Computation s3) . (i + 1)) `3_3 )
offset (TRAN ((Computation s1) . i)) = offset (TRAN ((Computation s3) . i))
by A16;
hence ((Computation s1) . (i + 1)) `2_3 =
(Head ((Computation s3) . i)) + (offset (TRAN ((Computation s3) . i)))
by A10, A12, A11, A19, XXREAL_0:2
.=
((Computation s3) . (i + 1)) `2_3
by A18
;
((Computation s1) . (i + 1)) `3_3 = ((Computation s3) . (i + 1)) `3_3 thus ((Computation s1) . (i + 1)) `3_3 =
ss3 +* (h .--> ((TRAN ((Computation s1) . i)) `2_3))
by A10, A12, A11, A19, XXREAL_0:2
.=
((Computation s3) . (i + 1)) `3_3
by A10, A12, A11, A17, A18, XXREAL_0:2
;
verum end;
hence
S1[
i + 1]
;
verum
end;
set s1k = (Computation s1) . k;
set s3k = (Computation s3) . k;
A20:
s3 = [[ the InitS of tm1, the InitS of tm2],h,t]
by A5, Def31;
A21:
S1[ 0 ]
A23:
for i being Nat holds S1[i]
from NAT_1:sch 2(A21, A9);
then A24:
((Computation s1) . k) `2_3 = ((Computation s3) . k) `2_3
;
consider m being Nat such that
A25:
((Computation s2) . m) `1_3 = the AcceptS of tm2
and
A26:
Result s2 = (Computation s2) . m
and
A27:
for i being Nat st i < m holds
((Computation s2) . i) `1_3 <> the AcceptS of tm2
by A3, Th13;
defpred S2[ Nat] means ( $1 <= m implies ( [ the AcceptS of tm1,(((Computation s2) . $1) `1_3)] = ((Computation ((Computation s3) . k)) . $1) `1_3 & ((Computation s2) . $1) `2_3 = ((Computation ((Computation s3) . k)) . $1) `2_3 & ((Computation s2) . $1) `3_3 = ((Computation ((Computation s3) . k)) . $1) `3_3 ) );
A28:
for i being Nat st S2[i] holds
S2[i + 1]
proof
let i be
Nat;
( S2[i] implies S2[i + 1] )
assume A29:
S2[
i]
;
S2[i + 1]
now ( i + 1 <= m implies ( [ the AcceptS of tm1,(((Computation s2) . (i + 1)) `1_3)] = ((Computation ((Computation s3) . k)) . (i + 1)) `1_3 & ((Computation s2) . (i + 1)) `2_3 = ((Computation ((Computation s3) . k)) . (i + 1)) `2_3 & ((Computation s2) . (i + 1)) `3_3 = ((Computation ((Computation s3) . k)) . (i + 1)) `3_3 ) )set s2i1 =
(Computation s2) . (i + 1);
set s2i =
(Computation s2) . i;
set ski1 =
(Computation ((Computation s3) . k)) . (i + 1);
set ski =
(Computation ((Computation s3) . k)) . i;
A30:
i < i + 1
by XREAL_1:29;
reconsider ssk =
((Computation ((Computation s3) . k)) . i) `3_3 as
Tape of
(tm1 ';' tm2) ;
set f =
TRAN ((Computation ((Computation s3) . k)) . i);
set q =
((Computation s2) . i) `1_3 ;
set g =
TRAN ((Computation s2) . i);
reconsider h =
Head ((Computation s2) . i) as
Element of
INT ;
reconsider ss2 =
((Computation s2) . i) `3_3 as
Tape of
tm2 ;
reconsider y =
ss2 . h as
Symbol of
tm2 ;
assume A31:
i + 1
<= m
;
( [ the AcceptS of tm1,(((Computation s2) . (i + 1)) `1_3)] = ((Computation ((Computation s3) . k)) . (i + 1)) `1_3 & ((Computation s2) . (i + 1)) `2_3 = ((Computation ((Computation s3) . k)) . (i + 1)) `2_3 & ((Computation s2) . (i + 1)) `3_3 = ((Computation ((Computation s3) . k)) . (i + 1)) `3_3 )then A32:
TRAN ((Computation ((Computation s3) . k)) . i) =
the
Tran of
(tm1 ';' tm2) . [[ the AcceptS of tm1,(((Computation s2) . i) `1_3)],y]
by A29, A30, XXREAL_0:2
.=
[[ the AcceptS of tm1,((TRAN ((Computation s2) . i)) `1_3)],((TRAN ((Computation s2) . i)) `2_3),((TRAN ((Computation s2) . i)) `3_3)]
by Th44
;
then A33:
(TRAN ((Computation s2) . i)) `2_3 = (TRAN ((Computation ((Computation s3) . k)) . i)) `2_3
;
i < m
by A31, A30, XXREAL_0:2;
then A34:
((Computation s2) . i) `1_3 <> the
AcceptS of
tm2
by A27;
A35:
((Computation ((Computation s3) . k)) . i) `1_3 <> the
AcceptS of
(tm1 ';' tm2)
A36:
(Computation ((Computation s3) . k)) . (i + 1) =
Following ((Computation ((Computation s3) . k)) . i)
by Def7
.=
[((TRAN ((Computation ((Computation s3) . k)) . i)) `1_3),((Head ((Computation ((Computation s3) . k)) . i)) + (offset (TRAN ((Computation ((Computation s3) . k)) . i)))),(Tape-Chg (ssk,(Head ((Computation ((Computation s3) . k)) . i)),((TRAN ((Computation ((Computation s3) . k)) . i)) `2_3)))]
by A35, Def6
;
A37:
(Computation s2) . (i + 1) =
Following ((Computation s2) . i)
by Def7
.=
[((TRAN ((Computation s2) . i)) `1_3),(h + (offset (TRAN ((Computation s2) . i)))),(Tape-Chg (ss2,h,((TRAN ((Computation s2) . i)) `2_3)))]
by A34, Def6
;
hence [ the AcceptS of tm1,(((Computation s2) . (i + 1)) `1_3)] =
[ the AcceptS of tm1,((TRAN ((Computation s2) . i)) `1_3)]
.=
(TRAN ((Computation ((Computation s3) . k)) . i)) `1_3
by A32
.=
((Computation ((Computation s3) . k)) . (i + 1)) `1_3
by A36
;
( ((Computation s2) . (i + 1)) `2_3 = ((Computation ((Computation s3) . k)) . (i + 1)) `2_3 & ((Computation s2) . (i + 1)) `3_3 = ((Computation ((Computation s3) . k)) . (i + 1)) `3_3 )
offset (TRAN ((Computation s2) . i)) = offset (TRAN ((Computation ((Computation s3) . k)) . i))
by A32;
hence ((Computation s2) . (i + 1)) `2_3 =
(Head ((Computation ((Computation s3) . k)) . i)) + (offset (TRAN ((Computation ((Computation s3) . k)) . i)))
by A29, A31, A30, A37, XXREAL_0:2
.=
((Computation ((Computation s3) . k)) . (i + 1)) `2_3
by A36
;
((Computation s2) . (i + 1)) `3_3 = ((Computation ((Computation s3) . k)) . (i + 1)) `3_3 thus ((Computation s2) . (i + 1)) `3_3 =
ssk +* (h .--> ((TRAN ((Computation s2) . i)) `2_3))
by A29, A31, A30, A37, XXREAL_0:2
.=
((Computation ((Computation s3) . k)) . (i + 1)) `3_3
by A29, A31, A30, A33, A36, XXREAL_0:2
;
verum end;
hence
S2[
i + 1]
;
verum
end;
A38:
((Computation s1) . k) `3_3 = ((Computation s3) . k) `3_3
by A23;
set s2m = (Computation s2) . m;
set skm = (Computation ((Computation s3) . k)) . m;
A39:
(Computation s3) . (k + m) = (Computation ((Computation s3) . k)) . m
by Th10;
A40:
[(((Computation s1) . k) `1_3), the InitS of tm2] = ((Computation s3) . k) `1_3
by A23;
A41:
S2[ 0 ]
proof
assume
0 <= m
;
( [ the AcceptS of tm1,(((Computation s2) . 0) `1_3)] = ((Computation ((Computation s3) . k)) . 0) `1_3 & ((Computation s2) . 0) `2_3 = ((Computation ((Computation s3) . k)) . 0) `2_3 & ((Computation s2) . 0) `3_3 = ((Computation ((Computation s3) . k)) . 0) `3_3 )
thus [ the AcceptS of tm1,(((Computation s2) . 0) `1_3)] =
[ the AcceptS of tm1,(s2 `1_3)]
by Def7
.=
[ the AcceptS of tm1, the InitS of tm2]
by A4
.=
((Computation ((Computation s3) . k)) . 0) `1_3
by A6, A40, Def7
;
( ((Computation s2) . 0) `2_3 = ((Computation ((Computation s3) . k)) . 0) `2_3 & ((Computation s2) . 0) `3_3 = ((Computation ((Computation s3) . k)) . 0) `3_3 )
thus ((Computation s2) . 0) `2_3 =
s2 `2_3
by Def7
.=
((Computation s3) . k) `2_3
by A4, A7, A24
.=
((Computation ((Computation s3) . k)) . 0) `2_3
by Def7
;
((Computation s2) . 0) `3_3 = ((Computation ((Computation s3) . k)) . 0) `3_3
thus ((Computation s2) . 0) `3_3 =
s2 `3_3
by Def7
.=
((Computation s3) . k) `3_3
by A4, A7, A38
.=
((Computation ((Computation s3) . k)) . 0) `3_3
by Def7
;
verum
end;
A42:
for i being Nat holds S2[i]
from NAT_1:sch 2(A41, A28);
then
[ the AcceptS of tm1,(((Computation s2) . m) `1_3)] = ((Computation ((Computation s3) . k)) . m) `1_3
;
then A43:
((Computation s3) . (k + m)) `1_3 = the AcceptS of (tm1 ';' tm2)
by A25, A39, Def31;
hence A44:
s3 is Accept-Halt
; ( (Result s3) `2_3 = (Result s2) `2_3 & (Result s3) `3_3 = (Result s2) `3_3 )
( ((Computation s2) . m) `2_3 = ((Computation ((Computation s3) . k)) . m) `2_3 & ((Computation s2) . m) `3_3 = ((Computation ((Computation s3) . k)) . m) `3_3 )
by A42;
hence
( (Result s3) `2_3 = (Result s2) `2_3 & (Result s3) `3_3 = (Result s2) `3_3 )
by A26, A39, A43, A44, Def9; verum