ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Complex.orderClosedTopology
File: Mathlib/Analysis/Complex/Basic.lean

Proof steps:
state_before: z : ℂ
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℂ E
⊢ IsClosed {p | p.1 ≤ p.2}
state_after: z : ℂ
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℂ E
⊢ IsClosed ({a | a.1.re ≤ a.2.re} ∩ {a | a.1.im = a.2.im})
tactic: simp_rw [le_def, Set.setOf_and]
state_before: z : ℂ
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℂ E
⊢ IsClosed ({a | a.1.re ≤ a.2.re} ∩ {a | a.1.im = a.2.im})
state_after: no goals
tactic: refine IsClosed.inter (isClosed_le ?_ ?_) (isClosed_eq ?_ ?_) <;> continuity
Theorem: TensorProduct.liftAux.smul
File: Mathlib/LinearAlgebra/TensorProduct/Basic.lean

Proof steps:
state_before: R : Type u_1
inst✝¹⁶ : CommSemiring R
R' : Type u_2
inst✝¹⁵ : Monoid R'
R'' : Type u_3
inst✝¹⁴ : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_6
Q : Type u_7
S : Type u_8
T : Type u_9
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid N
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : AddCommMonoid Q
inst✝⁹ : AddCommMonoid S
inst✝⁸ : AddCommMonoid T
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module R P
inst✝⁴ : Module R Q
inst✝³ : Module R S
inst✝² : Module R T
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
f : M →ₗ[R] N →ₗ[R] P
r : R
x : M ⊗[R] N
p : M
q : N
⊢ (liftAux f) (r • p ⊗ₜ[R] q) = r • (liftAux f) (p ⊗ₜ[R] q)
state_after: no goals
tactic: simp_rw [← tmul_smul, liftAux_tmul, (f p).map_smul]
state_before: R : Type u_1
inst✝¹⁶ : CommSemiring R
R' : Type u_2
inst✝¹⁵ : Monoid R'
R'' : Type u_3
inst✝¹⁴ : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_6
Q : Type u_7
S : Type u_8
T : Type u_9
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid N
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : AddCommMonoid Q
inst✝⁹ : AddCommMonoid S
inst✝⁸ : AddCommMonoid T
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module R P
inst✝⁴ : Module R Q
inst✝³ : Module R S
inst✝² : Module R T
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
f : M →ₗ[R] N →ₗ[R] P
r : R
x p q : M ⊗[R] N
ih1 : (liftAux f) (r • p) = r • (liftAux f) p
ih2 : (liftAux f) (r • q) = r • (liftAux f) q
⊢ (liftAux f) (r • (p + q)) = r • (liftAux f) (p + q)
state_after: no goals
tactic: simp_rw [smul_add, (liftAux f).map_add, ih1, ih2, smul_add]
Theorem: UniformInducing.uniformGroup
File: Mathlib/Topology/Algebra/UniformGroup.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝⁹ : UniformSpace α
inst✝⁸ : Group α
inst✝⁷ : UniformGroup α
inst✝⁶ : Group β
γ : Type u_3
inst✝⁵ : Group γ
inst✝⁴ : UniformSpace γ
inst✝³ : UniformGroup γ
inst✝² : UniformSpace β
F : Type u_4
inst✝¹ : FunLike F β γ
inst✝ : MonoidHomClass F β γ
f : F
hf : UniformInducing ⇑f
⊢ UniformContinuous fun p => p.1 / p.2
state_after: α : Type u_1
β : Type u_2
inst✝⁹ : UniformSpace α
inst✝⁸ : Group α
inst✝⁷ : UniformGroup α
inst✝⁶ : Group β
γ : Type u_3
inst✝⁵ : Group γ
inst✝⁴ : UniformSpace γ
inst✝³ : UniformGroup γ
inst✝² : UniformSpace β
F : Type u_4
inst✝¹ : FunLike F β γ
inst✝ : MonoidHomClass F β γ
f : F
hf : UniformInducing ⇑f
⊢ UniformContinuous fun x => f x.1 / f x.2
tactic: simp_rw [hf.uniformContinuous_iff, Function.comp_def, map_div]
state_before: α : Type u_1
β : Type u_2
inst✝⁹ : UniformSpace α
inst✝⁸ : Group α
inst✝⁷ : UniformGroup α
inst✝⁶ : Group β
γ : Type u_3
inst✝⁵ : Group γ
inst✝⁴ : UniformSpace γ
inst✝³ : UniformGroup γ
inst✝² : UniformSpace β
F : Type u_4
inst✝¹ : FunLike F β γ
inst✝ : MonoidHomClass F β γ
f : F
hf : UniformInducing ⇑f
⊢ UniformContinuous fun x => f x.1 / f x.2
state_after: no goals
tactic: exact uniformContinuous_div.comp (hf.uniformContinuous.prod_map hf.uniformContinuous)
Theorem: Set.compl_section_ordSeparatingSet_mem_nhdsWithin_Iic
File: Mathlib/Topology/Order/T5.lean

