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

Theorem sadcp1 15792
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 12268 . . . . . . 7 0 = (ℤ‘0)
31, 2eleqtrdi 2920 . . . . . 6 (𝜑𝑁 ∈ (ℤ‘0))
4 seqp1 13372 . . . . . 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 6664 . . . . 5 (𝐶‘(𝑁 + 1)) = (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘(𝑁 + 1))
86fveq1i 6664 . . . . . 6 (𝐶𝑁) = (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘𝑁)
98oveq1i 7155 . . . . 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 2878 . . . 4 (𝜑 → (𝐶‘(𝑁 + 1)) = ((𝐶𝑁)(𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))((𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))‘(𝑁 + 1))))
11 peano2nn0 11925 . . . . . . 7 (𝑁 ∈ ℕ0 → (𝑁 + 1) ∈ ℕ0)
12 eqeq1 2822 . . . . . . . . 9 (𝑛 = (𝑁 + 1) → (𝑛 = 0 ↔ (𝑁 + 1) = 0))
13 oveq1 7152 . . . . . . . . 9 (𝑛 = (𝑁 + 1) → (𝑛 − 1) = ((𝑁 + 1) − 1))
1412, 13ifbieq2d 4488 . . . . . . . 8 (𝑛 = (𝑁 + 1) → if(𝑛 = 0, ∅, (𝑛 − 1)) = if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)))
15 eqid 2818 . . . . . . . 8 (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))) = (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))
16 0ex 5202 . . . . . . . . 9 ∅ ∈ V
17 ovex 7178 . . . . . . . . 9 ((𝑁 + 1) − 1) ∈ V
1816, 17ifex 4511 . . . . . . . 8 if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)) ∈ V
1914, 15, 18fvmpt 6761 . . . . . . 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 11924 . . . . . . . . 9 (𝑁 ∈ ℕ0 → (𝑁 + 1) ∈ ℕ)
221, 21syl 17 . . . . . . . 8 (𝜑 → (𝑁 + 1) ∈ ℕ)
2322nnne0d 11675 . . . . . . 7 (𝜑 → (𝑁 + 1) ≠ 0)
24 ifnefalse 4475 . . . . . . 7 ((𝑁 + 1) ≠ 0 → if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)) = ((𝑁 + 1) − 1))
2523, 24syl 17 . . . . . 6 (𝜑 → if((𝑁 + 1) = 0, ∅, ((𝑁 + 1) − 1)) = ((𝑁 + 1) − 1))
261nn0cnd 11945 . . . . . . 7 (𝜑𝑁 ∈ ℂ)
27 1cnd 10624 . . . . . . 7 (𝜑 → 1 ∈ ℂ)
2826, 27pncand 10986 . . . . . 6 (𝜑 → ((𝑁 + 1) − 1) = 𝑁)
2920, 25, 283eqtrd 2857 . . . . 5 (𝜑 → ((𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))‘(𝑁 + 1)) = 𝑁)
3029oveq2d 7161 . . . 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 15790 . . . . . 6 (𝜑𝐶:ℕ0⟶2o)
3433, 1ffvelrnd 6844 . . . . 5 (𝜑 → (𝐶𝑁) ∈ 2o)
35 simpr 485 . . . . . . . . 9 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → 𝑦 = 𝑁)
3635eleq1d 2894 . . . . . . . 8 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → (𝑦𝐴𝑁𝐴))
3735eleq1d 2894 . . . . . . . 8 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → (𝑦𝐵𝑁𝐵))
38 simpl 483 . . . . . . . . 9 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → 𝑥 = (𝐶𝑁))
3938eleq2d 2895 . . . . . . . 8 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → (∅ ∈ 𝑥 ↔ ∅ ∈ (𝐶𝑁)))
4036, 37, 39cadbi123d 1602 . . . . . . 7 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → (cadd(𝑦𝐴, 𝑦𝐵, ∅ ∈ 𝑥) ↔ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁))))
4140ifbid 4485 . . . . . 6 ((𝑥 = (𝐶𝑁) ∧ 𝑦 = 𝑁) → if(cadd(𝑦𝐴, 𝑦𝐵, ∅ ∈ 𝑥), 1o, ∅) = if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
42 biidd 263 . . . . . . . . 9 (𝑐 = 𝑥 → (𝑚𝐴𝑚𝐴))
43 biidd 263 . . . . . . . . 9 (𝑐 = 𝑥 → (𝑚𝐵𝑚𝐵))
44 eleq2w 2893 . . . . . . . . 9 (𝑐 = 𝑥 → (∅ ∈ 𝑐 ↔ ∅ ∈ 𝑥))
4542, 43, 44cadbi123d 1602 . . . . . . . 8 (𝑐 = 𝑥 → (cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐) ↔ cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑥)))
4645ifbid 4485 . . . . . . 7 (𝑐 = 𝑥 → if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅) = if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑥), 1o, ∅))
47 eleq1w 2892 . . . . . . . . 9 (𝑚 = 𝑦 → (𝑚𝐴𝑦𝐴))
48 eleq1w 2892 . . . . . . . . 9 (𝑚 = 𝑦 → (𝑚𝐵𝑦𝐵))
49 biidd 263 . . . . . . . . 9 (𝑚 = 𝑦 → (∅ ∈ 𝑥 ↔ ∅ ∈ 𝑥))
5047, 48, 49cadbi123d 1602 . . . . . . . 8 (𝑚 = 𝑦 → (cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑥) ↔ cadd(𝑦𝐴, 𝑦𝐵, ∅ ∈ 𝑥)))
5150ifbid 4485 . . . . . . 7 (𝑚 = 𝑦 → if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑥), 1o, ∅) = if(cadd(𝑦𝐴, 𝑦𝐵, ∅ ∈ 𝑥), 1o, ∅))
5246, 51cbvmpov 7238 . . . . . 6 (𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)) = (𝑥 ∈ 2o, 𝑦 ∈ ℕ0 ↦ if(cadd(𝑦𝐴, 𝑦𝐵, ∅ ∈ 𝑥), 1o, ∅))
53 1oex 8099 . . . . . . 7 1o ∈ V
5453, 16ifex 4511 . . . . . 6 if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) ∈ V
5541, 52, 54ovmpoa 7294 . . . . 5 (((𝐶𝑁) ∈ 2o𝑁 ∈ ℕ0) → ((𝐶𝑁)(𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))𝑁) = if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
5634, 1, 55syl2anc 584 . . . 4 (𝜑 → ((𝐶𝑁)(𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))𝑁) = if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
5710, 30, 563eqtrd 2857 . . 3 (𝜑 → (𝐶‘(𝑁 + 1)) = if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
5857eleq2d 2895 . 2 (𝜑 → (∅ ∈ (𝐶‘(𝑁 + 1)) ↔ ∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅)))
59 noel 4293 . . . . 5 ¬ ∅ ∈ ∅
60 iffalse 4472 . . . . . 6 (¬ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)) → if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) = ∅)
6160eleq2d 2895 . . . . 5 (¬ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)) → (∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) ↔ ∅ ∈ ∅))
6259, 61mtbiri 328 . . . 4 (¬ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)) → ¬ ∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
6362con4i 114 . . 3 (∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) → cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)))
64 0lt1o 8118 . . . 4 ∅ ∈ 1o
65 iftrue 4469 . . . 4 (cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)) → if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) = 1o)
6664, 65eleqtrrid 2917 . . 3 (cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)) → ∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅))
6763, 66impbii 210 . 2 (∅ ∈ if(cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)), 1o, ∅) ↔ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁)))
6858, 67syl6bb 288 1 (𝜑 → (∅ ∈ (𝐶‘(𝑁 + 1)) ↔ cadd(𝑁𝐴, 𝑁𝐵, ∅ ∈ (𝐶𝑁))))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 207  wa 396   = wceq 1528  caddwcad 1598  wcel 2105  wne 3013  wss 3933  c0 4288  ifcif 4463  cmpt 5137  cfv 6348  (class class class)co 7145  cmpo 7147  1oc1o 8084  2oc2o 8085  0cc0 10525  1c1 10526   + caddc 10528  cmin 10858  cn 11626  0cn0 11885  cuz 12231  seqcseq 13357
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1787  ax-4 1801  ax-5 1902  ax-6 1961  ax-7 2006  ax-8 2107  ax-9 2115  ax-10 2136  ax-11 2151  ax-12 2167  ax-ext 2790  ax-sep 5194  ax-nul 5201  ax-pow 5257  ax-pr 5320  ax-un 7450  ax-cnex 10581  ax-resscn 10582  ax-1cn 10583  ax-icn 10584  ax-addcl 10585  ax-addrcl 10586  ax-mulcl 10587  ax-mulrcl 10588  ax-mulcom 10589  ax-addass 10590  ax-mulass 10591  ax-distr 10592  ax-i2m1 10593  ax-1ne0 10594  ax-1rid 10595  ax-rnegex 10596  ax-rrecex 10597  ax-cnre 10598  ax-pre-lttri 10599  ax-pre-lttrn 10600  ax-pre-ltadd 10601  ax-pre-mulgt0 10602
This theorem depends on definitions:  df-bi 208  df-an 397  df-or 842  df-3or 1080  df-3an 1081  df-xor 1496  df-tru 1531  df-cad 1599  df-ex 1772  df-nf 1776  df-sb 2061  df-mo 2615  df-eu 2647  df-clab 2797  df-cleq 2811  df-clel 2890  df-nfc 2960  df-ne 3014  df-nel 3121  df-ral 3140  df-rex 3141  df-reu 3142  df-rab 3144  df-v 3494  df-sbc 3770  df-csb 3881  df-dif 3936  df-un 3938  df-in 3940  df-ss 3949  df-pss 3951  df-nul 4289  df-if 4464  df-pw 4537  df-sn 4558  df-pr 4560  df-tp 4562  df-op 4564  df-uni 4831  df-iun 4912  df-br 5058  df-opab 5120  df-mpt 5138  df-tr 5164  df-id 5453  df-eprel 5458  df-po 5467  df-so 5468  df-fr 5507  df-we 5509  df-xp 5554  df-rel 5555  df-cnv 5556  df-co 5557  df-dm 5558  df-rn 5559  df-res 5560  df-ima 5561  df-pred 6141  df-ord 6187  df-on 6188  df-lim 6189  df-suc 6190  df-iota 6307  df-fun 6350  df-fn 6351  df-f 6352  df-f1 6353  df-fo 6354  df-f1o 6355  df-fv 6356  df-riota 7103  df-ov 7148  df-oprab 7149  df-mpo 7150  df-om 7570  df-1st 7678  df-2nd 7679  df-wrecs 7936  df-recs 7997  df-rdg 8035  df-1o 8091  df-2o 8092  df-er 8278  df-en 8498  df-dom 8499  df-sdom 8500  df-pnf 10665  df-mnf 10666  df-xr 10667  df-ltxr 10668  df-le 10669  df-sub 10860  df-neg 10861  df-nn 11627  df-n0 11886  df-z 11970  df-uz 12232  df-fz 12881  df-seq 13358
This theorem is referenced by:  sadcaddlem  15794  sadadd2lem  15796  saddisjlem  15801
  Copyright terms: Public domain W3C validator