set DD = {(intloc 0 ),(IC SCM+FSA ),(fsloc 0 )};
let w be FinSequence of INT ; (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) is autonomic
set p = (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w);
set q = Insert-Sort-Algorithm ;
set UD = {(fsloc 0 ),(intloc 0 ),(intloc 1),(intloc 2),(intloc 3),(intloc 4),(intloc 5),(intloc 6)};
set Us = (UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm );
A1:
UsedIntLoc Insert-Sort-Algorithm = {(intloc 0 ),(intloc 1),(intloc 2),(intloc 3),(intloc 4),(intloc 5),(intloc 6)}
by Th38;
A2:
UsedInt*Loc Insert-Sort-Algorithm = {(fsloc 0 )}
by Th39;
then A3:
(UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm ) = {(fsloc 0 ),(intloc 0 ),(intloc 1),(intloc 2),(intloc 3),(intloc 4),(intloc 5),(intloc 6)}
by A1, ENUMSET1:62;
A4:
for i being Element of NAT
for s1, s2 being State of SCM+FSA st 11 <= i & (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s1 & (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s2 holds
( (Comput (ProgramPart s1),s1,i) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )) = (Comput (ProgramPart s2),s2,i) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) )
proof
let i be
Element of
NAT ;
for s1, s2 being State of SCM+FSA st 11 <= i & (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s1 & (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s2 holds
( (Comput (ProgramPart s1),s1,i) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )) = (Comput (ProgramPart s2),s2,i) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) )let s1,
s2 be
State of
SCM+FSA ;
( 11 <= i & (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s1 & (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s2 implies ( (Comput (ProgramPart s1),s1,i) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )) = (Comput (ProgramPart s2),s2,i) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) ) )
assume that A5:
11
<= i
and A6:
(Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s1
and A7:
(Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s2
;
( (Comput (ProgramPart s1),s1,i) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )) = (Comput (ProgramPart s2),s2,i) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) )
A8:
s1 . (intloc 0 ) =
1
by A6, SCMBSORT:54
.=
s2 . (intloc 0 )
by A7, SCMBSORT:54
;
A9:
s2 starts_at 0
by A7, AMI_1:92, SCMBSORT:47;
A10:
Insert-Sort-Algorithm c= s2
by A7, SCMBSORT:53;
set Cs11 =
Comput (ProgramPart s1),
s1,11;
set Cs21 =
Comput (ProgramPart s2),
s2,11;
A11:
s1 starts_at 0
by A6, AMI_1:92, SCMBSORT:47;
A12:
Insert-Sort-Algorithm c= s1
by A6, SCMBSORT:53;
A13:
s1 . (fsloc 0 ) =
w
by A6, SCMBSORT:54
.=
s2 . (fsloc 0 )
by A7, SCMBSORT:54
;
A14:
now let x be
set ;
( x in (UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm ) implies (Comput (ProgramPart s1),s1,11) . b1 = (Comput (ProgramPart s2),s2,11) . b1 )assume
x in (UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )
;
(Comput (ProgramPart s1),s1,11) . b1 = (Comput (ProgramPart s2),s2,11) . b1then A15:
x in {(fsloc 0 ),(intloc 0 ),(intloc 1),(intloc 2),(intloc 3),(intloc 4),(intloc 5),(intloc 6)}
by A2, A1, ENUMSET1:62;
per cases
( x = fsloc 0 or x = intloc 0 or x = intloc 1 or x = intloc 2 or x = intloc 3 or x = intloc 4 or x = intloc 5 or x = intloc 6 )
by A15, ENUMSET1:def 6;
suppose A16:
x = fsloc 0
;
(Comput (ProgramPart s1),s1,11) . b1 = (Comput (ProgramPart s2),s2,11) . b1hence (Comput (ProgramPart s1),s1,11) . x =
s1 . (fsloc 0 )
by A11, A12, Lm2
.=
(Comput (ProgramPart s2),s2,11) . x
by A9, A10, A13, A16, Lm2
;
verum end; suppose A17:
x = intloc 0
;
(Comput (ProgramPart s1),s1,11) . b1 = (Comput (ProgramPart s2),s2,11) . b1hence (Comput (ProgramPart s1),s1,11) . x =
s1 . (intloc 0 )
by A11, A12, Lm2
.=
(Comput (ProgramPart s2),s2,11) . x
by A9, A10, A8, A17, Lm2
;
verum end; suppose A18:
x = intloc 1
;
(Comput (ProgramPart s1),s1,11) . b1 = (Comput (ProgramPart s2),s2,11) . b1hence (Comput (ProgramPart s1),s1,11) . x =
len (s1 . (fsloc 0 ))
by A11, A12, Lm2
.=
(Comput (ProgramPart s2),s2,11) . x
by A9, A10, A13, A18, Lm2
;
verum end; suppose A19:
x = intloc 2
;
(Comput (ProgramPart s1),s1,11) . b1 = (Comput (ProgramPart s2),s2,11) . b1hence (Comput (ProgramPart s1),s1,11) . x =
s1 . (intloc 0 )
by A11, A12, Lm2
.=
(Comput (ProgramPart s2),s2,11) . x
by A9, A10, A8, A19, Lm2
;
verum end; suppose A20:
x = intloc 3
;
(Comput (ProgramPart s1),s1,11) . b1 = (Comput (ProgramPart s2),s2,11) . b1hence (Comput (ProgramPart s1),s1,11) . x =
s1 . (intloc 0 )
by A11, A12, Lm2
.=
(Comput (ProgramPart s2),s2,11) . x
by A9, A10, A8, A20, Lm2
;
verum end; suppose A21:
x = intloc 4
;
(Comput (ProgramPart s1),s1,11) . b1 = (Comput (ProgramPart s2),s2,11) . b1hence (Comput (ProgramPart s1),s1,11) . x =
s1 . (intloc 0 )
by A11, A12, Lm2
.=
(Comput (ProgramPart s2),s2,11) . x
by A9, A10, A8, A21, Lm2
;
verum end; suppose A22:
x = intloc 5
;
(Comput (ProgramPart s1),s1,11) . b1 = (Comput (ProgramPart s2),s2,11) . b1hence (Comput (ProgramPart s1),s1,11) . x =
s1 . (intloc 0 )
by A11, A12, Lm2
.=
(Comput (ProgramPart s2),s2,11) . x
by A9, A10, A8, A22, Lm2
;
verum end; suppose A23:
x = intloc 6
;
(Comput (ProgramPart s1),s1,11) . b1 = (Comput (ProgramPart s2),s2,11) . b1hence (Comput (ProgramPart s1),s1,11) . x =
s1 . (intloc 0 )
by A11, A12, Lm2
.=
(Comput (ProgramPart s2),s2,11) . x
by A9, A10, A8, A23, Lm2
;
verum end; end; end;
A24:
for
i being
Element of
NAT holds
IC (Comput (ProgramPart s2),s2,i) in dom Insert-Sort-Algorithm
by A7, Th46;
A25:
for
i being
Element of
NAT holds
IC (Comput (ProgramPart s1),s1,i) in dom Insert-Sort-Algorithm
by A6, Th46;
A26:
(UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm ) c= dom (Comput (ProgramPart s2),s2,11)
by SCMBSORT:56;
(UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm ) c= dom (Comput (ProgramPart s1),s1,11)
by SCMBSORT:56;
then A27:
(Comput (ProgramPart s1),s1,11) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )) = (Comput (ProgramPart s2),s2,11) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm ))
by A26, A14, FUNCT_1:165;
(Comput (ProgramPart s1),s1,11) . (IC SCM+FSA ) =
11
by A11, A12, Lm2
.=
(Comput (ProgramPart s2),s2,11) . (IC SCM+FSA )
by A9, A10, Lm2
;
hence
(
(Comput (ProgramPart s1),s1,i) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )) = (Comput (ProgramPart s2),s2,i) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )) &
(Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) )
by A5, A12, A10, A27, A25, A24, SCMBSORT:26;
verum
end;
A28:
for s1, s2 being State of SCM+FSA
for i being Element of NAT st (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s1 & (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s2 & i <= 10 holds
( (Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 ) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )
proof
let s1,
s2 be
State of
SCM+FSA ;
for i being Element of NAT st (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s1 & (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s2 & i <= 10 holds
( (Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 ) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )let i be
Element of
NAT ;
( (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s1 & (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s2 & i <= 10 implies ( (Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 ) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) ) )
assume that A29:
(Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s1
and A30:
(Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s2
and A31:
i <= 10
;
( (Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 ) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )
A32:
s2 starts_at 0
by A30, AMI_1:92, SCMBSORT:47;
A33:
s1 . (fsloc 0 ) =
w
by A29, SCMBSORT:54
.=
s2 . (fsloc 0 )
by A30, SCMBSORT:54
;
A34:
s1 . (intloc 0 ) =
1
by A29, SCMBSORT:54
.=
s2 . (intloc 0 )
by A30, SCMBSORT:54
;
A35:
Comput (ProgramPart s1),
s1,
0 = s1
by AMI_1:13;
A36:
Insert-Sort-Algorithm c= s2
by A30, SCMBSORT:53;
A37:
s1 starts_at 0
by A29, AMI_1:92, SCMBSORT:47;
then A38:
IC s1 =
0
by AMI_1:def 41
.=
IC s2
by A32, AMI_1:def 41
;
A39:
Insert-Sort-Algorithm c= s1
by A29, SCMBSORT:53;
per cases
( i = 0 or i = 1 or i = 2 or i = 3 or i = 4 or i = 5 or i = 6 or i = 7 or i = 8 or i = 9 or i = 10 )
by A31, NAT_1:35;
suppose A40:
i = 0
;
( (Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 ) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )hence
(Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 )
by A35, A34, AMI_1:13;
( (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )thus
(Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA )
by A35, A38, A40, AMI_1:13;
(Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 )thus
(Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 )
by A35, A33, A40, AMI_1:13;
verum end; suppose A41:
i = 1
;
( (Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 ) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )hence (Comput (ProgramPart s1),s1,i) . (intloc 0 ) =
s1 . (intloc 0 )
by A37, A39, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (intloc 0 )
by A32, A36, A34, A41, Lm2
;
( (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )thus (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) =
1
by A37, A39, A41, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (IC SCM+FSA )
by A32, A36, A41, Lm2
;
(Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 )thus (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) =
s1 . (fsloc 0 )
by A37, A39, A41, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (fsloc 0 )
by A32, A36, A33, A41, Lm2
;
verum end; suppose A42:
i = 2
;
( (Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 ) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )hence (Comput (ProgramPart s1),s1,i) . (intloc 0 ) =
s1 . (intloc 0 )
by A37, A39, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (intloc 0 )
by A32, A36, A34, A42, Lm2
;
( (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )thus (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) =
2
by A37, A39, A42, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (IC SCM+FSA )
by A32, A36, A42, Lm2
;
(Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 )thus (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) =
s1 . (fsloc 0 )
by A37, A39, A42, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (fsloc 0 )
by A32, A36, A33, A42, Lm2
;
verum end; suppose A43:
i = 3
;
( (Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 ) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )hence (Comput (ProgramPart s1),s1,i) . (intloc 0 ) =
s1 . (intloc 0 )
by A37, A39, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (intloc 0 )
by A32, A36, A34, A43, Lm2
;
( (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )thus (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) =
3
by A37, A39, A43, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (IC SCM+FSA )
by A32, A36, A43, Lm2
;
(Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 )thus (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) =
s1 . (fsloc 0 )
by A37, A39, A43, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (fsloc 0 )
by A32, A36, A33, A43, Lm2
;
verum end; suppose A44:
i = 4
;
( (Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 ) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )hence (Comput (ProgramPart s1),s1,i) . (intloc 0 ) =
s1 . (intloc 0 )
by A37, A39, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (intloc 0 )
by A32, A36, A34, A44, Lm2
;
( (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )thus (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) =
4
by A37, A39, A44, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (IC SCM+FSA )
by A32, A36, A44, Lm2
;
(Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 )thus (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) =
s1 . (fsloc 0 )
by A37, A39, A44, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (fsloc 0 )
by A32, A36, A33, A44, Lm2
;
verum end; suppose A45:
i = 5
;
( (Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 ) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )hence (Comput (ProgramPart s1),s1,i) . (intloc 0 ) =
s1 . (intloc 0 )
by A37, A39, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (intloc 0 )
by A32, A36, A34, A45, Lm2
;
( (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )thus (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) =
5
by A37, A39, A45, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (IC SCM+FSA )
by A32, A36, A45, Lm2
;
(Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 )thus (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) =
s1 . (fsloc 0 )
by A37, A39, A45, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (fsloc 0 )
by A32, A36, A33, A45, Lm2
;
verum end; suppose A46:
i = 6
;
( (Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 ) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )hence (Comput (ProgramPart s1),s1,i) . (intloc 0 ) =
s1 . (intloc 0 )
by A37, A39, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (intloc 0 )
by A32, A36, A34, A46, Lm2
;
( (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )thus (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) =
6
by A37, A39, A46, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (IC SCM+FSA )
by A32, A36, A46, Lm2
;
(Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 )thus (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) =
s1 . (fsloc 0 )
by A37, A39, A46, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (fsloc 0 )
by A32, A36, A33, A46, Lm2
;
verum end; suppose A47:
i = 7
;
( (Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 ) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )hence (Comput (ProgramPart s1),s1,i) . (intloc 0 ) =
s1 . (intloc 0 )
by A37, A39, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (intloc 0 )
by A32, A36, A34, A47, Lm2
;
( (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )thus (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) =
7
by A37, A39, A47, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (IC SCM+FSA )
by A32, A36, A47, Lm2
;
(Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 )thus (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) =
s1 . (fsloc 0 )
by A37, A39, A47, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (fsloc 0 )
by A32, A36, A33, A47, Lm2
;
verum end; suppose A48:
i = 8
;
( (Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 ) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )hence (Comput (ProgramPart s1),s1,i) . (intloc 0 ) =
s1 . (intloc 0 )
by A37, A39, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (intloc 0 )
by A32, A36, A34, A48, Lm2
;
( (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )thus (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) =
8
by A37, A39, A48, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (IC SCM+FSA )
by A32, A36, A48, Lm2
;
(Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 )thus (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) =
s1 . (fsloc 0 )
by A37, A39, A48, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (fsloc 0 )
by A32, A36, A33, A48, Lm2
;
verum end; suppose A49:
i = 9
;
( (Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 ) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )hence (Comput (ProgramPart s1),s1,i) . (intloc 0 ) =
s1 . (intloc 0 )
by A37, A39, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (intloc 0 )
by A32, A36, A34, A49, Lm2
;
( (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )thus (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) =
9
by A37, A39, A49, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (IC SCM+FSA )
by A32, A36, A49, Lm2
;
(Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 )thus (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) =
s1 . (fsloc 0 )
by A37, A39, A49, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (fsloc 0 )
by A32, A36, A33, A49, Lm2
;
verum end; suppose A50:
i = 10
;
( (Comput (ProgramPart s1),s1,i) . (intloc 0 ) = (Comput (ProgramPart s2),s2,i) . (intloc 0 ) & (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )hence (Comput (ProgramPart s1),s1,i) . (intloc 0 ) =
s1 . (intloc 0 )
by A37, A39, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (intloc 0 )
by A32, A36, A34, A50, Lm2
;
( (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) = (Comput (ProgramPart s2),s2,i) . (IC SCM+FSA ) & (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 ) )thus (Comput (ProgramPart s1),s1,i) . (IC SCM+FSA ) =
10
by A37, A39, A50, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (IC SCM+FSA )
by A32, A36, A50, Lm2
;
(Comput (ProgramPart s1),s1,i) . (fsloc 0 ) = (Comput (ProgramPart s2),s2,i) . (fsloc 0 )thus (Comput (ProgramPart s1),s1,i) . (fsloc 0 ) =
s1 . (fsloc 0 )
by A37, A39, A50, Lm2
.=
(Comput (ProgramPart s2),s2,i) . (fsloc 0 )
by A32, A36, A33, A50, Lm2
;
verum end; end;
end;
A51:
dom ((Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w)) = (dom Insert-Sort-Algorithm ) \/ {(intloc 0 ),(IC SCM+FSA ),(fsloc 0 )}
by SCMBSORT:42;
now let s1,
s2 be
State of
SCM+FSA ;
for i being Element of NAT st (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s1 & (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s2 holds
(Comput (ProgramPart s1),s1,i) | (dom ((Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w))) = (Comput (ProgramPart s2),s2,i) | (dom ((Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w)))let i be
Element of
NAT ;
( (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s1 & (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s2 implies (Comput (ProgramPart s1),s1,i) | (dom ((Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w))) = (Comput (ProgramPart s2),s2,i) | (dom ((Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w))) )assume that A52:
(Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s1
and A53:
(Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s2
;
(Comput (ProgramPart s1),s1,i) | (dom ((Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w))) = (Comput (ProgramPart s2),s2,i) | (dom ((Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w)))set Cs1i =
Comput (ProgramPart s1),
s1,
i;
set Cs2i =
Comput (ProgramPart s2),
s2,
i;
A54:
(UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm ) c= dom (Comput (ProgramPart s1),s1,i)
by SCMBSORT:56;
A55:
Insert-Sort-Algorithm c= s2
by A53, SCMBSORT:53;
Insert-Sort-Algorithm c= s1
by A52, SCMBSORT:53;
then A56:
(Comput (ProgramPart s1),s1,i) | (dom Insert-Sort-Algorithm ) = (Comput (ProgramPart s2),s2,i) | (dom Insert-Sort-Algorithm )
by A55, AMI_1:124;
A57:
fsloc 0 in (UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )
by A3, ENUMSET1:def 6;
A58:
(UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm ) c= dom (Comput (ProgramPart s2),s2,i)
by SCMBSORT:56;
A59:
(
i > 10 implies 10
+ 1
< i + 1 )
by XREAL_1:8;
A60:
intloc 0 in (UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )
by A3, ENUMSET1:def 6;
A61:
now let x be
set ;
( x in {(intloc 0 ),(IC SCM+FSA ),(fsloc 0 )} implies (Comput (ProgramPart s1),s1,i) . b1 = (Comput (ProgramPart s2),s2,i) . b1 )assume A62:
x in {(intloc 0 ),(IC SCM+FSA ),(fsloc 0 )}
;
(Comput (ProgramPart s1),s1,i) . b1 = (Comput (ProgramPart s2),s2,i) . b1per cases
( x = intloc 0 or x = IC SCM+FSA or x = fsloc 0 )
by A62, ENUMSET1:def 1;
suppose A63:
x = intloc 0
;
(Comput (ProgramPart s1),s1,i) . b1 = (Comput (ProgramPart s2),s2,i) . b1now per cases
( i <= 10 or i > 10 )
;
suppose
i > 10
;
(Comput (ProgramPart s1),s1,i) . x = (Comput (ProgramPart s2),s2,i) . xthen
11
<= i
by A59, NAT_1:13;
then
(Comput (ProgramPart s1),s1,i) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )) = (Comput (ProgramPart s2),s2,i) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm ))
by A4, A52, A53;
hence
(Comput (ProgramPart s1),s1,i) . x = (Comput (ProgramPart s2),s2,i) . x
by A60, A54, A58, A63, FUNCT_1:165;
verum end; end; end; hence
(Comput (ProgramPart s1),s1,i) . x = (Comput (ProgramPart s2),s2,i) . x
;
verum end; suppose A65:
x = fsloc 0
;
(Comput (ProgramPart s1),s1,i) . b1 = (Comput (ProgramPart s2),s2,i) . b1now per cases
( i <= 10 or i > 10 )
;
suppose
i > 10
;
(Comput (ProgramPart s1),s1,i) . x = (Comput (ProgramPart s2),s2,i) . xthen
11
<= i
by A59, NAT_1:13;
then
(Comput (ProgramPart s1),s1,i) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm )) = (Comput (ProgramPart s2),s2,i) | ((UsedInt*Loc Insert-Sort-Algorithm ) \/ (UsedIntLoc Insert-Sort-Algorithm ))
by A4, A52, A53;
hence
(Comput (ProgramPart s1),s1,i) . x = (Comput (ProgramPart s2),s2,i) . x
by A57, A54, A58, A65, FUNCT_1:165;
verum end; end; end; hence
(Comput (ProgramPart s1),s1,i) . x = (Comput (ProgramPart s2),s2,i) . x
;
verum end; end; end; A66:
{(intloc 0 ),(IC SCM+FSA ),(fsloc 0 )} c= dom (Comput (ProgramPart s2),s2,i)
by SCMBSORT:55;
{(intloc 0 ),(IC SCM+FSA ),(fsloc 0 )} c= dom (Comput (ProgramPart s1),s1,i)
by SCMBSORT:55;
then
(Comput (ProgramPart s1),s1,i) | {(intloc 0 ),(IC SCM+FSA ),(fsloc 0 )} = (Comput (ProgramPart s2),s2,i) | {(intloc 0 ),(IC SCM+FSA ),(fsloc 0 )}
by A66, A61, FUNCT_1:165;
hence
(Comput (ProgramPart s1),s1,i) | (dom ((Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w))) = (Comput (ProgramPart s2),s2,i) | (dom ((Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w)))
by A51, A56, RELAT_1:185;
verum end;
then
for s1, s2 being State of SCM+FSA st (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s1 & (Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) c= s2 holds
for i being Element of NAT holds (Comput (ProgramPart s1),s1,i) | (dom ((Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w))) = (Comput (ProgramPart s2),s2,i) | (dom ((Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w)))
;
hence
(Initialized Insert-Sort-Algorithm ) +* ((fsloc 0 ) .--> w) is autonomic
by AMI_1:def 25; verum