let p be bag of SetPrimes ; for X being set st X c= support p holds
ex q, r being bag of SetPrimes st
( support q = (support p) \ X & support r = X & support q misses support r & q | (support q) = p | (support q) & r | (support r) = p | (support r) & q + r = p )
let X be set ; ( X c= support p implies ex q, r being bag of SetPrimes st
( support q = (support p) \ X & support r = X & support q misses support r & q | (support q) = p | (support q) & r | (support r) = p | (support r) & q + r = p ) )
set fq = p +* (X --> 0);
A3:
rng (p +* (X --> 0)) c= NAT
;
set fr = p +* ((SetPrimes \ X) --> 0);
A4: dom (p +* ((SetPrimes \ X) --> 0)) =
(dom p) \/ (dom ((SetPrimes \ X) --> 0))
by FUNCT_4:def 1
.=
(dom p) \/ (SetPrimes \ X)
by FUNCOP_1:13
.=
SetPrimes \/ (SetPrimes \ X)
by PARTFUN1:def 2
.=
SetPrimes
by XBOOLE_1:12, XBOOLE_1:36
;
rng (p +* ((SetPrimes \ X) --> 0)) c= NAT
;
then reconsider fr = p +* ((SetPrimes \ X) --> 0) as Function of SetPrimes,NAT by A4, FUNCT_2:def 1, RELSET_1:4;
assume A6:
X c= support p
; ex q, r being bag of SetPrimes st
( support q = (support p) \ X & support r = X & support q misses support r & q | (support q) = p | (support q) & r | (support r) = p | (support r) & q + r = p )
A7:
for x being object st not x in X & x in SetPrimes holds
fr . x = 0
A11:
dom (X --> 0) = X
by FUNCOP_1:13;
then dom (p +* (X --> 0)) =
(dom p) \/ X
by FUNCT_4:def 1
.=
SetPrimes \/ X
by PARTFUN1:def 2
.=
SetPrimes
by A6, XBOOLE_1:1, XBOOLE_1:12
;
then reconsider fq = p +* (X --> 0) as Function of SetPrimes,NAT by A3, FUNCT_2:def 1, RELSET_1:4;
A12: dom (fq | (support fq)) =
(dom fq) /\ (support fq)
by RELAT_1:61
.=
support fq
by PRE_POLY:37, XBOOLE_1:28
;
A13:
for x being object st not x in SetPrimes holds
( fr . x = 0 & fq . x = 0 )
A16:
for x being object st x in X holds
fr . x = p . x
A17:
for x being object st x in SetPrimes & x in X holds
fr . x <> 0
A19:
for x being object holds
( x in X iff fr . x <> 0 )
then A21:
support fr = X
by PRE_POLY:def 7;
then reconsider r = fr as bag of SetPrimes by A6, PRE_POLY:def 8;
A22:
support p c= dom p
by PRE_POLY:37;
A23: dom (fr | (support fr)) =
(dom fr) /\ (support fr)
by RELAT_1:61
.=
support fr
by PRE_POLY:37, XBOOLE_1:28
.=
X
by A19, PRE_POLY:def 7
;
A24:
for x being object st x in dom (fr | (support fr)) holds
(fr | (support fr)) . x = (p | (support fr)) . x
dom (p | (support fr)) =
(dom p) /\ (support fr)
by RELAT_1:61
.=
(dom p) /\ X
by A19, PRE_POLY:def 7
.=
X
by A6, A22, XBOOLE_1:1, XBOOLE_1:28
;
then A27:
fr | (support fr) = p | (support fr)
by A23, A24, FUNCT_1:def 11;
A28:
for x being object st x in X holds
fq . x = 0
A30:
for x being object holds
( x in (support p) \ X iff fq . x <> 0 )
then A33:
support fq = (support p) \ X
by PRE_POLY:def 7;
then reconsider q = fq as bag of SetPrimes by PRE_POLY:def 8;
A34: dom (p | (support fq)) =
(dom p) /\ (support fq)
by RELAT_1:61
.=
(dom p) /\ ((support p) \ X)
by A30, PRE_POLY:def 7
.=
((dom p) /\ (support p)) \ X
by XBOOLE_1:49
.=
(support p) \ X
by PRE_POLY:37, XBOOLE_1:28
.=
support fq
by A30, PRE_POLY:def 7
;
(support p) \ X misses X
by XBOOLE_1:79;
then A35:
(support fq) /\ (support fr) = {}
by A21, A33, XBOOLE_0:def 7;
A36:
for x being set st x in SetPrimes & x in support fq holds
p . x = fq . x
for x being object st x in dom (fq | (support fq)) holds
(fq | (support fq)) . x = (p | (support fq)) . x
then A40:
fq | (support fq) = p | (support fq)
by A12, A34, FUNCT_1:def 11;
(support fr) \/ (support fq) =
(support fr) \/ ((support p) \ (support fr))
by A19, A33, PRE_POLY:def 7
.=
(support fr) \/ (support p)
by XBOOLE_1:39
.=
support p
by A6, A21, XBOOLE_1:12
;
then
q + r = p
by A35, A40, A27, Th2;
hence
ex q, r being bag of SetPrimes st
( support q = (support p) \ X & support r = X & support q misses support r & q | (support q) = p | (support q) & r | (support r) = p | (support r) & q + r = p )
by A21, A33, A40, A27, XBOOLE_1:79; verum