let P be Instruction-Sequence of SCMPDS; :: thesis: for s being 0 -started State of SCMPDS
for md, me being Element of NAT st s . (intpos 2) = md & s . (intpos 4) = me & md >= 8 & me >= 8 & s . GBP = 0 holds
( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . GBP = 0 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 1) = s . (intpos 1) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 2) = s . (intpos 2) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 3) = s . (intpos 3) & ( for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) ) & ( s . (intpos md) < s . (intpos me) implies ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = (s . (intpos 5)) - 1 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = (s . (intpos 4)) - 1 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = (s . (intpos 5)) - 1 ) ) & ( s . (intpos md) >= s . (intpos me) implies ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = 0 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = s . (intpos 4) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = s . (intpos 5) ) ) )

set a = GBP ;
let s be 0 -started State of SCMPDS; :: thesis: for md, me being Element of NAT st s . (intpos 2) = md & s . (intpos 4) = me & md >= 8 & me >= 8 & s . GBP = 0 holds
( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . GBP = 0 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 1) = s . (intpos 1) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 2) = s . (intpos 2) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 3) = s . (intpos 3) & ( for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) ) & ( s . (intpos md) < s . (intpos me) implies ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = (s . (intpos 5)) - 1 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = (s . (intpos 4)) - 1 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = (s . (intpos 5)) - 1 ) ) & ( s . (intpos md) >= s . (intpos me) implies ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = 0 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = s . (intpos 4) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = s . (intpos 5) ) ) )

let md, me be Element of NAT ; :: thesis: ( s . (intpos 2) = md & s . (intpos 4) = me & md >= 8 & me >= 8 & s . GBP = 0 implies ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . GBP = 0 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 1) = s . (intpos 1) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 2) = s . (intpos 2) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 3) = s . (intpos 3) & ( for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) ) & ( s . (intpos md) < s . (intpos me) implies ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = (s . (intpos 5)) - 1 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = (s . (intpos 4)) - 1 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = (s . (intpos 5)) - 1 ) ) & ( s . (intpos md) >= s . (intpos me) implies ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = 0 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = s . (intpos 4) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = s . (intpos 5) ) ) ) )

assume that
A1: s . (intpos 2) = md and
A2: s . (intpos 4) = me and
A3: md >= 8 and
A4: me >= 8 and
A5: s . GBP = 0 ; :: thesis: ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . GBP = 0 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 1) = s . (intpos 1) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 2) = s . (intpos 2) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 3) = s . (intpos 3) & ( for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) ) & ( s . (intpos md) < s . (intpos me) implies ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = (s . (intpos 5)) - 1 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = (s . (intpos 4)) - 1 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = (s . (intpos 5)) - 1 ) ) & ( s . (intpos md) >= s . (intpos me) implies ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = 0 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = s . (intpos 4) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = s . (intpos 5) ) ) )

