reserve S for with_non_trivial_Instructions COM-Struct;
reserve i,j,k for No-StopCode Instruction of S,
        I,J,K for MacroInstruction of S;
reserve i1,i2,i3,i4,i5,i6 for No-StopCode Instruction of S;
reserve I,J for non empty NAT-defined finite Function;
reserve I,J for MacroInstruction of S;

theorem Th20:
 for I being halt-ending Program of S
 holds I = CutLastLoc I +* (LastLoc I .--> halt S)
 proof let I be halt-ending Program of S;
A1: LastLoc I in dom I by VALUED_1:30;
A2: {LastLoc I} misses dom CutLastLoc I by Th17,ZFMISC_1:50;
A3: dom (LastLoc I .--> I.LastLoc I) = {LastLoc I};
 I = CutLastLoc I \/ (LastLoc I .--> I.LastLoc I)
                              by A1,FUNCOP_1:84,XBOOLE_1:45
    .= CutLastLoc I +* (LastLoc I .--> I.LastLoc I) by A3,A2,FUNCT_4:31;
 hence thesis by COMPOS_1:def 14;
 end;
