| 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 12855, 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 12855 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.) (Proof 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 12662 | . . . 4 ⊢ 1 ∈ ℕ0 | |
| 2 | 0nn0 12661 | . . . 4 ⊢ 0 ∈ ℕ0 | |
| 3 | 1, 2 | deccl 12869 | . . 3 ⊢ ;10 ∈ ℕ0 |
| 4 | 3, 2 | deccl 12869 | . 2 ⊢ ;;100 ∈ ℕ0 |
| 5 | 2nn0 12663 | . . . 4 ⊢ 2 ∈ ℕ0 | |
| 6 | 5, 2 | deccl 12869 | . . 3 ⊢ ;20 ∈ ℕ0 |
| 7 | 6, 2 | deccl 12869 | . 2 ⊢ ;;200 ∈ ℕ0 |
| 8 | eqid 2763 | . 2 ⊢ ;;;1000 = ;;;1000 | |
| 9 | eqid 2763 | . 2 ⊢ ;;;2000 = ;;;2000 | |
| 10 | eqid 2763 | . . 3 ⊢ ;;100 = ;;100 | |
| 11 | eqid 2763 | . . 3 ⊢ ;;200 = ;;200 | |
| 12 | eqid 2763 | . . . 4 ⊢ ;10 = ;10 | |
| 13 | eqid 2763 | . . . 4 ⊢ ;20 = ;20 | |
| 14 | 1p2e3 12525 | . . . 4 ⊢ (1 + 2) = 3 | |
| 15 | 00id 11524 | . . . 4 ⊢ (0 + 0) = 0 | |
| 16 | 1, 2, 5, 2, 12, 13, 14, 15 | decadd 12913 | . . 3 ⊢ (;10 + ;20) = ;30 |
| 17 | 3, 2, 6, 2, 10, 11, 16, 15 | decadd 12913 | . 2 ⊢ (;;100 + ;;200) = ;;300 |
| 18 | 4, 2, 7, 2, 8, 9, 17, 15 | decadd 12913 | 1 ⊢ (;;;1000 + ;;;2000) = ;;;3000 |
| Colors of variables: wff setvar class |
| This proof depends on syntax axioms: = wceq 1570 (class class class)co 7451 0cc0 11239 1c1 11240 + caddc 11242 2c2 12437 3c3 12438 ;cdc 12854 |
| This proof depends on axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1828 ax-4 1842 ax-5 1945 ax-6 2002 ax-7 2043 ax-8 2149 ax-9 2157 ax-10 2180 ax-11 2197 ax-12 2216 ax-ext 2735 ax-sep 5255 ax-nul 5266 ax-pow 5334 ax-pr 5398 ax-un 7783 ax-resscn 11296 ax-1cn 11297 ax-icn 11298 ax-addcl 11299 ax-addrcl 11300 ax-mulcl 11301 ax-mulrcl 11302 ax-mulcom 11303 ax-addass 11304 ax-mulass 11305 ax-distr 11306 ax-i2m1 11307 ax-1ne0 11308 ax-1rid 11309 ax-rnegex 11310 ax-rrecex 11311 ax-cnre 11312 ax-pre-lttri 11313 ax-pre-lttrn 11314 ax-pre-ltadd 11315 |
| This proof depends on definitions: df-bi 210 df-an 402 df-or 862 df-3or 1104 df-3an 1105 df-tru 1573 df-fal 1583 df-ex 1813 df-nf 1817 df-sb 2102 df-mo 2567 df-eu 2597 df-clab 2742 df-cleq 2755 df-clel 2839 df-nfc 2913 df-ne 2960 df-nel 3066 df-ral 3081 df-rex 3091 df-reu 3370 df-rab 3417 df-v 3456 df-sbc 3743 df-csb 3852 df-ss 3901 df-pss 4017 df-dif 4050 df-in 4094 df-un 4154 df-nul 4282 df-if 4486 df-pw 4562 df-sn 4589 df-pr 4591 df-op 4841 df-uni 4873 df-iun 4958 df-br 5109 df-opab 5174 df-mpt 5193 df-tr 5219 df-id 5553 df-eprel 5558 df-po 5566 df-so 5567 df-fr 5611 df-we 5613 df-xp 5664 df-rel 5665 df-cnv 5666 df-co 5667 df-dm 5668 df-rn 5669 df-res 5670 df-ima 5671 df-pred 6330 df-ord 6391 df-on 6392 df-lim 6393 df-suc 6394 df-iota 6520 df-fun 6568 df-fn 6569 df-f 6570 df-f1 6571 df-fo 6572 df-f1o 6573 df-fv 6574 df-ov 7454 df-om 7912 df-2nd 8036 df-frecs 8337 df-wrecs 8368 df-recs 8417 df-rdg 8456 df-er 8755 df-en 9012 df-dom 9013 df-sdom 9014 df-pnf 11384 df-mnf 11385 df-ltxr 11387 df-nn 12376 df-2 12445 df-3 12446 df-4 12447 df-5 12448 df-6 12449 df-7 12450 df-8 12451 df-9 12452 df-n0 12647 df-dec 12855 |
| This theorem is used by: (None) |
| Copyright terms: Public domain | W3C validator |