Users' Mathboxes Mathbox for Glauco Siliprandi < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  smfrec Structured version   Visualization version   GIF version

Theorem smfrec 47892
Description: The reciprocal of a sigma-measurable functions is sigma-measurable. First part of Proposition 121E (e) of [Fremlin1] p. 38 . (Contributed by Glauco Siliprandi, 26-Jun-2021.)
Hypotheses
Ref Expression
smfrec.x Ⅎ𝑥𝜑
smfrec.s (𝜑 → 𝑆 ∈ SAlg)
smfrec.a (𝜑 → 𝐴 ∈ 𝑉)
smfrec.b ((𝜑 ∧ 𝑥 ∈ 𝐴) → 𝐵 ∈ ℝ)
smfrec.m (𝜑 → (𝑥 ∈ 𝐴 ↦ 𝐵) ∈ (SMblFn‘𝑆))
smfrec.e 𝐶 = {𝑥 ∈ 𝐴 ∣ 𝐵 ≠ 0}
Assertion
Ref Expression
smfrec (𝜑 → (𝑥 ∈ 𝐶 ↦ (1 / 𝐵)) ∈ (SMblFn‘𝑆))
Distinct variable groups:   𝑥,𝐴   𝑥,𝐶
Allowed substitution hints:   𝜑(𝑥)   𝐵(𝑥)   𝑆(𝑥)   𝑉(𝑥)

