internlm/Lean-Github huggingface dataset:
Theorem: SciLean.HasSemiAdjoint.Finset.sum.arg_f.HasSemiAdjoint_rule
Proof state before:
case is_differentiable
K✝ : Type ?u.46786
inst✝¹⁸ : RCLike K✝
X✝ : Type ?u.46792
inst✝¹⁷ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.46805
inst✝¹⁶ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.46816
inst✝¹⁵ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.46827
inst✝¹⁴ : SemiInnerProductSpace K✝ W✝
ι✝¹ : Type ?u.46838
inst✝¹³ : IndexType ι✝¹
inst✝¹² : LawfulIndexType ι✝¹
inst✝¹¹ : DecidableEq ι✝¹
E✝ : ι✝¹ → Type ?u.46865
inst✝¹⁰ : (i : ι✝¹) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_2
inst✝⁹ : RCLike K
X : Type u_3
inst✝⁸ : SemiInnerProductSpace K X
Y : Type u_4
inst✝⁷ : SemiInnerProductSpace K Y
Z : Type ?u.46911
inst✝⁶ : SemiInnerProductSpace K Z
W : Type ?u.46922
inst✝⁵ : SemiInnerProductSpace K W
ι✝ : Type ?u.46933
inst✝⁴ : IndexType ι✝
inst✝³ : LawfulIndexType ι✝
inst✝² : DecidableEq ι✝
E : ι✝ → Type ?u.46960
inst✝¹ : (i : ι✝) → SemiInnerProductSpace K (E i)
ι : Type u_1
inst✝ : Fintype ι
f : X → ι → Y
x✝ : ∀ (i : ι), HasSemiAdjoint K fun x => f x i
A : Finset ι
⊢ SciLean.CDifferentiable K fun x => ∑ i in A, f x i
Tactic:
sorry_proof
Proof state after:
no goals
Theorem: SciLean.HasSemiAdjoint.SciLean.IndexType.sum.arg_f.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.48564
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.48570
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.48583
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.48594
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.48605
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.48616
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.48643
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.48689
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.48700
inst✝⁴ : SemiInnerProductSpace K W
ι : Type u_4
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.48738
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
f : X → ι → Y
hf : ∀ (i : ι), HasSemiAdjoint K fun x => f x i
⊢ HasSemiAdjoint K fun x =>  ∑ i, f x i
Tactic:
sorry_proof
Proof state after:
no goals
Theorem: SciLean.HasSemiAdjoint.starRingEnd.arg_a.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.50314
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.50320
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.50333
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.50344
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.50355
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.50366
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.50393
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type ?u.50428
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.50439
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.50450
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.50461
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.50488
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
f : X → K
x✝ : HasSemiAdjoint K f
⊢ HasSemiAdjoint K fun x => (starRingEnd K) (f x)
Tactic:
sorry_proof
Proof state after:
no goals
Theorem: SciLean.HasSemiAdjoint.ite.arg_te.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.50881
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.50887
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.50900
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.50911
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.50922
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.50933
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.50960
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51006
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51017
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51028
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51055
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
dec : Decidable c
t e : X → Y
ht : HasSemiAdjoint K t
he : HasSemiAdjoint K e
⊢ HasSemiAdjoint K fun x => if c then t x else e x
Tactic:
induction dec
Proof state after:
case isFalse
K✝ : Type ?u.50881
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.50887
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.50900
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.50911
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.50922
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.50933
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.50960
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51006
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51017
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51028
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51055
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t e : X → Y
ht : HasSemiAdjoint K t
he : HasSemiAdjoint K e
h✝ : ¬c
⊢ HasSemiAdjoint K fun x => if c then t x else e x

