| 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 12599, 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 12599 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 12408 | . . . 4 ⊢ 1 ∈ ℕ0 | |
| 2 | 0nn0 12407 | . . . 4 ⊢ 0 ∈ ℕ0 | |
| 3 | 1, 2 | deccl 12613 | . . 3 ⊢ ;10 ∈ ℕ0 |
| 4 | 3, 2 | deccl 12613 | . 2 ⊢ ;;100 ∈ ℕ0 |
| 5 | 2nn0 12409 | . . . 4 ⊢ 2 ∈ ℕ0 | |
| 6 | 5, 2 | deccl 12613 | . . 3 ⊢ ;20 ∈ ℕ0 |
| 7 | 6, 2 | deccl 12613 | . 2 ⊢ ;;200 ∈ ℕ0 |
| 8 | eqid 2733 | . 2 ⊢ ;;;1000 = ;;;1000 | |
| 9 | eqid 2733 | . 2 ⊢ ;;;2000 = ;;;2000 | |
| 10 | eqid 2733 | . . 3 ⊢ ;;100 = ;;100 | |
| 11 | eqid 2733 | . . 3 ⊢ ;;200 = ;;200 | |
| 12 | eqid 2733 | . . . 4 ⊢ ;10 = ;10 | |
| 13 | eqid 2733 | . . . 4 ⊢ ;20 = ;20 | |
| 14 | 1p2e3 12274 | . . . 4 ⊢ (1 + 2) = 3 | |
| 15 | 00id 11299 | . . . 4 ⊢ (0 + 0) = 0 | |
| 16 | 1, 2, 5, 2, 12, 13, 14, 15 | decadd 12652 | . . 3 ⊢ (;10 + ;20) = ;30 |
| 17 | 3, 2, 6, 2, 10, 11, 16, 15 | decadd 12652 | . 2 ⊢ (;;100 + ;;200) = ;;300 |
| 18 | 4, 2, 7, 2, 8, 9, 17, 15 | decadd 12652 | 1 ⊢ (;;;1000 + ;;;2000) = ;;;3000 |
| Colors of variables: wff setvar class |
| Syntax hints: = wceq 1541 (class class class)co 7355 0cc0 11017 1c1 11018 + caddc 11020 2c2 12191 3c3 12192 ;cdc 12598 |
| 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 2182 ax-ext 2705 ax-sep 5238 ax-nul 5248 ax-pow 5307 ax-pr 5374 ax-un 7677 ax-resscn 11074 ax-1cn 11075 ax-icn 11076 ax-addcl 11077 ax-addrcl 11078 ax-mulcl 11079 ax-mulrcl 11080 ax-mulcom 11081 ax-addass 11082 ax-mulass 11083 ax-distr 11084 ax-i2m1 11085 ax-1ne0 11086 ax-1rid 11087 ax-rnegex 11088 ax-rrecex 11089 ax-cnre 11090 ax-pre-lttri 11091 ax-pre-lttrn 11092 ax-pre-ltadd 11093 |
| 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 2537 df-eu 2566 df-clab 2712 df-cleq 2725 df-clel 2808 df-nfc 2882 df-ne 2930 df-nel 3034 df-ral 3049 df-rex 3058 df-reu 3348 df-rab 3397 df-v 3439 df-sbc 3738 df-csb 3847 df-dif 3901 df-un 3903 df-in 3905 df-ss 3915 df-pss 3918 df-nul 4283 df-if 4477 df-pw 4553 df-sn 4578 df-pr 4580 df-op 4584 df-uni 4861 df-iun 4945 df-br 5096 df-opab 5158 df-mpt 5177 df-tr 5203 df-id 5516 df-eprel 5521 df-po 5529 df-so 5530 df-fr 5574 df-we 5576 df-xp 5627 df-rel 5628 df-cnv 5629 df-co 5630 df-dm 5631 df-rn 5632 df-res 5633 df-ima 5634 df-pred 6256 df-ord 6317 df-on 6318 df-lim 6319 df-suc 6320 df-iota 6445 df-fun 6491 df-fn 6492 df-f 6493 df-f1 6494 df-fo 6495 df-f1o 6496 df-fv 6497 df-ov 7358 df-om 7806 df-2nd 7931 df-frecs 8220 df-wrecs 8251 df-recs 8300 df-rdg 8338 df-er 8631 df-en 8880 df-dom 8881 df-sdom 8882 df-pnf 11159 df-mnf 11160 df-ltxr 11162 df-nn 12137 df-2 12199 df-3 12200 df-4 12201 df-5 12202 df-6 12203 df-7 12204 df-8 12205 df-9 12206 df-n0 12393 df-dec 12599 |
| This theorem is referenced by: (None) |
| Copyright terms: Public domain | W3C validator |