set a = GBP ;
let s be State of SCMPDS; ( s . GBP = 0 implies ( (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . GBP = 0 & (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . (intpos 1) = s . (intpos 2) & (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . (intpos 2) = (s . (intpos 1)) + (s . (intpos 2)) & (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . (intpos 3) = (s . (intpos 3)) - 1 ) )
set t0 = Initialize s;
set t1 = IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s);
set t2 = IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s);
set t3 = IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s);
set t4 = Exec (((GBP,4) := (GBP,2)),(Initialize s));
set a4 = intpos 4;
X0:
Initialize (Initialize s) = Initialize s
;
X1:
IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s) = IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),(Initialize s))
by SCMPDS_5:48;
X2:
IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s) = IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),(Initialize s))
by SCMPDS_5:48;
X3:
IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s) = IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),(Initialize s))
by SCMPDS_5:48;
assume
s . GBP = 0
; ( (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . GBP = 0 & (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . (intpos 1) = s . (intpos 2) & (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . (intpos 2) = (s . (intpos 1)) + (s . (intpos 2)) & (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . (intpos 3) = (s . (intpos 3)) - 1 )
then A1:
(Initialize s) . GBP = 0
by SCMPDS_5:40;
then
DataLoc (((Initialize s) . GBP),4) = intpos (0 + 4)
by SCMP_GCD:5;
then A2: (Exec (((GBP,4) := (GBP,2)),(Initialize s))) . (intpos 4) =
(Initialize s) . (DataLoc (((Initialize s) . GBP),2))
by SCMPDS_2:59
.=
(Initialize s) . (intpos (0 + 2))
by A1, SCMP_GCD:5
.=
s . (intpos 2)
by SCMPDS_5:40
;
0 <> abs (((Initialize s) . GBP) + 4)
by A1, ABSVALUE:def 1;
then
GBP <> DataLoc (((Initialize s) . GBP),4)
by ZFMISC_1:33;
then A3:
(Exec (((GBP,4) := (GBP,2)),(Initialize s))) . GBP = 0
by A1, SCMPDS_2:59;
then A4:
DataLoc (((Exec (((GBP,4) := (GBP,2)),(Initialize s))) . GBP),2) = intpos (0 + 2)
by SCMP_GCD:5;
0 <> abs (((Exec (((GBP,4) := (GBP,2)),(Initialize s))) . GBP) + 2)
by A3, ABSVALUE:def 1;
then A5:
GBP <> DataLoc (((Exec (((GBP,4) := (GBP,2)),(Initialize s))) . GBP),2)
by ZFMISC_1:33;
A6: (IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)) . GBP =
(Exec ((AddTo (GBP,2,GBP,1)),(Exec (((GBP,4) := (GBP,2)),(Initialize s))))) . GBP
by X0, X3, SCMPDS_5:47
.=
0
by A3, A5, SCMPDS_2:61
;
then A7:
DataLoc (((IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)) . GBP),1) = intpos (0 + 1)
by SCMP_GCD:5;
4 <> abs (((Exec (((GBP,4) := (GBP,2)),(Initialize s))) . GBP) + 2)
by A3, ABSVALUE:def 1;
then A8:
intpos 4 <> DataLoc (((Exec (((GBP,4) := (GBP,2)),(Initialize s))) . GBP),2)
by ZFMISC_1:33;
A9: (IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)) . (intpos 4) =
(Exec ((AddTo (GBP,2,GBP,1)),(Exec (((GBP,4) := (GBP,2)),(Initialize s))))) . (intpos 4)
by X0, X3, SCMPDS_5:47
.=
s . (intpos 2)
by A2, A8, SCMPDS_2:61
;
A10: (IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)) . (intpos 1) =
(Exec (((GBP,1) := (GBP,4)),(IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)))) . (intpos 1)
by X2, X3, SCMPDS_5:46
.=
(IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)) . (DataLoc (((IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)) . GBP),4))
by A7, SCMPDS_2:59
.=
s . (intpos 2)
by A6, A9, SCMP_GCD:5
;
3 <> abs (((Exec (((GBP,4) := (GBP,2)),(Initialize s))) . GBP) + 2)
by A3, ABSVALUE:def 1;
then A11:
intpos 3 <> DataLoc (((Exec (((GBP,4) := (GBP,2)),(Initialize s))) . GBP),2)
by ZFMISC_1:33;
2 <> abs (((Initialize s) . GBP) + 4)
by A1, ABSVALUE:def 1;
then
intpos 2 <> DataLoc (((Initialize s) . GBP),4)
by ZFMISC_1:33;
then A12: (Exec (((GBP,4) := (GBP,2)),(Initialize s))) . (intpos 2) =
(Initialize s) . (intpos 2)
by SCMPDS_2:59
.=
s . (intpos 2)
by SCMPDS_5:40
;
1 <> abs (((Initialize s) . GBP) + 4)
by A1, ABSVALUE:def 1;
then
intpos 1 <> DataLoc (((Initialize s) . GBP),4)
by ZFMISC_1:33;
then A13: (Exec (((GBP,4) := (GBP,2)),(Initialize s))) . (intpos 1) =
(Initialize s) . (intpos 1)
by SCMPDS_2:59
.=
s . (intpos 1)
by SCMPDS_5:40
;
3 <> abs (((Initialize s) . GBP) + 4)
by A1, ABSVALUE:def 1;
then
intpos 3 <> DataLoc (((Initialize s) . GBP),4)
by ZFMISC_1:33;
then A14: (Exec (((GBP,4) := (GBP,2)),(Initialize s))) . (intpos 3) =
(Initialize s) . (intpos 3)
by SCMPDS_2:59
.=
s . (intpos 3)
by SCMPDS_5:40
;
0 <> abs (((IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)) . GBP) + 1)
by A6, ABSVALUE:def 1;
then A15:
GBP <> DataLoc (((IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)) . GBP),1)
by ZFMISC_1:33;
A16: (IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)) . GBP =
(Exec (((GBP,1) := (GBP,4)),(IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)))) . GBP
by X2, X3, SCMPDS_5:46
.=
0
by A6, A15, SCMPDS_2:59
;
then A17:
DataLoc (((IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)) . GBP),3) = intpos (0 + 3)
by SCMP_GCD:5;
2 <> abs (((IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)) . GBP) + 1)
by A6, ABSVALUE:def 1;
then A18:
intpos 2 <> DataLoc (((IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)) . GBP),1)
by ZFMISC_1:33;
A19: (IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)) . (intpos 2) =
(Exec ((AddTo (GBP,2,GBP,1)),(Exec (((GBP,4) := (GBP,2)),(Initialize s))))) . (intpos 2)
by X0, X3, SCMPDS_5:47
.=
((Exec (((GBP,4) := (GBP,2)),(Initialize s))) . (intpos 2)) + ((Exec (((GBP,4) := (GBP,2)),(Initialize s))) . (DataLoc (((Exec (((GBP,4) := (GBP,2)),(Initialize s))) . GBP),1)))
by A4, SCMPDS_2:61
.=
(s . (intpos 2)) + (s . (intpos 1))
by A3, A13, A12, SCMP_GCD:5
;
A20: (IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)) . (intpos 2) =
(Exec (((GBP,1) := (GBP,4)),(IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)))) . (intpos 2)
by X2, X3, SCMPDS_5:46
.=
(s . (intpos 2)) + (s . (intpos 1))
by A19, A18, SCMPDS_2:59
;
3 <> abs (((IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)) . GBP) + 1)
by A6, ABSVALUE:def 1;
then A21:
intpos 3 <> DataLoc (((IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)) . GBP),1)
by ZFMISC_1:33;
0 <> abs (((IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)) . GBP) + 3)
by A16, ABSVALUE:def 1;
then A22:
GBP <> DataLoc (((IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)) . GBP),3)
by ZFMISC_1:33;
thus (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . GBP =
(Exec ((AddTo (GBP,3,(- 1))),(IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)))) . GBP
by X1, X2, SCMPDS_5:46
.=
0
by A16, A22, SCMPDS_2:60
; ( (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . (intpos 1) = s . (intpos 2) & (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . (intpos 2) = (s . (intpos 1)) + (s . (intpos 2)) & (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . (intpos 3) = (s . (intpos 3)) - 1 )
1 <> abs (((IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)) . GBP) + 3)
by A16, ABSVALUE:def 1;
then A23:
intpos 1 <> DataLoc (((IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)) . GBP),3)
by ZFMISC_1:33;
thus (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . (intpos 1) =
(Exec ((AddTo (GBP,3,(- 1))),(IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)))) . (intpos 1)
by X1, X2, SCMPDS_5:46
.=
s . (intpos 2)
by A10, A23, SCMPDS_2:60
; ( (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . (intpos 2) = (s . (intpos 1)) + (s . (intpos 2)) & (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . (intpos 3) = (s . (intpos 3)) - 1 )
2 <> abs (((IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)) . GBP) + 3)
by A16, ABSVALUE:def 1;
then A24:
intpos 2 <> DataLoc (((IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)) . GBP),3)
by ZFMISC_1:33;
A25: (IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)) . (intpos 3) =
(Exec ((AddTo (GBP,2,GBP,1)),(Exec (((GBP,4) := (GBP,2)),(Initialize s))))) . (intpos 3)
by X0, X3, SCMPDS_5:47
.=
s . (intpos 3)
by A14, A11, SCMPDS_2:61
;
A26: (IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)) . (intpos 3) =
(Exec (((GBP,1) := (GBP,4)),(IExec ((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))),s)))) . (intpos 3)
by X2, X3, SCMPDS_5:46
.=
s . (intpos 3)
by A25, A21, SCMPDS_2:59
;
thus (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . (intpos 2) =
(Exec ((AddTo (GBP,3,(- 1))),(IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)))) . (intpos 2)
by X1, X2, SCMPDS_5:46
.=
(s . (intpos 1)) + (s . (intpos 2))
by A20, A24, SCMPDS_2:60
; (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . (intpos 3) = (s . (intpos 3)) - 1
thus (IExec ((((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))) ';' (AddTo (GBP,3,(- 1)))),s)) . (intpos 3) =
(Exec ((AddTo (GBP,3,(- 1))),(IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)))) . (intpos 3)
by X1, X2, SCMPDS_5:46
.=
((IExec (((((GBP,4) := (GBP,2)) ';' (AddTo (GBP,2,GBP,1))) ';' ((GBP,1) := (GBP,4))),s)) . (intpos 3)) + (- 1)
by A17, SCMPDS_2:60
.=
(s . (intpos 3)) - 1
by A26
; verum