let s2 be State of ; not ProgramPart (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) halts_on s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))
set m = (IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1));
set s1 = s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)));
A1:
((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))) . (Next (IC s2)) = goto (- 1)
by FUNCT_4:66;
IC s2 <> Next (IC s2)
;
then A2:
((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))) . (IC s2) = goto 1
by FUNCT_4:66;
defpred S1[ Nat] means ( IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),$1) = IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) or IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),$1) = Next (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) );
A3:
dom ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))) = {(IC s2),(Next (IC s2))}
by FUNCT_4:65;
then A4:
Next (IC s2) in dom ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))
by TARSKI:def 2;
( IC SCMPDS <> IC s2 & IC SCMPDS <> Next (IC s2) )
by AMI_1:48;
then
not IC SCMPDS in dom ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))
by A3, TARSKI:def 2;
then A5:
IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) = IC s2
by FUNCT_4:12;
A6:
IC s2 in dom ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))
by A3, TARSKI:def 2;
now let n be
Element of
NAT ;
( ( not IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) = IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) & not IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) = Next (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) ) or ( IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),b1) = IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) & IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),(b1 + 1)) = Next (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) ) or ( IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),b1) = Next (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) & IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),(b1 + 1)) = IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) ) )set Cn =
Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),
n;
assume A7:
(
IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) = IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) or
IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) = Next (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) )
;
( ( IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),b1) = IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) & IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),(b1 + 1)) = Next (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) ) or ( IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),b1) = Next (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) & IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),(b1 + 1)) = IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) ) )per cases
( IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) = IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) or IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) = Next (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) )
by A7;
case A8:
IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) = IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))
;
IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),(n + 1)) = Next (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))))then A9:
CurInstr (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) =
(s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) . (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))))
by AMI_1:54
.=
goto 1
by A6, A2, A5, FUNCT_4:14
;
thus IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),(n + 1)) =
IC (Following (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n))
by AMI_1:14
.=
ICplusConst (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n),1
by A9, SCMPDS_2:66
.=
Next (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))))
by A8, SCMPDS_3:20
;
verum end; case A10:
IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) = Next (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))))
;
IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),(n + 1)) = IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))reconsider i =
IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) as
Element of
NAT by AMI_1:def 4;
A11:
ex
j being
Element of
NAT st
(
j = IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) &
ICplusConst (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n),
(- 1) = abs (j + (- 1)) )
by SCMPDS_2:def 20;
A12:
CurInstr (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) =
(s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) . (Next (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))))
by A10, AMI_1:54
.=
goto (- 1)
by A4, A1, A5, FUNCT_4:14
;
thus IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),(n + 1)) =
IC (Following (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n))
by AMI_1:14
.=
abs ((i + 4) + (- 4))
by A10, A12, A11, SCMPDS_2:66
.=
IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))
by ABSVALUE:def 1
;
verum end; end; end;
then A13:
for n being Element of NAT st S1[n] holds
S1[n + 1]
;
let n be Element of NAT ; AMI_1:def 20 ( not IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) in dom (ProgramPart (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) or not (ProgramPart (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) . (IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n)) = halt SCMPDS )
assume
IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) in dom (ProgramPart (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))))
; not (ProgramPart (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) . (IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n)) = halt SCMPDS
A14:
S1[ 0 ]
by AMI_1:13;
A15:
for n being Element of NAT holds S1[n]
from NAT_1:sch 1(A14, A13);
per cases
( IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) = IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) or IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) = Next (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) )
by A15;
suppose
IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) = IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))
;
not (ProgramPart (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) . (IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n)) = halt SCMPDS then CurInstr (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) =
(s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) . (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))))
by AMI_1:54
.=
goto 1
by A6, A2, A5, FUNCT_4:14
;
then
CurInstr (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) <> halt SCMPDS
by SCMPDS_2:85;
hence
not
(ProgramPart (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) . (IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n)) = halt SCMPDS
by AMI_1:145;
verum end; suppose
IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) = Next (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))))
;
not (ProgramPart (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) . (IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n)) = halt SCMPDS then CurInstr (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) =
(s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))) . (Next (IC (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))))
by AMI_1:54
.=
goto (- 1)
by A4, A1, A5, FUNCT_4:14
;
then
CurInstr (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n) <> halt SCMPDS
by SCMPDS_2:85;
hence
not
(ProgramPart (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1))))) . (IC (Computation (s2 +* ((IC s2),(Next (IC s2)) --> (goto 1),(goto (- 1)))),n)) = halt SCMPDS
by AMI_1:145;
verum end; end;