let s be State of SCMPDS; :: thesis: ( s . (intpos 1) > 0 & s . (intpos 2) > 0 implies ( (IExec (((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2)))))),s)) . (intpos 1) = (s . (intpos 1)) gcd (s . (intpos 2)) & (IExec (((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2)))))),s)) . (intpos 2) = (s . (intpos 1)) gcd (s . (intpos 2)) & (((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))))) is_closed_on s & (((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))))) is_halting_on s ) )
assume A1: ( s . (intpos 1) > 0 & s . (intpos 2) > 0 ) ; :: thesis: ( (IExec (((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2)))))),s)) . (intpos 1) = (s . (intpos 1)) gcd (s . (intpos 2)) & (IExec (((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2)))))),s)) . (intpos 2) = (s . (intpos 1)) gcd (s . (intpos 2)) & (((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))))) is_closed_on s & (((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))))) is_halting_on s )
set t0 = Initialize s;
set t1 = IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s);
set t2 = IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s);
set t3 = Exec ((GBP := 0),(Initialize s));
set a = GBP ;
X0: Initialize s = Initialize (Initialize s) ;
X1: IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s) = IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),(Initialize s)) by SCMPDS_5:48;
X2: IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s) = IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),(Initialize s)) by SCMPDS_5:48;
A2: (Exec ((GBP := 0),(Initialize s))) . (intpos 1) = (Initialize s) . (intpos 1) by AMI_3:52, SCMPDS_2:57
.= s . (intpos 1) by SCMPDS_5:40 ;
A3: (Exec ((GBP := 0),(Initialize s))) . GBP = 0 by SCMPDS_2:57;
then A4: DataLoc (((Exec ((GBP := 0),(Initialize s))) . GBP),3) = intpos (0 + 3) by SCMP_GCD:5;
1 <> abs (((Exec ((GBP := 0),(Initialize s))) . GBP) + 3) by A3, ABSVALUE:def 1;
then A5: intpos 1 <> DataLoc (((Exec ((GBP := 0),(Initialize s))) . GBP),3) by ZFMISC_1:33;
A6: (IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)) . (intpos 1) = (Exec (((GBP,3) := (GBP,1)),(Exec ((GBP := 0),(Initialize s))))) . (intpos 1) by X0, X2, SCMPDS_5:47
.= s . (intpos 1) by A2, A5, SCMPDS_2:59 ;
A7: (Exec ((GBP := 0),(Initialize s))) . (intpos 2) = (Initialize s) . (intpos 2) by AMI_3:52, SCMPDS_2:57
.= s . (intpos 2) by SCMPDS_5:40 ;
A8: (IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)) . (intpos 3) = (Exec (((GBP,3) := (GBP,1)),(Exec ((GBP := 0),(Initialize s))))) . (intpos 3) by X0, X2, SCMPDS_5:47
.= (Exec ((GBP := 0),(Initialize s))) . (DataLoc (((Exec ((GBP := 0),(Initialize s))) . GBP),1)) by A4, SCMPDS_2:59
.= s . (intpos 1) by A3, A2, SCMP_GCD:5 ;
2 <> abs (((Exec ((GBP := 0),(Initialize s))) . GBP) + 3) by A3, ABSVALUE:def 1;
then A9: intpos 2 <> DataLoc (((Exec ((GBP := 0),(Initialize s))) . GBP),3) by ZFMISC_1:33;
A10: (IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)) . (intpos 2) = (Exec (((GBP,3) := (GBP,1)),(Exec ((GBP := 0),(Initialize s))))) . (intpos 2) by X0, X2, SCMPDS_5:47
.= s . (intpos 2) by A7, A9, SCMPDS_2:59 ;
0 <> abs (((Exec ((GBP := 0),(Initialize s))) . GBP) + 3) by A3, ABSVALUE:def 1;
then A11: GBP <> DataLoc (((Exec ((GBP := 0),(Initialize s))) . GBP),3) by ZFMISC_1:33;
A12: (IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)) . GBP = (Exec (((GBP,3) := (GBP,1)),(Exec ((GBP := 0),(Initialize s))))) . GBP by X0, X2, SCMPDS_5:47
.= 0 by A3, A11, SCMPDS_2:59 ;
then A13: DataLoc (((IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)) . GBP),3) = intpos (0 + 3) by SCMP_GCD:5;
0 <> abs (((IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)) . GBP) + 3) by A12, ABSVALUE:def 1;
then A14: GBP <> DataLoc (((IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)) . GBP),3) by ZFMISC_1:33;
A15: (IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s)) . GBP = (Exec ((SubFrom (GBP,3,GBP,2)),(IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)))) . GBP by X1, X2, SCMPDS_5:46
.= 0 by A12, A14, SCMPDS_2:62 ;
1 <> abs (((IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)) . GBP) + 3) by A12, ABSVALUE:def 1;
then A16: intpos 1 <> DataLoc (((IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)) . GBP),3) by ZFMISC_1:33;
A17: (IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s)) . (intpos 1) = (Exec ((SubFrom (GBP,3,GBP,2)),(IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)))) . (intpos 1) by X1, X2, SCMPDS_5:46
.= s . (intpos 1) by A6, A16, SCMPDS_2:62 ;
2 <> abs (((IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)) . GBP) + 3) by A12, ABSVALUE:def 1;
then A18: intpos 2 <> DataLoc (((IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)) . GBP),3) by ZFMISC_1:33;
A19: (IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s)) . (intpos 2) = (Exec ((SubFrom (GBP,3,GBP,2)),(IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)))) . (intpos 2) by X1, X2, SCMPDS_5:46
.= s . (intpos 2) by A10, A18, SCMPDS_2:62 ;
A20: (IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s)) . (intpos 3) = (Exec ((SubFrom (GBP,3,GBP,2)),(IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)))) . (intpos 3) by X1, X2, SCMPDS_5:46
.= ((IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)) . (intpos 3)) - ((IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)) . (DataLoc (((IExec (((GBP := 0) ';' ((GBP,3) := (GBP,1))),s)) . GBP),2))) by A13, SCMPDS_2:62
.= ((IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s)) . (intpos 1)) - ((IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s)) . (intpos 2)) by A12, A10, A8, A17, A19, SCMP_GCD:5 ;
then A21: ( while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2)))) is_closed_on IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s) & while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2)))) is_halting_on IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s) ) by A1, A15, A17, A19, Lm15;
(IExec ((while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))))),(IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s)))) . (intpos 1) = ((IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s)) . (intpos 1)) gcd ((IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s)) . (intpos 2)) by A1, A15, A17, A19, A20, Lm15;
hence (IExec (((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2)))))),s)) . (intpos 1) = (s . (intpos 1)) gcd (s . (intpos 2)) by A17, A19, A21, SCPISORT:8; :: thesis: ( (IExec (((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2)))))),s)) . (intpos 2) = (s . (intpos 1)) gcd (s . (intpos 2)) & (((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))))) is_closed_on s & (((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))))) is_halting_on s )
(IExec ((while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))))),(IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s)))) . (intpos 2) = ((IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s)) . (intpos 1)) gcd ((IExec ((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))),s)) . (intpos 2)) by A1, A15, A17, A19, A20, Lm15;
hence (IExec (((((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2)))))),s)) . (intpos 2) = (s . (intpos 1)) gcd (s . (intpos 2)) by A17, A19, A21, SCPISORT:8; :: thesis: ( (((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))))) is_closed_on s & (((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))))) is_halting_on s )
thus ( (((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))))) is_closed_on s & (((GBP := 0) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))) ';' (while<>0 (GBP,3,(((if>0 (GBP,3,(Load (SubFrom (GBP,1,GBP,2))),(Load (SubFrom (GBP,2,GBP,1))))) ';' ((GBP,3) := (GBP,1))) ';' (SubFrom (GBP,3,GBP,2))))) is_halting_on s ) by A21, SCPISORT:10; :: thesis: verum