Theorem: MonadStateOf.set.arg_a0.CDifferentiableM_rule (SciLean/Core/Monads/StateT.lean)

State before:
K : Type
inst✝⁹ : RCLike K
m : Type → Type
m' : outParam (Type → Type)
inst✝⁸ : Monad m
inst✝⁷ : Monad m'
inst✝⁶ : FwdDerivMonad K m m'
inst✝⁵ : LawfulMonad m
inst✝⁴ : LawfulMonad m'
S : Type
inst✝³ : Vec K S
X : Type
inst✝² : Vec K X
Y : Type ?u.49480
inst✝¹ : Vec K Y
Z : Type ?u.49491
inst✝ : Vec K Z
s : X → S
ha0 : CDifferentiable K s
⊢ CDifferentiableM K fun x => set (s x)
Tactic:
simp[set, StateT.set, CDifferentiableValM, CDifferentiableM]
State after:
K : Type
inst✝⁹ : RCLike K
m : Type → Type
m' : outParam (Type → Type)
inst✝⁸ : Monad m
inst✝⁷ : Monad m'
inst✝⁶ : FwdDerivMonad K m m'
inst✝⁵ : LawfulMonad m
inst✝⁴ : LawfulMonad m'
S : Type
inst✝³ : Vec K S
X : Type
inst✝² : Vec K X
Y : Type ?u.49480
inst✝¹ : Vec K Y
Z : Type ?u.49491
inst✝ : Vec K Z
s : X → S
ha0 : CDifferentiable K s
⊢ CDifferentiableM K fun xs => pure (PUnit.unit, s xs.1)

State before:
K : Type
inst✝⁹ : RCLike K
m : Type → Type
m' : outParam (Type → Type)
inst✝⁸ : Monad m
inst✝⁷ : Monad m'
inst✝⁶ : FwdDerivMonad K m m'
inst✝⁵ : LawfulMonad m
inst✝⁴ : LawfulMonad m'
S : Type
inst✝³ : Vec K S
X : Type
inst✝² : Vec K X
Y : Type ?u.49480
inst✝¹ : Vec K Y
Z : Type ?u.49491
inst✝ : Vec K Z
s : X → S
ha0 : CDifferentiable K s
⊢ CDifferentiableM K fun xs => pure (PUnit.unit, s xs.1)
Tactic:
fun_prop
State after:
no goals