set I = goto 0;
let W be Instruction of SCMPDS; :: thesis: ( W is halting implies W = goto 0 )
assume A1: W is halting ; :: thesis: W = goto 0
assume A2: goto 0 <> W ; :: thesis: contradiction
per cases ( ex k1 being Integer st W = goto k1 or ex a being Int_position st W = return a or ex a being Int_position ex k1 being Integer st W = saveIC (a,k1) or ex a being Int_position ex k1 being Integer st W = a := k1 or ex a being Int_position ex k1, k2 being Integer st W = (a,k1) := k2 or ex a being Int_position ex k1, k2 being Integer st W = (a,k1) <>0_goto k2 or ex a being Int_position ex k1, k2 being Integer st W = (a,k1) <=0_goto k2 or ex a being Int_position ex k1, k2 being Integer st W = (a,k1) >=0_goto k2 or ex a, b being Int_position ex k1, k2 being Integer st W = AddTo (a,k1,k2) or ex a, b being Int_position ex k1, k2 being Integer st W = AddTo (a,k1,b,k2) or ex a, b being Int_position ex k1, k2 being Integer st W = SubFrom (a,k1,b,k2) or ex a, b being Int_position ex k1, k2 being Integer st W = MultBy (a,k1,b,k2) or ex a, b being Int_position ex k1, k2 being Integer st W = Divide (a,k1,b,k2) or ex a, b being Int_position ex k1, k2 being Integer st W = (a,k1) := (b,k2) ) by Th91;
suppose ex k1 being Integer st W = goto k1 ; :: thesis: contradiction
end;
suppose ex a being Int_position st W = return a ; :: thesis: contradiction
end;
suppose ex a being Int_position ex k1 being Integer st W = saveIC (a,k1) ; :: thesis: contradiction
end;
suppose ex a being Int_position ex k1 being Integer st W = a := k1 ; :: thesis: contradiction
end;
suppose ex a being Int_position ex k1, k2 being Integer st W = (a,k1) := k2 ; :: thesis: contradiction
end;
suppose ex a being Int_position ex k1, k2 being Integer st W = (a,k1) <>0_goto k2 ; :: thesis: contradiction
end;
suppose ex a being Int_position ex k1, k2 being Integer st W = (a,k1) <=0_goto k2 ; :: thesis: contradiction
end;
suppose ex a being Int_position ex k1, k2 being Integer st W = (a,k1) >=0_goto k2 ; :: thesis: contradiction
end;
suppose ex a, b being Int_position ex k1, k2 being Integer st W = AddTo (a,k1,k2) ; :: thesis: contradiction
end;
suppose ex a, b being Int_position ex k1, k2 being Integer st W = AddTo (a,k1,b,k2) ; :: thesis: contradiction
end;
suppose ex a, b being Int_position ex k1, k2 being Integer st W = SubFrom (a,k1,b,k2) ; :: thesis: contradiction
end;
suppose ex a, b being Int_position ex k1, k2 being Integer st W = MultBy (a,k1,b,k2) ; :: thesis: contradiction
end;
suppose ex a, b being Int_position ex k1, k2 being Integer st W = Divide (a,k1,b,k2) ; :: thesis: contradiction
end;
suppose ex a, b being Int_position ex k1, k2 being Integer st W = (a,k1) := (b,k2) ; :: thesis: contradiction
end;
end;