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

Theorem sadcp1 16519
Description: The carry sequence (which is a sequence of wffs, encoded as 1o and ) is defined recursively as the carry operation applied to the previous carry and the two current inputs. (Contributed by Mario Carneiro, 5-Sep-2016.)
Hypotheses
Ref Expression
sadval.a (𝜑𝐴 ⊆ ℕ0)
sadval.b (𝜑𝐵 ⊆ ℕ0)
sadval.c 𝐶 = seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))
sadcp1.n (𝜑𝑁 ∈ ℕ0)
Assertion
Ref Expression
sadcp1 (𝜑 → (∅ ∈ (𝐶‘(𝑁 + 1)) ↔ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁))))
Distinct variable groups:   𝑚,𝑐,𝑛   𝐴,𝑐,𝑚   𝐵,𝑐,𝑚   𝑛,𝑁
Allowed substitution hints:   𝜑(𝑚, 𝑛, 𝑐)   𝐴(𝑛)   𝐵(𝑛)   𝐶(𝑚, 𝑛, 𝑐)   𝑁(𝑚, 𝑐)

Proof of Theorem sadcp1
Dummy variables 𝑥 𝑦 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 sadcp1.n . . . . . . 7 (𝜑𝑁 ∈ ℕ0)
2 nn0uz 12906 . . . . . . 7 0 = (ℤ‘0)
31, 2eleqtrdi 2872 . . . . . 6 (𝜑𝑁 ∈ (ℤ‘0))
4 seqp1 14059 . . . . . 6 (𝑁 ∈ (ℤ‘0) → (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘(𝑁 + 1)) = ((seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘𝑁)(𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))((𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))‘(𝑁 + 1))))
53, 4syl 18 . . . . 5 (𝜑 → (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘(𝑁 + 1)) = ((seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘𝑁)(𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))((𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))‘(𝑁 + 1))))
6 sadval.c . . . . . 6 𝐶 = seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))
76fveq1i 6882 . . . . 5 (𝐶‘(𝑁 + 1)) = (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘(𝑁 + 1))
86fveq1i 6882 . . . . . 6 (𝐶𝑁) = (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘𝑁)
98oveq1i 7422 . . . . 5 ((𝐶𝑁)(𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))((𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))‘(𝑁 + 1))) = ((seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘𝑁)(𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))((𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))‘(𝑁 + 1)))
105, 7, 93eqtr4g 2822 . . . 4 (𝜑 → (𝐶‘(𝑁 + 1)) = ((𝐶𝑁)(𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))((𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))‘(𝑁 + 1))))
11 peano2nn0 12550 . . . . . . 7 (𝑁 ∈ ℕ0 → (𝑁 + 1) ∈ ℕ0)
12 eqeq1 2766 . . . . . . . . 9 (𝑛 = (𝑁 + 1) → (𝑛 = 0 ↔ (𝑁 + 1) = 0))
13 oveq1 7419 . . . . . . . . 9 (𝑛 = (𝑁 + 1) → (𝑛 − 1) = ((𝑁 + 1) − 1))
1412, 13ifbieq2d 4513 . . . . . . . 8 (𝑛 = (𝑁 + 1) → if(𝑛 = 0, ∅, (𝑛 − 1)) = if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)))
15 eqid 2762 . . . . . . . 8 (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))) = (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))
16 0ex 5269 . . . . . . . . 9 ∅ ∈ V
17 ovex 7445 . . . . . . . . 9 ((𝑁 + 1) − 1) ∈ V
1816, 17ifex 4537 . . . . . . . 8 if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)) ∈ V
1914, 15, 18fvmpt 6989 . . . . . . 7 ((𝑁 + 1) ∈ ℕ0 → ((𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))‘(𝑁 + 1)) = if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)))
201, 11, 193syl 19 . . . . . 6 (𝜑 → ((𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))‘(𝑁 + 1)) = if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)))
21 nn0p1nn 12549 . . . . . . . . 9 (𝑁 ∈ ℕ0 → (𝑁 + 1) ∈ ℕ)
221, 21syl 18 . . . . . . . 8 (𝜑 → (𝑁 + 1) ∈ ℕ)
2322nnne0d 12292 . . . . . . 7 (𝜑 → (𝑁 + 1) ≠ 0)
24 ifnefalse 4498 . . . . . . 7 ((𝑁 + 1) ≠ 0 → if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)) = ((𝑁 + 1) − 1))
2523, 24syl 18 . . . . . 6 (𝜑 → if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)) = ((𝑁 + 1) − 1))
261nn0cnd 12573 . . . . . . 7 (𝜑𝑁 ∈ ℂ)
27 1cnd 11208 . . . . . . 7 (𝜑 → 1 ∈ ℂ)
2826, 27pncand 11576 . . . . . 6 (𝜑 → ((𝑁 + 1) − 1) = 𝑁)
2920, 25, 283eqtrd 2801 . . . . 5 (𝜑 → ((𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))‘(𝑁 + 1)) = 𝑁)
3029oveq2d 7428 . . . 4 (𝜑 → ((𝐶𝑁)(𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))((𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))‘(𝑁 + 1))) = ((𝐶𝑁)(𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))𝑁))
31 sadval.a . . . . . . 7 (𝜑𝐴 ⊆ ℕ0)
32 sadval.b . . . . . . 7 (𝜑𝐵 ⊆ ℕ0)
3331, 32, 6sadcf 16517 . . . . . 6 (𝜑𝐶:ℕ0⟶2o)
3433, 1ffvelcdmd 7080 . . . . 5 (𝜑 → (𝐶𝑁) ∈ 2o)
35 simpr 489 . . . . . . . . 9 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → 𝑦 = 𝑁)
3635eleq1d 2847 . . . . . . . 8 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → (𝑦𝐴𝑁𝐴))
3735eleq1d 2847 . . . . . . . 8 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → (𝑦𝐵𝑁𝐵))
38 simpl 487 . . . . . . . . 9 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → 𝑥 = (𝐶𝑁))
3938eleq2d 2848 . . . . . . . 8 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → (∅ ∈ 𝑥 ↔ ∅ ∈ (𝐶𝑁)))
4036, 37, 39cadbi123d 1639 . . . . . . 7 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → (cadd(𝑦𝐴, 𝑦𝐵, ∅ ∈ 𝑥) ↔ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁))))
4140ifbid 4510 . . . . . 6 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → if(cadd(𝑦𝐴, 𝑦𝐵, ∅ ∈ 𝑥), 1o, ∅) = if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
42 biidd 265 . . . . . . . . 9 (𝑐 = 𝑥 → (𝑚𝐴𝑚𝐴))
43 biidd 265 . . . . . . . . 9 (𝑐 = 𝑥 → (𝑚𝐵𝑚𝐵))
44 eleq2w 2846 . . . . . . . . 9 (𝑐 = 𝑥 → (∅ ∈ 𝑐 ↔ ∅ ∈ 𝑥))
4542, 43, 44cadbi123d 1639 . . . . . . . 8 (𝑐 = 𝑥 → (cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐) ↔ cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑥)))
4645ifbid 4510 . . . . . . 7 (𝑐 = 𝑥 → if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅) = if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑥), 1o, ∅))
47 eleq1w 2845 . . . . . . . . 9 (𝑚 = 𝑦 → (𝑚𝐴𝑦𝐴))
48 eleq1w 2845 . . . . . . . . 9 (𝑚 = 𝑦 → (𝑚𝐵𝑦𝐵))
49 biidd 265 . . . . . . . . 9 (𝑚 = 𝑦 → (∅ ∈ 𝑥 ↔ ∅ ∈ 𝑥))
5047, 48, 49cadbi123d 1639 . . . . . . . 8 (𝑚 = 𝑦 → (cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑥) ↔ cadd(𝑦𝐴, 𝑦𝐵, ∅ ∈ 𝑥)))
5150ifbid 4510 . . . . . . 7 (𝑚 = 𝑦 → if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑥), 1o, ∅) = if(cadd(𝑦𝐴, 𝑦𝐵, ∅ ∈ 𝑥), 1o, ∅))
5246, 51cbvmpov 7507 . . . . . 6 (𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)) = (𝑥 ∈ 2o, 𝑦 ∈ ℕ0 ↦ if(cadd(𝑦𝐴, 𝑦𝐵, ∅ ∈ 𝑥), 1o, ∅))
53 1oex 8461 . . . . . . 7 1o ∈ V
5453, 16ifex 4537 . . . . . 6 if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) ∈ V
5541, 52, 54ovmpoa 7567 . . . . 5 (((𝐶𝑁) ∈ 2o𝑁 ∈ ℕ0) → ((𝐶𝑁)(𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))𝑁) = if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
5634, 1, 55syl2anc 595 . . . 4 (𝜑 → ((𝐶𝑁)(𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))𝑁) = if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
5710, 30, 563eqtrd 2801 . . 3 (𝜑 → (𝐶‘(𝑁 + 1)) = if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
5857eleq2d 2848 . 2 (𝜑 → (∅ ∈ (𝐶‘(𝑁 + 1)) ↔ ∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅)))
59 noel 4290 . . . . 5 ¬ ∅ ∈ ∅
60 iffalse 4495 . . . . . 6 (¬ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)) → if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) = ∅)
6160eleq2d 2848 . . . . 5 (¬ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)) → (∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) ↔ ∅ ∈ ∅))
6259, 61mtbiri 330 . . . 4 (¬ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)) → ¬ ∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
6362con4i 115 . . 3 (∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) → cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)))
64 0lt1o 8487 . . . 4 ∅ ∈ 1o
65 iftrue 4492 . . . 4 (cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)) → if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) = 1o)
6664, 65eleqtrrid 2869 . . 3 (cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)) → ∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
6763, 66impbii 212 . 2 (∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) ↔ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)))
6858, 67bitrdi 290 1 (𝜑 → (∅ ∈ (𝐶‘(𝑁 + 1)) ↔ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁))))
Colors of variables:    wff setvar class
This proof depends on syntax axioms:  ¬ wn 3  wi 4  wb 209  wa 400   = wceq 1569  caddwcad 1635  wcel 2142  wne 2957  wss 3904  c0 4285  ifcif 4486  cmpt 5191  cfv 6536  (class class class)co 7412  cmpo 7414  1oc1o 8444  2oc2o 8445  0cc0 11106  1c1 11107   + caddc 11109  cmin 11447  cn 12239  0cn0 12510  cuz 12868  seqcseq 14044
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1824  ax-4 1838  ax-5 1939  ax-6 1996  ax-7 2037  ax-8 2144  ax-9 2152  ax-10 2175  ax-11 2191  ax-12 2212  ax-ext 2734  ax-sep 5256  ax-nul 5268  ax-pow 5335  ax-pr 5403  ax-un 7734  ax-cnex 11162  ax-resscn 11163  ax-1cn 11164  ax-icn 11165  ax-addcl 11166  ax-addrcl 11167  ax-mulcl 11168  ax-mulrcl 11169  ax-mulcom 11170  ax-addass 11171  ax-mulass 11172  ax-distr 11173  ax-i2m1 11174  ax-1ne0 11175  ax-1rid 11176  ax-rnegex 11177  ax-rrecex 11178  ax-cnre 11179  ax-pre-lttri 11180  ax-pre-lttrn 11181  ax-pre-ltadd 11182  ax-pre-mulgt0 11183
This proof depends on definitions:  df-bi 210  df-an 401  df-or 861  df-3or 1103  df-3an 1104  df-xor 1541  df-tru 1572  df-fal 1582  df-cad 1636  df-ex 1809  df-nf 1813  df-sb 2096  df-mo 2566  df-eu 2596  df-clab 2741  df-cleq 2754  df-clel 2837  df-nfc 2911  df-ne 2958  df-nel 3064  df-ral 3079  df-rex 3089  df-reu 3369  df-rab 3416  df-v 3456  df-sbc 3744  df-csb 3853  df-dif 3907  df-un 3909  df-in 3911  df-ss 3921  df-pss 3924  df-nul 4286  df-if 4487  df-pw 4563  df-sn 4589  df-pr 4591  df-op 4595  df-uni 4872  df-iun 4957  df-br 5109  df-opab 5173  df-mpt 5192  df-tr 5218  df-id 5555  df-eprel 5560  df-po 5568  df-so 5569  df-fr 5613  df-we 5615  df-xp 5666  df-rel 5667  df-cnv 5668  df-co 5669  df-dm 5670  df-rn 5671  df-res 5672  df-ima 5673  df-pred 6302  df-ord 6363  df-on 6364  df-lim 6365  df-suc 6366  df-iota 6492  df-fun 6538  df-fn 6539  df-f 6540  df-f1 6541  df-fo 6542  df-f1o 6543  df-fv 6544  df-riota 7369  df-ov 7415  df-oprab 7416  df-mpo 7417  df-om 7861  df-1st 7984  df-2nd 7985  df-frecs 8276  df-wrecs 8307  df-recs 8356  df-rdg 8395  df-1o 8451  df-2o 8452  df-er 8692  df-en 8942  df-dom 8943  df-sdom 8944  df-pnf 11251  df-mnf 11252  df-xr 11253  df-ltxr 11254  df-le 11255  df-sub 11449  df-neg 11450  df-nn 12240  df-n0 12511  df-z 12598  df-uz 12869  df-fz 13542  df-seq 14045
This theorem is used by:  sadcaddlem  16521  sadadd2lem  16523  saddisjlem  16528
  Copyright terms: Public domain W3C validator