let X be non empty set ; :: thesis: for f being finite-support Function of X,NAT holds card (NatMinor f) = multnat $$ (support f),(addnat [:] f,1)
defpred S1[ Element of Fin X] means for f being Function of X,NAT st ( for x being Element of X st not x in $1 holds
f . x = 0 ) holds
card (NatMinor f) = multnat $$ $1,(addnat [:] f,1);
A1: S1[ {}. X]
proof
let f be Function of X,NAT ; :: thesis: ( ( for x being Element of X st not x in {}. X holds
f . x = 0 ) implies card (NatMinor f) = multnat $$ ({}. X),(addnat [:] f,1) )

assume A2: for x being Element of X st not x in {}. X holds
f . x = 0 ; :: thesis: card (NatMinor f) = multnat $$ ({}. X),(addnat [:] f,1)
now
let x be set ; :: thesis: ( ( x in NatMinor f implies x = f ) & ( x = f implies x in NatMinor f ) )
hereby :: thesis: ( x = f implies x in NatMinor f )
assume A3: x in NatMinor f ; :: thesis: x = f
then reconsider x' = x as Function of X,NAT by FUNCT_2:121;
( dom x' = X & rng x' c= NAT ) by FUNCT_2:def 1;
then reconsider x'' = x' as natural-valued ManySortedSet of by PARTFUN1:def 4;
now
let c be Element of X; :: thesis: x' . c = f . c
A4: x'' . c <= f . c by A3, Def17;
f . c = 0 by A2;
hence x' . c = f . c by A4; :: thesis: verum
end;
hence x = f by FUNCT_2:113; :: thesis: verum
end;
thus ( x = f implies x in NatMinor f ) by Th65; :: thesis: verum
end;
then NatMinor f = {f} by TARSKI:def 1;
hence card (NatMinor f) = 1 by CARD_1:50
.= multnat $$ ({}. X),(addnat [:] f,1) by BINOP_2:10, SETWISEO:40 ;
:: thesis: verum
end;
A5: for B being Element of Fin X
for b being Element of X st S1[B] & not b in B holds
S1[B \/ {.b.}]
proof
let B be Element of Fin X; :: thesis: for b being Element of X st S1[B] & not b in B holds
S1[B \/ {.b.}]

let b be Element of X; :: thesis: ( S1[B] & not b in B implies S1[B \/ {.b.}] )
assume A6: ( S1[B] & not b in B ) ; :: thesis: S1[B \/ {.b.}]
let f be Function of X,NAT ; :: thesis: ( ( for x being Element of X st not x in B \/ {.b.} holds
f . x = 0 ) implies card (NatMinor f) = multnat $$ (B \/ {.b.}),(addnat [:] f,1) )

