Metamath Proof Explorer


Theorem facp2

Description: The factorial of a successor's successor. (Contributed by metakunt, 19-Apr-2024)

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

Proof

Step Hyp Ref Expression
1 nn0cn ( 𝑁 ∈ ℕ0𝑁 ∈ ℂ )
2 ax-1cn 1 ∈ ℂ
3 addass ( ( 𝑁 ∈ ℂ ∧ 1 ∈ ℂ ∧ 1 ∈ ℂ ) → ( ( 𝑁 + 1 ) + 1 ) = ( 𝑁 + ( 1 + 1 ) ) )
4 2 2 3 mp3an23 ( 𝑁 ∈ ℂ → ( ( 𝑁 + 1 ) + 1 ) = ( 𝑁 + ( 1 + 1 ) ) )
5 1 4 syl ( 𝑁 ∈ ℕ0 → ( ( 𝑁 + 1 ) + 1 ) = ( 𝑁 + ( 1 + 1 ) ) )
6 df-2 2 = ( 1 + 1 )
7 6 oveq2i ( 𝑁 + 2 ) = ( 𝑁 + ( 1 + 1 ) )
8 7 eqcomi ( 𝑁 + ( 1 + 1 ) ) = ( 𝑁 + 2 )
9 8 a1i ( 𝑁 ∈ ℕ0 → ( 𝑁 + ( 1 + 1 ) ) = ( 𝑁 + 2 ) )
10 5 9 eqtrd ( 𝑁 ∈ ℕ0 → ( ( 𝑁 + 1 ) + 1 ) = ( 𝑁 + 2 ) )
11 10 fveq2d ( 𝑁 ∈ ℕ0 → ( ! ‘ ( ( 𝑁 + 1 ) + 1 ) ) = ( ! ‘ ( 𝑁 + 2 ) ) )
12 peano2nn0 ( 𝑁 ∈ ℕ0 → ( 𝑁 + 1 ) ∈ ℕ0 )
13 facp1 ( ( 𝑁 + 1 ) ∈ ℕ0 → ( ! ‘ ( ( 𝑁 + 1 ) + 1 ) ) = ( ( ! ‘ ( 𝑁 + 1 ) ) · ( ( 𝑁 + 1 ) + 1 ) ) )
14 12 13 syl ( 𝑁 ∈ ℕ0 → ( ! ‘ ( ( 𝑁 + 1 ) + 1 ) ) = ( ( ! ‘ ( 𝑁 + 1 ) ) · ( ( 𝑁 + 1 ) + 1 ) ) )
15 11 14 eqtr3d ( 𝑁 ∈ ℕ0 → ( ! ‘ ( 𝑁 + 2 ) ) = ( ( ! ‘ ( 𝑁 + 1 ) ) · ( ( 𝑁 + 1 ) + 1 ) ) )
16 10 oveq2d ( 𝑁 ∈ ℕ0 → ( ( ! ‘ ( 𝑁 + 1 ) ) · ( ( 𝑁 + 1 ) + 1 ) ) = ( ( ! ‘ ( 𝑁 + 1 ) ) · ( 𝑁 + 2 ) ) )
17 15 16 eqtrd ( 𝑁 ∈ ℕ0 → ( ! ‘ ( 𝑁 + 2 ) ) = ( ( ! ‘ ( 𝑁 + 1 ) ) · ( 𝑁 + 2 ) ) )
18 facp1 ( 𝑁 ∈ ℕ0 → ( ! ‘ ( 𝑁 + 1 ) ) = ( ( ! ‘ 𝑁 ) · ( 𝑁 + 1 ) ) )
19 18 oveq1d ( 𝑁 ∈ ℕ0 → ( ( ! ‘ ( 𝑁 + 1 ) ) · ( 𝑁 + 2 ) ) = ( ( ( ! ‘ 𝑁 ) · ( 𝑁 + 1 ) ) · ( 𝑁 + 2 ) ) )
20 17 19 eqtrd ( 𝑁 ∈ ℕ0 → ( ! ‘ ( 𝑁 + 2 ) ) = ( ( ( ! ‘ 𝑁 ) · ( 𝑁 + 1 ) ) · ( 𝑁 + 2 ) ) )
21 faccl ( 𝑁 ∈ ℕ0 → ( ! ‘ 𝑁 ) ∈ ℕ )
22 nncn ( ( ! ‘ 𝑁 ) ∈ ℕ → ( ! ‘ 𝑁 ) ∈ ℂ )
23 21 22 syl ( 𝑁 ∈ ℕ0 → ( ! ‘ 𝑁 ) ∈ ℂ )
24 nn0cn ( ( 𝑁 + 1 ) ∈ ℕ0 → ( 𝑁 + 1 ) ∈ ℂ )
25 12 24 syl ( 𝑁 ∈ ℕ0 → ( 𝑁 + 1 ) ∈ ℂ )
26 2cn 2 ∈ ℂ
27 addcl ( ( 𝑁 ∈ ℂ ∧ 2 ∈ ℂ ) → ( 𝑁 + 2 ) ∈ ℂ )
28 26 27 mpan2 ( 𝑁 ∈ ℂ → ( 𝑁 + 2 ) ∈ ℂ )
29 1 28 syl ( 𝑁 ∈ ℕ0 → ( 𝑁 + 2 ) ∈ ℂ )
30 mulass ( ( ( ! ‘ 𝑁 ) ∈ ℂ ∧ ( 𝑁 + 1 ) ∈ ℂ ∧ ( 𝑁 + 2 ) ∈ ℂ ) → ( ( ( ! ‘ 𝑁 ) · ( 𝑁 + 1 ) ) · ( 𝑁 + 2 ) ) = ( ( ! ‘ 𝑁 ) · ( ( 𝑁 + 1 ) · ( 𝑁 + 2 ) ) ) )
31 23 25 29 30 syl3anc ( 𝑁 ∈ ℕ0 → ( ( ( ! ‘ 𝑁 ) · ( 𝑁 + 1 ) ) · ( 𝑁 + 2 ) ) = ( ( ! ‘ 𝑁 ) · ( ( 𝑁 + 1 ) · ( 𝑁 + 2 ) ) ) )
32 20 31 eqtrd ( 𝑁 ∈ ℕ0 → ( ! ‘ ( 𝑁 + 2 ) ) = ( ( ! ‘ 𝑁 ) · ( ( 𝑁 + 1 ) · ( 𝑁 + 2 ) ) ) )