Metamath Proof Explorer


Theorem dvfre

Description: The derivative of a real function is real. (Contributed by Mario Carneiro, 1-Sep-2014)

Ref Expression
Assertion dvfre ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) → ( ℝ D 𝐹 ) : dom ( ℝ D 𝐹 ) ⟶ ℝ )

Proof

Step Hyp Ref Expression
1 dvf ( ℝ D 𝐹 ) : dom ( ℝ D 𝐹 ) ⟶ ℂ
2 ffn ( ( ℝ D 𝐹 ) : dom ( ℝ D 𝐹 ) ⟶ ℂ → ( ℝ D 𝐹 ) Fn dom ( ℝ D 𝐹 ) )
3 1 2 mp1i ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) → ( ℝ D 𝐹 ) Fn dom ( ℝ D 𝐹 ) )
4 1 ffvelrni ( 𝑥 ∈ dom ( ℝ D 𝐹 ) → ( ( ℝ D 𝐹 ) ‘ 𝑥 ) ∈ ℂ )
5 4 adantl ( ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) ∧ 𝑥 ∈ dom ( ℝ D 𝐹 ) ) → ( ( ℝ D 𝐹 ) ‘ 𝑥 ) ∈ ℂ )
6 simpr ( ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) ∧ 𝑥 ∈ dom ( ℝ D 𝐹 ) ) → 𝑥 ∈ dom ( ℝ D 𝐹 ) )
7 fvco3 ( ( ( ℝ D 𝐹 ) : dom ( ℝ D 𝐹 ) ⟶ ℂ ∧ 𝑥 ∈ dom ( ℝ D 𝐹 ) ) → ( ( ∗ ∘ ( ℝ D 𝐹 ) ) ‘ 𝑥 ) = ( ∗ ‘ ( ( ℝ D 𝐹 ) ‘ 𝑥 ) ) )
8 1 6 7 sylancr ( ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) ∧ 𝑥 ∈ dom ( ℝ D 𝐹 ) ) → ( ( ∗ ∘ ( ℝ D 𝐹 ) ) ‘ 𝑥 ) = ( ∗ ‘ ( ( ℝ D 𝐹 ) ‘ 𝑥 ) ) )
9 ax-resscn ℝ ⊆ ℂ
10 fss ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ ℝ ⊆ ℂ ) → 𝐹 : 𝐴 ⟶ ℂ )
11 9 10 mpan2 ( 𝐹 : 𝐴 ⟶ ℝ → 𝐹 : 𝐴 ⟶ ℂ )
12 dvcj ( ( 𝐹 : 𝐴 ⟶ ℂ ∧ 𝐴 ⊆ ℝ ) → ( ℝ D ( ∗ ∘ 𝐹 ) ) = ( ∗ ∘ ( ℝ D 𝐹 ) ) )
13 11 12 sylan ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) → ( ℝ D ( ∗ ∘ 𝐹 ) ) = ( ∗ ∘ ( ℝ D 𝐹 ) ) )
14 ffvelrn ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝑦𝐴 ) → ( 𝐹𝑦 ) ∈ ℝ )
15 14 adantlr ( ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) ∧ 𝑦𝐴 ) → ( 𝐹𝑦 ) ∈ ℝ )
16 15 cjred ( ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) ∧ 𝑦𝐴 ) → ( ∗ ‘ ( 𝐹𝑦 ) ) = ( 𝐹𝑦 ) )
17 16 mpteq2dva ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) → ( 𝑦𝐴 ↦ ( ∗ ‘ ( 𝐹𝑦 ) ) ) = ( 𝑦𝐴 ↦ ( 𝐹𝑦 ) ) )
18 15 recnd ( ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) ∧ 𝑦𝐴 ) → ( 𝐹𝑦 ) ∈ ℂ )
19 simpl ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) → 𝐹 : 𝐴 ⟶ ℝ )
20 19 feqmptd ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) → 𝐹 = ( 𝑦𝐴 ↦ ( 𝐹𝑦 ) ) )
21 cjf ∗ : ℂ ⟶ ℂ
22 21 a1i ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) → ∗ : ℂ ⟶ ℂ )
23 22 feqmptd ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) → ∗ = ( 𝑧 ∈ ℂ ↦ ( ∗ ‘ 𝑧 ) ) )
24 fveq2 ( 𝑧 = ( 𝐹𝑦 ) → ( ∗ ‘ 𝑧 ) = ( ∗ ‘ ( 𝐹𝑦 ) ) )
25 18 20 23 24 fmptco ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) → ( ∗ ∘ 𝐹 ) = ( 𝑦𝐴 ↦ ( ∗ ‘ ( 𝐹𝑦 ) ) ) )
26 17 25 20 3eqtr4d ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) → ( ∗ ∘ 𝐹 ) = 𝐹 )
27 26 oveq2d ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) → ( ℝ D ( ∗ ∘ 𝐹 ) ) = ( ℝ D 𝐹 ) )
28 13 27 eqtr3d ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) → ( ∗ ∘ ( ℝ D 𝐹 ) ) = ( ℝ D 𝐹 ) )
29 28 fveq1d ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) → ( ( ∗ ∘ ( ℝ D 𝐹 ) ) ‘ 𝑥 ) = ( ( ℝ D 𝐹 ) ‘ 𝑥 ) )
30 29 adantr ( ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) ∧ 𝑥 ∈ dom ( ℝ D 𝐹 ) ) → ( ( ∗ ∘ ( ℝ D 𝐹 ) ) ‘ 𝑥 ) = ( ( ℝ D 𝐹 ) ‘ 𝑥 ) )
31 8 30 eqtr3d ( ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) ∧ 𝑥 ∈ dom ( ℝ D 𝐹 ) ) → ( ∗ ‘ ( ( ℝ D 𝐹 ) ‘ 𝑥 ) ) = ( ( ℝ D 𝐹 ) ‘ 𝑥 ) )
32 5 31 cjrebd ( ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) ∧ 𝑥 ∈ dom ( ℝ D 𝐹 ) ) → ( ( ℝ D 𝐹 ) ‘ 𝑥 ) ∈ ℝ )
33 32 ralrimiva ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) → ∀ 𝑥 ∈ dom ( ℝ D 𝐹 ) ( ( ℝ D 𝐹 ) ‘ 𝑥 ) ∈ ℝ )
34 ffnfv ( ( ℝ D 𝐹 ) : dom ( ℝ D 𝐹 ) ⟶ ℝ ↔ ( ( ℝ D 𝐹 ) Fn dom ( ℝ D 𝐹 ) ∧ ∀ 𝑥 ∈ dom ( ℝ D 𝐹 ) ( ( ℝ D 𝐹 ) ‘ 𝑥 ) ∈ ℝ ) )
35 3 33 34 sylanbrc ( ( 𝐹 : 𝐴 ⟶ ℝ ∧ 𝐴 ⊆ ℝ ) → ( ℝ D 𝐹 ) : dom ( ℝ D 𝐹 ) ⟶ ℝ )