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

Theorem iunconn 22121
 Description: The indexed union of connected overlapping subspaces sharing a common point is connected. (Contributed by Mario Carneiro, 11-Jun-2014.)
Hypotheses
Ref Expression
iunconn.2 (𝜑𝐽 ∈ (TopOn‘𝑋))
iunconn.3 ((𝜑𝑘𝐴) → 𝐵𝑋)
iunconn.4 ((𝜑𝑘𝐴) → 𝑃𝐵)
iunconn.5 ((𝜑𝑘𝐴) → (𝐽t 𝐵) ∈ Conn)
Assertion
Ref Expression
iunconn (𝜑 → (𝐽t 𝑘𝐴 𝐵) ∈ Conn)
Distinct variable groups:   𝐴,𝑘   𝑘,𝐽   𝑃,𝑘   𝑘,𝑋   𝜑,𝑘
Allowed substitution hint:   𝐵(𝑘)

Proof of Theorem iunconn
Dummy variables 𝑢 𝑣 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 simpr 489 . . . . . . 7 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → 𝑘𝐴 𝐵 ⊆ (𝑢𝑣))
2 simplr1 1213 . . . . . . . . . 10 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → (𝑢 𝑘𝐴 𝐵) ≠ ∅)
3 n0 4246 . . . . . . . . . . 11 ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ↔ ∃𝑣 𝑣 ∈ (𝑢 𝑘𝐴 𝐵))
4 elinel2 4102 . . . . . . . . . . . . 13 (𝑣 ∈ (𝑢 𝑘𝐴 𝐵) → 𝑣 𝑘𝐴 𝐵)
5 eliun 4888 . . . . . . . . . . . . . 14 (𝑣 𝑘𝐴 𝐵 ↔ ∃𝑘𝐴 𝑣𝐵)
6 rexn0 4404 . . . . . . . . . . . . . 14 (∃𝑘𝐴 𝑣𝐵𝐴 ≠ ∅)
75, 6sylbi 220 . . . . . . . . . . . . 13 (𝑣 𝑘𝐴 𝐵𝐴 ≠ ∅)
84, 7syl 17 . . . . . . . . . . . 12 (𝑣 ∈ (𝑢 𝑘𝐴 𝐵) → 𝐴 ≠ ∅)
98exlimiv 1932 . . . . . . . . . . 11 (∃𝑣 𝑣 ∈ (𝑢 𝑘𝐴 𝐵) → 𝐴 ≠ ∅)
103, 9sylbi 220 . . . . . . . . . 10 ((𝑢 𝑘𝐴 𝐵) ≠ ∅ → 𝐴 ≠ ∅)
112, 10syl 17 . . . . . . . . 9 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → 𝐴 ≠ ∅)
12 simplll 775 . . . . . . . . . 10 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → 𝜑)
13 iunconn.4 . . . . . . . . . . 11 ((𝜑𝑘𝐴) → 𝑃𝐵)
1413ralrimiva 3114 . . . . . . . . . 10 (𝜑 → ∀𝑘𝐴 𝑃𝐵)
1512, 14syl 17 . . . . . . . . 9 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → ∀𝑘𝐴 𝑃𝐵)
16 r19.2z 4389 . . . . . . . . 9 ((𝐴 ≠ ∅ ∧ ∀𝑘𝐴 𝑃𝐵) → ∃𝑘𝐴 𝑃𝐵)
1711, 15, 16syl2anc 588 . . . . . . . 8 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → ∃𝑘𝐴 𝑃𝐵)
18 eliun 4888 . . . . . . . 8 (𝑃 𝑘𝐴 𝐵 ↔ ∃𝑘𝐴 𝑃𝐵)
1917, 18sylibr 237 . . . . . . 7 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → 𝑃 𝑘𝐴 𝐵)
201, 19sseldd 3894 . . . . . 6 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → 𝑃 ∈ (𝑢𝑣))
21 elun 4055 . . . . . 6 (𝑃 ∈ (𝑢𝑣) ↔ (𝑃𝑢𝑃𝑣))
2220, 21sylib 221 . . . . 5 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → (𝑃𝑢𝑃𝑣))
23 iunconn.2 . . . . . . . 8 (𝜑𝐽 ∈ (TopOn‘𝑋))
2412, 23syl 17 . . . . . . 7 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → 𝐽 ∈ (TopOn‘𝑋))
25 iunconn.3 . . . . . . . 8 ((𝜑𝑘𝐴) → 𝐵𝑋)
2612, 25sylan 584 . . . . . . 7 (((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) ∧ 𝑘𝐴) → 𝐵𝑋)
2712, 13sylan 584 . . . . . . 7 (((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) ∧ 𝑘𝐴) → 𝑃𝐵)
28 iunconn.5 . . . . . . . 8 ((𝜑𝑘𝐴) → (𝐽t 𝐵) ∈ Conn)
2912, 28sylan 584 . . . . . . 7 (((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) ∧ 𝑘𝐴) → (𝐽t 𝐵) ∈ Conn)
30 simpllr 776 . . . . . . . 8 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → (𝑢𝐽𝑣𝐽))
3130simpld 499 . . . . . . 7 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → 𝑢𝐽)
3230simprd 500 . . . . . . 7 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → 𝑣𝐽)
33 simplr2 1214 . . . . . . 7 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → (𝑣 𝑘𝐴 𝐵) ≠ ∅)
34 simplr3 1215 . . . . . . 7 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))
35 nfv 1916 . . . . . . . . 9 𝑘(𝜑 ∧ (𝑢𝐽𝑣𝐽))
36 nfcv 2920 . . . . . . . . . . . 12 𝑘𝑢
37 nfiu1 4918 . . . . . . . . . . . 12 𝑘 𝑘𝐴 𝐵
3836, 37nfin 4122 . . . . . . . . . . 11 𝑘(𝑢 𝑘𝐴 𝐵)
39 nfcv 2920 . . . . . . . . . . 11 𝑘
4038, 39nfne 3052 . . . . . . . . . 10 𝑘(𝑢 𝑘𝐴 𝐵) ≠ ∅
41 nfcv 2920 . . . . . . . . . . . 12 𝑘𝑣
4241, 37nfin 4122 . . . . . . . . . . 11 𝑘(𝑣 𝑘𝐴 𝐵)
4342, 39nfne 3052 . . . . . . . . . 10 𝑘(𝑣 𝑘𝐴 𝐵) ≠ ∅
44 nfcv 2920 . . . . . . . . . . 11 𝑘(𝑢𝑣)
45 nfcv 2920 . . . . . . . . . . . 12 𝑘𝑋
4645, 37nfdif 4032 . . . . . . . . . . 11 𝑘(𝑋 𝑘𝐴 𝐵)
4744, 46nfss 3885 . . . . . . . . . 10 𝑘(𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵)
4840, 43, 47nf3an 1903 . . . . . . . . 9 𝑘((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))
4935, 48nfan 1901 . . . . . . . 8 𝑘((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵)))
5036, 41nfun 4071 . . . . . . . . 9 𝑘(𝑢𝑣)
5137, 50nfss 3885 . . . . . . . 8 𝑘 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)
5249, 51nfan 1901 . . . . . . 7 𝑘(((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣))
5324, 26, 27, 29, 31, 32, 33, 34, 1, 52iunconnlem 22120 . . . . . 6 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → ¬ 𝑃𝑢)
54 incom 4107 . . . . . . . 8 (𝑣𝑢) = (𝑢𝑣)
5554, 34eqsstrid 3941 . . . . . . 7 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → (𝑣𝑢) ⊆ (𝑋 𝑘𝐴 𝐵))
56 uncom 4059 . . . . . . . 8 (𝑢𝑣) = (𝑣𝑢)
571, 56sseqtrdi 3943 . . . . . . 7 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → 𝑘𝐴 𝐵 ⊆ (𝑣𝑢))
5824, 26, 27, 29, 32, 31, 2, 55, 57, 52iunconnlem 22120 . . . . . 6 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → ¬ 𝑃𝑣)
59 ioran 982 . . . . . 6 (¬ (𝑃𝑢𝑃𝑣) ↔ (¬ 𝑃𝑢 ∧ ¬ 𝑃𝑣))
6053, 58, 59sylanbrc 587 . . . . 5 ((((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) ∧ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)) → ¬ (𝑃𝑢𝑃𝑣))
6122, 60pm2.65da 817 . . . 4 (((𝜑 ∧ (𝑢𝐽𝑣𝐽)) ∧ ((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵))) → ¬ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣))
6261ex 417 . . 3 ((𝜑 ∧ (𝑢𝐽𝑣𝐽)) → (((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵)) → ¬ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)))
6362ralrimivva 3121 . 2 (𝜑 → ∀𝑢𝐽𝑣𝐽 (((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵)) → ¬ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣)))
6425ralrimiva 3114 . . . 4 (𝜑 → ∀𝑘𝐴 𝐵𝑋)
65 iunss 4935 . . . 4 ( 𝑘𝐴 𝐵𝑋 ↔ ∀𝑘𝐴 𝐵𝑋)
6664, 65sylibr 237 . . 3 (𝜑 𝑘𝐴 𝐵𝑋)
67 connsub 22114 . . 3 ((𝐽 ∈ (TopOn‘𝑋) ∧ 𝑘𝐴 𝐵𝑋) → ((𝐽t 𝑘𝐴 𝐵) ∈ Conn ↔ ∀𝑢𝐽𝑣𝐽 (((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵)) → ¬ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣))))
6823, 66, 67syl2anc 588 . 2 (𝜑 → ((𝐽t 𝑘𝐴 𝐵) ∈ Conn ↔ ∀𝑢𝐽𝑣𝐽 (((𝑢 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑣 𝑘𝐴 𝐵) ≠ ∅ ∧ (𝑢𝑣) ⊆ (𝑋 𝑘𝐴 𝐵)) → ¬ 𝑘𝐴 𝐵 ⊆ (𝑢𝑣))))
6963, 68mpbird 260 1 (𝜑 → (𝐽t 𝑘𝐴 𝐵) ∈ Conn)
 Colors of variables: wff setvar class Syntax hints:  ¬ wn 3   → wi 4   ↔ wb 209   ∧ wa 400   ∨ wo 845   ∧ w3a 1085  ∃wex 1782   ∈ wcel 2112   ≠ wne 2952  ∀wral 3071  ∃wrex 3072   ∖ cdif 3856   ∪ cun 3857   ∩ cin 3858   ⊆ wss 3859  ∅c0 4226  ∪ ciun 4884  ‘cfv 6336  (class class class)co 7151   ↾t crest 16745  TopOnctopon 21603  Conncconn 22104 This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1798  ax-4 1812  ax-5 1912  ax-6 1971  ax-7 2016  ax-8 2114  ax-9 2122  ax-10 2143  ax-11 2159  ax-12 2176  ax-ext 2730  ax-rep 5157  ax-sep 5170  ax-nul 5177  ax-pow 5235  ax-pr 5299  ax-un 7460 This theorem depends on definitions:  df-bi 210  df-an 401  df-or 846  df-3or 1086  df-3an 1087  df-tru 1542  df-fal 1552  df-ex 1783  df-nf 1787  df-sb 2071  df-mo 2558  df-eu 2589  df-clab 2737  df-cleq 2751  df-clel 2831  df-nfc 2902  df-ne 2953  df-ral 3076  df-rex 3077  df-reu 3078  df-rab 3080  df-v 3412  df-sbc 3698  df-csb 3807  df-dif 3862  df-un 3864  df-in 3866  df-ss 3876  df-pss 3878  df-nul 4227  df-if 4422  df-pw 4497  df-sn 4524  df-pr 4526  df-tp 4528  df-op 4530  df-uni 4800  df-int 4840  df-iun 4886  df-br 5034  df-opab 5096  df-mpt 5114  df-tr 5140  df-id 5431  df-eprel 5436  df-po 5444  df-so 5445  df-fr 5484  df-we 5486  df-xp 5531  df-rel 5532  df-cnv 5533  df-co 5534  df-dm 5535  df-rn 5536  df-res 5537  df-ima 5538  df-pred 6127  df-ord 6173  df-on 6174  df-lim 6175  df-suc 6176  df-iota 6295  df-fun 6338  df-fn 6339  df-f 6340  df-f1 6341  df-fo 6342  df-f1o 6343  df-fv 6344  df-ov 7154  df-oprab 7155  df-mpo 7156  df-om 7581  df-1st 7694  df-2nd 7695  df-wrecs 7958  df-recs 8019  df-rdg 8057  df-oadd 8117  df-er 8300  df-en 8529  df-fin 8532  df-fi 8901  df-rest 16747  df-topgen 16768  df-top 21587  df-topon 21604  df-bases 21639  df-cld 21712  df-conn 22105 This theorem is referenced by:  unconn  22122  conncompconn  22125
 Copyright terms: Public domain W3C validator