Theorem: SciLean.dirac.arg_xy.DistribDiffrentiable_rule (SciLean/Core/Distribution/ParametricDistribDeriv.lean)

State before:
R : Type u_1
inst✝⁹ : RealScalar R
W : Type u_2
inst✝⁸ : Vec R W
X : Type u_3
inst✝⁷ : Vec R X
inst✝⁶ : MeasureSpace X
Y : Type ?u.47090
inst✝⁵ : Vec R Y
inst✝⁴ : Module ℝ Y
Z : Type ?u.47883
inst✝³ : Vec R Z
inst✝² : Module ℝ Z
U : Type ?u.48672
inst✝¹ : Vec R U
V : Type ?u.48693
inst✝ : Vec R V
x : W → X
hx : CDifferentiable R x
⊢ DistribDifferentiable fun w => dirac (x w)
Tactic:
intro x
State after:
R : Type u_1
inst✝⁹ : RealScalar R
W : Type u_2
inst✝⁸ : Vec R W
X : Type u_3
inst✝⁷ : Vec R X
inst✝⁶ : MeasureSpace X
Y : Type ?u.47090
inst✝⁵ : Vec R Y
inst✝⁴ : Module ℝ Y
Z : Type ?u.47883
inst✝³ : Vec R Z
inst✝² : Module ℝ Z
U : Type ?u.48672
inst✝¹ : Vec R U
V : Type ?u.48693
inst✝ : Vec R V
x✝ : W → X
hx : CDifferentiable R x✝
x : W
⊢ DistribDifferentiableAt (fun w => dirac (x✝ w)) x

State before:
R : Type u_1
inst✝⁹ : RealScalar R
W : Type u_2
inst✝⁸ : Vec R W
X : Type u_3
inst✝⁷ : Vec R X
inst✝⁶ : MeasureSpace X
Y : Type ?u.47090
inst✝⁵ : Vec R Y
inst✝⁴ : Module ℝ Y
Z : Type ?u.47883
inst✝³ : Vec R Z
inst✝² : Module ℝ Z
U : Type ?u.48672
inst✝¹ : Vec R U
V : Type ?u.48693
inst✝ : Vec R V
x✝ : W → X
hx : CDifferentiable R x✝
x : W
⊢ DistribDifferentiableAt (fun w => dirac (x✝ w)) x
Tactic:
unfold DistribDifferentiableAt
State after:
R : Type u_1
inst✝⁹ : RealScalar R
W : Type u_2
inst✝⁸ : Vec R W
X : Type u_3
inst✝⁷ : Vec R X
inst✝⁶ : MeasureSpace X
Y : Type ?u.47090
inst✝⁵ : Vec R Y
inst✝⁴ : Module ℝ Y
Z : Type ?u.47883
inst✝³ : Vec R Z
inst✝² : Module ℝ Z
U : Type ?u.48672
inst✝¹ : Vec R U
V : Type ?u.48693
inst✝ : Vec R V
x✝ : W → X
hx : CDifferentiable R x✝
x : W
⊢ ∀ (φ : W → 𝒟 X), CDifferentiableAt R φ x → CDifferentiableAt R (fun x => ((fun w => dirac (x✝ w)) x) (φ x)) x

State before:
R : Type u_1
inst✝⁹ : RealScalar R
W : Type u_2
inst✝⁸ : Vec R W
X : Type u_3
inst✝⁷ : Vec R X
inst✝⁶ : MeasureSpace X
Y : Type ?u.47090
inst✝⁵ : Vec R Y
inst✝⁴ : Module ℝ Y
Z : Type ?u.47883
inst✝³ : Vec R Z
inst✝² : Module ℝ Z
U : Type ?u.48672
inst✝¹ : Vec R U
V : Type ?u.48693
inst✝ : Vec R V
x✝ : W → X
hx : CDifferentiable R x✝
x : W
⊢ ∀ (φ : W → 𝒟 X), CDifferentiableAt R φ x → CDifferentiableAt R (fun x => ((fun w => dirac (x✝ w)) x) (φ x)) x
Tactic:
intro φ hφ
State after:
R : Type u_1
inst✝⁹ : RealScalar R
W : Type u_2
inst✝⁸ : Vec R W
X : Type u_3
inst✝⁷ : Vec R X
inst✝⁶ : MeasureSpace X
Y : Type ?u.47090
inst✝⁵ : Vec R Y
inst✝⁴ : Module ℝ Y
Z : Type ?u.47883
inst✝³ : Vec R Z
inst✝² : Module ℝ Z
U : Type ?u.48672
inst✝¹ : Vec R U
V : Type ?u.48693
inst✝ : Vec R V
x✝ : W → X
hx : CDifferentiable R x✝
x : W
φ : W → 𝒟 X
hφ : CDifferentiableAt R φ x
⊢ CDifferentiableAt R (fun x => ((fun w => dirac (x✝ w)) x) (φ x)) x

State before:
R : Type u_1
inst✝⁹ : RealScalar R
W : Type u_2
inst✝⁸ : Vec R W
X : Type u_3
inst✝⁷ : Vec R X
inst✝⁶ : MeasureSpace X
Y : Type ?u.47090
inst✝⁵ : Vec R Y
inst✝⁴ : Module ℝ Y
Z : Type ?u.47883
inst✝³ : Vec R Z
inst✝² : Module ℝ Z
U : Type ?u.48672
inst✝¹ : Vec R U
V : Type ?u.48693
inst✝ : Vec R V
x✝ : W → X
hx : CDifferentiable R x✝
x : W
φ : W → 𝒟 X
hφ : CDifferentiableAt R φ x
⊢ CDifferentiableAt R (fun x => ((fun w => dirac (x✝ w)) x) (φ x)) x
Tactic:
simp [action_dirac, dirac]
State after:
R : Type u_1
inst✝⁹ : RealScalar R
W : Type u_2
inst✝⁸ : Vec R W
X : Type u_3
inst✝⁷ : Vec R X
inst✝⁶ : MeasureSpace X
Y : Type ?u.47090
inst✝⁵ : Vec R Y
inst✝⁴ : Module ℝ Y
Z : Type ?u.47883
inst✝³ : Vec R Z
inst✝² : Module ℝ Z
U : Type ?u.48672
inst✝¹ : Vec R U
V : Type ?u.48693
inst✝ : Vec R V
x✝ : W → X
hx : CDifferentiable R x✝
x : W
φ : W → 𝒟 X
hφ : CDifferentiableAt R φ x
⊢ CDifferentiableAt R (fun x => (φ x) (x✝ x)) x

State before:
R : Type u_1
inst✝⁹ : RealScalar R
W : Type u_2
inst✝⁸ : Vec R W
X : Type u_3
inst✝⁷ : Vec R X
inst✝⁶ : MeasureSpace X
Y : Type ?u.47090
inst✝⁵ : Vec R Y
inst✝⁴ : Module ℝ Y
Z : Type ?u.47883
inst✝³ : Vec R Z
inst✝² : Module ℝ Z
U : Type ?u.48672
inst✝¹ : Vec R U
V : Type ?u.48693
inst✝ : Vec R V
x✝ : W → X
hx : CDifferentiable R x✝
x : W
φ : W → 𝒟 X
hφ : CDifferentiableAt R φ x
⊢ CDifferentiableAt R (fun x => (φ x) (x✝ x)) x
Tactic:
fun_prop
State after:
no goals