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

Theorem dvcj 15439
Description: The derivative of the conjugate of a function. For the (more general) relation version, see dvcjbr 15438. (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 529 . . . . 5 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → 𝑋 ⊆ ℝ)
3 simpr 110 . . . . 5 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → 𝑥 ∈ dom (ℝ D 𝐹))
41, 2, 3dvcjbr 15438 . . . 4 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → 𝑥(ℝ D (∗ ∘ 𝐹))(∗‘((ℝ D 𝐹)‘𝑥)))
5 cjf 11412 . . . . . . . . . . . 12 ∗:ℂ⟶ℂ
6 fco 5500 . . . . . . . . . . . 12 ((∗:ℂ⟶ℂ ∧ 𝐹:𝑋⟶ℂ) → (∗ ∘ 𝐹):𝑋⟶ℂ)
75, 6mpan 424 . . . . . . . . . . 11 (𝐹:𝑋⟶ℂ → (∗ ∘ 𝐹):𝑋⟶ℂ)
87adantr 276 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ 𝐹):𝑋⟶ℂ)
97fdmd 5489 . . . . . . . . . . . 12 (𝐹:𝑋⟶ℂ → dom (∗ ∘ 𝐹) = 𝑋)
109adantr 276 . . . . . . . . . . 11 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (∗ ∘ 𝐹) = 𝑋)
1110feq2d 5470 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → ((∗ ∘ 𝐹):dom (∗ ∘ 𝐹)⟶ℂ ↔ (∗ ∘ 𝐹):𝑋⟶ℂ))
128, 11mpbird 167 . . . . . . . . 9 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ 𝐹):dom (∗ ∘ 𝐹)⟶ℂ)
13 simpr 110 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → 𝑋 ⊆ ℝ)
1410, 13eqsstrd 3263 . . . . . . . . 9 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (∗ ∘ 𝐹) ⊆ ℝ)
15 cnex 8156 . . . . . . . . . 10 ℂ ∈ V
16 reex 8166 . . . . . . . . . 10 ℝ ∈ V
1715, 16elpm2 6849 . . . . . . . . 9 ((∗ ∘ 𝐹) ∈ (ℂ ↑pm ℝ) ↔ ((∗ ∘ 𝐹):dom (∗ ∘ 𝐹)⟶ℂ ∧ dom (∗ ∘ 𝐹) ⊆ ℝ))
1812, 14, 17sylanbrc 417 . . . . . . . 8 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ 𝐹) ∈ (ℂ ↑pm ℝ))
19 dvfpm 15419 . . . . . . . 8 ((∗ ∘ 𝐹) ∈ (ℂ ↑pm ℝ) → (ℝ D (∗ ∘ 𝐹)):dom (ℝ D (∗ ∘ 𝐹))⟶ℂ)
2018, 19syl 14 . . . . . . 7 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ 𝐹)):dom (ℝ D (∗ ∘ 𝐹))⟶ℂ)
2120ffund 5486 . . . . . 6 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → Fun (ℝ D (∗ ∘ 𝐹)))
22 funbrfv 5682 . . . . . 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 4179 . 2 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (𝑥 ∈ dom (ℝ D 𝐹) ↦ ((ℝ D (∗ ∘ 𝐹))‘𝑥)) = (𝑥 ∈ dom (ℝ D 𝐹) ↦ (∗‘((ℝ D 𝐹)‘𝑥))))
27 vex 2805 . . . . . . . . . 10 𝑥 ∈ V
2820ffvelcdmda 5782 . . . . . . . . . . 11 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → ((ℝ D (∗ ∘ 𝐹))‘𝑥) ∈ ℂ)
2928cjcld 11505 . . . . . . . . . 10 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → (∗‘((ℝ D (∗ ∘ 𝐹))‘𝑥)) ∈ ℂ)
307ad2antrr 488 . . . . . . . . . . 11 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → (∗ ∘ 𝐹):𝑋⟶ℂ)
31 simplr 529 . . . . . . . . . . 11 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → 𝑋 ⊆ ℝ)
32 simpr 110 . . . . . . . . . . 11 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹)))
3330, 31, 32dvcjbr 15438 . . . . . . . . . 10 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → 𝑥(ℝ D (∗ ∘ (∗ ∘ 𝐹)))(∗‘((ℝ D (∗ ∘ 𝐹))‘𝑥)))
34 breldmg 4937 . . . . . . . . . 10 ((𝑥 ∈ V ∧ (∗‘((ℝ D (∗ ∘ 𝐹))‘𝑥)) ∈ ℂ ∧ 𝑥(ℝ D (∗ ∘ (∗ ∘ 𝐹)))(∗‘((ℝ D (∗ ∘ 𝐹))‘𝑥))) → 𝑥 ∈ dom (ℝ D (∗ ∘ (∗ ∘ 𝐹))))
3527, 29, 33, 34mp3an2i 1378 . . . . . . . . 9 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → 𝑥 ∈ dom (ℝ D (∗ ∘ (∗ ∘ 𝐹))))
3635ex 115 . . . . . . . 8 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹)) → 𝑥 ∈ dom (ℝ D (∗ ∘ (∗ ∘ 𝐹)))))
3736ssrdv 3233 . . . . . . 7 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (ℝ D (∗ ∘ 𝐹)) ⊆ dom (ℝ D (∗ ∘ (∗ ∘ 𝐹))))
38 ffvelcdm 5780 . . . . . . . . . . . . 13 ((𝐹:𝑋⟶ℂ ∧ 𝑥𝑋) → (𝐹𝑥) ∈ ℂ)
3938adantlr 477 . . . . . . . . . . . 12 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥𝑋) → (𝐹𝑥) ∈ ℂ)
4039cjcjd 11508 . . . . . . . . . . 11 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥𝑋) → (∗‘(∗‘(𝐹𝑥))) = (𝐹𝑥))
4140mpteq2dva 4179 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (𝑥𝑋 ↦ (∗‘(∗‘(𝐹𝑥)))) = (𝑥𝑋 ↦ (𝐹𝑥)))
4239cjcld 11505 . . . . . . . . . . 11 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥𝑋) → (∗‘(𝐹𝑥)) ∈ ℂ)
43 simpl 109 . . . . . . . . . . . . 13 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → 𝐹:𝑋⟶ℂ)
4443feqmptd 5699 . . . . . . . . . . . 12 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → 𝐹 = (𝑥𝑋 ↦ (𝐹𝑥)))
455a1i 9 . . . . . . . . . . . . 13 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → ∗:ℂ⟶ℂ)
4645feqmptd 5699 . . . . . . . . . . . 12 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → ∗ = (𝑦 ∈ ℂ ↦ (∗‘𝑦)))
47 fveq2 5639 . . . . . . . . . . . 12 (𝑦 = (𝐹𝑥) → (∗‘𝑦) = (∗‘(𝐹𝑥)))
4839, 44, 46, 47fmptco 5813 . . . . . . . . . . 11 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ 𝐹) = (𝑥𝑋 ↦ (∗‘(𝐹𝑥))))
49 fveq2 5639 . . . . . . . . . . 11 (𝑦 = (∗‘(𝐹𝑥)) → (∗‘𝑦) = (∗‘(∗‘(𝐹𝑥))))
5042, 48, 46, 49fmptco 5813 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ (∗ ∘ 𝐹)) = (𝑥𝑋 ↦ (∗‘(∗‘(𝐹𝑥)))))
5141, 50, 443eqtr4d 2274 . . . . . . . . 9 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ (∗ ∘ 𝐹)) = 𝐹)
5251oveq2d 6034 . . . . . . . 8 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ (∗ ∘ 𝐹))) = (ℝ D 𝐹))
5352dmeqd 4933 . . . . . . 7 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (ℝ D (∗ ∘ (∗ ∘ 𝐹))) = dom (ℝ D 𝐹))
5437, 53sseqtrd 3265 . . . . . 6 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (ℝ D (∗ ∘ 𝐹)) ⊆ dom (ℝ D 𝐹))
55 ffdm 5505 . . . . . . . . . . . . 13 (𝐹:𝑋⟶ℂ → (𝐹:dom 𝐹⟶ℂ ∧ dom 𝐹𝑋))
5655simpld 112 . . . . . . . . . . . 12 (𝐹:𝑋⟶ℂ → 𝐹:dom 𝐹⟶ℂ)
5756adantr 276 . . . . . . . . . . 11 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → 𝐹:dom 𝐹⟶ℂ)
58 fdm 5488 . . . . . . . . . . . . 13 (𝐹:𝑋⟶ℂ → dom 𝐹 = 𝑋)
5958adantr 276 . . . . . . . . . . . 12 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom 𝐹 = 𝑋)
6059, 13eqsstrd 3263 . . . . . . . . . . 11 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom 𝐹 ⊆ ℝ)
6115, 16elpm2 6849 . . . . . . . . . . 11 (𝐹 ∈ (ℂ ↑pm ℝ) ↔ (𝐹:dom 𝐹⟶ℂ ∧ dom 𝐹 ⊆ ℝ))
6257, 60, 61sylanbrc 417 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → 𝐹 ∈ (ℂ ↑pm ℝ))
63 dvfpm 15419 . . . . . . . . . 10 (𝐹 ∈ (ℂ ↑pm ℝ) → (ℝ D 𝐹):dom (ℝ D 𝐹)⟶ℂ)
6462, 63syl 14 . . . . . . . . 9 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D 𝐹):dom (ℝ D 𝐹)⟶ℂ)
6564ffvelcdmda 5782 . . . . . . . 8 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → ((ℝ D 𝐹)‘𝑥) ∈ ℂ)
6665cjcld 11505 . . . . . . 7 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → (∗‘((ℝ D 𝐹)‘𝑥)) ∈ ℂ)
67 breldmg 4937 . . . . . . 7 ((𝑥 ∈ V ∧ (∗‘((ℝ D 𝐹)‘𝑥)) ∈ ℂ ∧ 𝑥(ℝ D (∗ ∘ 𝐹))(∗‘((ℝ D 𝐹)‘𝑥))) → 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹)))
6827, 66, 4, 67mp3an2i 1378 . . . . . 6 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹)))
6954, 68eqelssd 3246 . . . . 5 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (ℝ D (∗ ∘ 𝐹)) = dom (ℝ D 𝐹))
7069feq2d 5470 . . . 4 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → ((ℝ D (∗ ∘ 𝐹)):dom (ℝ D (∗ ∘ 𝐹))⟶ℂ ↔ (ℝ D (∗ ∘ 𝐹)):dom (ℝ D 𝐹)⟶ℂ))
7120, 70mpbid 147 . . 3 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ 𝐹)):dom (ℝ D 𝐹)⟶ℂ)
7271feqmptd 5699 . 2 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ 𝐹)) = (𝑥 ∈ dom (ℝ D 𝐹) ↦ ((ℝ D (∗ ∘ 𝐹))‘𝑥)))
7364feqmptd 5699 . . 3 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D 𝐹) = (𝑥 ∈ dom (ℝ D 𝐹) ↦ ((ℝ D 𝐹)‘𝑥)))
74 fveq2 5639 . . 3 (𝑦 = ((ℝ D 𝐹)‘𝑥) → (∗‘𝑦) = (∗‘((ℝ D 𝐹)‘𝑥)))
7565, 73, 46, 74fmptco 5813 . 2 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ (ℝ D 𝐹)) = (𝑥 ∈ dom (ℝ D 𝐹) ↦ (∗‘((ℝ D 𝐹)‘𝑥))))
7626, 72, 753eqtr4d 2274 1 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ 𝐹)) = (∗ ∘ (ℝ D 𝐹)))
Colors of variables: wff set class
Syntax hints:  wi 4  wa 104   = wceq 1397  wcel 2202  Vcvv 2802  wss 3200   class class class wbr 4088  cmpt 4150  dom cdm 4725  ccom 4729  Fun wfun 5320  wf 5322  cfv 5326  (class class class)co 6018  pm cpm 6818  cc 8030  cr 8031  ccj 11404   D cdv 15385
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 619  ax-in2 620  ax-io 716  ax-5 1495  ax-7 1496  ax-gen 1497  ax-ie1 1541  ax-ie2 1542  ax-8 1552  ax-10 1553  ax-11 1554  ax-i12 1555  ax-bndl 1557  ax-4 1558  ax-17 1574  ax-i9 1578  ax-ial 1582  ax-i5r 1583  ax-13 2204  ax-14 2205  ax-ext 2213  ax-coll 4204  ax-sep 4207  ax-nul 4215  ax-pow 4264  ax-pr 4299  ax-un 4530  ax-setind 4635  ax-iinf 4686  ax-cnex 8123  ax-resscn 8124  ax-1cn 8125  ax-1re 8126  ax-icn 8127  ax-addcl 8128  ax-addrcl 8129  ax-mulcl 8130  ax-mulrcl 8131  ax-addcom 8132  ax-mulcom 8133  ax-addass 8134  ax-mulass 8135  ax-distr 8136  ax-i2m1 8137  ax-0lt1 8138  ax-1rid 8139  ax-0id 8140  ax-rnegex 8141  ax-precex 8142  ax-cnre 8143  ax-pre-ltirr 8144  ax-pre-ltwlin 8145  ax-pre-lttrn 8146  ax-pre-apti 8147  ax-pre-ltadd 8148  ax-pre-mulgt0 8149  ax-pre-mulext 8150  ax-arch 8151  ax-caucvg 8152
This theorem depends on definitions:  df-bi 117  df-stab 838  df-dc 842  df-3or 1005  df-3an 1006  df-tru 1400  df-fal 1403  df-nf 1509  df-sb 1811  df-eu 2082  df-mo 2083  df-clab 2218  df-cleq 2224  df-clel 2227  df-nfc 2363  df-ne 2403  df-nel 2498  df-ral 2515  df-rex 2516  df-reu 2517  df-rmo 2518  df-rab 2519  df-v 2804  df-sbc 3032  df-csb 3128  df-dif 3202  df-un 3204  df-in 3206  df-ss 3213  df-nul 3495  df-if 3606  df-pw 3654  df-sn 3675  df-pr 3676  df-op 3678  df-uni 3894  df-int 3929  df-iun 3972  df-br 4089  df-opab 4151  df-mpt 4152  df-tr 4188  df-id 4390  df-po 4393  df-iso 4394  df-iord 4463  df-on 4465  df-ilim 4466  df-suc 4468  df-iom 4689  df-xp 4731  df-rel 4732  df-cnv 4733  df-co 4734  df-dm 4735  df-rn 4736  df-res 4737  df-ima 4738  df-iota 5286  df-fun 5328  df-fn 5329  df-f 5330  df-f1 5331  df-fo 5332  df-f1o 5333  df-fv 5334  df-isom 5335  df-riota 5971  df-ov 6021  df-oprab 6022  df-mpo 6023  df-1st 6303  df-2nd 6304  df-recs 6471  df-frec 6557  df-map 6819  df-pm 6820  df-sup 7183  df-inf 7184  df-pnf 8216  df-mnf 8217  df-xr 8218  df-ltxr 8219  df-le 8220  df-sub 8352  df-neg 8353  df-reap 8755  df-ap 8762  df-div 8853  df-inn 9144  df-2 9202  df-3 9203  df-4 9204  df-n0 9403  df-z 9480  df-uz 9756  df-q 9854  df-rp 9889  df-xneg 10007  df-xadd 10008  df-ioo 10127  df-seqfrec 10711  df-exp 10802  df-cj 11407  df-re 11408  df-im 11409  df-rsqrt 11563  df-abs 11564  df-rest 13329  df-topgen 13348  df-psmet 14563  df-xmet 14564  df-met 14565  df-bl 14566  df-mopn 14567  df-top 14728  df-topon 14741  df-bases 14773  df-ntr 14826  df-cn 14918  df-cnp 14919  df-cncf 15301  df-limced 15386  df-dvap 15387
This theorem is referenced by:  dvfre  15440  dvmptcjx  15454
  Copyright terms: Public domain W3C validator