1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Wbtw.right_mem_affineSpan_of_left_ne
File: Mathlib/Analysis/Convex/Between.lean

tactic: rcases h.right_mem_image_Ici_of_left_ne hne with ⟨r, ⟨-, rfl⟩⟩
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : Wbtw R x y z
hne : x ≠ y
⊢ z ∈ affineSpan R {x, y}
state_after: case intro.intro
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y : P
hne : x ≠ y
r : R
h : Wbtw R x y ((lineMap x y) r)
⊢ (lineMap x y) r ∈ affineSpan R {x, y}

tactic: exact lineMap_mem_affineSpan_pair _ _ _
state_before: case intro.intro
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y : P
hne : x ≠ y
r : R
h : Wbtw R x y ((lineMap x y) r)
⊢ (lineMap x y) r ∈ affineSpan R {x, y}
state_after: no goals
Theorem: Stream'.Seq.enum_cons
File: Mathlib/Data/Seq/Seq.lean

tactic: ext ⟨n⟩ : 1
state_before: α : Type u
β : Type v
γ : Type w
s : Seq α
x : α
⊢ (cons x s).enum = cons (0, x) (map (Prod.map Nat.succ id) s.enum)
state_after: case h.zero
α : Type u
β : Type v
γ : Type w
s : Seq α
x : α
⊢ (cons x s).enum.get? 0 = (cons (0, x) (map (Prod.map Nat.succ id) s.enum)).get? 0

case h.succ
α : Type u
β : Type v
γ : Type w
s : Seq α
x : α
n✝ : ℕ
⊢ (cons x s).enum.get? (n✝ + 1) = (cons (0, x) (map (Prod.map Nat.succ id) s.enum)).get? (n✝ + 1)

tactic: simp
state_before: case h.zero
α : Type u
β : Type v
γ : Type w
s : Seq α
x : α
⊢ (cons x s).enum.get? 0 = (cons (0, x) (map (Prod.map Nat.succ id) s.enum)).get? 0
state_after: no goals

tactic: simp only [get?_enum, get?_cons_succ, map_get?, Option.map_map]
state_before: case h.succ
α : Type u
β : Type v
γ : Type w
s : Seq α
x : α
n✝ : ℕ
⊢ (cons x s).enum.get? (n✝ + 1) = (cons (0, x) (map (Prod.map Nat.succ id) s.enum)).get? (n✝ + 1)
state_after: case h.succ
α : Type u
β : Type v
γ : Type w
s : Seq α
x : α
n✝ : ℕ
⊢ Option.map (Prod.mk (n✝ + 1)) (s.get? n✝) = Option.map (Prod.map Nat.succ id ∘ Prod.mk n✝) (s.get? n✝)

tactic: congr
state_before: case h.succ
α : Type u
β : Type v
γ : Type w
s : Seq α
x : α
n✝ : ℕ
⊢ Option.map (Prod.mk (n✝ + 1)) (s.get? n✝) = Option.map (Prod.map Nat.succ id ∘ Prod.mk n✝) (s.get? n✝)
state_after: no goals
Theorem: Units.pow_ofPowEqOne
File: Mathlib/Algebra/Group/Commute/Units.lean

tactic: simp [ha]
state_before: M : Type u_1
inst✝ : Monoid M
n : ℕ
a b : M
u u₁ u₂ : Mˣ
ha : a ^ n = 1
hn : n ≠ 0
⊢ ↑(ofPowEqOne a n ha hn ^ n) = ↑1
state_after: no goals
Theorem: PartialHomeomorph.extend_preimage_mem_nhdsWithin
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rwa [← map_extend_symm_nhdsWithin f I h, mem_map] at ht
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
x : M
h : x ∈ f.source
ht : t ∈ 𝓝[s] x
⊢ ↑(f.extend I).symm ⁻¹' t ∈ 𝓝[↑(f.extend I).symm ⁻¹' s ∩ range ↑I] ↑(f.extend I) x
state_after: no goals
Theorem: MeasureTheory.integral_bilinear_hasDerivAt_right_eq_sub
File: Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean

