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

Theorem sadcp1 16384
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 12791 . . . . . . 7 0 = (ℤ‘0)
31, 2eleqtrdi 2845 . . . . . 6 (𝜑𝑁 ∈ (ℤ‘0))
4 seqp1 13941 . . . . . 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 17 . . . . 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 6834 . . . . 5 (𝐶‘(𝑁 + 1)) = (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘(𝑁 + 1))
86fveq1i 6834 . . . . . 6 (𝐶𝑁) = (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘𝑁)
98oveq1i 7368 . . . . 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 2795 . . . 4 (𝜑 → (𝐶‘(𝑁 + 1)) = ((𝐶𝑁)(𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))((𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))‘(𝑁 + 1))))
11 peano2nn0 12443 . . . . . . 7 (𝑁 ∈ ℕ0 → (𝑁 + 1) ∈ ℕ0)
12 eqeq1 2739 . . . . . . . . 9 (𝑛 = (𝑁 + 1) → (𝑛 = 0 ↔ (𝑁 + 1) = 0))
13 oveq1 7365 . . . . . . . . 9 (𝑛 = (𝑁 + 1) → (𝑛 − 1) = ((𝑁 + 1) − 1))
1412, 13ifbieq2d 4505 . . . . . . . 8 (𝑛 = (𝑁 + 1) → if(𝑛 = 0, ∅, (𝑛 − 1)) = if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)))
15 eqid 2735 . . . . . . . 8 (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))) = (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))
16 0ex 5251 . . . . . . . . 9 ∅ ∈ V
17 ovex 7391 . . . . . . . . 9 ((𝑁 + 1) − 1) ∈ V
1816, 17ifex 4529 . . . . . . . 8 if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)) ∈ V
1914, 15, 18fvmpt 6940 . . . . . . 7 ((𝑁 + 1) ∈ ℕ0 → ((𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))‘(𝑁 + 1)) = if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)))
201, 11, 193syl 18 . . . . . 6 (𝜑 → ((𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))‘(𝑁 + 1)) = if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)))
21 nn0p1nn 12442 . . . . . . . . 9 (𝑁 ∈ ℕ0 → (𝑁 + 1) ∈ ℕ)
221, 21syl 17 . . . . . . . 8 (𝜑 → (𝑁 + 1) ∈ ℕ)
2322nnne0d 12197 . . . . . . 7 (𝜑 → (𝑁 + 1) ≠ 0)
24 ifnefalse 4490 . . . . . . 7 ((𝑁 + 1) ≠ 0 → if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)) = ((𝑁 + 1) − 1))
2523, 24syl 17 . . . . . 6 (𝜑 → if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)) = ((𝑁 + 1) − 1))
261nn0cnd 12466 . . . . . . 7 (𝜑𝑁 ∈ ℂ)
27 1cnd 11129 . . . . . . 7 (𝜑 → 1 ∈ ℂ)
2826, 27pncand 11495 . . . . . 6 (𝜑 → ((𝑁 + 1) − 1) = 𝑁)
2920, 25, 283eqtrd 2774 . . . . 5 (𝜑 → ((𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))‘(𝑁 + 1)) = 𝑁)
3029oveq2d 7374 . . . 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 16382 . . . . . 6 (𝜑𝐶:ℕ0⟶2o)
3433, 1ffvelcdmd 7030 . . . . 5 (𝜑 → (𝐶𝑁) ∈ 2o)
35 simpr 484 . . . . . . . . 9 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → 𝑦 = 𝑁)
3635eleq1d 2820 . . . . . . . 8 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → (𝑦𝐴𝑁𝐴))
3735eleq1d 2820 . . . . . . . 8 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → (𝑦𝐵𝑁𝐵))
38 simpl 482 . . . . . . . . 9 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → 𝑥 = (𝐶𝑁))
3938eleq2d 2821 . . . . . . . 8 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → (∅ ∈ 𝑥 ↔ ∅ ∈ (𝐶𝑁)))
4036, 37, 39cadbi123d 1612 . . . . . . 7 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → (cadd(𝑦𝐴, 𝑦𝐵, ∅ ∈ 𝑥) ↔ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁))))
4140ifbid 4502 . . . . . 6 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → if(cadd(𝑦𝐴, 𝑦𝐵, ∅ ∈ 𝑥), 1o, ∅) = if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
42 biidd 262 . . . . . . . . 9 (𝑐 = 𝑥 → (𝑚𝐴𝑚𝐴))
43 biidd 262 . . . . . . . . 9 (𝑐 = 𝑥 → (𝑚𝐵𝑚𝐵))
44 eleq2w 2819 . . . . . . . . 9 (𝑐 = 𝑥 → (∅ ∈ 𝑐 ↔ ∅ ∈ 𝑥))
4542, 43, 44cadbi123d 1612 . . . . . . . 8 (𝑐 = 𝑥 → (cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐) ↔ cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑥)))
4645ifbid 4502 . . . . . . 7 (𝑐 = 𝑥 → if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅) = if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑥), 1o, ∅))
47 eleq1w 2818 . . . . . . . . 9 (𝑚 = 𝑦 → (𝑚𝐴𝑦𝐴))
48 eleq1w 2818 . . . . . . . . 9 (𝑚 = 𝑦 → (𝑚𝐵𝑦𝐵))
49 biidd 262 . . . . . . . . 9 (𝑚 = 𝑦 → (∅ ∈ 𝑥 ↔ ∅ ∈ 𝑥))
5047, 48, 49cadbi123d 1612 . . . . . . . 8 (𝑚 = 𝑦 → (cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑥) ↔ cadd(𝑦𝐴, 𝑦𝐵, ∅ ∈ 𝑥)))
5150ifbid 4502 . . . . . . 7 (𝑚 = 𝑦 → if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑥), 1o, ∅) = if(cadd(𝑦𝐴, 𝑦𝐵, ∅ ∈ 𝑥), 1o, ∅))
5246, 51cbvmpov 7453 . . . . . 6 (𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)) = (𝑥 ∈ 2o, 𝑦 ∈ ℕ0 ↦ if(cadd(𝑦𝐴, 𝑦𝐵, ∅ ∈ 𝑥), 1o, ∅))
53 1oex 8407 . . . . . . 7 1o ∈ V
5453, 16ifex 4529 . . . . . 6 if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) ∈ V
5541, 52, 54ovmpoa 7513 . . . . 5 (((𝐶𝑁) ∈ 2o𝑁 ∈ ℕ0) → ((𝐶𝑁)(𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))𝑁) = if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
5634, 1, 55syl2anc 585 . . . 4 (𝜑 → ((𝐶𝑁)(𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))𝑁) = if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
5710, 30, 563eqtrd 2774 . . 3 (𝜑 → (𝐶‘(𝑁 + 1)) = if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
5857eleq2d 2821 . 2 (𝜑 → (∅ ∈ (𝐶‘(𝑁 + 1)) ↔ ∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅)))
59 noel 4289 . . . . 5 ¬ ∅ ∈ ∅
60 iffalse 4487 . . . . . 6 (¬ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)) → if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) = ∅)
6160eleq2d 2821 . . . . 5 (¬ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)) → (∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) ↔ ∅ ∈ ∅))
6259, 61mtbiri 327 . . . 4 (¬ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)) → ¬ ∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
6362con4i 114 . . 3 (∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) → cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)))
64 0lt1o 8431 . . . 4 ∅ ∈ 1o
65 iftrue 4484 . . . 4 (cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)) → if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) = 1o)
6664, 65eleqtrrid 2842 . . 3 (cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)) → ∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
6763, 66impbii 209 . 2 (∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) ↔ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)))
6858, 67bitrdi 287 1 (𝜑 → (∅ ∈ (𝐶‘(𝑁 + 1)) ↔ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁))))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 206  wa 395   = wceq 1542  caddwcad 1608  wcel 2114  wne 2931  wss 3900  c0 4284  ifcif 4478  cmpt 5178  cfv 6491  (class class class)co 7358  cmpo 7360  1oc1o 8390  2oc2o 8391  0cc0 11028  1c1 11029   + caddc 11031  cmin 11366  cn 12147  0cn0 12403  cuz 12753  seqcseq 13926
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 1969  ax-7 2010  ax-8 2116  ax-9 2124  ax-10 2147  ax-11 2163  ax-12 2183  ax-ext 2707  ax-sep 5240  ax-nul 5250  ax-pow 5309  ax-pr 5376  ax-un 7680  ax-cnex 11084  ax-resscn 11085  ax-1cn 11086  ax-icn 11087  ax-addcl 11088  ax-addrcl 11089  ax-mulcl 11090  ax-mulrcl 11091  ax-mulcom 11092  ax-addass 11093  ax-mulass 11094  ax-distr 11095  ax-i2m1 11096  ax-1ne0 11097  ax-1rid 11098  ax-rnegex 11099  ax-rrecex 11100  ax-cnre 11101  ax-pre-lttri 11102  ax-pre-lttrn 11103  ax-pre-ltadd 11104  ax-pre-mulgt0 11105
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 849  df-3or 1088  df-3an 1089  df-xor 1514  df-tru 1545  df-fal 1555  df-cad 1609  df-ex 1782  df-nf 1786  df-sb 2069  df-mo 2538  df-eu 2568  df-clab 2714  df-cleq 2727  df-clel 2810  df-nfc 2884  df-ne 2932  df-nel 3036  df-ral 3051  df-rex 3060  df-reu 3350  df-rab 3399  df-v 3441  df-sbc 3740  df-csb 3849  df-dif 3903  df-un 3905  df-in 3907  df-ss 3917  df-pss 3920  df-nul 4285  df-if 4479  df-pw 4555  df-sn 4580  df-pr 4582  df-op 4586  df-uni 4863  df-iun 4947  df-br 5098  df-opab 5160  df-mpt 5179  df-tr 5205  df-id 5518  df-eprel 5523  df-po 5531  df-so 5532  df-fr 5576  df-we 5578  df-xp 5629  df-rel 5630  df-cnv 5631  df-co 5632  df-dm 5633  df-rn 5634  df-res 5635  df-ima 5636  df-pred 6258  df-ord 6319  df-on 6320  df-lim 6321  df-suc 6322  df-iota 6447  df-fun 6493  df-fn 6494  df-f 6495  df-f1 6496  df-fo 6497  df-f1o 6498  df-fv 6499  df-riota 7315  df-ov 7361  df-oprab 7362  df-mpo 7363  df-om 7809  df-1st 7933  df-2nd 7934  df-frecs 8223  df-wrecs 8254  df-recs 8303  df-rdg 8341  df-1o 8397  df-2o 8398  df-er 8635  df-en 8886  df-dom 8887  df-sdom 8888  df-pnf 11170  df-mnf 11171  df-xr 11172  df-ltxr 11173  df-le 11174  df-sub 11368  df-neg 11369  df-nn 12148  df-n0 12404  df-z 12491  df-uz 12754  df-fz 13426  df-seq 13927
This theorem is referenced by:  sadcaddlem  16386  sadadd2lem  16388  saddisjlem  16393
  Copyright terms: Public domain W3C validator