Theorem: SciLean.Prod.mk.arg_fstsnd.CDifferentiable_rule (SciLean/Core/FunctionPropositions/CDifferentiable.lean)

State before:
K✝ : Type ?u.6642
inst✝¹¹ : RCLike K✝
X✝ : Type ?u.6648
inst✝¹⁰ : Vec K✝ X✝
Y✝ : Type ?u.6661
inst✝⁹ : Vec K✝ Y✝
Z✝ : Type ?u.6672
inst✝⁸ : Vec K✝ Z✝
ι✝ : Type ?u.6683
inst✝⁷ : IndexType ι✝
E✝ : ι✝ → Type ?u.6692
inst✝⁶ : (i : ι✝) → Vec K✝ (E✝ i)
K : Type u_1
inst✝⁵ : RCLike K
X : Type u_2
inst✝⁴ : Vec K X
Y : Type u_3
inst✝³ : Vec K Y
Z : Type u_4
inst✝² : Vec K Z
ι : Type ?u.6749
inst✝¹ : IndexType ι
E : ι → Type ?u.6758
inst✝ : (i : ι) → Vec K (E i)
g : X → Y
hg : CDifferentiable K g
f : X → Z
hf : CDifferentiable K f
⊢ CDifferentiable K fun x => (g x, f x)
Tactic:
intro x
State after:
K✝ : Type ?u.6642
inst✝¹¹ : RCLike K✝
X✝ : Type ?u.6648
inst✝¹⁰ : Vec K✝ X✝
Y✝ : Type ?u.6661
inst✝⁹ : Vec K✝ Y✝
Z✝ : Type ?u.6672
inst✝⁸ : Vec K✝ Z✝
ι✝ : Type ?u.6683
inst✝⁷ : IndexType ι✝
E✝ : ι✝ → Type ?u.6692
inst✝⁶ : (i : ι✝) → Vec K✝ (E✝ i)
K : Type u_1
inst✝⁵ : RCLike K
X : Type u_2
inst✝⁴ : Vec K X
Y : Type u_3
inst✝³ : Vec K Y
Z : Type u_4
inst✝² : Vec K Z
ι : Type ?u.6749
inst✝¹ : IndexType ι
E : ι → Type ?u.6758
inst✝ : (i : ι) → Vec K (E i)
g : X → Y
hg : CDifferentiable K g
f : X → Z
hf : CDifferentiable K f
x : X
⊢ CDifferentiableAt K (fun x => (g x, f x)) x

State before:
K✝ : Type ?u.6642
inst✝¹¹ : RCLike K✝
X✝ : Type ?u.6648
inst✝¹⁰ : Vec K✝ X✝
Y✝ : Type ?u.6661
inst✝⁹ : Vec K✝ Y✝
Z✝ : Type ?u.6672
inst✝⁸ : Vec K✝ Z✝
ι✝ : Type ?u.6683
inst✝⁷ : IndexType ι✝
E✝ : ι✝ → Type ?u.6692
inst✝⁶ : (i : ι✝) → Vec K✝ (E✝ i)
K : Type u_1
inst✝⁵ : RCLike K
X : Type u_2
inst✝⁴ : Vec K X
Y : Type u_3
inst✝³ : Vec K Y
Z : Type u_4
inst✝² : Vec K Z
ι : Type ?u.6749
inst✝¹ : IndexType ι
E : ι → Type ?u.6758
inst✝ : (i : ι) → Vec K (E i)
g : X → Y
hg : CDifferentiable K g
f : X → Z
hf : CDifferentiable K f
x : X
⊢ CDifferentiableAt K (fun x => (g x, f x)) x
Tactic:
fun_prop
State after:
no goals