Theorem: SciLean.DistributionFun.ext (SciLean/Core/Distribution/DistributionFun.lean)

State before:
R : Type u_1
inst✝⁶ : RealScalar R
W : Type ?u.41811
inst✝⁵ : Vec R W
inst✝⁴ : Module ℝ W
X : Type u_2
inst✝³ : TopologicalSpace X
space : TCOr (Vec R X) (DiscreteTopology X)
Y : Type u_3
inst✝² : Vec R Y
inst✝¹ : Module ℝ Y
Z : Type ?u.43430
inst✝ : Vec R Z
x y : 𝒟'(X, Y)
⊢ (∀ (φ : 𝒟 X), x.action φ = y.action φ) → x = y
Tactic:
induction x
State after:
case mk
R : Type u_1
inst✝⁶ : RealScalar R
W : Type ?u.41811
inst✝⁵ : Vec R W
inst✝⁴ : Module ℝ W
X : Type u_2
inst✝³ : TopologicalSpace X
space : TCOr (Vec R X) (DiscreteTopology X)
Y : Type u_3
inst✝² : Vec R Y
inst✝¹ : Module ℝ Y
Z : Type ?u.43430
inst✝ : Vec R Z
y : 𝒟'(X, Y)
action✝ : (𝒟 X) ⊸[R] Y
⊢ (∀ (φ : 𝒟 X), { action := action✝ }.action φ = y.action φ) → { action := action✝ } = y

State before:
case mk
R : Type u_1
inst✝⁶ : RealScalar R
W : Type ?u.41811
inst✝⁵ : Vec R W
inst✝⁴ : Module ℝ W
X : Type u_2
inst✝³ : TopologicalSpace X
space : TCOr (Vec R X) (DiscreteTopology X)
Y : Type u_3
inst✝² : Vec R Y
inst✝¹ : Module ℝ Y
Z : Type ?u.43430
inst✝ : Vec R Z
y : 𝒟'(X, Y)
action✝ : (𝒟 X) ⊸[R] Y
⊢ (∀ (φ : 𝒟 X), { action := action✝ }.action φ = y.action φ) → { action := action✝ } = y
Tactic:
induction y
State after:
case mk.mk
R : Type u_1
inst✝⁶ : RealScalar R
W : Type ?u.41811
inst✝⁵ : Vec R W
inst✝⁴ : Module ℝ W
X : Type u_2
inst✝³ : TopologicalSpace X
space : TCOr (Vec R X) (DiscreteTopology X)
Y : Type u_3
inst✝² : Vec R Y
inst✝¹ : Module ℝ Y
Z : Type ?u.43430
inst✝ : Vec R Z
action✝¹ action✝ : (𝒟 X) ⊸[R] Y
⊢ (∀ (φ : 𝒟 X), { action := action✝¹ }.action φ = { action := action✝ }.action φ) →
    { action := action✝¹ } = { action := action✝ }

State before:
case mk.mk
R : Type u_1
inst✝⁶ : RealScalar R
W : Type ?u.41811
inst✝⁵ : Vec R W
inst✝⁴ : Module ℝ W
X : Type u_2
inst✝³ : TopologicalSpace X
space : TCOr (Vec R X) (DiscreteTopology X)
Y : Type u_3
inst✝² : Vec R Y
inst✝¹ : Module ℝ Y
Z : Type ?u.43430
inst✝ : Vec R Z
action✝¹ action✝ : (𝒟 X) ⊸[R] Y
⊢ (∀ (φ : 𝒟 X), { action := action✝¹ }.action φ = { action := action✝ }.action φ) →
    { action := action✝¹ } = { action := action✝ }
Tactic:
simp only [action_mk_apply, mk.injEq]
State after:
case mk.mk
R : Type u_1
inst✝⁶ : RealScalar R
W : Type ?u.41811
inst✝⁵ : Vec R W
inst✝⁴ : Module ℝ W
X : Type u_2
inst✝³ : TopologicalSpace X
space : TCOr (Vec R X) (DiscreteTopology X)
Y : Type u_3
inst✝² : Vec R Y
inst✝¹ : Module ℝ Y
Z : Type ?u.43430
inst✝ : Vec R Z
action✝¹ action✝ : (𝒟 X) ⊸[R] Y
⊢ (∀ (φ : 𝒟 X), action✝¹ φ = action✝ φ) → action✝¹ = action✝

State before:
case mk.mk
R : Type u_1
inst✝⁶ : RealScalar R
W : Type ?u.41811
inst✝⁵ : Vec R W
inst✝⁴ : Module ℝ W
X : Type u_2
inst✝³ : TopologicalSpace X
space : TCOr (Vec R X) (DiscreteTopology X)
Y : Type u_3
inst✝² : Vec R Y
inst✝¹ : Module ℝ Y
Z : Type ?u.43430
inst✝ : Vec R Z
action✝¹ action✝ : (𝒟 X) ⊸[R] Y
⊢ (∀ (φ : 𝒟 X), action✝¹ φ = action✝ φ) → action✝¹ = action✝
Tactic:
aesop
State after:
no goals