let p be preProgram of SCM+FSA; :: thesis: for k being Element of NAT holds UsedInt*Loc p = UsedInt*Loc (Shift (p,k))
let k be Element of NAT ; :: thesis: UsedInt*Loc p = UsedInt*Loc (Shift (p,k))
set Sp = Shift (p,k);
consider UIL being Function of the Instructions of SCM+FSA,(Fin FinSeq-Locations) such that
A1: for i being Instruction of SCM+FSA holds UIL . i = UsedInt*Loc i and
A2: UsedInt*Loc p = Union (UIL * p) by Def4;
consider UIL2 being Function of the Instructions of SCM+FSA,(Fin FinSeq-Locations) such that
A3: for i being Instruction of SCM+FSA holds UIL2 . i = UsedInt*Loc i and
A4: UsedInt*Loc (Shift (p,k)) = Union (UIL2 * (Shift (p,k))) by Def4;
for c being Element of the Instructions of SCM+FSA holds UIL . c = UIL2 . c
proof
let c be Element of the Instructions of SCM+FSA; :: thesis: UIL . c = UIL2 . c
reconsider d = c as Instruction of SCM+FSA ;
thus UIL . c = UsedInt*Loc d by A1
.= UIL2 . c by A3 ; :: thesis: verum
end;
then A5: UIL = UIL2 by FUNCT_2:113;
A6: dom (Shift (p,k)) = { (m + k) where m is Element of NAT : m in dom p } by VALUED_1:def 12;
now
let y be set ; :: thesis: ( ( y in rng (Shift (p,k)) implies y in rng p ) & ( y in rng p implies y in rng (Shift (p,k)) ) )
hereby :: thesis: ( y in rng p implies y in rng (Shift (p,k)) )
assume y in rng (Shift (p,k)) ; :: thesis: y in rng p
then consider x being set such that
A7: x in dom (Shift (p,k)) and
A8: y = (Shift (p,k)) . x by FUNCT_1:def 5;
consider m being Element of NAT such that
A9: x = m + k and
A10: m in dom p by A6, A7;
(Shift (p,k)) . x = p . m by A9, A10, VALUED_1:def 12;
hence y in rng p by A8, A10, FUNCT_1:def 5; :: thesis: verum
end;
assume y in rng p ; :: thesis: y in rng (Shift (p,k))
then consider x being set such that
A11: x in dom p and
A12: y = p . x by FUNCT_1:def 5;
dom p c= NAT by RELAT_1:def 18;
then reconsider x9 = x as Element of NAT by A11;
reconsider m = x9 as Element of NAT ;
( m + k in dom (Shift (p,k)) & (Shift (p,k)) . (m + k) = p . m ) by A6, A11, VALUED_1:def 12;
hence y in rng (Shift (p,k)) by A12, FUNCT_1:def 5; :: thesis: verum
end;
then A13: rng (Shift (p,k)) = rng p by TARSKI:2;
A14: Union (UIL * (Shift (p,k))) = union (rng (UIL * (Shift (p,k)))) by CARD_3:def 4;
rng (UIL * (Shift (p,k))) = UIL .: (rng (Shift (p,k))) by RELAT_1:160
.= rng (UIL * p) by A13, RELAT_1:160 ;
hence UsedInt*Loc p = UsedInt*Loc (Shift (p,k)) by A2, A4, A5, A14, CARD_3:def 4; :: thesis: verum