Theorem: SciLean.cderiv.arg_f.IsSmoothLinearMap_rule (SciLean/Core/FunctionTransformations/CDeriv.lean)

State before:
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_3
inst✝⁷ : Vec K X
Y : Type u_2
inst✝⁶ : Vec K Y
Z : Type u_4
inst✝⁵ : Vec K Z
W : Type ?u.14968
inst✝⁴ : Vec K W
ι : Type ?u.14979
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.15006
inst✝ : (i : ι) → Vec K (E i)
f : X → Y → Z
hf :
  CDifferentiable K fun x =>
    match x with
    | (x, y) => f x y
hf' : ∀ (y : Y), IsLinearMap K fun x => f x y
⊢ IsSmoothLinearMap K fun x => cderiv K fun x_1 => f x x_1
Tactic:
constructor
State after:
case left
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_3
inst✝⁷ : Vec K X
Y : Type u_2
inst✝⁶ : Vec K Y
Z : Type u_4
inst✝⁵ : Vec K Z
W : Type ?u.14968
inst✝⁴ : Vec K W
ι : Type ?u.14979
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.15006
inst✝ : (i : ι) → Vec K (E i)
f : X → Y → Z
hf :
  CDifferentiable K fun x =>
    match x with
    | (x, y) => f x y
hf' : ∀ (y : Y), IsLinearMap K fun x => f x y
⊢ IsLinearMap K fun x => cderiv K fun x_1 => f x x_1

case right
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_3
inst✝⁷ : Vec K X
Y : Type u_2
inst✝⁶ : Vec K Y
Z : Type u_4
inst✝⁵ : Vec K Z
W : Type ?u.14968
inst✝⁴ : Vec K W
ι : Type ?u.14979
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.15006
inst✝ : (i : ι) → Vec K (E i)
f : X → Y → Z
hf :
  CDifferentiable K fun x =>
    match x with
    | (x, y) => f x y
hf' : ∀ (y : Y), IsLinearMap K fun x => f x y
⊢ CDifferentiable K fun x => cderiv K fun x_1 => f x x_1

State before:
case left
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_3
inst✝⁷ : Vec K X
Y : Type u_2
inst✝⁶ : Vec K Y
Z : Type u_4
inst✝⁵ : Vec K Z
W : Type ?u.14968
inst✝⁴ : Vec K W
ι : Type ?u.14979
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.15006
inst✝ : (i : ι) → Vec K (E i)
f : X → Y → Z
hf :
  CDifferentiable K fun x =>
    match x with
    | (x, y) => f x y
hf' : ∀ (y : Y), IsLinearMap K fun x => f x y
⊢ IsLinearMap K fun x => cderiv K fun x_1 => f x x_1

case right
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_3
inst✝⁷ : Vec K X
Y : Type u_2
inst✝⁶ : Vec K Y
Z : Type u_4
inst✝⁵ : Vec K Z
W : Type ?u.14968
inst✝⁴ : Vec K W
ι : Type ?u.14979
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.15006
inst✝ : (i : ι) → Vec K (E i)
f : X → Y → Z
hf :
  CDifferentiable K fun x =>
    match x with
    | (x, y) => f x y
hf' : ∀ (y : Y), IsLinearMap K fun x => f x y
⊢ CDifferentiable K fun x => cderiv K fun x_1 => f x x_1
Tactic:
fun_prop
State after:
case right
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_3
inst✝⁷ : Vec K X
Y : Type u_2
inst✝⁶ : Vec K Y
Z : Type u_4
inst✝⁵ : Vec K Z
W : Type ?u.14968
inst✝⁴ : Vec K W
ι : Type ?u.14979
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.15006
inst✝ : (i : ι) → Vec K (E i)
f : X → Y → Z
hf :
  CDifferentiable K fun x =>
    match x with
    | (x, y) => f x y
hf' : ∀ (y : Y), IsLinearMap K fun x => f x y
⊢ CDifferentiable K fun x => cderiv K fun x_1 => f x x_1

State before:
case right
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_3
inst✝⁷ : Vec K X
Y : Type u_2
inst✝⁶ : Vec K Y
Z : Type u_4
inst✝⁵ : Vec K Z
W : Type ?u.14968
inst✝⁴ : Vec K W
ι : Type ?u.14979
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.15006
inst✝ : (i : ι) → Vec K (E i)
f : X → Y → Z
hf :
  CDifferentiable K fun x =>
    match x with
    | (x, y) => f x y
hf' : ∀ (y : Y), IsLinearMap K fun x => f x y
⊢ CDifferentiable K fun x => cderiv K fun x_1 => f x x_1
Tactic:
sorry_proof
State after:
no goals