MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  1kp2ke3k Structured version   Visualization version   GIF version

Theorem 1kp2ke3k 28222
Description: Example for df-dec 12087, 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 12087 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.)

Assertion
Ref Expression
1kp2ke3k (1000 + 2000) = 3000

Proof of Theorem 1kp2ke3k
StepHypRef Expression
1 1nn0 11901 . . . 4 1 ∈ ℕ0
2 0nn0 11900 . . . 4 0 ∈ ℕ0
31, 2deccl 12101 . . 3 10 ∈ ℕ0
43, 2deccl 12101 . 2 100 ∈ ℕ0
5 2nn0 11902 . . . 4 2 ∈ ℕ0
65, 2deccl 12101 . . 3 20 ∈ ℕ0
76, 2deccl 12101 . 2 200 ∈ ℕ0
8 eqid 2824 . 2 1000 = 1000
9 eqid 2824 . 2 2000 = 2000
10 eqid 2824 . . 3 100 = 100
11 eqid 2824 . . 3 200 = 200
12 eqid 2824 . . . 4 10 = 10
13 eqid 2824 . . . 4 20 = 20
14 1p2e3 11768 . . . 4 (1 + 2) = 3
15 00id 10802 . . . 4 (0 + 0) = 0
161, 2, 5, 2, 12, 13, 14, 15decadd 12140 . . 3 (10 + 20) = 30
173, 2, 6, 2, 10, 11, 16, 15decadd 12140 . 2 (100 + 200) = 300
184, 2, 7, 2, 8, 9, 17, 15decadd 12140 1 (1000 + 2000) = 3000
Colors of variables: wff setvar class
Syntax hints:   = wceq 1538  (class class class)co 7140  0cc0 10524  1c1 10525   + caddc 10527  2c2 11680  3c3 11681  cdc 12086
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1797  ax-4 1811  ax-5 1912  ax-6 1971  ax-7 2016  ax-8 2117  ax-9 2125  ax-10 2146  ax-11 2162  ax-12 2179  ax-ext 2796  ax-sep 5186  ax-nul 5193  ax-pow 5249  ax-pr 5313  ax-un 7446  ax-resscn 10581  ax-1cn 10582  ax-icn 10583  ax-addcl 10584  ax-addrcl 10585  ax-mulcl 10586  ax-mulrcl 10587  ax-mulcom 10588  ax-addass 10589  ax-mulass 10590  ax-distr 10591  ax-i2m1 10592  ax-1ne0 10593  ax-1rid 10594  ax-rnegex 10595  ax-rrecex 10596  ax-cnre 10597  ax-pre-lttri 10598  ax-pre-lttrn 10599  ax-pre-ltadd 10600
This theorem depends on definitions:  df-bi 210  df-an 400  df-or 845  df-3or 1085  df-3an 1086  df-tru 1541  df-ex 1782  df-nf 1786  df-sb 2071  df-mo 2624  df-eu 2655  df-clab 2803  df-cleq 2817  df-clel 2896  df-nfc 2964  df-ne 3014  df-nel 3118  df-ral 3137  df-rex 3138  df-reu 3139  df-rab 3141  df-v 3481  df-sbc 3758  df-csb 3866  df-dif 3921  df-un 3923  df-in 3925  df-ss 3935  df-pss 3937  df-nul 4275  df-if 4449  df-pw 4522  df-sn 4549  df-pr 4551  df-tp 4553  df-op 4555  df-uni 4822  df-iun 4904  df-br 5050  df-opab 5112  df-mpt 5130  df-tr 5156  df-id 5443  df-eprel 5448  df-po 5457  df-so 5458  df-fr 5497  df-we 5499  df-xp 5544  df-rel 5545  df-cnv 5546  df-co 5547  df-dm 5548  df-rn 5549  df-res 5550  df-ima 5551  df-pred 6131  df-ord 6177  df-on 6178  df-lim 6179  df-suc 6180  df-iota 6297  df-fun 6340  df-fn 6341  df-f 6342  df-f1 6343  df-fo 6344  df-f1o 6345  df-fv 6346  df-ov 7143  df-om 7566  df-wrecs 7932  df-recs 7993  df-rdg 8031  df-er 8274  df-en 8495  df-dom 8496  df-sdom 8497  df-pnf 10664  df-mnf 10665  df-ltxr 10667  df-nn 11626  df-2 11688  df-3 11689  df-4 11690  df-5 11691  df-6 11692  df-7 11693  df-8 11694  df-9 11695  df-n0 11886  df-dec 12087
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator