Metamath Proof Explorer


Theorem modmuladd

Description: Decomposition of an integer into a multiple of a modulus and a remainder. (Contributed by AV, 14-Jul-2021)

Ref Expression
Assertion modmuladd ( ( ๐ด โˆˆ โ„ค โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) โˆง ๐‘€ โˆˆ โ„+ ) โ†’ ( ( ๐ด mod ๐‘€ ) = ๐ต โ†” โˆƒ ๐‘˜ โˆˆ โ„ค ๐ด = ( ( ๐‘˜ ยท ๐‘€ ) + ๐ต ) ) )

Proof

Step Hyp Ref Expression
1 zre โŠข ( ๐ด โˆˆ โ„ค โ†’ ๐ด โˆˆ โ„ )
2 1 adantr โŠข ( ( ๐ด โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„+ ) โ†’ ๐ด โˆˆ โ„ )
3 rpre โŠข ( ๐‘€ โˆˆ โ„+ โ†’ ๐‘€ โˆˆ โ„ )
4 3 adantl โŠข ( ( ๐ด โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„+ ) โ†’ ๐‘€ โˆˆ โ„ )
5 rpne0 โŠข ( ๐‘€ โˆˆ โ„+ โ†’ ๐‘€ โ‰  0 )
6 5 adantl โŠข ( ( ๐ด โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„+ ) โ†’ ๐‘€ โ‰  0 )
7 2 4 6 redivcld โŠข ( ( ๐ด โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„+ ) โ†’ ( ๐ด / ๐‘€ ) โˆˆ โ„ )
8 7 flcld โŠข ( ( ๐ด โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„+ ) โ†’ ( โŒŠ โ€˜ ( ๐ด / ๐‘€ ) ) โˆˆ โ„ค )
9 8 3adant2 โŠข ( ( ๐ด โˆˆ โ„ค โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) โˆง ๐‘€ โˆˆ โ„+ ) โ†’ ( โŒŠ โ€˜ ( ๐ด / ๐‘€ ) ) โˆˆ โ„ค )
10 oveq1 โŠข ( ๐‘˜ = ( โŒŠ โ€˜ ( ๐ด / ๐‘€ ) ) โ†’ ( ๐‘˜ ยท ๐‘€ ) = ( ( โŒŠ โ€˜ ( ๐ด / ๐‘€ ) ) ยท ๐‘€ ) )
11 10 oveq1d โŠข ( ๐‘˜ = ( โŒŠ โ€˜ ( ๐ด / ๐‘€ ) ) โ†’ ( ( ๐‘˜ ยท ๐‘€ ) + ( ๐ด mod ๐‘€ ) ) = ( ( ( โŒŠ โ€˜ ( ๐ด / ๐‘€ ) ) ยท ๐‘€ ) + ( ๐ด mod ๐‘€ ) ) )
12 11 eqeq2d โŠข ( ๐‘˜ = ( โŒŠ โ€˜ ( ๐ด / ๐‘€ ) ) โ†’ ( ๐ด = ( ( ๐‘˜ ยท ๐‘€ ) + ( ๐ด mod ๐‘€ ) ) โ†” ๐ด = ( ( ( โŒŠ โ€˜ ( ๐ด / ๐‘€ ) ) ยท ๐‘€ ) + ( ๐ด mod ๐‘€ ) ) ) )
13 12 adantl โŠข ( ( ( ๐ด โˆˆ โ„ค โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) โˆง ๐‘€ โˆˆ โ„+ ) โˆง ๐‘˜ = ( โŒŠ โ€˜ ( ๐ด / ๐‘€ ) ) ) โ†’ ( ๐ด = ( ( ๐‘˜ ยท ๐‘€ ) + ( ๐ด mod ๐‘€ ) ) โ†” ๐ด = ( ( ( โŒŠ โ€˜ ( ๐ด / ๐‘€ ) ) ยท ๐‘€ ) + ( ๐ด mod ๐‘€ ) ) ) )
14 1 anim1i โŠข ( ( ๐ด โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„+ ) โ†’ ( ๐ด โˆˆ โ„ โˆง ๐‘€ โˆˆ โ„+ ) )
15 14 3adant2 โŠข ( ( ๐ด โˆˆ โ„ค โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) โˆง ๐‘€ โˆˆ โ„+ ) โ†’ ( ๐ด โˆˆ โ„ โˆง ๐‘€ โˆˆ โ„+ ) )
16 flpmodeq โŠข ( ( ๐ด โˆˆ โ„ โˆง ๐‘€ โˆˆ โ„+ ) โ†’ ( ( ( โŒŠ โ€˜ ( ๐ด / ๐‘€ ) ) ยท ๐‘€ ) + ( ๐ด mod ๐‘€ ) ) = ๐ด )
17 15 16 syl โŠข ( ( ๐ด โˆˆ โ„ค โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) โˆง ๐‘€ โˆˆ โ„+ ) โ†’ ( ( ( โŒŠ โ€˜ ( ๐ด / ๐‘€ ) ) ยท ๐‘€ ) + ( ๐ด mod ๐‘€ ) ) = ๐ด )
18 17 eqcomd โŠข ( ( ๐ด โˆˆ โ„ค โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) โˆง ๐‘€ โˆˆ โ„+ ) โ†’ ๐ด = ( ( ( โŒŠ โ€˜ ( ๐ด / ๐‘€ ) ) ยท ๐‘€ ) + ( ๐ด mod ๐‘€ ) ) )
19 9 13 18 rspcedvd โŠข ( ( ๐ด โˆˆ โ„ค โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) โˆง ๐‘€ โˆˆ โ„+ ) โ†’ โˆƒ ๐‘˜ โˆˆ โ„ค ๐ด = ( ( ๐‘˜ ยท ๐‘€ ) + ( ๐ด mod ๐‘€ ) ) )
20 oveq2 โŠข ( ๐ต = ( ๐ด mod ๐‘€ ) โ†’ ( ( ๐‘˜ ยท ๐‘€ ) + ๐ต ) = ( ( ๐‘˜ ยท ๐‘€ ) + ( ๐ด mod ๐‘€ ) ) )
21 20 eqeq2d โŠข ( ๐ต = ( ๐ด mod ๐‘€ ) โ†’ ( ๐ด = ( ( ๐‘˜ ยท ๐‘€ ) + ๐ต ) โ†” ๐ด = ( ( ๐‘˜ ยท ๐‘€ ) + ( ๐ด mod ๐‘€ ) ) ) )
22 21 eqcoms โŠข ( ( ๐ด mod ๐‘€ ) = ๐ต โ†’ ( ๐ด = ( ( ๐‘˜ ยท ๐‘€ ) + ๐ต ) โ†” ๐ด = ( ( ๐‘˜ ยท ๐‘€ ) + ( ๐ด mod ๐‘€ ) ) ) )
23 22 rexbidv โŠข ( ( ๐ด mod ๐‘€ ) = ๐ต โ†’ ( โˆƒ ๐‘˜ โˆˆ โ„ค ๐ด = ( ( ๐‘˜ ยท ๐‘€ ) + ๐ต ) โ†” โˆƒ ๐‘˜ โˆˆ โ„ค ๐ด = ( ( ๐‘˜ ยท ๐‘€ ) + ( ๐ด mod ๐‘€ ) ) ) )
24 19 23 syl5ibrcom โŠข ( ( ๐ด โˆˆ โ„ค โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) โˆง ๐‘€ โˆˆ โ„+ ) โ†’ ( ( ๐ด mod ๐‘€ ) = ๐ต โ†’ โˆƒ ๐‘˜ โˆˆ โ„ค ๐ด = ( ( ๐‘˜ ยท ๐‘€ ) + ๐ต ) ) )
25 oveq1 โŠข ( ๐ด = ( ( ๐‘˜ ยท ๐‘€ ) + ๐ต ) โ†’ ( ๐ด mod ๐‘€ ) = ( ( ( ๐‘˜ ยท ๐‘€ ) + ๐ต ) mod ๐‘€ ) )
26 simpr โŠข ( ( ( ๐ด โˆˆ โ„ค โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) โˆง ๐‘€ โˆˆ โ„+ ) โˆง ๐‘˜ โˆˆ โ„ค ) โ†’ ๐‘˜ โˆˆ โ„ค )
27 simpl3 โŠข ( ( ( ๐ด โˆˆ โ„ค โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) โˆง ๐‘€ โˆˆ โ„+ ) โˆง ๐‘˜ โˆˆ โ„ค ) โ†’ ๐‘€ โˆˆ โ„+ )
28 simpl2 โŠข ( ( ( ๐ด โˆˆ โ„ค โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) โˆง ๐‘€ โˆˆ โ„+ ) โˆง ๐‘˜ โˆˆ โ„ค ) โ†’ ๐ต โˆˆ ( 0 [,) ๐‘€ ) )
29 muladdmodid โŠข ( ( ๐‘˜ โˆˆ โ„ค โˆง ๐‘€ โˆˆ โ„+ โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) ) โ†’ ( ( ( ๐‘˜ ยท ๐‘€ ) + ๐ต ) mod ๐‘€ ) = ๐ต )
30 26 27 28 29 syl3anc โŠข ( ( ( ๐ด โˆˆ โ„ค โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) โˆง ๐‘€ โˆˆ โ„+ ) โˆง ๐‘˜ โˆˆ โ„ค ) โ†’ ( ( ( ๐‘˜ ยท ๐‘€ ) + ๐ต ) mod ๐‘€ ) = ๐ต )
31 25 30 sylan9eqr โŠข ( ( ( ( ๐ด โˆˆ โ„ค โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) โˆง ๐‘€ โˆˆ โ„+ ) โˆง ๐‘˜ โˆˆ โ„ค ) โˆง ๐ด = ( ( ๐‘˜ ยท ๐‘€ ) + ๐ต ) ) โ†’ ( ๐ด mod ๐‘€ ) = ๐ต )
32 31 rexlimdva2 โŠข ( ( ๐ด โˆˆ โ„ค โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) โˆง ๐‘€ โˆˆ โ„+ ) โ†’ ( โˆƒ ๐‘˜ โˆˆ โ„ค ๐ด = ( ( ๐‘˜ ยท ๐‘€ ) + ๐ต ) โ†’ ( ๐ด mod ๐‘€ ) = ๐ต ) )
33 24 32 impbid โŠข ( ( ๐ด โˆˆ โ„ค โˆง ๐ต โˆˆ ( 0 [,) ๐‘€ ) โˆง ๐‘€ โˆˆ โ„+ ) โ†’ ( ( ๐ด mod ๐‘€ ) = ๐ต โ†” โˆƒ ๐‘˜ โˆˆ โ„ค ๐ด = ( ( ๐‘˜ ยท ๐‘€ ) + ๐ต ) ) )