let s be State of SCM+FSA; :: thesis: for I, J being Program of SCM+FSA
for a being read-write Int-Location st s . a > 0 & Directed I is_pseudo-closed_on s holds
( if>0 (a,I,J) is_halting_on s & if>0 (a,I,J) is_closed_on s & LifeSpan ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) = (LifeSpan ((ProgramPart (s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA))))),(s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA)))))) + 1 )

set D = Int-Locations \/ FinSeq-Locations;
let I, J be Program of SCM+FSA; :: thesis: for a being read-write Int-Location st s . a > 0 & Directed I is_pseudo-closed_on s holds
( if>0 (a,I,J) is_halting_on s & if>0 (a,I,J) is_closed_on s & LifeSpan ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) = (LifeSpan ((ProgramPart (s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA))))),(s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA)))))) + 1 )

let a be read-write Int-Location ; :: thesis: ( s . a > 0 & Directed I is_pseudo-closed_on s implies ( if>0 (a,I,J) is_halting_on s & if>0 (a,I,J) is_closed_on s & LifeSpan ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) = (LifeSpan ((ProgramPart (s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA))))),(s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA)))))) + 1 ) )
set I0 = Directed I;
set I1 = I ';' (Stop SCM+FSA);
set s00 = s +* ((Directed I) +* (Start-At (0,SCM+FSA)));
set s3 = s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)));
set s4 = Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),1);
set i = a >0_goto ((card J) + 3);
A1: (Directed I) +* (Start-At (0,SCM+FSA)) c= s +* ((Directed I) +* (Start-At (0,SCM+FSA))) by FUNCT_4:26;
card (if>0 (a,I,J)) = ((card I) + (card J)) + (3 + 1) by SCMFSA8B:15
.= (((card I) + (card J)) + 3) + 1 ;
then ((card I) + (card J)) + 3 < card (if>0 (a,I,J)) by NAT_1:13;
then A2: ((card I) + (card J)) + 3 in dom (if>0 (a,I,J)) by AFINSQ_1:70;
IC SCM+FSA in dom ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))) by COMPOS_1:141;
then A3: IC (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) = IC ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))) by FUNCT_4:14
.= 0 by COMPOS_1:142 ;
A4: 0 in dom (if>0 (a,I,J)) by Th54;
if>0 (a,I,J) c= (if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)) by SCMFSA8A:9;
then dom (if>0 (a,I,J)) c= dom ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))) by GRFUNC_1:8;
then A5: (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) . 0 = ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))) . 0 by A4, FUNCT_4:14
.= (if>0 (a,I,J)) . 0 by A4, SCMFSA6B:7
.= a >0_goto ((card J) + 3) by Th55 ;
A6: card (((a >0_goto ((card J) + 3)) ';' J) ';' (Goto ((card I) + 1))) = (card ((Macro (a >0_goto ((card J) + 3))) ';' J)) + (card (Goto ((card I) + 1))) by SCMFSA6A:61
.= (card ((Macro (a >0_goto ((card J) + 3))) ';' J)) + 1 by SCMFSA8A:29
.= ((card (Macro (a >0_goto ((card J) + 3)))) + (card J)) + 1 by SCMFSA6A:61
.= ((card J) + 2) + 1 by COMPOS_1:150
.= (card J) + (2 + 1) ;
Y: (ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) /. (IC (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) = (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) . (IC (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) by COMPOS_1:38;
A7: Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),(0 + 1)) = Following ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),0))) by EXTPRO_1:4
.= Following ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) by EXTPRO_1:3
.= Exec ((a >0_goto ((card J) + 3)),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) by A3, A5, Y ;
A8: if>0 (a,I,J) c= (if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)) by SCMFSA8A:9;
(if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)) c= s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))) by FUNCT_4:26;
then A9: if>0 (a,I,J) c= s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))) by A8, XBOOLE_1:1;
A10: if>0 (a,I,J) c= s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))) by FUNCT_4:26, SCMFSA6B:5;
A11: if>0 (a,I,J) = ((((a >0_goto ((card J) + 3)) ';' J) ';' (Goto ((card I) + 1))) ';' I) ';' (Stop SCM+FSA) by SCMFSA8B:def 2;
then if>0 (a,I,J) = (((a >0_goto ((card J) + 3)) ';' J) ';' (Goto ((card I) + 1))) ';' (I ';' (Stop SCM+FSA)) by SCMFSA6A:67;
then ProgramPart (Relocated ((I ';' (Stop SCM+FSA)),((card J) + 3))) c= if>0 (a,I,J) by A6, FUNCT_4:26;
then ProgramPart (Relocated ((I ';' (Stop SCM+FSA)),((card J) + 3))) c= s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))) by A9, XBOOLE_1:1;
then ProgramPart (ProgramPart (Relocated ((I ';' (Stop SCM+FSA)),((card J) + 3)))) c= Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),1) by AMI_1:99;
then A12: ProgramPart (Relocated ((I ';' (Stop SCM+FSA)),((card J) + 3))) c= Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),1) by RELAT_1:209;
ProgramPart (Relocated ((Directed I),((card J) + 3))) c= ProgramPart (Relocated ((I ';' (Stop SCM+FSA)),((card J) + 3))) by Th12, SCMFSA6A:55;
then A13: ProgramPart (Relocated ((Directed I),((card J) + 3))) c= Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),1) by A12, XBOOLE_1:1;
A14: DataPart (s +* ((Directed I) +* (Start-At (0,SCM+FSA)))) = DataPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) by SCMFSA6A:39, SCMFSA8A:14;
A15: now
let f be FinSeq-Location ; :: thesis: (s +* ((Directed I) +* (Start-At (0,SCM+FSA)))) . f = (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),1)) . f
thus (s +* ((Directed I) +* (Start-At (0,SCM+FSA)))) . f = (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) . f by A14, SCMFSA6A:38
.= (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),1)) . f by A7, SCMFSA_2:97 ; :: thesis: verum
end;
now
let a be Int-Location ; :: thesis: (s +* ((Directed I) +* (Start-At (0,SCM+FSA)))) . a = (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),1)) . a
thus (s +* ((Directed I) +* (Start-At (0,SCM+FSA)))) . a = (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) . a by A14, SCMFSA6A:38
.= (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),1)) . a by A7, SCMFSA_2:97 ; :: thesis: verum
end;
then A16: DataPart (s +* ((Directed I) +* (Start-At (0,SCM+FSA)))) = DataPart (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),1)) by A15, SCMFSA6A:38;
not a in dom ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))) by SCMFSA6B:12;
then A17: (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) . a = s . a by FUNCT_4:12;
assume s . a > 0 ; :: thesis: ( not Directed I is_pseudo-closed_on s or ( if>0 (a,I,J) is_halting_on s & if>0 (a,I,J) is_closed_on s & LifeSpan ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) = (LifeSpan ((ProgramPart (s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA))))),(s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA)))))) + 1 ) )
then A18: IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),1)) = (card J) + 3 by A7, A17, SCMFSA_2:97;
assume A19: Directed I is_pseudo-closed_on s ; :: thesis: ( if>0 (a,I,J) is_halting_on s & if>0 (a,I,J) is_closed_on s & LifeSpan ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) = (LifeSpan ((ProgramPart (s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA))))),(s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA)))))) + 1 )
then A20: pseudo-LifeSpan (s,(Directed I)) = LifeSpan ((ProgramPart (s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA))))),(s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA))))) by Th58;
DataPart s = DataPart (s +* ((Directed I) +* (Start-At (0,SCM+FSA)))) by SCMFSA8A:11;
then A21: Directed I is_pseudo-closed_on s +* ((Directed I) +* (Start-At (0,SCM+FSA))) by A19, Th52;
Y: (ProgramPart (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),((pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))) + 1)))) /. (IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),((pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))) + 1)))) = (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),((pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))) + 1))) . (IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),((pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))) + 1)))) by COMPOS_1:38;
T: ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) = ProgramPart (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),1)) by AMI_1:123;
TX: ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) = ProgramPart (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),((pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))) + 1))) by AMI_1:123;
A22: IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),((pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))) + 1))) = IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),1)),(pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))))) by EXTPRO_1:5
.= (IC (Comput ((ProgramPart (s +* ((Directed I) +* (Start-At (0,SCM+FSA))))),(s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I)))))) + ((card J) + 3) by A1, A21, A13, A18, A16, Th51, T
.= (IC (Comput ((ProgramPart (s +* ((Directed I) +* (Start-At (0,SCM+FSA))))),(s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(pseudo-LifeSpan (s,(Directed I)))))) + ((card J) + 3) by A19, Th50
.= (card (ProgramPart (Directed I))) + ((card J) + 3) by A19, SCMFSA8A:def 5
.= (card (Directed I)) + ((card J) + 3) by RELAT_1:209
.= (card I) + ((card J) + 3) by SCMFSA8A:34
.= ((card I) + (card J)) + 3 ;
then A23: CurInstr ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),((pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))) + 1)))) = (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) . (((card I) + (card J)) + 3) by Y, TX, AMI_1:54
.= (if>0 (a,I,J)) . (((card I) + (card J)) + 3) by A10, A2, GRFUNC_1:8
.= halt SCM+FSA by Th62 ;
then A24: ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) halts_on s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))) by EXTPRO_1:30;
hence if>0 (a,I,J) is_halting_on s by SCMFSA7B:def 8; :: thesis: ( if>0 (a,I,J) is_closed_on s & LifeSpan ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) = (LifeSpan ((ProgramPart (s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA))))),(s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA)))))) + 1 )
now
let k be Element of NAT ; :: thesis: IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),b1)) in dom (if>0 (a,I,J))
per cases ( k = 0 or ( 0 < k & k < (pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))) + 1 ) or ( 0 < k & (pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))) + 1 <= k ) ) ;
suppose k = 0 ; :: thesis: IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),b1)) in dom (if>0 (a,I,J))
then Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k) = s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))) by EXTPRO_1:3;
then IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k)) = 0 by Th31;
hence IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k)) in dom (if>0 (a,I,J)) by Th54; :: thesis: verum
end;
suppose A25: ( 0 < k & k < (pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))) + 1 ) ; :: thesis: IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),b1)) in dom (if>0 (a,I,J))
card (if>0 (a,I,J)) = ((card I) + (card J)) + (3 + 1) by SCMFSA8B:15
.= (((card I) + (card J)) + 3) + 1 ;
then A26: ((card I) + (card J)) + 3 < card (if>0 (a,I,J)) by XREAL_1:31;
0 + 1 <= k by A25, INT_1:20;
then consider k1 being Nat such that
A27: 1 + k1 = k by NAT_1:10;
reconsider k1 = k1 as Element of NAT by ORDINAL1:def 13;
reconsider n = IC (Comput ((ProgramPart (s +* ((Directed I) +* (Start-At (0,SCM+FSA))))),(s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),k1)) as Element of NAT ;
A28: k1 < pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I)) by A25, A27, XREAL_1:8;
then k1 < pseudo-LifeSpan (s,(Directed I)) by A19, Th50;
then n in dom (Directed I) by A19, SCMFSA8A:31;
then n < card (Directed I) by AFINSQ_1:70;
then n + ((card J) + 3) < (card (Directed I)) + ((card J) + 3) by XREAL_1:8;
then n + ((card J) + 3) < (card I) + ((card J) + 3) by SCMFSA8A:34;
then A29: n + ((card J) + 3) < card (if>0 (a,I,J)) by A26, XXREAL_0:2;
IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k)) = IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),1)),k1)) by A27, EXTPRO_1:5
.= (IC (Comput ((ProgramPart (s +* ((Directed I) +* (Start-At (0,SCM+FSA))))),(s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),k1))) + ((card J) + 3) by A1, A21, A13, A18, A16, A28, T, Th51 ;
hence IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k)) in dom (if>0 (a,I,J)) by A29, AFINSQ_1:70; :: thesis: verum
end;
suppose ( 0 < k & (pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))) + 1 <= k ) ; :: thesis: IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),b1)) in dom (if>0 (a,I,J))
hence IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k)) in dom (if>0 (a,I,J)) by A2, A22, A23, EXTPRO_1:6; :: thesis: verum
end;
end;
end;
hence if>0 (a,I,J) is_closed_on s by SCMFSA7B:def 7; :: thesis: LifeSpan ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) = (LifeSpan ((ProgramPart (s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA))))),(s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA)))))) + 1
now
set J1 = (((a >0_goto ((card J) + 3)) ';' J) ';' (Goto ((card I) + 1))) ';' I;
let k be Element of NAT ; :: thesis: ( CurInstr ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k))) = halt SCM+FSA implies (pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))) + 1 <= k )
TX3: ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) = ProgramPart (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k)) by AMI_1:123;
assume A30: CurInstr ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k))) = halt SCM+FSA ; :: thesis: (pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))) + 1 <= k
assume not (pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))) + 1 <= k ; :: thesis: contradiction
then A31: k <= pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I)) by NAT_1:13;
A32: 0 in dom (if>0 (a,I,J)) by Th54;
u: Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),0) = s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))) by EXTPRO_1:3;
Y: (ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) /. (IC (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) = (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) . (IC (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) by COMPOS_1:38;
CurInstr ((ProgramPart (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),0))),(Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),0))) = CurInstr ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) by u
.= (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) . 0 by Th31, Y
.= (if>0 (a,I,J)) . 0 by A32, Th26
.= a >0_goto ((card J) + 3) by Th55 ;
then k <> 0 by A30, TX3;
then consider k1 being Nat such that
A34: k1 + 1 = k by NAT_1:6;
reconsider k1 = k1 as Element of NAT by ORDINAL1:def 13;
reconsider n = IC (Comput ((ProgramPart (s +* ((Directed I) +* (Start-At (0,SCM+FSA))))),(s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),k1)) as Element of NAT ;
k1 < k by A34, XREAL_1:31;
then A35: k1 < pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I)) by A31, XXREAL_0:2;
then k1 < pseudo-LifeSpan (s,(Directed I)) by A19, Th50;
then n in dom (Directed I) by A19, SCMFSA8A:31;
then n < card (Directed I) by AFINSQ_1:70;
then n + ((card J) + 3) < (card (Directed I)) + ((card J) + 3) by XREAL_1:8;
then A36: n + ((card J) + 3) < (card I) + ((card J) + 3) by SCMFSA8A:34;
A37: IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k)) = IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),1)),k1)) by A34, EXTPRO_1:5
.= (IC (Comput ((ProgramPart (s +* ((Directed I) +* (Start-At (0,SCM+FSA))))),(s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),k1))) + ((card J) + 3) by A1, A21, A13, A18, A16, A35, Th51, T ;
card ((((a >0_goto ((card J) + 3)) ';' J) ';' (Goto ((card I) + 1))) ';' I) = (card (((Macro (a >0_goto ((card J) + 3))) ';' J) ';' (Goto ((card I) + 1)))) + (card I) by SCMFSA6A:61
.= ((card ((Macro (a >0_goto ((card J) + 3))) ';' J)) + (card (Goto ((card I) + 1)))) + (card I) by SCMFSA6A:61
.= ((card ((Macro (a >0_goto ((card J) + 3))) ';' J)) + 1) + (card I) by SCMFSA8A:29
.= (((card (Macro (a >0_goto ((card J) + 3)))) + (card J)) + 1) + (card I) by SCMFSA6A:61
.= ((2 + (card J)) + 1) + (card I) by COMPOS_1:150
.= ((card I) + (card J)) + 3 ;
then IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k)) in dom ((((a >0_goto ((card J) + 3)) ';' J) ';' (Goto ((card I) + 1))) ';' I) by A37, A36, AFINSQ_1:70;
then A38: IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k)) in dom (Directed ((((a >0_goto ((card J) + 3)) ';' J) ';' (Goto ((card I) + 1))) ';' I)) by FUNCT_4:105;
then A39: (Directed ((((a >0_goto ((card J) + 3)) ';' J) ';' (Goto ((card I) + 1))) ';' I)) . (IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k))) in rng (Directed ((((a >0_goto ((card J) + 3)) ';' J) ';' (Goto ((card I) + 1))) ';' I)) by FUNCT_1:def 5;
card (if>0 (a,I,J)) = ((card I) + (card J)) + (3 + 1) by SCMFSA8B:15
.= (((card I) + (card J)) + 3) + 1 ;
then ((card I) + (card J)) + 3 < card (if>0 (a,I,J)) by XREAL_1:31;
then n + ((card J) + 3) < card (if>0 (a,I,J)) by A36, XXREAL_0:2;
then A40: IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k)) in dom (if>0 (a,I,J)) by A37, AFINSQ_1:70;
Y: (ProgramPart (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k))) /. (IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k))) = (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k)) . (IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k))) by COMPOS_1:38;
TX3: ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) = ProgramPart (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k)) by AMI_1:123;
A41: CurInstr ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k))) = (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))) . (IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k))) by Y, TX3, AMI_1:54
.= (if>0 (a,I,J)) . (IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k))) by A40, Th26 ;
Directed ((((a >0_goto ((card J) + 3)) ';' J) ';' (Goto ((card I) + 1))) ';' I) c= if>0 (a,I,J) by A11, SCMFSA6A:55;
then (if>0 (a,I,J)) . (IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k))) = (Directed ((((a >0_goto ((card J) + 3)) ';' J) ';' (Goto ((card I) + 1))) ';' I)) . (IC (Comput ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA)))),k))) by A38, GRFUNC_1:8;
hence contradiction by A30, A39, A41, COMPOS_1:def 7; :: thesis: verum
end;
then LifeSpan ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) = (pseudo-LifeSpan ((s +* ((Directed I) +* (Start-At (0,SCM+FSA)))),(Directed I))) + 1 by A23, A24, EXTPRO_1:def 14;
hence LifeSpan ((ProgramPart (s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))),(s +* ((if>0 (a,I,J)) +* (Start-At (0,SCM+FSA))))) = (LifeSpan ((ProgramPart (s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA))))),(s +* ((I ';' (Stop SCM+FSA)) +* (Start-At (0,SCM+FSA)))))) + 1 by A19, A20, Th50; :: thesis: verum