let s be State of SCMPDS ; :: thesis: for i being Instruction of SCMPDS
for l being Element of NAT holds (Exec i,s) . l = s . l

let i be Instruction of SCMPDS ; :: thesis: for l being Element of NAT holds (Exec i,s) . l = s . l
let l be Element of NAT ; :: thesis: (Exec i,s) . l = s . l
reconsider c = i as Element of SCMPDS-Instr ;
reconsider S = s as Element of product SCMPDS-OK by PBOOLE:155;
reconsider l9 = l as Element of NAT ;
now
per cases ( c in { [0 ,{} ,<*k1*>] where k1 is Element of INT : verum } or c in { [1,{} ,<*d1*>] where d1 is Element of SCM-Data-Loc : verum } or c in { [I1,{} ,<*d2,k2*>] where I1 is Element of Segm 14, d2 is Element of SCM-Data-Loc , k2 is Element of INT : I1 in {2,3} } or c in { [I2,{} ,<*d3,k3,k4*>] where I2 is Element of Segm 14, d3 is Element of SCM-Data-Loc , k3, k4 is Element of INT : I2 in {4,5,6,7,8} } or c in { [I3,{} ,<*d4,d5,k5,k6*>] where I3 is Element of Segm 14, d4, d5 is Element of SCM-Data-Loc , k5, k6 is Element of INT : I3 in {9,10,11,12,13} } ) by Lm1;
case c in { [0 ,{} ,<*k1*>] where k1 is Element of INT : verum } ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
then ex k1 being Element of INT st c = [0 ,{} ,<*k1*>] ;
hence (SCM-Exec-Res c,S) . l9 = (SCM-Chg S,(jump_address S,(c const_INT ))) . l9 by SCMPDS_1:def 24
.= S . l9 by SCMPDS_1:28 ;
:: thesis: verum
end;
case A1: c in { [1,{} ,<*d1*>] where d1 is Element of SCM-Data-Loc : verum } ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
set SS = SCM-Chg S,(c address_1 ),(S . (Address_Add S,(c address_1 ),RetSP ));
ex d1 being Element of SCM-Data-Loc st c = [1,{} ,<*d1*>] by A1;
hence (SCM-Exec-Res c,S) . l9 = (SCM-Chg (SCM-Chg S,(c address_1 ),(S . (Address_Add S,(c address_1 ),RetSP ))),(PopInstrLoc S,(Address_Add S,(c address_1 ),RetIC ))) . l9 by SCMPDS_1:def 24
.= (SCM-Chg S,(c address_1 ),(S . (Address_Add S,(c address_1 ),RetSP ))) . l9 by SCMPDS_1:28
.= S . l9 by SCMPDS_1:32 ;
:: thesis: verum
end;
case A2: c in { [I1,{} ,<*d2,k2*>] where I1 is Element of Segm 14, d2 is Element of SCM-Data-Loc , k2 is Element of INT : I1 in {2,3} } ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
set SS = SCM-Chg S,(c P21address ),(c P22const );
consider I1 being Element of Segm 14, d1 being Element of SCM-Data-Loc , k1 being Element of INT such that
A3: c = [I1,{} ,<*d1,k1*>] and
A4: I1 in {2,3} by A2;
now
per cases ( I1 = 2 or I1 = 3 ) by A4, TARSKI:def 2;
case I1 = 2 ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
hence (SCM-Exec-Res c,S) . l9 = (SCM-Chg (SCM-Chg S,(c P21address ),(c P22const )),(succ (IC S))) . l9 by A3, SCMPDS_1:def 24
.= (SCM-Chg S,(c P21address ),(c P22const )) . l9 by SCMPDS_1:28
.= S . l9 by SCMPDS_1:32 ;
:: thesis: verum
end;
case A5: I1 = 3 ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
set SS = SCM-Chg S,(Address_Add S,(c P21address ),(c P22const )),(IC S);
thus (SCM-Exec-Res c,S) . l9 = (SCM-Chg (SCM-Chg S,(Address_Add S,(c P21address ),(c P22const )),(IC S)),(succ (IC S))) . l9 by A3, A5, SCMPDS_1:def 24
.= (SCM-Chg S,(Address_Add S,(c P21address ),(c P22const )),(IC S)) . l9 by SCMPDS_1:28
.= S . l9 by SCMPDS_1:32 ; :: thesis: verum
end;
end;
end;
hence (SCM-Exec-Res c,S) . l9 = S . l9 ; :: thesis: verum
end;
case c in { [I2,{} ,<*d3,k3,k4*>] where I2 is Element of Segm 14, d3 is Element of SCM-Data-Loc , k3, k4 is Element of INT : I2 in {4,5,6,7,8} } ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
then consider I1 being Element of Segm 14, d1 being Element of SCM-Data-Loc , k1, k2 being Element of INT such that
A6: c = [I1,{} ,<*d1,k1,k2*>] and
A7: I1 in {4,5,6,7,8} ;
now
per cases ( I1 = 4 or I1 = 5 or I1 = 6 or I1 = 7 or I1 = 8 ) by A7, ENUMSET1:def 3;
case I1 = 4 ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
hence (SCM-Exec-Res c,S) . l9 = (SCM-Chg S,(IFEQ (S . (Address_Add S,(c P31address ),(c P32const ))),0 ,(succ (IC S)),(jump_address S,(c P33const )))) . l9 by A6, SCMPDS_1:def 24
.= S . l9 by SCMPDS_1:28 ;
:: thesis: verum
end;
case I1 = 5 ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
hence (SCM-Exec-Res c,S) . l9 = (SCM-Chg S,(IFGT (S . (Address_Add S,(c P31address ),(c P32const ))),0 ,(succ (IC S)),(jump_address S,(c P33const )))) . l9 by A6, SCMPDS_1:def 24
.= S . l9 by SCMPDS_1:28 ;
:: thesis: verum
end;
case I1 = 6 ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
hence (SCM-Exec-Res c,S) . l9 = (SCM-Chg S,(IFGT 0 ,(S . (Address_Add S,(c P31address ),(c P32const ))),(succ (IC S)),(jump_address S,(c P33const )))) . l9 by A6, SCMPDS_1:def 24
.= S . l9 by SCMPDS_1:28 ;
:: thesis: verum
end;
case A8: I1 = 7 ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
set SS = SCM-Chg S,(Address_Add S,(c P31address ),(c P32const )),(c P33const );
thus (SCM-Exec-Res c,S) . l9 = (SCM-Chg (SCM-Chg S,(Address_Add S,(c P31address ),(c P32const )),(c P33const )),(succ (IC S))) . l9 by A6, A8, SCMPDS_1:def 24
.= (SCM-Chg S,(Address_Add S,(c P31address ),(c P32const )),(c P33const )) . l9 by SCMPDS_1:28
.= S . l9 by SCMPDS_1:32 ; :: thesis: verum
end;
case A9: I1 = 8 ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
set SS = SCM-Chg S,(Address_Add S,(c P31address ),(c P32const )),((S . (Address_Add S,(c P31address ),(c P32const ))) + (c P33const ));
thus (SCM-Exec-Res c,S) . l9 = (SCM-Chg (SCM-Chg S,(Address_Add S,(c P31address ),(c P32const )),((S . (Address_Add S,(c P31address ),(c P32const ))) + (c P33const ))),(succ (IC S))) . l9 by A6, A9, SCMPDS_1:def 24
.= (SCM-Chg S,(Address_Add S,(c P31address ),(c P32const )),((S . (Address_Add S,(c P31address ),(c P32const ))) + (c P33const ))) . l9 by SCMPDS_1:28
.= S . l9 by SCMPDS_1:32 ; :: thesis: verum
end;
end;
end;
hence (SCM-Exec-Res c,S) . l9 = S . l9 ; :: thesis: verum
end;
case c in { [I3,{} ,<*d4,d5,k5,k6*>] where I3 is Element of Segm 14, d4, d5 is Element of SCM-Data-Loc , k5, k6 is Element of INT : I3 in {9,10,11,12,13} } ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
then consider I1 being Element of Segm 14, d1, d2 being Element of SCM-Data-Loc , k1, k2 being Element of INT such that
A10: c = [I1,{} ,<*d1,d2,k1,k2*>] and
A11: I1 in {9,10,11,12,13} ;
now
per cases ( I1 = 9 or I1 = 10 or I1 = 11 or I1 = 12 or I1 = 13 ) by A11, ENUMSET1:def 3;
case A12: I1 = 9 ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
set SS = SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),((S . (Address_Add S,(c P41address ),(c P43const ))) + (S . (Address_Add S,(c P42address ),(c P44const ))));
thus (SCM-Exec-Res c,S) . l9 = (SCM-Chg (SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),((S . (Address_Add S,(c P41address ),(c P43const ))) + (S . (Address_Add S,(c P42address ),(c P44const ))))),(succ (IC S))) . l9 by A10, A12, SCMPDS_1:def 24
.= (SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),((S . (Address_Add S,(c P41address ),(c P43const ))) + (S . (Address_Add S,(c P42address ),(c P44const ))))) . l9 by SCMPDS_1:28
.= S . l9 by SCMPDS_1:32 ; :: thesis: verum
end;
case A13: I1 = 10 ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
set SS = SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),((S . (Address_Add S,(c P41address ),(c P43const ))) - (S . (Address_Add S,(c P42address ),(c P44const ))));
thus (SCM-Exec-Res c,S) . l9 = (SCM-Chg (SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),((S . (Address_Add S,(c P41address ),(c P43const ))) - (S . (Address_Add S,(c P42address ),(c P44const ))))),(succ (IC S))) . l9 by A10, A13, SCMPDS_1:def 24
.= (SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),((S . (Address_Add S,(c P41address ),(c P43const ))) - (S . (Address_Add S,(c P42address ),(c P44const ))))) . l9 by SCMPDS_1:28
.= S . l9 by SCMPDS_1:32 ; :: thesis: verum
end;
case A14: I1 = 11 ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
set SS = SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),((S . (Address_Add S,(c P41address ),(c P43const ))) * (S . (Address_Add S,(c P42address ),(c P44const ))));
thus (SCM-Exec-Res c,S) . l9 = (SCM-Chg (SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),((S . (Address_Add S,(c P41address ),(c P43const ))) * (S . (Address_Add S,(c P42address ),(c P44const ))))),(succ (IC S))) . l9 by A10, A14, SCMPDS_1:def 24
.= (SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),((S . (Address_Add S,(c P41address ),(c P43const ))) * (S . (Address_Add S,(c P42address ),(c P44const ))))) . l9 by SCMPDS_1:28
.= S . l9 by SCMPDS_1:32 ; :: thesis: verum
end;
case A15: I1 = 12 ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
set SA = SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),((S . (Address_Add S,(c P41address ),(c P43const ))) div (S . (Address_Add S,(c P42address ),(c P44const ))));
set SB = SCM-Chg (SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),((S . (Address_Add S,(c P41address ),(c P43const ))) div (S . (Address_Add S,(c P42address ),(c P44const ))))),(Address_Add S,(c P42address ),(c P44const )),((S . (Address_Add S,(c P41address ),(c P43const ))) mod (S . (Address_Add S,(c P42address ),(c P44const ))));
thus (SCM-Exec-Res c,S) . l9 = (SCM-Chg (SCM-Chg (SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),((S . (Address_Add S,(c P41address ),(c P43const ))) div (S . (Address_Add S,(c P42address ),(c P44const ))))),(Address_Add S,(c P42address ),(c P44const )),((S . (Address_Add S,(c P41address ),(c P43const ))) mod (S . (Address_Add S,(c P42address ),(c P44const ))))),(succ (IC S))) . l9 by A10, A15, SCMPDS_1:def 24
.= (SCM-Chg (SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),((S . (Address_Add S,(c P41address ),(c P43const ))) div (S . (Address_Add S,(c P42address ),(c P44const ))))),(Address_Add S,(c P42address ),(c P44const )),((S . (Address_Add S,(c P41address ),(c P43const ))) mod (S . (Address_Add S,(c P42address ),(c P44const ))))) . l9 by SCMPDS_1:28
.= (SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),((S . (Address_Add S,(c P41address ),(c P43const ))) div (S . (Address_Add S,(c P42address ),(c P44const ))))) . l9 by SCMPDS_1:32
.= S . l9 by SCMPDS_1:32 ; :: thesis: verum
end;
case A16: I1 = 13 ; :: thesis: (SCM-Exec-Res c,S) . l9 = S . l9
set SS = SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),(S . (Address_Add S,(c P42address ),(c P44const )));
thus (SCM-Exec-Res c,S) . l9 = (SCM-Chg (SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),(S . (Address_Add S,(c P42address ),(c P44const )))),(succ (IC S))) . l9 by A10, A16, SCMPDS_1:def 24
.= (SCM-Chg S,(Address_Add S,(c P41address ),(c P43const )),(S . (Address_Add S,(c P42address ),(c P44const )))) . l9 by SCMPDS_1:28
.= S . l9 by SCMPDS_1:32 ; :: thesis: verum
end;
end;
end;
hence (SCM-Exec-Res c,S) . l9 = S . l9 ; :: thesis: verum
end;
end;
end;
hence (Exec i,s) . l = s . l by SCMPDS_1:def 25; :: thesis: verum