Theorem: ite.arg_te.CDifferentiableM_rule (SciLean/Core/Monads/FwdDerivMonad.lean)

State before:
ι : Sort ?u.46344
K : Type
inst✝⁹ : RCLike K
m m' : Type → Type
inst✝⁸ : Monad m
inst✝⁷ : Monad m'
inst✝⁶ : FwdDerivMonad K m m'
inst✝⁵ : LawfulMonad m
inst✝⁴ : LawfulMonad m'
X : Type
inst✝³ : Vec K X
Y : Type
inst✝² : Vec K Y
Z : Type
inst✝¹ : Vec K Z
E : ι → Type
inst✝ : (i : ι) → Vec K (E i)
c : Prop
dec : Decidable c
t e : X → m Y
ht : CDifferentiableM K t
he : CDifferentiableM K e
⊢ CDifferentiableM K fun x => if c then t x else e x
Tactic:
induction dec
State after:
case isFalse
ι : Sort ?u.46344
K : Type
inst✝⁹ : RCLike K
m m' : Type → Type
inst✝⁸ : Monad m
inst✝⁷ : Monad m'
inst✝⁶ : FwdDerivMonad K m m'
inst✝⁵ : LawfulMonad m
inst✝⁴ : LawfulMonad m'
X : Type
inst✝³ : Vec K X
Y : Type
inst✝² : Vec K Y
Z : Type
inst✝¹ : Vec K Z
E : ι → Type
inst✝ : (i : ι) → Vec K (E i)
c : Prop
t e : X → m Y
ht : CDifferentiableM K t
he : CDifferentiableM K e
h✝ : ¬c
⊢ CDifferentiableM K fun x => if c then t x else e x

case isTrue
ι : Sort ?u.46344
K : Type
inst✝⁹ : RCLike K
m m' : Type → Type
inst✝⁸ : Monad m
inst✝⁷ : Monad m'
inst✝⁶ : FwdDerivMonad K m m'
inst✝⁵ : LawfulMonad m
inst✝⁴ : LawfulMonad m'
X : Type
inst✝³ : Vec K X
Y : Type
inst✝² : Vec K Y
Z : Type
inst✝¹ : Vec K Z
E : ι → Type
inst✝ : (i : ι) → Vec K (E i)
c : Prop
t e : X → m Y
ht : CDifferentiableM K t
he : CDifferentiableM K e
h✝ : c
⊢ CDifferentiableM K fun x => if c then t x else e x

State before:
ι : Sort ?u.46344
K : Type
inst✝⁹ : RCLike K
m m' : Type → Type
inst✝⁸ : Monad m
inst✝⁷ : Monad m'
inst✝⁶ : FwdDerivMonad K m m'
inst✝⁵ : LawfulMonad m
inst✝⁴ : LawfulMonad m'
X : Type
inst✝³ : Vec K X
Y : Type
inst✝² : Vec K Y
Z : Type
inst✝¹ : Vec K Z
E : ι → Type
inst✝ : (i : ι) → Vec K (E i)
c : Prop
t e : X → m Y
ht : CDifferentiableM K t
he : CDifferentiableM K e
h : c
⊢ CDifferentiableM K fun x => if c then t x else e x
Tactic:
case isTrue h  => simp[ht,h]
State after:
no goals

State before:
ι : Sort ?u.46344
K : Type
inst✝⁹ : RCLike K
m m' : Type → Type
inst✝⁸ : Monad m
inst✝⁷ : Monad m'
inst✝⁶ : FwdDerivMonad K m m'
inst✝⁵ : LawfulMonad m
inst✝⁴ : LawfulMonad m'
X : Type
inst✝³ : Vec K X
Y : Type
inst✝² : Vec K Y
Z : Type
inst✝¹ : Vec K Z
E : ι → Type
inst✝ : (i : ι) → Vec K (E i)
c : Prop
t e : X → m Y
ht : CDifferentiableM K t
he : CDifferentiableM K e
h : ¬c
⊢ CDifferentiableM K fun x => if c then t x else e x
Tactic:
case isFalse h => simp[he,h]
State after:
no goals

State before:
ι : Sort ?u.46344
K : Type
inst✝⁹ : RCLike K
m m' : Type → Type
inst✝⁸ : Monad m
inst✝⁷ : Monad m'
inst✝⁶ : FwdDerivMonad K m m'
inst✝⁵ : LawfulMonad m
inst✝⁴ : LawfulMonad m'
X : Type
inst✝³ : Vec K X
Y : Type
inst✝² : Vec K Y
Z : Type
inst✝¹ : Vec K Z
E : ι → Type
inst✝ : (i : ι) → Vec K (E i)
c : Prop
t e : X → m Y
ht : CDifferentiableM K t
he : CDifferentiableM K e
h : c
⊢ CDifferentiableM K fun x => if c then t x else e x
Tactic:
simp[ht,h]
State after:
no goals

State before:
ι : Sort ?u.46344
K : Type
inst✝⁹ : RCLike K
m m' : Type → Type
inst✝⁸ : Monad m
inst✝⁷ : Monad m'
inst✝⁶ : FwdDerivMonad K m m'
inst✝⁵ : LawfulMonad m
inst✝⁴ : LawfulMonad m'
X : Type
inst✝³ : Vec K X
Y : Type
inst✝² : Vec K Y
Z : Type
inst✝¹ : Vec K Z
E : ι → Type
inst✝ : (i : ι) → Vec K (E i)
c : Prop
t e : X → m Y
ht : CDifferentiableM K t
he : CDifferentiableM K e
h : ¬c
⊢ CDifferentiableM K fun x => if c then t x else e x
Tactic:
simp[he,h]
State after:
no goals