let I be Program of SCM+FSA ; :: thesis: for s being State of SCM+FSA st I is_closed_on Initialize s & I is_halting_on Initialize s holds
( IC (Computation (s +* (Initialized (I ';' (Stop SCM+FSA )))),((LifeSpan (s +* (Initialized I))) + 1)) = insloc (card I) & DataPart (Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) = DataPart (Computation (s +* (Initialized (I ';' (Stop SCM+FSA )))),((LifeSpan (s +* (Initialized I))) + 1)) & s +* (Initialized (I ';' (Stop SCM+FSA ))) is halting & LifeSpan (s +* (Initialized (I ';' (Stop SCM+FSA )))) = (LifeSpan (s +* (Initialized I))) + 1 )

let s be State of SCM+FSA ; :: thesis: ( I is_closed_on Initialize s & I is_halting_on Initialize s implies ( IC (Computation (s +* (Initialized (I ';' (Stop SCM+FSA )))),((LifeSpan (s +* (Initialized I))) + 1)) = insloc (card I) & DataPart (Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) = DataPart (Computation (s +* (Initialized (I ';' (Stop SCM+FSA )))),((LifeSpan (s +* (Initialized I))) + 1)) & s +* (Initialized (I ';' (Stop SCM+FSA ))) is halting & LifeSpan (s +* (Initialized (I ';' (Stop SCM+FSA )))) = (LifeSpan (s +* (Initialized I))) + 1 ) )
assume A1: I is_closed_on Initialize s ; :: thesis: ( not I is_halting_on Initialize s or ( IC (Computation (s +* (Initialized (I ';' (Stop SCM+FSA )))),((LifeSpan (s +* (Initialized I))) + 1)) = insloc (card I) & DataPart (Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) = DataPart (Computation (s +* (Initialized (I ';' (Stop SCM+FSA )))),((LifeSpan (s +* (Initialized I))) + 1)) & s +* (Initialized (I ';' (Stop SCM+FSA ))) is halting & LifeSpan (s +* (Initialized (I ';' (Stop SCM+FSA )))) = (LifeSpan (s +* (Initialized I))) + 1 ) )
assume A2: I is_halting_on Initialize s ; :: thesis: ( IC (Computation (s +* (Initialized (I ';' (Stop SCM+FSA )))),((LifeSpan (s +* (Initialized I))) + 1)) = insloc (card I) & DataPart (Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) = DataPart (Computation (s +* (Initialized (I ';' (Stop SCM+FSA )))),((LifeSpan (s +* (Initialized I))) + 1)) & s +* (Initialized (I ';' (Stop SCM+FSA ))) is halting & LifeSpan (s +* (Initialized (I ';' (Stop SCM+FSA )))) = (LifeSpan (s +* (Initialized I))) + 1 )
set s1 = s +* (Initialized I);
set s2 = s +* (Initialized (I ';' (Stop SCM+FSA )));
I ';' (Stop SCM+FSA ) c= Initialized (I ';' (Stop SCM+FSA )) by SCMFSA6A:26;
then A3: dom (I ';' (Stop SCM+FSA )) c= dom (Initialized (I ';' (Stop SCM+FSA ))) by GRFUNC_1:8;
card (I ';' (Stop SCM+FSA )) = (card I) + 1 by Th17, SCMFSA6A:61;
then card I < card (I ';' (Stop SCM+FSA )) by NAT_1:13;
then A4: insloc (card I) in dom (I ';' (Stop SCM+FSA )) by SCMFSA6A:15;
A5: dom (ProgramPart (Stop SCM+FSA )) = dom (Stop SCM+FSA ) by AMI_1:105;
then insloc (0 + (card I)) in { (m + (card I)) where m is Element of NAT : m in dom (ProgramPart (Stop SCM+FSA )) } by Th16;
then A6: insloc (0 + (card I)) in dom (ProgramPart (Relocated (Stop SCM+FSA ),(card I))) by SCMFSA_5:3;
A7: ProgramPart (Relocated (Stop SCM+FSA ),(card I)) c= Relocated (Stop SCM+FSA ),(card I) by RELAT_1:88;
A8: ( DataPart (Computation (s +* (Initialized (Directed I))),((LifeSpan (s +* (Initialized I))) + 1)) = DataPart (Computation (s +* (Initialized (I ';' (Stop SCM+FSA )))),((LifeSpan (s +* (Initialized I))) + 1)) & IC (Computation (s +* (Initialized (Directed I))),((LifeSpan (s +* (Initialized I))) + 1)) = IC (Computation (s +* (Initialized (I ';' (Stop SCM+FSA )))),((LifeSpan (s +* (Initialized I))) + 1)) ) by A1, A2, Th43;
hence ( IC (Computation (s +* (Initialized (I ';' (Stop SCM+FSA )))),((LifeSpan (s +* (Initialized I))) + 1)) = insloc (card I) & DataPart (Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) = DataPart (Computation (s +* (Initialized (I ';' (Stop SCM+FSA )))),((LifeSpan (s +* (Initialized I))) + 1)) ) by A1, A2, Th45; :: thesis: ( s +* (Initialized (I ';' (Stop SCM+FSA ))) is halting & LifeSpan (s +* (Initialized (I ';' (Stop SCM+FSA )))) = (LifeSpan (s +* (Initialized I))) + 1 )
A9: (s +* (Initialized (I ';' (Stop SCM+FSA )))) . (insloc (card I)) = (Initialized (I ';' (Stop SCM+FSA ))) . (insloc (card I)) by A3, A4, FUNCT_4:14
.= (I ';' (Stop SCM+FSA )) . (insloc (card I)) by A4, SCMFSA6A:50
.= (ProgramPart (Relocated (Stop SCM+FSA ),(card I))) . (insloc (card I)) by A6, FUNCT_4:14
.= (Relocated (Stop SCM+FSA ),(card I)) . (insloc (0 + (card I))) by A6, A7, GRFUNC_1:8
.= IncAddr (halt SCM+FSA ),(card I) by A5, Th16A, SCMFSA_5:7, SCMNORM:2
.= halt SCM+FSA by SCMFSA_4:8 ;
A10: CurInstr (Computation (s +* (Initialized (I ';' (Stop SCM+FSA )))),((LifeSpan (s +* (Initialized I))) + 1)) = (Computation (s +* (Initialized (I ';' (Stop SCM+FSA )))),((LifeSpan (s +* (Initialized I))) + 1)) . (insloc (card I)) by A1, A2, A8, Th45
.= halt SCM+FSA by A9, AMI_1:54 ;
hence A11: s +* (Initialized (I ';' (Stop SCM+FSA ))) is halting by AMI_1:def 20; :: thesis: LifeSpan (s +* (Initialized (I ';' (Stop SCM+FSA )))) = (LifeSpan (s +* (Initialized I))) + 1
now end;
then for k being Element of NAT st CurInstr (Computation (s +* (Initialized (I ';' (Stop SCM+FSA )))),k) = halt SCM+FSA holds
(LifeSpan (s +* (Initialized I))) + 1 <= k ;
hence LifeSpan (s +* (Initialized (I ';' (Stop SCM+FSA )))) = (LifeSpan (s +* (Initialized I))) + 1 by A10, A11, AMI_1:def 46; :: thesis: verum