ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  1kp2ke3k GIF version

Theorem 1kp2ke3k 12539
Description: Example for df-dec 9035, 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 9035 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 8845 . . . 4 1 ∈ ℕ0
2 0nn0 8844 . . . 4 0 ∈ ℕ0
31, 2deccl 9048 . . 3 10 ∈ ℕ0
43, 2deccl 9048 . 2 100 ∈ ℕ0
5 2nn0 8846 . . . 4 2 ∈ ℕ0
65, 2deccl 9048 . . 3 20 ∈ ℕ0
76, 2deccl 9048 . 2 200 ∈ ℕ0
8 eqid 2100 . 2 1000 = 1000
9 eqid 2100 . 2 2000 = 2000
10 eqid 2100 . . 3 100 = 100
11 eqid 2100 . . 3 200 = 200
12 eqid 2100 . . . 4 10 = 10
13 eqid 2100 . . . 4 20 = 20
14 1p2e3 8706 . . . 4 (1 + 2) = 3
15 00id 7774 . . . 4 (0 + 0) = 0
161, 2, 5, 2, 12, 13, 14, 15decadd 9087 . . 3 (10 + 20) = 30
173, 2, 6, 2, 10, 11, 16, 15decadd 9087 . 2 (100 + 200) = 300
184, 2, 7, 2, 8, 9, 17, 15decadd 9087 1 (1000 + 2000) = 3000
Colors of variables: wff set class
Syntax hints:   = wceq 1299  (class class class)co 5706  0cc0 7500  1c1 7501   + caddc 7503  2c2 8629  3c3 8630  cdc 9034
This theorem was proved from axioms:  ax-1 5  ax-2 6  ax-mp 7  ax-ia1 105  ax-ia2 106  ax-ia3 107  ax-in1 584  ax-in2 585  ax-io 671  ax-5 1391  ax-7 1392  ax-gen 1393  ax-ie1 1437  ax-ie2 1438  ax-8 1450  ax-10 1451  ax-11 1452  ax-i12 1453  ax-bndl 1454  ax-4 1455  ax-14 1460  ax-17 1474  ax-i9 1478  ax-ial 1482  ax-i5r 1483  ax-ext 2082  ax-sep 3986  ax-pow 4038  ax-pr 4069  ax-setind 4390  ax-cnex 7586  ax-resscn 7587  ax-1cn 7588  ax-1re 7589  ax-icn 7590  ax-addcl 7591  ax-addrcl 7592  ax-mulcl 7593  ax-addcom 7595  ax-mulcom 7596  ax-addass 7597  ax-mulass 7598  ax-distr 7599  ax-i2m1 7600  ax-1rid 7602  ax-0id 7603  ax-rnegex 7604  ax-cnre 7606
This theorem depends on definitions:  df-bi 116  df-3an 932  df-tru 1302  df-fal 1305  df-nf 1405  df-sb 1704  df-eu 1963  df-mo 1964  df-clab 2087  df-cleq 2093  df-clel 2096  df-nfc 2229  df-ne 2268  df-ral 2380  df-rex 2381  df-reu 2382  df-rab 2384  df-v 2643  df-sbc 2863  df-dif 3023  df-un 3025  df-in 3027  df-ss 3034  df-pw 3459  df-sn 3480  df-pr 3481  df-op 3483  df-uni 3684  df-int 3719  df-br 3876  df-opab 3930  df-id 4153  df-xp 4483  df-rel 4484  df-cnv 4485  df-co 4486  df-dm 4487  df-iota 5024  df-fun 5061  df-fv 5067  df-riota 5662  df-ov 5709  df-oprab 5710  df-mpo 5711  df-sub 7806  df-inn 8579  df-2 8637  df-3 8638  df-4 8639  df-5 8640  df-6 8641  df-7 8642  df-8 8643  df-9 8644  df-n0 8830  df-dec 9035
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator