Metamath Proof Explorer


Theorem facp1

Description: The factorial of a successor. (Contributed by NM, 2-Dec-2004) (Revised by Mario Carneiro, 13-Jul-2013)

Ref Expression
Assertion facp1 ( 𝑁 ∈ ℕ0 → ( ! ‘ ( 𝑁 + 1 ) ) = ( ( ! ‘ 𝑁 ) · ( 𝑁 + 1 ) ) )

Proof

Step Hyp Ref Expression
1 elnn0 ( 𝑁 ∈ ℕ0 ↔ ( 𝑁 ∈ ℕ ∨ 𝑁 = 0 ) )
2 peano2nn ( 𝑁 ∈ ℕ → ( 𝑁 + 1 ) ∈ ℕ )
3 facnn ( ( 𝑁 + 1 ) ∈ ℕ → ( ! ‘ ( 𝑁 + 1 ) ) = ( seq 1 ( · , I ) ‘ ( 𝑁 + 1 ) ) )
4 2 3 syl ( 𝑁 ∈ ℕ → ( ! ‘ ( 𝑁 + 1 ) ) = ( seq 1 ( · , I ) ‘ ( 𝑁 + 1 ) ) )
5 ovex ( 𝑁 + 1 ) ∈ V
6 fvi ( ( 𝑁 + 1 ) ∈ V → ( I ‘ ( 𝑁 + 1 ) ) = ( 𝑁 + 1 ) )
7 5 6 ax-mp ( I ‘ ( 𝑁 + 1 ) ) = ( 𝑁 + 1 )
8 7 oveq2i ( ( seq 1 ( · , I ) ‘ 𝑁 ) · ( I ‘ ( 𝑁 + 1 ) ) ) = ( ( seq 1 ( · , I ) ‘ 𝑁 ) · ( 𝑁 + 1 ) )
9 seqp1 ( 𝑁 ∈ ( ℤ ‘ 1 ) → ( seq 1 ( · , I ) ‘ ( 𝑁 + 1 ) ) = ( ( seq 1 ( · , I ) ‘ 𝑁 ) · ( I ‘ ( 𝑁 + 1 ) ) ) )
10 nnuz ℕ = ( ℤ ‘ 1 )
11 9 10 eleq2s ( 𝑁 ∈ ℕ → ( seq 1 ( · , I ) ‘ ( 𝑁 + 1 ) ) = ( ( seq 1 ( · , I ) ‘ 𝑁 ) · ( I ‘ ( 𝑁 + 1 ) ) ) )
12 facnn ( 𝑁 ∈ ℕ → ( ! ‘ 𝑁 ) = ( seq 1 ( · , I ) ‘ 𝑁 ) )
13 12 oveq1d ( 𝑁 ∈ ℕ → ( ( ! ‘ 𝑁 ) · ( 𝑁 + 1 ) ) = ( ( seq 1 ( · , I ) ‘ 𝑁 ) · ( 𝑁 + 1 ) ) )
14 8 11 13 3eqtr4a ( 𝑁 ∈ ℕ → ( seq 1 ( · , I ) ‘ ( 𝑁 + 1 ) ) = ( ( ! ‘ 𝑁 ) · ( 𝑁 + 1 ) ) )
15 4 14 eqtrd ( 𝑁 ∈ ℕ → ( ! ‘ ( 𝑁 + 1 ) ) = ( ( ! ‘ 𝑁 ) · ( 𝑁 + 1 ) ) )
16 0p1e1 ( 0 + 1 ) = 1
17 16 fveq2i ( ! ‘ ( 0 + 1 ) ) = ( ! ‘ 1 )
18 fac1 ( ! ‘ 1 ) = 1
19 17 18 eqtri ( ! ‘ ( 0 + 1 ) ) = 1
20 fvoveq1 ( 𝑁 = 0 → ( ! ‘ ( 𝑁 + 1 ) ) = ( ! ‘ ( 0 + 1 ) ) )
21 fveq2 ( 𝑁 = 0 → ( ! ‘ 𝑁 ) = ( ! ‘ 0 ) )
22 oveq1 ( 𝑁 = 0 → ( 𝑁 + 1 ) = ( 0 + 1 ) )
23 21 22 oveq12d ( 𝑁 = 0 → ( ( ! ‘ 𝑁 ) · ( 𝑁 + 1 ) ) = ( ( ! ‘ 0 ) · ( 0 + 1 ) ) )
24 fac0 ( ! ‘ 0 ) = 1
25 24 16 oveq12i ( ( ! ‘ 0 ) · ( 0 + 1 ) ) = ( 1 · 1 )
26 1t1e1 ( 1 · 1 ) = 1
27 25 26 eqtri ( ( ! ‘ 0 ) · ( 0 + 1 ) ) = 1
28 23 27 syl6eq ( 𝑁 = 0 → ( ( ! ‘ 𝑁 ) · ( 𝑁 + 1 ) ) = 1 )
29 19 20 28 3eqtr4a ( 𝑁 = 0 → ( ! ‘ ( 𝑁 + 1 ) ) = ( ( ! ‘ 𝑁 ) · ( 𝑁 + 1 ) ) )
30 15 29 jaoi ( ( 𝑁 ∈ ℕ ∨ 𝑁 = 0 ) → ( ! ‘ ( 𝑁 + 1 ) ) = ( ( ! ‘ 𝑁 ) · ( 𝑁 + 1 ) ) )
31 1 30 sylbi ( 𝑁 ∈ ℕ0 → ( ! ‘ ( 𝑁 + 1 ) ) = ( ( ! ‘ 𝑁 ) · ( 𝑁 + 1 ) ) )