| Metamath Proof Explorer |
< Previous
Next >
Nearby theorems |
||
| Mirrors > Home > MPE Home > Th. List > 1kp2ke3k | Structured version Visualization version GIF version | ||
| Description: Example for df-dec 12657, 1000 + 2000 = 3000.
This proof disproves (by counterexample) the assertion of Hao Wang, who stated, "There is a theorem in the primitive notation of set theory that corresponds to the arithmetic theorem 1000 + 2000 = 3000. The formula would be forbiddingly long... even if (one) knows the definitions and is asked to simplify the long formula according to them, chances are he will make errors and arrive at some incorrect result." (Hao Wang, "Theory and practice in mathematics" , In Thomas Tymoczko, editor, New Directions in the Philosophy of Mathematics, pp 129-152, Birkauser Boston, Inc., Boston, 1986. (QA8.6.N48). The quote itself is on page 140.) This is noted in Metamath: A Computer Language for Pure Mathematics by Norman Megill (2007) section 1.1.3. Megill then states, "A number of writers have conveyed the impression that the kind of absolute rigor provided by Metamath is an impossible dream, suggesting that a complete, formal verification of a typical theorem would take millions of steps in untold volumes of books... These writers assume, however, that in order to achieve the kind of complete formal verification they desire one must break down a proof into individual primitive steps that make direct reference to the axioms. This is not necessary. There is no reason not to make use of previously proved theorems rather than proving them over and over... A hierarchy of theorems and definitions permits an exponential growth in the formula sizes and primitive proof steps to be described with only a linear growth in the number of symbols used. Of course, this is how ordinary informal mathematics is normally done anyway, but with Metamath it can be done with absolute rigor and precision." The proof here starts with (2 + 1) = 3, commutes it, and repeatedly multiplies both sides by ten. This is certainly longer than traditional mathematical proofs, e.g., there are a number of steps explicitly shown here to show that we're allowed to do operations such as multiplication. However, while longer, the proof is clearly a manageable size - even though every step is rigorously derived all the way back to the primitive notions of set theory and logic. And while there's a risk of making errors, the many independent verifiers make it much less likely that an incorrect result will be accepted. This proof heavily relies on the decimal constructor df-dec 12657 developed by Mario Carneiro in 2015. The underlying Metamath language has an intentionally very small set of primitives; it doesn't even have a built-in construct for numbers. Instead, the digits are defined using these primitives, and the decimal constructor is used to make it easy to express larger numbers as combinations of digits. (Contributed by David A. Wheeler, 29-Jun-2016.) (Shortened by Mario Carneiro using the arithmetic algorithm in mmj2, 30-Jun-2016.) |
| Ref | Expression |
|---|---|
| 1kp2ke3k | ⊢ (;;;1000 + ;;;2000) = ;;;3000 |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | 1nn0 12465 | . . . 4 ⊢ 1 ∈ ℕ0 | |
| 2 | 0nn0 12464 | . . . 4 ⊢ 0 ∈ ℕ0 | |
| 3 | 1, 2 | deccl 12671 | . . 3 ⊢ ;10 ∈ ℕ0 |
| 4 | 3, 2 | deccl 12671 | . 2 ⊢ ;;100 ∈ ℕ0 |
| 5 | 2nn0 12466 | . . . 4 ⊢ 2 ∈ ℕ0 | |
| 6 | 5, 2 | deccl 12671 | . . 3 ⊢ ;20 ∈ ℕ0 |
| 7 | 6, 2 | deccl 12671 | . 2 ⊢ ;;200 ∈ ℕ0 |
| 8 | eqid 2730 | . 2 ⊢ ;;;1000 = ;;;1000 | |
| 9 | eqid 2730 | . 2 ⊢ ;;;2000 = ;;;2000 | |
| 10 | eqid 2730 | . . 3 ⊢ ;;100 = ;;100 | |
| 11 | eqid 2730 | . . 3 ⊢ ;;200 = ;;200 | |
| 12 | eqid 2730 | . . . 4 ⊢ ;10 = ;10 | |
| 13 | eqid 2730 | . . . 4 ⊢ ;20 = ;20 | |
| 14 | 1p2e3 12331 | . . . 4 ⊢ (1 + 2) = 3 | |
| 15 | 00id 11356 | . . . 4 ⊢ (0 + 0) = 0 | |
| 16 | 1, 2, 5, 2, 12, 13, 14, 15 | decadd 12710 | . . 3 ⊢ (;10 + ;20) = ;30 |
| 17 | 3, 2, 6, 2, 10, 11, 16, 15 | decadd 12710 | . 2 ⊢ (;;100 + ;;200) = ;;300 |
| 18 | 4, 2, 7, 2, 8, 9, 17, 15 | decadd 12710 | 1 ⊢ (;;;1000 + ;;;2000) = ;;;3000 |
| Colors of variables: wff setvar class |
| Syntax hints: = wceq 1540 (class class class)co 7390 0cc0 11075 1c1 11076 + caddc 11078 2c2 12248 3c3 12249 ;cdc 12656 |
| This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1795 ax-4 1809 ax-5 1910 ax-6 1967 ax-7 2008 ax-8 2111 ax-9 2119 ax-10 2142 ax-11 2158 ax-12 2178 ax-ext 2702 ax-sep 5254 ax-nul 5264 ax-pow 5323 ax-pr 5390 ax-un 7714 ax-resscn 11132 ax-1cn 11133 ax-icn 11134 ax-addcl 11135 ax-addrcl 11136 ax-mulcl 11137 ax-mulrcl 11138 ax-mulcom 11139 ax-addass 11140 ax-mulass 11141 ax-distr 11142 ax-i2m1 11143 ax-1ne0 11144 ax-1rid 11145 ax-rnegex 11146 ax-rrecex 11147 ax-cnre 11148 ax-pre-lttri 11149 ax-pre-lttrn 11150 ax-pre-ltadd 11151 |
| This theorem depends on definitions: df-bi 207 df-an 396 df-or 848 df-3or 1087 df-3an 1088 df-tru 1543 df-fal 1553 df-ex 1780 df-nf 1784 df-sb 2066 df-mo 2534 df-eu 2563 df-clab 2709 df-cleq 2722 df-clel 2804 df-nfc 2879 df-ne 2927 df-nel 3031 df-ral 3046 df-rex 3055 df-reu 3357 df-rab 3409 df-v 3452 df-sbc 3757 df-csb 3866 df-dif 3920 df-un 3922 df-in 3924 df-ss 3934 df-pss 3937 df-nul 4300 df-if 4492 df-pw 4568 df-sn 4593 df-pr 4595 df-op 4599 df-uni 4875 df-iun 4960 df-br 5111 df-opab 5173 df-mpt 5192 df-tr 5218 df-id 5536 df-eprel 5541 df-po 5549 df-so 5550 df-fr 5594 df-we 5596 df-xp 5647 df-rel 5648 df-cnv 5649 df-co 5650 df-dm 5651 df-rn 5652 df-res 5653 df-ima 5654 df-pred 6277 df-ord 6338 df-on 6339 df-lim 6340 df-suc 6341 df-iota 6467 df-fun 6516 df-fn 6517 df-f 6518 df-f1 6519 df-fo 6520 df-f1o 6521 df-fv 6522 df-ov 7393 df-om 7846 df-2nd 7972 df-frecs 8263 df-wrecs 8294 df-recs 8343 df-rdg 8381 df-er 8674 df-en 8922 df-dom 8923 df-sdom 8924 df-pnf 11217 df-mnf 11218 df-ltxr 11220 df-nn 12194 df-2 12256 df-3 12257 df-4 12258 df-5 12259 df-6 12260 df-7 12261 df-8 12262 df-9 12263 df-n0 12450 df-dec 12657 |
| This theorem is referenced by: (None) |
| Copyright terms: Public domain | W3C validator |