HomeHome Metamath Proof Explorer < Previous   Next >
Related theorems
Unicode version

Theorem facdiv 8194
Description: A natural number divides the factorial of an equal or larger number.
Assertion
Ref Expression
facdiv |- ((M e. NN0 /\ N e. NN /\ N <_ M) -> ((!` M) / N) e. NN)

Proof of Theorem facdiv
StepHypRef Expression
1 breq2 3342 . . . . 5 |- (j = 0 -> (N <_ j <-> N <_ 0))
2 fveq2 4681 . . . . . . 7 |- (j = 0 -> (!` j) = (!` 0))
32opreq1d 4897 . . . . . 6 |- (j = 0 -> ((!` j) / N) = ((!` 0) / N))
43eleq1d 1963 . . . . 5 |- (j = 0 -> (((!` j) / N) e. NN <-> ((!` 0) / N) e. NN))
51, 4imbi12d 688 . . . 4 |- (j = 0 -> ((N <_ j -> ((!` j) / N) e. NN) <-> (N <_ 0 -> ((!` 0) / N) e. NN)))
65imbi2d 674 . . 3 |- (j = 0 -> ((N e. NN -> (N <_ j -> ((!` j) / N) e. NN)) <-> (N e. NN -> (N <_ 0 -> ((!` 0) / N) e. NN))))
7 breq2 3342 . . . . 5 |- (j = k -> (N <_ j <-> N <_ k))
8 fveq2 4681 . . . . . . 7 |- (j = k -> (!` j) = (!` k))
98opreq1d 4897 . . . . . 6 |- (j = k -> ((!` j) / N) = ((!` k) / N))
109eleq1d 1963 . . . . 5 |- (j = k -> (((!` j) / N) e. NN <-> ((!` k) / N) e. NN))
117, 10imbi12d 688 . . . 4 |- (j = k -> ((N <_ j -> ((!` j) / N) e. NN) <-> (N <_ k -> ((!` k) / N) e. NN)))
1211imbi2d 674 . . 3 |- (j = k -> ((N e. NN -> (N <_ j -> ((!` j) / N) e. NN)) <-> (N e. NN -> (N <_ k -> ((!` k) / N) e. NN))))
13 breq2 3342 . . . . 5 |- (j = (k + 1) -> (N <_ j <-> N <_ (k + 1)))
14 fveq2 4681 . . . . . . 7 |- (j = (k + 1) -> (!` j) = (!` (k + 1)))
1514opreq1d 4897 . . . . . 6 |- (j = (k + 1) -> ((!` j) / N) = ((!` (k + 1)) / N))
1615eleq1d 1963 . . . . 5 |- (j = (k + 1) -> (((!` j) / N) e. NN <-> ((!` (k + 1)) / N) e. NN))
1713, 16imbi12d 688 . . . 4 |- (j = (k + 1) -> ((N <_ j -> ((!` j) / N) e. NN) <-> (N <_ (k + 1) -> ((!` (k + 1)) / N) e. NN)))
1817imbi2d 674 . . 3 |- (j = (k + 1) -> ((N e. NN -> (N <_ j -> ((!` j) / N) e. NN)) <-> (N e. NN -> (N <_ (k + 1) -> ((!` (k + 1)) / N) e. NN))))
19 breq2 3342 . . . . 5 |- (j = M -> (N <_ j <-> N <_ M))
20 fveq2 4681 . . . . . . 7 |- (j = M -> (!` j) = (!` M))
2120opreq1d 4897 . . . . . 6 |- (j = M -> ((!` j) / N) = ((!` M) / N))
2221eleq1d 1963 . . . . 5 |- (j = M -> (((!` j) / N) e. NN <-> ((!` M) / N) e. NN))
2319, 22imbi12d 688 . . . 4 |- (j = M -> ((N <_ j -> ((!` j) / N) e. NN) <-> (N <_ M -> ((!` M) / N) e. NN)))
2423imbi2d 674 . . 3 |- (j = M -> ((N e. NN -> (N <_ j -> ((!` j) / N) e. NN)) <-> (N e. NN -> (N <_ M -> ((!` M) / N) e. NN))))
25 nngt0 7129 . . . . 5 |- (N e. NN -> 0 < N)
26 ltnle 6680 . . . . . 6 |- ((0 e. RR /\ N e. RR) -> (0 < N <-> -. N <_ 0))
27 0re 6603 . . . . . 6 |- 0 e. RR
28 nnre 7112 . . . . . 6 |- (N e. NN -> N e. RR)
2926, 27, 28sylancr 526 . . . . 5 |- (N e. NN -> (0 < N <-> -. N <_ 0))
3025, 29mpbid 212 . . . 4 |- (N e. NN -> -. N <_ 0)
3130pm2.21d 94 . . 3 |- (N e. NN -> (N <_ 0 -> ((!` 0) / N) e. NN))
32 leloe 6688 . . . . . . . . . . . 12 |- ((N e. RR /\ (k + 1) e. RR) -> (N <_ (k + 1) <-> (N < (k + 1) \/ N = (k + 1))))
33 peano2nn0 7333 . . . . . . . . . . . . 13 |- (k e. NN0 -> (k + 1) e. NN0)
34 nn0re 7317 . . . . . . . . . . . . 13 |- ((k + 1) e. NN0 -> (k + 1) e. RR)
3533, 34syl 12 . . . . . . . . . . . 12 |- (k e. NN0 -> (k + 1) e. RR)
3632, 28, 35syl2an 503 . . . . . . . . . . 11 |- ((N e. NN /\ k e. NN0) -> (N <_ (k + 1) <-> (N < (k + 1) \/ N = (k + 1))))
37 nn0leltp1 7337 . . . . . . . . . . . . . 14 |- ((N e. NN0 /\ k e. NN0) -> (N <_ k <-> N < (k + 1)))
38 nnnn0 7315 . . . . . . . . . . . . . 14 |- (N e. NN -> N e. NN0)
3937, 38sylan 497 . . . . . . . . . . . . 13 |- ((N e. NN /\ k e. NN0) -> (N <_ k <-> N < (k + 1)))
40 nnmulcl 7124 . . . . . . . . . . . . . . . . . . 19 |- ((((!` k) / N) e. NN /\ (k + 1) e. NN) -> (((!` k) / N) x. (k + 1)) e. NN)
41 nn0p1nn 7384 . . . . . . . . . . . . . . . . . . 19 |- (k e. NN0 -> (k + 1) e. NN)
4240, 41sylan2 500 . . . . . . . . . . . . . . . . . 18 |- ((((!` k) / N) e. NN /\ k e. NN0) -> (((!` k) / N) x. (k + 1)) e. NN)
4342expcom 403 . . . . . . . . . . . . . . . . 17 |- (k e. NN0 -> (((!` k) / N) e. NN -> (((!` k) / N) x. (k + 1)) e. NN))
4443adantl 424 . . . . . . . . . . . . . . . 16 |- ((N e. NN /\ k e. NN0) -> (((!` k) / N) e. NN -> (((!` k) / N) x. (k + 1)) e. NN))
45 faccl 8192 . . . . . . . . . . . . . . . . . . . 20 |- (k e. NN0 -> (!` k) e. NN)
46 nncn 7113 . . . . . . . . . . . . . . . . . . . 20 |- ((!` k) e. NN -> (!` k) e. CC)
4745, 46syl 12 . . . . . . . . . . . . . . . . . . 19 |- (k e. NN0 -> (!` k) e. CC)
4847adantl 424 . . . . . . . . . . . . . . . . . 18 |- ((N e. NN /\ k e. NN0) -> (!` k) e. CC)
49 nn0cn 7318 . . . . . . . . . . . . . . . . . . . 20 |- ((k + 1) e. NN0 -> (k + 1) e. CC)
5033, 49syl 12 . . . . . . . . . . . . . . . . . . 19 |- (k e. NN0 -> (k + 1) e. CC)
5150adantl 424 . . . . . . . . . . . . . . . . . 18 |- ((N e. NN /\ k e. NN0) -> (k + 1) e. CC)
52 nncn 7113 . . . . . . . . . . . . . . . . . . . 20 |- (N e. NN -> N e. CC)
53 nnne0 7132 . . . . . . . . . . . . . . . . . . . 20 |- (N e. NN -> N =/= 0)
5452, 53jca 310 . . . . . . . . . . . . . . . . . . 19 |- (N e. NN -> (N e. CC /\ N =/= 0))
5554adantr 425 . . . . . . . . . . . . . . . . . 18 |- ((N e. NN /\ k e. NN0) -> (N e. CC /\ N =/= 0))
56 div23 6925 . . . . . . . . . . . . . . . . . 18 |- (((!` k) e. CC /\ (k + 1) e. CC /\ (N e. CC /\ N =/= 0)) -> (((!` k) x. (k + 1)) / N) = (((!` k) / N) x. (k + 1)))
5748, 51, 55, 56syl111anc 1100 . . . . . . . . . . . . . . . . 17 |- ((N e. NN /\ k e. NN0) -> (((!` k) x. (k + 1)) / N) = (((!` k) / N) x. (k + 1)))
5857eleq1d 1963 . . . . . . . . . . . . . . . 16 |- ((N e. NN /\ k e. NN0) -> ((((!` k) x. (k + 1)) / N) e. NN <-> (((!` k) / N) x. (k + 1)) e. NN))
5944, 58sylibrd 221 . . . . . . . . . . . . . . 15 |- ((N e. NN /\ k e. NN0) -> (((!` k) / N) e. NN -> (((!` k) x. (k + 1)) / N) e. NN))
6059imim2d 28 . . . . . . . . . . . . . 14 |- ((N e. NN /\ k e. NN0) -> ((N <_ k -> ((!` k) / N) e. NN) -> (N <_ k -> (((!` k) x. (k + 1)) / N) e. NN)))
6160com23 36 . . . . . . . . . . . . 13 |- ((N e. NN /\ k e. NN0) -> (N <_ k -> ((N <_ k -> ((!` k) / N) e. NN) -> (((!` k) x. (k + 1)) / N) e. NN)))
6239, 61sylbird 222 . . . . . . . . . . . 12 |- ((N e. NN /\ k e. NN0) -> (N < (k + 1) -> ((N <_ k -> ((!` k) / N) e. NN) -> (((!` k) x. (k + 1)) / N) e. NN)))
63 opreq2 4890 . . . . . . . . . . . . . . . 16 |- (N = (k + 1) -> ((!` k) x. N) = ((!` k) x. (k + 1)))
6463opreq1d 4897 . . . . . . . . . . . . . . 15 |- (N = (k + 1) -> (((!` k) x. N) / N) = (((!` k) x. (k + 1)) / N))
6564eleq1d 1963 . . . . . . . . . . . . . 14 |- (N = (k + 1) -> ((((!` k) x. N) / N) e. NN <-> (((!` k) x. (k + 1)) / N) e. NN))
6652adantr 425 . . . . . . . . . . . . . . . 16 |- ((N e. NN /\ k e. NN0) -> N e. CC)
6753adantr 425 . . . . . . . . . . . . . . . 16 |- ((N e. NN /\ k e. NN0) -> N =/= 0)
68 divcan4 6939 . . . . . . . . . . . . . . . 16 |- (((!` k) e. CC /\ N e. CC /\ N =/= 0) -> (((!` k) x. N) / N) = (!` k))
6948, 66, 67, 68syl111anc 1100 . . . . . . . . . . . . . . 15 |- ((N e. NN /\ k e. NN0) -> (((!` k) x. N) / N) = (!` k))
7045adantl 424 . . . . . . . . . . . . . . 15 |- ((N e. NN /\ k e. NN0) -> (!` k) e. NN)
7169, 70eqeltrd 1971 . . . . . . . . . . . . . 14 |- ((N e. NN /\ k e. NN0) -> (((!` k) x. N) / N) e. NN)
7265, 71syl5cbi 226 . . . . . . . . . . . . 13 |- ((N e. NN /\ k e. NN0) -> (N = (k + 1) -> (((!` k) x. (k + 1)) / N) e. NN))
7372a1dd 53 . . . . . . . . . . . 12 |- ((N e. NN /\ k e. NN0) -> (N = (k + 1) -> ((N <_ k -> ((!` k) / N) e. NN) -> (((!` k) x. (k + 1)) / N) e. NN)))
7462, 73jaod 469 . . . . . . . . . . 11 |- ((N e. NN /\ k e. NN0) -> ((N < (k + 1) \/ N = (k + 1)) -> ((N <_ k -> ((!` k) / N) e. NN) -> (((!` k) x. (k + 1)) / N) e. NN)))
7536, 74sylbid 220 . . . . . . . . . 10 |- ((N e. NN /\ k e. NN0) -> (N <_ (k + 1) -> ((N <_ k -> ((!` k) / N) e. NN) -> (((!` k) x. (k + 1)) / N) e. NN)))
7675ex 402 . . . . . . . . 9 |- (N e. NN -> (k e. NN0 -> (N <_ (k + 1) -> ((N <_ k -> ((!` k) / N) e. NN) -> (((!` k) x. (k + 1)) / N) e. NN))))
7776com34 40 . . . . . . . 8 |- (N e. NN -> (k e. NN0 -> ((N <_ k -> ((!` k) / N) e. NN) -> (N <_ (k + 1) -> (((!` k) x. (k + 1)) / N) e. NN))))
7877com12 14 . . . . . . 7 |- (k e. NN0 -> (N e. NN -> ((N <_ k -> ((!` k) / N) e. NN) -> (N <_ (k + 1) -> (((!` k) x. (k + 1)) / N) e. NN))))
7978imp4d 394 . . . . . 6 |- (k e. NN0 -> ((N e. NN /\ ((N <_ k -> ((!` k) / N) e. NN) /\ N <_ (k + 1))) -> (((!` k) x. (k + 1)) / N) e. NN))
80 facp1 8188 . . . . . . . 8 |- (k e. NN0 -> (!` (k + 1)) = ((!` k) x. (k + 1)))
8180opreq1d 4897 . . . . . . 7 |- (k e. NN0 -> ((!` (k + 1)) / N) = (((!` k) x. (k + 1)) / N))
8281eleq1d 1963 . . . . . 6 |- (k e. NN0 -> (((!` (k + 1)) / N) e. NN <-> (((!` k) x. (k + 1)) / N) e. NN))
8379, 82sylibrd 221 . . . . 5 |- (k e. NN0 -> ((N e. NN /\ ((N <_ k -> ((!` k) / N) e. NN) /\ N <_ (k + 1))) -> ((!` (k + 1)) / N) e. NN))
8483exp4d 412 . . . 4 |- (k e. NN0 -> (N e. NN -> ((N <_ k -> ((!` k) / N) e. NN) -> (N <_ (k + 1) -> ((!` (k + 1)) / N) e. NN))))
8584a2d 16 . . 3 |- (k e. NN0 -> ((N e. NN -> (N <_ k -> ((!` k) / N) e. NN)) -> (N e. NN -> (N <_ (k + 1) -> ((!` (k + 1)) / N) e. NN))))
866, 12, 18, 24, 31, 85nn0ind 7424 . 2 |- (M e. NN0 -> (N e. NN -> (N <_ M -> ((!` M) / N) e. NN)))
87863imp 1061 1 |- ((M e. NN0 /\ N e. NN /\ N <_ M) -> ((!` M) / N) e. NN)
Colors of variables: wff set class
Syntax hints:  -. wn 2   -> wi 3   <-> wb 163   \/ wo 239   /\ wa 240   /\ w3a 858   = wceq 1298   e. wcel 1300   =/= wne 2017   class class class wbr 3338  ` cfv 3998  (class class class)co 4884  CCcc 6384  RRcr 6385  0cc0 6386  1c1 6387   + caddc 6389   x. cmul 6391   / cdiv 6447   <_ cle 6448  NNcn 6449  NN0cn0 6450   < clt 6653  !cfa 8183
This theorem is referenced by:  facndiv 8195
This theorem was proved from axioms:  ax-1 4  ax-2 5  ax-3 6  ax-mp 7  ax-7 1304  ax-gen 1305  ax-8 1306  ax-9 1307  ax-10 1308  ax-11 1309  ax-12 1310  ax-13 1311  ax-14 1312  ax-17 1317  ax-4 1319  ax-5o 1321  ax-6o 1324  ax-9o 1481  ax-10o 1500  ax-16 1580  ax-11o 1588  ax-ext 1865  ax-rep 3428  ax-sep 3438  ax-nul 3445  ax-pow 3481  ax-pr 3524  ax-un 3790  ax-inf2 5731
This theorem depends on definitions:  df-bi 164  df-or 241  df-an 242  df-3or 859  df-3an 860  df-ex 1327  df-sb 1536  df-eu 1775  df-mo 1776  df-clab 1872  df-cleq 1877  df-clel 1880  df-ne 2019  df-nel 2020  df-ral 2109  df-rex 2110  df-reu 2111  df-rab 2112  df-v 2294  df-sbc 2454  df-csb 2541  df-dif 2597  df-un 2600  df-in 2603  df-ss 2605  df-pss 2607  df-nul 2876  df-if 2983  df-pw 3035  df-sn 3049  df-pr 3050  df-tp 3052  df-op 3053  df-uni 3178  df-int 3215  df-iun 3257  df-br 3339  df-opab 3396  df-tr 3412  df-eprel 3583  df-id 3586  df-po 3591  df-so 3604  df-fr 3625  df-we 3644  df-ord 3660  df-on 3661  df-lim 3662  df-suc 3663  df-om 3950  df-xp 4000  df-rel 4001  df-cnv 4002  df-co 4003  df-dm 4004  df-rn 4005  df-res 4006  df-ima 4007  df-fun 4008  df-fn 4009  df-f 4010  df-f1 4011  df-fo 4012  df-f1o 4013  df-fv 4014  df-opr 4886  df-oprab 4887  df-mpt 5006  df-1st 5020  df-2nd 5021  df-iota 5089  df-rdg 5140  df-1o 5177  df-oadd 5179  df-omul 5180  df-er 5318  df-ec 5320  df-qs 5323  df-en 5427  df-dom 5428  df-sdom 5429  df-undef 5556  df-riota 5560  df-ni 6152  df-pli 6153  df-mi 6154  df-lti 6155  df-plpq 6187  df-mpq 6188  df-enq 6189  df-nq 6190  df-plq 6191  df-mq 6192  df-rq 6193  df-ltq 6194  df-1q 6195  df-np 6238  df-1p 6239  df-plp 6240  df-mp 6241  df-ltp 6242  df-plpr 6316  df-mpr 6317  df-enr 6318  df-nr 6319  df-plr 6320  df-mr 6321  df-ltr 6322  df-0r 6323  df-1r 6324  df-m1r 6325  df-c 6392  df-0 6393  df-1 6394  df-i 6395  df-r 6396  df-plus 6397  df-mul 6398  df-lt 6399  df-sub 6511  df-neg 6513  df-pnf 6654  df-mnf 6655  df-xr 6656  df-ltxr 6657  df-le 6658  df-div 6892  df-n 7108  df-n0 7309  df-z 7345  df-seq1 7721  df-fac 8184
Copyright terms: Public domain