set t0 = s;
set Q0 = P;
set t1 = IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s);
set Q1 = P;
set t2 = IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s);
set t3 = IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s);
set Q2 = P;
set t4 = Exec (((GBP,7) := (GBP,5)),s);
set Q4 = P;
A6: s . GBP = 0 by A5;
A7: DataLoc ((s . GBP),7) = intpos (0 + 7) by A5, SCMP_GCD:1;
then A8: (Exec (((GBP,7) := (GBP,5)),s)) . GBP = 0 by A6, AMI_3:10, SCMPDS_2:47;
then A9: DataLoc (((Exec (((GBP,7) := (GBP,5)),s)) . GBP),5) = intpos (0 + 5) by SCMP_GCD:1;
A10: (Exec (((GBP,7) := (GBP,5)),s)) . (intpos 4) = me by A7, A2, AMI_3:10, SCMPDS_2:47;
A11: (IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)) . (intpos 4) = (Exec ((AddTo (GBP,5,(- 1))),(Exec (((GBP,7) := (GBP,5)),s)))) . (intpos 4) by SCMPDS_5:42
.= me by A10, A9, AMI_3:10, SCMPDS_2:48 ;
then A12: DataLoc (((IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)) . (intpos 4)),0) = intpos (me + 0) by SCMP_GCD:1;
A13: (IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)) . GBP = (Exec ((AddTo (GBP,5,(- 1))),(Exec (((GBP,7) := (GBP,5)),s)))) . GBP by SCMPDS_5:42
.= 0 by A8, A9, AMI_3:10, SCMPDS_2:48 ;
then A14: DataLoc (((IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)) . GBP),6) = intpos (0 + 6) by SCMP_GCD:1;
A15: (Exec (((GBP,7) := (GBP,5)),s)) . (intpos 2) = md by A7, A1, AMI_3:10, SCMPDS_2:47;
A16: (IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)) . (intpos 2) = (Exec ((AddTo (GBP,5,(- 1))),(Exec (((GBP,7) := (GBP,5)),s)))) . (intpos 2) by SCMPDS_5:42
.= md by A15, A9, AMI_3:10, SCMPDS_2:48 ;
A18: (Exec (((GBP,7) := (GBP,5)),s)) . (intpos 5) = s . (intpos 5) by A7, AMI_3:10, SCMPDS_2:47;
set t01 = Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)));
set ii7 = (GBP,5) := 0;
set t5 = Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))));
A19: (IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (intpos 2) = (Exec (((GBP,6) := ((intpos 4),0)),(IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)))) . (intpos 2) by SCMPDS_5:41
.= md by A16, A14, AMI_3:10, SCMPDS_2:47 ;
A20: (IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . GBP = (Exec (((GBP,6) := ((intpos 4),0)),(IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)))) . GBP by SCMPDS_5:41
.= 0 by A13, A14, AMI_3:10, SCMPDS_2:47 ;
then A21: DataLoc (((IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . GBP),6) = intpos (0 + 6) by SCMP_GCD:1;
DataLoc ((s . GBP),5) = intpos (0 + 5) by A6, SCMP_GCD:1;
then A22: (Exec (((GBP,7) := (GBP,5)),s)) . (intpos 7) = s . (intpos 5) by A7, SCMPDS_2:47;
A23: (IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)) . (intpos 7) = (Exec ((AddTo (GBP,5,(- 1))),(Exec (((GBP,7) := (GBP,5)),s)))) . (intpos 7) by SCMPDS_5:42
.= s . (intpos 5) by A22, A9, AMI_3:10, SCMPDS_2:48 ;
A24: (IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (intpos 7) = (Exec (((GBP,6) := ((intpos 4),0)),(IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)))) . (intpos 7) by SCMPDS_5:41
.= s . (intpos 5) by A23, A14, AMI_3:10, SCMPDS_2:47 ;
(IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . (intpos 7) = (Exec ((SubFrom (GBP,6,(intpos 2),0)),(IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)))) . (intpos 7) by SCMPDS_5:41
.= s . (intpos 5) by A24, A21, AMI_3:10, SCMPDS_2:50 ;
then A25: (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (intpos 7) = s . (intpos 5) by SCMPDS_5:15;
(IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . (intpos 2) = (Exec ((SubFrom (GBP,6,(intpos 2),0)),(IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)))) . (intpos 2) by SCMPDS_5:41
.= md by A19, A21, AMI_3:10, SCMPDS_2:50 ;
then A26: (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (intpos 2) = s . (intpos 2) by A1, SCMPDS_5:15;
A27: now
let i be Element of NAT ; :: thesis: ( i >= 8 implies (Exec (((GBP,7) := (GBP,5)),s)) . (intpos i) = s . (intpos i) )
assume i >= 8 ; :: thesis: (Exec (((GBP,7) := (GBP,5)),s)) . (intpos i) = s . (intpos i)
then i > 7 by XXREAL_0:2;
hence (Exec (((GBP,7) := (GBP,5)),s)) . (intpos i) = s . (intpos i) by A7, AMI_3:10, SCMPDS_2:47
.= s . (intpos i) ;
:: thesis: verum
end;
A28: now
let i be Element of NAT ; :: thesis: ( i >= 8 implies (IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)) . (intpos i) = s . (intpos i) )
assume A29: i >= 8 ; :: thesis: (IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)) . (intpos i) = s . (intpos i)
then A30: i > 5 by XXREAL_0:2;
thus (IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)) . (intpos i) = (Exec ((AddTo (GBP,5,(- 1))),(Exec (((GBP,7) := (GBP,5)),s)))) . (intpos i) by SCMPDS_5:42
.= (Exec (((GBP,7) := (GBP,5)),s)) . (intpos i) by A9, A30, AMI_3:10, SCMPDS_2:48
.= s . (intpos i) by A27, A29 ; :: thesis: verum
end;
A31: now
let i be Element of NAT ; :: thesis: ( i >= 8 implies (IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (intpos i) = s . (intpos i) )
assume A32: i >= 8 ; :: thesis: (IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (intpos i) = s . (intpos i)
then A33: i > 6 by XXREAL_0:2;
thus (IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (intpos i) = (Exec (((GBP,6) := ((intpos 4),0)),(IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)))) . (intpos i) by SCMPDS_5:41
.= (IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)) . (intpos i) by A14, A33, AMI_3:10, SCMPDS_2:47
.= s . (intpos i) by A28, A32 ; :: thesis: verum
end;
A34: now
let i be Element of NAT ; :: thesis: ( i >= 8 implies (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . (intpos i) = s . (intpos i) )
assume A35: i >= 8 ; :: thesis: (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . (intpos i) = s . (intpos i)
then A36: i > 6 by XXREAL_0:2;
thus (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . (intpos i) = (Exec ((SubFrom (GBP,6,(intpos 2),0)),(IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)))) . (intpos i) by SCMPDS_5:41
.= (IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (intpos i) by A21, A36, AMI_3:10, SCMPDS_2:50
.= s . (intpos i) by A31, A35 ; :: thesis: verum
end;
A37: (Exec (((GBP,7) := (GBP,5)),s)) . (intpos 3) = s . (intpos 3) by A7, AMI_3:10, SCMPDS_2:47;
A38: (IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)) . (intpos 3) = (Exec ((AddTo (GBP,5,(- 1))),(Exec (((GBP,7) := (GBP,5)),s)))) . (intpos 3) by SCMPDS_5:42
.= s . (intpos 3) by A37, A9, AMI_3:10, SCMPDS_2:48 ;
A39: (Exec (((GBP,7) := (GBP,5)),s)) . (intpos 1) = s . (intpos 1) by A7, AMI_3:10, SCMPDS_2:47;
A40: (IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)) . (intpos 1) = (Exec ((AddTo (GBP,5,(- 1))),(Exec (((GBP,7) := (GBP,5)),s)))) . (intpos 1) by SCMPDS_5:42
.= s . (intpos 1) by A39, A9, AMI_3:10, SCMPDS_2:48 ;
A41: (IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (intpos 1) = (Exec (((GBP,6) := ((intpos 4),0)),(IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)))) . (intpos 1) by SCMPDS_5:41
.= s . (intpos 1) by A40, A14, AMI_3:10, SCMPDS_2:47 ;
(IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . (intpos 1) = (Exec ((SubFrom (GBP,6,(intpos 2),0)),(IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)))) . (intpos 1) by SCMPDS_5:41
.= s . (intpos 1) by A41, A21, AMI_3:10, SCMPDS_2:50 ;
then A42: (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (intpos 1) = s . (intpos 1) by SCMPDS_5:15;
A43: (IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (intpos 3) = (Exec (((GBP,6) := ((intpos 4),0)),(IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)))) . (intpos 3) by SCMPDS_5:41
.= s . (intpos 3) by A38, A14, AMI_3:10, SCMPDS_2:47 ;
(IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . (intpos 3) = (Exec ((SubFrom (GBP,6,(intpos 2),0)),(IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)))) . (intpos 3) by SCMPDS_5:41
.= s . (intpos 3) by A43, A21, AMI_3:10, SCMPDS_2:50 ;
then A44: (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (intpos 3) = s . (intpos 3) by SCMPDS_5:15;
A45: (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . GBP = (Exec ((SubFrom (GBP,6,(intpos 2),0)),(IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)))) . GBP by SCMPDS_5:41
.= 0 by A20, A21, AMI_3:10, SCMPDS_2:50 ;
then A46: (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP = 0 by SCMPDS_5:15;
then A47: DataLoc (((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP),5) = intpos (0 + 5) by SCMP_GCD:1;
intpos 3 <> DataLoc (((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP),4) by A46, AMI_3:10, SCMP_GCD:1;
then A48: (Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos 3) = s . (intpos 3) by A44, SCMPDS_2:48;
intpos 2 <> DataLoc (((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP),4) by A46, AMI_3:10, SCMP_GCD:1;
then A49: (Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos 2) = s . (intpos 2) by A26, SCMPDS_2:48;
GBP <> DataLoc (((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP),4) by A46, AMI_3:10, SCMP_GCD:1;
then A50: (Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . GBP = 0 by A46, SCMPDS_2:48;
then A51: DataLoc (((Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . GBP),7) = intpos (0 + 7) by SCMP_GCD:1;
A52: (IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (intpos 6) = (Exec (((GBP,6) := ((intpos 4),0)),(IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)))) . (intpos 6) by SCMPDS_5:41
.= (IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)) . (intpos me) by A14, A12, SCMPDS_2:47
.= s . (intpos me) by A4, A28 ;
(IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . (intpos 6) = (Exec ((SubFrom (GBP,6,(intpos 2),0)),(IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)))) . (intpos 6) by SCMPDS_5:41
.= ((IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (intpos 6)) - ((IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (DataLoc (((IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (intpos 2)),0))) by A21, SCMPDS_2:50
.= ((IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (intpos 6)) - ((IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (intpos (md + 0))) by A19, SCMP_GCD:1
.= (s . (intpos me)) - (s . (intpos md)) by A3, A52, A31 ;
then A53: (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . (DataLoc (((IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . GBP),6)) = (s . (intpos me)) - (s . (intpos md)) by A45, SCMP_GCD:1;
intpos 1 <> DataLoc (((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP),4) by A46, AMI_3:10, SCMP_GCD:1;
then A54: (Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos 1) = s . (intpos 1) by A42, SCMPDS_2:48;
A56: now
per cases ( (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (DataLoc (((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP),6)) <= 0 or (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (DataLoc (((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP),6)) > 0 ) ;
suppose A57: (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (DataLoc (((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP),6)) <= 0 ; :: thesis: ( (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . GBP = 0 & (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 1) = s . (intpos 1) & (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 2) = s . (intpos 2) & (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 3) = s . (intpos 3) & ( for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) ) )

hence (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . GBP = (IExec ((Load ((GBP,5) := 0)),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . GBP by SCMPDS_6:74
.= (Exec (((GBP,5) := 0),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . GBP by SCMPDS_5:40
.= 0 by A46, A47, AMI_3:10, SCMPDS_2:46 ;
:: thesis: ( (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 1) = s . (intpos 1) & (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 2) = s . (intpos 2) & (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 3) = s . (intpos 3) & ( for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) ) )

thus (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 1) = (IExec ((Load ((GBP,5) := 0)),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 1) by A57, SCMPDS_6:74
.= (Exec (((GBP,5) := 0),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos 1) by SCMPDS_5:40
.= s . (intpos 1) by A42, A47, AMI_3:10, SCMPDS_2:46 ; :: thesis: ( (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 2) = s . (intpos 2) & (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 3) = s . (intpos 3) & ( for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) ) )

thus (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 2) = (IExec ((Load ((GBP,5) := 0)),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 2) by A57, SCMPDS_6:74
.= (Exec (((GBP,5) := 0),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos 2) by SCMPDS_5:40
.= s . (intpos 2) by A26, A47, AMI_3:10, SCMPDS_2:46 ; :: thesis: ( (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 3) = s . (intpos 3) & ( for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) ) )

thus (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 3) = (IExec ((Load ((GBP,5) := 0)),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 3) by A57, SCMPDS_6:74
.= (Exec (((GBP,5) := 0),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos 3) by SCMPDS_5:40
.= s . (intpos 3) by A44, A47, AMI_3:10, SCMPDS_2:46 ; :: thesis: for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i)

let i be Element of NAT ; :: thesis: ( i >= 8 implies (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) )
assume A58: i >= 8 ; :: thesis: (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i)
then A59: i > 5 by XXREAL_0:2;
thus (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos i) by SCMPDS_5:35
.= (IExec ((Load ((GBP,5) := 0)),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos i) by A57, SCMPDS_6:74
.= (Exec (((GBP,5) := 0),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos i) by SCMPDS_5:40
.= (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (intpos i) by A47, A59, AMI_3:10, SCMPDS_2:46
.= (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . (intpos i) by SCMPDS_5:15
.= s . (intpos i) by A34, A58 ; :: thesis: verum
end;
suppose A60: (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (DataLoc (((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP),6)) > 0 ; :: thesis: ( (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . GBP = 0 & (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 1) = s . (intpos 1) & (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 2) = s . (intpos 2) & (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 3) = s . (intpos 3) & ( for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) ) )

thus (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . GBP = (IExec (((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . GBP by A60, SCMPDS_6:73
.= (Exec ((AddTo (GBP,7,(- 1))),(Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))))) . GBP by SCMPDS_5:42
.= 0 by A50, A51, AMI_3:10, SCMPDS_2:48 ; :: thesis: ( (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 1) = s . (intpos 1) & (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 2) = s . (intpos 2) & (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 3) = s . (intpos 3) & ( for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) ) )

thus (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 1) = (IExec (((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 1) by A60, SCMPDS_6:73
.= (Exec ((AddTo (GBP,7,(- 1))),(Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))))) . (intpos 1) by SCMPDS_5:42
.= s . (intpos 1) by A54, A51, AMI_3:10, SCMPDS_2:48 ; :: thesis: ( (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 2) = s . (intpos 2) & (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 3) = s . (intpos 3) & ( for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) ) )

thus (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 2) = (IExec (((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 2) by A60, SCMPDS_6:73
.= (Exec ((AddTo (GBP,7,(- 1))),(Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))))) . (intpos 2) by SCMPDS_5:42
.= s . (intpos 2) by A49, A51, AMI_3:10, SCMPDS_2:48 ; :: thesis: ( (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 3) = s . (intpos 3) & ( for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) ) )

thus (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 3) = (IExec (((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 3) by A60, SCMPDS_6:73
.= (Exec ((AddTo (GBP,7,(- 1))),(Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))))) . (intpos 3) by SCMPDS_5:42
.= s . (intpos 3) by A48, A51, AMI_3:10, SCMPDS_2:48 ; :: thesis: for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i)

let i be Element of NAT ; :: thesis: ( i >= 8 implies (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) )
assume A61: i >= 8 ; :: thesis: (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i)
then A62: i > 7 by XXREAL_0:2;
i > 4 by A61, XXREAL_0:2;
then A63: intpos i <> DataLoc (((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP),4) by A46, AMI_3:10, SCMP_GCD:1;
thus (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos i) by SCMPDS_5:35
.= (IExec (((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos i) by A60, SCMPDS_6:73
.= (Exec ((AddTo (GBP,7,(- 1))),(Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))))) . (intpos i) by SCMPDS_5:42
.= (Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos i) by A51, A62, AMI_3:10, SCMPDS_2:48
.= (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (intpos i) by A63, SCMPDS_2:48
.= (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . (intpos i) by SCMPDS_5:15
.= s . (intpos i) by A34, A61 ; :: thesis: verum
end;
end;
end;
hence ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . GBP = 0 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 1) = s . (intpos 1) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 2) = s . (intpos 2) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 3) = s . (intpos 3) ) by SCMPDS_5:35; :: thesis: ( ( for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) ) & ( s . (intpos md) < s . (intpos me) implies ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = (s . (intpos 5)) - 1 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = (s . (intpos 4)) - 1 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = (s . (intpos 5)) - 1 ) ) & ( s . (intpos md) >= s . (intpos me) implies ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = 0 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = s . (intpos 4) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = s . (intpos 5) ) ) )

thus for i being Element of NAT st i >= 8 holds
(IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos i) = s . (intpos i) by A56; :: thesis: ( ( s . (intpos md) < s . (intpos me) implies ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = (s . (intpos 5)) - 1 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = (s . (intpos 4)) - 1 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = (s . (intpos 5)) - 1 ) ) & ( s . (intpos md) >= s . (intpos me) implies ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = 0 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = s . (intpos 4) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = s . (intpos 5) ) ) )
A64: (IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)) . (intpos 5) = (Exec ((AddTo (GBP,5,(- 1))),(Exec (((GBP,7) := (GBP,5)),s)))) . (intpos 5) by SCMPDS_5:42
.= ((Exec (((GBP,7) := (GBP,5)),s)) . (intpos 5)) + (- 1) by A9, SCMPDS_2:48
.= (s . (intpos 5)) - 1 by A18 ;
A65: (IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (intpos 5) = (Exec (((GBP,6) := ((intpos 4),0)),(IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)))) . (intpos 5) by SCMPDS_5:41
.= (s . (intpos 5)) - 1 by A64, A14, AMI_3:10, SCMPDS_2:47 ;
(IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . (intpos 5) = (Exec ((SubFrom (GBP,6,(intpos 2),0)),(IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)))) . (intpos 5) by SCMPDS_5:41
.= (s . (intpos 5)) - 1 by A65, A21, AMI_3:10, SCMPDS_2:50 ;
then A66: (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (intpos 5) = (s . (intpos 5)) - 1 by SCMPDS_5:15;
A67: (IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)) . (intpos 4) = (Exec (((GBP,6) := ((intpos 4),0)),(IExec ((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))),P,s)))) . (intpos 4) by SCMPDS_5:41
.= me by A11, A14, AMI_3:10, SCMPDS_2:47 ;
(IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . (intpos 4) = (Exec ((SubFrom (GBP,6,(intpos 2),0)),(IExec (((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))),P,s)))) . (intpos 4) by SCMPDS_5:41
.= me by A67, A21, AMI_3:10, SCMPDS_2:50 ;
then A68: (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (intpos 4) = s . (intpos 4) by A2, SCMPDS_5:15;
A69: DataLoc (((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP),4) = intpos (0 + 4) by A46, SCMP_GCD:1;
C71: (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (DataLoc (((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP),6)) = (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (DataLoc (((IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . GBP),6)) by SCMPDS_5:15
.= (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . (DataLoc (((IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . GBP),6)) by SCMPDS_5:15 ;
hereby :: thesis: ( s . (intpos md) >= s . (intpos me) implies ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = 0 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = s . (intpos 4) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = s . (intpos 5) ) )
A70: intpos 5 <> DataLoc (((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP),4) by A46, AMI_3:10, SCMP_GCD:1;
assume s . (intpos md) < s . (intpos me) ; :: thesis: ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = (s . (intpos 5)) - 1 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = (s . (intpos 4)) - 1 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = (s . (intpos 5)) - 1 )
then B71: 0 < (s . (intpos me)) - (s . (intpos md)) by XREAL_1:50;
C71: (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (DataLoc (((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP),6)) = (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (DataLoc (((IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . GBP),6)) by SCMPDS_5:15
.= (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . (DataLoc (((IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)) . GBP),6)) by SCMPDS_5:15 ;
thus (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos 5) by SCMPDS_5:35
.= (IExec (((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),P,(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos 5) by A53, B71, C71, SCMPDS_6:73
.= (Exec ((AddTo (GBP,7,(- 1))),(Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))))) . (intpos 5) by SCMPDS_5:42
.= (Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos 5) by A51, AMI_3:10, SCMPDS_2:48
.= (s . (intpos 5)) - 1 by A66, A70, SCMPDS_2:48 ; :: thesis: ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = (s . (intpos 4)) - 1 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = (s . (intpos 5)) - 1 )
thus (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))))) . (intpos 4) by SCMPDS_5:35
.= (IExec (((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),P,(Initialize (Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))))) . (intpos 4) by A53, C71, B71, SCMPDS_6:73
.= (Exec ((AddTo (GBP,7,(- 1))),(Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))))) . (intpos 4) by SCMPDS_5:42
.= (Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos 4) by A51, AMI_3:10, SCMPDS_2:48
.= ((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . (intpos 4)) + (- 1) by A69, SCMPDS_2:48
.= (s . (intpos 4)) - 1 by A68 ; :: thesis: (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = (s . (intpos 5)) - 1
A72: intpos 7 <> DataLoc (((Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))) . GBP),4) by A46, AMI_3:10, SCMP_GCD:1;
thus (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 7) by SCMPDS_5:35
.= (IExec (((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 7) by A53, C71, B71, SCMPDS_6:73
.= (Exec ((AddTo (GBP,7,(- 1))),(Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))))) . (intpos 7) by SCMPDS_5:42
.= ((Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos 7)) + (- 1) by A51, SCMPDS_2:48
.= ((Exec ((AddTo (GBP,4,(- 1))),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos 7)) - 1
.= (s . (intpos 5)) - 1 by A25, A72, SCMPDS_2:48 ; :: thesis: verum
end;
assume s . (intpos md) >= s . (intpos me) ; :: thesis: ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = 0 & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = s . (intpos 4) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = s . (intpos 5) )
then B73: (s . (intpos me)) - (s . (intpos md)) <= 0 by XREAL_1:47;
thus (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 5) = (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 5) by SCMPDS_5:35
.= (IExec ((Load ((GBP,5) := 0)),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 5) by A53, C71, B73, SCMPDS_6:74
.= (Exec (((GBP,5) := 0),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos 5) by SCMPDS_5:40
.= 0 by A47, SCMPDS_2:46 ; :: thesis: ( (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = s . (intpos 4) & (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = s . (intpos 5) )
thus (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 4) = (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 4) by SCMPDS_5:35
.= (IExec ((Load ((GBP,5) := 0)),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 4) by A53, C71, B73, SCMPDS_6:74
.= (Exec (((GBP,5) := 0),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos 4) by SCMPDS_5:40
.= s . (intpos 4) by A47, A68, AMI_3:10, SCMPDS_2:46 ; :: thesis: (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = s . (intpos 5)
thus (IExec (((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))) ';' (if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0))))),P,s)) . (intpos 7) = (IExec ((if>0 (GBP,6,((AddTo (GBP,4,(- 1))) ';' (AddTo (GBP,7,(- 1)))),(Load ((GBP,5) := 0)))),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 7) by SCMPDS_5:35
.= (IExec ((Load ((GBP,5) := 0)),P,(Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s))))) . (intpos 7) by A53, C71, B73, SCMPDS_6:74
.= (Exec (((GBP,5) := 0),(Initialize (Initialize (IExec ((((((GBP,7) := (GBP,5)) ';' (AddTo (GBP,5,(- 1)))) ';' ((GBP,6) := ((intpos 4),0))) ';' (SubFrom (GBP,6,(intpos 2),0))),P,s)))))) . (intpos 7) by SCMPDS_5:40
.= s . (intpos 5) by A25, A47, AMI_3:10, SCMPDS_2:46 ; :: thesis: verum