tactic: rw [eq_sub_iff_add_eq, ← integral_add huv' hu'v]
state_before: E : Type u_1
F : Type u_2
G : Type u_3
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace ℝ G
L : E →L[ℝ] F →L[ℝ] G
u : ℝ → E
v : ℝ → F
u' : ℝ → E
v' : ℝ → F
m n : G
inst✝ : CompleteSpace G
hu : ∀ (x : ℝ), HasDerivAt u (u' x) x
hv : ∀ (x : ℝ), HasDerivAt v (v' x) x
huv' : Integrable (fun x => (L (u x)) (v' x)) volume
hu'v : Integrable (fun x => (L (u' x)) (v x)) volume
h_bot : Tendsto (fun x => (L (u x)) (v x)) atBot (𝓝 m)
h_top : Tendsto (fun x => (L (u x)) (v x)) atTop (𝓝 n)
⊢ ∫ (x : ℝ), (L (u x)) (v' x) = n - m - ∫ (x : ℝ), (L (u' x)) (v x)
state_after: E : Type u_1
F : Type u_2
G : Type u_3
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace ℝ G
L : E →L[ℝ] F →L[ℝ] G
u : ℝ → E
v : ℝ → F
u' : ℝ → E
v' : ℝ → F
m n : G
inst✝ : CompleteSpace G
hu : ∀ (x : ℝ), HasDerivAt u (u' x) x
hv : ∀ (x : ℝ), HasDerivAt v (v' x) x
huv' : Integrable (fun x => (L (u x)) (v' x)) volume
hu'v : Integrable (fun x => (L (u' x)) (v x)) volume
h_bot : Tendsto (fun x => (L (u x)) (v x)) atBot (𝓝 m)
h_top : Tendsto (fun x => (L (u x)) (v x)) atTop (𝓝 n)
⊢ ∫ (a : ℝ), (L (u a)) (v' a) + (L (u' a)) (v a) = n - m

tactic: exact integral_bilinear_hasDerivAt_eq_sub hu hv (huv'.add hu'v) h_bot h_top
state_before: E : Type u_1
F : Type u_2
G : Type u_3
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace ℝ G
L : E →L[ℝ] F →L[ℝ] G
u : ℝ → E
v : ℝ → F
u' : ℝ → E
v' : ℝ → F
m n : G
inst✝ : CompleteSpace G
hu : ∀ (x : ℝ), HasDerivAt u (u' x) x
hv : ∀ (x : ℝ), HasDerivAt v (v' x) x
huv' : Integrable (fun x => (L (u x)) (v' x)) volume
hu'v : Integrable (fun x => (L (u' x)) (v x)) volume
h_bot : Tendsto (fun x => (L (u x)) (v x)) atBot (𝓝 m)
h_top : Tendsto (fun x => (L (u x)) (v x)) atTop (𝓝 n)
⊢ ∫ (a : ℝ), (L (u a)) (v' a) + (L (u' a)) (v a) = n - m
state_after: no goals
Theorem: Complex.log_I
File: Mathlib/Analysis/SpecialFunctions/Complex/Log.lean

tactic: simp [log]
state_before: ⊢ log I = ↑π / 2 * I
state_after: no goals
Theorem: ProbabilityTheory.kernel.lintegral_swapRight
File: Mathlib/Probability/Kernel/Composition.lean

