let p, q be bag of ; :: thesis: ( support p c= support q & p | (support p) = q | (support p) implies ex r being bag of st
( support r = (support q) \ (support p) & support p misses support r & r | (support r) = q | (support r) & p + r = q ) )
assume A1:
( support p c= support q & p | (support p) = q | (support p) )
; :: thesis: ex r being bag of st
( support r = (support q) \ (support p) & support p misses support r & r | (support r) = q | (support r) & p + r = q )
defpred S1[ set ] means $1 in (support q) \ (support p);
deffunc H1( set ) -> Element of NAT = q . $1;
deffunc H2( set ) -> Element of NAT = 0 ;
A2:
for x being set st x in SetPrimes holds
( ( S1[x] implies H1(x) in NAT ) & ( not S1[x] implies H2(x) in NAT ) )
;
consider f being Function of SetPrimes ,NAT such that
A3:
for x being set st x in SetPrimes holds
( ( S1[x] implies f . x = H1(x) ) & ( not S1[x] implies f . x = H2(x) ) )
from FUNCT_2:sch 5(A2);
A4:
for x being set st x in SetPrimes & x in (support q) \ (support p) holds
f . x <> 0
A6:
for x being set st not x in SetPrimes holds
f . x = 0
A7:
for x being set holds
( x in (support q) \ (support p) iff f . x <> 0 )
A8:
support f = (support q) \ (support p)
by A7, POLYNOM1:def 7;
A9:
support p misses support f
then A11:
(support p) /\ (support f) = {}
by XBOOLE_0:def 7;
A12:
f | (support f) = q | (support f)
A16:
support f is finite
by A7, POLYNOM1:def 7;
reconsider r = f as bag of by A16, POLYNOM1:def 8;
(support p) \/ (support r) =
(support p) \/ ((support q) \ (support p))
by A7, POLYNOM1:def 7
.=
(support p) \/ (support q)
by XBOOLE_1:39
.=
support q
by A1, XBOOLE_1:12
;
then
p + r = q
by A1, A11, A12, Th2;
hence
ex r being bag of st
( support r = (support q) \ (support p) & support p misses support r & r | (support r) = q | (support r) & p + r = q )
by A8, A9, A12; :: thesis: verum