This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: The division algorithm (theorem). Dividing an integer N by a nonzero integer D produces a (unique) quotient q and a unique remainder 0 <_ r < ( absD ) . Theorem 1.14 in ApostolNT p. 19. The proof does not use / or |_ or mod . (Contributed by Paul Chapman, 21-Mar-2011)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | divalg | ⊢ ( ( 𝑁 ∈ ℤ ∧ 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) → ∃! 𝑟 ∈ ℤ ∃ 𝑞 ∈ ℤ ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ 𝐷 ) ∧ 𝑁 = ( ( 𝑞 · 𝐷 ) + 𝑟 ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | eqeq1 | ⊢ ( 𝑁 = if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) → ( 𝑁 = ( ( 𝑞 · 𝐷 ) + 𝑟 ) ↔ if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) = ( ( 𝑞 · 𝐷 ) + 𝑟 ) ) ) | |
| 2 | 1 | 3anbi3d | ⊢ ( 𝑁 = if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) → ( ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ 𝐷 ) ∧ 𝑁 = ( ( 𝑞 · 𝐷 ) + 𝑟 ) ) ↔ ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ 𝐷 ) ∧ if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) = ( ( 𝑞 · 𝐷 ) + 𝑟 ) ) ) ) |
| 3 | 2 | rexbidv | ⊢ ( 𝑁 = if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) → ( ∃ 𝑞 ∈ ℤ ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ 𝐷 ) ∧ 𝑁 = ( ( 𝑞 · 𝐷 ) + 𝑟 ) ) ↔ ∃ 𝑞 ∈ ℤ ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ 𝐷 ) ∧ if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) = ( ( 𝑞 · 𝐷 ) + 𝑟 ) ) ) ) |
| 4 | 3 | reubidv | ⊢ ( 𝑁 = if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) → ( ∃! 𝑟 ∈ ℤ ∃ 𝑞 ∈ ℤ ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ 𝐷 ) ∧ 𝑁 = ( ( 𝑞 · 𝐷 ) + 𝑟 ) ) ↔ ∃! 𝑟 ∈ ℤ ∃ 𝑞 ∈ ℤ ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ 𝐷 ) ∧ if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) = ( ( 𝑞 · 𝐷 ) + 𝑟 ) ) ) ) |
| 5 | fveq2 | ⊢ ( 𝐷 = if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) → ( abs ‘ 𝐷 ) = ( abs ‘ if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ) ) | |
| 6 | 5 | breq2d | ⊢ ( 𝐷 = if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) → ( 𝑟 < ( abs ‘ 𝐷 ) ↔ 𝑟 < ( abs ‘ if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ) ) ) |
| 7 | oveq2 | ⊢ ( 𝐷 = if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) → ( 𝑞 · 𝐷 ) = ( 𝑞 · if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ) ) | |
| 8 | 7 | oveq1d | ⊢ ( 𝐷 = if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) → ( ( 𝑞 · 𝐷 ) + 𝑟 ) = ( ( 𝑞 · if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ) + 𝑟 ) ) |
| 9 | 8 | eqeq2d | ⊢ ( 𝐷 = if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) → ( if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) = ( ( 𝑞 · 𝐷 ) + 𝑟 ) ↔ if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) = ( ( 𝑞 · if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ) + 𝑟 ) ) ) |
| 10 | 6 9 | 3anbi23d | ⊢ ( 𝐷 = if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) → ( ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ 𝐷 ) ∧ if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) = ( ( 𝑞 · 𝐷 ) + 𝑟 ) ) ↔ ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ) ∧ if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) = ( ( 𝑞 · if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ) + 𝑟 ) ) ) ) |
| 11 | 10 | rexbidv | ⊢ ( 𝐷 = if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) → ( ∃ 𝑞 ∈ ℤ ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ 𝐷 ) ∧ if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) = ( ( 𝑞 · 𝐷 ) + 𝑟 ) ) ↔ ∃ 𝑞 ∈ ℤ ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ) ∧ if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) = ( ( 𝑞 · if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ) + 𝑟 ) ) ) ) |
| 12 | 11 | reubidv | ⊢ ( 𝐷 = if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) → ( ∃! 𝑟 ∈ ℤ ∃ 𝑞 ∈ ℤ ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ 𝐷 ) ∧ if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) = ( ( 𝑞 · 𝐷 ) + 𝑟 ) ) ↔ ∃! 𝑟 ∈ ℤ ∃ 𝑞 ∈ ℤ ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ) ∧ if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) = ( ( 𝑞 · if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ) + 𝑟 ) ) ) ) |
| 13 | 1z | ⊢ 1 ∈ ℤ | |
| 14 | 13 | elimel | ⊢ if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) ∈ ℤ |
| 15 | simpl | ⊢ ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) → 𝐷 ∈ ℤ ) | |
| 16 | eleq1 | ⊢ ( 𝐷 = if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) → ( 𝐷 ∈ ℤ ↔ if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ∈ ℤ ) ) | |
| 17 | eleq1 | ⊢ ( 1 = if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) → ( 1 ∈ ℤ ↔ if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ∈ ℤ ) ) | |
| 18 | 15 16 17 13 | elimdhyp | ⊢ if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ∈ ℤ |
| 19 | simpr | ⊢ ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) → 𝐷 ≠ 0 ) | |
| 20 | neeq1 | ⊢ ( 𝐷 = if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) → ( 𝐷 ≠ 0 ↔ if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ≠ 0 ) ) | |
| 21 | neeq1 | ⊢ ( 1 = if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) → ( 1 ≠ 0 ↔ if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ≠ 0 ) ) | |
| 22 | ax-1ne0 | ⊢ 1 ≠ 0 | |
| 23 | 19 20 21 22 | elimdhyp | ⊢ if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ≠ 0 |
| 24 | eqid | ⊢ { 𝑟 ∈ ℕ0 ∣ if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ∥ ( if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) − 𝑟 ) } = { 𝑟 ∈ ℕ0 ∣ if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ∥ ( if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) − 𝑟 ) } | |
| 25 | 14 18 23 24 | divalglem10 | ⊢ ∃! 𝑟 ∈ ℤ ∃ 𝑞 ∈ ℤ ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ) ∧ if ( 𝑁 ∈ ℤ , 𝑁 , 1 ) = ( ( 𝑞 · if ( ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) , 𝐷 , 1 ) ) + 𝑟 ) ) |
| 26 | 4 12 25 | dedth2h | ⊢ ( ( 𝑁 ∈ ℤ ∧ ( 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) ) → ∃! 𝑟 ∈ ℤ ∃ 𝑞 ∈ ℤ ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ 𝐷 ) ∧ 𝑁 = ( ( 𝑞 · 𝐷 ) + 𝑟 ) ) ) |
| 27 | 26 | 3impb | ⊢ ( ( 𝑁 ∈ ℤ ∧ 𝐷 ∈ ℤ ∧ 𝐷 ≠ 0 ) → ∃! 𝑟 ∈ ℤ ∃ 𝑞 ∈ ℤ ( 0 ≤ 𝑟 ∧ 𝑟 < ( abs ‘ 𝐷 ) ∧ 𝑁 = ( ( 𝑞 · 𝐷 ) + 𝑟 ) ) ) |