Proof of Theorem setsstruct
Step | Hyp | Ref
| Expression |
1 | | isstruct 16853 |
. . . . . 6
⊢ (𝐺 Struct 〈𝑀, 𝑁〉 ↔ ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) ∧ Fun (𝐺 ∖ {∅}) ∧ dom 𝐺 ⊆ (𝑀...𝑁))) |
2 | | simp2 1136 |
. . . . . . . . . 10
⊢ (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) ∧ 𝐺 Struct 〈𝑀, 𝑁〉 ∧ (𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀))) → 𝐺 Struct 〈𝑀, 𝑁〉) |
3 | | simp3l 1200 |
. . . . . . . . . 10
⊢ (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) ∧ 𝐺 Struct 〈𝑀, 𝑁〉 ∧ (𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀))) → 𝐸 ∈ 𝑉) |
4 | | 1z 12350 |
. . . . . . . . . . . . . . . 16
⊢ 1 ∈
ℤ |
5 | | nnge1 12001 |
. . . . . . . . . . . . . . . 16
⊢ (𝑀 ∈ ℕ → 1 ≤
𝑀) |
6 | | eluzuzle 12591 |
. . . . . . . . . . . . . . . 16
⊢ ((1
∈ ℤ ∧ 1 ≤ 𝑀) → (𝐼 ∈ (ℤ≥‘𝑀) → 𝐼 ∈
(ℤ≥‘1))) |
7 | 4, 5, 6 | sylancr 587 |
. . . . . . . . . . . . . . 15
⊢ (𝑀 ∈ ℕ → (𝐼 ∈
(ℤ≥‘𝑀) → 𝐼 ∈
(ℤ≥‘1))) |
8 | | elnnuz 12622 |
. . . . . . . . . . . . . . 15
⊢ (𝐼 ∈ ℕ ↔ 𝐼 ∈
(ℤ≥‘1)) |
9 | 7, 8 | syl6ibr 251 |
. . . . . . . . . . . . . 14
⊢ (𝑀 ∈ ℕ → (𝐼 ∈
(ℤ≥‘𝑀) → 𝐼 ∈ ℕ)) |
10 | 9 | adantld 491 |
. . . . . . . . . . . . 13
⊢ (𝑀 ∈ ℕ → ((𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀)) → 𝐼 ∈ ℕ)) |
11 | 10 | 3ad2ant1 1132 |
. . . . . . . . . . . 12
⊢ ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) → ((𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀)) → 𝐼 ∈ ℕ)) |
12 | 11 | a1d 25 |
. . . . . . . . . . 11
⊢ ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) → (𝐺 Struct 〈𝑀, 𝑁〉 → ((𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀)) → 𝐼 ∈ ℕ))) |
13 | 12 | 3imp 1110 |
. . . . . . . . . 10
⊢ (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) ∧ 𝐺 Struct 〈𝑀, 𝑁〉 ∧ (𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀))) → 𝐼 ∈ ℕ) |
14 | 2, 3, 13 | 3jca 1127 |
. . . . . . . . 9
⊢ (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) ∧ 𝐺 Struct 〈𝑀, 𝑁〉 ∧ (𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀))) → (𝐺 Struct 〈𝑀, 𝑁〉 ∧ 𝐸 ∈ 𝑉 ∧ 𝐼 ∈ ℕ)) |
15 | | op1stg 7843 |
. . . . . . . . . . . . . . . 16
⊢ ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ) →
(1st ‘〈𝑀, 𝑁〉) = 𝑀) |
16 | 15 | breq2d 5086 |
. . . . . . . . . . . . . . 15
⊢ ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ) → (𝐼 ≤ (1st
‘〈𝑀, 𝑁〉) ↔ 𝐼 ≤ 𝑀)) |
17 | | eqidd 2739 |
. . . . . . . . . . . . . . 15
⊢ ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ) → 𝐼 = 𝐼) |
18 | 16, 17, 15 | ifbieq12d 4487 |
. . . . . . . . . . . . . 14
⊢ ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ) → if(𝐼 ≤ (1st
‘〈𝑀, 𝑁〉), 𝐼, (1st ‘〈𝑀, 𝑁〉)) = if(𝐼 ≤ 𝑀, 𝐼, 𝑀)) |
19 | 18 | 3adant3 1131 |
. . . . . . . . . . . . 13
⊢ ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) → if(𝐼 ≤ (1st ‘〈𝑀, 𝑁〉), 𝐼, (1st ‘〈𝑀, 𝑁〉)) = if(𝐼 ≤ 𝑀, 𝐼, 𝑀)) |
20 | 19 | adantr 481 |
. . . . . . . . . . . 12
⊢ (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) ∧ (𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀))) → if(𝐼 ≤ (1st ‘〈𝑀, 𝑁〉), 𝐼, (1st ‘〈𝑀, 𝑁〉)) = if(𝐼 ≤ 𝑀, 𝐼, 𝑀)) |
21 | | eluz2 12588 |
. . . . . . . . . . . . . . . 16
⊢ (𝐼 ∈
(ℤ≥‘𝑀) ↔ (𝑀 ∈ ℤ ∧ 𝐼 ∈ ℤ ∧ 𝑀 ≤ 𝐼)) |
22 | | zre 12323 |
. . . . . . . . . . . . . . . . . . . 20
⊢ (𝐼 ∈ ℤ → 𝐼 ∈
ℝ) |
23 | 22 | rexrd 11025 |
. . . . . . . . . . . . . . . . . . 19
⊢ (𝐼 ∈ ℤ → 𝐼 ∈
ℝ*) |
24 | 23 | 3ad2ant2 1133 |
. . . . . . . . . . . . . . . . . 18
⊢ ((𝑀 ∈ ℤ ∧ 𝐼 ∈ ℤ ∧ 𝑀 ≤ 𝐼) → 𝐼 ∈
ℝ*) |
25 | | zre 12323 |
. . . . . . . . . . . . . . . . . . . 20
⊢ (𝑀 ∈ ℤ → 𝑀 ∈
ℝ) |
26 | 25 | rexrd 11025 |
. . . . . . . . . . . . . . . . . . 19
⊢ (𝑀 ∈ ℤ → 𝑀 ∈
ℝ*) |
27 | 26 | 3ad2ant1 1132 |
. . . . . . . . . . . . . . . . . 18
⊢ ((𝑀 ∈ ℤ ∧ 𝐼 ∈ ℤ ∧ 𝑀 ≤ 𝐼) → 𝑀 ∈
ℝ*) |
28 | | simp3 1137 |
. . . . . . . . . . . . . . . . . 18
⊢ ((𝑀 ∈ ℤ ∧ 𝐼 ∈ ℤ ∧ 𝑀 ≤ 𝐼) → 𝑀 ≤ 𝐼) |
29 | 24, 27, 28 | 3jca 1127 |
. . . . . . . . . . . . . . . . 17
⊢ ((𝑀 ∈ ℤ ∧ 𝐼 ∈ ℤ ∧ 𝑀 ≤ 𝐼) → (𝐼 ∈ ℝ* ∧ 𝑀 ∈ ℝ*
∧ 𝑀 ≤ 𝐼)) |
30 | 29 | a1d 25 |
. . . . . . . . . . . . . . . 16
⊢ ((𝑀 ∈ ℤ ∧ 𝐼 ∈ ℤ ∧ 𝑀 ≤ 𝐼) → ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) → (𝐼 ∈ ℝ* ∧ 𝑀 ∈ ℝ*
∧ 𝑀 ≤ 𝐼))) |
31 | 21, 30 | sylbi 216 |
. . . . . . . . . . . . . . 15
⊢ (𝐼 ∈
(ℤ≥‘𝑀) → ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) → (𝐼 ∈ ℝ* ∧ 𝑀 ∈ ℝ*
∧ 𝑀 ≤ 𝐼))) |
32 | 31 | adantl 482 |
. . . . . . . . . . . . . 14
⊢ ((𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀)) → ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) → (𝐼 ∈ ℝ* ∧ 𝑀 ∈ ℝ*
∧ 𝑀 ≤ 𝐼))) |
33 | 32 | impcom 408 |
. . . . . . . . . . . . 13
⊢ (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) ∧ (𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀))) → (𝐼 ∈ ℝ* ∧ 𝑀 ∈ ℝ*
∧ 𝑀 ≤ 𝐼)) |
34 | | xrmineq 12914 |
. . . . . . . . . . . . 13
⊢ ((𝐼 ∈ ℝ*
∧ 𝑀 ∈
ℝ* ∧ 𝑀
≤ 𝐼) → if(𝐼 ≤ 𝑀, 𝐼, 𝑀) = 𝑀) |
35 | 33, 34 | syl 17 |
. . . . . . . . . . . 12
⊢ (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) ∧ (𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀))) → if(𝐼 ≤ 𝑀, 𝐼, 𝑀) = 𝑀) |
36 | 20, 35 | eqtr2d 2779 |
. . . . . . . . . . 11
⊢ (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) ∧ (𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀))) → 𝑀 = if(𝐼 ≤ (1st ‘〈𝑀, 𝑁〉), 𝐼, (1st ‘〈𝑀, 𝑁〉))) |
37 | 36 | 3adant2 1130 |
. . . . . . . . . 10
⊢ (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) ∧ 𝐺 Struct 〈𝑀, 𝑁〉 ∧ (𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀))) → 𝑀 = if(𝐼 ≤ (1st ‘〈𝑀, 𝑁〉), 𝐼, (1st ‘〈𝑀, 𝑁〉))) |
38 | | op2ndg 7844 |
. . . . . . . . . . . . . . 15
⊢ ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ) →
(2nd ‘〈𝑀, 𝑁〉) = 𝑁) |
39 | 38 | eqcomd 2744 |
. . . . . . . . . . . . . 14
⊢ ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ) → 𝑁 = (2nd
‘〈𝑀, 𝑁〉)) |
40 | 39 | breq2d 5086 |
. . . . . . . . . . . . 13
⊢ ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ) → (𝐼 ≤ 𝑁 ↔ 𝐼 ≤ (2nd ‘〈𝑀, 𝑁〉))) |
41 | 40, 39, 17 | ifbieq12d 4487 |
. . . . . . . . . . . 12
⊢ ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ) → if(𝐼 ≤ 𝑁, 𝑁, 𝐼) = if(𝐼 ≤ (2nd ‘〈𝑀, 𝑁〉), (2nd ‘〈𝑀, 𝑁〉), 𝐼)) |
42 | 41 | 3adant3 1131 |
. . . . . . . . . . 11
⊢ ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) → if(𝐼 ≤ 𝑁, 𝑁, 𝐼) = if(𝐼 ≤ (2nd ‘〈𝑀, 𝑁〉), (2nd ‘〈𝑀, 𝑁〉), 𝐼)) |
43 | 42 | 3ad2ant1 1132 |
. . . . . . . . . 10
⊢ (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) ∧ 𝐺 Struct 〈𝑀, 𝑁〉 ∧ (𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀))) → if(𝐼 ≤ 𝑁, 𝑁, 𝐼) = if(𝐼 ≤ (2nd ‘〈𝑀, 𝑁〉), (2nd ‘〈𝑀, 𝑁〉), 𝐼)) |
44 | 37, 43 | opeq12d 4812 |
. . . . . . . . 9
⊢ (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) ∧ 𝐺 Struct 〈𝑀, 𝑁〉 ∧ (𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀))) → 〈𝑀, if(𝐼 ≤ 𝑁, 𝑁, 𝐼)〉 = 〈if(𝐼 ≤ (1st ‘〈𝑀, 𝑁〉), 𝐼, (1st ‘〈𝑀, 𝑁〉)), if(𝐼 ≤ (2nd ‘〈𝑀, 𝑁〉), (2nd ‘〈𝑀, 𝑁〉), 𝐼)〉) |
45 | 14, 44 | jca 512 |
. . . . . . . 8
⊢ (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) ∧ 𝐺 Struct 〈𝑀, 𝑁〉 ∧ (𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀))) → ((𝐺 Struct 〈𝑀, 𝑁〉 ∧ 𝐸 ∈ 𝑉 ∧ 𝐼 ∈ ℕ) ∧ 〈𝑀, if(𝐼 ≤ 𝑁, 𝑁, 𝐼)〉 = 〈if(𝐼 ≤ (1st ‘〈𝑀, 𝑁〉), 𝐼, (1st ‘〈𝑀, 𝑁〉)), if(𝐼 ≤ (2nd ‘〈𝑀, 𝑁〉), (2nd ‘〈𝑀, 𝑁〉), 𝐼)〉)) |
46 | 45 | 3exp 1118 |
. . . . . . 7
⊢ ((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) → (𝐺 Struct 〈𝑀, 𝑁〉 → ((𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀)) → ((𝐺 Struct 〈𝑀, 𝑁〉 ∧ 𝐸 ∈ 𝑉 ∧ 𝐼 ∈ ℕ) ∧ 〈𝑀, if(𝐼 ≤ 𝑁, 𝑁, 𝐼)〉 = 〈if(𝐼 ≤ (1st ‘〈𝑀, 𝑁〉), 𝐼, (1st ‘〈𝑀, 𝑁〉)), if(𝐼 ≤ (2nd ‘〈𝑀, 𝑁〉), (2nd ‘〈𝑀, 𝑁〉), 𝐼)〉)))) |
47 | 46 | 3ad2ant1 1132 |
. . . . . 6
⊢ (((𝑀 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑀 ≤ 𝑁) ∧ Fun (𝐺 ∖ {∅}) ∧ dom 𝐺 ⊆ (𝑀...𝑁)) → (𝐺 Struct 〈𝑀, 𝑁〉 → ((𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀)) → ((𝐺 Struct 〈𝑀, 𝑁〉 ∧ 𝐸 ∈ 𝑉 ∧ 𝐼 ∈ ℕ) ∧ 〈𝑀, if(𝐼 ≤ 𝑁, 𝑁, 𝐼)〉 = 〈if(𝐼 ≤ (1st ‘〈𝑀, 𝑁〉), 𝐼, (1st ‘〈𝑀, 𝑁〉)), if(𝐼 ≤ (2nd ‘〈𝑀, 𝑁〉), (2nd ‘〈𝑀, 𝑁〉), 𝐼)〉)))) |
48 | 1, 47 | sylbi 216 |
. . . . 5
⊢ (𝐺 Struct 〈𝑀, 𝑁〉 → (𝐺 Struct 〈𝑀, 𝑁〉 → ((𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀)) → ((𝐺 Struct 〈𝑀, 𝑁〉 ∧ 𝐸 ∈ 𝑉 ∧ 𝐼 ∈ ℕ) ∧ 〈𝑀, if(𝐼 ≤ 𝑁, 𝑁, 𝐼)〉 = 〈if(𝐼 ≤ (1st ‘〈𝑀, 𝑁〉), 𝐼, (1st ‘〈𝑀, 𝑁〉)), if(𝐼 ≤ (2nd ‘〈𝑀, 𝑁〉), (2nd ‘〈𝑀, 𝑁〉), 𝐼)〉)))) |
49 | 48 | pm2.43i 52 |
. . . 4
⊢ (𝐺 Struct 〈𝑀, 𝑁〉 → ((𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀)) → ((𝐺 Struct 〈𝑀, 𝑁〉 ∧ 𝐸 ∈ 𝑉 ∧ 𝐼 ∈ ℕ) ∧ 〈𝑀, if(𝐼 ≤ 𝑁, 𝑁, 𝐼)〉 = 〈if(𝐼 ≤ (1st ‘〈𝑀, 𝑁〉), 𝐼, (1st ‘〈𝑀, 𝑁〉)), if(𝐼 ≤ (2nd ‘〈𝑀, 𝑁〉), (2nd ‘〈𝑀, 𝑁〉), 𝐼)〉))) |
50 | 49 | expdcom 415 |
. . 3
⊢ (𝐸 ∈ 𝑉 → (𝐼 ∈ (ℤ≥‘𝑀) → (𝐺 Struct 〈𝑀, 𝑁〉 → ((𝐺 Struct 〈𝑀, 𝑁〉 ∧ 𝐸 ∈ 𝑉 ∧ 𝐼 ∈ ℕ) ∧ 〈𝑀, if(𝐼 ≤ 𝑁, 𝑁, 𝐼)〉 = 〈if(𝐼 ≤ (1st ‘〈𝑀, 𝑁〉), 𝐼, (1st ‘〈𝑀, 𝑁〉)), if(𝐼 ≤ (2nd ‘〈𝑀, 𝑁〉), (2nd ‘〈𝑀, 𝑁〉), 𝐼)〉)))) |
51 | 50 | 3imp 1110 |
. 2
⊢ ((𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀) ∧ 𝐺 Struct 〈𝑀, 𝑁〉) → ((𝐺 Struct 〈𝑀, 𝑁〉 ∧ 𝐸 ∈ 𝑉 ∧ 𝐼 ∈ ℕ) ∧ 〈𝑀, if(𝐼 ≤ 𝑁, 𝑁, 𝐼)〉 = 〈if(𝐼 ≤ (1st ‘〈𝑀, 𝑁〉), 𝐼, (1st ‘〈𝑀, 𝑁〉)), if(𝐼 ≤ (2nd ‘〈𝑀, 𝑁〉), (2nd ‘〈𝑀, 𝑁〉), 𝐼)〉)) |
52 | | setsstruct2 16875 |
. 2
⊢ (((𝐺 Struct 〈𝑀, 𝑁〉 ∧ 𝐸 ∈ 𝑉 ∧ 𝐼 ∈ ℕ) ∧ 〈𝑀, if(𝐼 ≤ 𝑁, 𝑁, 𝐼)〉 = 〈if(𝐼 ≤ (1st ‘〈𝑀, 𝑁〉), 𝐼, (1st ‘〈𝑀, 𝑁〉)), if(𝐼 ≤ (2nd ‘〈𝑀, 𝑁〉), (2nd ‘〈𝑀, 𝑁〉), 𝐼)〉) → (𝐺 sSet 〈𝐼, 𝐸〉) Struct 〈𝑀, if(𝐼 ≤ 𝑁, 𝑁, 𝐼)〉) |
53 | 51, 52 | syl 17 |
1
⊢ ((𝐸 ∈ 𝑉 ∧ 𝐼 ∈ (ℤ≥‘𝑀) ∧ 𝐺 Struct 〈𝑀, 𝑁〉) → (𝐺 sSet 〈𝐼, 𝐸〉) Struct 〈𝑀, if(𝐼 ≤ 𝑁, 𝑁, 𝐼)〉) |