:: INT_7 semantic presentation begin Lm1: for x, X, y, z being set st z <> x holds ((X --> 0) +* (x,y)) . z = 0 proof let x, X, y, z be set ; ::_thesis: ( z <> x implies ((X --> 0) +* (x,y)) . z = 0 ) assume A1: z <> x ; ::_thesis: ((X --> 0) +* (x,y)) . z = 0 A2: dom (X --> 0) = X by FUNCOP_1:13; percases ( z in X or not z in X ) ; supposeA3: z in X ; ::_thesis: ((X --> 0) +* (x,y)) . z = 0 ((X --> 0) +* (x,y)) . z = (X --> 0) . z by A1, FUNCT_7:32 .= 0 by A3, FUNCOP_1:7 ; hence ((X --> 0) +* (x,y)) . z = 0 ; ::_thesis: verum end; supposeA4: not z in X ; ::_thesis: ((X --> 0) +* (x,y)) . z = 0 ((X --> 0) +* (x,y)) . z = (X --> 0) . z by A1, FUNCT_7:32 .= 0 by A2, A4, FUNCT_1:def_2 ; hence ((X --> 0) +* (x,y)) . z = 0 ; ::_thesis: verum end; end; end; theorem Th1: :: INT_7:1 for X, x being set for p being ManySortedSet of X st support p = {x} holds p = (X --> 0) +* (x,(p . x)) proof let X, x be set ; ::_thesis: for p being ManySortedSet of X st support p = {x} holds p = (X --> 0) +* (x,(p . x)) let p be ManySortedSet of X; ::_thesis: ( support p = {x} implies p = (X --> 0) +* (x,(p . x)) ) assume A1: support p = {x} ; ::_thesis: p = (X --> 0) +* (x,(p . x)) A2: for y being set st y in dom p holds p . y = ((X --> 0) +* (x,(p . x))) . y proof let y be set ; ::_thesis: ( y in dom p implies p . y = ((X --> 0) +* (x,(p . x))) . y ) assume y in dom p ; ::_thesis: p . y = ((X --> 0) +* (x,(p . x))) . y then y in X ; then A3: y in dom (X --> 0) by FUNCOP_1:13; percases ( x = y or x <> y ) ; suppose x = y ; ::_thesis: p . y = ((X --> 0) +* (x,(p . x))) . y hence p . y = ((X --> 0) +* (x,(p . x))) . y by A3, FUNCT_7:31; ::_thesis: verum end; supposeA4: x <> y ; ::_thesis: p . y = ((X --> 0) +* (x,(p . x))) . y then not y in support p by A1, TARSKI:def_1; then p . y = 0 by PRE_POLY:def_7; hence p . y = ((X --> 0) +* (x,(p . x))) . y by A4, Lm1; ::_thesis: verum end; end; end; dom ((X --> 0) +* (x,(p . x))) = dom (X --> 0) by FUNCT_7:30 .= X by FUNCOP_1:13 ; then dom p = dom ((X --> 0) +* (x,(p . x))) by PARTFUN1:def_2; hence p = (X --> 0) +* (x,(p . x)) by A2, FUNCT_1:2; ::_thesis: verum end; theorem Th2: :: INT_7:2 for X being set for p, q, r being real-valued ManySortedSet of X st (support p) /\ (support q) = {} & (support p) \/ (support q) = support r & p | (support p) = r | (support p) & q | (support q) = r | (support q) holds p + q = r proof let X be set ; ::_thesis: for p, q, r being real-valued ManySortedSet of X st (support p) /\ (support q) = {} & (support p) \/ (support q) = support r & p | (support p) = r | (support p) & q | (support q) = r | (support q) holds p + q = r let p, q, r be real-valued ManySortedSet of X; ::_thesis: ( (support p) /\ (support q) = {} & (support p) \/ (support q) = support r & p | (support p) = r | (support p) & q | (support q) = r | (support q) implies p + q = r ) assume that A1: (support p) /\ (support q) = {} and A2: (support p) \/ (support q) = support r and A3: p | (support p) = r | (support p) and A4: q | (support q) = r | (support q) ; ::_thesis: p + q = r for x being set st x in X holds r . x = (p . x) + (q . x) proof let x be set ; ::_thesis: ( x in X implies r . x = (p . x) + (q . x) ) assume x in X ; ::_thesis: r . x = (p . x) + (q . x) percases ( x in (support p) \/ (support q) or not x in (support p) \/ (support q) ) ; supposeA5: x in (support p) \/ (support q) ; ::_thesis: r . x = (p . x) + (q . x) now__::_thesis:_r_._x_=_(p_._x)_+_(q_._x) percases ( x in support p or x in support q ) by A5, XBOOLE_0:def_3; supposeA6: x in support p ; ::_thesis: r . x = (p . x) + (q . x) then A7: not x in support q by A1, XBOOLE_0:def_4; thus r . x = (r | (support p)) . x by A6, FUNCT_1:49 .= (p . x) + 0 by A3, A6, FUNCT_1:49 .= (p . x) + (q . x) by A7, PRE_POLY:def_7 ; ::_thesis: verum end; supposeA8: x in support q ; ::_thesis: r . x = (p . x) + (q . x) then A9: not x in support p by A1, XBOOLE_0:def_4; thus r . x = (r | (support q)) . x by A8, FUNCT_1:49 .= 0 + (q . x) by A4, A8, FUNCT_1:49 .= (p . x) + (q . x) by A9, PRE_POLY:def_7 ; ::_thesis: verum end; end; end; hence r . x = (p . x) + (q . x) ; ::_thesis: verum end; supposeA10: not x in (support p) \/ (support q) ; ::_thesis: r . x = (p . x) + (q . x) then A11: not x in support q by XBOOLE_0:def_3; A12: not x in support p by A10, XBOOLE_0:def_3; thus r . x = 0 by A2, A10, PRE_POLY:def_7 .= 0 + (q . x) by A11, PRE_POLY:def_7 .= (p . x) + (q . x) by A12, PRE_POLY:def_7 ; ::_thesis: verum end; end; end; hence r = p + q by PRE_POLY:33; ::_thesis: verum end; theorem Th3: :: INT_7:3 for X being set for p, q being ManySortedSet of X st p | (support p) = q | (support q) holds p = q proof let X be set ; ::_thesis: for p, q being ManySortedSet of X st p | (support p) = q | (support q) holds p = q let p, q be ManySortedSet of X; ::_thesis: ( p | (support p) = q | (support q) implies p = q ) A1: dom (p | (support p)) = (dom p) /\ (support p) by RELAT_1:61 .= support p by PRE_POLY:37, XBOOLE_1:28 ; A2: dom (q | (support q)) = (dom q) /\ (support q) by RELAT_1:61 .= support q by PRE_POLY:37, XBOOLE_1:28 ; assume A3: p | (support p) = q | (support q) ; ::_thesis: p = q A4: for x being set st x in X holds p . x = q . x proof let x be set ; ::_thesis: ( x in X implies p . x = q . x ) assume x in X ; ::_thesis: p . x = q . x percases ( x in support p or not x in support p ) ; supposeA5: x in support p ; ::_thesis: p . x = q . x hence p . x = (p | (support p)) . x by FUNCT_1:49 .= q . x by A3, A1, A2, A5, FUNCT_1:49 ; ::_thesis: verum end; supposeA6: not x in support p ; ::_thesis: p . x = q . x hence p . x = 0 by PRE_POLY:def_7 .= q . x by A3, A1, A2, A6, PRE_POLY:def_7 ; ::_thesis: verum end; end; end; A7: dom q = X by PARTFUN1:def_2; dom p = X by PARTFUN1:def_2; hence p = q by A4, A7, FUNCT_1:2; ::_thesis: verum end; theorem Th4: :: INT_7:4 for X being set for p, q being bag of X st support p = {} & support q = {} holds p = q proof let X be set ; ::_thesis: for p, q being bag of X st support p = {} & support q = {} holds p = q let p, q be bag of X; ::_thesis: ( support p = {} & support q = {} implies p = q ) assume that A1: support p = {} and A2: support q = {} ; ::_thesis: p = q A3: {} = (dom q) /\ {} .= dom (q | (support q)) by A2 ; A4: dom (p | (support p)) = (dom p) /\ (support p) by RELAT_1:61 .= {} by A1 ; then for x being set st x in dom (p | (support p)) holds (p | (support p)) . x = (q | (support q)) . x ; hence p = q by A4, A3, Th3, FUNCT_1:2; ::_thesis: verum end; Lm2: for p, q being bag of SetPrimes st support p c= support q & p | (support p) = q | (support p) holds ex r being bag of SetPrimes st ( support r = (support q) \ (support p) & support p misses support r & r | (support r) = q | (support r) & p + r = q ) proof deffunc H1( set ) -> Element of NAT = 0 ; let p, q be bag of SetPrimes ; ::_thesis: ( support p c= support q & p | (support p) = q | (support p) implies ex r being bag of SetPrimes st ( support r = (support q) \ (support p) & support p misses support r & r | (support r) = q | (support r) & p + r = q ) ) assume that A1: support p c= support q and A2: p | (support p) = q | (support p) ; ::_thesis: ex r being bag of SetPrimes st ( support r = (support q) \ (support p) & support p misses support r & r | (support r) = q | (support r) & p + r = q ) deffunc H2( set ) -> Element of NAT = q . $1; defpred S1[ set ] means $1 in (support q) \ (support p); A3: for x being set st x in SetPrimes holds ( ( S1[x] implies H2(x) in NAT ) & ( not S1[x] implies H1(x) in NAT ) ) ; consider f being Function of SetPrimes,NAT such that A4: for x being set st x in SetPrimes holds ( ( S1[x] implies f . x = H2(x) ) & ( not S1[x] implies f . x = H1(x) ) ) from FUNCT_2:sch_5(A3); A5: for x being set st x in SetPrimes & x in (support q) \ (support p) holds f . x <> 0 proof let x be set ; ::_thesis: ( x in SetPrimes & x in (support q) \ (support p) implies f . x <> 0 ) assume that x in SetPrimes and A6: x in (support q) \ (support p) ; ::_thesis: f . x <> 0 x in support q by A6, XBOOLE_0:def_5; then q . x <> 0 by PRE_POLY:def_7; hence f . x <> 0 by A4, A6; ::_thesis: verum end; A7: for x being set st not x in SetPrimes holds f . x = 0 proof let x be set ; ::_thesis: ( not x in SetPrimes implies f . x = 0 ) assume not x in SetPrimes ; ::_thesis: f . x = 0 then not x in dom f ; hence f . x = 0 by FUNCT_1:def_2; ::_thesis: verum end; A8: for x being set holds ( x in (support q) \ (support p) iff f . x <> 0 ) proof let x be set ; ::_thesis: ( x in (support q) \ (support p) iff f . x <> 0 ) percases ( x in SetPrimes or not x in SetPrimes ) ; suppose x in SetPrimes ; ::_thesis: ( x in (support q) \ (support p) iff f . x <> 0 ) hence ( x in (support q) \ (support p) iff f . x <> 0 ) by A4, A5; ::_thesis: verum end; suppose not x in SetPrimes ; ::_thesis: ( x in (support q) \ (support p) iff f . x <> 0 ) hence ( x in (support q) \ (support p) iff f . x <> 0 ) by A7; ::_thesis: verum end; end; end; then support f is finite by PRE_POLY:def_7; then reconsider r = f as bag of SetPrimes by PRE_POLY:def_8; A9: (support p) \/ (support r) = (support p) \/ ((support q) \ (support p)) by A8, PRE_POLY:def_7 .= (support p) \/ (support q) by XBOOLE_1:39 .= support q by A1, XBOOLE_1:12 ; A10: dom (f | (support f)) = (dom f) /\ (support f) by RELAT_1:61 .= support f by PRE_POLY:37, XBOOLE_1:28 ; A11: support f = (support q) \ (support p) by A8, PRE_POLY:def_7; A12: for x being set st x in dom (f | (support f)) holds (f | (support f)) . x = (q | (support f)) . x proof let x be set ; ::_thesis: ( x in dom (f | (support f)) implies (f | (support f)) . x = (q | (support f)) . x ) assume A13: x in dom (f | (support f)) ; ::_thesis: (f | (support f)) . x = (q | (support f)) . x then A14: (q | (support f)) . x = q . x by A10, FUNCT_1:49; (f | (support f)) . x = f . x by A10, A13, FUNCT_1:49; hence (f | (support f)) . x = (q | (support f)) . x by A4, A11, A10, A13, A14; ::_thesis: verum end; dom (q | (support f)) = (dom q) /\ (support f) by RELAT_1:61 .= (dom q) /\ ((support q) \ (support p)) by A8, PRE_POLY:def_7 .= ((dom q) /\ (support q)) \ (support p) by XBOOLE_1:49 .= (support q) \ (support p) by PRE_POLY:37, XBOOLE_1:28 .= support f by A8, PRE_POLY:def_7 ; then A15: f | (support f) = q | (support f) by A10, A12, FUNCT_1:def_11; A16: support p misses support f proof assume support p meets support f ; ::_thesis: contradiction then ex x being set st ( x in support p & x in support f ) by XBOOLE_0:3; hence contradiction by A11, XBOOLE_0:def_5; ::_thesis: verum end; then (support p) /\ (support f) = {} by XBOOLE_0:def_7; then p + r = q by A2, A15, A9, Th2; hence ex r being bag of SetPrimes st ( support r = (support q) \ (support p) & support p misses support r & r | (support r) = q | (support r) & p + r = q ) by A11, A16, A15; ::_thesis: verum end; Lm3: for p being 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 ) proof let p be bag of SetPrimes ; ::_thesis: 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 ; ::_thesis: ( 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); A1: rng (p +* (X --> 0)) c= (rng p) \/ (rng (X --> 0)) by FUNCT_4:17; A2: rng (X --> 0) c= NAT by RELAT_1:def_19; A3: rng p c= NAT by VALUED_0:def_6; then (rng p) \/ (rng (X --> 0)) c= NAT by A2, XBOOLE_1:8; then A4: rng (p +* (X --> 0)) c= NAT by A1, XBOOLE_1:1; set fr = p +* ((SetPrimes \ X) --> 0); A5: 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 ; A6: rng (p +* ((SetPrimes \ X) --> 0)) c= (rng p) \/ (rng ((SetPrimes \ X) --> 0)) by FUNCT_4:17; rng ((SetPrimes \ X) --> 0) c= NAT by RELAT_1:def_19; then (rng p) \/ (rng ((SetPrimes \ X) --> 0)) c= NAT by A3, XBOOLE_1:8; then rng (p +* ((SetPrimes \ X) --> 0)) c= NAT by A6, XBOOLE_1:1; then reconsider fr = p +* ((SetPrimes \ X) --> 0) as Function of SetPrimes,NAT by A5, FUNCT_2:def_1, RELSET_1:4; assume A7: X c= support p ; ::_thesis: 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 ) A8: for x being set st not x in X & x in SetPrimes holds fr . x = 0 proof let x be set ; ::_thesis: ( not x in X & x in SetPrimes implies fr . x = 0 ) assume that A9: not x in X and A10: x in SetPrimes ; ::_thesis: fr . x = 0 A11: x in SetPrimes \ X by A9, A10, XBOOLE_0:def_5; then x in dom ((SetPrimes \ X) --> 0) by FUNCOP_1:13; then fr . x = ((SetPrimes \ X) --> 0) . x by FUNCT_4:13; hence fr . x = 0 by A11, FUNCOP_1:7; ::_thesis: verum end; A12: 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 A7, XBOOLE_1:1, XBOOLE_1:12 ; then reconsider fq = p +* (X --> 0) as Function of SetPrimes,NAT by A4, FUNCT_2:def_1, RELSET_1:4; A13: dom (fq | (support fq)) = (dom fq) /\ (support fq) by RELAT_1:61 .= support fq by PRE_POLY:37, XBOOLE_1:28 ; A14: for x being set st not x in SetPrimes holds ( fr . x = 0 & fq . x = 0 ) proof let x be set ; ::_thesis: ( not x in SetPrimes implies ( fr . x = 0 & fq . x = 0 ) ) assume A15: not x in SetPrimes ; ::_thesis: ( fr . x = 0 & fq . x = 0 ) then A16: not x in dom fr ; not x in dom fq by A15; hence ( fr . x = 0 & fq . x = 0 ) by A16, FUNCT_1:def_2; ::_thesis: verum end; A17: for x being set st x in X holds fr . x = p . x proof let x be set ; ::_thesis: ( x in X implies fr . x = p . x ) assume x in X ; ::_thesis: fr . x = p . x then not x in dom ((SetPrimes \ X) --> 0) by XBOOLE_0:def_5; hence fr . x = p . x by FUNCT_4:11; ::_thesis: verum end; A18: for x being set st x in SetPrimes & x in X holds fr . x <> 0 proof let x be set ; ::_thesis: ( x in SetPrimes & x in X implies fr . x <> 0 ) assume that x in SetPrimes and A19: x in X ; ::_thesis: fr . x <> 0 p . x <> 0 by A7, A19, PRE_POLY:def_7; hence fr . x <> 0 by A17, A19; ::_thesis: verum end; A20: for x being set holds ( x in X iff fr . x <> 0 ) proof let x be set ; ::_thesis: ( x in X iff fr . x <> 0 ) now__::_thesis:_(_x_in_X_iff_fr_._x_<>_0_) percases ( x in SetPrimes or not x in SetPrimes ) ; suppose x in SetPrimes ; ::_thesis: ( x in X iff fr . x <> 0 ) hence ( x in X iff fr . x <> 0 ) by A8, A18; ::_thesis: verum end; supposeA21: not x in SetPrimes ; ::_thesis: ( x in X iff fr . x <> 0 ) X c= SetPrimes by A7, XBOOLE_1:1; hence ( x in X iff fr . x <> 0 ) by A14, A21; ::_thesis: verum end; end; end; hence ( x in X iff fr . x <> 0 ) ; ::_thesis: verum end; then A22: support fr = X by PRE_POLY:def_7; then reconsider r = fr as bag of SetPrimes by A7, PRE_POLY:def_8; A23: support p c= dom p by PRE_POLY:37; A24: dom (fr | (support fr)) = (dom fr) /\ (support fr) by RELAT_1:61 .= support fr by PRE_POLY:37, XBOOLE_1:28 .= X by A20, PRE_POLY:def_7 ; A25: for x being set st x in dom (fr | (support fr)) holds (fr | (support fr)) . x = (p | (support fr)) . x proof let x be set ; ::_thesis: ( x in dom (fr | (support fr)) implies (fr | (support fr)) . x = (p | (support fr)) . x ) assume A26: x in dom (fr | (support fr)) ; ::_thesis: (fr | (support fr)) . x = (p | (support fr)) . x then A27: (p | (support fr)) . x = p . x by A22, A24, FUNCT_1:49; (fr | (support fr)) . x = fr . x by A22, A24, A26, FUNCT_1:49; hence (fr | (support fr)) . x = (p | (support fr)) . x by A17, A24, A26, A27; ::_thesis: verum end; dom (p | (support fr)) = (dom p) /\ (support fr) by RELAT_1:61 .= (dom p) /\ X by A20, PRE_POLY:def_7 .= X by A7, A23, XBOOLE_1:1, XBOOLE_1:28 ; then A28: fr | (support fr) = p | (support fr) by A24, A25, FUNCT_1:def_11; A29: for x being set st x in X holds fq . x = 0 proof let x be set ; ::_thesis: ( x in X implies fq . x = 0 ) assume A30: x in X ; ::_thesis: fq . x = 0 hence fq . x = (X --> 0) . x by A12, FUNCT_4:13 .= 0 by A30, FUNCOP_1:7 ; ::_thesis: verum end; A31: for x being set holds ( x in (support p) \ X iff fq . x <> 0 ) proof let x be set ; ::_thesis: ( x in (support p) \ X iff fq . x <> 0 ) percases ( x in X or not x in X ) ; suppose x in X ; ::_thesis: ( x in (support p) \ X iff fq . x <> 0 ) hence ( x in (support p) \ X iff fq . x <> 0 ) by A29, XBOOLE_0:def_5; ::_thesis: verum end; supposeA32: not x in X ; ::_thesis: ( x in (support p) \ X iff fq . x <> 0 ) then A33: fq . x = p . x by A12, FUNCT_4:11; percases ( x in support p or not x in support p ) ; suppose x in support p ; ::_thesis: ( x in (support p) \ X iff fq . x <> 0 ) hence ( x in (support p) \ X iff fq . x <> 0 ) by A32, A33, PRE_POLY:def_7, XBOOLE_0:def_5; ::_thesis: verum end; suppose not x in support p ; ::_thesis: ( x in (support p) \ X iff fq . x <> 0 ) hence ( x in (support p) \ X iff fq . x <> 0 ) by A33, PRE_POLY:def_7, XBOOLE_0:def_5; ::_thesis: verum end; end; end; end; end; then A34: support fq = (support p) \ X by PRE_POLY:def_7; then reconsider q = fq as bag of SetPrimes by PRE_POLY:def_8; A35: dom (p | (support fq)) = (dom p) /\ (support fq) by RELAT_1:61 .= (dom p) /\ ((support p) \ X) by A31, 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 A31, PRE_POLY:def_7 ; (support p) \ X misses X by XBOOLE_1:79; then A36: (support fq) /\ (support fr) = {} by A22, A34, XBOOLE_0:def_7; A37: for x being set st x in SetPrimes & x in support fq holds p . x = fq . x proof let x be set ; ::_thesis: ( x in SetPrimes & x in support fq implies p . x = fq . x ) assume that x in SetPrimes and A38: x in support fq ; ::_thesis: p . x = fq . x not x in X by A22, A36, A38, XBOOLE_0:def_4; hence p . x = fq . x by A12, FUNCT_4:11; ::_thesis: verum end; for x being set st x in dom (fq | (support fq)) holds (fq | (support fq)) . x = (p | (support fq)) . x proof let x be set ; ::_thesis: ( x in dom (fq | (support fq)) implies (fq | (support fq)) . x = (p | (support fq)) . x ) assume A39: x in dom (fq | (support fq)) ; ::_thesis: (fq | (support fq)) . x = (p | (support fq)) . x then A40: (p | (support fq)) . x = p . x by A13, FUNCT_1:49; (fq | (support fq)) . x = fq . x by A13, A39, FUNCT_1:49; hence (fq | (support fq)) . x = (p | (support fq)) . x by A13, A37, A39, A40; ::_thesis: verum end; then A41: fq | (support fq) = p | (support fq) by A13, A35, FUNCT_1:def_11; (support fr) \/ (support fq) = (support fr) \/ ((support p) \ (support fr)) by A20, A34, PRE_POLY:def_7 .= (support fr) \/ (support p) by XBOOLE_1:39 .= support p by A7, A22, XBOOLE_1:12 ; then q + r = p by A36, A41, A28, 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 A22, A34, A41, A28, XBOOLE_1:79; ::_thesis: verum end; definition let p be bag of SetPrimes ; attrp is prime-factorization-like means :Def1: :: INT_7:def 1 for x being Prime st x in support p holds ex n being Nat st ( 0 < n & p . x = x |^ n ); end; :: deftheorem Def1 defines prime-factorization-like INT_7:def_1_:_ for p being bag of SetPrimes holds ( p is prime-factorization-like iff for x being Prime st x in support p holds ex n being Nat st ( 0 < n & p . x = x |^ n ) ); registration let n be non empty Nat; cluster prime_factorization n -> prime-factorization-like ; coherence ppf n is prime-factorization-like proof let p be Prime; :: according to INT_7:def_1 ::_thesis: ( p in support (ppf n) implies ex n being Nat st ( 0 < n & (ppf n) . p = p |^ n ) ) assume A1: p in support (ppf n) ; ::_thesis: ex n being Nat st ( 0 < n & (ppf n) . p = p |^ n ) A2: p |-count n <> 0 proof assume p |-count n = 0 ; ::_thesis: contradiction then (ppf n) . p = 0 by NAT_3:55; hence contradiction by A1, PRE_POLY:def_7; ::_thesis: verum end; take p |-count n ; ::_thesis: ( 0 < p |-count n & (ppf n) . p = p |^ (p |-count n) ) p in support (pfexp n) by A1, NAT_3:def_9; hence ( 0 < p |-count n & (ppf n) . p = p |^ (p |-count n) ) by A2, NAT_3:def_9; ::_thesis: verum end; end; theorem Th5: :: INT_7:5 for p, q being Prime for n, m being Nat st p divides m * (q |^ n) & p <> q holds p divides m proof let p, q be Prime; ::_thesis: for n, m being Nat st p divides m * (q |^ n) & p <> q holds p divides m let n, m be Nat; ::_thesis: ( p divides m * (q |^ n) & p <> q implies p divides m ) assume that A1: p divides m * (q |^ n) and A2: p <> q ; ::_thesis: p divides m ( p divides m or p divides q |^ n ) by A1, NEWTON:80; hence p divides m by A2, NAT_3:6; ::_thesis: verum end; Lm4: for a being Prime for b being bag of SetPrimes st b is prime-factorization-like & a in support b holds ( a divides Product b & ex n being Nat st a |^ n divides Product b ) proof let a be Prime; ::_thesis: for b being bag of SetPrimes st b is prime-factorization-like & a in support b holds ( a divides Product b & ex n being Nat st a |^ n divides Product b ) let b be bag of SetPrimes ; ::_thesis: ( b is prime-factorization-like & a in support b implies ( a divides Product b & ex n being Nat st a |^ n divides Product b ) ) assume that A1: b is prime-factorization-like and A2: a in support b ; ::_thesis: ( a divides Product b & ex n being Nat st a |^ n divides Product b ) consider n being Nat such that A3: 0 < n and A4: b . a = a |^ n by A1, A2, Def1; A5: a divides b . a by A3, A4, NAT_3:3; A6: rng b c= NAT by VALUED_0:def_6; a in rng (canFS (support b)) by A2, FUNCT_2:def_3; then consider d being set such that A7: d in dom (canFS (support b)) and A8: a = (canFS (support b)) . d by FUNCT_1:def_3; consider f being FinSequence of COMPLEX such that A9: Product b = Product f and A10: f = b * (canFS (support b)) by NAT_3:def_5; rng f c= rng b by A10, RELAT_1:26; then rng f c= NAT by A6, XBOOLE_1:1; then reconsider f = f as FinSequence of NAT by FINSEQ_1:def_4; A11: rng (canFS (support b)) = support b by FUNCT_2:def_3; support b c= dom b by PRE_POLY:37; then A12: dom f = dom (canFS (support b)) by A10, A11, RELAT_1:27; then b . a = (b * (canFS (support b))) . d by A10, A7, A8, FUNCT_1:12; then b . a in rng f by A10, A12, A7, FUNCT_1:3; then a |^ n divides Product f by A4, NAT_3:7; hence ( a divides Product b & ex n being Nat st a |^ n divides Product b ) by A9, A4, A5, NAT_D:4; ::_thesis: verum end; Lm5: for p being FinSequence of NAT for x being Element of NAT for b being bag of SetPrimes st b is prime-factorization-like & p ^ <*x*> = b * (canFS (support b)) holds ex p1 being FinSequence of NAT ex q being Prime ex n being Element of NAT ex b1 being bag of SetPrimes st ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) proof deffunc H1( set ) -> Element of NAT = 0 ; let p be FinSequence of NAT ; ::_thesis: for x being Element of NAT for b being bag of SetPrimes st b is prime-factorization-like & p ^ <*x*> = b * (canFS (support b)) holds ex p1 being FinSequence of NAT ex q being Prime ex n being Element of NAT ex b1 being bag of SetPrimes st ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) let x be Element of NAT ; ::_thesis: for b being bag of SetPrimes st b is prime-factorization-like & p ^ <*x*> = b * (canFS (support b)) holds ex p1 being FinSequence of NAT ex q being Prime ex n being Element of NAT ex b1 being bag of SetPrimes st ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) let b be bag of SetPrimes ; ::_thesis: ( b is prime-factorization-like & p ^ <*x*> = b * (canFS (support b)) implies ex p1 being FinSequence of NAT ex q being Prime ex n being Element of NAT ex b1 being bag of SetPrimes st ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) ) assume that A1: b is prime-factorization-like and A2: p ^ <*x*> = b * (canFS (support b)) ; ::_thesis: ex p1 being FinSequence of NAT ex q being Prime ex n being Element of NAT ex b1 being bag of SetPrimes st ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) A3: rng (canFS (support b)) = support b by FUNCT_2:def_3; dom b = SetPrimes by PARTFUN1:def_2; then A4: dom (b * (canFS (support b))) = dom (canFS (support b)) by A3, RELAT_1:27; p = (b * (canFS (support b))) | (dom p) by A2, FINSEQ_1:21; then dom p = (dom (b * (canFS (support b)))) /\ (dom p) by RELAT_1:61; then A5: dom ((canFS (support b)) | (dom p)) = dom p by A4, RELAT_1:62, XBOOLE_1:17; deffunc H2( set ) -> Element of NAT = b . $1; A6: card (support b) = len (canFS (support b)) by UPROOTS:3; dom b = SetPrimes by PARTFUN1:def_2; then A7: dom (b * (canFS (support b))) = dom (canFS (support b)) by A3, RELAT_1:27; A8: (len p) + 1 in Seg ((len p) + 1) by FINSEQ_1:4; A9: len <*x*> = 1 by FINSEQ_1:40; then len (p ^ <*x*>) = (len p) + 1 by FINSEQ_1:22; then A10: (len p) + 1 in dom (b * (canFS (support b))) by A2, A8, FINSEQ_1:def_3; A11: x = (p ^ <*x*>) . ((len p) + 1) by FINSEQ_1:42 .= b . ((canFS (support b)) . ((len p) + 1)) by A2, A7, A10, FUNCT_1:13 ; A12: rng (canFS (support b)) = support b by FUNCT_2:def_3; then A13: (canFS (support b)) . ((len p) + 1) in support b by A7, A10, FUNCT_1:3; then reconsider q = (canFS (support b)) . ((len p) + 1) as Prime by NEWTON:def_6; defpred S1[ set ] means $1 in (support b) \ {q}; consider b1 being ManySortedSet of SetPrimes such that A14: for i being Element of SetPrimes st i in SetPrimes holds ( ( S1[i] implies b1 . i = H2(i) ) & ( not S1[i] implies b1 . i = H1(i) ) ) from PRE_CIRC:sch_2(); A15: rng b1 c= NAT proof let y be set ; :: according to TARSKI:def_3 ::_thesis: ( not y in rng b1 or y in NAT ) assume y in rng b1 ; ::_thesis: y in NAT then consider x being set such that A16: x in dom b1 and A17: y = b1 . x by FUNCT_1:def_3; reconsider x = x as Element of SetPrimes by A16; b1 . x in NAT proof percases ( x in (support b) \ {q} or not x in (support b) \ {q} ) ; suppose x in (support b) \ {q} ; ::_thesis: b1 . x in NAT then b1 . x = b . x by A14; hence b1 . x in NAT ; ::_thesis: verum end; suppose not x in (support b) \ {q} ; ::_thesis: b1 . x in NAT then b1 . x = 0 by A14; hence b1 . x in NAT ; ::_thesis: verum end; end; end; hence y in NAT by A17; ::_thesis: verum end; now__::_thesis:_for_z_being_set_st_z_in_support_b1_holds_ z_in_(support_b)_\_{q} let z be set ; ::_thesis: ( z in support b1 implies z in (support b) \ {q} ) assume A18: z in support b1 ; ::_thesis: z in (support b) \ {q} z in dom b1 proof assume not z in dom b1 ; ::_thesis: contradiction then b1 . z = {} by FUNCT_1:def_2; hence contradiction by A18, PRE_POLY:def_7; ::_thesis: verum end; then reconsider y = z as Element of SetPrimes ; assume A19: not z in (support b) \ {q} ; ::_thesis: contradiction b1 . y <> 0 by A18, PRE_POLY:def_7; hence contradiction by A14, A19; ::_thesis: verum end; then A20: support b1 c= (support b) \ {q} by TARSKI:def_3; now__::_thesis:_for_z_being_set_st_z_in_(support_b)_\_{q}_holds_ z_in_support_b1 let z be set ; ::_thesis: ( z in (support b) \ {q} implies z in support b1 ) assume A21: z in (support b) \ {q} ; ::_thesis: z in support b1 then A22: z in support b by XBOOLE_0:def_5; reconsider y = z as Element of SetPrimes by A21; b1 . y = b . y by A14, A21; then b1 . y <> 0 by A22, PRE_POLY:def_7; hence z in support b1 by PRE_POLY:def_7; ::_thesis: verum end; then A23: (support b) \ {q} c= support b1 by TARSKI:def_3; then A24: support b1 = (support b) \ {q} by A20, XBOOLE_0:def_10; reconsider b1 = b1 as bag of SetPrimes by A20, A15, PRE_POLY:def_8, VALUED_0:def_6; consider n being Nat such that A25: 0 < n and A26: b . q = q |^ n by A1, A13, Def1; reconsider n = n as Element of NAT by ORDINAL1:def_12; A27: rng (canFS (support b)) = support b by FUNCT_2:def_3; SetPrimes = dom b by PARTFUN1:def_2; then card (dom (b * (canFS (support b)))) = card (dom (canFS (support b))) by A27, RELAT_1:27 .= card (Seg (len (canFS (support b)))) by FINSEQ_1:def_3 .= card (len (canFS (support b))) by FINSEQ_1:55 .= len (canFS (support b)) ; then A28: len (canFS (support b)) = card (Seg (len (p ^ <*x*>))) by A2, FINSEQ_1:def_3 .= card (len (p ^ <*x*>)) by FINSEQ_1:55 .= (len p) + 1 by A9, FINSEQ_1:22 ; card ((support b) \ {q}) = (card (support b)) - (card {q}) by A7, A12, A10, EULER_1:4, FUNCT_1:3 .= (card (support b)) - 1 by CARD_1:30 ; then A29: len (canFS (support b1)) = len p by A24, A28, A6, UPROOTS:3; then A30: dom (canFS (support b1)) = Seg (len p) by FINSEQ_1:def_3; then A31: dom (canFS (support b1)) = dom p by FINSEQ_1:def_3; A32: now__::_thesis:_for_x_being_Prime_st_x_in_support_b1_holds_ ex_m_being_Nat_st_ (_0_<_m_&_b1_._x_=_x_|^_m_) let x be Prime; ::_thesis: ( x in support b1 implies ex m being Nat st ( 0 < m & b1 . x = x |^ m ) ) assume A33: x in support b1 ; ::_thesis: ex m being Nat st ( 0 < m & b1 . x = x |^ m ) (support b) \ {q} c= support b by XBOOLE_1:36; then consider m being Nat such that A34: 0 < m and A35: b . x = x |^ m by A1, A24, A33, Def1; take m = m; ::_thesis: ( 0 < m & b1 . x = x |^ m ) thus 0 < m by A34; ::_thesis: b1 . x = x |^ m thus b1 . x = x |^ m by A14, A20, A33, A35; ::_thesis: verum end; percases ( dom p = {} or dom p <> {} ) ; supposeA36: dom p = {} ; ::_thesis: ex p1 being FinSequence of NAT ex q being Prime ex n being Element of NAT ex b1 being bag of SetPrimes st ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) set p1 = b1 * (canFS (support b1)); A37: p = {} by A36; Seg (len (canFS (support b1))) = dom (canFS (support b1)) by FINSEQ_1:def_3 .= Seg (len p) by A29, FINSEQ_1:def_3 .= Seg 0 by A37 ; then canFS (support b1) = {} ; then A38: b1 * (canFS (support b1)) = <*> NAT ; then reconsider p1 = b1 * (canFS (support b1)) as FinSequence of NAT ; take p1 ; ::_thesis: ex q being Prime ex n being Element of NAT ex b1 being bag of SetPrimes st ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) take q ; ::_thesis: ex n being Element of NAT ex b1 being bag of SetPrimes st ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) take n ; ::_thesis: ex b1 being bag of SetPrimes st ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) take b1 ; ::_thesis: ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) thus ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) by A7, A12, A10, A11, A25, A26, A20, A23, A32, A36, A38, Def1, FUNCT_1:3, RELAT_1:41, XBOOLE_0:def_10; ::_thesis: verum end; supposeA39: dom p <> {} ; ::_thesis: ex p1 being FinSequence of NAT ex q being Prime ex n being Element of NAT ex b1 being bag of SetPrimes st ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) A40: rng (canFS (support b)) = support b by FUNCT_2:def_3; now__::_thesis:_for_y_being_set_st_y_in_(support_b)_\_{q}_holds_ y_in_rng_((canFS_(support_b))_|_(dom_p)) let y be set ; ::_thesis: ( y in (support b) \ {q} implies y in rng ((canFS (support b)) | (dom p)) ) assume A41: y in (support b) \ {q} ; ::_thesis: y in rng ((canFS (support b)) | (dom p)) then y in rng (canFS (support b)) by A40, XBOOLE_0:def_5; then consider x being set such that A42: x in dom (canFS (support b)) and A43: y = (canFS (support b)) . x by FUNCT_1:def_3; A44: x in dom p proof assume not x in dom p ; ::_thesis: contradiction then A45: not x in Seg (len p) by FINSEQ_1:def_3; A46: x in Seg ((len p) + 1) by A28, A42, FINSEQ_1:def_3; reconsider x = x as Element of NAT by A42; 1 <= x by A46, FINSEQ_1:1; then len p < x by A45; then A47: (len p) + 1 <= x by NAT_1:13; x <= (len p) + 1 by A46, FINSEQ_1:1; then x = (len p) + 1 by A47, XXREAL_0:1; then y in {q} by A43, TARSKI:def_1; hence contradiction by A41, XBOOLE_0:def_5; ::_thesis: verum end; then x in (dom (canFS (support b))) /\ (dom p) by A42, XBOOLE_0:def_4; then A48: x in dom ((canFS (support b)) | (dom p)) by RELAT_1:61; y = ((canFS (support b)) | (dom p)) . x by A43, A44, FUNCT_1:49; hence y in rng ((canFS (support b)) | (dom p)) by A48, FUNCT_1:3; ::_thesis: verum end; then A49: (support b) \ {q} c= rng ((canFS (support b)) | (dom p)) by TARSKI:def_3; now__::_thesis:_for_y_being_set_st_y_in_rng_((canFS_(support_b))_|_(dom_p))_holds_ y_in_(support_b)_\_{q} let y be set ; ::_thesis: ( y in rng ((canFS (support b)) | (dom p)) implies y in (support b) \ {q} ) assume y in rng ((canFS (support b)) | (dom p)) ; ::_thesis: y in (support b) \ {q} then consider x being set such that A50: x in dom ((canFS (support b)) | (dom p)) and A51: y = ((canFS (support b)) | (dom p)) . x by FUNCT_1:def_3; A52: y = (canFS (support b)) . x by A50, A51, FUNCT_1:47; A53: x in (dom (canFS (support b))) /\ (dom p) by A50, RELAT_1:61; then A54: x in dom (canFS (support b)) by XBOOLE_0:def_4; A55: x in dom p by A53, XBOOLE_0:def_4; y <> q proof (len p) + 1 in Seg ((len p) + 1) by FINSEQ_1:4; then A56: (len p) + 1 in dom (canFS (support b)) by A28, FINSEQ_1:def_3; assume y = q ; ::_thesis: contradiction then (len p) + 1 = x by A52, A54, A56, FUNCT_1:def_4; then A57: (len p) + 1 in Seg (len p) by A55, FINSEQ_1:def_3; (len p) + 0 < 1 + (len p) by XREAL_1:8; hence contradiction by A57, FINSEQ_1:1; ::_thesis: verum end; then A58: not y in {q} by TARSKI:def_1; y in rng (canFS (support b)) by A52, A54, FUNCT_1:3; hence y in (support b) \ {q} by A58, XBOOLE_0:def_5; ::_thesis: verum end; then rng ((canFS (support b)) | (dom p)) c= (support b) \ {q} by TARSKI:def_3; then A59: rng ((canFS (support b)) | (dom p)) = (support b) \ {q} by A49, XBOOLE_0:def_10; then reconsider L0 = (canFS (support b)) | (dom p) as Function of (dom p),((support b) \ {q}) by A5, FUNCT_2:1; A60: L0 is one-to-one by FUNCT_1:52; then A61: dom (L0 ") = (support b) \ {q} by A59, FUNCT_1:33; A62: (support b) \ {q} <> {} by A20, A30, A39, FINSEQ_1:def_3; then dom L0 = dom p by FUNCT_2:def_1; then A63: rng (L0 ") = dom p by A60, FUNCT_1:33; then reconsider LL1 = L0 " as Function of ((support b) \ {q}),(dom p) by A61, FUNCT_2:1; A64: rng (canFS (support b1)) = support b1 by FUNCT_2:def_3; then canFS (support b1) is Function of (dom p),((support b) \ {q}) by A24, A31, FUNCT_2:1; then reconsider L0L = LL1 * (canFS (support b1)) as Function of (dom p),(dom p) by A62, FUNCT_2:13; A65: L0 is one-to-one by FUNCT_1:52; rng L0L = dom p by A23, A61, A63, A64, RELAT_1:28; then L0L is onto by FUNCT_2:def_3; then reconsider LL = L0L as Permutation of (dom p) by A65; ((canFS (support b)) | (dom p)) * LL = (((canFS (support b)) | (dom p)) * LL1) * (canFS (support b1)) by RELAT_1:36 .= (id (support b1)) * (canFS (support b1)) by A24, A62, A59, A65, FUNCT_2:29 .= canFS (support b1) by FUNCT_2:17 ; then A66: (canFS (support b1)) * (LL ") = ((canFS (support b)) | (dom p)) * (LL * (LL ")) by RELAT_1:36; reconsider FS = canFS (support b1) as FinSequence ; reconsider L = LL " as Permutation of (dom p) ; A67: rng L = dom FS by A31, FUNCT_2:def_3; then A68: dom (FS * L) = dom L by RELAT_1:27 .= dom p by A39, FUNCT_2:def_1 ; set p1 = b1 * FS; A69: rng (canFS (support b1)) = support b1 by FUNCT_2:def_3; SetPrimes = dom b1 by PARTFUN1:def_2; then A70: dom (b1 * FS) = dom p by A31, A69, RELAT_1:27; then dom (b1 * FS) = Seg (len p) by FINSEQ_1:def_3; then A71: b1 * FS is FinSequence by FINSEQ_1:def_2; A72: rng (FS * L) = rng FS by A67, RELAT_1:28 .= (support b) \ {q} by A24, FUNCT_2:def_3 ; SetPrimes = dom b1 by PARTFUN1:def_2; then A73: dom p = dom (b1 * (FS * L)) by A68, A72, RELAT_1:27; rng LL = dom p by FUNCT_2:def_3; then A74: (canFS (support b1)) * (LL ") = ((canFS (support b)) | (dom p)) * (id (dom p)) by A39, A66, FUNCT_2:29; now__::_thesis:_for_k_being_set_st_k_in_dom_p_holds_ p_._k_=_(b1_*_(FS_*_L))_._k let k be set ; ::_thesis: ( k in dom p implies p . k = (b1 * (FS * L)) . k ) A75: dom p c= dom (p ^ <*x*>) by FINSEQ_1:26; assume A76: k in dom p ; ::_thesis: p . k = (b1 * (FS * L)) . k then A77: (FS * L) . k in (support b) \ {q} by A68, A72, FUNCT_1:3; thus p . k = (p ^ <*x*>) . k by A76, FINSEQ_1:def_7 .= b . ((canFS (support b)) . k) by A2, A76, A75, FUNCT_1:12 .= b . (((canFS (support b)) | (dom p)) . k) by A76, FUNCT_1:49 .= b . ((FS * L) . k) by A74, FUNCT_2:17 .= b1 . ((FS * L) . k) by A14, A77 .= (b1 * (FS * L)) . k by A73, A76, FUNCT_1:12 ; ::_thesis: verum end; then p = b1 * (FS * L) by A73, FUNCT_1:2 .= (b1 * FS) * L by RELAT_1:36 ; then A78: p,b1 * FS are_fiberwise_equipotent by A70, CLASSES1:80; rng (b1 * FS) c= NAT by VALUED_0:def_6; then reconsider p1 = b1 * FS as FinSequence of NAT by A71, FINSEQ_1:def_4; take p1 ; ::_thesis: ex q being Prime ex n being Element of NAT ex b1 being bag of SetPrimes st ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) take q ; ::_thesis: ex n being Element of NAT ex b1 being bag of SetPrimes st ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) take n ; ::_thesis: ex b1 being bag of SetPrimes st ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) take b1 ; ::_thesis: ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) Seg (len p1) = dom p by A70, FINSEQ_1:def_3; hence ( 0 < n & b1 is prime-factorization-like & q in support b & support b1 = (support b) \ {q} & x = q |^ n & len p1 = len p & Product p = Product p1 & p1 = b1 * (canFS (support b1)) ) by A7, A12, A10, A11, A25, A26, A20, A23, A32, A78, Def1, EULER_2:10, FINSEQ_1:def_3, FUNCT_1:3, XBOOLE_0:def_10; ::_thesis: verum end; end; end; Lm6: for i being Element of NAT for f being FinSequence of NAT for b being bag of SetPrimes for a being Prime st len f = i & b is prime-factorization-like & Product b <> 1 & a divides Product b & Product b = Product f & f = b * (canFS (support b)) holds a in support b proof defpred S1[ Element of NAT ] means for f being FinSequence of NAT for b being bag of SetPrimes for a being Prime st len f = $1 & b is prime-factorization-like & Product b <> 1 & a divides Product b & Product b = Product f & f = b * (canFS (support b)) holds a in support b; A1: for k being Element of NAT st S1[k] holds S1[k + 1] proof let k be Element of NAT ; ::_thesis: ( S1[k] implies S1[k + 1] ) assume A2: S1[k] ; ::_thesis: S1[k + 1] thus S1[k + 1] ::_thesis: verum proof A3: 1 <= k + 1 by NAT_1:11; let f be FinSequence of NAT ; ::_thesis: for b being bag of SetPrimes for a being Prime st len f = k + 1 & b is prime-factorization-like & Product b <> 1 & a divides Product b & Product b = Product f & f = b * (canFS (support b)) holds a in support b let b be bag of SetPrimes ; ::_thesis: for a being Prime st len f = k + 1 & b is prime-factorization-like & Product b <> 1 & a divides Product b & Product b = Product f & f = b * (canFS (support b)) holds a in support b let a be Prime; ::_thesis: ( len f = k + 1 & b is prime-factorization-like & Product b <> 1 & a divides Product b & Product b = Product f & f = b * (canFS (support b)) implies a in support b ) assume that A4: len f = k + 1 and A5: b is prime-factorization-like and Product b <> 1 and A6: a divides Product b and A7: Product b = Product f and A8: f = b * (canFS (support b)) ; ::_thesis: a in support b reconsider p = f | k as FinSequence of NAT ; reconsider x = f . (k + 1) as Element of NAT ; A9: len p = k by A4, FINSEQ_1:59, NAT_1:11; A10: f = (f | k) ^ <*(f /. (len f))*> by A4, FINSEQ_5:21 .= p ^ <*x*> by A4, A3, FINSEQ_4:15 ; then consider p1 being FinSequence of NAT , q being Prime, n being Element of NAT , b1 being bag of SetPrimes such that 0 < n and A11: b1 is prime-factorization-like and A12: q in support b and A13: support b1 = (support b) \ {q} and A14: x = q |^ n and A15: len p1 = len p and A16: Product p = Product p1 and A17: p1 = b1 * (canFS (support b1)) by A5, A8, Lm5; A18: Product f = (Product p1) * x by A10, A16, RVSUM_1:96; rng p1 c= COMPLEX by NUMBERS:20, XBOOLE_1:1; then p1 is FinSequence of COMPLEX by FINSEQ_1:def_4; then A19: Product b1 = Product p1 by A17, NAT_3:def_5; now__::_thesis:_a_in_support_b percases ( Product p1 = 1 or Product p1 <> 1 ) ; supposeA20: Product p1 = 1 ; ::_thesis: a in support b a <> 1 by INT_2:def_4; then ex k being Element of NAT st a = q * k by A6, A7, A14, A18, A20, PEPIN:32; then A21: q divides a by INT_1:def_3; q <> 1 by INT_2:def_4; hence a in support b by A12, A21, INT_2:def_4; ::_thesis: verum end; supposeA22: Product p1 <> 1 ; ::_thesis: a in support b percases ( a = q or a <> q ) ; suppose a = q ; ::_thesis: a in support b hence a in support b by A12; ::_thesis: verum end; supposeA23: a <> q ; ::_thesis: a in support b A24: support b1 c= support b by A13, XBOOLE_1:36; a in support b1 by A2, A6, A7, A9, A11, A14, A15, A17, A18, A19, A22, A23, Th5; hence a in support b by A24; ::_thesis: verum end; end; end; end; end; hence a in support b ; ::_thesis: verum end; end; A25: S1[ 0 ] proof let f be FinSequence of NAT ; ::_thesis: for b being bag of SetPrimes for a being Prime st len f = 0 & b is prime-factorization-like & Product b <> 1 & a divides Product b & Product b = Product f & f = b * (canFS (support b)) holds a in support b let b be bag of SetPrimes ; ::_thesis: for a being Prime st len f = 0 & b is prime-factorization-like & Product b <> 1 & a divides Product b & Product b = Product f & f = b * (canFS (support b)) holds a in support b let a be Prime; ::_thesis: ( len f = 0 & b is prime-factorization-like & Product b <> 1 & a divides Product b & Product b = Product f & f = b * (canFS (support b)) implies a in support b ) assume len f = 0 ; ::_thesis: ( not b is prime-factorization-like or not Product b <> 1 or not a divides Product b or not Product b = Product f or not f = b * (canFS (support b)) or a in support b ) then f = <*> NAT ; hence ( not b is prime-factorization-like or not Product b <> 1 or not a divides Product b or not Product b = Product f or not f = b * (canFS (support b)) or a in support b ) by RVSUM_1:94; ::_thesis: verum end; for k being Element of NAT holds S1[k] from NAT_1:sch_1(A25, A1); hence for i being Element of NAT for f being FinSequence of NAT for b being bag of SetPrimes for a being Prime st len f = i & b is prime-factorization-like & Product b <> 1 & a divides Product b & Product b = Product f & f = b * (canFS (support b)) holds a in support b ; ::_thesis: verum end; theorem Th6: :: INT_7:6 for f being FinSequence of NAT for b being bag of SetPrimes for a being Prime st b is prime-factorization-like & Product b <> 1 & a divides Product b & Product b = Product f & f = b * (canFS (support b)) holds a in support b proof let f be FinSequence of NAT ; ::_thesis: for b being bag of SetPrimes for a being Prime st b is prime-factorization-like & Product b <> 1 & a divides Product b & Product b = Product f & f = b * (canFS (support b)) holds a in support b let b be bag of SetPrimes ; ::_thesis: for a being Prime st b is prime-factorization-like & Product b <> 1 & a divides Product b & Product b = Product f & f = b * (canFS (support b)) holds a in support b let a be Prime; ::_thesis: ( b is prime-factorization-like & Product b <> 1 & a divides Product b & Product b = Product f & f = b * (canFS (support b)) implies a in support b ) assume that A1: b is prime-factorization-like and A2: Product b <> 1 and A3: a divides Product b and A4: Product b = Product f and A5: f = b * (canFS (support b)) ; ::_thesis: a in support b len f is Element of NAT ; hence a in support b by A1, A2, A3, A4, A5, Lm6; ::_thesis: verum end; Lm7: for a being Prime for b being bag of SetPrimes st b is prime-factorization-like & a divides Product b holds a in support b proof let a be Prime; ::_thesis: for b being bag of SetPrimes st b is prime-factorization-like & a divides Product b holds a in support b let b be bag of SetPrimes ; ::_thesis: ( b is prime-factorization-like & a divides Product b implies a in support b ) assume that A1: b is prime-factorization-like and A2: a divides Product b ; ::_thesis: a in support b percases ( Product b = 1 or Product b <> 1 ) ; supposeA3: Product b = 1 ; ::_thesis: a in support b a <> 1 by INT_2:def_4; hence a in support b by A2, A3, WSIERP_1:15; ::_thesis: verum end; supposeA4: Product b <> 1 ; ::_thesis: a in support b A5: rng b c= NAT by VALUED_0:def_6; consider f being FinSequence of COMPLEX such that A6: Product b = Product f and A7: f = b * (canFS (support b)) by NAT_3:def_5; rng f c= rng b by A7, RELAT_1:26; then rng f c= NAT by A5, XBOOLE_1:1; then reconsider f = f as FinSequence of NAT by FINSEQ_1:def_4; Product b = Product f by A6; hence a in support b by A1, A2, A4, A7, Th6; ::_thesis: verum end; end; end; theorem Th7: :: INT_7:7 for p, q being bag of SetPrimes st support p c= support q & p | (support p) = q | (support p) holds Product p divides Product q proof let p, q be bag of SetPrimes ; ::_thesis: ( support p c= support q & p | (support p) = q | (support p) implies Product p divides Product q ) assume that A1: support p c= support q and A2: p | (support p) = q | (support p) ; ::_thesis: Product p divides Product q consider r being bag of SetPrimes such that support r = (support q) \ (support p) and A3: support p misses support r and r | (support r) = q | (support r) and A4: p + r = q by A1, A2, Lm2; (Product p) * (Product r) = Product q by A3, A4, NAT_3:19; hence Product p divides Product q by INT_1:def_3; ::_thesis: verum end; theorem :: INT_7:8 for p being bag of SetPrimes for x being Prime st p is prime-factorization-like holds ( x divides Product p iff x in support p ) by Lm4, Lm7; theorem Th9: :: INT_7:9 for n, m, k being non empty Nat st k = n lcm m holds support (ppf k) = (support (ppf n)) \/ (support (ppf m)) proof let n, m, k be non empty Nat; ::_thesis: ( k = n lcm m implies support (ppf k) = (support (ppf n)) \/ (support (ppf m)) ) assume A1: k = n lcm m ; ::_thesis: support (ppf k) = (support (ppf n)) \/ (support (ppf m)) A2: support (ppf n) = support (pfexp n) by NAT_3:def_9; A3: (support (pfexp n)) \/ (support (pfexp m)) c= support (max ((pfexp n),(pfexp m))) proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in (support (pfexp n)) \/ (support (pfexp m)) or x in support (max ((pfexp n),(pfexp m))) ) assume A4: x in (support (pfexp n)) \/ (support (pfexp m)) ; ::_thesis: x in support (max ((pfexp n),(pfexp m))) percases ( x in support (pfexp n) or x in support (pfexp m) ) by A4, XBOOLE_0:def_3; supposeA5: x in support (pfexp n) ; ::_thesis: x in support (max ((pfexp n),(pfexp m))) A6: (pfexp n) . x <= (max ((pfexp n),(pfexp m))) . x proof percases ( (pfexp n) . x <= (pfexp m) . x or (pfexp n) . x > (pfexp m) . x ) ; suppose (pfexp n) . x <= (pfexp m) . x ; ::_thesis: (pfexp n) . x <= (max ((pfexp n),(pfexp m))) . x hence (pfexp n) . x <= (max ((pfexp n),(pfexp m))) . x by NAT_3:def_4; ::_thesis: verum end; suppose (pfexp n) . x > (pfexp m) . x ; ::_thesis: (pfexp n) . x <= (max ((pfexp n),(pfexp m))) . x hence (pfexp n) . x <= (max ((pfexp n),(pfexp m))) . x by NAT_3:def_4; ::_thesis: verum end; end; end; (pfexp n) . x <> 0 by A5, PRE_POLY:def_7; then 0 < (pfexp n) . x ; hence x in support (max ((pfexp n),(pfexp m))) by A6, PRE_POLY:def_7; ::_thesis: verum end; supposeA7: x in support (pfexp m) ; ::_thesis: x in support (max ((pfexp n),(pfexp m))) A8: (pfexp m) . x <= (max ((pfexp n),(pfexp m))) . x proof percases ( (pfexp n) . x <= (pfexp m) . x or (pfexp n) . x > (pfexp m) . x ) ; suppose (pfexp n) . x <= (pfexp m) . x ; ::_thesis: (pfexp m) . x <= (max ((pfexp n),(pfexp m))) . x hence (pfexp m) . x <= (max ((pfexp n),(pfexp m))) . x by NAT_3:def_4; ::_thesis: verum end; suppose (pfexp n) . x > (pfexp m) . x ; ::_thesis: (pfexp m) . x <= (max ((pfexp n),(pfexp m))) . x hence (pfexp m) . x <= (max ((pfexp n),(pfexp m))) . x by NAT_3:def_4; ::_thesis: verum end; end; end; (pfexp m) . x <> 0 by A7, PRE_POLY:def_7; then 0 < (pfexp m) . x ; hence x in support (max ((pfexp n),(pfexp m))) by A8, PRE_POLY:def_7; ::_thesis: verum end; end; end; A9: support (ppf m) = support (pfexp m) by NAT_3:def_9; A10: support (ppf k) = support (pfexp k) by NAT_3:def_9 .= support (max ((pfexp n),(pfexp m))) by A1, NAT_3:54 ; then support (ppf k) c= (support (ppf n)) \/ (support (ppf m)) by A2, A9, NAT_3:18; hence support (ppf k) = (support (ppf n)) \/ (support (ppf m)) by A10, A2, A9, A3, XBOOLE_0:def_10; ::_thesis: verum end; theorem Th10: :: INT_7:10 for X being set for b1, b2 being bag of X holds support (min (b1,b2)) = (support b1) /\ (support b2) proof let X be set ; ::_thesis: for b1, b2 being bag of X holds support (min (b1,b2)) = (support b1) /\ (support b2) let b1, b2 be bag of X; ::_thesis: support (min (b1,b2)) = (support b1) /\ (support b2) set f = min (b1,b2); A1: for x being set st x in support (min (b1,b2)) holds ( x in support b1 & x in support b2 ) proof let x be set ; ::_thesis: ( x in support (min (b1,b2)) implies ( x in support b1 & x in support b2 ) ) assume A2: x in support (min (b1,b2)) ; ::_thesis: ( x in support b1 & x in support b2 ) assume A3: ( not x in support b1 or not x in support b2 ) ; ::_thesis: contradiction now__::_thesis:_(_(_b1_._x_<=_b2_._x_&_contradiction_)_or_(_b2_._x_<_b1_._x_&_contradiction_)_) percases ( b1 . x <= b2 . x or b2 . x < b1 . x ) ; caseA4: b1 . x <= b2 . x ; ::_thesis: contradiction A5: not x in support b1 proof assume A6: x in support b1 ; ::_thesis: contradiction then A7: b1 . x <> 0 by PRE_POLY:def_7; b2 . x = 0 by A3, A6, PRE_POLY:def_7; hence contradiction by A4, A7; ::_thesis: verum end; (min (b1,b2)) . x = b1 . x by A4, NAT_3:def_3 .= 0 by A5, PRE_POLY:def_7 ; hence contradiction by A2, PRE_POLY:def_7; ::_thesis: verum end; caseA8: b2 . x < b1 . x ; ::_thesis: contradiction then (min (b1,b2)) . x = b2 . x by NAT_3:def_3 .= 0 by A3, A8, PRE_POLY:def_7 ; hence contradiction by A2, PRE_POLY:def_7; ::_thesis: verum end; end; end; hence contradiction ; ::_thesis: verum end; for x being set st x in support b1 & x in support b2 holds x in support (min (b1,b2)) proof let x be set ; ::_thesis: ( x in support b1 & x in support b2 implies x in support (min (b1,b2)) ) assume that A9: x in support b1 and A10: x in support b2 ; ::_thesis: x in support (min (b1,b2)) A11: b2 . x <> 0 by A10, PRE_POLY:def_7; A12: ( (min (b1,b2)) . x = b1 . x or (min (b1,b2)) . x = b2 . x ) by NAT_3:def_3; b1 . x <> 0 by A9, PRE_POLY:def_7; hence x in support (min (b1,b2)) by A11, A12, PRE_POLY:def_7; ::_thesis: verum end; hence support (min (b1,b2)) = (support b1) /\ (support b2) by A1, XBOOLE_0:def_4; ::_thesis: verum end; theorem :: INT_7:11 for n, m, k being non empty Nat st k = n gcd m holds support (ppf k) = (support (ppf n)) /\ (support (ppf m)) proof let n, m, k be non empty Nat; ::_thesis: ( k = n gcd m implies support (ppf k) = (support (ppf n)) /\ (support (ppf m)) ) assume A1: k = n gcd m ; ::_thesis: support (ppf k) = (support (ppf n)) /\ (support (ppf m)) A2: support (ppf n) = support (pfexp n) by NAT_3:def_9; A3: support (ppf m) = support (pfexp m) by NAT_3:def_9; support (ppf k) = support (pfexp k) by NAT_3:def_9 .= support (min ((pfexp n),(pfexp m))) by A1, NAT_3:53 ; hence support (ppf k) = (support (ppf n)) /\ (support (ppf m)) by A2, A3, Th10; ::_thesis: verum end; theorem Th12: :: INT_7:12 for p, q being bag of SetPrimes st p is prime-factorization-like & q is prime-factorization-like & support p misses support q holds Product p, Product q are_relative_prime proof let p, q be bag of SetPrimes ; ::_thesis: ( p is prime-factorization-like & q is prime-factorization-like & support p misses support q implies Product p, Product q are_relative_prime ) assume that A1: p is prime-factorization-like and A2: q is prime-factorization-like and A3: support p misses support q ; ::_thesis: Product p, Product q are_relative_prime assume not Product p, Product q are_relative_prime ; ::_thesis: contradiction then consider x being prime Nat such that A4: x divides Product p and A5: x divides Product q by PYTHTRIP:def_2; A6: x in support q by A2, A5, Lm7; x in support p by A1, A4, Lm7; hence contradiction by A3, A6, XBOOLE_0:3; ::_thesis: verum end; Lm8: for q being Prime for g being Element of NAT st g <> 0 holds ex p1 being bag of SetPrimes st ( p1 = (SetPrimes --> 0) +* (q,g) & support p1 = {q} & Product p1 = g ) proof let q be Prime; ::_thesis: for g being Element of NAT st g <> 0 holds ex p1 being bag of SetPrimes st ( p1 = (SetPrimes --> 0) +* (q,g) & support p1 = {q} & Product p1 = g ) let g be Element of NAT ; ::_thesis: ( g <> 0 implies ex p1 being bag of SetPrimes st ( p1 = (SetPrimes --> 0) +* (q,g) & support p1 = {q} & Product p1 = g ) ) set p = (SetPrimes --> 0) +* (q,g); reconsider p = (SetPrimes --> 0) +* (q,g) as ManySortedSet of SetPrimes ; dom (SetPrimes --> 0) = SetPrimes by FUNCOP_1:13; then q in dom (SetPrimes --> 0) by NEWTON:def_6; then A1: p . q = g by FUNCT_7:31; A2: for x being set st not x in {q} holds p . x = 0 proof let x be set ; ::_thesis: ( not x in {q} implies p . x = 0 ) assume not x in {q} ; ::_thesis: p . x = 0 then x <> q by TARSKI:def_1; hence p . x = 0 by Lm1; ::_thesis: verum end; now__::_thesis:_for_z_being_set_st_z_in_support_p_&_not_z_in_{q}_holds_ z_in_{q} let z be set ; ::_thesis: ( z in support p & not z in {q} implies z in {q} ) assume A3: z in support p ; ::_thesis: ( not z in {q} implies z in {q} ) z in dom p proof assume not z in dom p ; ::_thesis: contradiction then p . z = {} by FUNCT_1:def_2; hence contradiction by A3, PRE_POLY:def_7; ::_thesis: verum end; then reconsider y = z as Element of SetPrimes ; assume not z in {q} ; ::_thesis: z in {q} p . y <> 0 by A3, PRE_POLY:def_7; hence z in {q} by A2; ::_thesis: verum end; then for z being set st z in support p holds z in {q} ; then A4: support p c= {q} by TARSKI:def_3; assume A5: g <> 0 ; ::_thesis: ex p1 being bag of SetPrimes st ( p1 = (SetPrimes --> 0) +* (q,g) & support p1 = {q} & Product p1 = g ) now__::_thesis:_for_z_being_set_st_z_in_{q}_holds_ z_in_support_p let z be set ; ::_thesis: ( z in {q} implies z in support p ) assume z in {q} ; ::_thesis: z in support p then A6: z = q by TARSKI:def_1; thus z in support p by A5, A1, A6, PRE_POLY:def_7; ::_thesis: verum end; then A7: {q} c= support p by TARSKI:def_3; then A8: support p = {q} by A4, XBOOLE_0:def_10; reconsider p = p as bag of SetPrimes by A4, PRE_POLY:def_8; A9: q in support p by A8, TARSKI:def_1; A10: q in dom p proof assume not q in dom p ; ::_thesis: contradiction then p . q = {} by FUNCT_1:def_2; hence contradiction by A9, PRE_POLY:def_7; ::_thesis: verum end; take p ; ::_thesis: ( p = (SetPrimes --> 0) +* (q,g) & support p = {q} & Product p = g ) consider f being FinSequence of COMPLEX such that A11: Product p = Product f and A12: f = p * (canFS (support p)) by NAT_3:def_5; f = p * <*q*> by A8, A12, UPROOTS:4; then f = <*(p . q)*> by A10, FINSEQ_2:34; hence ( p = (SetPrimes --> 0) +* (q,g) & support p = {q} & Product p = g ) by A1, A4, A7, A11, RVSUM_1:95, XBOOLE_0:def_10; ::_thesis: verum end; Lm9: for p being bag of SetPrimes for x being Prime st p is prime-factorization-like & x in support p & p . x = x holds ex p1, r1 being bag of SetPrimes st ( p1 is prime-factorization-like & support r1 = {x} & Product r1 = x & support p1 = (support p) \ {x} & p1 | (support p1) = p | (support p1) & Product p = (Product p1) * x ) proof let p be bag of SetPrimes ; ::_thesis: for x being Prime st p is prime-factorization-like & x in support p & p . x = x holds ex p1, r1 being bag of SetPrimes st ( p1 is prime-factorization-like & support r1 = {x} & Product r1 = x & support p1 = (support p) \ {x} & p1 | (support p1) = p | (support p1) & Product p = (Product p1) * x ) let x be Prime; ::_thesis: ( p is prime-factorization-like & x in support p & p . x = x implies ex p1, r1 being bag of SetPrimes st ( p1 is prime-factorization-like & support r1 = {x} & Product r1 = x & support p1 = (support p) \ {x} & p1 | (support p1) = p | (support p1) & Product p = (Product p1) * x ) ) assume that A1: p is prime-factorization-like and A2: x in support p and A3: p . x = x ; ::_thesis: ex p1, r1 being bag of SetPrimes st ( p1 is prime-factorization-like & support r1 = {x} & Product r1 = x & support p1 = (support p) \ {x} & p1 | (support p1) = p | (support p1) & Product p = (Product p1) * x ) consider nx being Nat such that A4: 0 < nx and A5: p . x = x |^ nx by A1, A2, Def1; consider mx being Nat such that A6: nx = mx + 1 by A4, NAT_1:6; A7: mx = 0 proof assume mx <> 0 ; ::_thesis: contradiction then A8: 0 + 1 < mx + 1 by XREAL_1:8; 1 < x by INT_2:def_4; then x to_power 1 < x to_power nx by A6, A8, POWER:39; then x |^ 1 < x to_power nx by POWER:41; then x |^ 1 < x |^ nx by POWER:41; hence contradiction by A3, A5, NEWTON:5; ::_thesis: verum end; {x} c= support p by A2, ZFMISC_1:31; then consider q, r being bag of SetPrimes such that A9: support q = (support p) \ {x} and A10: support r = {x} and A11: support q misses support r and A12: q | (support q) = p | (support q) and A13: r | (support r) = p | (support r) and A14: q + r = p by Lm3; A15: r = (SetPrimes --> 0) +* (x,(r . x)) by A10, Th1; now__::_thesis:_for_z_being_Prime_st_z_in_support_q_holds_ ex_n_being_Nat_st_ (_0_<_n_&_q_._z_=_z_|^_n_) let z be Prime; ::_thesis: ( z in support q implies ex n being Nat st ( 0 < n & q . z = z |^ n ) ) assume A16: z in support q ; ::_thesis: ex n being Nat st ( 0 < n & q . z = z |^ n ) support q c= support p by A9, XBOOLE_1:36; then consider n being Nat such that A17: 0 < n and A18: p . z = z |^ n by A1, A16, Def1; take n = n; ::_thesis: ( 0 < n & q . z = z |^ n ) q . z = (q | (support q)) . z by A16, FUNCT_1:49 .= p . z by A12, A16, FUNCT_1:49 ; hence ( 0 < n & q . z = z |^ n ) by A17, A18; ::_thesis: verum end; then A19: q is prime-factorization-like by Def1; A20: x in support r by A10, TARSKI:def_1; then r . x = (r | (support r)) . x by FUNCT_1:49 .= p . x by A13, A20, FUNCT_1:49 .= x by A5, A6, A7, NEWTON:5 ; then A21: ex rr1 being bag of SetPrimes st ( rr1 = r & support rr1 = {x} & Product rr1 = x ) by A15, Lm8; (Product q) * (Product r) = Product p by A11, A14, NAT_3:19; hence ex p1, r1 being bag of SetPrimes st ( p1 is prime-factorization-like & support r1 = {x} & Product r1 = x & support p1 = (support p) \ {x} & p1 | (support p1) = p | (support p1) & Product p = (Product p1) * x ) by A9, A12, A19, A21; ::_thesis: verum end; Lm10: for p being bag of SetPrimes for x being Prime st p is prime-factorization-like & x in support p & p . x <> x holds ex p1, r1 being bag of SetPrimes st ( p1 is prime-factorization-like & support r1 = {x} & Product r1 = x & support p1 = support p & p1 | ((support p1) \ {x}) = p | ((support p1) \ {x}) & p . x = (p1 . x) * x & Product p = (Product p1) * x ) proof let p be bag of SetPrimes ; ::_thesis: for x being Prime st p is prime-factorization-like & x in support p & p . x <> x holds ex p1, r1 being bag of SetPrimes st ( p1 is prime-factorization-like & support r1 = {x} & Product r1 = x & support p1 = support p & p1 | ((support p1) \ {x}) = p | ((support p1) \ {x}) & p . x = (p1 . x) * x & Product p = (Product p1) * x ) let x be Prime; ::_thesis: ( p is prime-factorization-like & x in support p & p . x <> x implies ex p1, r1 being bag of SetPrimes st ( p1 is prime-factorization-like & support r1 = {x} & Product r1 = x & support p1 = support p & p1 | ((support p1) \ {x}) = p | ((support p1) \ {x}) & p . x = (p1 . x) * x & Product p = (Product p1) * x ) ) assume that A1: p is prime-factorization-like and A2: x in support p and A3: p . x <> x ; ::_thesis: ex p1, r1 being bag of SetPrimes st ( p1 is prime-factorization-like & support r1 = {x} & Product r1 = x & support p1 = support p & p1 | ((support p1) \ {x}) = p | ((support p1) \ {x}) & p . x = (p1 . x) * x & Product p = (Product p1) * x ) consider nx being Nat such that A4: 0 < nx and A5: p . x = x |^ nx by A1, A2, Def1; consider mx being Nat such that A6: nx = mx + 1 by A4, NAT_1:6; A7: mx <> 0 by A3, A5, A6, NEWTON:5; A8: dom (SetPrimes --> 0) = SetPrimes by FUNCOP_1:13; then A9: x in dom (SetPrimes --> 0) by NEWTON:def_6; set r10 = (SetPrimes --> 0) +* (x,x); x is Element of NAT by ORDINAL1:def_12; then A10: ex r1 being bag of SetPrimes st ( r1 = (SetPrimes --> 0) +* (x,x) & support r1 = {x} & Product r1 = x ) by Lm8; A11: {x} c= support p by A2, ZFMISC_1:31; then consider q, r being bag of SetPrimes such that A12: support q = (support p) \ {x} and A13: support r = {x} and A14: support q misses support r and A15: q | (support q) = p | (support q) and A16: r | (support r) = p | (support r) and A17: q + r = p by Lm3; A18: x in support r by A13, TARSKI:def_1; then A19: r . x = (r | (support r)) . x by FUNCT_1:49 .= p . x by A16, A18, FUNCT_1:49 ; then A20: (r . x) / x = ((x |^ mx) * x) / x by A5, A6, NEWTON:6 .= x |^ mx by XCMPLX_1:89 ; then reconsider rxx = (r . x) / x as Element of NAT by ORDINAL1:def_12; set r20 = (SetPrimes --> 0) +* (x,rxx); rxx <> 0 proof assume A21: rxx = 0 ; ::_thesis: contradiction r . x = rxx * x by XCMPLX_1:87 .= 0 by A21 ; hence contradiction by A5, A19; ::_thesis: verum end; then consider r2 being bag of SetPrimes such that A22: r2 = (SetPrimes --> 0) +* (x,rxx) and A23: support r2 = {x} and A24: Product r2 = rxx by Lm8; set p1 = q + r2; A25: r = (SetPrimes --> 0) +* (x,(r . x)) by A13, Th1; A26: now__::_thesis:_for_z_being_set_st_z_in_(support_(q_+_r2))_\_{x}_holds_ (q_+_r2)_._z_=_p_._z let z be set ; ::_thesis: ( z in (support (q + r2)) \ {x} implies (q + r2) . z = p . z ) A27: (q + r2) . z = (q . z) + (r2 . z) by PRE_POLY:def_5; assume A28: z in (support (q + r2)) \ {x} ; ::_thesis: (q + r2) . z = p . z then not z in {x} by XBOOLE_0:def_5; then A29: r2 . z = 0 by A23, PRE_POLY:def_7; z in support (q + r2) by A28, XBOOLE_0:def_5; then z in (support q) \/ (support r2) by PRE_POLY:38; then A30: ( z in support q or z in support r2 ) by XBOOLE_0:def_3; then q . z = (q | (support q)) . z by A23, A28, FUNCT_1:49, XBOOLE_0:def_5 .= p . z by A15, A23, A28, A30, FUNCT_1:49, XBOOLE_0:def_5 ; hence (q + r2) . z = p . z by A27, A29; ::_thesis: verum end; dom (q + r2) = SetPrimes by PARTFUN1:def_2 .= dom p by PARTFUN1:def_2 ; then A31: (q + r2) | ((support (q + r2)) \ {x}) = p | ((support (q + r2)) \ {x}) by A26, FUNCT_1:96; A32: (support q) /\ (support r) = {} by A14, XBOOLE_0:def_7; now__::_thesis:_for_z_being_Prime_st_z_in_support_(q_+_r2)_holds_ ex_n_being_Nat_st_ (_0_<_n_&_(q_+_r2)_._z_=_z_|^_n_) let z be Prime; ::_thesis: ( z in support (q + r2) implies ex n being Nat st ( 0 < b2 & (q + r2) . n = n |^ b2 ) ) A33: (q + r2) . z = (q . z) + (r2 . z) by PRE_POLY:def_5; assume z in support (q + r2) ; ::_thesis: ex n being Nat st ( 0 < b2 & (q + r2) . n = n |^ b2 ) then A34: z in (support q) \/ (support r2) by PRE_POLY:38; percases ( z in support q or z in support r2 ) by A34, XBOOLE_0:def_3; supposeA35: z in support q ; ::_thesis: ex n being Nat st ( 0 < b2 & (q + r2) . n = n |^ b2 ) then not z in {x} by A12, XBOOLE_0:def_5; then A36: r2 . z = 0 by A23, PRE_POLY:def_7; A37: support q c= support p by A12, XBOOLE_1:36; q . z = (q | (support q)) . z by A35, FUNCT_1:49 .= p . z by A15, A35, FUNCT_1:49 ; hence ex n being Nat st ( 0 < n & (q + r2) . z = z |^ n ) by A1, A33, A35, A37, A36, Def1; ::_thesis: verum end; supposeA38: z in support r2 ; ::_thesis: ex mx being Nat st ( 0 < b2 & (q + r2) . mx = mx |^ b2 ) take mx = mx; ::_thesis: ( 0 < mx & (q + r2) . z = z |^ mx ) thus 0 < mx by A7; ::_thesis: (q + r2) . z = z |^ mx A39: z = x by A23, A38, TARSKI:def_1; A40: not z in support q by A13, A32, A23, A38, XBOOLE_0:def_4; (q + r2) . z = (q . z) + (r2 . z) by PRE_POLY:def_5 .= 0 + (r2 . z) by A40, PRE_POLY:def_7 .= z |^ mx by A20, A22, A8, A38, A39, FUNCT_7:31 ; hence (q + r2) . z = z |^ mx ; ::_thesis: verum end; end; end; then A41: q + r2 is prime-factorization-like by Def1; x in {x} by TARSKI:def_1; then A42: not x in support q by A12, XBOOLE_0:def_5; (q + r2) . x = (q . x) + (r2 . x) by PRE_POLY:def_5 .= 0 + (r2 . x) by A42, PRE_POLY:def_7 .= rxx by A22, A9, FUNCT_7:31 ; then A43: p . x = ((q + r2) . x) * x by A19, XCMPLX_1:87; r . x = rxx * x by XCMPLX_1:87; then ex rr1 being bag of SetPrimes st ( rr1 = r & support rr1 = {x} & Product rr1 = rxx * x ) by A5, A19, A25, Lm8; then A44: Product p = (Product q) * ((Product r2) * x) by A14, A17, A24, NAT_3:19 .= ((Product q) * (Product r2)) * x .= (Product (q + r2)) * x by A13, A14, A23, NAT_3:19 ; support (q + r2) = ((support p) \ {x}) \/ {x} by A12, A23, PRE_POLY:38 .= (support p) \/ {x} by XBOOLE_1:39 .= support p by A11, XBOOLE_1:12 ; hence ex p1, r1 being bag of SetPrimes st ( p1 is prime-factorization-like & support r1 = {x} & Product r1 = x & support p1 = support p & p1 | ((support p1) \ {x}) = p | ((support p1) \ {x}) & p . x = (p1 . x) * x & Product p = (Product p1) * x ) by A10, A43, A44, A41, A31; ::_thesis: verum end; theorem Th13: :: INT_7:13 for p being bag of SetPrimes st p is prime-factorization-like holds Product p <> 0 proof let p be bag of SetPrimes ; ::_thesis: ( p is prime-factorization-like implies Product p <> 0 ) assume A1: p is prime-factorization-like ; ::_thesis: Product p <> 0 A2: rng (canFS (support p)) = support p by FUNCT_2:def_3; consider f being FinSequence of COMPLEX such that A3: Product p = Product f and A4: f = p * (canFS (support p)) by NAT_3:def_5; reconsider f = f as complex-yielding FinSequence ; assume Product p = 0 ; ::_thesis: contradiction then consider k being Nat such that A5: k in dom f and A6: f . k = 0 by A3, RVSUM_1:103; k in dom (canFS (support p)) by A4, A5, FUNCT_1:11; then A7: (canFS (support p)) . k in support p by A2, FUNCT_1:3; then reconsider q = (canFS (support p)) . k as Prime by NEWTON:def_6; ex n being Nat st ( 0 < n & p . q = q |^ n ) by A1, A7, Def1; hence contradiction by A4, A5, A6, FUNCT_1:12; ::_thesis: verum end; theorem Th14: :: INT_7:14 for p being bag of SetPrimes st p is prime-factorization-like holds ( Product p = 1 iff support p = {} ) proof let p be bag of SetPrimes ; ::_thesis: ( p is prime-factorization-like implies ( Product p = 1 iff support p = {} ) ) assume A1: p is prime-factorization-like ; ::_thesis: ( Product p = 1 iff support p = {} ) A2: now__::_thesis:_(_Product_p_=_1_implies_support_p_=_{}_) assume A3: Product p = 1 ; ::_thesis: support p = {} thus support p = {} ::_thesis: verum proof assume support p <> {} ; ::_thesis: contradiction then consider q being set such that A4: q in support p by XBOOLE_0:def_1; q in SetPrimes by A4; then reconsider q = q as Element of NAT ; reconsider q = q as Prime by A4, NEWTON:def_6; q = 1 by A1, A3, A4, Lm4, WSIERP_1:15; hence contradiction by INT_2:def_4; ::_thesis: verum end; end; now__::_thesis:_(_support_p_=_{}_implies_Product_p_=_1_) consider f being FinSequence of COMPLEX such that A5: Product p = Product f and A6: f = p * (canFS (support p)) by NAT_3:def_5; assume support p = {} ; ::_thesis: Product p = 1 hence Product p = 1 by A5, A6, RVSUM_1:94; ::_thesis: verum end; hence ( Product p = 1 iff support p = {} ) by A2; ::_thesis: verum end; Lm11: for n being Element of NAT for p, q being bag of SetPrimes st p is prime-factorization-like & q is prime-factorization-like & Product p <= 2 |^ n & Product p = Product q holds p = q proof defpred S1[ Element of NAT ] means for p, q being bag of SetPrimes st p is prime-factorization-like & q is prime-factorization-like & Product p <= 2 |^ $1 & Product p = Product q holds p = q; A1: now__::_thesis:_for_k_being_Element_of_NAT_st_S1[k]_holds_ S1[k_+_1] let k be Element of NAT ; ::_thesis: ( S1[k] implies S1[k + 1] ) assume A2: S1[k] ; ::_thesis: S1[k + 1] now__::_thesis:_for_p,_q_being_bag_of_SetPrimes_st_p_is_prime-factorization-like_&_q_is_prime-factorization-like_&_Product_p_<=_2_|^_(k_+_1)_&_Product_p_=_Product_q_holds_ p_=_q let p, q be bag of SetPrimes ; ::_thesis: ( p is prime-factorization-like & q is prime-factorization-like & Product p <= 2 |^ (k + 1) & Product p = Product q implies p = q ) assume that A3: p is prime-factorization-like and A4: q is prime-factorization-like and A5: Product p <= 2 |^ (k + 1) and A6: Product p = Product q ; ::_thesis: p = q now__::_thesis:_p_=_q percases ( support p = {} or support p <> {} ) ; supposeA7: support p = {} ; ::_thesis: p = q then Product p = 1 by A3, Th14; then support q = {} by A4, A6, Th14; hence p = q by A7, Th4; ::_thesis: verum end; suppose support p <> {} ; ::_thesis: p = q then consider x being set such that A8: x in support p by XBOOLE_0:def_1; reconsider x = x as Prime by A8, NEWTON:def_6; A9: x divides Product p by A3, A8, Lm4; then A10: x in support q by A4, A6, Lm7; percases ( p . x <> x or p . x = x ) ; suppose p . x <> x ; ::_thesis: p = q then consider p1, r1 being bag of SetPrimes such that A11: p1 is prime-factorization-like and support r1 = {x} and Product r1 = x and A12: support p1 = support p and A13: p1 | ((support p1) \ {x}) = p | ((support p1) \ {x}) and A14: p . x = (p1 . x) * x and A15: Product p = (Product p1) * x by A3, A8, Lm10; percases ( q . x <> x or q . x = x ) ; supposeA16: q . x <> x ; ::_thesis: p = q 1 < x by INT_2:def_4; then 1 + 1 <= x by NAT_1:13; then A17: (2 |^ (k + 1)) / x <= (2 |^ (k + 1)) / 2 by XREAL_1:118; consider q1, r2 being bag of SetPrimes such that A18: q1 is prime-factorization-like and support r2 = {x} and Product r2 = x and A19: support q1 = support q and A20: q1 | ((support q1) \ {x}) = q | ((support q1) \ {x}) and A21: q . x = (q1 . x) * x and A22: Product q = (Product q1) * x by A4, A6, A9, A16, Lm7, Lm10; ((Product p1) * x) / x <= (2 |^ (k + 1)) / x by A5, A15, XREAL_1:72; then ((Product p1) * x) / x <= (2 |^ (k + 1)) / 2 by A17, XXREAL_0:2; then Product p1 <= (2 |^ (k + 1)) / 2 by XCMPLX_1:89; then Product p1 <= ((2 |^ k) * (2 |^ 1)) / 2 by NEWTON:8; then A23: Product p1 <= ((2 |^ k) * 2) / 2 by NEWTON:5; then A24: p1 = q1 by A2, A6, A11, A15, A18, A22, XCMPLX_1:5; A25: now__::_thesis:_for_z_being_set_st_z_in_support_p_holds_ p_._z_=_q_._z let z be set ; ::_thesis: ( z in support p implies p . b1 = q . b1 ) assume A26: z in support p ; ::_thesis: p . b1 = q . b1 percases ( not z in {x} or z in {x} ) ; suppose not z in {x} ; ::_thesis: p . b1 = q . b1 then A27: z in (support p1) \ {x} by A12, A26, XBOOLE_0:def_5; hence p . z = (p | ((support p1) \ {x})) . z by FUNCT_1:49 .= q . z by A13, A20, A24, A27, FUNCT_1:49 ; ::_thesis: verum end; supposeA28: z in {x} ; ::_thesis: p . b1 = q . b1 hence p . z = (p1 . x) * x by A14, TARSKI:def_1 .= (q1 . x) * x by A2, A6, A11, A15, A18, A22, A23, XCMPLX_1:5 .= q . z by A21, A28, TARSKI:def_1 ; ::_thesis: verum end; end; end; A29: dom p = SetPrimes by PARTFUN1:def_2 .= dom q by PARTFUN1:def_2 ; support p = support q by A2, A6, A11, A12, A15, A18, A19, A22, A23, XCMPLX_1:5; then p | (support p) = q | (support q) by A29, A25, FUNCT_1:96; hence p = q by Th3; ::_thesis: verum end; supposeA30: q . x = x ; ::_thesis: p = q 1 < x by INT_2:def_4; then 1 + 1 <= x by NAT_1:13; then A31: (2 |^ (k + 1)) / x <= (2 |^ (k + 1)) / 2 by XREAL_1:118; ((Product p1) * x) / x <= (2 |^ (k + 1)) / x by A5, A15, XREAL_1:72; then ((Product p1) * x) / x <= (2 |^ (k + 1)) / 2 by A31, XXREAL_0:2; then Product p1 <= (2 |^ (k + 1)) / 2 by XCMPLX_1:89; then Product p1 <= ((2 |^ k) * (2 |^ 1)) / 2 by NEWTON:8; then A32: Product p1 <= ((2 |^ k) * 2) / 2 by NEWTON:5; ex q1, r2 being bag of SetPrimes st ( q1 is prime-factorization-like & support r2 = {x} & Product r2 = x & support q1 = (support q) \ {x} & q1 | (support q1) = q | (support q1) & Product q = (Product q1) * x ) by A4, A6, A9, A30, Lm7, Lm9; then support p = (support q) \ {x} by A2, A6, A11, A12, A15, A32, XCMPLX_1:5; then not x in {x} by A8, XBOOLE_0:def_5; hence p = q by TARSKI:def_1; ::_thesis: verum end; end; end; supposeA33: p . x = x ; ::_thesis: p = q then consider p1, r1 being bag of SetPrimes such that A34: p1 is prime-factorization-like and support r1 = {x} and Product r1 = x and A35: support p1 = (support p) \ {x} and A36: p1 | (support p1) = p | (support p1) and A37: Product p = (Product p1) * x by A3, A8, Lm9; percases ( q . x <> x or q . x = x ) ; supposeA38: q . x <> x ; ::_thesis: p = q 1 < x by INT_2:def_4; then 1 + 1 <= x by NAT_1:13; then A39: (2 |^ (k + 1)) / x <= (2 |^ (k + 1)) / 2 by XREAL_1:118; ((Product p1) * x) / x <= (2 |^ (k + 1)) / x by A5, A37, XREAL_1:72; then ((Product p1) * x) / x <= (2 |^ (k + 1)) / 2 by A39, XXREAL_0:2; then Product p1 <= (2 |^ (k + 1)) / 2 by XCMPLX_1:89; then Product p1 <= ((2 |^ k) * (2 |^ 1)) / 2 by NEWTON:8; then A40: Product p1 <= ((2 |^ k) * 2) / 2 by NEWTON:5; ex q1, r2 being bag of SetPrimes st ( q1 is prime-factorization-like & support r2 = {x} & Product r2 = x & support q1 = support q & q1 | ((support q1) \ {x}) = q | ((support q1) \ {x}) & q . x = (q1 . x) * x & Product q = (Product q1) * x ) by A4, A6, A9, A38, Lm7, Lm10; then (support p) \ {x} = support q by A2, A6, A34, A35, A37, A40, XCMPLX_1:5; then not x in {x} by A10, XBOOLE_0:def_5; hence p = q by TARSKI:def_1; ::_thesis: verum end; supposeA41: q . x = x ; ::_thesis: p = q 1 < x by INT_2:def_4; then 1 + 1 <= x by NAT_1:13; then A42: (2 |^ (k + 1)) / x <= (2 |^ (k + 1)) / 2 by XREAL_1:118; consider q1, r2 being bag of SetPrimes such that A43: q1 is prime-factorization-like and support r2 = {x} and Product r2 = x and A44: support q1 = (support q) \ {x} and A45: q1 | (support q1) = q | (support q1) and A46: Product q = (Product q1) * x by A4, A6, A9, A41, Lm7, Lm9; ((Product p1) * x) / x <= (2 |^ (k + 1)) / x by A5, A37, XREAL_1:72; then ((Product p1) * x) / x <= (2 |^ (k + 1)) / 2 by A42, XXREAL_0:2; then Product p1 <= (2 |^ (k + 1)) / 2 by XCMPLX_1:89; then Product p1 <= ((2 |^ k) * (2 |^ 1)) / 2 by NEWTON:8; then A47: Product p1 <= ((2 |^ k) * 2) / 2 by NEWTON:5; then (support p) \ {x} = (support q) \ {x} by A2, A6, A34, A35, A37, A43, A44, A46, XCMPLX_1:5; then (support p) \/ {x} = ((support q) \ {x}) \/ {x} by XBOOLE_1:39; then A48: (support p) \/ {x} = (support q) \/ {x} by XBOOLE_1:39; A49: p1 = q1 by A2, A6, A34, A37, A43, A46, A47, XCMPLX_1:5; A50: now__::_thesis:_for_z_being_set_st_z_in_support_p_holds_ p_._z_=_q_._z let z be set ; ::_thesis: ( z in support p implies p . b1 = q . b1 ) assume A51: z in support p ; ::_thesis: p . b1 = q . b1 percases ( not z in {x} or z in {x} ) ; suppose not z in {x} ; ::_thesis: p . b1 = q . b1 then A52: z in support p1 by A35, A51, XBOOLE_0:def_5; hence p . z = (p1 | (support p1)) . z by A36, FUNCT_1:49 .= q . z by A45, A49, A52, FUNCT_1:49 ; ::_thesis: verum end; supposeA53: z in {x} ; ::_thesis: p . b1 = q . b1 hence p . z = x by A33, TARSKI:def_1 .= q . z by A41, A53, TARSKI:def_1 ; ::_thesis: verum end; end; end; A54: {x} c= support q by A10, ZFMISC_1:31; {x} c= support p by A8, ZFMISC_1:31; then A55: support p = (support q) \/ {x} by A48, XBOOLE_1:12; dom p = SetPrimes by PARTFUN1:def_2 .= dom q by PARTFUN1:def_2 ; then p | (support p) = q | (support p) by A50, FUNCT_1:96 .= q | (support q) by A54, A55, XBOOLE_1:12 ; hence p = q by Th3; ::_thesis: verum end; end; end; end; end; end; end; hence p = q ; ::_thesis: verum end; hence S1[k + 1] ; ::_thesis: verum end; A56: S1[ 0 ] proof let p, q be bag of SetPrimes ; ::_thesis: ( p is prime-factorization-like & q is prime-factorization-like & Product p <= 2 |^ 0 & Product p = Product q implies p = q ) assume that A57: p is prime-factorization-like and A58: q is prime-factorization-like and A59: Product p <= 2 |^ 0 and A60: Product p = Product q ; ::_thesis: p = q Product p <> 0 by A57, Th13; then A61: 0 + 1 <= Product p by NAT_1:13; Product p <= 1 by A59, NEWTON:4; then A62: Product p = 1 by A61, XXREAL_0:1; then A63: support p = {} by A57, Th14; support q = {} by A58, A60, A62, Th14; hence p = q by A63, Th4; ::_thesis: verum end; for k being Element of NAT holds S1[k] from NAT_1:sch_1(A56, A1); hence for n being Element of NAT for p, q being bag of SetPrimes st p is prime-factorization-like & q is prime-factorization-like & Product p <= 2 |^ n & Product p = Product q holds p = q ; ::_thesis: verum end; theorem Th15: :: INT_7:15 for p, q being bag of SetPrimes st p is prime-factorization-like & q is prime-factorization-like & Product p = Product q holds p = q proof let p, q be bag of SetPrimes ; ::_thesis: ( p is prime-factorization-like & q is prime-factorization-like & Product p = Product q implies p = q ) assume that A1: p is prime-factorization-like and A2: q is prime-factorization-like and A3: Product p = Product q ; ::_thesis: p = q reconsider n = Product p as Element of NAT ; n <= 2 |^ n by NEWTON:86; hence p = q by A1, A2, A3, Lm11; ::_thesis: verum end; theorem :: INT_7:16 for p being bag of SetPrimes for n being non empty Nat st p is prime-factorization-like & n = Product p holds ppf n = p proof let p be bag of SetPrimes ; ::_thesis: for n being non empty Nat st p is prime-factorization-like & n = Product p holds ppf n = p let n be non empty Nat; ::_thesis: ( p is prime-factorization-like & n = Product p implies ppf n = p ) assume that A1: p is prime-factorization-like and A2: n = Product p ; ::_thesis: ppf n = p Product (ppf n) = Product p by A2, NAT_3:61; hence ppf n = p by A1, Th15; ::_thesis: verum end; theorem Th17: :: INT_7:17 for n, m being Element of NAT st 1 <= n & 1 <= m holds ex m0, n0 being Element of NAT st ( n lcm m = n0 * m0 & n0 gcd m0 = 1 & n0 divides n & m0 divides m & n0 <> 0 & m0 <> 0 ) proof let n1, m1 be Element of NAT ; ::_thesis: ( 1 <= n1 & 1 <= m1 implies ex m0, n0 being Element of NAT st ( n1 lcm m1 = n0 * m0 & n0 gcd m0 = 1 & n0 divides n1 & m0 divides m1 & n0 <> 0 & m0 <> 0 ) ) assume that A1: 1 <= n1 and A2: 1 <= m1 ; ::_thesis: ex m0, n0 being Element of NAT st ( n1 lcm m1 = n0 * m0 & n0 gcd m0 = 1 & n0 divides n1 & m0 divides m1 & n0 <> 0 & m0 <> 0 ) reconsider n = n1, m = m1 as non empty Nat by A1, A2; set nm1 = n1 lcm m1; reconsider nm = n1 lcm m1 as non empty Nat by A1, A2, INT_2:4; set N1 = { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } ; set N2 = (support (ppf nm)) \ { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } ; A3: { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } c= support (ppf n) proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } or x in support (ppf n) ) assume x in { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } ; ::_thesis: x in support (ppf n) then ex p being Element of NAT st ( x = p & p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) ; hence x in support (ppf n) ; ::_thesis: verum end; A4: for x being set st x in (support (ppf nm)) \ { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } holds (pfexp nm) . x = (pfexp m) . x proof let x be set ; ::_thesis: ( x in (support (ppf nm)) \ { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } implies (pfexp nm) . x = (pfexp m) . x ) A5: ( (pfexp n) . x > (pfexp m) . x implies (max ((pfexp n),(pfexp m))) . x = (pfexp n) . x ) by NAT_3:def_4; assume x in (support (ppf nm)) \ { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } ; ::_thesis: (pfexp nm) . x = (pfexp m) . x then A6: not x in { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } by XBOOLE_0:def_5; A7: support (ppf n) = support (pfexp n) by NAT_3:def_9; A8: not (pfexp n) . x > (pfexp m) . x proof assume A9: (pfexp n) . x > (pfexp m) . x ; ::_thesis: contradiction then A10: (pfexp nm) . x = (pfexp n) . x by A5, NAT_3:54; A11: x in support (pfexp n) by A9, PRE_POLY:def_7; then x in SetPrimes ; hence contradiction by A6, A7, A10, A11; ::_thesis: verum end; ( (pfexp n) . x <= (pfexp m) . x implies (max ((pfexp n),(pfexp m))) . x = (pfexp m) . x ) by NAT_3:def_4; hence (pfexp nm) . x = (pfexp m) . x by A8, NAT_3:54; ::_thesis: verum end; A12: Product (ppf m) = m by NAT_3:61; A13: support (ppf nm) = (support (ppf n)) \/ (support (ppf m)) by Th9; then A14: support (ppf n) c= support (ppf nm) by XBOOLE_1:7; then consider ppm, ppn being bag of SetPrimes such that A15: support ppm = (support (ppf nm)) \ { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } and A16: support ppn = { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } and A17: support ppm misses support ppn and A18: ppm | (support ppm) = (ppf nm) | (support ppm) and A19: ppn | (support ppn) = (ppf nm) | (support ppn) and A20: ppm + ppn = ppf nm by A3, Lm3, XBOOLE_1:1; reconsider n0 = Product ppn, m0 = Product ppm as Element of NAT ; A21: Product (ppf n) = n by NAT_3:61; A22: (support (ppf nm)) \ { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } c= support (ppf m) proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in (support (ppf nm)) \ { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } or x in support (ppf m) ) A23: ( (pfexp n) . x <= (pfexp m) . x implies (max ((pfexp n),(pfexp m))) . x = (pfexp m) . x ) by NAT_3:def_4; A24: ( (pfexp n) . x > (pfexp m) . x implies (max ((pfexp n),(pfexp m))) . x = (pfexp n) . x ) by NAT_3:def_4; assume A25: x in (support (ppf nm)) \ { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } ; ::_thesis: x in support (ppf m) then A26: x in SetPrimes ; A27: x in support (ppf nm) by A25, XBOOLE_0:def_5; then x in support (pfexp nm) by NAT_3:def_9; then A28: ( (pfexp nm) . x = (pfexp m) . x implies (pfexp m) . x <> 0 ) by PRE_POLY:def_7; not x in { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } by A25, XBOOLE_0:def_5; then A29: ( not x in support (ppf n) or (pfexp nm) . x <> (pfexp n) . x ) by A26; support (ppf m) = support (pfexp m) by NAT_3:def_9; hence x in support (ppf m) by A13, A27, A29, A23, A24, A28, NAT_3:54, PRE_POLY:def_7, XBOOLE_0:def_3; ::_thesis: verum end; { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } \/ ((support (ppf nm)) \ { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } ) = support (ppf nm) by A14, A3, XBOOLE_1:1, XBOOLE_1:45; then A30: (support (ppf nm)) \ { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } c= support (ppf nm) by XBOOLE_1:7; A31: now__::_thesis:_for_x2_being_set_st_x2_in_(support_(ppf_nm))_\__{__p_where_p_is_Element_of_NAT_:_(_p_in_support_(ppf_n)_&_(pfexp_nm)_._p_=_(pfexp_n)_._p_)__}__holds_ (ppf_nm)_._x2_=_(ppf_m)_._x2 let x2 be set ; ::_thesis: ( x2 in (support (ppf nm)) \ { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } implies (ppf nm) . x2 = (ppf m) . x2 ) assume A32: x2 in (support (ppf nm)) \ { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } ; ::_thesis: (ppf nm) . x2 = (ppf m) . x2 then reconsider x = x2 as Prime by NEWTON:def_6; x2 in support (ppf m) by A22, A32; then A33: x2 in support (pfexp m) by NAT_3:def_9; x2 in support (ppf nm) by A30, A32; then x2 in support (pfexp nm) by NAT_3:def_9; hence (ppf nm) . x2 = x |^ (x |-count nm) by NAT_3:def_9 .= x |^ ((pfexp nm) . x) by NAT_3:def_8 .= x |^ ((pfexp m) . x) by A4, A32 .= x |^ (x |-count m) by NAT_3:def_8 .= (ppf m) . x2 by A33, NAT_3:def_9 ; ::_thesis: verum end; dom (ppf nm) = SetPrimes by PARTFUN1:def_2 .= dom (ppf m) by PARTFUN1:def_2 ; then ppm | ((support (ppf nm)) \ { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } ) = (ppf m) | ((support (ppf nm)) \ { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } ) by A15, A18, A31, FUNCT_1:96; then A34: m0 divides m by A22, A12, A15, Th7; A35: n0 * m0 = Product (ppf nm) by A17, A20, NAT_3:19 .= nm by NAT_3:61 ; then A36: m0 <> 0 ; now__::_thesis:_for_x_being_Prime_st_x_in_support_ppm_holds_ ex_m_being_Nat_st_ (_0_<_m_&_ppm_._x_=_x_|^_m_) let x be Prime; ::_thesis: ( x in support ppm implies ex m being Nat st ( 0 < m & ppm . x = x |^ m ) ) assume A37: x in support ppm ; ::_thesis: ex m being Nat st ( 0 < m & ppm . x = x |^ m ) then x in support (ppf nm) by A15, XBOOLE_0:def_5; then A38: x in support (pfexp nm) by NAT_3:def_9; then A39: (ppf nm) . x = x |^ (x |-count nm) by NAT_3:def_9; (pfexp nm) . x <> 0 by A38, NAT_3:36, NAT_3:38; then A40: 0 < x |-count nm by NAT_3:def_8; ppm . x = (ppm | (support ppm)) . x by A37, FUNCT_1:49 .= (ppf nm) . x by A18, A37, FUNCT_1:49 ; hence ex m being Nat st ( 0 < m & ppm . x = x |^ m ) by A39, A40; ::_thesis: verum end; then A41: ppm is prime-factorization-like by Def1; A42: { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } c= support (ppf nm) by A14, A3, XBOOLE_1:1; now__::_thesis:_for_x_being_Prime_st_x_in_support_ppn_holds_ ex_n_being_Nat_st_ (_0_<_n_&_ppn_._x_=_x_|^_n_) let x be Prime; ::_thesis: ( x in support ppn implies ex n being Nat st ( 0 < n & ppn . x = x |^ n ) ) assume A43: x in support ppn ; ::_thesis: ex n being Nat st ( 0 < n & ppn . x = x |^ n ) then x in support (ppf nm) by A42, A16; then A44: x in support (pfexp nm) by NAT_3:def_9; then A45: (ppf nm) . x = x |^ (x |-count nm) by NAT_3:def_9; (pfexp nm) . x <> 0 by A44, NAT_3:36, NAT_3:38; then A46: 0 < x |-count nm by NAT_3:def_8; ppn . x = (ppn | (support ppn)) . x by A43, FUNCT_1:49 .= (ppf nm) . x by A19, A43, FUNCT_1:49 ; hence ex n being Nat st ( 0 < n & ppn . x = x |^ n ) by A45, A46; ::_thesis: verum end; then ppn is prime-factorization-like by Def1; then n0,m0 are_relative_prime by A17, A41, Th12; then A47: n0 gcd m0 = 1 by INT_2:def_3; A48: for x being set st x in { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } holds (pfexp nm) . x = (pfexp n) . x proof let x be set ; ::_thesis: ( x in { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } implies (pfexp nm) . x = (pfexp n) . x ) assume x in { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } ; ::_thesis: (pfexp nm) . x = (pfexp n) . x then ex p being Element of NAT st ( x = p & p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) ; hence (pfexp nm) . x = (pfexp n) . x ; ::_thesis: verum end; A49: now__::_thesis:_for_x1_being_set_st_x1_in__{__p_where_p_is_Element_of_NAT_:_(_p_in_support_(ppf_n)_&_(pfexp_nm)_._p_=_(pfexp_n)_._p_)__}__holds_ (ppf_nm)_._x1_=_(ppf_n)_._x1 let x1 be set ; ::_thesis: ( x1 in { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } implies (ppf nm) . x1 = (ppf n) . x1 ) assume A50: x1 in { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } ; ::_thesis: (ppf nm) . x1 = (ppf n) . x1 then A51: x1 in support (ppf nm) by A42; then reconsider x = x1 as Prime by NEWTON:def_6; x1 in support (ppf n) by A3, A50; then A52: x1 in support (pfexp n) by NAT_3:def_9; x1 in support (pfexp nm) by A51, NAT_3:def_9; hence (ppf nm) . x1 = x |^ (x |-count nm) by NAT_3:def_9 .= x |^ ((pfexp nm) . x) by NAT_3:def_8 .= x |^ ((pfexp n) . x) by A48, A50 .= x |^ (x |-count n) by NAT_3:def_8 .= (ppf n) . x1 by A52, NAT_3:def_9 ; ::_thesis: verum end; dom (ppf nm) = SetPrimes by PARTFUN1:def_2 .= dom (ppf n) by PARTFUN1:def_2 ; then A53: ppn | { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } = (ppf n) | { p where p is Element of NAT : ( p in support (ppf n) & (pfexp nm) . p = (pfexp n) . p ) } by A16, A19, A49, FUNCT_1:96; n0 <> 0 by A35; hence ex m0, n0 being Element of NAT st ( n1 lcm m1 = n0 * m0 & n0 gcd m0 = 1 & n0 divides n1 & m0 divides m1 & n0 <> 0 & m0 <> 0 ) by A3, A21, A16, A53, A35, A34, A36, A47, Th7; ::_thesis: verum end; begin definition let n be Nat; assume A1: 1 < n ; func Segm0 n -> non empty finite Subset of NAT equals :Def2: :: INT_7:def 2 (Segm n) \ {0}; correctness coherence (Segm n) \ {0} is non empty finite Subset of NAT; proof A2: not 1 in {0} by TARSKI:def_1; 1 in Segm n by A1, NAT_1:44; hence (Segm n) \ {0} is non empty finite Subset of NAT by A2, XBOOLE_0:def_5; ::_thesis: verum end; end; :: deftheorem Def2 defines Segm0 INT_7:def_2_:_ for n being Nat st 1 < n holds Segm0 n = (Segm n) \ {0}; theorem Th18: :: INT_7:18 for n being Nat st 1 < n holds card (Segm0 n) = n - 1 proof let n be Nat; ::_thesis: ( 1 < n implies card (Segm0 n) = n - 1 ) A1: card (Segm n) = n by CARD_1:def_2; assume A2: 1 < n ; ::_thesis: card (Segm0 n) = n - 1 then A3: 0 in Segm n by NAT_1:44; A4: card {0} = 1 by CARD_1:30; Segm0 n = (Segm n) \ {0} by A2, Def2; hence card (Segm0 n) = n - 1 by A1, A3, A4, EULER_1:4; ::_thesis: verum end; definition let n be Prime; func multint0 n -> BinOp of (Segm0 n) equals :: INT_7:def 3 (multint n) || (Segm0 n); coherence (multint n) || (Segm0 n) is BinOp of (Segm0 n) proof A1: 1 < n by INT_2:def_4; then Segm0 n = (Segm n) \ {0} by Def2; then reconsider S = Segm0 n as Subset of (Segm n) by XBOOLE_1:36; multint n is Presv of Segm n,S proof let x be set ; :: according to REALSET1:def_4 ::_thesis: ( not x in [:S,S:] or (multint n) . x in S ) A2: 0 in Segm n by NAT_1:44; assume x in [:S,S:] ; ::_thesis: (multint n) . x in S then consider a, b being set such that A3: a in Segm0 n and A4: b in Segm0 n and A5: x = [a,b] by ZFMISC_1:def_2; A6: b in (Segm n) \ {0} by A1, A4, Def2; then reconsider b1 = b as Element of (INT.Ring n) by XBOOLE_0:def_5; not b in {0} by A6, XBOOLE_0:def_5; then b <> 0 by TARSKI:def_1; then A7: b <> 0. (INT.Ring n) by A2, FUNCT_7:def_1; A8: a in (Segm n) \ {0} by A1, A3, Def2; then reconsider a1 = a as Element of (INT.Ring n) by XBOOLE_0:def_5; set y = (multint n) . (a,b); A9: (multint n) . (a,b) = a1 * b1 ; not a in {0} by A8, XBOOLE_0:def_5; then a <> 0 by TARSKI:def_1; then a <> 0. (INT.Ring n) by A2, FUNCT_7:def_1; then (multint n) . (a,b) <> In (0,(Segm n)) by A9, A7, VECTSP_1:12; then (multint n) . (a,b) <> 0 by A9, FUNCT_7:def_1; then not (multint n) . (a,b) in {0} by TARSKI:def_1; then (multint n) . (a,b) in (Segm n) \ {0} by A9, XBOOLE_0:def_5; hence (multint n) . x in S by A1, A5, Def2; ::_thesis: verum end; hence (multint n) || (Segm0 n) is BinOp of (Segm0 n) by REALSET1:6; ::_thesis: verum end; end; :: deftheorem defines multint0 INT_7:def_3_:_ for n being Prime holds multint0 n = (multint n) || (Segm0 n); Lm12: for p being Prime for a, b being Element of multMagma(# (Segm0 p),(multint0 p) #) for x, y being Element of (INT.Ring p) st a = x & y = b holds x * y = a * b proof let p be Prime; ::_thesis: for a, b being Element of multMagma(# (Segm0 p),(multint0 p) #) for x, y being Element of (INT.Ring p) st a = x & y = b holds x * y = a * b let a, b be Element of multMagma(# (Segm0 p),(multint0 p) #); ::_thesis: for x, y being Element of (INT.Ring p) st a = x & y = b holds x * y = a * b let x, y be Element of (INT.Ring p); ::_thesis: ( a = x & y = b implies x * y = a * b ) assume that A1: a = x and A2: y = b ; ::_thesis: x * y = a * b thus a * b = (multint p) . [a,b] by FUNCT_1:49 .= x * y by A1, A2 ; ::_thesis: verum end; theorem Th19: :: INT_7:19 for p being Prime holds ( multMagma(# (Segm0 p),(multint0 p) #) is associative & multMagma(# (Segm0 p),(multint0 p) #) is commutative & multMagma(# (Segm0 p),(multint0 p) #) is Group-like ) proof let p be Prime; ::_thesis: ( multMagma(# (Segm0 p),(multint0 p) #) is associative & multMagma(# (Segm0 p),(multint0 p) #) is commutative & multMagma(# (Segm0 p),(multint0 p) #) is Group-like ) set Zp = multMagma(# (Segm0 p),(multint0 p) #); A1: not 1 in {0} by TARSKI:def_1; A2: 1 < p by INT_2:def_4; then 1 in Segm p by NAT_1:44; then 1 in (Segm p) \ {0} by A1, XBOOLE_0:def_5; then 1 in Segm0 p by A2, Def2; then reconsider e = 1. (INT.Ring p) as Element of multMagma(# (Segm0 p),(multint0 p) #) by A2, INT_3:14; A3: multMagma(# (Segm0 p),(multint0 p) #) is associative proof let x, y, z be Element of multMagma(# (Segm0 p),(multint0 p) #); :: according to GROUP_1:def_3 ::_thesis: (x * y) * z = x * (y * z) x in Segm0 p ; then x in (Segm p) \ {0} by A2, Def2; then reconsider x1 = x as Element of (INT.Ring p) by XBOOLE_0:def_5; y in Segm0 p ; then y in (Segm p) \ {0} by A2, Def2; then reconsider y1 = y as Element of (INT.Ring p) by XBOOLE_0:def_5; z in Segm0 p ; then z in (Segm p) \ {0} by A2, Def2; then reconsider z1 = z as Element of (INT.Ring p) by XBOOLE_0:def_5; A4: y * z = y1 * z1 by Lm12; x * y = x1 * y1 by Lm12; then (x * y) * z = (x1 * y1) * z1 by Lm12 .= x1 * (y1 * z1) by GROUP_1:def_3 .= x * (y * z) by A4, Lm12 ; hence (x * y) * z = x * (y * z) ; ::_thesis: verum end; A5: now__::_thesis:_for_h_being_Element_of_multMagma(#_(Segm0_p),(multint0_p)_#)_holds_ (_h_*_e_=_h_&_e_*_h_=_h_&_ex_g_being_Element_of_multMagma(#_(Segm0_p),(multint0_p)_#)_st_ (_h_*_g_=_e_&_g_*_h_=_e_)_) let h be Element of multMagma(# (Segm0 p),(multint0 p) #); ::_thesis: ( h * e = h & e * h = h & ex g being Element of multMagma(# (Segm0 p),(multint0 p) #) st ( h * g = e & g * h = e ) ) h in Segm0 p ; then A6: h in (Segm p) \ {0} by A2, Def2; then reconsider hp = h as Element of (INT.Ring p) by XBOOLE_0:def_5; thus h * e = hp * (1_ (INT.Ring p)) by Lm12 .= h by GROUP_1:def_4 ; ::_thesis: ( e * h = h & ex g being Element of multMagma(# (Segm0 p),(multint0 p) #) st ( h * g = e & g * h = e ) ) thus e * h = (1_ (INT.Ring p)) * hp by Lm12 .= h by GROUP_1:def_4 ; ::_thesis: ex g being Element of multMagma(# (Segm0 p),(multint0 p) #) st ( h * g = e & g * h = e ) not h in {0} by A6, XBOOLE_0:def_5; then A7: hp <> 0 by TARSKI:def_1; 0 in Segm p by NAT_1:44; then hp <> 0. (INT.Ring p) by A7, FUNCT_7:def_1; then consider hpd being Element of (INT.Ring p) such that A8: hpd * hp = 1. (INT.Ring p) by VECTSP_1:def_9; hpd <> 0. (INT.Ring p) by A8, VECTSP_1:6; then hpd <> 0 by FUNCT_7:def_1; then not hpd in {0} by TARSKI:def_1; then hpd in (Segm p) \ {0} by XBOOLE_0:def_5; then reconsider g = hpd as Element of multMagma(# (Segm0 p),(multint0 p) #) by A2, Def2; A9: g * h = e by A8, Lm12; h * g = e by A8, Lm12; hence ex g being Element of multMagma(# (Segm0 p),(multint0 p) #) st ( h * g = e & g * h = e ) by A9; ::_thesis: verum end; multMagma(# (Segm0 p),(multint0 p) #) is commutative proof let x, y be Element of multMagma(# (Segm0 p),(multint0 p) #); :: according to GROUP_1:def_12 ::_thesis: x * y = y * x x in Segm0 p ; then x in (Segm p) \ {0} by A2, Def2; then reconsider x1 = x as Element of (INT.Ring p) by XBOOLE_0:def_5; y in Segm0 p ; then y in (Segm p) \ {0} by A2, Def2; then reconsider y1 = y as Element of (INT.Ring p) by XBOOLE_0:def_5; x * y = x1 * y1 by Lm12 .= y * x by Lm12 ; hence x * y = y * x ; ::_thesis: verum end; hence ( multMagma(# (Segm0 p),(multint0 p) #) is associative & multMagma(# (Segm0 p),(multint0 p) #) is commutative & multMagma(# (Segm0 p),(multint0 p) #) is Group-like ) by A5, A3, GROUP_1:def_2; ::_thesis: verum end; definition let p be Prime; func Z/Z* p -> commutative Group equals :: INT_7:def 4 multMagma(# (Segm0 p),(multint0 p) #); correctness coherence multMagma(# (Segm0 p),(multint0 p) #) is commutative Group; by Th19; end; :: deftheorem defines Z/Z* INT_7:def_4_:_ for p being Prime holds Z/Z* p = multMagma(# (Segm0 p),(multint0 p) #); theorem :: INT_7:20 for p being Prime for x, y being Element of (Z/Z* p) for x1, y1 being Element of (INT.Ring p) st x = x1 & y = y1 holds x * y = x1 * y1 by Lm12; theorem Th21: :: INT_7:21 for p being Prime holds ( 1_ (Z/Z* p) = 1 & 1_ (Z/Z* p) = 1. (INT.Ring p) ) proof let p be Prime; ::_thesis: ( 1_ (Z/Z* p) = 1 & 1_ (Z/Z* p) = 1. (INT.Ring p) ) A1: not 1 in {0} by TARSKI:def_1; A2: 1 < p by INT_2:def_4; then 1 in Segm p by NAT_1:44; then 1 in (Segm p) \ {0} by A1, XBOOLE_0:def_5; then 1 in Segm0 p by A2, Def2; then reconsider e = 1. (INT.Ring p) as Element of (Z/Z* p) by A2, INT_3:14; now__::_thesis:_for_h_being_Element_of_(Z/Z*_p)_holds_ (_h_*_e_=_h_&_e_*_h_=_h_) let h be Element of (Z/Z* p); ::_thesis: ( h * e = h & e * h = h ) h in Segm0 p ; then h in (Segm p) \ {0} by A2, Def2; then reconsider hp = h as Element of (INT.Ring p) by XBOOLE_0:def_5; thus h * e = hp * (1_ (INT.Ring p)) by Lm12 .= h by GROUP_1:def_4 ; ::_thesis: e * h = h thus e * h = (1_ (INT.Ring p)) * hp by Lm12 .= h by GROUP_1:def_4 ; ::_thesis: verum end; then e = 1_ (Z/Z* p) by GROUP_1:def_4; hence ( 1_ (Z/Z* p) = 1 & 1_ (Z/Z* p) = 1. (INT.Ring p) ) by A2, INT_3:14; ::_thesis: verum end; theorem :: INT_7:22 for p being Prime for x being Element of (Z/Z* p) for x1 being Element of (INT.Ring p) st x = x1 holds x " = x1 " proof let p be Prime; ::_thesis: for x being Element of (Z/Z* p) for x1 being Element of (INT.Ring p) st x = x1 holds x " = x1 " let h be Element of (Z/Z* p); ::_thesis: for x1 being Element of (INT.Ring p) st h = x1 holds h " = x1 " let hp be Element of (INT.Ring p); ::_thesis: ( h = hp implies h " = hp " ) assume A1: h = hp ; ::_thesis: h " = hp " A2: 0 in Segm p by NAT_1:44; set hpd = hp " ; A3: 1 < p by INT_2:def_4; h in Segm0 p ; then h in (Segm p) \ {0} by A3, Def2; then not h in {0} by XBOOLE_0:def_5; then hp <> 0 by A1, TARSKI:def_1; then A4: hp <> 0. (INT.Ring p) by A2, FUNCT_7:def_1; then hp * (hp ") = 1. (INT.Ring p) by VECTSP_1:def_10; then hp " <> 0. (INT.Ring p) by VECTSP_1:6; then hp " <> 0 by FUNCT_7:def_1; then not hp " in {0} by TARSKI:def_1; then hp " in (Segm p) \ {0} by XBOOLE_0:def_5; then reconsider g = hp " as Element of (Z/Z* p) by A3, Def2; h * g = hp * (hp ") by A1, Lm12 .= 1. (INT.Ring p) by A4, VECTSP_1:def_10 .= 1_ (Z/Z* p) by Th21 ; hence h " = hp " by GROUP_1:def_5; ::_thesis: verum end; registration let p be Prime; cluster Z/Z* p -> finite commutative ; coherence Z/Z* p is finite ; end; theorem :: INT_7:23 for p being Prime holds card (Z/Z* p) = p - 1 proof let p be Prime; ::_thesis: card (Z/Z* p) = p - 1 1 < p by INT_2:def_4; hence card (Z/Z* p) = p - 1 by Th18; ::_thesis: verum end; theorem :: INT_7:24 for G being Group for a being Element of G for i being Integer st not a is being_of_order_0 holds ex n, k being Element of NAT st ( a |^ i = a |^ n & n = (k * (ord a)) + i ) proof let G be Group; ::_thesis: for a being Element of G for i being Integer st not a is being_of_order_0 holds ex n, k being Element of NAT st ( a |^ i = a |^ n & n = (k * (ord a)) + i ) let a be Element of G; ::_thesis: for i being Integer st not a is being_of_order_0 holds ex n, k being Element of NAT st ( a |^ i = a |^ n & n = (k * (ord a)) + i ) let i be Integer; ::_thesis: ( not a is being_of_order_0 implies ex n, k being Element of NAT st ( a |^ i = a |^ n & n = (k * (ord a)) + i ) ) assume not a is being_of_order_0 ; ::_thesis: ex n, k being Element of NAT st ( a |^ i = a |^ n & n = (k * (ord a)) + i ) then ord a <> 0 by GROUP_1:def_11; then A1: abs i <= (abs i) * (ord a) by NAT_1:14, XREAL_1:151; 0 <= ((abs i) * (ord a)) + i proof percases ( i < 0 or 0 <= i ) ; supposeA2: i < 0 ; ::_thesis: 0 <= ((abs i) * (ord a)) + i A3: (abs i) + i <= ((abs i) * (ord a)) + i by A1, XREAL_1:6; abs i = - i by A2, ABSVALUE:def_1; hence 0 <= ((abs i) * (ord a)) + i by A3; ::_thesis: verum end; suppose 0 <= i ; ::_thesis: 0 <= ((abs i) * (ord a)) + i hence 0 <= ((abs i) * (ord a)) + i ; ::_thesis: verum end; end; end; then A4: ((abs i) * (ord a)) + i is Element of NAT by INT_1:3; a |^ (((abs i) * (ord a)) + i) = (a |^ ((abs i) * (ord a))) * (a |^ i) by GROUP_1:33 .= ((a |^ (ord a)) |^ (abs i)) * (a |^ i) by GROUP_1:35 .= ((1_ G) |^ (abs i)) * (a |^ i) by GROUP_1:41 .= (1_ G) * (a |^ i) by GROUP_1:31 .= a |^ i by GROUP_1:def_4 ; hence ex n, k being Element of NAT st ( a |^ i = a |^ n & n = (k * (ord a)) + i ) by A4; ::_thesis: verum end; theorem Th25: :: INT_7:25 for G being commutative Group for a, b being Element of G for n, m being Nat st G is finite & ord a = n & ord b = m & n gcd m = 1 holds ord (a * b) = n * m proof let G be commutative Group; ::_thesis: for a, b being Element of G for n, m being Nat st G is finite & ord a = n & ord b = m & n gcd m = 1 holds ord (a * b) = n * m let a, b be Element of G; ::_thesis: for n, m being Nat st G is finite & ord a = n & ord b = m & n gcd m = 1 holds ord (a * b) = n * m let n, m be Nat; ::_thesis: ( G is finite & ord a = n & ord b = m & n gcd m = 1 implies ord (a * b) = n * m ) assume that A1: G is finite and A2: ord a = n and A3: ord b = m and A4: n gcd m = 1 ; ::_thesis: ord (a * b) = n * m not b is being_of_order_0 by A1, GR_CY_1:6; then A5: m <> 0 by A3, GROUP_1:def_11; A6: not a * b is being_of_order_0 by A1, GR_CY_1:6; A7: (a * b) |^ (n * m) = (a |^ (n * m)) * (b |^ (n * m)) by GROUP_1:48 .= ((a |^ n) |^ m) * (b |^ (n * m)) by GROUP_1:35 .= ((a |^ n) |^ m) * ((b |^ m) |^ n) by GROUP_1:35 .= ((1_ G) |^ m) * ((b |^ m) |^ n) by A2, GROUP_1:41 .= ((1_ G) |^ m) * ((1_ G) |^ n) by A3, GROUP_1:41 .= (1_ G) * ((1_ G) |^ n) by GROUP_1:31 .= (1_ G) * (1_ G) by GROUP_1:31 .= 1_ G by GROUP_1:def_4 ; A8: m * n is Element of NAT by ORDINAL1:def_12; reconsider n1 = n, m1 = m as Integer ; A9: n1,m1 are_relative_prime by A4, INT_2:def_3; not a is being_of_order_0 by A1, GR_CY_1:6; then A10: n <> 0 by A2, GROUP_1:def_11; A11: now__::_thesis:_for_k_being_Nat_st_(a_*_b)_|^_k_=_1__G_&_k_<>_0_holds_ m_*_n_<=_k let k be Nat; ::_thesis: ( (a * b) |^ k = 1_ G & k <> 0 implies m * n <= k ) assume that A12: (a * b) |^ k = 1_ G and A13: k <> 0 ; ::_thesis: m * n <= k reconsider k1 = k as Integer ; 1_ G = (1_ G) |^ n by GROUP_1:31 .= (a * b) |^ (k * n) by A12, GROUP_1:35 .= (a |^ (k * n)) * (b |^ (k * n)) by GROUP_1:48 .= ((a |^ n) |^ k) * (b |^ (k * n)) by GROUP_1:35 .= ((1_ G) |^ k) * (b |^ (k * n)) by A2, GROUP_1:41 .= (1_ G) * (b |^ (k * n)) by GROUP_1:31 .= b |^ (k * n) by GROUP_1:def_4 ; then m1 divides k1 by A3, A9, GROUP_1:44, INT_2:25; then consider i being Integer such that A14: k1 = m1 * i by INT_1:def_3; 1_ G = (1_ G) |^ m by GROUP_1:31 .= (a * b) |^ (k * m) by A12, GROUP_1:35 .= (a |^ (k * m)) * (b |^ (k * m)) by GROUP_1:48 .= (a |^ (k * m)) * ((b |^ m) |^ k) by GROUP_1:35 .= (a |^ (k * m)) * ((1_ G) |^ k) by A3, GROUP_1:41 .= (a |^ (k * m)) * (1_ G) by GROUP_1:31 .= a |^ (k * m) by GROUP_1:def_4 ; then n1 divides k1 by A2, A9, GROUP_1:44, INT_2:25; then n1 divides i by A9, A14, INT_2:25; then consider j being Integer such that A15: i = n1 * j by INT_1:def_3; k1 = (m1 * n1) * j by A14, A15; then k / (m * n) = j by A10, A5, XCMPLX_1:6, XCMPLX_1:89; then A16: j is Element of NAT by INT_1:3; j <> 0 by A13, A14, A15; then (m * n) * 1 <= (m * n) * j by A16, NAT_1:14, XREAL_1:64; hence m * n <= k by A14, A15; ::_thesis: verum end; n * m <> 0 by A10, A5, XCMPLX_1:6; hence ord (a * b) = n * m by A6, A7, A8, A11, GROUP_1:def_11; ::_thesis: verum end; Lm13: for L being Field for n being Element of NAT for f being non-zero Polynomial of L st deg f = n holds ex m being Element of NAT st ( m = card (Roots f) & m <= n ) proof let L be Field; ::_thesis: for n being Element of NAT for f being non-zero Polynomial of L st deg f = n holds ex m being Element of NAT st ( m = card (Roots f) & m <= n ) defpred S1[ Nat] means for f being non-zero Polynomial of L st deg f = $1 holds ex m being Element of NAT st ( m = card (Roots f) & m <= $1 ); A1: now__::_thesis:_for_k_being_Element_of_NAT_st_S1[k]_holds_ S1[k_+_1] let k be Element of NAT ; ::_thesis: ( S1[k] implies S1[k + 1] ) assume A2: S1[k] ; ::_thesis: S1[k + 1] now__::_thesis:_for_f_being_non-zero_Polynomial_of_L_st_deg_f_=_k_+_1_holds_ ex_m_being_Element_of_NAT_st_ (_m_=_card_(Roots_f)_&_m_<=_k_+_1_) let f be non-zero Polynomial of L; ::_thesis: ( deg f = k + 1 implies ex m being Element of NAT st ( m = card (Roots f) & m <= k + 1 ) ) A3: f <> 0_. L by UPROOTS:def_5; assume A4: deg f = k + 1 ; ::_thesis: ex m being Element of NAT st ( m = card (Roots f) & m <= k + 1 ) thus ex m being Element of NAT st ( m = card (Roots f) & m <= k + 1 ) ::_thesis: verum proof percases ( Roots f = {} or Roots f <> {} ) ; suppose Roots f = {} ; ::_thesis: ex m being Element of NAT st ( m = card (Roots f) & m <= k + 1 ) hence ex m being Element of NAT st ( m = card (Roots f) & m <= k + 1 ) ; ::_thesis: verum end; supposeA5: Roots f <> {} ; ::_thesis: ex m being Element of NAT st ( m = card (Roots f) & m <= k + 1 ) set RF = Roots f; consider z being set such that A6: z in Roots f by A5, XBOOLE_0:def_1; reconsider z = z as Element of L by A6; set g = f div (rpoly (1,z)); A7: z is_a_root_of f by A6, POLYNOM5:def_9; then rpoly (1,z) divides f by HURWITZ:35; then 0_. L = f mod (rpoly (1,z)) by HURWITZ:def_7; then (f div (rpoly (1,z))) *' (rpoly (1,z)) = (f - ((f div (rpoly (1,z))) *' (rpoly (1,z)))) + ((f div (rpoly (1,z))) *' (rpoly (1,z))) by POLYNOM3:28; then (f div (rpoly (1,z))) *' (rpoly (1,z)) = f + ((- ((f div (rpoly (1,z))) *' (rpoly (1,z)))) + ((f div (rpoly (1,z))) *' (rpoly (1,z)))) by POLYNOM3:26; then (f div (rpoly (1,z))) *' (rpoly (1,z)) = f + (((f div (rpoly (1,z))) *' (rpoly (1,z))) - ((f div (rpoly (1,z))) *' (rpoly (1,z)))) ; then (f div (rpoly (1,z))) *' (rpoly (1,z)) = f + (0_. L) by POLYNOM3:29; then A8: f = (f div (rpoly (1,z))) *' (rpoly (1,z)) by POLYNOM3:28; then f div (rpoly (1,z)) <> 0_. L by A3, POLYNOM3:34; then reconsider g = f div (rpoly (1,z)) as non-zero Polynomial of L by UPROOTS:def_5; set RG = Roots g; deg g = (k + 1) - 1 by A3, A4, A7, HURWITZ:36 .= k ; then ex m1 being Element of NAT st ( m1 = card (Roots g) & m1 <= k ) by A2; then A9: (card (Roots g)) + 1 <= k + 1 by XREAL_1:6; Roots f c= (Roots g) \/ {z} proof let y be set ; :: according to TARSKI:def_3 ::_thesis: ( not y in Roots f or y in (Roots g) \/ {z} ) assume A10: y in Roots f ; ::_thesis: y in (Roots g) \/ {z} then reconsider y1 = y as Element of L ; y1 is_a_root_of f by A10, POLYNOM5:def_9; then eval (f,y1) = 0. L by POLYNOM5:def_6; then (eval (g,y1)) * (eval ((rpoly (1,z)),y1)) = 0. L by A8, POLYNOM4:24; then A11: (eval (g,y1)) * (y1 - z) = 0. L by HURWITZ:29; now__::_thesis:_y_in_(Roots_g)_\/_{z} percases ( y1 = z or y1 <> z ) ; suppose y1 = z ; ::_thesis: y in (Roots g) \/ {z} then y in {z} by TARSKI:def_1; hence y in (Roots g) \/ {z} by XBOOLE_0:def_3; ::_thesis: verum end; suppose y1 <> z ; ::_thesis: y in (Roots g) \/ {z} then y1 - z <> 0. L by RLVECT_1:21; then eval (g,y1) = 0. L by A11, VECTSP_1:12; then y1 is_a_root_of g by POLYNOM5:def_6; then y1 in Roots g by POLYNOM5:def_9; hence y in (Roots g) \/ {z} by XBOOLE_0:def_3; ::_thesis: verum end; end; end; hence y in (Roots g) \/ {z} ; ::_thesis: verum end; then A12: card (Roots f) <= card ((Roots g) \/ {z}) by NAT_1:43; card ((Roots g) \/ {z}) <= (card (Roots g)) + (card {z}) by CARD_2:43; then card ((Roots g) \/ {z}) <= (card (Roots g)) + 1 by CARD_2:42; then card (Roots f) <= (card (Roots g)) + 1 by A12, XXREAL_0:2; hence ex m being Element of NAT st ( m = card (Roots f) & m <= k + 1 ) by A9, XXREAL_0:2; ::_thesis: verum end; end; end; end; hence S1[k + 1] ; ::_thesis: verum end; A13: S1[ 0 ] proof let f be non-zero Polynomial of L; ::_thesis: ( deg f = 0 implies ex m being Element of NAT st ( m = card (Roots f) & m <= 0 ) ) assume A14: deg f = 0 ; ::_thesis: ex m being Element of NAT st ( m = card (Roots f) & m <= 0 ) reconsider x = f . 0 as Element of L ; A15: f <> 0_. L by UPROOTS:def_5; A16: f . 0 <> 0. L proof assume f . 0 = 0. L ; ::_thesis: contradiction then f = <%(0. L)%> by A14, ALGSEQ_1:def_5; hence contradiction by A15, POLYNOM5:34; ::_thesis: verum end; A17: now__::_thesis:_for_z_being_Element_of_L_holds_eval_(<%x%>,z)_<>_0._L let z be Element of L; ::_thesis: eval (<%x%>,z) <> 0. L eval (<%x%>,z) = eval (<%x,(0. L)%>,z) by POLYNOM5:43 .= x by POLYNOM5:45 ; hence eval (<%x%>,z) <> 0. L by A16; ::_thesis: verum end; A18: f = <%x%> by A14, ALGSEQ_1:def_5; Roots f = {} proof assume Roots f <> {} ; ::_thesis: contradiction then consider z being set such that A19: z in Roots f by XBOOLE_0:def_1; reconsider z = z as Element of L by A19; z is_a_root_of f by A19, POLYNOM5:def_9; then eval (<%x%>,z) = 0. L by A18, POLYNOM5:def_6; hence contradiction by A17; ::_thesis: verum end; hence ex m being Element of NAT st ( m = card (Roots f) & m <= 0 ) ; ::_thesis: verum end; for k being Element of NAT holds S1[k] from NAT_1:sch_1(A13, A1); hence for n being Element of NAT for f being non-zero Polynomial of L st deg f = n holds ex m being Element of NAT st ( m = card (Roots f) & m <= n ) ; ::_thesis: verum end; theorem Th26: :: INT_7:26 for L being non empty ZeroStr for p being Polynomial of L st 0 <= deg p holds p is non-zero proof let L be non empty ZeroStr ; ::_thesis: for p being Polynomial of L st 0 <= deg p holds p is non-zero let p be Polynomial of L; ::_thesis: ( 0 <= deg p implies p is non-zero ) assume 0 <= deg p ; ::_thesis: p is non-zero then deg p <> - 1 ; then p <> 0_. L by HURWITZ:20; hence p is non-zero by UPROOTS:def_5; ::_thesis: verum end; theorem Th27: :: INT_7:27 for L being Field for f being Polynomial of L st 0 <= deg f holds ( Roots f is finite set & ex m, n being Element of NAT st ( n = deg f & m = card (Roots f) & m <= n ) ) proof let L be Field; ::_thesis: for f being Polynomial of L st 0 <= deg f holds ( Roots f is finite set & ex m, n being Element of NAT st ( n = deg f & m = card (Roots f) & m <= n ) ) let f be Polynomial of L; ::_thesis: ( 0 <= deg f implies ( Roots f is finite set & ex m, n being Element of NAT st ( n = deg f & m = card (Roots f) & m <= n ) ) ) assume A1: 0 <= deg f ; ::_thesis: ( Roots f is finite set & ex m, n being Element of NAT st ( n = deg f & m = card (Roots f) & m <= n ) ) then reconsider n = deg f as Element of NAT by INT_1:3; reconsider f = f as non-zero Polynomial of L by A1, Th26; ex m being Element of NAT st ( m = card (Roots f) & m <= n ) by Lm13; hence ( Roots f is finite set & ex m, n being Element of NAT st ( n = deg f & m = card (Roots f) & m <= n ) ) ; ::_thesis: verum end; theorem Th28: :: INT_7:28 for p being Prime for z being Element of (Z/Z* p) for y being Element of (INT.Ring p) st z = y holds for n being Element of NAT holds (power (Z/Z* p)) . (z,n) = (power (INT.Ring p)) . (y,n) proof let p be Prime; ::_thesis: for z being Element of (Z/Z* p) for y being Element of (INT.Ring p) st z = y holds for n being Element of NAT holds (power (Z/Z* p)) . (z,n) = (power (INT.Ring p)) . (y,n) let z be Element of (Z/Z* p); ::_thesis: for y being Element of (INT.Ring p) st z = y holds for n being Element of NAT holds (power (Z/Z* p)) . (z,n) = (power (INT.Ring p)) . (y,n) let y be Element of (INT.Ring p); ::_thesis: ( z = y implies for n being Element of NAT holds (power (Z/Z* p)) . (z,n) = (power (INT.Ring p)) . (y,n) ) defpred S1[ Nat] means (power (Z/Z* p)) . (z,$1) = (power (INT.Ring p)) . (y,$1); assume A1: z = y ; ::_thesis: for n being Element of NAT holds (power (Z/Z* p)) . (z,n) = (power (INT.Ring p)) . (y,n) A2: now__::_thesis:_for_k_being_Element_of_NAT_st_S1[k]_holds_ S1[k_+_1] let k be Element of NAT ; ::_thesis: ( S1[k] implies S1[k + 1] ) assume A3: S1[k] ; ::_thesis: S1[k + 1] (power (Z/Z* p)) . (z,(k + 1)) = ((power (Z/Z* p)) . (z,k)) * z by GROUP_1:def_7 .= ((power (INT.Ring p)) . (y,k)) * y by A1, A3, Lm12 .= (power (INT.Ring p)) . (y,(k + 1)) by GROUP_1:def_7 ; hence S1[k + 1] ; ::_thesis: verum end; (power (Z/Z* p)) . (z,0) = 1_ (Z/Z* p) by GROUP_1:def_7 .= 1_ (INT.Ring p) by Th21 .= (power (INT.Ring p)) . (y,0) by GROUP_1:def_7 ; then A4: S1[ 0 ] ; for k being Element of NAT holds S1[k] from NAT_1:sch_1(A4, A2); hence for n being Element of NAT holds (power (Z/Z* p)) . (z,n) = (power (INT.Ring p)) . (y,n) ; ::_thesis: verum end; Lm14: for p being Prime for L being Field for n being Nat st 0 < n & L = INT.Ring p holds ex f being Polynomial of L st ( deg f = n & ( for x being Element of L for xz being Element of (Z/Z* p) for xn being Element of (INT.Ring p) st x = xz & xn = xz |^ n holds eval (f,x) = xn - (1_ (INT.Ring p)) ) ) proof let p be Prime; ::_thesis: for L being Field for n being Nat st 0 < n & L = INT.Ring p holds ex f being Polynomial of L st ( deg f = n & ( for x being Element of L for xz being Element of (Z/Z* p) for xn being Element of (INT.Ring p) st x = xz & xn = xz |^ n holds eval (f,x) = xn - (1_ (INT.Ring p)) ) ) let L be Field; ::_thesis: for n being Nat st 0 < n & L = INT.Ring p holds ex f being Polynomial of L st ( deg f = n & ( for x being Element of L for xz being Element of (Z/Z* p) for xn being Element of (INT.Ring p) st x = xz & xn = xz |^ n holds eval (f,x) = xn - (1_ (INT.Ring p)) ) ) let n be Nat; ::_thesis: ( 0 < n & L = INT.Ring p implies ex f being Polynomial of L st ( deg f = n & ( for x being Element of L for xz being Element of (Z/Z* p) for xn being Element of (INT.Ring p) st x = xz & xn = xz |^ n holds eval (f,x) = xn - (1_ (INT.Ring p)) ) ) ) assume that A1: 0 < n and A2: L = INT.Ring p ; ::_thesis: ex f being Polynomial of L st ( deg f = n & ( for x being Element of L for xz being Element of (Z/Z* p) for xn being Element of (INT.Ring p) st x = xz & xn = xz |^ n holds eval (f,x) = xn - (1_ (INT.Ring p)) ) ) set qq = 1_. L; reconsider n0 = n as Element of NAT by ORDINAL1:def_12; set f = (<%(0. L),(1. L)%> `^ n0) - (1_. L); set pp = <%(0. L),(1. L)%> `^ n0; A3: now__::_thesis:_for_x_being_Element_of_L for_xz_being_Element_of_(Z/Z*_p) for_xn_being_Element_of_(INT.Ring_p)_st_x_=_xz_&_xn_=_xz_|^_n_holds_ eval_(((<%(0._L),(1._L)%>_`^_n0)_-_(1_._L)),x)_=_xn_-_(1__(INT.Ring_p)) let x be Element of L; ::_thesis: for xz being Element of (Z/Z* p) for xn being Element of (INT.Ring p) st x = xz & xn = xz |^ n holds eval (((<%(0. L),(1. L)%> `^ n0) - (1_. L)),x) = xn - (1_ (INT.Ring p)) let xz be Element of (Z/Z* p); ::_thesis: for xn being Element of (INT.Ring p) st x = xz & xn = xz |^ n holds eval (((<%(0. L),(1. L)%> `^ n0) - (1_. L)),x) = xn - (1_ (INT.Ring p)) let xn be Element of (INT.Ring p); ::_thesis: ( x = xz & xn = xz |^ n implies eval (((<%(0. L),(1. L)%> `^ n0) - (1_. L)),x) = xn - (1_ (INT.Ring p)) ) assume that A4: x = xz and A5: xn = xz |^ n ; ::_thesis: eval (((<%(0. L),(1. L)%> `^ n0) - (1_. L)),x) = xn - (1_ (INT.Ring p)) A6: xn = xz |^ n0 by A5 .= (power L) . (x,n0) by A2, A4, Th28 ; thus eval (((<%(0. L),(1. L)%> `^ n0) - (1_. L)),x) = (eval ((<%(0. L),(1. L)%> `^ n0),x)) - (eval ((1_. L),x)) by POLYNOM4:21 .= (eval ((<%(0. L),(1. L)%> `^ n0),x)) - (1. L) by POLYNOM4:18 .= ((power L) . ((eval (<%(0. L),(1. L)%>,x)),n0)) - (1. L) by POLYNOM5:22 .= xn - (1_ (INT.Ring p)) by A2, A6, POLYNOM5:48 ; ::_thesis: verum end; A7: len (1_. L) = 1 by POLYNOM4:4; len <%(0. L),(1. L)%> = 2 by POLYNOM5:40; then A8: len (<%(0. L),(1. L)%> `^ n0) = ((n * 2) - n) + 1 by POLYNOM5:23 .= n + 1 ; A9: 0 + 1 < n + 1 by A1, XREAL_1:8; then len (<%(0. L),(1. L)%> `^ n0) <> len (- (1_. L)) by A8, A7, POLYNOM4:8; then len ((<%(0. L),(1. L)%> `^ n0) - (1_. L)) = max ((len (<%(0. L),(1. L)%> `^ n0)),(len (- (1_. L)))) by POLYNOM4:7 .= max ((n + 1),1) by A8, A7, POLYNOM4:8 .= n + 1 by A9, XXREAL_0:def_10 ; then deg ((<%(0. L),(1. L)%> `^ n0) - (1_. L)) = n ; hence ex f being Polynomial of L st ( deg f = n & ( for x being Element of L for xz being Element of (Z/Z* p) for xn being Element of (INT.Ring p) st x = xz & xn = xz |^ n holds eval (f,x) = xn - (1_ (INT.Ring p)) ) ) by A3; ::_thesis: verum end; theorem Th29: :: INT_7:29 for p being Prime for a, b being Element of (Z/Z* p) for n being Nat st 0 < n & ord a = n & b |^ n = 1 holds b is Element of (gr {a}) proof let p be Prime; ::_thesis: for a, b being Element of (Z/Z* p) for n being Nat st 0 < n & ord a = n & b |^ n = 1 holds b is Element of (gr {a}) let a, b be Element of (Z/Z* p); ::_thesis: for n being Nat st 0 < n & ord a = n & b |^ n = 1 holds b is Element of (gr {a}) let n be Nat; ::_thesis: ( 0 < n & ord a = n & b |^ n = 1 implies b is Element of (gr {a}) ) assume that A1: 0 < n and A2: ord a = n and A3: b |^ n = 1 ; ::_thesis: b is Element of (gr {a}) reconsider XX = the carrier of (gr {a}) as finite set ; A4: ex D being finite set st ( D = the carrier of (gr {a}) & card (gr {a}) = card D ) ; reconsider L = INT.Ring p as non empty unital doubleLoopStr ; consider f being Polynomial of L such that A5: deg f = n and A6: for x being Element of L for xz being Element of (Z/Z* p) for xn being Element of (INT.Ring p) st x = xz & xn = xz |^ n holds eval (f,x) = xn - (1_ (INT.Ring p)) by A1, Lm14; consider m, n0 being Element of NAT such that A7: n0 = deg f and A8: m = card (Roots f) and A9: m <= n0 by A5, Th27; assume b is not Element of (gr {a}) ; ::_thesis: contradiction then card ( the carrier of (gr {a}) \/ {b}) = (card XX) + 1 by CARD_2:41 .= n0 + 1 by A2, A5, A7, A4, GR_CY_1:7 ; then A10: card (n0 + 1) = card ( the carrier of (gr {a}) \/ {b}) ; A11: 1 < p by INT_2:def_4; A12: for x being Element of (Z/Z* p) st x |^ n = 1 holds x in Roots f proof let x1 be Element of (Z/Z* p); ::_thesis: ( x1 |^ n = 1 implies x1 in Roots f ) assume x1 |^ n = 1 ; ::_thesis: x1 in Roots f then A13: x1 |^ n = 1_ (Z/Z* p) by Th21 .= 1_ (INT.Ring p) by Th21 ; x1 |^ n in Segm0 p ; then x1 |^ n in (Segm p) \ {0} by A11, Def2; then reconsider x2 = x1 |^ n as Element of (INT.Ring p) by XBOOLE_0:def_5; x1 in Segm0 p ; then x1 in (Segm p) \ {0} by A11, Def2; then reconsider x3 = x1 as Element of L by XBOOLE_0:def_5; eval (f,x3) = x2 - (1_ (INT.Ring p)) by A6 .= 0. L by A13, RLVECT_1:15 ; then x3 is_a_root_of f by POLYNOM5:def_6; hence x1 in Roots f by POLYNOM5:def_9; ::_thesis: verum end; A14: the carrier of (gr {a}) c= Roots f proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in the carrier of (gr {a}) or x in Roots f ) assume A15: x in the carrier of (gr {a}) ; ::_thesis: x in Roots f then x in gr {a} by STRUCT_0:def_5; then x in Z/Z* p by GROUP_2:40; then reconsider x1 = x as Element of (Z/Z* p) by STRUCT_0:def_5; x1 in gr {a} by A15, STRUCT_0:def_5; then consider j being Integer such that A16: x1 = a |^ j by GR_CY_1:5; x1 |^ n = a |^ (j * n) by A16, GROUP_1:35 .= (a |^ n) |^ j by GROUP_1:35 .= (1_ (Z/Z* p)) |^ j by A2, GROUP_1:41 .= 1_ (Z/Z* p) by GROUP_1:31 .= 1 by Th21 ; hence x in Roots f by A12; ::_thesis: verum end; b in Roots f by A3, A12; then {b} c= Roots f by ZFMISC_1:31; then the carrier of (gr {a}) \/ {b} c= Roots f by A14, XBOOLE_1:8; then A17: card ( the carrier of (gr {a}) \/ {b}) c= card (Roots f) by CARD_1:11; card m = card (Roots f) by A8; then n0 + 1 c= m by A17, A10, CARD_1:41; then n0 + 1 <= m by NAT_1:39; hence contradiction by A9, NAT_1:16, XXREAL_0:2; ::_thesis: verum end; theorem Th30: :: INT_7:30 for G being Group for z being Element of G for d, l being Element of NAT st G is finite & ord z = d * l holds ord (z |^ d) = l proof let G be Group; ::_thesis: for z being Element of G for d, l being Element of NAT st G is finite & ord z = d * l holds ord (z |^ d) = l let z be Element of G; ::_thesis: for d, l being Element of NAT st G is finite & ord z = d * l holds ord (z |^ d) = l let d, l be Element of NAT ; ::_thesis: ( G is finite & ord z = d * l implies ord (z |^ d) = l ) assume that A1: G is finite and A2: ord z = d * l ; ::_thesis: ord (z |^ d) = l set m = d * l; reconsider H = gr {z} as strict Subgroup of G ; reconsider H = H as finite strict Subgroup of G by A1; z in gr {z} by GR_CY_2:2; then reconsider z1 = z as Element of H by STRUCT_0:def_5; A3: gr {z} = gr {z1} by GR_CY_2:3; card H = d * l by A1, A2, GR_CY_1:7; then ord (z1 |^ d) = l by A3, GR_CY_2:8; hence ord (z |^ d) = l by A1, GROUP_8:3, GROUP_8:5; ::_thesis: verum end; theorem :: INT_7:31 for p being Prime holds Z/Z* p is cyclic Group proof let p be Prime; ::_thesis: Z/Z* p is cyclic Group set a = the Element of (Z/Z* p); set ZP = Z/Z* p; defpred S1[ Nat, Element of (Z/Z* p), Element of (Z/Z* p)] means ord $2 < ord $3; assume A1: Z/Z* p is not cyclic Group ; ::_thesis: contradiction A2: for x being Element of (Z/Z* p) holds ord x < card (Z/Z* p) proof let x be Element of (Z/Z* p); ::_thesis: ord x < card (Z/Z* p) A3: ord x <= card (Z/Z* p) by GR_CY_1:8, NAT_D:7; ord x <> card (Z/Z* p) by A1, GR_CY_1:19; hence ord x < card (Z/Z* p) by A3, XXREAL_0:1; ::_thesis: verum end; A4: for n being Element of NAT for x being Element of (Z/Z* p) ex y being Element of (Z/Z* p) st S1[n,x,y] proof let n be Element of NAT ; ::_thesis: for x being Element of (Z/Z* p) ex y being Element of (Z/Z* p) st S1[n,x,y] let x be Element of (Z/Z* p); ::_thesis: ex y being Element of (Z/Z* p) st S1[n,x,y] set n = ord x; ord x < card (Z/Z* p) by A2; then A5: card (gr {x}) <> card (Z/Z* p) by GR_CY_1:7; the carrier of (gr {x}) c= the carrier of (Z/Z* p) by GROUP_2:def_5; then the carrier of (gr {x}) c< the carrier of (Z/Z* p) by A5, XBOOLE_0:def_8; then the carrier of (Z/Z* p) \ the carrier of (gr {x}) <> {} by XBOOLE_1:105; then consider z being set such that A6: z in the carrier of (Z/Z* p) \ the carrier of (gr {x}) by XBOOLE_0:def_1; reconsider z = z as Element of (Z/Z* p) by A6; set m = ord z; now__::_thesis:_ex_y_being_Element_of_the_carrier_of_(Z/Z*_p)_st_ord_x_<_ord_y set l = (ord z) lcm (ord x); 1 <= card (gr {x}) by GROUP_1:45; then A7: 1 <= ord x by GR_CY_1:7; not ord z divides ord x proof assume ord z divides ord x ; ::_thesis: contradiction then consider j being Integer such that A8: ord x = (ord z) * j by INT_1:def_3; z |^ (ord x) = (z |^ (ord z)) |^ j by A8, GROUP_1:35 .= (1_ (Z/Z* p)) |^ j by GROUP_1:41 .= 1_ (Z/Z* p) by GROUP_1:31 .= 1 by Th21 ; then z is Element of (gr {x}) by A7, Th29; hence contradiction by A6, XBOOLE_0:def_5; ::_thesis: verum end; then A9: ord x <> (ord z) lcm (ord x) by INT_2:18; 1 <= card (gr {z}) by GROUP_1:45; then A10: 1 <= ord z by GR_CY_1:7; then consider m0, n0 being Element of NAT such that A11: (ord z) lcm (ord x) = n0 * m0 and A12: n0 gcd m0 = 1 and A13: n0 divides ord x and A14: m0 divides ord z and A15: n0 <> 0 and A16: m0 <> 0 by A7, Th17; consider j being Integer such that A17: ord x = n0 * j by A13, INT_1:def_3; consider u being Integer such that A18: ord z = m0 * u by A14, INT_1:def_3; (ord z) / m0 = u by A16, A18, XCMPLX_1:89; then reconsider d2 = (ord z) / m0 as Element of NAT by INT_1:3; ord z = ((ord z) / m0) * m0 by A16, XCMPLX_1:87; then A19: ord (z |^ d2) = m0 by Th30; (ord x) / n0 = j by A15, A17, XCMPLX_1:89; then reconsider d1 = (ord x) / n0 as Element of NAT by INT_1:3; ord x divides (ord z) lcm (ord x) by INT_2:18; then consider j being Integer such that A20: (ord z) lcm (ord x) = (ord x) * j by INT_1:def_3; take y = (x |^ d1) * (z |^ d2); ::_thesis: ord x < ord y ord x = ((ord x) / n0) * n0 by A15, XCMPLX_1:87; then ord (x |^ d1) = n0 by Th30; then A21: ord y = m0 * n0 by A12, A19, Th25; ((ord z) lcm (ord x)) / (ord x) = j by A7, A20, XCMPLX_1:89; then A22: j is Element of NAT by INT_1:3; j <> 0 by A7, A10, A20, INT_2:4; then (ord x) * 1 <= (ord x) * j by A22, NAT_1:14, XREAL_1:64; hence ord x < ord y by A11, A21, A9, A20, XXREAL_0:1; ::_thesis: verum end; hence ex y being Element of (Z/Z* p) st S1[n,x,y] ; ::_thesis: verum end; consider f being Function of NAT, the carrier of (Z/Z* p) such that A23: ( f . 0 = the Element of (Z/Z* p) & ( for n being Element of NAT holds S1[n,f . n,f . (n + 1)] ) ) from RECDEF_1:sch_2(A4); deffunc H1( Element of NAT ) -> Element of NAT = ord (f . $1); consider g being Function of NAT,NAT such that A24: for k being Element of NAT holds g . k = H1(k) from FUNCT_2:sch_4(); A25: now__::_thesis:_for_k_being_Element_of_NAT_holds_g_._k_<_g_._(k_+_1) let k be Element of NAT ; ::_thesis: g . k < g . (k + 1) A26: g . (k + 1) = ord (f . (k + 1)) by A24; g . k = ord (f . k) by A24; hence g . k < g . (k + 1) by A23, A26; ::_thesis: verum end; A27: for k, m being Element of NAT holds g . k < g . ((k + 1) + m) proof let k be Element of NAT ; ::_thesis: for m being Element of NAT holds g . k < g . ((k + 1) + m) defpred S2[ Nat] means g . k < g . ((k + 1) + $1); A28: now__::_thesis:_for_m_being_Element_of_NAT_st_S2[m]_holds_ S2[m_+_1] let m be Element of NAT ; ::_thesis: ( S2[m] implies S2[m + 1] ) assume A29: S2[m] ; ::_thesis: S2[m + 1] g . ((k + 1) + m) < g . (((k + 1) + m) + 1) by A25; hence S2[m + 1] by A29, XXREAL_0:2; ::_thesis: verum end; A30: S2[ 0 ] by A25; for m being Element of NAT holds S2[m] from NAT_1:sch_1(A30, A28); hence for m being Element of NAT holds g . k < g . ((k + 1) + m) ; ::_thesis: verum end; A31: for k, m being Element of NAT st k < m holds g . k < g . m proof let k, m be Element of NAT ; ::_thesis: ( k < m implies g . k < g . m ) assume A32: k < m ; ::_thesis: g . k < g . m then m - k is Element of NAT by INT_1:5; then reconsider mk = m - k as Nat ; m - k <> 0 by A32; then consider n0 being Nat such that A33: mk = n0 + 1 by NAT_1:6; reconsider n = n0 as Element of NAT by ORDINAL1:def_12; m = (k + 1) + n by A33; hence g . k < g . m by A27; ::_thesis: verum end; now__::_thesis:_for_x1,_x2_being_set_st_x1_in_NAT_&_x2_in_NAT_&_g_._x1_=_g_._x2_holds_ x2_=_x1 let x1, x2 be set ; ::_thesis: ( x1 in NAT & x2 in NAT & g . x1 = g . x2 implies x2 = x1 ) assume that A34: x1 in NAT and A35: x2 in NAT and A36: g . x1 = g . x2 ; ::_thesis: x2 = x1 reconsider xx1 = x1, xx2 = x2 as Element of NAT by A34, A35; A37: xx2 <= xx1 by A31, A36; xx1 <= xx2 by A31, A36; hence x2 = x1 by A37, XXREAL_0:1; ::_thesis: verum end; then g is one-to-one by FUNCT_2:19; then dom g, rng g are_equipotent by WELLORD2:def_4; then card (dom g) = card (rng g) by CARD_1:5; then A38: card (rng g) = card NAT by FUNCT_2:def_1; rng g c= Segm (card (Z/Z* p)) proof let y be set ; :: according to TARSKI:def_3 ::_thesis: ( not y in rng g or y in Segm (card (Z/Z* p)) ) assume y in rng g ; ::_thesis: y in Segm (card (Z/Z* p)) then consider x being set such that A39: x in NAT and A40: y = g . x by FUNCT_2:11; reconsider x = x as Element of NAT by A39; reconsider gg = g . x as Element of NAT ; g . x = ord (f . x) by A24; then gg < card (Z/Z* p) by A2; hence y in Segm (card (Z/Z* p)) by A40, ALGSEQ_1:1; ::_thesis: verum end; hence contradiction by A38; ::_thesis: verum end;