let D be non empty set ; for f being non empty quasi_total Element of HFuncs D
for F being with_the_same_arity FinSequence of HFuncs D st arity f = len F & not F is empty & ( for h being Element of HFuncs D st h in rng F holds
( h is quasi_total & not h is empty ) ) holds
( f * <:F:> is non empty quasi_total Element of HFuncs D & dom (f * <:F:>) = (arity F) -tuples_on D )
set X = D;
let f be non empty quasi_total Element of HFuncs D; for F being with_the_same_arity FinSequence of HFuncs D st arity f = len F & not F is empty & ( for h being Element of HFuncs D st h in rng F holds
( h is quasi_total & not h is empty ) ) holds
( f * <:F:> is non empty quasi_total Element of HFuncs D & dom (f * <:F:>) = (arity F) -tuples_on D )
let F be with_the_same_arity FinSequence of HFuncs D; ( arity f = len F & not F is empty & ( for h being Element of HFuncs D st h in rng F holds
( h is quasi_total & not h is empty ) ) implies ( f * <:F:> is non empty quasi_total Element of HFuncs D & dom (f * <:F:>) = (arity F) -tuples_on D ) )
assume that
A1:
arity f = len F
and
A2:
not F is empty
and
A3:
for h being Element of HFuncs D st h in rng F holds
( h is quasi_total & not h is empty )
; ( f * <:F:> is non empty quasi_total Element of HFuncs D & dom (f * <:F:>) = (arity F) -tuples_on D )
set n = arity F;
set fF = f * <:F:>;
A4:
dom (f * <:F:>) c= (arity F) -tuples_on D
by Th41;
A5:
(arity F) -tuples_on D c= dom (f * <:F:>)
proof
let x be
object ;
TARSKI:def 3 ( not x in (arity F) -tuples_on D or x in dom (f * <:F:>) )
A6:
product (rngs F) c= (len F) -tuples_on D
proof
let p be
object ;
TARSKI:def 3 ( not p in product (rngs F) or p in (len F) -tuples_on D )
A7:
dom (rngs F) = dom F
by FUNCT_6:def 3;
assume
p in product (rngs F)
;
p in (len F) -tuples_on D
then consider g being
Function such that A8:
p = g
and A9:
dom g = dom (rngs F)
and A10:
for
x being
object st
x in dom (rngs F) holds
g . x in (rngs F) . x
by CARD_3:def 5;
A11:
dom F = Seg (len F)
by FINSEQ_1:def 3;
then reconsider g =
g as
FinSequence by A9, A7, FINSEQ_1:def 2;
rng g c= D
proof
let x be
object ;
TARSKI:def 3 ( not x in rng g or x in D )
assume
x in rng g
;
x in D
then consider d being
object such that A12:
d in dom g
and A13:
g . d = x
by FUNCT_1:def 3;
A14:
g . d in (rngs F) . d
by A9, A10, A12;
reconsider d =
d as
Element of
NAT by A12;
reconsider Fd =
F . d as
Element of
HFuncs D by A9, A7, A12, FINSEQ_2:11;
A15:
rng Fd c= D
by RELAT_1:def 19;
(rngs F) . d = rng Fd
by A9, A7, A12, FUNCT_6:def 3;
hence
x in D
by A13, A14, A15;
verum
end;
then reconsider g =
g as
FinSequence of
D by FINSEQ_1:def 4;
len g = len F
by A9, A7, A11, FINSEQ_1:def 3;
then
p is
Element of
(len F) -tuples_on D
by A8, FINSEQ_2:92;
hence
p in (len F) -tuples_on D
;
verum
end;
rng <:F:> c= product (rngs F)
by FUNCT_6:29;
then A16:
rng <:F:> c= (len F) -tuples_on D
by A6;
A17:
dom f = (arity f) -tuples_on D
by Th21;
A18:
(arity F) -tuples_on D c= dom <:F:>
assume A29:
x in (arity F) -tuples_on D
;
x in dom (f * <:F:>)
then
<:F:> . x in rng <:F:>
by A18, FUNCT_1:3;
hence
x in dom (f * <:F:>)
by A1, A29, A18, A17, A16, FUNCT_1:11;
verum
end;
then A30:
dom (f * <:F:>) = (arity F) -tuples_on D
by A4, XBOOLE_0:def 10;
A31:
rng (f * <:F:>) c= D
by Th41;
(arity F) -tuples_on D c= D *
by FINSEQ_2:142;
then
dom (f * <:F:>) c= D *
by A4;
then
f * <:F:> is Relation of (D *),D
by A31, RELSET_1:4;
then
f * <:F:> is Element of PFuncs ((D *),D)
by PARTFUN1:45;
then
f * <:F:> in HFuncs D
;
then reconsider fF = f * <:F:> as Element of HFuncs D ;
fF is quasi_total
hence
f * <:F:> is non empty quasi_total Element of HFuncs D
by A5; dom (f * <:F:>) = (arity F) -tuples_on D
thus
dom (f * <:F:>) = (arity F) -tuples_on D
by A4, A5, XBOOLE_0:def 10; verum