Metamath Proof Explorer


Theorem nnmulcl

Description: Closure of multiplication of positive integers. (Contributed by NM, 12-Jan-1997) Remove dependency on ax-mulcom and ax-mulass . (Revised by Steven Nguyen, 24-Sep-2022)

Ref Expression
Assertion nnmulcl
|- ( ( A e. NN /\ B e. NN ) -> ( A x. B ) e. NN )

Proof

Step Hyp Ref Expression
1 oveq2
 |-  ( x = 1 -> ( A x. x ) = ( A x. 1 ) )
2 1 eleq1d
 |-  ( x = 1 -> ( ( A x. x ) e. NN <-> ( A x. 1 ) e. NN ) )
3 2 imbi2d
 |-  ( x = 1 -> ( ( A e. NN -> ( A x. x ) e. NN ) <-> ( A e. NN -> ( A x. 1 ) e. NN ) ) )
4 oveq2
 |-  ( x = y -> ( A x. x ) = ( A x. y ) )
5 4 eleq1d
 |-  ( x = y -> ( ( A x. x ) e. NN <-> ( A x. y ) e. NN ) )
6 5 imbi2d
 |-  ( x = y -> ( ( A e. NN -> ( A x. x ) e. NN ) <-> ( A e. NN -> ( A x. y ) e. NN ) ) )
7 oveq2
 |-  ( x = ( y + 1 ) -> ( A x. x ) = ( A x. ( y + 1 ) ) )
8 7 eleq1d
 |-  ( x = ( y + 1 ) -> ( ( A x. x ) e. NN <-> ( A x. ( y + 1 ) ) e. NN ) )
9 8 imbi2d
 |-  ( x = ( y + 1 ) -> ( ( A e. NN -> ( A x. x ) e. NN ) <-> ( A e. NN -> ( A x. ( y + 1 ) ) e. NN ) ) )
10 oveq2
 |-  ( x = B -> ( A x. x ) = ( A x. B ) )
11 10 eleq1d
 |-  ( x = B -> ( ( A x. x ) e. NN <-> ( A x. B ) e. NN ) )
12 11 imbi2d
 |-  ( x = B -> ( ( A e. NN -> ( A x. x ) e. NN ) <-> ( A e. NN -> ( A x. B ) e. NN ) ) )
13 nnre
 |-  ( A e. NN -> A e. RR )
14 ax-1rid
 |-  ( A e. RR -> ( A x. 1 ) = A )
15 14 eleq1d
 |-  ( A e. RR -> ( ( A x. 1 ) e. NN <-> A e. NN ) )
16 15 biimprd
 |-  ( A e. RR -> ( A e. NN -> ( A x. 1 ) e. NN ) )
17 13 16 mpcom
 |-  ( A e. NN -> ( A x. 1 ) e. NN )
18 nnaddcl
 |-  ( ( ( A x. y ) e. NN /\ A e. NN ) -> ( ( A x. y ) + A ) e. NN )
19 18 ancoms
 |-  ( ( A e. NN /\ ( A x. y ) e. NN ) -> ( ( A x. y ) + A ) e. NN )
20 nncn
 |-  ( A e. NN -> A e. CC )
21 nncn
 |-  ( y e. NN -> y e. CC )
22 ax-1cn
 |-  1 e. CC
23 adddi
 |-  ( ( A e. CC /\ y e. CC /\ 1 e. CC ) -> ( A x. ( y + 1 ) ) = ( ( A x. y ) + ( A x. 1 ) ) )
24 22 23 mp3an3
 |-  ( ( A e. CC /\ y e. CC ) -> ( A x. ( y + 1 ) ) = ( ( A x. y ) + ( A x. 1 ) ) )
25 20 21 24 syl2an
 |-  ( ( A e. NN /\ y e. NN ) -> ( A x. ( y + 1 ) ) = ( ( A x. y ) + ( A x. 1 ) ) )
26 13 14 syl
 |-  ( A e. NN -> ( A x. 1 ) = A )
27 26 adantr
 |-  ( ( A e. NN /\ y e. NN ) -> ( A x. 1 ) = A )
28 27 oveq2d
 |-  ( ( A e. NN /\ y e. NN ) -> ( ( A x. y ) + ( A x. 1 ) ) = ( ( A x. y ) + A ) )
29 25 28 eqtrd
 |-  ( ( A e. NN /\ y e. NN ) -> ( A x. ( y + 1 ) ) = ( ( A x. y ) + A ) )
30 29 eleq1d
 |-  ( ( A e. NN /\ y e. NN ) -> ( ( A x. ( y + 1 ) ) e. NN <-> ( ( A x. y ) + A ) e. NN ) )
31 19 30 syl5ibr
 |-  ( ( A e. NN /\ y e. NN ) -> ( ( A e. NN /\ ( A x. y ) e. NN ) -> ( A x. ( y + 1 ) ) e. NN ) )
32 31 exp4b
 |-  ( A e. NN -> ( y e. NN -> ( A e. NN -> ( ( A x. y ) e. NN -> ( A x. ( y + 1 ) ) e. NN ) ) ) )
33 32 pm2.43b
 |-  ( y e. NN -> ( A e. NN -> ( ( A x. y ) e. NN -> ( A x. ( y + 1 ) ) e. NN ) ) )
34 33 a2d
 |-  ( y e. NN -> ( ( A e. NN -> ( A x. y ) e. NN ) -> ( A e. NN -> ( A x. ( y + 1 ) ) e. NN ) ) )
35 3 6 9 12 17 34 nnind
 |-  ( B e. NN -> ( A e. NN -> ( A x. B ) e. NN ) )
36 35 impcom
 |-  ( ( A e. NN /\ B e. NN ) -> ( A x. B ) e. NN )