tactic: rw [swapRight, lintegral_map _ measurable_swap a hg]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f : β → γ
g✝ : γ → α
κ : ↥(kernel α (β × γ))
a : α
g : γ × β → ℝ≥0∞
hg : Measurable g
⊢ ∫⁻ (c : γ × β), g c ∂(swapRight κ) a = ∫⁻ (bc : β × γ), g bc.swap ∂κ a
state_after: no goals
Theorem: Ordinal.bmex_lt_ord_succ_card
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [← mk_ordinal_out]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u}
f : (a : Ordinal.{u}) → a < o → Ordinal.{u}
⊢ o.bmex f < (succ o.card).ord
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u}
f : (a : Ordinal.{u}) → a < o → Ordinal.{u}
⊢ o.bmex f < (succ #(Quotient.out o).α).ord

tactic: exact mex_lt_ord_succ_mk (familyOfBFamily o f)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u}
f : (a : Ordinal.{u}) → a < o → Ordinal.{u}
⊢ o.bmex f < (succ #(Quotient.out o).α).ord
state_after: no goals
Theorem: SlimCheck.Gen.chooseNatLt_aux
File: Mathlib/Testing/SlimCheck/Gen.lean

tactic: rw [Nat.succ_pred_eq_of_pos]
state_before: lo hi a : ℕ
h : lo.succ ≤ a ∧ a ≤ hi
⊢ a.pred.succ ≤ hi
state_after: lo hi a : ℕ
h : lo.succ ≤ a ∧ a ≤ hi
⊢ a ≤ hi

lo hi a : ℕ
h : lo.succ ≤ a ∧ a ≤ hi
⊢ 0 < a

tactic: exact h.right
state_before: lo hi a : ℕ
h : lo.succ ≤ a ∧ a ≤ hi
⊢ a ≤ hi
state_after: no goals

tactic: exact lt_of_le_of_lt (Nat.zero_le lo) h.left
state_before: lo hi a : ℕ
h : lo.succ ≤ a ∧ a ≤ hi
⊢ 0 < a
state_after: no goals
Theorem: CategoryTheory.PresheafOfGroups.OneCocycle.equivalence_isCohomologous
File: Mathlib/CategoryTheory/Sites/NonabelianCohomology/H1.lean

tactic: rintro γ₁ γ₂ ⟨α, h⟩
state_before: C : Type u
inst✝ : Category.{v, u} C
G : Cᵒᵖ ⥤ Grp
X : C
I : Type w'
U : I → C
⊢ ∀ {x y : OneCocycle G U}, x.IsCohomologous y → y.IsCohomologous x
state_after: case intro
C : Type u
inst✝ : Category.{v, u} C
G : Cᵒᵖ ⥤ Grp
X : C
I : Type w'
U : I → C
γ₁ γ₂ : OneCocycle G U
α : ZeroCochain G U
h : OneCohomologyRelation γ₁.toOneCochain γ₂.toOneCochain α
⊢ γ₂.IsCohomologous γ₁

tactic: exact ⟨_, h.symm⟩
state_before: case intro
C : Type u
inst✝ : Category.{v, u} C
G : Cᵒᵖ ⥤ Grp
X : C
I : Type w'
U : I → C
γ₁ γ₂ : OneCocycle G U
α : ZeroCochain G U
h : OneCohomologyRelation γ₁.toOneCochain γ₂.toOneCochain α
⊢ γ₂.IsCohomologous γ₁
state_after: no goals

tactic: rintro γ₁ γ₂ γ₂ ⟨α, h⟩ ⟨β, h'⟩
state_before: C : Type u
inst✝ : Category.{v, u} C
G : Cᵒᵖ ⥤ Grp
X : C
I : Type w'
U : I → C
⊢ ∀ {x y z : OneCocycle G U}, x.IsCohomologous y → y.IsCohomologous z → x.IsCohomologous z
state_after: case intro.intro
C : Type u
inst✝ : Category.{v, u} C
G : Cᵒᵖ ⥤ Grp
X : C
I : Type w'
U : I → C
γ₁ γ₂✝ γ₂ : OneCocycle G U
α : ZeroCochain G U
h : OneCohomologyRelation γ₁.toOneCochain γ₂✝.toOneCochain α
β : ZeroCochain G U
h' : OneCohomologyRelation γ₂✝.toOneCochain γ₂.toOneCochain β
⊢ γ₁.IsCohomologous γ₂

tactic: exact ⟨_, h.trans h'⟩
state_before: case intro.intro
C : Type u
inst✝ : Category.{v, u} C
G : Cᵒᵖ ⥤ Grp
X : C
I : Type w'
U : I → C
γ₁ γ₂✝ γ₂ : OneCocycle G U
α : ZeroCochain G U
h : OneCohomologyRelation γ₁.toOneCochain γ₂✝.toOneCochain α
β : ZeroCochain G U
h' : OneCohomologyRelation γ₂✝.toOneCochain γ₂.toOneCochain β
⊢ γ₁.IsCohomologous γ₂
state_after: no goals
Theorem: MeasureTheory.Measure.addHaar_image_homothety
File: Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean

tactic: simp only [← image_smul, image_image, ← sub_eq_add_neg]
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : μ.IsAddHaarMeasure
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ : Set E
x : E
r : ℝ
s : Set E
⊢ μ (⇑(AffineMap.homothety x r) '' s) = μ ((fun y => y + x) '' (r • (fun y => y + -x) '' s))
state_after: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : μ.IsAddHaarMeasure
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ : Set E
x : E
r : ℝ
s : Set E
⊢ μ (⇑(AffineMap.homothety x r) '' s) = μ ((fun x_1 => r • (x_1 - x) + x) '' s)

tactic: rfl
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : μ.IsAddHaarMeasure
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ : Set E
x : E
r : ℝ
s : Set E
⊢ μ (⇑(AffineMap.homothety x r) '' s) = μ ((fun x_1 => r • (x_1 - x) + x) '' s)
state_after: no goals

tactic: simp only [image_add_right, measure_preimage_add_right, addHaar_smul]
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : μ.IsAddHaarMeasure
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
s✝ : Set E
x : E
r : ℝ
s : Set E
⊢ μ ((fun y => y + x) '' (r • (fun y => y + -x) '' s)) = ENNReal.ofReal |r ^ finrank ℝ E| * μ s
state_after: no goals
Theorem: Ordnode.Valid'.node4L_lemma₁
File: Mathlib/Data/Ordmap/Ordset.lean

tactic: omega
state_before: α : Type u_1
inst✝ : Preorder α
a b c d : ℕ
lr₂ : 3 * (b + c + 1 + d) ≤ 16 * a + 9
mr₂ : b + c + 1 ≤ 3 * d
mm₁ : b ≤ 3 * c
⊢ b < 3 * a + 1
state_after: no goals
Theorem: EuclideanGeometry.oangle_midpoint_right
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean

tactic: by_cases h : p₃ = p₂
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
⊢ ∡ p₁ p₂ (midpoint ℝ p₃ p₂) = ∡ p₁ p₂ p₃
state_after: case pos
V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : p₃ = p₂
⊢ ∡ p₁ p₂ (midpoint ℝ p₃ p₂) = ∡ p₁ p₂ p₃

case neg
V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ¬p₃ = p₂
⊢ ∡ p₁ p₂ (midpoint ℝ p₃ p₂) = ∡ p₁ p₂ p₃

tactic: exact (sbtw_midpoint_of_ne ℝ h).symm.oangle_eq_right
state_before: case neg
V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ¬p₃ = p₂
⊢ ∡ p₁ p₂ (midpoint ℝ p₃ p₂) = ∡ p₁ p₂ p₃
state_after: no goals

tactic: simp [h]
state_before: case pos
V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : p₃ = p₂
⊢ ∡ p₁ p₂ (midpoint ℝ p₃ p₂) = ∡ p₁ p₂ p₃
state_after: no goals
Theorem: Mathlib.Meta.NormNum.isNat_intCast
File: Mathlib/Tactic/NormNum/Basic.lean

tactic: rintro ⟨⟨⟩⟩
state_before: R : Type u_1
inst✝ : Ring R
n : ℤ
m : ℕ
⊢ IsNat n m → IsNat (↑n) m
state_after: case mk.refl
R : Type u_1
inst✝ : Ring R
m : ℕ
⊢ IsNat (↑↑m) m

tactic: exact ⟨by simp⟩
state_before: case mk.refl
R : Type u_1
inst✝ : Ring R
m : ℕ
⊢ IsNat (↑↑m) m
state_after: no goals

tactic: simp
state_before: R : Type u_1
inst✝ : Ring R
m : ℕ
⊢ ↑↑m = ↑m
state_after: no goals
Theorem: HomologicalComplex.opcyclesToCycles_homologyπ
File: Mathlib/Algebra/Homology/HomologySequence.lean

tactic: simp only [← cancel_epi (K.pOpcycles i),
  pOpcycles_opcyclesToCycles_assoc, toCycles_comp_homologyπ, comp_zero]
state_before: C : Type u_1
ι : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : HasZeroMorphisms C
c : ComplexShape ι
K L : HomologicalComplex C c
φ : K ⟶ L
i j : ι
inst✝³ : K.HasHomology i
inst✝² : K.HasHomology j
inst✝¹ : L.HasHomology i
inst✝ : L.HasHomology j
⊢ K.opcyclesToCycles i j ≫ K.homologyπ j = 0
state_after: no goals
Theorem: Commute.expUnitary_add
File: Mathlib/Analysis/NormedSpace/Star/Exponential.lean

tactic: ext
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : ↥(selfAdjoint A)
h : Commute ↑a ↑b
⊢ expUnitary (a + b) = expUnitary a * expUnitary b
state_after: case a
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : ↥(selfAdjoint A)
h : Commute ↑a ↑b
⊢ ↑(expUnitary (a + b)) = ↑(expUnitary a * expUnitary b)

tactic: have hcomm : Commute (I • (a : A)) (I • (b : A)) := by
  unfold Commute SemiconjBy
  simp only [h.eq, Algebra.smul_mul_assoc, Algebra.mul_smul_comm]
state_before: case a
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : ↥(selfAdjoint A)
h : Commute ↑a ↑b
⊢ ↑(expUnitary (a + b)) = ↑(expUnitary a * expUnitary b)
state_after: case a
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : ↥(selfAdjoint A)
h : Commute ↑a ↑b
hcomm : Commute (I • ↑a) (I • ↑b)
⊢ ↑(expUnitary (a + b)) = ↑(expUnitary a * expUnitary b)

tactic: simpa only [expUnitary_coe, AddSubgroup.coe_add, smul_add] using exp_add_of_commute hcomm
state_before: case a
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : ↥(selfAdjoint A)
h : Commute ↑a ↑b
hcomm : Commute (I • ↑a) (I • ↑b)
⊢ ↑(expUnitary (a + b)) = ↑(expUnitary a * expUnitary b)
state_after: no goals

tactic: unfold Commute SemiconjBy
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : ↥(selfAdjoint A)
h : Commute ↑a ↑b
⊢ Commute (I • ↑a) (I • ↑b)
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : ↥(selfAdjoint A)
h : Commute ↑a ↑b
⊢ I • ↑a * I • ↑b = I • ↑b * I • ↑a

tactic: simp only [h.eq, Algebra.smul_mul_assoc, Algebra.mul_smul_comm]
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : ↥(selfAdjoint A)
h : Commute ↑a ↑b
⊢ I • ↑a * I • ↑b = I • ↑b * I • ↑a
state_after: no goals
Theorem: ENNReal.finite_const_le_of_tsum_ne_top
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: by_contra h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε✝ ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f g : α → ℝ≥0∞
ι : Type u_4
a : ι → ℝ≥0∞
tsum_ne_top : ∑' (i : ι), a i ≠ ⊤
ε : ℝ≥0∞
ε_ne_zero : ε ≠ 0
⊢ {i | ε ≤ a i}.Finite
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε✝ ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f g : α → ℝ≥0∞
ι : Type u_4
a : ι → ℝ≥0∞
tsum_ne_top : ∑' (i : ι), a i ≠ ⊤
ε : ℝ≥0∞
ε_ne_zero : ε ≠ 0
h : ¬{i | ε ≤ a i}.Finite
⊢ False

tactic: have := Infinite.to_subtype h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε✝ ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f g : α → ℝ≥0∞
ι : Type u_4
a : ι → ℝ≥0∞
tsum_ne_top : ∑' (i : ι), a i ≠ ⊤
ε : ℝ≥0∞
ε_ne_zero : ε ≠ 0
h : ¬{i | ε ≤ a i}.Finite
⊢ False
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε✝ ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f g : α → ℝ≥0∞
ι : Type u_4
a : ι → ℝ≥0∞
tsum_ne_top : ∑' (i : ι), a i ≠ ⊤
ε : ℝ≥0∞
ε_ne_zero : ε ≠ 0
h : ¬{i | ε ≤ a i}.Finite
this : Infinite ↑{i | ε ≤ a i}
⊢ False

tactic: refine tsum_ne_top (top_unique ?_)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε✝ ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f g : α → ℝ≥0∞
ι : Type u_4
a : ι → ℝ≥0∞
tsum_ne_top : ∑' (i : ι), a i ≠ ⊤
ε : ℝ≥0∞
ε_ne_zero : ε ≠ 0
h : ¬{i | ε ≤ a i}.Finite
this : Infinite ↑{i | ε ≤ a i}
⊢ False
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε✝ ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f g : α → ℝ≥0∞
ι : Type u_4
a : ι → ℝ≥0∞
tsum_ne_top : ∑' (i : ι), a i ≠ ⊤
ε : ℝ≥0∞
ε_ne_zero : ε ≠ 0
h : ¬{i | ε ≤ a i}.Finite
this : Infinite ↑{i | ε ≤ a i}
⊢ ⊤ ≤ ∑' (i : ι), a i

tactic: calc ∞ = ∑' _ : { i | ε ≤ a i }, ε := (tsum_const_eq_top_of_ne_zero ε_ne_zero).symm
_ ≤ ∑' i, a i := tsum_le_tsum_of_inj (↑) Subtype.val_injective (fun _ _ => zero_le _)
  (fun i => i.2) ENNReal.summable ENNReal.summable
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε✝ ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f g : α → ℝ≥0∞
ι : Type u_4
a : ι → ℝ≥0∞
tsum_ne_top : ∑' (i : ι), a i ≠ ⊤
ε : ℝ≥0∞
ε_ne_zero : ε ≠ 0
h : ¬{i | ε ≤ a i}.Finite
this : Infinite ↑{i | ε ≤ a i}
⊢ ⊤ ≤ ∑' (i : ι), a i
state_after: no goals
Theorem: CategoryTheory.Limits.Cofork.app_zero_eq_comp_π_right
File: Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean

tactic: rw [← s.app_one_eq_π, ← s.w right, parallelPair_map_right]
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : C
f g : X ⟶ Y
s : Cofork f g
⊢ s.ι.app zero = g ≫ s.π
state_after: no goals
Theorem: IsCompactlyGenerated.BooleanGenerators.sSup_le_sSup_iff_of_atoms
File: Mathlib/Order/BooleanGenerators.lean

tactic: refine ⟨?_, sSup_le_sSup⟩
state_before: α : Type u_1
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
S : Set α
hS : BooleanGenerators S
X Y : Set α
hX : X ⊆ S
hY : Y ⊆ S
⊢ sSup X ≤ sSup Y ↔ X ⊆ Y
state_after: α : Type u_1
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
S : Set α
hS : BooleanGenerators S
X Y : Set α
hX : X ⊆ S
hY : Y ⊆ S
⊢ sSup X ≤ sSup Y → X ⊆ Y

tactic: intro h a ha
state_before: α : Type u_1
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
S : Set α
hS : BooleanGenerators S
X Y : Set α
hX : X ⊆ S
hY : Y ⊆ S
⊢ sSup X ≤ sSup Y → X ⊆ Y
state_after: α : Type u_1
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
S : Set α
hS : BooleanGenerators S
X Y : Set α
hX : X ⊆ S
hY : Y ⊆ S
h : sSup X ≤ sSup Y
a : α
ha : a ∈ X
⊢ a ∈ Y

tactic: apply (hS.mono hY).mem_of_isAtom_of_le_sSup_atoms _ _ ((le_sSup ha).trans h)
state_before: α : Type u_1
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
S : Set α
hS : BooleanGenerators S
X Y : Set α
hX : X ⊆ S
hY : Y ⊆ S
h : sSup X ≤ sSup Y
a : α
ha : a ∈ X
⊢ a ∈ Y
state_after: α : Type u_1
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
S : Set α
hS : BooleanGenerators S
X Y : Set α
hX : X ⊆ S
hY : Y ⊆ S
h : sSup X ≤ sSup Y
a : α
ha : a ∈ X
⊢ IsAtom a

tactic: exact (hS.mono hX).isAtom a ha
state_before: α : Type u_1
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
S : Set α
hS : BooleanGenerators S
X Y : Set α
hX : X ⊆ S
hY : Y ⊆ S
h : sSup X ≤ sSup Y
a : α
ha : a ∈ X
⊢ IsAtom a
state_after: no goals
Theorem: Option.elim_comp₂
File: Mathlib/Data/Option/Basic.lean

tactic: cases i <;> rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
h : α → β → γ
f : γ → α
x : α
g : γ → β
y : β
i : Option γ
⊢ (i.elim (h x y) fun j => h (f j) (g j)) = h (i.elim x f) (i.elim y g)
state_after: no goals
Theorem: Complex.sinh_three_mul
File: Mathlib/Data/Complex/Exponential.lean

tactic: have h1 : x + 2 * x = 3 * x := by ring
state_before: x y : ℂ
⊢ sinh (3 * x) = 4 * sinh x ^ 3 + 3 * sinh x
state_after: x y : ℂ
h1 : x + 2 * x = 3 * x
⊢ sinh (3 * x) = 4 * sinh x ^ 3 + 3 * sinh x

tactic: rw [← h1, sinh_add x (2 * x)]
state_before: x y : ℂ
h1 : x + 2 * x = 3 * x
⊢ sinh (3 * x) = 4 * sinh x ^ 3 + 3 * sinh x
state_after: x y : ℂ
h1 : x + 2 * x = 3 * x
⊢ sinh x * cosh (2 * x) + cosh x * sinh (2 * x) = 4 * sinh x ^ 3 + 3 * sinh x

tactic: simp only [cosh_two_mul, sinh_two_mul]
state_before: x y : ℂ
h1 : x + 2 * x = 3 * x
⊢ sinh x * cosh (2 * x) + cosh x * sinh (2 * x) = 4 * sinh x ^ 3 + 3 * sinh x
state_after: x y : ℂ
h1 : x + 2 * x = 3 * x
⊢ sinh x * (cosh x ^ 2 + sinh x ^ 2) + cosh x * (2 * sinh x * cosh x) = 4 * sinh x ^ 3 + 3 * sinh x

tactic: have h2 : cosh x * (2 * sinh x * cosh x) = 2 * sinh x * cosh x ^ 2 := by ring
state_before: x y : ℂ
h1 : x + 2 * x = 3 * x
⊢ sinh x * (cosh x ^ 2 + sinh x ^ 2) + cosh x * (2 * sinh x * cosh x) = 4 * sinh x ^ 3 + 3 * sinh x
state_after: x y : ℂ
h1 : x + 2 * x = 3 * x
h2 : cosh x * (2 * sinh x * cosh x) = 2 * sinh x * cosh x ^ 2
⊢ sinh x * (cosh x ^ 2 + sinh x ^ 2) + cosh x * (2 * sinh x * cosh x) = 4 * sinh x ^ 3 + 3 * sinh x

tactic: rw [h2, cosh_sq]
state_before: x y : ℂ
h1 : x + 2 * x = 3 * x
h2 : cosh x * (2 * sinh x * cosh x) = 2 * sinh x * cosh x ^ 2
⊢ sinh x * (cosh x ^ 2 + sinh x ^ 2) + cosh x * (2 * sinh x * cosh x) = 4 * sinh x ^ 3 + 3 * sinh x
state_after: x y : ℂ
h1 : x + 2 * x = 3 * x
h2 : cosh x * (2 * sinh x * cosh x) = 2 * sinh x * cosh x ^ 2
⊢ sinh x * (sinh x ^ 2 + 1 + sinh x ^ 2) + 2 * sinh x * (sinh x ^ 2 + 1) = 4 * sinh x ^ 3 + 3 * sinh x

tactic: ring
state_before: x y : ℂ
h1 : x + 2 * x = 3 * x
h2 : cosh x * (2 * sinh x * cosh x) = 2 * sinh x * cosh x ^ 2
⊢ sinh x * (sinh x ^ 2 + 1 + sinh x ^ 2) + 2 * sinh x * (sinh x ^ 2 + 1) = 4 * sinh x ^ 3 + 3 * sinh x
state_after: no goals

tactic: ring
state_before: x y : ℂ
⊢ x + 2 * x = 3 * x
state_after: no goals

tactic: ring
state_before: x y : ℂ
h1 : x + 2 * x = 3 * x
⊢ cosh x * (2 * sinh x * cosh x) = 2 * sinh x * cosh x ^ 2
state_after: no goals