Metamath Proof Explorer


Theorem fin1a2lem10

Description: Lemma for fin1a2 . A nonempty finite union of members of a chain is a member of the chain. (Contributed by Stefan O'Rear, 8-Nov-2014)

Ref Expression
Assertion fin1a2lem10 ( ( 𝐴 ≠ ∅ ∧ 𝐴 ∈ Fin ∧ [] Or 𝐴 ) → 𝐴𝐴 )

Proof

Step Hyp Ref Expression
1 eqneqall ( 𝑎 = ∅ → ( 𝑎 ≠ ∅ → ( [] Or 𝑎 𝑎𝑎 ) ) )
2 tru
3 2 a1i ( 𝑎 = ∅ → ⊤ )
4 1 3 2thd ( 𝑎 = ∅ → ( ( 𝑎 ≠ ∅ → ( [] Or 𝑎 𝑎𝑎 ) ) ↔ ⊤ ) )
5 neeq1 ( 𝑎 = 𝑏 → ( 𝑎 ≠ ∅ ↔ 𝑏 ≠ ∅ ) )
6 soeq2 ( 𝑎 = 𝑏 → ( [] Or 𝑎 ↔ [] Or 𝑏 ) )
7 unieq ( 𝑎 = 𝑏 𝑎 = 𝑏 )
8 id ( 𝑎 = 𝑏𝑎 = 𝑏 )
9 7 8 eleq12d ( 𝑎 = 𝑏 → ( 𝑎𝑎 𝑏𝑏 ) )
10 6 9 imbi12d ( 𝑎 = 𝑏 → ( ( [] Or 𝑎 𝑎𝑎 ) ↔ ( [] Or 𝑏 𝑏𝑏 ) ) )
11 5 10 imbi12d ( 𝑎 = 𝑏 → ( ( 𝑎 ≠ ∅ → ( [] Or 𝑎 𝑎𝑎 ) ) ↔ ( 𝑏 ≠ ∅ → ( [] Or 𝑏 𝑏𝑏 ) ) ) )
12 neeq1 ( 𝑎 = ( 𝑏 ∪ { 𝑐 } ) → ( 𝑎 ≠ ∅ ↔ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) )
13 soeq2 ( 𝑎 = ( 𝑏 ∪ { 𝑐 } ) → ( [] Or 𝑎 ↔ [] Or ( 𝑏 ∪ { 𝑐 } ) ) )
14 unieq ( 𝑎 = ( 𝑏 ∪ { 𝑐 } ) → 𝑎 = ( 𝑏 ∪ { 𝑐 } ) )
15 id ( 𝑎 = ( 𝑏 ∪ { 𝑐 } ) → 𝑎 = ( 𝑏 ∪ { 𝑐 } ) )
16 14 15 eleq12d ( 𝑎 = ( 𝑏 ∪ { 𝑐 } ) → ( 𝑎𝑎 ( 𝑏 ∪ { 𝑐 } ) ∈ ( 𝑏 ∪ { 𝑐 } ) ) )
17 13 16 imbi12d ( 𝑎 = ( 𝑏 ∪ { 𝑐 } ) → ( ( [] Or 𝑎 𝑎𝑎 ) ↔ ( [] Or ( 𝑏 ∪ { 𝑐 } ) → ( 𝑏 ∪ { 𝑐 } ) ∈ ( 𝑏 ∪ { 𝑐 } ) ) ) )
18 12 17 imbi12d ( 𝑎 = ( 𝑏 ∪ { 𝑐 } ) → ( ( 𝑎 ≠ ∅ → ( [] Or 𝑎 𝑎𝑎 ) ) ↔ ( ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ → ( [] Or ( 𝑏 ∪ { 𝑐 } ) → ( 𝑏 ∪ { 𝑐 } ) ∈ ( 𝑏 ∪ { 𝑐 } ) ) ) ) )
19 neeq1 ( 𝑎 = 𝐴 → ( 𝑎 ≠ ∅ ↔ 𝐴 ≠ ∅ ) )
20 soeq2 ( 𝑎 = 𝐴 → ( [] Or 𝑎 ↔ [] Or 𝐴 ) )
21 unieq ( 𝑎 = 𝐴 𝑎 = 𝐴 )
22 id ( 𝑎 = 𝐴𝑎 = 𝐴 )
23 21 22 eleq12d ( 𝑎 = 𝐴 → ( 𝑎𝑎 𝐴𝐴 ) )
24 20 23 imbi12d ( 𝑎 = 𝐴 → ( ( [] Or 𝑎 𝑎𝑎 ) ↔ ( [] Or 𝐴 𝐴𝐴 ) ) )
25 19 24 imbi12d ( 𝑎 = 𝐴 → ( ( 𝑎 ≠ ∅ → ( [] Or 𝑎 𝑎𝑎 ) ) ↔ ( 𝐴 ≠ ∅ → ( [] Or 𝐴 𝐴𝐴 ) ) ) )
26 unisnv { 𝑐 } = 𝑐
27 vsnid 𝑐 ∈ { 𝑐 }
28 26 27 eqeltri { 𝑐 } ∈ { 𝑐 }
29 uneq1 ( 𝑏 = ∅ → ( 𝑏 ∪ { 𝑐 } ) = ( ∅ ∪ { 𝑐 } ) )
30 uncom ( ∅ ∪ { 𝑐 } ) = ( { 𝑐 } ∪ ∅ )
31 un0 ( { 𝑐 } ∪ ∅ ) = { 𝑐 }
32 30 31 eqtri ( ∅ ∪ { 𝑐 } ) = { 𝑐 }
33 29 32 eqtrdi ( 𝑏 = ∅ → ( 𝑏 ∪ { 𝑐 } ) = { 𝑐 } )
34 33 unieqd ( 𝑏 = ∅ → ( 𝑏 ∪ { 𝑐 } ) = { 𝑐 } )
35 34 33 eleq12d ( 𝑏 = ∅ → ( ( 𝑏 ∪ { 𝑐 } ) ∈ ( 𝑏 ∪ { 𝑐 } ) ↔ { 𝑐 } ∈ { 𝑐 } ) )
36 28 35 mpbiri ( 𝑏 = ∅ → ( 𝑏 ∪ { 𝑐 } ) ∈ ( 𝑏 ∪ { 𝑐 } ) )
37 36 a1d ( 𝑏 = ∅ → ( ( 𝑏 ≠ ∅ → ( [] Or 𝑏 𝑏𝑏 ) ) → ( 𝑏 ∪ { 𝑐 } ) ∈ ( 𝑏 ∪ { 𝑐 } ) ) )
38 37 adantl ( ( ( 𝑏 ∈ Fin ∧ [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) ∧ 𝑏 = ∅ ) → ( ( 𝑏 ≠ ∅ → ( [] Or 𝑏 𝑏𝑏 ) ) → ( 𝑏 ∪ { 𝑐 } ) ∈ ( 𝑏 ∪ { 𝑐 } ) ) )
39 simpr ( ( ( 𝑏 ∈ Fin ∧ [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) ∧ 𝑏 ≠ ∅ ) → 𝑏 ≠ ∅ )
40 ssun1 𝑏 ⊆ ( 𝑏 ∪ { 𝑐 } )
41 simpl2 ( ( ( 𝑏 ∈ Fin ∧ [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) ∧ 𝑏 ≠ ∅ ) → [] Or ( 𝑏 ∪ { 𝑐 } ) )
42 soss ( 𝑏 ⊆ ( 𝑏 ∪ { 𝑐 } ) → ( [] Or ( 𝑏 ∪ { 𝑐 } ) → [] Or 𝑏 ) )
43 40 41 42 mpsyl ( ( ( 𝑏 ∈ Fin ∧ [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) ∧ 𝑏 ≠ ∅ ) → [] Or 𝑏 )
44 uniun ( 𝑏 ∪ { 𝑐 } ) = ( 𝑏 { 𝑐 } )
45 26 uneq2i ( 𝑏 { 𝑐 } ) = ( 𝑏𝑐 )
46 44 45 eqtri ( 𝑏 ∪ { 𝑐 } ) = ( 𝑏𝑐 )
47 simprr ( ( ( 𝑏 ∈ Fin ∧ [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) ∧ ( 𝑏 ≠ ∅ ∧ 𝑏𝑏 ) ) → 𝑏𝑏 )
48 simpl2 ( ( ( 𝑏 ∈ Fin ∧ [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) ∧ ( 𝑏 ≠ ∅ ∧ 𝑏𝑏 ) ) → [] Or ( 𝑏 ∪ { 𝑐 } ) )
49 elun1 ( 𝑏𝑏 𝑏 ∈ ( 𝑏 ∪ { 𝑐 } ) )
50 49 ad2antll ( ( ( 𝑏 ∈ Fin ∧ [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) ∧ ( 𝑏 ≠ ∅ ∧ 𝑏𝑏 ) ) → 𝑏 ∈ ( 𝑏 ∪ { 𝑐 } ) )
51 ssun2 { 𝑐 } ⊆ ( 𝑏 ∪ { 𝑐 } )
52 51 27 sselii 𝑐 ∈ ( 𝑏 ∪ { 𝑐 } )
53 52 a1i ( ( ( 𝑏 ∈ Fin ∧ [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) ∧ ( 𝑏 ≠ ∅ ∧ 𝑏𝑏 ) ) → 𝑐 ∈ ( 𝑏 ∪ { 𝑐 } ) )
54 sorpssi ( ( [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∈ ( 𝑏 ∪ { 𝑐 } ) ∧ 𝑐 ∈ ( 𝑏 ∪ { 𝑐 } ) ) ) → ( 𝑏𝑐𝑐 𝑏 ) )
55 48 50 53 54 syl12anc ( ( ( 𝑏 ∈ Fin ∧ [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) ∧ ( 𝑏 ≠ ∅ ∧ 𝑏𝑏 ) ) → ( 𝑏𝑐𝑐 𝑏 ) )
56 ssequn1 ( 𝑏𝑐 ↔ ( 𝑏𝑐 ) = 𝑐 )
57 52 a1i ( 𝑏𝑏𝑐 ∈ ( 𝑏 ∪ { 𝑐 } ) )
58 eleq1 ( ( 𝑏𝑐 ) = 𝑐 → ( ( 𝑏𝑐 ) ∈ ( 𝑏 ∪ { 𝑐 } ) ↔ 𝑐 ∈ ( 𝑏 ∪ { 𝑐 } ) ) )
59 57 58 imbitrrid ( ( 𝑏𝑐 ) = 𝑐 → ( 𝑏𝑏 → ( 𝑏𝑐 ) ∈ ( 𝑏 ∪ { 𝑐 } ) ) )
60 56 59 sylbi ( 𝑏𝑐 → ( 𝑏𝑏 → ( 𝑏𝑐 ) ∈ ( 𝑏 ∪ { 𝑐 } ) ) )
61 60 impcom ( ( 𝑏𝑏 𝑏𝑐 ) → ( 𝑏𝑐 ) ∈ ( 𝑏 ∪ { 𝑐 } ) )
62 uncom ( 𝑏𝑐 ) = ( 𝑐 𝑏 )
63 ssequn1 ( 𝑐 𝑏 ↔ ( 𝑐 𝑏 ) = 𝑏 )
64 eleq1 ( ( 𝑐 𝑏 ) = 𝑏 → ( ( 𝑐 𝑏 ) ∈ ( 𝑏 ∪ { 𝑐 } ) ↔ 𝑏 ∈ ( 𝑏 ∪ { 𝑐 } ) ) )
65 49 64 imbitrrid ( ( 𝑐 𝑏 ) = 𝑏 → ( 𝑏𝑏 → ( 𝑐 𝑏 ) ∈ ( 𝑏 ∪ { 𝑐 } ) ) )
66 63 65 sylbi ( 𝑐 𝑏 → ( 𝑏𝑏 → ( 𝑐 𝑏 ) ∈ ( 𝑏 ∪ { 𝑐 } ) ) )
67 66 impcom ( ( 𝑏𝑏𝑐 𝑏 ) → ( 𝑐 𝑏 ) ∈ ( 𝑏 ∪ { 𝑐 } ) )
68 62 67 eqeltrid ( ( 𝑏𝑏𝑐 𝑏 ) → ( 𝑏𝑐 ) ∈ ( 𝑏 ∪ { 𝑐 } ) )
69 61 68 jaodan ( ( 𝑏𝑏 ∧ ( 𝑏𝑐𝑐 𝑏 ) ) → ( 𝑏𝑐 ) ∈ ( 𝑏 ∪ { 𝑐 } ) )
70 47 55 69 syl2anc ( ( ( 𝑏 ∈ Fin ∧ [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) ∧ ( 𝑏 ≠ ∅ ∧ 𝑏𝑏 ) ) → ( 𝑏𝑐 ) ∈ ( 𝑏 ∪ { 𝑐 } ) )
71 46 70 eqeltrid ( ( ( 𝑏 ∈ Fin ∧ [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) ∧ ( 𝑏 ≠ ∅ ∧ 𝑏𝑏 ) ) → ( 𝑏 ∪ { 𝑐 } ) ∈ ( 𝑏 ∪ { 𝑐 } ) )
72 71 expr ( ( ( 𝑏 ∈ Fin ∧ [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) ∧ 𝑏 ≠ ∅ ) → ( 𝑏𝑏 ( 𝑏 ∪ { 𝑐 } ) ∈ ( 𝑏 ∪ { 𝑐 } ) ) )
73 43 72 embantd ( ( ( 𝑏 ∈ Fin ∧ [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) ∧ 𝑏 ≠ ∅ ) → ( ( [] Or 𝑏 𝑏𝑏 ) → ( 𝑏 ∪ { 𝑐 } ) ∈ ( 𝑏 ∪ { 𝑐 } ) ) )
74 39 73 embantd ( ( ( 𝑏 ∈ Fin ∧ [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) ∧ 𝑏 ≠ ∅ ) → ( ( 𝑏 ≠ ∅ → ( [] Or 𝑏 𝑏𝑏 ) ) → ( 𝑏 ∪ { 𝑐 } ) ∈ ( 𝑏 ∪ { 𝑐 } ) ) )
75 38 74 pm2.61dane ( ( 𝑏 ∈ Fin ∧ [] Or ( 𝑏 ∪ { 𝑐 } ) ∧ ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ ) → ( ( 𝑏 ≠ ∅ → ( [] Or 𝑏 𝑏𝑏 ) ) → ( 𝑏 ∪ { 𝑐 } ) ∈ ( 𝑏 ∪ { 𝑐 } ) ) )
76 75 3exp ( 𝑏 ∈ Fin → ( [] Or ( 𝑏 ∪ { 𝑐 } ) → ( ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ → ( ( 𝑏 ≠ ∅ → ( [] Or 𝑏 𝑏𝑏 ) ) → ( 𝑏 ∪ { 𝑐 } ) ∈ ( 𝑏 ∪ { 𝑐 } ) ) ) ) )
77 76 com24 ( 𝑏 ∈ Fin → ( ( 𝑏 ≠ ∅ → ( [] Or 𝑏 𝑏𝑏 ) ) → ( ( 𝑏 ∪ { 𝑐 } ) ≠ ∅ → ( [] Or ( 𝑏 ∪ { 𝑐 } ) → ( 𝑏 ∪ { 𝑐 } ) ∈ ( 𝑏 ∪ { 𝑐 } ) ) ) ) )
78 4 11 18 25 2 77 findcard2 ( 𝐴 ∈ Fin → ( 𝐴 ≠ ∅ → ( [] Or 𝐴 𝐴𝐴 ) ) )
79 78 3imp21 ( ( 𝐴 ≠ ∅ ∧ 𝐴 ∈ Fin ∧ [] Or 𝐴 ) → 𝐴𝐴 )