Proof steps:
state_before: X : Type u_1
inst✝² : LinearOrder X
inst✝¹ : TopologicalSpace X
inst✝ : OrderTopology X
a b c : X
s t : Set X
hd : Disjoint s (closure t)
ha : a ∈ s
⊢ (s.ordSeparatingSet t).ordConnectedSectionᶜ ∈ 𝓝[≤] a
state_after: X : Type u_1
inst✝² : LinearOrder X
inst✝¹ : TopologicalSpace X
inst✝ : OrderTopology X
a b c : X
s t : Set X
hd : Disjoint s (closure t)
ha : a ∈ s
hd' : Disjoint (⇑ofDual ⁻¹' s) (closure (⇑ofDual ⁻¹' t))
⊢ (s.ordSeparatingSet t).ordConnectedSectionᶜ ∈ 𝓝[≤] a
tactic: have hd' : Disjoint (ofDual ⁻¹' s) (closure <| ofDual ⁻¹' t) := hd
state_before: X : Type u_1
inst✝² : LinearOrder X
inst✝¹ : TopologicalSpace X
inst✝ : OrderTopology X
a b c : X
s t : Set X
hd : Disjoint s (closure t)
ha : a ∈ s
hd' : Disjoint (⇑ofDual ⁻¹' s) (closure (⇑ofDual ⁻¹' t))
⊢ (s.ordSeparatingSet t).ordConnectedSectionᶜ ∈ 𝓝[≤] a
state_after: X : Type u_1
inst✝² : LinearOrder X
inst✝¹ : TopologicalSpace X
inst✝ : OrderTopology X
a b c : X
s t : Set X
hd : Disjoint s (closure t)
ha : a ∈ s
hd' : Disjoint (⇑ofDual ⁻¹' s) (closure (⇑ofDual ⁻¹' t))
ha' : toDual a ∈ ⇑ofDual ⁻¹' s
⊢ (s.ordSeparatingSet t).ordConnectedSectionᶜ ∈ 𝓝[≤] a
tactic: have ha' : toDual a ∈ ofDual ⁻¹' s := ha
state_before: X : Type u_1
inst✝² : LinearOrder X
inst✝¹ : TopologicalSpace X
inst✝ : OrderTopology X
a b c : X
s t : Set X
hd : Disjoint s (closure t)
ha : a ∈ s
hd' : Disjoint (⇑ofDual ⁻¹' s) (closure (⇑ofDual ⁻¹' t))
ha' : toDual a ∈ ⇑ofDual ⁻¹' s
⊢ (s.ordSeparatingSet t).ordConnectedSectionᶜ ∈ 𝓝[≤] a
state_after: no goals
tactic: simpa only [dual_ordSeparatingSet, dual_ordConnectedSection] using
    compl_section_ordSeparatingSet_mem_nhdsWithin_Ici hd' ha'
Theorem: MvPolynomial.degreeOf_add_le
File: Mathlib/Algebra/MvPolynomial/Degrees.lean

Proof steps:
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n✝ m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
n : σ
f g : MvPolynomial σ R
⊢ degreeOf n (f + g) ≤ max (degreeOf n f) (degreeOf n g)
state_after: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n✝ m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
n : σ
f g : MvPolynomial σ R
⊢ ((f + g).support.sup fun m => m n) ≤ max (f.support.sup fun m => m n) (g.support.sup fun m => m n)
tactic: simp_rw [degreeOf_eq_sup]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n✝ m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
n : σ
f g : MvPolynomial σ R
⊢ ((f + g).support.sup fun m => m n) ≤ max (f.support.sup fun m => m n) (g.support.sup fun m => m n)
state_after: no goals
tactic: exact supDegree_add_le
Theorem: HNNExtension.NormalWord.prod_empty
File: Mathlib/GroupTheory/HNNExtension.lean

Proof steps:
state_before: G : Type u_1
inst✝³ : Group G
A B : Subgroup G
φ : ↥A ≃* ↥B
H : Type u_2
inst✝² : Group H
M : Type u_3
inst✝¹ : Monoid M
d : TransversalPair G A B
inst✝ : DecidableEq G
⊢ ReducedWord.prod φ empty.toReducedWord = 1
state_after: no goals
tactic: simp [ReducedWord.prod]
Theorem: CategoryTheory.MorphismProperty.map_inverseImage_eq_of_isEquivalence
File: Mathlib/CategoryTheory/MorphismProperty/Basic.lean

Proof steps:
state_before: C : Type u
inst✝³ : Category.{v, u} C
D : Type u_1
inst✝² : Category.{u_2, u_1} D
P : MorphismProperty D
inst✝¹ : P.RespectsIso
F : C ⥤ D
inst✝ : F.IsEquivalence
⊢ (P.inverseImage F).map F = P
state_after: no goals
tactic: erw [P.inverseImage_equivalence_inverse_eq_map_functor F.asEquivalence, map_map,
    P.map_eq_of_iso F.asEquivalence.counitIso, map_id]
Theorem: ContinuousMap.continuous_isUnit_unit
File: Mathlib/Topology/ContinuousFunction/Units.lean

Proof steps:
state_before: X : Type u_1
M : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
f : C(X, R)
h : ∀ (x : X), IsUnit (f x)
⊢ Continuous fun x => ⋯.unit
state_after: X : Type u_1
M : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
f : C(X, R)
h : ∀ (x : X), IsUnit (f x)
x : X
⊢ ContinuousAt (fun x => ↑((fun x => ⋯.unit) x)⁻¹) x
tactic: refine
    continuous_induced_rng.2
      (Continuous.prod_mk f.continuous
        (MulOpposite.continuous_op.comp (continuous_iff_continuousAt.mpr fun x => ?_)))
state_before: X : Type u_1
M : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
f : C(X, R)
h : ∀ (x : X), IsUnit (f x)
x : X
⊢ ContinuousAt (fun x => ↑((fun x => ⋯.unit) x)⁻¹) x
state_after: X : Type u_1
M : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
f : C(X, R)
h : ∀ (x : X), IsUnit (f x)
x : X
this : ContinuousAt Ring.inverse ↑⋯.unit
⊢ ContinuousAt (fun x => ↑((fun x => ⋯.unit) x)⁻¹) x
tactic: have := NormedRing.inverse_continuousAt (h x).unit
state_before: X : Type u_1
M : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
f : C(X, R)
h : ∀ (x : X), IsUnit (f x)
x : X
this : ContinuousAt Ring.inverse ↑⋯.unit
⊢ ContinuousAt (fun x => ↑((fun x => ⋯.unit) x)⁻¹) x
state_after: X : Type u_1
M : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
f : C(X, R)
h : ∀ (x : X), IsUnit (f x)
x : X
this : ContinuousAt Ring.inverse ↑⋯.unit
⊢ ContinuousAt (fun x => ↑⋯.unit⁻¹) x
tactic: simp only
state_before: X : Type u_1
M : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
f : C(X, R)
h : ∀ (x : X), IsUnit (f x)
x : X
this : ContinuousAt Ring.inverse ↑⋯.unit
⊢ ContinuousAt (fun x => ↑⋯.unit⁻¹) x
state_after: X : Type u_1
M : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
f : C(X, R)
h : ∀ (x : X), IsUnit (f x)
x : X
this : ContinuousAt Ring.inverse (f x)
⊢ ContinuousAt (fun x => Ring.inverse (f x)) x
tactic: simp only [← Ring.inverse_unit, IsUnit.unit_spec] at this ⊢
state_before: X : Type u_1
M : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
f : C(X, R)
h : ∀ (x : X), IsUnit (f x)
x : X
this : ContinuousAt Ring.inverse (f x)
⊢ ContinuousAt (fun x => Ring.inverse (f x)) x
state_after: no goals
tactic: exact this.comp (f.continuousAt x)
Theorem: MulEquiv.mapSubgroup_apply
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

Proof steps:
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁵ : Group G
inst✝⁴ : Group G'
inst✝³ : Group G''
A : Type u_4
inst✝² : AddGroup A
H✝ : Type u_5
inst✝¹ : Group H✝
H : Type u_6
inst✝ : Group H
f : G ≃* H
sg : Subgroup G
⊢ Subgroup.map (↑f.symm) (Subgroup.map (↑f) sg) = sg
state_after: no goals
tactic: simp [Subgroup.map_map]
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁵ : Group G
inst✝⁴ : Group G'
inst✝³ : Group G''
A : Type u_4
inst✝² : AddGroup A
H✝ : Type u_5
inst✝¹ : Group H✝
H : Type u_6
inst✝ : Group H
f : G ≃* H
sh : Subgroup H
⊢ Subgroup.map (↑f) (Subgroup.map (↑f.symm) sh) = sh
state_after: no goals
tactic: simp [Subgroup.map_map]
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁵ : Group G
inst✝⁴ : Group G'
inst✝³ : Group G''
A : Type u_4
inst✝² : AddGroup A
H✝ : Type u_5
inst✝¹ : Group H✝
H : Type u_6
inst✝ : Group H
f : G ≃* H
sg1 sg2 : Subgroup G
h :
  { toFun := Subgroup.map ↑f, invFun := Subgroup.map ↑f.symm, left_inv := ⋯, right_inv := ⋯ } sg1 ≤
    { toFun := Subgroup.map ↑f, invFun := Subgroup.map ↑f.symm, left_inv := ⋯, right_inv := ⋯ } sg2
⊢ sg1 ≤ sg2
state_after: no goals
tactic: simpa [Subgroup.map_map] using
      Subgroup.map_mono (f := (f.symm : H →* G)) h
Theorem: AddLECancellable.lt_add_of_tsub_lt_left
File: Mathlib/Algebra/Order/Sub/Defs.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝³ : PartialOrder α
inst✝² : AddCommSemigroup α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
hb : AddLECancellable b
h : a - b < c
⊢ a < b + c
state_after: α : Type u_1
β : Type u_2
inst✝³ : PartialOrder α
inst✝² : AddCommSemigroup α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
hb : AddLECancellable b
h : a - b < c
⊢ a - b ≤ c ∧ a ≠ b + c
tactic: rw [lt_iff_le_and_ne, ← tsub_le_iff_left]
state_before: α : Type u_1
β : Type u_2
inst✝³ : PartialOrder α
inst✝² : AddCommSemigroup α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
hb : AddLECancellable b
h : a - b < c
⊢ a - b ≤ c ∧ a ≠ b + c
state_after: α : Type u_1
β : Type u_2
inst✝³ : PartialOrder α
inst✝² : AddCommSemigroup α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
hb : AddLECancellable b
h : a - b < c
⊢ a ≠ b + c
tactic: refine ⟨h.le, ?_⟩
state_before: α : Type u_1
β : Type u_2
inst✝³ : PartialOrder α
inst✝² : AddCommSemigroup α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
hb : AddLECancellable b
h : a - b < c
⊢ a ≠ b + c
state_after: α : Type u_1
β : Type u_2
inst✝³ : PartialOrder α
inst✝² : AddCommSemigroup α
inst✝¹ : Sub α
inst✝ : OrderedSub α
b c d : α
hb : AddLECancellable b
h : b + c - b < c
⊢ False
tactic: rintro rfl
state_before: α : Type u_1
β : Type u_2
inst✝³ : PartialOrder α
inst✝² : AddCommSemigroup α
inst✝¹ : Sub α
inst✝ : OrderedSub α
b c d : α
hb : AddLECancellable b
h : b + c - b < c
⊢ False
state_after: no goals
tactic: simp [hb] at h
Theorem: Real.sin_pos_of_pos_of_le_one
File: Mathlib/Data/Complex/Exponential.lean

Proof steps:
state_before: x : ℝ
hx0 : 0 < x
hx : x ≤ 1
⊢ |x| ^ 4 * (5 / 96) + x ^ 3 / 6 ≤ x * (5 / 96) + x / 6
state_after: case h₁.h
x : ℝ
hx0 : 0 < x
hx : x ≤ 1
⊢ |x| ^ 4 ≤ x

case h₂.hab
x : ℝ
hx0 : 0 < x
hx : x ≤ 1
⊢ x ^ 3 ≤ x
tactic: gcongr
state_before: x : ℝ
hx0 : 0 < x
hx : x ≤ 1
⊢ x * (5 / 96) + x / 6 < x
state_after: no goals
tactic: linarith
state_before: x : ℝ
hx0 : 0 < x
hx : x ≤ 1
⊢ |x| ≤ 1
state_after: no goals
tactic: rwa [_root_.abs_of_nonneg (le_of_lt hx0)]
Theorem: IsSelfAdjoint.conj_orthogonalProjection
File: Mathlib/Analysis/InnerProductSpace/Adjoint.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁹ : RCLike 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : InnerProductSpace 𝕜 E
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : InnerProductSpace 𝕜 G
inst✝² : CompleteSpace E
inst✝¹ : CompleteSpace F
T : E →L[𝕜] E
hT : IsSelfAdjoint T
U : Submodule 𝕜 E
inst✝ : CompleteSpace ↥U
⊢ IsSelfAdjoint (U.subtypeL.comp ((orthogonalProjection U).comp (T.comp (U.subtypeL.comp (orthogonalProjection U)))))
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁹ : RCLike 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : InnerProductSpace 𝕜 E
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : InnerProductSpace 𝕜 G
inst✝² : CompleteSpace E
inst✝¹ : CompleteSpace F
T : E →L[𝕜] E
hT : IsSelfAdjoint T
U : Submodule 𝕜 E
inst✝ : CompleteSpace ↥U
⊢ IsSelfAdjoint ((U.subtypeL.comp (orthogonalProjection U)).comp (T.comp (U.subtypeL.comp (orthogonalProjection U))))
tactic: rw [← ContinuousLinearMap.comp_assoc]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁹ : RCLike 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : InnerProductSpace 𝕜 E
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : InnerProductSpace 𝕜 G
inst✝² : CompleteSpace E
inst✝¹ : CompleteSpace F
T : E →L[𝕜] E
hT : IsSelfAdjoint T
U : Submodule 𝕜 E
inst✝ : CompleteSpace ↥U
⊢ IsSelfAdjoint ((U.subtypeL.comp (orthogonalProjection U)).comp (T.comp (U.subtypeL.comp (orthogonalProjection U))))
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁹ : RCLike 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : InnerProductSpace 𝕜 E
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : InnerProductSpace 𝕜 G
inst✝² : CompleteSpace E
inst✝¹ : CompleteSpace F
T : E →L[𝕜] E
hT : IsSelfAdjoint T
U : Submodule 𝕜 E
inst✝ : CompleteSpace ↥U
⊢ IsSelfAdjoint
    ((adjoint (U.subtypeL.comp (orthogonalProjection U))).comp (T.comp (U.subtypeL.comp (orthogonalProjection U))))
tactic: nth_rw 1 [← (orthogonalProjection_isSelfAdjoint U).adjoint_eq]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁹ : RCLike 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : InnerProductSpace 𝕜 E
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : InnerProductSpace 𝕜 G
inst✝² : CompleteSpace E
inst✝¹ : CompleteSpace F
T : E →L[𝕜] E
hT : IsSelfAdjoint T
U : Submodule 𝕜 E
inst✝ : CompleteSpace ↥U
⊢ IsSelfAdjoint
    ((adjoint (U.subtypeL.comp (orthogonalProjection U))).comp (T.comp (U.subtypeL.comp (orthogonalProjection U))))
state_after: no goals
tactic: exact hT.adjoint_conj _
Theorem: stdSimplexEquivIcc_apply_coe
File: Mathlib/Analysis/Convex/Basic.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝ : OrderedRing 𝕜
f : ↑(stdSimplex 𝕜 (Fin 2))
⊢ 1 - ↑f 0 = ↑f 0 + ↑f 1 - ↑f 0
state_after: no goals
tactic: rw [← Fin.sum_univ_two f.1, f.2.2]
Theorem: smul_div_assoc
File: Mathlib/Algebra/Group/Action/Defs.lean

Proof steps:
state_before: M : Type u_1
N : Type u_2
G : Type u_3
H : Type u_4
A : Type u_5
B : Type u_6
α : Type u_7
β : Type u_8
γ : Type u_9
δ : Type u_10
inst✝² : DivInvMonoid β
inst✝¹ : SMul α β
inst✝ : IsScalarTower α β β
r : α
x y : β
⊢ r • x / y = r • (x / y)
state_after: no goals
tactic: simp [div_eq_mul_inv, smul_mul_assoc]
Theorem: le_of_forall_pos_sub_le
File: Mathlib/Algebra/Order/Group/DenselyOrdered.lean

Proof steps:
state_before: α : Type u_1
inst✝³ : Group α
inst✝² : LinearOrder α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝ : DenselyOrdered α
a b c : α
h : ∀ (ε : α), 1 < ε → a / ε ≤ b
ε : α
ε1 : ε < 1
⊢ a * ε ≤ b
state_after: no goals
tactic: simpa only [div_eq_mul_inv, inv_inv] using h ε⁻¹ (Left.one_lt_inv_iff.2 ε1)
Theorem: Finset.prod_comp
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

Proof steps:
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g✝ : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq γ
f : γ → β
g : α → γ
⊢ ∏ a ∈ s, f (g a) = ∏ b ∈ image g s, f b ^ (filter (fun a => g a = b) s).card
state_after: no goals
tactic: simp_rw [← prod_const, prod_fiberwise_of_maps_to' fun _ ↦ mem_image_of_mem _]
Theorem: Filter.Tendsto.atTop_add
File: Mathlib/Topology/Order/LeftRightNhds.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atTop
hg : Tendsto g l (𝓝 C)
⊢ Tendsto (fun x => f x + g x) l atTop
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atTop
hg : Tendsto g l (𝓝 C)
⊢ Tendsto (fun x => g x + f x) l atTop
tactic: conv in _ + _ => rw [add_comm]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atTop
hg : Tendsto g l (𝓝 C)
⊢ Tendsto (fun x => g x + f x) l atTop
state_after: no goals
tactic: exact hg.add_atTop hf
Theorem: isAntichain_and_least_iff
File: Mathlib/Order/Antichain.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
s t : Set α
a b : α
inst✝ : Preorder α
⊢ s = {a} → IsAntichain (fun x x_1 => x ≤ x_1) s ∧ IsLeast s a
state_after: α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
t : Set α
a b : α
inst✝ : Preorder α
⊢ IsAntichain (fun x x_1 => x ≤ x_1) {a} ∧ IsLeast {a} a
tactic: rintro rfl
state_before: α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
t : Set α
a b : α
inst✝ : Preorder α
⊢ IsAntichain (fun x x_1 => x ≤ x_1) {a} ∧ IsLeast {a} a
state_after: no goals
tactic: exact ⟨isAntichain_singleton _ _, isLeast_singleton⟩
Theorem: Finset.sum_range_id
File: Mathlib/Algebra/BigOperators/Intervals.lean

Proof steps:
state_before: α : Type u_1
M : Type u_2
inst✝ : CommMonoid M
s₂ s₁ s : Finset α
a : α
g f : α → M
n : ℕ
⊢ ∑ i ∈ range n, i = n * (n - 1) / 2
state_after: no goals
tactic: rw [← sum_range_id_mul_two n, Nat.mul_div_cancel _ zero_lt_two]
Theorem: monovaryOn_neg
File: Mathlib/Algebra/Order/Monovary.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : OrderedCommGroup α
inst✝ : OrderedCommGroup β
s : Set ι
f f₁ f₂ : ι → α
g g₁ g₂ : ι → β
⊢ MonovaryOn f⁻¹ g⁻¹ s ↔ MonovaryOn f g s
state_after: no goals
tactic: simp
Theorem: Pi.summable
File: Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
π : α → Type u_6
inst✝¹ : (x : α) → CommMonoid (π x)
inst✝ : (x : α) → TopologicalSpace (π x)
f : ι → (x : α) → π x
⊢ Multipliable f ↔ ∀ (x : α), Multipliable fun i => f i x
state_after: no goals
tactic: simp only [Multipliable, Pi.hasProd, Classical.skolem]
Theorem: MeasureTheory.measure_sUnion₀
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
S : Set (Set α)
hs : S.Countable
hd : S.Pairwise (AEDisjoint μ)
h : ∀ s ∈ S, NullMeasurableSet s μ
⊢ μ (⋃₀ S) = ∑' (s : ↑S), μ ↑s
state_after: no goals
tactic: rw [sUnion_eq_biUnion, measure_biUnion₀ hs hd h]
Theorem: CategoryTheory.ShortComplex.epi_homologyMap_of_epi_cyclesMap'
File: Mathlib/Algebra/Homology/ShortComplex/Homology.lean

Proof steps:
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
A : C
inst✝¹ : S₁.HasHomology
inst✝ : S₂.HasHomology
h : Epi (cyclesMap φ)
⊢ Epi (homologyMap φ)
state_after: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
A : C
inst✝¹ : S₁.HasHomology
inst✝ : S₂.HasHomology
h : Epi (cyclesMap φ)
this : Epi (S₁.homologyπ ≫ homologyMap φ)
⊢ Epi (homologyMap φ)
tactic: have : Epi (S₁.homologyπ ≫ homologyMap φ) := by
    rw [homologyπ_naturality φ]
    apply epi_comp
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
A : C
inst✝¹ : S₁.HasHomology
inst✝ : S₂.HasHomology
h : Epi (cyclesMap φ)
this : Epi (S₁.homologyπ ≫ homologyMap φ)
⊢ Epi (homologyMap φ)
state_after: no goals
tactic: exact epi_of_epi S₁.homologyπ (homologyMap φ)
Theorem: Polynomial.derivative_C
File: Mathlib/Algebra/Polynomial/Derivative.lean

Proof steps:
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a✝ b : R
n : ℕ
inst✝ : Semiring R
a : R
⊢ derivative (C a) = 0
state_after: no goals
tactic: simp [derivative_apply]
Theorem: exterior_singleton_subset_iff_mem_nhds
File: Mathlib/Topology/AlexandrovDiscrete.lean

Proof steps:
state_before: ι : Sort u_1
κ : ι → Sort u_2
α : Type u_3
β : Type u_4
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
s t : Set α
a x y : α
inst✝¹ : AlexandrovDiscrete α
inst✝ : AlexandrovDiscrete β
⊢ exterior {a} ⊆ t ↔ t ∈ 𝓝 a
state_after: no goals
tactic: simp [exterior_subset_iff_mem_nhdsSet]
Theorem: MulChar.exists_mulChar_orderOf_eq_card_units
File: Mathlib/NumberTheory/MulChar/Lemmas.lean

Proof steps:
state_before: F : Type u_1
inst✝³ : Field F
inst✝² : Fintype F
R : Type u_2
inst✝¹ : CommRing R
inst✝ : DecidableEq F
ζ : R
hζ : IsPrimitiveRoot ζ ↑(Monoid.orderUnits F)
⊢ Fintype.card Fˣ ∣ Fintype.card F - 1
state_after: no goals
tactic: rw [Fintype.card_units]