let R be Ring; :: thesis: for a, b being Data-Location of R

for s being State of (SCM R) holds

( (Exec ((MultBy (a,b)),s)) . (IC ) = (IC s) + 1 & (Exec ((MultBy (a,b)),s)) . a = (s . a) * (s . b) & ( for c being Data-Location of R st c <> a holds

(Exec ((MultBy (a,b)),s)) . c = s . c ) )

let a, b be Data-Location of R; :: thesis: for s being State of (SCM R) holds

( (Exec ((MultBy (a,b)),s)) . (IC ) = (IC s) + 1 & (Exec ((MultBy (a,b)),s)) . a = (s . a) * (s . b) & ( for c being Data-Location of R st c <> a holds

(Exec ((MultBy (a,b)),s)) . c = s . c ) )

let s be State of (SCM R); :: thesis: ( (Exec ((MultBy (a,b)),s)) . (IC ) = (IC s) + 1 & (Exec ((MultBy (a,b)),s)) . a = (s . a) * (s . b) & ( for c being Data-Location of R st c <> a holds

(Exec ((MultBy (a,b)),s)) . c = s . c ) )

A1: a is Element of Data-Locations by Th1;

A2: the_Values_of (SCM R) = (SCM-VAL R) * SCM-OK by Lm1;

reconsider S = s as SCM-State of R by A2, CARD_3:107;

reconsider I = MultBy (a,b) as Element of SCM-Instr R by Def1;

set S1 = SCM-Chg (S,(I address_1),((S . (I address_1)) * (S . (I address_2))));

reconsider i = 4 as Element of Segm 8 by NAT_1:44;

A3: IC s = IC S by Def1;

A4: b is Element of Data-Locations by Th1;

A5: Exec ((MultBy (a,b)),s) = SCM-Exec-Res (I,S) by Th10

.= SCM-Chg ((SCM-Chg (S,(I address_1),((S . (I address_1)) * (S . (I address_2))))),((IC S) + 1)) by A1, A4, AMI_3:27, SCMRING1:def 14 ;

A6: I = [i,{},<*a,b*>] ;

then A7: I address_1 = a by A1, A4, AMI_3:27, SCMRINGI:1;

A8: I address_2 = b by A6, A1, A4, AMI_3:27, SCMRINGI:1;

thus (Exec ((MultBy (a,b)),s)) . (IC ) = (Exec ((MultBy (a,b)),s)) . NAT by Def1

.= (IC s) + 1 by A3, A5, SCMRING1:7 ; :: thesis: ( (Exec ((MultBy (a,b)),s)) . a = (s . a) * (s . b) & ( for c being Data-Location of R st c <> a holds

(Exec ((MultBy (a,b)),s)) . c = s . c ) )

thus (Exec ((MultBy (a,b)),s)) . a = (SCM-Chg (S,(I address_1),((S . (I address_1)) * (S . (I address_2))))) . a by A1, A5, AMI_3:27, SCMRING1:8

.= (s . a) * (s . b) by A7, A8, SCMRING1:11 ; :: thesis: for c being Data-Location of R st c <> a holds

(Exec ((MultBy (a,b)),s)) . c = s . c

let c be Data-Location of R; :: thesis: ( c <> a implies (Exec ((MultBy (a,b)),s)) . c = s . c )

assume A9: c <> a ; :: thesis: (Exec ((MultBy (a,b)),s)) . c = s . c

A10: c is Element of Data-Locations by Th1;

hence (Exec ((MultBy (a,b)),s)) . c = (SCM-Chg (S,(I address_1),((S . (I address_1)) * (S . (I address_2))))) . c by A5, AMI_3:27, SCMRING1:8

.= s . c by A7, A9, A10, AMI_3:27, SCMRING1:12 ;

:: thesis: verum

for s being State of (SCM R) holds

( (Exec ((MultBy (a,b)),s)) . (IC ) = (IC s) + 1 & (Exec ((MultBy (a,b)),s)) . a = (s . a) * (s . b) & ( for c being Data-Location of R st c <> a holds

(Exec ((MultBy (a,b)),s)) . c = s . c ) )

let a, b be Data-Location of R; :: thesis: for s being State of (SCM R) holds

( (Exec ((MultBy (a,b)),s)) . (IC ) = (IC s) + 1 & (Exec ((MultBy (a,b)),s)) . a = (s . a) * (s . b) & ( for c being Data-Location of R st c <> a holds

(Exec ((MultBy (a,b)),s)) . c = s . c ) )

let s be State of (SCM R); :: thesis: ( (Exec ((MultBy (a,b)),s)) . (IC ) = (IC s) + 1 & (Exec ((MultBy (a,b)),s)) . a = (s . a) * (s . b) & ( for c being Data-Location of R st c <> a holds

(Exec ((MultBy (a,b)),s)) . c = s . c ) )

A1: a is Element of Data-Locations by Th1;

A2: the_Values_of (SCM R) = (SCM-VAL R) * SCM-OK by Lm1;

reconsider S = s as SCM-State of R by A2, CARD_3:107;

reconsider I = MultBy (a,b) as Element of SCM-Instr R by Def1;

set S1 = SCM-Chg (S,(I address_1),((S . (I address_1)) * (S . (I address_2))));

reconsider i = 4 as Element of Segm 8 by NAT_1:44;

A3: IC s = IC S by Def1;

A4: b is Element of Data-Locations by Th1;

A5: Exec ((MultBy (a,b)),s) = SCM-Exec-Res (I,S) by Th10

.= SCM-Chg ((SCM-Chg (S,(I address_1),((S . (I address_1)) * (S . (I address_2))))),((IC S) + 1)) by A1, A4, AMI_3:27, SCMRING1:def 14 ;

A6: I = [i,{},<*a,b*>] ;

then A7: I address_1 = a by A1, A4, AMI_3:27, SCMRINGI:1;

A8: I address_2 = b by A6, A1, A4, AMI_3:27, SCMRINGI:1;

thus (Exec ((MultBy (a,b)),s)) . (IC ) = (Exec ((MultBy (a,b)),s)) . NAT by Def1

.= (IC s) + 1 by A3, A5, SCMRING1:7 ; :: thesis: ( (Exec ((MultBy (a,b)),s)) . a = (s . a) * (s . b) & ( for c being Data-Location of R st c <> a holds

(Exec ((MultBy (a,b)),s)) . c = s . c ) )

thus (Exec ((MultBy (a,b)),s)) . a = (SCM-Chg (S,(I address_1),((S . (I address_1)) * (S . (I address_2))))) . a by A1, A5, AMI_3:27, SCMRING1:8

.= (s . a) * (s . b) by A7, A8, SCMRING1:11 ; :: thesis: for c being Data-Location of R st c <> a holds

(Exec ((MultBy (a,b)),s)) . c = s . c

let c be Data-Location of R; :: thesis: ( c <> a implies (Exec ((MultBy (a,b)),s)) . c = s . c )

assume A9: c <> a ; :: thesis: (Exec ((MultBy (a,b)),s)) . c = s . c

A10: c is Element of Data-Locations by Th1;

hence (Exec ((MultBy (a,b)),s)) . c = (SCM-Chg (S,(I address_1),((S . (I address_1)) * (S . (I address_2))))) . c by A5, AMI_3:27, SCMRING1:8

.= s . c by A7, A9, A10, AMI_3:27, SCMRING1:12 ;

:: thesis: verum