assume A7: for x being Element of X st not x in B \/ {b} holds
f . x = 0 ; :: thesis: card (NatMinor f) = multnat $$ (B \/ {.b.}),(addnat [:] f,1)
dom (addnat [:] f,1) = X by FUNCT_2:def 1;
then A8: (addnat [:] f,1) . b = addnat . (f . b),1 by FUNCOP_1:35
.= (f . b) + 1 by BINOP_2:def 23 ;
set g = f +* b,0 ;
A9: dom f = X by FUNCT_2:def 1;
for x being Element of X st not x in B holds
(f +* b,0 ) . x = 0
proof
let x be Element of X; :: thesis: ( not x in B implies (f +* b,0 ) . x = 0 )
assume A10: not x in B ; :: thesis: (f +* b,0 ) . x = 0
per cases ( x = b or x <> b ) ;
suppose x = b ; :: thesis: (f +* b,0 ) . x = 0
hence (f +* b,0 ) . x = 0 by A9, FUNCT_7:33; :: thesis: verum
end;
suppose A11: x <> b ; :: thesis: (f +* b,0 ) . x = 0
A12: now end;
thus (f +* b,0 ) . x = f . x by A11, FUNCT_7:34
.= 0 by A7, A12 ; :: thesis: verum
end;
end;
end;
then A13: card (NatMinor (f +* b,0 )) = multnat $$ B,(addnat [:] (f +* b,0 ),1) by A6;
then reconsider ng = NatMinor (f +* b,0 ) as functional non empty finite set ;
set cng = card ng;
(f +* b,0 ) | B = f | B by A6, FUNCT_7:94;
then (addnat [:] (f +* b,0 ),1) | B = (addnat [:] f,1) | B by FUNCOP_1:36;
then A14: multnat $$ B,(addnat [:] (f +* b,0 ),1) = multnat $$ B,(addnat [:] f,1) by SETWOP_2:9;
A15: f . b < (f . b) + 1 by XREAL_1:31;
reconsider fb1 = (f . b) + 1 as non empty Element of NAT ;
[:ng,((f . b) + 1):], NatMinor f are_equipotent
proof
deffunc H1( Element of ng, Element of fb1) -> set = $1 +* b,$2;
A16: for p being Element of ng
for l being Element of fb1 holds H1(p,l) in NatMinor f
proof
let p be Element of ng; :: thesis: for l being Element of fb1 holds H1(p,l) in NatMinor f
let l be Element of fb1; :: thesis: H1(p,l) in NatMinor f
reconsider q = p as Element of NatMinor (f +* b,0 ) ;
A17: fb1 c= NAT ;
l in fb1 ;
then reconsider k = l as Element of NAT by A17;
p in NatMinor (f +* b,0 ) ;
then A18: dom p = X by FUNCT_2:169;
then dom (p +* b,l) = X by FUNCT_7:32;
then reconsider pbl = q +* b,k as natural-valued ManySortedSet of by PARTFUN1:def 4, RELAT_1:def 18;
for x being set st x in X holds
pbl . x <= f . x
proof
let x be set ; :: thesis: ( x in X implies pbl . x <= f . x )
assume A19: x in X ; :: thesis: pbl . x <= f . x
end;
hence H1(p,l) in NatMinor f by Def17; :: thesis: verum
end;
consider r being Function of [:ng,fb1:],(NatMinor f) such that
A24: for p being Element of ng
for l being Element of fb1 holds r . p,l = H1(p,l) from FUNCT_7:sch 1(A16);
take r ; :: according to WELLORD2:def 4 :: thesis: ( r is one-to-one & dom r = [:ng,((f . b) + 1):] & rng r = NatMinor f )
thus r is one-to-one :: thesis: ( dom r = [:ng,((f . b) + 1):] & rng r = NatMinor f )
proof
let x1, x2 be set ; :: according to FUNCT_1:def 8 :: thesis: ( not x1 in dom r or not x2 in dom r or not r . x1 = r . x2 or x1 = x2 )
assume A25: ( x1 in dom r & x2 in dom r & r . x1 = r . x2 ) ; :: thesis: x1 = x2
then consider p1, l1 being set such that
A26: x1 = [p1,l1] by RELAT_1:def 1;
A27: ( p1 in ng & l1 in fb1 ) by A25, A26, ZFMISC_1:106;
consider p2, l2 being set such that
A28: x2 = [p2,l2] by A25, RELAT_1:def 1;
A29: ( p2 in ng & l2 in fb1 ) by A25, A28, ZFMISC_1:106;
reconsider p1 = p1 as Element of NatMinor (f +* b,0 ) by A25, A26, ZFMISC_1:106;
reconsider p2 = p2 as Element of NatMinor (f +* b,0 ) by A25, A28, ZFMISC_1:106;
A30: p1 +* b,l1 = r . p1,l1 by A24, A27
.= r . p2,l2 by A25, A26, A28
.= p2 +* b,l2 by A24, A29 ;
A31: dom p1 = X by FUNCT_2:169;
A32: dom p2 = X by FUNCT_2:169;
then reconsider p1' = p1, p2' = p2 as natural-valued ManySortedSet of by A31, PARTFUN1:def 4, RELAT_1:def 18;
A33: now
let x be set ; :: thesis: ( x in X implies p1' . b1 = p2' . b1 )
assume A34: x in X ; :: thesis: p1' . b1 = p2' . b1
per cases ( x = b or x <> b ) ;
suppose A35: x = b ; :: thesis: p1' . b1 = p2' . b1
A36: (f +* b,0 ) . b = 0 by A9, FUNCT_7:33;
A37: ( p1' . x <= (f +* b,0 ) . x & p2' . x <= (f +* b,0 ) . x ) by A34, Def17;
hence p1' . x = 0 by A35, A36
.= p2' . x by A35, A36, A37 ;
:: thesis: verum
end;
suppose A38: x <> b ; :: thesis: p1' . b1 = p2' . b1
hence p1' . x = (p1 +* b,l1) . x by FUNCT_7:34
.= p2' . x by A30, A38, FUNCT_7:34 ;
:: thesis: verum
end;
end;
end;
l1 = (p1 +* b,l1) . b by A31, FUNCT_7:33
.= l2 by A30, A32, FUNCT_7:33 ;
hence x1 = x2 by A26, A28, A33, PBOOLE:3; :: thesis: verum
end;
thus A39: dom r = [:ng,((f . b) + 1):] by FUNCT_2:def 1; :: thesis: rng r = NatMinor f
thus rng r c= NatMinor f ; :: according to XBOOLE_0:def 10 :: thesis: NatMinor f c= rng r
thus NatMinor f c= rng r :: thesis: verum
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in NatMinor f or x in rng r )
assume x in NatMinor f ; :: thesis: x in rng r
then reconsider e = x as Element of NatMinor f ;
A40: dom e = X by FUNCT_2:169;
then A41: e is ManySortedSet of by PARTFUN1:def 4, RELAT_1:def 18;
dom (e +* b,0 ) = X by A40, FUNCT_7:32;
then reconsider eb0 = e +* b,0 as natural-valued ManySortedSet of by PARTFUN1:def 4, RELAT_1:def 18;
now
let x be set ; :: thesis: ( x in X implies eb0 . b1 <= (f +* b,0 ) . b1 )
assume A42: x in X ; :: thesis: eb0 . b1 <= (f +* b,0 ) . b1
per cases ( x = b or x <> b ) ;
suppose x = b ; :: thesis: eb0 . b1 <= (f +* b,0 ) . b1
hence eb0 . x <= (f +* b,0 ) . x by A40, FUNCT_7:33; :: thesis: verum
end;
suppose A43: x <> b ; :: thesis: eb0 . b1 <= (f +* b,0 ) . b1
then A44: eb0 . x = e . x by FUNCT_7:34;
e . x <= f . x by A41, A42, Def17;
hence eb0 . x <= (f +* b,0 ) . x by A43, A44, FUNCT_7:34; :: thesis: verum
end;
end;
end;
then reconsider eb0 = eb0 as Element of NatMinor (f +* b,0 ) by Def17;
e . b <= f . b by A41, Def17;
then e . b < fb1 by A15, XXREAL_0:2;
then A45: e . b in fb1 by NAT_1:45;
then A46: [eb0,(e . b)] in dom r by A39, ZFMISC_1:106;
e = e +* b,(e . b) by FUNCT_7:37
.= eb0 +* b,(e . b) by FUNCT_7:36 ;
then e = r . eb0,(e . b) by A24, A45;
hence x in rng r by A46, FUNCT_1:def 5; :: thesis: verum
end;
end;
hence card (NatMinor f) = card [:ng,((f . b) + 1):] by CARD_1:21
.= (card ng) * (card ((f . b) + 1)) by CARD_2:65
.= (card ng) * ((f . b) + 1) by CARD_1:def 5
.= multnat . (multnat $$ B,(addnat [:] f,1)),((f . b) + 1) by A13, A14, BINOP_2:def 24
.= multnat $$ (B \/ {.b.}),(addnat [:] f,1) by A6, A8, SETWOP_2:4 ;
:: thesis: verum
end;
A47: for B being Element of Fin X holds S1[B] from SETWISEO:sch 2(A1, A5);
let f be finite-support Function of X,NAT ; :: thesis: card (NatMinor f) = multnat $$ (support f),(addnat [:] f,1)
for x being Element of X st not x in support f holds
f . x = 0 by Def7;
hence card (NatMinor f) = multnat $$ (support f),(addnat [:] f,1) by A47; :: thesis: verum