case isTrue
K✝ : Type ?u.50881
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.50887
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.50900
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.50911
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.50922
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.50933
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.50960
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51006
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51017
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51028
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51055
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t e : X → Y
ht : HasSemiAdjoint K t
he : HasSemiAdjoint K e
h✝ : c
⊢ HasSemiAdjoint K fun x => if c then t x else e x
Theorem: SciLean.HasSemiAdjoint.ite.arg_te.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.50881
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.50887
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.50900
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.50911
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.50922
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.50933
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.50960
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51006
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51017
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51028
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51055
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t e : X → Y
ht : HasSemiAdjoint K t
he : HasSemiAdjoint K e
h : c
⊢ HasSemiAdjoint K fun x => if c then t x else e x
Tactic:
case isTrue h  => simp[h]; fun_prop
Proof state after:
no goals
Theorem: SciLean.HasSemiAdjoint.ite.arg_te.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.50881
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.50887
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.50900
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.50911
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.50922
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.50933
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.50960
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51006
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51017
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51028
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51055
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t e : X → Y
ht : HasSemiAdjoint K t
he : HasSemiAdjoint K e
h : ¬c
⊢ HasSemiAdjoint K fun x => if c then t x else e x
Tactic:
case isFalse h => simp[h]; fun_prop
Proof state after:
no goals
Theorem: SciLean.HasSemiAdjoint.ite.arg_te.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.50881
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.50887
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.50900
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.50911
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.50922
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.50933
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.50960
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51006
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51017
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51028
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51055
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t e : X → Y
ht : HasSemiAdjoint K t
he : HasSemiAdjoint K e
h : c
⊢ HasSemiAdjoint K fun x => if c then t x else e x
Tactic:
simp[h]
Proof state after:
K✝ : Type ?u.50881
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.50887
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.50900
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.50911
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.50922
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.50933
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.50960
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51006
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51017
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51028
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51055
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t e : X → Y
ht : HasSemiAdjoint K t
he : HasSemiAdjoint K e
h : c
⊢ HasSemiAdjoint K fun x => t x
Theorem: SciLean.HasSemiAdjoint.ite.arg_te.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.50881
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.50887
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.50900
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.50911
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.50922
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.50933
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.50960
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51006
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51017
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51028
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51055
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t e : X → Y
ht : HasSemiAdjoint K t
he : HasSemiAdjoint K e
h : c
⊢ HasSemiAdjoint K fun x => t x
Tactic:
fun_prop
Proof state after:
no goals
Theorem: SciLean.HasSemiAdjoint.ite.arg_te.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.50881
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.50887
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.50900
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.50911
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.50922
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.50933
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.50960
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51006
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51017
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51028
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51055
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t e : X → Y
ht : HasSemiAdjoint K t
he : HasSemiAdjoint K e
h : ¬c
⊢ HasSemiAdjoint K fun x => if c then t x else e x
Tactic:
simp[h]
Proof state after:
K✝ : Type ?u.50881
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.50887
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.50900
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.50911
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.50922
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.50933
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.50960
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51006
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51017
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51028
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51055
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t e : X → Y
ht : HasSemiAdjoint K t
he : HasSemiAdjoint K e
h : ¬c
⊢ HasSemiAdjoint K fun x => e x
Theorem: SciLean.HasSemiAdjoint.ite.arg_te.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.50881
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.50887
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.50900
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.50911
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.50922
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.50933
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.50960
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51006
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51017
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51028
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51055
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t e : X → Y
ht : HasSemiAdjoint K t
he : HasSemiAdjoint K e
h : ¬c
⊢ HasSemiAdjoint K fun x => e x
Tactic:
fun_prop
Proof state after:
no goals
Theorem: SciLean.HasSemiAdjoint.dite.arg_te.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.51406
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.51412
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.51425
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.51436
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.51447
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.51458
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.51485
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51531
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51542
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51553
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51580
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t : c → X → Y
ht : ∀ (p : c), HasSemiAdjoint K (t p)
e : ¬c → X → Y
he : ∀ (p : ¬c), HasSemiAdjoint K (e p)
h : c
⊢ HasSemiAdjoint K fun x => if x_1 : c then t x_1 x else e x_1 x
Tactic:
case isTrue h  => simp[h]; apply ht
Proof state after:
no goals
Theorem: SciLean.HasSemiAdjoint.dite.arg_te.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.51406
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.51412
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.51425
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.51436
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.51447
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.51458
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.51485
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51531
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51542
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51553
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51580
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t : c → X → Y
ht : ∀ (p : c), HasSemiAdjoint K (t p)
e : ¬c → X → Y
he : ∀ (p : ¬c), HasSemiAdjoint K (e p)
h : ¬c
⊢ HasSemiAdjoint K fun x => if x_1 : c then t x_1 x else e x_1 x
Tactic:
case isFalse h => simp[h]; apply he
Proof state after:
no goals
Theorem: SciLean.HasSemiAdjoint.dite.arg_te.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.51406
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.51412
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.51425
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.51436
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.51447
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.51458
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.51485
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51531
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51542
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51553
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51580
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t : c → X → Y
ht : ∀ (p : c), HasSemiAdjoint K (t p)
e : ¬c → X → Y
he : ∀ (p : ¬c), HasSemiAdjoint K (e p)
h : c
⊢ HasSemiAdjoint K fun x => if x_1 : c then t x_1 x else e x_1 x
Tactic:
simp[h]
Proof state after:
K✝ : Type ?u.51406
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.51412
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.51425
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.51436
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.51447
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.51458
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.51485
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51531
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51542
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51553
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51580
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t : c → X → Y
ht : ∀ (p : c), HasSemiAdjoint K (t p)
e : ¬c → X → Y
he : ∀ (p : ¬c), HasSemiAdjoint K (e p)
h : c
⊢ HasSemiAdjoint K fun x => t ⋯ x
Theorem: SciLean.HasSemiAdjoint.dite.arg_te.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.51406
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.51412
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.51425
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.51436
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.51447
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.51458
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.51485
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51531
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51542
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51553
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51580
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t : c → X → Y
ht : ∀ (p : c), HasSemiAdjoint K (t p)
e : ¬c → X → Y
he : ∀ (p : ¬c), HasSemiAdjoint K (e p)
h : c
⊢ HasSemiAdjoint K fun x => t ⋯ x
Tactic:
apply ht
Proof state after:
no goals
Theorem: SciLean.HasSemiAdjoint.dite.arg_te.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.51406
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.51412
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.51425
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.51436
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.51447
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.51458
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.51485
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51531
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51542
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51553
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51580
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t : c → X → Y
ht : ∀ (p : c), HasSemiAdjoint K (t p)
e : ¬c → X → Y
he : ∀ (p : ¬c), HasSemiAdjoint K (e p)
h : ¬c
⊢ HasSemiAdjoint K fun x => if x_1 : c then t x_1 x else e x_1 x
Tactic:
simp[h]
Proof state after:
K✝ : Type ?u.51406
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.51412
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.51425
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.51436
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.51447
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.51458
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.51485
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51531
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51542
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51553
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51580
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t : c → X → Y
ht : ∀ (p : c), HasSemiAdjoint K (t p)
e : ¬c → X → Y
he : ∀ (p : ¬c), HasSemiAdjoint K (e p)
h : ¬c
⊢ HasSemiAdjoint K fun x => e ⋯ x
Theorem: SciLean.HasSemiAdjoint.dite.arg_te.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.51406
inst✝¹⁷ : RCLike K✝
X✝ : Type ?u.51412
inst✝¹⁶ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.51425
inst✝¹⁵ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.51436
inst✝¹⁴ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.51447
inst✝¹³ : SemiInnerProductSpace K✝ W✝
ι✝ : Type ?u.51458
inst✝¹² : IndexType ι✝
inst✝¹¹ : LawfulIndexType ι✝
inst✝¹⁰ : DecidableEq ι✝
E✝ : ι✝ → Type ?u.51485
inst✝⁹ : (i : ι✝) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_1
inst✝⁸ : RCLike K
X : Type u_2
inst✝⁷ : SemiInnerProductSpace K X
Y : Type u_3
inst✝⁶ : SemiInnerProductSpace K Y
Z : Type ?u.51531
inst✝⁵ : SemiInnerProductSpace K Z
W : Type ?u.51542
inst✝⁴ : SemiInnerProductSpace K W
ι : Type ?u.51553
inst✝³ : IndexType ι
inst✝² : LawfulIndexType ι
inst✝¹ : DecidableEq ι
E : ι → Type ?u.51580
inst✝ : (i : ι) → SemiInnerProductSpace K (E i)
c : Prop
t : c → X → Y
ht : ∀ (p : c), HasSemiAdjoint K (t p)
e : ¬c → X → Y
he : ∀ (p : ¬c), HasSemiAdjoint K (e p)
h : ¬c
⊢ HasSemiAdjoint K fun x => e ⋯ x
Tactic:
apply he
Proof state after:
no goals