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

Theorem facwordit 6889
Description: Ordering property of factorial.
Assertion
Ref Expression
facwordit |- ((M e. NN0 /\ N e. NN0 /\ M <_ N) -> (!` M) <_ (!` N))

Proof of Theorem facwordit
StepHypRef Expression
1 breq2 2618 . . . . . 6 |- (j = 0 -> (M <_ j <-> M <_ 0))
21anbi2d 615 . . . . 5 |- (j = 0 -> ((M e. NN0 /\ M <_ j) <-> (M e. NN0 /\ M <_ 0)))
3 fveq2 3715 . . . . . 6 |- (j = 0 -> (!` j) = (!` 0))
43breq2d 2625 . . . . 5 |- (j = 0 -> ((!` M) <_ (!` j) <-> (!` M) <_ (!` 0)))
52, 4imbi12d 625 . . . 4 |- (j = 0 -> (((M e. NN0 /\ M <_ j) -> (!` M) <_ (!` j)) <-> ((M e. NN0 /\ M <_ 0) -> (!` M) <_ (!` 0))))
6 breq2 2618 . . . . . 6 |- (j = k -> (M <_ j <-> M <_ k))
76anbi2d 615 . . . . 5 |- (j = k -> ((M e. NN0 /\ M <_ j) <-> (M e. NN0 /\ M <_ k)))
8 fveq2 3715 . . . . . 6 |- (j = k -> (!` j) = (!` k))
98breq2d 2625 . . . . 5 |- (j = k -> ((!` M) <_ (!` j) <-> (!` M) <_ (!` k)))
107, 9imbi12d 625 . . . 4 |- (j = k -> (((M e. NN0 /\ M <_ j) -> (!` M) <_ (!` j)) <-> ((M e. NN0 /\ M <_ k) -> (!` M) <_ (!` k))))
11 breq2 2618 . . . . . 6 |- (j = (k + 1) -> (M <_ j <-> M <_ (k + 1)))
1211anbi2d 615 . . . . 5 |- (j = (k + 1) -> ((M e. NN0 /\ M <_ j) <-> (M e. NN0 /\ M <_ (k + 1))))
13 fveq2 3715 . . . . . 6 |- (j = (k + 1) -> (!` j) = (!` (k + 1)))
1413breq2d 2625 . . . . 5 |- (j = (k + 1) -> ((!` M) <_ (!` j) <-> (!` M) <_ (!` (k + 1))))
1512, 14imbi12d 625 . . . 4 |- (j = (k + 1) -> (((M e. NN0 /\ M <_ j) -> (!` M) <_ (!` j)) <-> ((M e. NN0 /\ M <_ (k + 1)) -> (!` M) <_ (!` (k + 1)))))
16 breq2 2618 . . . . . 6 |- (j = N -> (M <_ j <-> M <_ N))
1716anbi2d 615 . . . . 5 |- (j = N -> ((M e. NN0 /\ M <_ j) <-> (M e. NN0 /\ M <_ N)))
18 fveq2 3715 . . . . . 6 |- (j = N -> (!` j) = (!` N))
1918breq2d 2625 . . . . 5 |- (j = N -> ((!` M) <_ (!` j) <-> (!` M) <_ (!` N)))
2017, 19imbi12d 625 . . . 4 |- (j = N -> (((M e. NN0 /\ M <_ j) -> (!` M) <_ (!` j)) <-> ((M e. NN0 /\ M <_ N) -> (!` M) <_ (!` N))))
21 nn0le0eq0t 6074 . . . . . . 7 |- (M e. NN0 -> (M <_ 0 <-> M = 0))
2221biimpa 416 . . . . . 6 |- ((M e. NN0 /\ M <_ 0) -> M = 0)
2322fveq2d 3719 . . . . 5 |- ((M e. NN0 /\ M <_ 0) -> (!` M) = (!` 0))
24 fac0 6879 . . . . . . 7 |- (!` 0) = 1
25 1re 5415 . . . . . . 7 |- 1 e. RR
2624, 25eqeltr 1541 . . . . . 6 |- (!` 0) e. RR
2726leid 5592 . . . . 5 |- (!` 0) <_ (!` 0)
2823, 27syl6eqbr 2647 . . . 4 |- ((M e. NN0 /\ M <_ 0) -> (!` M) <_ (!` 0))
29 leloet 5499 . . . . . . . . . . . 12 |- ((M e. RR /\ (k + 1) e. RR) -> (M <_ (k + 1) <-> (M < (k + 1) \/ M = (k + 1))))
30 nn0ret 6063 . . . . . . . . . . . 12 |- (M e. NN0 -> M e. RR)
31 nn0ret 6063 . . . . . . . . . . . . 13 |- (k e. NN0 -> k e. RR)
32 peano2re 5416 . . . . . . . . . . . . 13 |- (k e. RR -> (k + 1) e. RR)
3331, 32syl 10 . . . . . . . . . . . 12 |- (k e. NN0 -> (k + 1) e. RR)
3429, 30, 33syl2an 454 . . . . . . . . . . 11 |- ((M e. NN0 /\ k e. NN0) -> (M <_ (k + 1) <-> (M < (k + 1) \/ M = (k + 1))))
35 nn0leltp1t 6083 . . . . . . . . . . . . 13 |- ((M e. NN0 /\ k e. NN0) -> (M <_ k <-> M < (k + 1)))
36 facclt 6885 . . . . . . . . . . . . . . . . . . . 20 |- (k e. NN0 -> (!` k) e. NN)
37 nncnt 5886 . . . . . . . . . . . . . . . . . . . 20 |- ((!` k) e. NN -> (!` k) e. CC)
38 ax1id 5262 . . . . . . . . . . . . . . . . . . . 20 |- ((!` k) e. CC -> ((!` k) x. 1) = (!` k))
3936, 37, 383syl 20 . . . . . . . . . . . . . . . . . . 19 |- (k e. NN0 -> ((!` k) x. 1) = (!` k))
40 lemul2itOLD 5804 . . . . . . . . . . . . . . . . . . . . 21 |- (((1 e. RR /\ (k + 1) e. RR /\ (!` k) e. RR) /\ (0 <_ (!` k) /\ 1 <_ (k + 1))) -> ((!` k) x. 1) <_ ((!` k) x. (k + 1)))
4125, 40mp3anl1 908 . . . . . . . . . . . . . . . . . . . 20 |- ((((k + 1) e. RR /\ (!` k) e. RR) /\ (0 <_ (!` k) /\ 1 <_ (k + 1))) -> ((!` k) x. 1) <_ ((!` k) x. (k + 1)))
42 nnret 5885 . . . . . . . . . . . . . . . . . . . . 21 |- ((!` k) e. NN -> (!` k) e. RR)
4336, 42syl 10 . . . . . . . . . . . . . . . . . . . 20 |- (k e. NN0 -> (!` k) e. RR)
44 nnnn0t 6061 . . . . . . . . . . . . . . . . . . . . 21 |- ((!` k) e. NN -> (!` k) e. NN0)
45 nn0ge0t 6072 . . . . . . . . . . . . . . . . . . . . 21 |- ((!` k) e. NN0 -> 0 <_ (!` k))
4636, 44, 453syl 20 . . . . . . . . . . . . . . . . . . . 20 |- (k e. NN0 -> 0 <_ (!` k))
47 nn0ge0t 6072 . . . . . . . . . . . . . . . . . . . . . 22 |- (k e. NN0 -> 0 <_ k)
48 0re 5420 . . . . . . . . . . . . . . . . . . . . . . . 24 |- 0 e. RR
49 leadd1t 5607 . . . . . . . . . . . . . . . . . . . . . . . 24 |- ((0 e. RR /\ k e. RR /\ 1 e. RR) -> (0 <_ k <-> (0 + 1) <_ (k + 1)))
5048, 25, 49mp3an13 905 . . . . . . . . . . . . . . . . . . . . . . 23 |- (k e. RR -> (0 <_ k <-> (0 + 1) <_ (k + 1)))
5131, 50syl 10 . . . . . . . . . . . . . . . . . . . . . 22 |- (k e. NN0 -> (0 <_ k <-> (0 + 1) <_ (k + 1)))
5247, 51mpbid 195 . . . . . . . . . . . . . . . . . . . . 21 |- (k e. NN0 -> (0 + 1) <_ (k + 1))
53 ax1cn 5249 . . . . . . . . . . . . . . . . . . . . . 22 |- 1 e. CC
5453addid2 5311 . . . . . . . . . . . . . . . . . . . . 21 |- (0 + 1) = 1
5552, 54syl5eqbrr 2644 . . . . . . . . . . . . . . . . . . . 20 |- (k e. NN0 -> 1 <_ (k + 1))
5641, 33, 43, 46, 55syl2anc 472 . . . . . . . . . . . . . . . . . . 19 |- (k e. NN0 -> ((!` k) x. 1) <_ ((!` k) x. (k + 1)))
5739, 56eqbrtrrd 2632 . . . . . . . . . . . . . . . . . 18 |- (k e. NN0 -> (!` k) <_ ((!` k) x. (k + 1)))
58 facp1t 6881 . . . . . . . . . . . . . . . . . 18 |- (k e. NN0 -> (!` (k + 1)) = ((!` k) x. (k + 1)))
5957, 58breqtrrd 2636 . . . . . . . . . . . . . . . . 17 |- (k e. NN0 -> (!` k) <_ (!` (k + 1)))
6059adantl 388 . . . . . . . . . . . . . . . 16 |- ((M e. NN0 /\ k e. NN0) -> (!` k) <_ (!` (k + 1)))
61 letrt 5506 . . . . . . . . . . . . . . . . 17 |- (((!` M) e. RR /\ (!` k) e. RR /\ (!` (k + 1)) e. RR) -> (((!` M) <_ (!` k) /\ (!` k) <_ (!` (k + 1))) -> (!` M) <_ (!` (k + 1))))
62 facclt 6885 . . . . . . . . . . . . . . . . . . 19 |- (M e. NN0 -> (!` M) e. NN)
63 nnret 5885 . . . . . . . . . . . . . . . . . . 19 |- ((!` M) e. NN -> (!` M) e. RR)
6462, 63syl 10 . . . . . . . . . . . . . . . . . 18 |- (M e. NN0 -> (!` M) e. RR)
6564adantr 389 . . . . . . . . . . . . . . . . 17 |- ((M e. NN0 /\ k e. NN0) -> (!` M) e. RR)
6643adantl 388 . . . . . . . . . . . . . . . . 17 |- ((M e. NN0 /\ k e. NN0) -> (!` k) e. RR)
67 peano2nn0 6079 . . . . . . . . . . . . . . . . . . 19 |- (k e. NN0 -> (k + 1) e. NN0)
68 facclt 6885 . . . . . . . . . . . . . . . . . . 19 |- ((k + 1) e. NN0 -> (!` (k + 1)) e. NN)
69 nnret 5885 . . . . . . . . . . . . . . . . . . 19 |- ((!` (k + 1)) e. NN -> (!` (k + 1)) e. RR)
7067, 68, 693syl 20 . . . . . . . . . . . . . . . . . 18 |- (k e. NN0 -> (!` (k + 1)) e. RR)
7170adantl 388 . . . . . . . . . . . . . . . . 17 |- ((M e. NN0 /\ k e. NN0) -> (!` (k + 1)) e. RR)
7261, 65, 66, 71syl3anc 857 . . . . . . . . . . . . . . . 16 |- ((M e. NN0 /\ k e. NN0) -> (((!` M) <_ (!` k) /\ (!` k) <_ (!` (k + 1))) -> (!` M) <_ (!` (k + 1))))
7360, 72mpan2d 701 . . . . . . . . . . . . . . 15 |- ((M e. NN0 /\ k e. NN0) -> ((!` M) <_ (!` k) -> (!` M) <_ (!` (k + 1))))
7473imim2d 25 . . . . . . . . . . . . . 14 |- ((M e. NN0 /\ k e. NN0) -> ((M <_ k -> (!` M) <_ (!` k)) -> (M <_ k -> (!` M) <_ (!` (k + 1))