A1:
(SCM+FSA-Memory --> (INT *)) +* (SCM-OK +* ((SCM-Instr .--> SCM+FSA-Instr) * (SCM-OK | NAT))) = ((SCM+FSA-Memory --> (INT *)) +* SCM-OK) +* ((SCM-Instr .--> SCM+FSA-Instr) * (SCM-OK | NAT))
by FUNCT_4:15;
A2:
rng (((SCM+FSA-Memory --> (INT *)) +* SCM-OK) +* ((SCM-Instr .--> SCM+FSA-Instr) * (SCM-OK | NAT))) c= {INT,(INT *)} \/ {SCM+FSA-Instr,NAT}
A20:
dom ((SCM-Instr .--> SCM+FSA-Instr) * (SCM-OK | NAT)) c= dom (SCM-OK | NAT)
by RELAT_1:44;
( dom SCM-OK c= SCM+FSA-Memory & dom (SCM-OK | NAT) c= dom SCM-OK )
by Th1, FUNCT_2:def 1, RELAT_1:89;
then A21:
dom (SCM-OK | NAT) c= SCM+FSA-Memory
by XBOOLE_1:1;
dom ((SCM+FSA-Memory --> (INT *)) +* SCM-OK) =
(dom (SCM+FSA-Memory --> (INT *))) \/ (dom SCM-OK)
by FUNCT_4:def 1
.=
SCM+FSA-Memory \/ (dom SCM-OK)
by FUNCOP_1:19
.=
SCM+FSA-Memory \/ SCM-Memory
by FUNCT_2:def 1
.=
SCM+FSA-Memory
by XBOOLE_1:7, XBOOLE_1:12
;
then dom (((SCM+FSA-Memory --> (INT *)) +* SCM-OK) +* ((SCM-Instr .--> SCM+FSA-Instr) * (SCM-OK | NAT))) =
SCM+FSA-Memory \/ (dom ((SCM-Instr .--> SCM+FSA-Instr) * (SCM-OK | NAT)))
by FUNCT_4:def 1
.=
SCM+FSA-Memory
by A21, A20, XBOOLE_1:1, XBOOLE_1:12
;
hence
((SCM+FSA-Memory --> (INT *)) +* SCM-OK) +* ((SCM-Instr .--> SCM+FSA-Instr) * (SCM-OK | NAT)) is Function of SCM+FSA-Memory,({INT,(INT *)} \/ {SCM+FSA-Instr,NAT})
by A2, FUNCT_2:def 1, RELSET_1:11; verum