ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  dvcj GIF version

Theorem dvcj 15377
Description: The derivative of the conjugate of a function. For the (more general) relation version, see dvcjbr 15376. (Contributed by Mario Carneiro, 1-Sep-2014.) (Revised by Mario Carneiro, 10-Feb-2015.)
Assertion
Ref Expression
dvcj ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ 𝐹)) = (∗ ∘ (ℝ D 𝐹)))

Proof of Theorem dvcj
Dummy variables 𝑥 𝑦 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 simpll 527 . . . . 5 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → 𝐹:𝑋⟶ℂ)
2 simplr 528 . . . . 5 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → 𝑋 ⊆ ℝ)
3 simpr 110 . . . . 5 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → 𝑥 ∈ dom (ℝ D 𝐹))
41, 2, 3dvcjbr 15376 . . . 4 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → 𝑥(ℝ D (∗ ∘ 𝐹))(∗‘((ℝ D 𝐹)‘𝑥)))
5 cjf 11353 . . . . . . . . . . . 12 ∗:ℂ⟶ℂ
6 fco 5488 . . . . . . . . . . . 12 ((∗:ℂ⟶ℂ ∧ 𝐹:𝑋⟶ℂ) → (∗ ∘ 𝐹):𝑋⟶ℂ)
75, 6mpan 424 . . . . . . . . . . 11 (𝐹:𝑋⟶ℂ → (∗ ∘ 𝐹):𝑋⟶ℂ)
87adantr 276 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ 𝐹):𝑋⟶ℂ)
97fdmd 5479 . . . . . . . . . . . 12 (𝐹:𝑋⟶ℂ → dom (∗ ∘ 𝐹) = 𝑋)
109adantr 276 . . . . . . . . . . 11 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (∗ ∘ 𝐹) = 𝑋)
1110feq2d 5460 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → ((∗ ∘ 𝐹):dom (∗ ∘ 𝐹)⟶ℂ ↔ (∗ ∘ 𝐹):𝑋⟶ℂ))
128, 11mpbird 167 . . . . . . . . 9 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ 𝐹):dom (∗ ∘ 𝐹)⟶ℂ)
13 simpr 110 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → 𝑋 ⊆ ℝ)
1410, 13eqsstrd 3260 . . . . . . . . 9 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (∗ ∘ 𝐹) ⊆ ℝ)
15 cnex 8119 . . . . . . . . . 10 ℂ ∈ V
16 reex 8129 . . . . . . . . . 10 ℝ ∈ V
1715, 16elpm2 6825 . . . . . . . . 9 ((∗ ∘ 𝐹) ∈ (ℂ ↑pm ℝ) ↔ ((∗ ∘ 𝐹):dom (∗ ∘ 𝐹)⟶ℂ ∧ dom (∗ ∘ 𝐹) ⊆ ℝ))
1812, 14, 17sylanbrc 417 . . . . . . . 8 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ 𝐹) ∈ (ℂ ↑pm ℝ))
19 dvfpm 15357 . . . . . . . 8 ((∗ ∘ 𝐹) ∈ (ℂ ↑pm ℝ) → (ℝ D (∗ ∘ 𝐹)):dom (ℝ D (∗ ∘ 𝐹))⟶ℂ)
2018, 19syl 14 . . . . . . 7 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ 𝐹)):dom (ℝ D (∗ ∘ 𝐹))⟶ℂ)
2120ffund 5476 . . . . . 6 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → Fun (ℝ D (∗ ∘ 𝐹)))
22 funbrfv 5669 . . . . . 6 (Fun (ℝ D (∗ ∘ 𝐹)) → (𝑥(ℝ D (∗ ∘ 𝐹))(∗‘((ℝ D 𝐹)‘𝑥)) → ((ℝ D (∗ ∘ 𝐹))‘𝑥) = (∗‘((ℝ D 𝐹)‘𝑥))))
2321, 22syl 14 . . . . 5 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (𝑥(ℝ D (∗ ∘ 𝐹))(∗‘((ℝ D 𝐹)‘𝑥)) → ((ℝ D (∗ ∘ 𝐹))‘𝑥) = (∗‘((ℝ D 𝐹)‘𝑥))))
2423adantr 276 . . . 4 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → (𝑥(ℝ D (∗ ∘ 𝐹))(∗‘((ℝ D 𝐹)‘𝑥)) → ((ℝ D (∗ ∘ 𝐹))‘𝑥) = (∗‘((ℝ D 𝐹)‘𝑥))))
254, 24mpd 13 . . 3 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → ((ℝ D (∗ ∘ 𝐹))‘𝑥) = (∗‘((ℝ D 𝐹)‘𝑥)))
2625mpteq2dva 4173 . 2 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (𝑥 ∈ dom (ℝ D 𝐹) ↦ ((ℝ D (∗ ∘ 𝐹))‘𝑥)) = (𝑥 ∈ dom (ℝ D 𝐹) ↦ (∗‘((ℝ D 𝐹)‘𝑥))))
27 vex 2802 . . . . . . . . . 10 𝑥 ∈ V
2820ffvelcdmda 5769 . . . . . . . . . . 11 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → ((ℝ D (∗ ∘ 𝐹))‘𝑥) ∈ ℂ)
2928cjcld 11446 . . . . . . . . . 10 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → (∗‘((ℝ D (∗ ∘ 𝐹))‘𝑥)) ∈ ℂ)
307ad2antrr 488 . . . . . . . . . . 11 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → (∗ ∘ 𝐹):𝑋⟶ℂ)
31 simplr 528 . . . . . . . . . . 11 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → 𝑋 ⊆ ℝ)
32 simpr 110 . . . . . . . . . . 11 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹)))
3330, 31, 32dvcjbr 15376 . . . . . . . . . 10 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → 𝑥(ℝ D (∗ ∘ (∗ ∘ 𝐹)))(∗‘((ℝ D (∗ ∘ 𝐹))‘𝑥)))
34 breldmg 4928 . . . . . . . . . 10 ((𝑥 ∈ V ∧ (∗‘((ℝ D (∗ ∘ 𝐹))‘𝑥)) ∈ ℂ ∧ 𝑥(ℝ D (∗ ∘ (∗ ∘ 𝐹)))(∗‘((ℝ D (∗ ∘ 𝐹))‘𝑥))) → 𝑥 ∈ dom (ℝ D (∗ ∘ (∗ ∘ 𝐹))))
3527, 29, 33, 34mp3an2i 1376 . . . . . . . . 9 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → 𝑥 ∈ dom (ℝ D (∗ ∘ (∗ ∘ 𝐹))))
3635ex 115 . . . . . . . 8 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹)) → 𝑥 ∈ dom (ℝ D (∗ ∘ (∗ ∘ 𝐹)))))
3736ssrdv 3230 . . . . . . 7 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (ℝ D (∗ ∘ 𝐹)) ⊆ dom (ℝ D (∗ ∘ (∗ ∘ 𝐹))))
38 ffvelcdm 5767 . . . . . . . . . . . . 13 ((𝐹:𝑋⟶ℂ ∧ 𝑥𝑋) → (𝐹𝑥) ∈ ℂ)
3938adantlr 477 . . . . . . . . . . . 12 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥𝑋) → (𝐹𝑥) ∈ ℂ)
4039cjcjd 11449 . . . . . . . . . . 11 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥𝑋) → (∗‘(∗‘(𝐹𝑥))) = (𝐹𝑥))
4140mpteq2dva 4173 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (𝑥𝑋 ↦ (∗‘(∗‘(𝐹𝑥)))) = (𝑥𝑋 ↦ (𝐹𝑥)))
4239cjcld 11446 . . . . . . . . . . 11 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥𝑋) → (∗‘(𝐹𝑥)) ∈ ℂ)
43 simpl 109 . . . . . . . . . . . . 13 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → 𝐹:𝑋⟶ℂ)
4443feqmptd 5686 . . . . . . . . . . . 12 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → 𝐹 = (𝑥𝑋 ↦ (𝐹𝑥)))
455a1i 9 . . . . . . . . . . . . 13 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → ∗:ℂ⟶ℂ)
4645feqmptd 5686 . . . . . . . . . . . 12 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → ∗ = (𝑦 ∈ ℂ ↦ (∗‘𝑦)))
47 fveq2 5626 . . . . . . . . . . . 12 (𝑦 = (𝐹𝑥) → (∗‘𝑦) = (∗‘(𝐹𝑥)))
4839, 44, 46, 47fmptco 5800 . . . . . . . . . . 11 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ 𝐹) = (𝑥𝑋 ↦ (∗‘(𝐹𝑥))))
49 fveq2 5626 . . . . . . . . . . 11 (𝑦 = (∗‘(𝐹𝑥)) → (∗‘𝑦) = (∗‘(∗‘(𝐹𝑥))))
5042, 48, 46, 49fmptco 5800 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ (∗ ∘ 𝐹)) = (𝑥𝑋 ↦ (∗‘(∗‘(𝐹𝑥)))))
5141, 50, 443eqtr4d 2272 . . . . . . . . 9 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ (∗ ∘ 𝐹)) = 𝐹)
5251oveq2d 6016 . . . . . . . 8 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ (∗ ∘ 𝐹))) = (ℝ D 𝐹))
5352dmeqd 4924 . . . . . . 7 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (ℝ D (∗ ∘ (∗ ∘ 𝐹))) = dom (ℝ D 𝐹))
5437, 53sseqtrd 3262 . . . . . 6 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (ℝ D (∗ ∘ 𝐹)) ⊆ dom (ℝ D 𝐹))
55 ffdm 5493 . . . . . . . . . . . . 13 (𝐹:𝑋⟶ℂ → (𝐹:dom 𝐹⟶ℂ ∧ dom 𝐹𝑋))
5655simpld 112 . . . . . . . . . . . 12 (𝐹:𝑋⟶ℂ → 𝐹:dom 𝐹⟶ℂ)
5756adantr 276 . . . . . . . . . . 11 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → 𝐹:dom 𝐹⟶ℂ)
58 fdm 5478 . . . . . . . . . . . . 13 (𝐹:𝑋⟶ℂ → dom 𝐹 = 𝑋)
5958adantr 276 . . . . . . . . . . . 12 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom 𝐹 = 𝑋)
6059, 13eqsstrd 3260 . . . . . . . . . . 11 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom 𝐹 ⊆ ℝ)
6115, 16elpm2 6825 . . . . . . . . . . 11 (𝐹 ∈ (ℂ ↑pm ℝ) ↔ (𝐹:dom 𝐹⟶ℂ ∧ dom 𝐹 ⊆ ℝ))
6257, 60, 61sylanbrc 417 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → 𝐹 ∈ (ℂ ↑pm ℝ))
63 dvfpm 15357 . . . . . . . . . 10 (𝐹 ∈ (ℂ ↑pm ℝ) → (ℝ D 𝐹):dom (ℝ D 𝐹)⟶ℂ)
6462, 63syl 14 . . . . . . . . 9 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D 𝐹):dom (ℝ D 𝐹)⟶ℂ)
6564ffvelcdmda 5769 . . . . . . . 8 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → ((ℝ D 𝐹)‘𝑥) ∈ ℂ)
6665cjcld 11446 . . . . . . 7 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → (∗‘((ℝ D 𝐹)‘𝑥)) ∈ ℂ)
67 breldmg 4928 . . . . . . 7 ((𝑥 ∈ V ∧ (∗‘((ℝ D 𝐹)‘𝑥)) ∈ ℂ ∧ 𝑥(ℝ D (∗ ∘ 𝐹))(∗‘((ℝ D 𝐹)‘𝑥))) → 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹)))
6827, 66, 4, 67mp3an2i 1376 . . . . . 6 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹)))
6954, 68eqelssd 3243 . . . . 5 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (ℝ D (∗ ∘ 𝐹)) = dom (ℝ D 𝐹))
7069feq2d 5460 . . . 4 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → ((ℝ D (∗ ∘ 𝐹)):dom (ℝ D (∗ ∘ 𝐹))⟶ℂ ↔ (ℝ D (∗ ∘ 𝐹)):dom (ℝ D 𝐹)⟶ℂ))
7120, 70mpbid 147 . . 3 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ 𝐹)):dom (ℝ D 𝐹)⟶ℂ)
7271feqmptd 5686 . 2 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ 𝐹)) = (𝑥 ∈ dom (ℝ D 𝐹) ↦ ((ℝ D (∗ ∘ 𝐹))‘𝑥)))
7364feqmptd 5686 . . 3 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D 𝐹) = (𝑥 ∈ dom (ℝ D 𝐹) ↦ ((ℝ D 𝐹)‘𝑥)))
74 fveq2 5626 . . 3 (𝑦 = ((ℝ D 𝐹)‘𝑥) → (∗‘𝑦) = (∗‘((ℝ D 𝐹)‘𝑥)))
7565, 73, 46, 74fmptco 5800 . 2 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ (ℝ D 𝐹)) = (𝑥 ∈ dom (ℝ D 𝐹) ↦ (∗‘((ℝ D 𝐹)‘𝑥))))
7626, 72, 753eqtr4d 2272 1 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ 𝐹)) = (∗ ∘ (ℝ D 𝐹)))
Colors of variables: wff set class
Syntax hints:  wi 4  wa 104   = wceq 1395  wcel 2200  Vcvv 2799  wss 3197   class class class wbr 4082  cmpt 4144  dom cdm 4718  ccom 4722  Fun wfun 5311  wf 5313  cfv 5317  (class class class)co 6000  pm cpm 6794  cc 7993  cr 7994  ccj 11345   D cdv 15323
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 617  ax-in2 618  ax-io 714  ax-5 1493  ax-7 1494  ax-gen 1495  ax-ie1 1539  ax-ie2 1540  ax-8 1550  ax-10 1551  ax-11 1552  ax-i12 1553  ax-bndl 1555  ax-4 1556  ax-17 1572  ax-i9 1576  ax-ial 1580  ax-i5r 1581  ax-13 2202  ax-14 2203  ax-ext 2211  ax-coll 4198  ax-sep 4201  ax-nul 4209  ax-pow 4257  ax-pr 4292  ax-un 4523  ax-setind 4628  ax-iinf 4679  ax-cnex 8086  ax-resscn 8087  ax-1cn 8088  ax-1re 8089  ax-icn 8090  ax-addcl 8091  ax-addrcl 8092  ax-mulcl 8093  ax-mulrcl 8094  ax-addcom 8095  ax-mulcom 8096  ax-addass 8097  ax-mulass 8098  ax-distr 8099  ax-i2m1 8100  ax-0lt1 8101  ax-1rid 8102  ax-0id 8103  ax-rnegex 8104  ax-precex 8105  ax-cnre 8106  ax-pre-ltirr 8107  ax-pre-ltwlin 8108  ax-pre-lttrn 8109  ax-pre-apti 8110  ax-pre-ltadd 8111  ax-pre-mulgt0 8112  ax-pre-mulext 8113  ax-arch 8114  ax-caucvg 8115
This theorem depends on definitions:  df-bi 117  df-stab 836  df-dc 840  df-3or 1003  df-3an 1004  df-tru 1398  df-fal 1401  df-nf 1507  df-sb 1809  df-eu 2080  df-mo 2081  df-clab 2216  df-cleq 2222  df-clel 2225  df-nfc 2361  df-ne 2401  df-nel 2496  df-ral 2513  df-rex 2514  df-reu 2515  df-rmo 2516  df-rab 2517  df-v 2801  df-sbc 3029  df-csb 3125  df-dif 3199  df-un 3201  df-in 3203  df-ss 3210  df-nul 3492  df-if 3603  df-pw 3651  df-sn 3672  df-pr 3673  df-op 3675  df-uni 3888  df-int 3923  df-iun 3966  df-br 4083  df-opab 4145  df-mpt 4146  df-tr 4182  df-id 4383  df-po 4386  df-iso 4387  df-iord 4456  df-on 4458  df-ilim 4459  df-suc 4461  df-iom 4682  df-xp 4724  df-rel 4725  df-cnv 4726  df-co 4727  df-dm 4728  df-rn 4729  df-res 4730  df-ima 4731  df-iota 5277  df-fun 5319  df-fn 5320  df-f 5321  df-f1 5322  df-fo 5323  df-f1o 5324  df-fv 5325  df-isom 5326  df-riota 5953  df-ov 6003  df-oprab 6004  df-mpo 6005  df-1st 6284  df-2nd 6285  df-recs 6449  df-frec 6535  df-map 6795  df-pm 6796  df-sup 7147  df-inf 7148  df-pnf 8179  df-mnf 8180  df-xr 8181  df-ltxr 8182  df-le 8183  df-sub 8315  df-neg 8316  df-reap 8718  df-ap 8725  df-div 8816  df-inn 9107  df-2 9165  df-3 9166  df-4 9167  df-n0 9366  df-z 9443  df-uz 9719  df-q 9811  df-rp 9846  df-xneg 9964  df-xadd 9965  df-ioo 10084  df-seqfrec 10665  df-exp 10756  df-cj 11348  df-re 11349  df-im 11350  df-rsqrt 11504  df-abs 11505  df-rest 13269  df-topgen 13288  df-psmet 14501  df-xmet 14502  df-met 14503  df-bl 14504  df-mopn 14505  df-top 14666  df-topon 14679  df-bases 14711  df-ntr 14764  df-cn 14856  df-cnp 14857  df-cncf 15239  df-limced 15324  df-dvap 15325
This theorem is referenced by:  dvfre  15378  dvmptcjx  15392
  Copyright terms: Public domain W3C validator