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

Theorem dvcj 13833
Description: The derivative of the conjugate of a function. For the (more general) relation version, see dvcjbr 13832. (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 13832 . . . 4 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → 𝑥(ℝ D (∗ ∘ 𝐹))(∗‘((ℝ D 𝐹)‘𝑥)))
5 cjf 10837 . . . . . . . . . . . 12 ∗:ℂ⟶ℂ
6 fco 5377 . . . . . . . . . . . 12 ((∗:ℂ⟶ℂ ∧ 𝐹:𝑋⟶ℂ) → (∗ ∘ 𝐹):𝑋⟶ℂ)
75, 6mpan 424 . . . . . . . . . . 11 (𝐹:𝑋⟶ℂ → (∗ ∘ 𝐹):𝑋⟶ℂ)
87adantr 276 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ 𝐹):𝑋⟶ℂ)
97fdmd 5368 . . . . . . . . . . . 12 (𝐹:𝑋⟶ℂ → dom (∗ ∘ 𝐹) = 𝑋)
109adantr 276 . . . . . . . . . . 11 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (∗ ∘ 𝐹) = 𝑋)
1110feq2d 5349 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → ((∗ ∘ 𝐹):dom (∗ ∘ 𝐹)⟶ℂ ↔ (∗ ∘ 𝐹):𝑋⟶ℂ))
128, 11mpbird 167 . . . . . . . . 9 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ 𝐹):dom (∗ ∘ 𝐹)⟶ℂ)
13 simpr 110 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → 𝑋 ⊆ ℝ)
1410, 13eqsstrd 3191 . . . . . . . . 9 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (∗ ∘ 𝐹) ⊆ ℝ)
15 cnex 7923 . . . . . . . . . 10 ℂ ∈ V
16 reex 7933 . . . . . . . . . 10 ℝ ∈ V
1715, 16elpm2 6674 . . . . . . . . 9 ((∗ ∘ 𝐹) ∈ (ℂ ↑pm ℝ) ↔ ((∗ ∘ 𝐹):dom (∗ ∘ 𝐹)⟶ℂ ∧ dom (∗ ∘ 𝐹) ⊆ ℝ))
1812, 14, 17sylanbrc 417 . . . . . . . 8 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ 𝐹) ∈ (ℂ ↑pm ℝ))
19 dvfpm 13818 . . . . . . . 8 ((∗ ∘ 𝐹) ∈ (ℂ ↑pm ℝ) → (ℝ D (∗ ∘ 𝐹)):dom (ℝ D (∗ ∘ 𝐹))⟶ℂ)
2018, 19syl 14 . . . . . . 7 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ 𝐹)):dom (ℝ D (∗ ∘ 𝐹))⟶ℂ)
2120ffund 5365 . . . . . 6 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → Fun (ℝ D (∗ ∘ 𝐹)))
22 funbrfv 5550 . . . . . 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 4090 . 2 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (𝑥 ∈ dom (ℝ D 𝐹) ↦ ((ℝ D (∗ ∘ 𝐹))‘𝑥)) = (𝑥 ∈ dom (ℝ D 𝐹) ↦ (∗‘((ℝ D 𝐹)‘𝑥))))
27 vex 2740 . . . . . . . . . 10 𝑥 ∈ V
2820ffvelcdmda 5647 . . . . . . . . . . 11 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → ((ℝ D (∗ ∘ 𝐹))‘𝑥) ∈ ℂ)
2928cjcld 10930 . . . . . . . . . 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 13832 . . . . . . . . . 10 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → 𝑥(ℝ D (∗ ∘ (∗ ∘ 𝐹)))(∗‘((ℝ D (∗ ∘ 𝐹))‘𝑥)))
34 breldmg 4829 . . . . . . . . . 10 ((𝑥 ∈ V ∧ (∗‘((ℝ D (∗ ∘ 𝐹))‘𝑥)) ∈ ℂ ∧ 𝑥(ℝ D (∗ ∘ (∗ ∘ 𝐹)))(∗‘((ℝ D (∗ ∘ 𝐹))‘𝑥))) → 𝑥 ∈ dom (ℝ D (∗ ∘ (∗ ∘ 𝐹))))
3527, 29, 33, 34mp3an2i 1342 . . . . . . . . 9 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹))) → 𝑥 ∈ dom (ℝ D (∗ ∘ (∗ ∘ 𝐹))))
3635ex 115 . . . . . . . 8 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹)) → 𝑥 ∈ dom (ℝ D (∗ ∘ (∗ ∘ 𝐹)))))
3736ssrdv 3161 . . . . . . 7 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (ℝ D (∗ ∘ 𝐹)) ⊆ dom (ℝ D (∗ ∘ (∗ ∘ 𝐹))))
38 ffvelcdm 5645 . . . . . . . . . . . . 13 ((𝐹:𝑋⟶ℂ ∧ 𝑥𝑋) → (𝐹𝑥) ∈ ℂ)
3938adantlr 477 . . . . . . . . . . . 12 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥𝑋) → (𝐹𝑥) ∈ ℂ)
4039cjcjd 10933 . . . . . . . . . . 11 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥𝑋) → (∗‘(∗‘(𝐹𝑥))) = (𝐹𝑥))
4140mpteq2dva 4090 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (𝑥𝑋 ↦ (∗‘(∗‘(𝐹𝑥)))) = (𝑥𝑋 ↦ (𝐹𝑥)))
4239cjcld 10930 . . . . . . . . . . 11 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥𝑋) → (∗‘(𝐹𝑥)) ∈ ℂ)
43 simpl 109 . . . . . . . . . . . . 13 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → 𝐹:𝑋⟶ℂ)
4443feqmptd 5565 . . . . . . . . . . . 12 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → 𝐹 = (𝑥𝑋 ↦ (𝐹𝑥)))
455a1i 9 . . . . . . . . . . . . 13 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → ∗:ℂ⟶ℂ)
4645feqmptd 5565 . . . . . . . . . . . 12 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → ∗ = (𝑦 ∈ ℂ ↦ (∗‘𝑦)))
47 fveq2 5511 . . . . . . . . . . . 12 (𝑦 = (𝐹𝑥) → (∗‘𝑦) = (∗‘(𝐹𝑥)))
4839, 44, 46, 47fmptco 5678 . . . . . . . . . . 11 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ 𝐹) = (𝑥𝑋 ↦ (∗‘(𝐹𝑥))))
49 fveq2 5511 . . . . . . . . . . 11 (𝑦 = (∗‘(𝐹𝑥)) → (∗‘𝑦) = (∗‘(∗‘(𝐹𝑥))))
5042, 48, 46, 49fmptco 5678 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ (∗ ∘ 𝐹)) = (𝑥𝑋 ↦ (∗‘(∗‘(𝐹𝑥)))))
5141, 50, 443eqtr4d 2220 . . . . . . . . 9 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ (∗ ∘ 𝐹)) = 𝐹)
5251oveq2d 5885 . . . . . . . 8 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ (∗ ∘ 𝐹))) = (ℝ D 𝐹))
5352dmeqd 4825 . . . . . . 7 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (ℝ D (∗ ∘ (∗ ∘ 𝐹))) = dom (ℝ D 𝐹))
5437, 53sseqtrd 3193 . . . . . 6 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (ℝ D (∗ ∘ 𝐹)) ⊆ dom (ℝ D 𝐹))
55 ffdm 5382 . . . . . . . . . . . . 13 (𝐹:𝑋⟶ℂ → (𝐹:dom 𝐹⟶ℂ ∧ dom 𝐹𝑋))
5655simpld 112 . . . . . . . . . . . 12 (𝐹:𝑋⟶ℂ → 𝐹:dom 𝐹⟶ℂ)
5756adantr 276 . . . . . . . . . . 11 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → 𝐹:dom 𝐹⟶ℂ)
58 fdm 5367 . . . . . . . . . . . . 13 (𝐹:𝑋⟶ℂ → dom 𝐹 = 𝑋)
5958adantr 276 . . . . . . . . . . . 12 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom 𝐹 = 𝑋)
6059, 13eqsstrd 3191 . . . . . . . . . . 11 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom 𝐹 ⊆ ℝ)
6115, 16elpm2 6674 . . . . . . . . . . 11 (𝐹 ∈ (ℂ ↑pm ℝ) ↔ (𝐹:dom 𝐹⟶ℂ ∧ dom 𝐹 ⊆ ℝ))
6257, 60, 61sylanbrc 417 . . . . . . . . . 10 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → 𝐹 ∈ (ℂ ↑pm ℝ))
63 dvfpm 13818 . . . . . . . . . 10 (𝐹 ∈ (ℂ ↑pm ℝ) → (ℝ D 𝐹):dom (ℝ D 𝐹)⟶ℂ)
6462, 63syl 14 . . . . . . . . 9 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D 𝐹):dom (ℝ D 𝐹)⟶ℂ)
6564ffvelcdmda 5647 . . . . . . . 8 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → ((ℝ D 𝐹)‘𝑥) ∈ ℂ)
6665cjcld 10930 . . . . . . 7 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → (∗‘((ℝ D 𝐹)‘𝑥)) ∈ ℂ)
67 breldmg 4829 . . . . . . 7 ((𝑥 ∈ V ∧ (∗‘((ℝ D 𝐹)‘𝑥)) ∈ ℂ ∧ 𝑥(ℝ D (∗ ∘ 𝐹))(∗‘((ℝ D 𝐹)‘𝑥))) → 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹)))
6827, 66, 4, 67mp3an2i 1342 . . . . . 6 (((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) ∧ 𝑥 ∈ dom (ℝ D 𝐹)) → 𝑥 ∈ dom (ℝ D (∗ ∘ 𝐹)))
6954, 68eqelssd 3174 . . . . 5 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → dom (ℝ D (∗ ∘ 𝐹)) = dom (ℝ D 𝐹))
7069feq2d 5349 . . . 4 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → ((ℝ D (∗ ∘ 𝐹)):dom (ℝ D (∗ ∘ 𝐹))⟶ℂ ↔ (ℝ D (∗ ∘ 𝐹)):dom (ℝ D 𝐹)⟶ℂ))
7120, 70mpbid 147 . . 3 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ 𝐹)):dom (ℝ D 𝐹)⟶ℂ)
7271feqmptd 5565 . 2 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ 𝐹)) = (𝑥 ∈ dom (ℝ D 𝐹) ↦ ((ℝ D (∗ ∘ 𝐹))‘𝑥)))
7364feqmptd 5565 . . 3 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D 𝐹) = (𝑥 ∈ dom (ℝ D 𝐹) ↦ ((ℝ D 𝐹)‘𝑥)))
74 fveq2 5511 . . 3 (𝑦 = ((ℝ D 𝐹)‘𝑥) → (∗‘𝑦) = (∗‘((ℝ D 𝐹)‘𝑥)))
7565, 73, 46, 74fmptco 5678 . 2 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (∗ ∘ (ℝ D 𝐹)) = (𝑥 ∈ dom (ℝ D 𝐹) ↦ (∗‘((ℝ D 𝐹)‘𝑥))))
7626, 72, 753eqtr4d 2220 1 ((𝐹:𝑋⟶ℂ ∧ 𝑋 ⊆ ℝ) → (ℝ D (∗ ∘ 𝐹)) = (∗ ∘ (ℝ D 𝐹)))
Colors of variables: wff set class
Syntax hints:  wi 4  wa 104   = wceq 1353  wcel 2148  Vcvv 2737  wss 3129   class class class wbr 4000  cmpt 4061  dom cdm 4623  ccom 4627  Fun wfun 5206  wf 5208  cfv 5212  (class class class)co 5869  pm cpm 6643  cc 7797  cr 7798  ccj 10829   D cdv 13784
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 614  ax-in2 615  ax-io 709  ax-5 1447  ax-7 1448  ax-gen 1449  ax-ie1 1493  ax-ie2 1494  ax-8 1504  ax-10 1505  ax-11 1506  ax-i12 1507  ax-bndl 1509  ax-4 1510  ax-17 1526  ax-i9 1530  ax-ial 1534  ax-i5r 1535  ax-13 2150  ax-14 2151  ax-ext 2159  ax-coll 4115  ax-sep 4118  ax-nul 4126  ax-pow 4171  ax-pr 4206  ax-un 4430  ax-setind 4533  ax-iinf 4584  ax-cnex 7890  ax-resscn 7891  ax-1cn 7892  ax-1re 7893  ax-icn 7894  ax-addcl 7895  ax-addrcl 7896  ax-mulcl 7897  ax-mulrcl 7898  ax-addcom 7899  ax-mulcom 7900  ax-addass 7901  ax-mulass 7902  ax-distr 7903  ax-i2m1 7904  ax-0lt1 7905  ax-1rid 7906  ax-0id 7907  ax-rnegex 7908  ax-precex 7909  ax-cnre 7910  ax-pre-ltirr 7911  ax-pre-ltwlin 7912  ax-pre-lttrn 7913  ax-pre-apti 7914  ax-pre-ltadd 7915  ax-pre-mulgt0 7916  ax-pre-mulext 7917  ax-arch 7918  ax-caucvg 7919
This theorem depends on definitions:  df-bi 117  df-stab 831  df-dc 835  df-3or 979  df-3an 980  df-tru 1356  df-fal 1359  df-nf 1461  df-sb 1763  df-eu 2029  df-mo 2030  df-clab 2164  df-cleq 2170  df-clel 2173  df-nfc 2308  df-ne 2348  df-nel 2443  df-ral 2460  df-rex 2461  df-reu 2462  df-rmo 2463  df-rab 2464  df-v 2739  df-sbc 2963  df-csb 3058  df-dif 3131  df-un 3133  df-in 3135  df-ss 3142  df-nul 3423  df-if 3535  df-pw 3576  df-sn 3597  df-pr 3598  df-op 3600  df-uni 3808  df-int 3843  df-iun 3886  df-br 4001  df-opab 4062  df-mpt 4063  df-tr 4099  df-id 4290  df-po 4293  df-iso 4294  df-iord 4363  df-on 4365  df-ilim 4366  df-suc 4368  df-iom 4587  df-xp 4629  df-rel 4630  df-cnv 4631  df-co 4632  df-dm 4633  df-rn 4634  df-res 4635  df-ima 4636  df-iota 5174  df-fun 5214  df-fn 5215  df-f 5216  df-f1 5217  df-fo 5218  df-f1o 5219  df-fv 5220  df-isom 5221  df-riota 5825  df-ov 5872  df-oprab 5873  df-mpo 5874  df-1st 6135  df-2nd 6136  df-recs 6300  df-frec 6386  df-map 6644  df-pm 6645  df-sup 6977  df-inf 6978  df-pnf 7981  df-mnf 7982  df-xr 7983  df-ltxr 7984  df-le 7985  df-sub 8117  df-neg 8118  df-reap 8519  df-ap 8526  df-div 8616  df-inn 8906  df-2 8964  df-3 8965  df-4 8966  df-n0 9163  df-z 9240  df-uz 9515  df-q 9606  df-rp 9638  df-xneg 9756  df-xadd 9757  df-ioo 9876  df-seqfrec 10429  df-exp 10503  df-cj 10832  df-re 10833  df-im 10834  df-rsqrt 10988  df-abs 10989  df-rest 12635  df-topgen 12654  df-psmet 13147  df-xmet 13148  df-met 13149  df-bl 13150  df-mopn 13151  df-top 13156  df-topon 13169  df-bases 13201  df-ntr 13256  df-cn 13348  df-cnp 13349  df-cncf 13718  df-limced 13785  df-dvap 13786
This theorem is referenced by:  dvfre  13834  dvmptcjx  13846
  Copyright terms: Public domain W3C validator