let R be Ring; :: thesis: for r being Element of R

for a being Data-Location of R

for s being State of (SCM R) holds

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

(Exec ((a := r),s)) . c = s . c ) )

let r be Element of R; :: thesis: for a being Data-Location of R

for s being State of (SCM R) holds

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

(Exec ((a := r),s)) . c = s . c ) )

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

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

(Exec ((a := r),s)) . c = s . c ) )

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

(Exec ((a := r),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 = a := r as Element of SCM-Instr R by Def1;

set S1 = SCM-Chg (S,(I const_address),(I const_value));

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

A3: IC s = IC S by Def1;

A4: I = [i,{},<*a,r*>] ;

then A5: I const_address = a by A1, AMI_3:27, SCMRINGI:4;

A6: I const_value = r by A4, A1, AMI_3:27, SCMRINGI:4;

A7: Exec ((a := r),s) = SCM-Exec-Res (I,S) by Th10

.= SCM-Chg ((SCM-Chg (S,(I const_address),(I const_value))),((IC S) + 1)) by A1, AMI_3:27, SCMRING1:def 14 ;

thus (Exec ((a := r),s)) . (IC ) = (Exec ((a := r),s)) . NAT by Def1

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

(Exec ((a := r),s)) . c = s . c ) )

thus (Exec ((a := r),s)) . a = (SCM-Chg (S,(I const_address),(I const_value))) . a by A1, A7, AMI_3:27, SCMRING1:8

.= r by A5, A6, SCMRING1:11 ; :: thesis: for c being Data-Location of R st c <> a holds

(Exec ((a := r),s)) . c = s . c

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

assume A8: c <> a ; :: thesis: (Exec ((a := r),s)) . c = s . c

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

hence (Exec ((a := r),s)) . c = (SCM-Chg (S,(I const_address),(I const_value))) . c by A7, AMI_3:27, SCMRING1:8

.= s . c by A5, A8, A9, AMI_3:27, SCMRING1:12 ;

:: thesis: verum

for a being Data-Location of R

for s being State of (SCM R) holds

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

(Exec ((a := r),s)) . c = s . c ) )

let r be Element of R; :: thesis: for a being Data-Location of R

for s being State of (SCM R) holds

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

(Exec ((a := r),s)) . c = s . c ) )

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

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

(Exec ((a := r),s)) . c = s . c ) )

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

(Exec ((a := r),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 = a := r as Element of SCM-Instr R by Def1;

set S1 = SCM-Chg (S,(I const_address),(I const_value));

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

A3: IC s = IC S by Def1;

A4: I = [i,{},<*a,r*>] ;

then A5: I const_address = a by A1, AMI_3:27, SCMRINGI:4;

A6: I const_value = r by A4, A1, AMI_3:27, SCMRINGI:4;

A7: Exec ((a := r),s) = SCM-Exec-Res (I,S) by Th10

.= SCM-Chg ((SCM-Chg (S,(I const_address),(I const_value))),((IC S) + 1)) by A1, AMI_3:27, SCMRING1:def 14 ;

thus (Exec ((a := r),s)) . (IC ) = (Exec ((a := r),s)) . NAT by Def1

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

(Exec ((a := r),s)) . c = s . c ) )

thus (Exec ((a := r),s)) . a = (SCM-Chg (S,(I const_address),(I const_value))) . a by A1, A7, AMI_3:27, SCMRING1:8

.= r by A5, A6, SCMRING1:11 ; :: thesis: for c being Data-Location of R st c <> a holds

(Exec ((a := r),s)) . c = s . c

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

assume A8: c <> a ; :: thesis: (Exec ((a := r),s)) . c = s . c

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

hence (Exec ((a := r),s)) . c = (SCM-Chg (S,(I const_address),(I const_value))) . c by A7, AMI_3:27, SCMRING1:8

.= s . c by A5, A8, A9, AMI_3:27, SCMRING1:12 ;

:: thesis: verum