| 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 12608, 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 12608 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 12417 | . . . 4 ⊢ 1 ∈ ℕ0 | |
| 2 | 0nn0 12416 | . . . 4 ⊢ 0 ∈ ℕ0 | |
| 3 | 1, 2 | deccl 12622 | . . 3 ⊢ ;10 ∈ ℕ0 |
| 4 | 3, 2 | deccl 12622 | . 2 ⊢ ;;100 ∈ ℕ0 |
| 5 | 2nn0 12418 | . . . 4 ⊢ 2 ∈ ℕ0 | |
| 6 | 5, 2 | deccl 12622 | . . 3 ⊢ ;20 ∈ ℕ0 |
| 7 | 6, 2 | deccl 12622 | . 2 ⊢ ;;200 ∈ ℕ0 |
| 8 | eqid 2736 | . 2 ⊢ ;;;1000 = ;;;1000 | |
| 9 | eqid 2736 | . 2 ⊢ ;;;2000 = ;;;2000 | |
| 10 | eqid 2736 | . . 3 ⊢ ;;100 = ;;100 | |
| 11 | eqid 2736 | . . 3 ⊢ ;;200 = ;;200 | |
| 12 | eqid 2736 | . . . 4 ⊢ ;10 = ;10 | |
| 13 | eqid 2736 | . . . 4 ⊢ ;20 = ;20 | |
| 14 | 1p2e3 12283 | . . . 4 ⊢ (1 + 2) = 3 | |
| 15 | 00id 11308 | . . . 4 ⊢ (0 + 0) = 0 | |
| 16 | 1, 2, 5, 2, 12, 13, 14, 15 | decadd 12661 | . . 3 ⊢ (;10 + ;20) = ;30 |
| 17 | 3, 2, 6, 2, 10, 11, 16, 15 | decadd 12661 | . 2 ⊢ (;;100 + ;;200) = ;;300 |
| 18 | 4, 2, 7, 2, 8, 9, 17, 15 | decadd 12661 | 1 ⊢ (;;;1000 + ;;;2000) = ;;;3000 |
| Colors of variables: wff setvar class |
| Syntax hints: = wceq 1541 (class class class)co 7358 0cc0 11026 1c1 11027 + caddc 11029 2c2 12200 3c3 12201 ;cdc 12607 |
| This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1796 ax-4 1810 ax-5 1911 ax-6 1968 ax-7 2009 ax-8 2115 ax-9 2123 ax-10 2146 ax-11 2162 ax-12 2184 ax-ext 2708 ax-sep 5241 ax-nul 5251 ax-pow 5310 ax-pr 5377 ax-un 7680 ax-resscn 11083 ax-1cn 11084 ax-icn 11085 ax-addcl 11086 ax-addrcl 11087 ax-mulcl 11088 ax-mulrcl 11089 ax-mulcom 11090 ax-addass 11091 ax-mulass 11092 ax-distr 11093 ax-i2m1 11094 ax-1ne0 11095 ax-1rid 11096 ax-rnegex 11097 ax-rrecex 11098 ax-cnre 11099 ax-pre-lttri 11100 ax-pre-lttrn 11101 ax-pre-ltadd 11102 |
| This theorem depends on definitions: df-bi 207 df-an 396 df-or 848 df-3or 1087 df-3an 1088 df-tru 1544 df-fal 1554 df-ex 1781 df-nf 1785 df-sb 2068 df-mo 2539 df-eu 2569 df-clab 2715 df-cleq 2728 df-clel 2811 df-nfc 2885 df-ne 2933 df-nel 3037 df-ral 3052 df-rex 3061 df-reu 3351 df-rab 3400 df-v 3442 df-sbc 3741 df-csb 3850 df-dif 3904 df-un 3906 df-in 3908 df-ss 3918 df-pss 3921 df-nul 4286 df-if 4480 df-pw 4556 df-sn 4581 df-pr 4583 df-op 4587 df-uni 4864 df-iun 4948 df-br 5099 df-opab 5161 df-mpt 5180 df-tr 5206 df-id 5519 df-eprel 5524 df-po 5532 df-so 5533 df-fr 5577 df-we 5579 df-xp 5630 df-rel 5631 df-cnv 5632 df-co 5633 df-dm 5634 df-rn 5635 df-res 5636 df-ima 5637 df-pred 6259 df-ord 6320 df-on 6321 df-lim 6322 df-suc 6323 df-iota 6448 df-fun 6494 df-fn 6495 df-f 6496 df-f1 6497 df-fo 6498 df-f1o 6499 df-fv 6500 df-ov 7361 df-om 7809 df-2nd 7934 df-frecs 8223 df-wrecs 8254 df-recs 8303 df-rdg 8341 df-er 8635 df-en 8884 df-dom 8885 df-sdom 8886 df-pnf 11168 df-mnf 11169 df-ltxr 11171 df-nn 12146 df-2 12208 df-3 12209 df-4 12210 df-5 12211 df-6 12212 df-7 12213 df-8 12214 df-9 12215 df-n0 12402 df-dec 12608 |
| This theorem is referenced by: (None) |
| Copyright terms: Public domain | W3C validator |