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 12192, 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 12192 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 12004 | . . . 4 ⊢ 1 ∈ ℕ0 | |
2 | 0nn0 12003 | . . . 4 ⊢ 0 ∈ ℕ0 | |
3 | 1, 2 | deccl 12206 | . . 3 ⊢ ;10 ∈ ℕ0 |
4 | 3, 2 | deccl 12206 | . 2 ⊢ ;;100 ∈ ℕ0 |
5 | 2nn0 12005 | . . . 4 ⊢ 2 ∈ ℕ0 | |
6 | 5, 2 | deccl 12206 | . . 3 ⊢ ;20 ∈ ℕ0 |
7 | 6, 2 | deccl 12206 | . 2 ⊢ ;;200 ∈ ℕ0 |
8 | eqid 2739 | . 2 ⊢ ;;;1000 = ;;;1000 | |
9 | eqid 2739 | . 2 ⊢ ;;;2000 = ;;;2000 | |
10 | eqid 2739 | . . 3 ⊢ ;;100 = ;;100 | |
11 | eqid 2739 | . . 3 ⊢ ;;200 = ;;200 | |
12 | eqid 2739 | . . . 4 ⊢ ;10 = ;10 | |
13 | eqid 2739 | . . . 4 ⊢ ;20 = ;20 | |
14 | 1p2e3 11871 | . . . 4 ⊢ (1 + 2) = 3 | |
15 | 00id 10905 | . . . 4 ⊢ (0 + 0) = 0 | |
16 | 1, 2, 5, 2, 12, 13, 14, 15 | decadd 12245 | . . 3 ⊢ (;10 + ;20) = ;30 |
17 | 3, 2, 6, 2, 10, 11, 16, 15 | decadd 12245 | . 2 ⊢ (;;100 + ;;200) = ;;300 |
18 | 4, 2, 7, 2, 8, 9, 17, 15 | decadd 12245 | 1 ⊢ (;;;1000 + ;;;2000) = ;;;3000 |
Colors of variables: wff setvar class |
Syntax hints: = wceq 1542 (class class class)co 7182 0cc0 10627 1c1 10628 + caddc 10630 2c2 11783 3c3 11784 ;cdc 12191 |
This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1802 ax-4 1816 ax-5 1917 ax-6 1975 ax-7 2020 ax-8 2116 ax-9 2124 ax-10 2145 ax-11 2162 ax-12 2179 ax-ext 2711 ax-sep 5177 ax-nul 5184 ax-pow 5242 ax-pr 5306 ax-un 7491 ax-resscn 10684 ax-1cn 10685 ax-icn 10686 ax-addcl 10687 ax-addrcl 10688 ax-mulcl 10689 ax-mulrcl 10690 ax-mulcom 10691 ax-addass 10692 ax-mulass 10693 ax-distr 10694 ax-i2m1 10695 ax-1ne0 10696 ax-1rid 10697 ax-rnegex 10698 ax-rrecex 10699 ax-cnre 10700 ax-pre-lttri 10701 ax-pre-lttrn 10702 ax-pre-ltadd 10703 |
This theorem depends on definitions: df-bi 210 df-an 400 df-or 847 df-3or 1089 df-3an 1090 df-tru 1545 df-fal 1555 df-ex 1787 df-nf 1791 df-sb 2075 df-mo 2541 df-eu 2571 df-clab 2718 df-cleq 2731 df-clel 2812 df-nfc 2882 df-ne 2936 df-nel 3040 df-ral 3059 df-rex 3060 df-reu 3061 df-rab 3063 df-v 3402 df-sbc 3686 df-csb 3801 df-dif 3856 df-un 3858 df-in 3860 df-ss 3870 df-pss 3872 df-nul 4222 df-if 4425 df-pw 4500 df-sn 4527 df-pr 4529 df-tp 4531 df-op 4533 df-uni 4807 df-iun 4893 df-br 5041 df-opab 5103 df-mpt 5121 df-tr 5147 df-id 5439 df-eprel 5444 df-po 5452 df-so 5453 df-fr 5493 df-we 5495 df-xp 5541 df-rel 5542 df-cnv 5543 df-co 5544 df-dm 5545 df-rn 5546 df-res 5547 df-ima 5548 df-pred 6139 df-ord 6185 df-on 6186 df-lim 6187 df-suc 6188 df-iota 6307 df-fun 6351 df-fn 6352 df-f 6353 df-f1 6354 df-fo 6355 df-f1o 6356 df-fv 6357 df-ov 7185 df-om 7612 df-wrecs 7988 df-recs 8049 df-rdg 8087 df-er 8332 df-en 8568 df-dom 8569 df-sdom 8570 df-pnf 10767 df-mnf 10768 df-ltxr 10770 df-nn 11729 df-2 11791 df-3 11792 df-4 11793 df-5 11794 df-6 11795 df-7 11796 df-8 11797 df-9 11798 df-n0 11989 df-dec 12192 |
This theorem is referenced by: (None) |
Copyright terms: Public domain | W3C validator |