let l be Element of NAT ; :: thesis: for s being State of SCM+FSA st IC s = l & s . l = goto l holds
not ProgramPart s halts_on s

let s be State of SCM+FSA ; :: thesis: ( IC s = l & s . l = goto l implies not ProgramPart s halts_on s )
set S = s;
assume that
A1: IC s = l and
A2: s . l = goto l ; :: thesis: not ProgramPart s halts_on s
defpred S1[ Nat] means Comput (ProgramPart s),s,$1 = s;
A3: for m being Element of NAT st S1[m] holds
S1[m + 1]
proof
let m be Element of NAT ; :: thesis: ( S1[m] implies S1[m + 1] )
A4: ( ( for f being FinSeq-Location holds (Exec (goto l),s) . f = s . f ) & ( for i being Element of NAT holds (Exec (goto l),s) . i = s . i ) ) by AMI_1:def 13, SCMFSA_2:95;
A5: ( IC (Exec (goto l),s) = IC s & ( for a being Int-Location holds (Exec (goto l),s) . a = s . a ) ) by A1, SCMFSA_2:95;
Y: (ProgramPart s) /. (IC s) = s . (IC s) by AMI_1:150;
assume Comput (ProgramPart s),s,m = s ; :: thesis: S1[m + 1]
hence Comput (ProgramPart s),s,(m + 1) = Following (ProgramPart s),s by AMI_1:14
.= s by A1, A2, A5, A4, SCMFSA_2:86, Y ;
:: thesis: verum
end;
let m be Element of NAT ; :: according to AMI_1:def 20 :: thesis: ( not IC (Comput (ProgramPart s),s,m) in proj1 (ProgramPart s) or not (ProgramPart s) /. (IC (Comput (ProgramPart s),s,m)) = halt SCM+FSA )
A6: S1[ 0 ] by AMI_1:13;
for m being Element of NAT holds S1[m] from NAT_1:sch 1(A6, A3);
then B7: S1[m] ;
Z: (ProgramPart s) /. (IC s) = s . (IC s) by AMI_1:150;
assume IC (Comput (ProgramPart s),s,m) in dom (ProgramPart s) ; :: thesis: not (ProgramPart s) /. (IC (Comput (ProgramPart s),s,m)) = halt SCM+FSA
CurInstr (ProgramPart s),s = goto l by A1, A2, Z;
then X: CurInstr (ProgramPart (Comput (ProgramPart s),s,m)),(Comput (ProgramPart s),s,m) = goto l by B7;
InsCode (goto l) = 6 by SCMFSA_2:47;
then CurInstr (ProgramPart (Comput (ProgramPart s),s,m)),(Comput (ProgramPart s),s,m) <> halt SCM+FSA by X, SCMFSA_2:124;
hence (ProgramPart s) /. (IC (Comput (ProgramPart s),s,m)) <> halt SCM+FSA by AMI_1:145; :: thesis: verum