let I be Program of SCM+FSA ; for l being Element of NAT holds UsedInt*Loc (Directed I,l) = UsedInt*Loc I
let l be Element of NAT ; UsedInt*Loc (Directed I,l) = UsedInt*Loc I
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 I = Union (UIL * I)
by SF_MASTR:def 4;
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 (Directed I,l) = Union (UIL2 * (Directed I,l))
by SF_MASTR:def 4;
A5:
for c being Element of the Instructions of SCM+FSA holds UIL . c = UIL2 . c
A6:
dom UIL = the Instructions of SCM+FSA
by FUNCT_2:def 1;
A7: UIL . (halt SCM+FSA ) =
UsedInt*Loc (halt SCM+FSA )
by A1
.=
{}
by SF_MASTR:36
;
A8: UIL . (goto l) =
UsedInt*Loc (goto l)
by A1
.=
{}
by SF_MASTR:36
;
rng I c= the Instructions of SCM+FSA
by RELAT_1:def 19;
then UIL * (Directed I,l) =
UIL * (((id the Instructions of SCM+FSA ) +* (halt SCM+FSA ),(goto l)) * I)
by FUNCT_7:118
.=
(UIL * ((id the Instructions of SCM+FSA ) +* (halt SCM+FSA ),(goto l))) * I
by RELAT_1:55
.=
UIL * I
by A6, A7, A8, FUNCT_7:110
;
hence
UsedInt*Loc (Directed I,l) = UsedInt*Loc I
by A2, A4, A5, FUNCT_2:113; verum