Proof of Theorem smfrec
Dummy variable 𝑎 is distinct from all other variables.
StepHypRef Expression
1 smfrec.x . 2 Ⅎ𝑥𝜑
2 nfv 1946 . 2 Ⅎ𝑎𝜑
3 smfrec.s . 2 (𝜑 → 𝑆 ∈ SAlg)
4 smfrec.e . . . 4 𝐶 = {𝑥 ∈ 𝐴 ∣ 𝐵 ≠ 0}
5 ssrab2 4005 . . . 4 {𝑥 ∈ 𝐴 ∣ 𝐵 ≠ 0} ⊆ 𝐴
64, 5eqsstri 3954 . . 3 𝐶 ⊆ 𝐴
7 eqid 2760 . . . . . 6 (𝑥 ∈ 𝐴 ↦ 𝐵) = (𝑥 ∈ 𝐴 ↦ 𝐵)
8 smfrec.b . . . . . 6 ((𝜑 ∧ 𝑥 ∈ 𝐴) → 𝐵 ∈ ℝ)
91, 7, 8dmmptdf 46330 . . . . 5 (𝜑 → dom (𝑥 ∈ 𝐴 ↦ 𝐵) = 𝐴)
109eqcomd 2766 . . . 4 (𝜑 → 𝐴 = dom (𝑥 ∈ 𝐴 ↦ 𝐵))
11 smfrec.m . . . . 5 (𝜑 → (𝑥 ∈ 𝐴 ↦ 𝐵) ∈ (SMblFn‘𝑆))
12 eqid 2760 . . . . 5 dom (𝑥 ∈ 𝐴 ↦ 𝐵) = dom (𝑥 ∈ 𝐴 ↦ 𝐵)
133, 11, 12smfdmss 47836 . . . 4 (𝜑 → dom (𝑥 ∈ 𝐴 ↦ 𝐵) ⊆ ∪ 𝑆)
1410, 13eqsstrd 3942 . . 3 (𝜑 → 𝐴 ⊆ ∪ 𝑆)
156, 14sstrid 3919 . 2 (𝜑 → 𝐶 ⊆ ∪ 𝑆)
16 1red 11312 . . 3 ((𝜑 ∧ 𝑥 ∈ 𝐶) → 1 ∈ ℝ)
176sseli 3904 . . . . 5 (𝑥 ∈ 𝐶 → 𝑥 ∈ 𝐴)
1817adantl 487 . . . 4 ((𝜑 ∧ 𝑥 ∈ 𝐶) → 𝑥 ∈ 𝐴)
1918, 8syldan 603 . . 3 ((𝜑 ∧ 𝑥 ∈ 𝐶) → 𝐵 ∈ ℝ)
204eleq2i 2852 . . . . . 6 (𝑥 ∈ 𝐶 ↔ 𝑥 ∈ {𝑥 ∈ 𝐴 ∣ 𝐵 ≠ 0})
2120biimpi 219 . . . . 5 (𝑥 ∈ 𝐶 → 𝑥 ∈ {𝑥 ∈ 𝐴 ∣ 𝐵 ≠ 0})
22 rabidim2 46210 . . . . 5 (𝑥 ∈ {𝑥 ∈ 𝐴 ∣ 𝐵 ≠ 0} → 𝐵 ≠ 0)
2321, 22syl 18 . . . 4 (𝑥 ∈ 𝐶 → 𝐵 ≠ 0)
2423adantl 487 . . 3 ((𝜑 ∧ 𝑥 ∈ 𝐶) → 𝐵 ≠ 0)
2516, 19, 24redivcld 12148 . 2 ((𝜑 ∧ 𝑥 ∈ 𝐶) → (1 / 𝐵) ∈ ℝ)
26 nfv 1946 . . . . . . 7 Ⅎ𝑥 𝑎 ∈ ℝ
271, 26nfan 1931 . . . . . 6 Ⅎ𝑥(𝜑 ∧ 𝑎 ∈ ℝ)
28 nfv 1946 . . . . . 6 Ⅎ𝑥0 < 𝑎
2927, 28nfan 1931 . . . . 5 Ⅎ𝑥((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 0 < 𝑎)
3019ad4ant14 765 . . . . 5 ((((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 0 < 𝑎) ∧ 𝑥 ∈ 𝐶) → 𝐵 ∈ ℝ)
3123adantl 487 . . . . 5 ((((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 0 < 𝑎) ∧ 𝑥 ∈ 𝐶) → 𝐵 ≠ 0)
32 simpl 488 . . . . . . 7 ((𝑎 ∈ ℝ ∧ 0 < 𝑎) → 𝑎 ∈ ℝ)
33 simpr 490 . . . . . . 7 ((𝑎 ∈ ℝ ∧ 0 < 𝑎) → 0 < 𝑎)
3432, 33elrpd 13164 . . . . . 6 ((𝑎 ∈ ℝ ∧ 0 < 𝑎) → 𝑎 ∈ ℝ+)
3534adantll 727 . . . . 5 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 0 < 𝑎) → 𝑎 ∈ ℝ+)
3629, 30, 31, 35pimrecltpos 47811 . . . 4 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 0 < 𝑎) → {𝑥 ∈ 𝐶 ∣ (1 / 𝐵) < 𝑎} = ({𝑥 ∈ 𝐶 ∣ (1 / 𝑎) < 𝐵} ∪ {𝑥 ∈ 𝐶 ∣ 𝐵 < 0}))
37 smfrec.a . . . . . . . 8 (𝜑 → 𝐴 ∈ 𝑉)
384, 37rabexd 5300 . . . . . . 7 (𝜑 → 𝐶 ∈ V)
39 eqid 2760 . . . . . . 7 (𝑆 ↾t 𝐶) = (𝑆 ↾t 𝐶)
403, 38, 39subsalsal 47462 . . . . . 6 (𝜑 → (𝑆 ↾t 𝐶) ∈ SAlg)
4140ad2antrr 739 . . . . 5 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 0 < 𝑎) → (𝑆 ↾t 𝐶) ∈ SAlg)
423adantr 486 . . . . . . 7 ((𝜑 ∧ 𝑎 ∈ ℝ) → 𝑆 ∈ SAlg)
4342adantr 486 . . . . . 6 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 0 < 𝑎) → 𝑆 ∈ SAlg)
446a1i 11 . . . . . . . . 9 (𝜑 → 𝐶 ⊆ 𝐴)
453, 11, 44sssmfmpt 47853 . . . . . . . 8 (𝜑 → (𝑥 ∈ 𝐶 ↦ 𝐵) ∈ (SMblFn‘𝑆))
4645adantr 486 . . . . . . 7 ((𝜑 ∧ 𝑎 ∈ ℝ) → (𝑥 ∈ 𝐶 ↦ 𝐵) ∈ (SMblFn‘𝑆))
4746adantr 486 . . . . . 6 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 0 < 𝑎) → (𝑥 ∈ 𝐶 ↦ 𝐵) ∈ (SMblFn‘𝑆))
4834rprecred 13178 . . . . . . 7 ((𝑎 ∈ ℝ ∧ 0 < 𝑎) → (1 / 𝑎) ∈ ℝ)
4948adantll 727 . . . . . 6 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 0 < 𝑎) → (1 / 𝑎) ∈ ℝ)
5029, 43, 30, 47, 49smfpimgtmpt 47884 . . . . 5 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 0 < 𝑎) → {𝑥 ∈ 𝐶 ∣ (1 / 𝑎) < 𝐵} ∈ (𝑆 ↾t 𝐶))
51 0red 11314 . . . . . . 7 (𝜑 → 0 ∈ ℝ)
521, 3, 19, 45, 51smfpimltmpt 47849 . . . . . 6 (𝜑 → {𝑥 ∈ 𝐶 ∣ 𝐵 < 0} ∈ (𝑆 ↾t 𝐶))
5352ad2antrr 739 . . . . 5 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 0 < 𝑎) → {𝑥 ∈ 𝐶 ∣ 𝐵 < 0} ∈ (𝑆 ↾t 𝐶))
5441, 50, 53saluncld 47451 . . . 4 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 0 < 𝑎) → ({𝑥 ∈ 𝐶 ∣ (1 / 𝑎) < 𝐵} ∪ {𝑥 ∈ 𝐶 ∣ 𝐵 < 0}) ∈ (𝑆 ↾t 𝐶))
5536, 54eqeltrd 2860 . . 3 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 0 < 𝑎) → {𝑥 ∈ 𝐶 ∣ (1 / 𝐵) < 𝑎} ∈ (𝑆 ↾t 𝐶))
56 nfv 1946 . . . . . . . 8 Ⅎ𝑥 𝑎 = 0
571, 56nfan 1931 . . . . . . 7 Ⅎ𝑥(𝜑 ∧ 𝑎 = 0)
58 breq2 5106 . . . . . . . . 9 (𝑎 = 0 → ((1 / 𝐵) < 𝑎 ↔ (1 / 𝐵) < 0))
5958ad2antlr 740 . . . . . . . 8 (((𝜑 ∧ 𝑎 = 0) ∧ 𝑥 ∈ 𝐶) → ((1 / 𝐵) < 𝑎 ↔ (1 / 𝐵) < 0))
6019, 24reclt0 46495 . . . . . . . . . 10 ((𝜑 ∧ 𝑥 ∈ 𝐶) → (𝐵 < 0 ↔ (1 / 𝐵) < 0))
6160bicomd 226 . . . . . . . . 9 ((𝜑 ∧ 𝑥 ∈ 𝐶) → ((1 / 𝐵) < 0 ↔ 𝐵 < 0))
6261adantlr 728 . . . . . . . 8 (((𝜑 ∧ 𝑎 = 0) ∧ 𝑥 ∈ 𝐶) → ((1 / 𝐵) < 0 ↔ 𝐵 < 0))
6359, 62bitrd 282 . . . . . . 7 (((𝜑 ∧ 𝑎 = 0) ∧ 𝑥 ∈ 𝐶) → ((1 / 𝐵) < 𝑎 ↔ 𝐵 < 0))
6457, 63rabbida 3437 . . . . . 6 ((𝜑 ∧ 𝑎 = 0) → {𝑥 ∈ 𝐶 ∣ (1 / 𝐵) < 𝑎} = {𝑥 ∈ 𝐶 ∣ 𝐵 < 0})
6552adantr 486 . . . . . 6 ((𝜑 ∧ 𝑎 = 0) → {𝑥 ∈ 𝐶 ∣ 𝐵 < 0} ∈ (𝑆 ↾t 𝐶))
6664, 65eqeltrd 2860 . . . . 5 ((𝜑 ∧ 𝑎 = 0) → {𝑥 ∈ 𝐶 ∣ (1 / 𝐵) < 𝑎} ∈ (𝑆 ↾t 𝐶))
6766ad4ant14 765 . . . 4 ((((𝜑 ∧ 𝑎 ∈ ℝ) ∧ ¬ 0 < 𝑎) ∧ 𝑎 = 0) → {𝑥 ∈ 𝐶 ∣ (1 / 𝐵) < 𝑎} ∈ (𝑆 ↾t 𝐶))
68 simpll 779 . . . . 5 ((((𝜑 ∧ 𝑎 ∈ ℝ) ∧ ¬ 0 < 𝑎) ∧ ¬ 𝑎 = 0) → (𝜑 ∧ 𝑎 ∈ ℝ))
69 simpll 779 . . . . . . 7 (((𝑎 ∈ ℝ ∧ ¬ 0 < 𝑎) ∧ ¬ 𝑎 = 0) → 𝑎 ∈ ℝ)
70 0red 11314 . . . . . . 7 (((𝑎 ∈ ℝ ∧ ¬ 0 < 𝑎) ∧ ¬ 𝑎 = 0) → 0 ∈ ℝ)
71 neqne 2963 . . . . . . . 8 (¬ 𝑎 = 0 → 𝑎 ≠ 0)
7271adantl 487 . . . . . . 7 (((𝑎 ∈ ℝ ∧ ¬ 0 < 𝑎) ∧ ¬ 𝑎 = 0) → 𝑎 ≠ 0)
73 simplr 781 . . . . . . 7 (((𝑎 ∈ ℝ ∧ ¬ 0 < 𝑎) ∧ ¬ 𝑎 = 0) → ¬ 0 < 𝑎)
7469, 70, 72, 73lttri5d 46408 . . . . . 6 (((𝑎 ∈ ℝ ∧ ¬ 0 < 𝑎) ∧ ¬ 𝑎 = 0) → 𝑎 < 0)
7574adantlll 731 . . . . 5 ((((𝜑 ∧ 𝑎 ∈ ℝ) ∧ ¬ 0 < 𝑎) ∧ ¬ 𝑎 = 0) → 𝑎 < 0)
76 nfv 1946 . . . . . . . 8 Ⅎ𝑥 𝑎 < 0
7727, 76nfan 1931 . . . . . . 7 Ⅎ𝑥((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑎 < 0)
788adantlr 728 . . . . . . . . 9 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑥 ∈ 𝐴) → 𝐵 ∈ ℝ)
7917, 78sylan2 605 . . . . . . . 8 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑥 ∈ 𝐶) → 𝐵 ∈ ℝ)
8079adantlr 728 . . . . . . 7 ((((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑎 < 0) ∧ 𝑥 ∈ 𝐶) → 𝐵 ∈ ℝ)
8123adantl 487 . . . . . . 7 ((((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑎 < 0) ∧ 𝑥 ∈ 𝐶) → 𝐵 ≠ 0)
82 simpr 490 . . . . . . . 8 ((𝜑 ∧ 𝑎 ∈ ℝ) → 𝑎 ∈ ℝ)
8382adantr 486 . . . . . . 7 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑎 < 0) → 𝑎 ∈ ℝ)
84 simpr 490 . . . . . . 7 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑎 < 0) → 𝑎 < 0)
8577, 80, 81, 83, 84pimrecltneg 47827 . . . . . 6 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑎 < 0) → {𝑥 ∈ 𝐶 ∣ (1 / 𝐵) < 𝑎} = {𝑥 ∈ 𝐶 ∣ 𝐵 ∈ ((1 / 𝑎)(,)0)})
8642adantr 486 . . . . . . 7 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑎 < 0) → 𝑆 ∈ SAlg)
8738ad2antrr 739 . . . . . . 7 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑎 < 0) → 𝐶 ∈ V)
8846adantr 486 . . . . . . 7 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑎 < 0) → (𝑥 ∈ 𝐶 ↦ 𝐵) ∈ (SMblFn‘𝑆))
89 1red 11312 . . . . . . . . . 10 ((𝑎 ∈ ℝ ∧ 𝑎 < 0) → 1 ∈ ℝ)
90 simpl 488 . . . . . . . . . 10 ((𝑎 ∈ ℝ ∧ 𝑎 < 0) → 𝑎 ∈ ℝ)
91 lt0ne0 11785 . . . . . . . . . 10 ((𝑎 ∈ ℝ ∧ 𝑎 < 0) → 𝑎 ≠ 0)
9289, 90, 91redivcld 12148 . . . . . . . . 9 ((𝑎 ∈ ℝ ∧ 𝑎 < 0) → (1 / 𝑎) ∈ ℝ)
9392adantll 727 . . . . . . . 8 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑎 < 0) → (1 / 𝑎) ∈ ℝ)
9493rexrd 11362 . . . . . . 7 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑎 < 0) → (1 / 𝑎) ∈ ℝ*)
9551ad2antrr 739 . . . . . . . 8 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑎 < 0) → 0 ∈ ℝ)
9695rexrd 11362 . . . . . . 7 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑎 < 0) → 0 ∈ ℝ*)
9777, 86, 87, 80, 88, 94, 96smfpimioompt 47889 . . . . . 6 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑎 < 0) → {𝑥 ∈ 𝐶 ∣ 𝐵 ∈ ((1 / 𝑎)(,)0)} ∈ (𝑆 ↾t 𝐶))
9885, 97eqeltrd 2860 . . . . 5 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ 𝑎 < 0) → {𝑥 ∈ 𝐶 ∣ (1 / 𝐵) < 𝑎} ∈ (𝑆 ↾t 𝐶))
9968, 75, 98syl2anc 596 . . . 4 ((((𝜑 ∧ 𝑎 ∈ ℝ) ∧ ¬ 0 < 𝑎) ∧ ¬ 𝑎 = 0) → {𝑥 ∈ 𝐶 ∣ (1 / 𝐵) < 𝑎} ∈ (𝑆 ↾t 𝐶))
10067, 99pm2.61dan 825 . . 3 (((𝜑 ∧ 𝑎 ∈ ℝ) ∧ ¬ 0 < 𝑎) → {𝑥 ∈ 𝐶 ∣ (1 / 𝐵) < 𝑎} ∈ (𝑆 ↾t 𝐶))
10155, 100pm2.61dan 825 . 2 ((𝜑 ∧ 𝑎 ∈ ℝ) → {𝑥 ∈ 𝐶 ∣ (1 / 𝐵) < 𝑎} ∈ (𝑆 ↾t 𝐶))
1021, 2, 3, 15, 25, 101issmfdmpt 47851 1 (𝜑 → (𝑥 ∈ 𝐶 ↦ (1 / 𝐵)) ∈ (SMblFn‘𝑆))
Colors of variables:    wff setvar class
This proof depends on syntax axioms:  ¬ wn 3   → wi 4   ↔ wb 209   ∧ wa 401   = wceq 1569  Ⅎwnf 1815   ∈ wcel 2144   ≠ wne 2955  {crab 3412  Vcvv 3450   ⊆ wss 3895   ∪ cun 4149  ∪ cuni 4866   class class class wbr 5102   ↦ cmpt 5185  dom cdm 5650  ‘cfv 6538  (class class class)co 7420  ℝcr 11202  0cc0 11203  1c1 11204   < clt 11346   / cdiv 11976  ℝ+crp 13123  (,)cioo 13479   ↾t crest 17596  SAlgcsalg 47411  SMblFncsmblfn 47798
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1827  ax-4 1841  ax-5 1942  ax-6 1999  ax-7 2040  ax-8 2146  ax-9 2154  ax-10 2177  ax-11 2193  ax-12 2212  ax-ext 2732  ax-rep 5231  ax-sep 5248  ax-nul 5259  ax-pow 5326  ax-pr 5390  ax-un 7751  ax-inf2 9645  ax-cc 10516  ax-cnex 11259  ax-resscn 11260  ax-1cn 11261  ax-icn 11262  ax-addcl 11263  ax-addrcl 11264  ax-mulcl 11265  ax-mulrcl 11266  ax-mulcom 11267  ax-addass 11268  ax-mulass 11269  ax-distr 11270  ax-i2m1 11271  ax-1ne0 11272  ax-1rid 11273  ax-rnegex 11274  ax-rrecex 11275  ax-cnre 11276  ax-pre-lttri 11277  ax-pre-lttrn 11278  ax-pre-ltadd 11279  ax-pre-mulgt0 11280  ax-pre-sup 11281
This proof depends on definitions:  df-bi 210  df-an 402  df-or 862  df-3or 1104  df-3an 1105  df-tru 1572  df-fal 1582  df-ex 1812  df-nf 1816  df-sb 2099  df-mo 2564  df-eu 2594  df-clab 2739  df-cleq 2752  df-clel 2835  df-nfc 2909  df-ne 2956  df-nel 3062  df-ral 3077  df-rex 3087  df-rmo 3365  df-reu 3366  df-rab 3413  df-v 3452  df-sbc 3739  df-csb 3847  df-ss 3896  df-pss 4014  df-dif 4047  df-in 4091  df-un 4151  df-nul 4279  df-if 4482  df-pw 4558  df-sn 4585  df-pr 4587  df-op 4835  df-uni 4867  df-int 4907  df-iun 4952  df-iin 4953  df-br 5103  df-opab 5167  df-mpt 5186  df-tr 5212  df-id 5545  df-eprel 5550  df-po 5558  df-so 5559  df-fr 5603  df-se 5604  df-we 5605  df-xp 5656  df-rel 5657  df-cnv 5658  df-co 5659  df-dm 5660  df-rn 5661  df-res 5662  df-ima 5663  df-pred 6304  df-ord 6365  df-on 6366  df-lim 6367  df-suc 6368  df-iota 6494  df-fun 6540  df-fn 6541  df-f 6542  df-f1 6543  df-fo 6544  df-f1o 6545  df-fv 6546  df-isom 6547  df-riota 7377  df-ov 7423  df-oprab 7424  df-mpo 7425  df-om 7878  df-1st 8001  df-2nd 8002  df-frecs 8302  df-wrecs 8333  df-recs 8382  df-rdg 8421  df-1o 8479  df-2o 8480  df-er 8720  df-map 8852  df-pm 8853  df-en 8977  df-dom 8978  df-sdom 8979  df-fin 8980  df-sup 9437  df-inf 9438  df-card 10023  df-acn 10026  df-pnf 11348  df-mnf 11349  df-xr 11350  df-ltxr 11351  df-le 11352  df-sub 11546  df-neg 11547  df-div 11977  df-nn 12339  df-n0 12610  df-z 12697  df-uz 12969  df-q 13079  df-rp 13124  df-ioo 13483  df-ico 13485  df-fl 13935  df-rest 17598  df-salg 47412  df-smblfn 47799
This theorem is used by:  smfdiv  47900
  Copyright terms: Public domain W3C validator