Metamath Proof Explorer


Theorem sadass

Description: Sequence addition is associative. (Contributed by Mario Carneiro, 9-Sep-2016)

Ref Expression
Assertion sadass ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 → A sadd B sadd C = A sadd B sadd C

Proof

Step Hyp Ref Expression
1 sadcl ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 → A sadd B ⊆ ℕ 0
2 sadcl ⊢ A sadd B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 → A sadd B sadd C ⊆ ℕ 0
3 1 2 stoic3 ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 → A sadd B sadd C ⊆ ℕ 0
4 3 sseld ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 → k ∈ A sadd B sadd C → k ∈ ℕ 0
5 simp1 ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 → A ⊆ ℕ 0
6 sadcl ⊢ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 → B sadd C ⊆ ℕ 0
7 6 3adant1 ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 → B sadd C ⊆ ℕ 0
8 sadcl ⊢ A ⊆ ℕ 0 ∧ B sadd C ⊆ ℕ 0 → A sadd B sadd C ⊆ ℕ 0
9 5 7 8 syl2anc ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 → A sadd B sadd C ⊆ ℕ 0
10 9 sseld ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 → k ∈ A sadd B sadd C → k ∈ ℕ 0
11 simpl1 ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → A ⊆ ℕ 0
12 simpl2 ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → B ⊆ ℕ 0
13 simpl3 ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → C ⊆ ℕ 0
14 simpr ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → k ∈ ℕ 0
15 1nn0 ⊢ 1 ∈ ℕ 0
16 15 a1i ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → 1 ∈ ℕ 0
17 14 16 nn0addcld ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → k + 1 ∈ ℕ 0
18 11 12 13 17 sadasslem ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → A sadd B sadd C ∩ 0 ..^ k + 1 = A sadd B sadd C ∩ 0 ..^ k + 1
19 18 eleq2d ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → k ∈ A sadd B sadd C ∩ 0 ..^ k + 1 ↔ k ∈ A sadd B sadd C ∩ 0 ..^ k + 1
20 elin ⊢ k ∈ A sadd B sadd C ∩ 0 ..^ k + 1 ↔ k ∈ A sadd B sadd C ∧ k ∈ 0 ..^ k + 1
21 elin ⊢ k ∈ A sadd B sadd C ∩ 0 ..^ k + 1 ↔ k ∈ A sadd B sadd C ∧ k ∈ 0 ..^ k + 1
22 19 20 21 3bitr3g ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → k ∈ A sadd B sadd C ∧ k ∈ 0 ..^ k + 1 ↔ k ∈ A sadd B sadd C ∧ k ∈ 0 ..^ k + 1
23 nn0uz ⊢ ℕ 0 = ℤ ≥ 0
24 14 23 eleqtrdi ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → k ∈ ℤ ≥ 0
25 eluzfz2 ⊢ k ∈ ℤ ≥ 0 → k ∈ 0 … k
26 24 25 syl ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → k ∈ 0 … k
27 14 nn0zd ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → k ∈ ℤ
28 fzval3 ⊢ k ∈ ℤ → 0 … k = 0 ..^ k + 1
29 27 28 syl ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → 0 … k = 0 ..^ k + 1
30 26 29 eleqtrd ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → k ∈ 0 ..^ k + 1
31 30 biantrud ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → k ∈ A sadd B sadd C ↔ k ∈ A sadd B sadd C ∧ k ∈ 0 ..^ k + 1
32 30 biantrud ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → k ∈ A sadd B sadd C ↔ k ∈ A sadd B sadd C ∧ k ∈ 0 ..^ k + 1
33 22 31 32 3bitr4d ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 ∧ k ∈ ℕ 0 → k ∈ A sadd B sadd C ↔ k ∈ A sadd B sadd C
34 33 ex ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 → k ∈ ℕ 0 → k ∈ A sadd B sadd C ↔ k ∈ A sadd B sadd C
35 4 10 34 pm5.21ndd ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 → k ∈ A sadd B sadd C ↔ k ∈ A sadd B sadd C
36 35 eqrdv ⊢ A ⊆ ℕ 0 ∧ B ⊆ ℕ 0 ∧ C ⊆ ℕ 0 → A sadd B sadd C = A sadd B sadd C