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