ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: FirstOrder.Language.Term.encoding_decode
File: Mathlib/ModelTheory/Encoding.lean

Proof steps:
state_before: L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
t : L.Term α
⊢ (fun l =>
        (do
            let a ← (listDecode l).head?
            pure (some a)).join)
      t.listEncode =
    some t
state_after: L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
t : L.Term α
h : listDecode ([t].bind listEncode) = [t]
⊢ (fun l =>
        (do
            let a ← (listDecode l).head?
            pure (some a)).join)
      t.listEncode =
    some t
tactic: have h := listDecode_encode_list [t]
state_before: L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
t : L.Term α
h : listDecode ([t].bind listEncode) = [t]
⊢ (fun l =>
        (do
            let a ← (listDecode l).head?
            pure (some a)).join)
      t.listEncode =
    some t
state_after: L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
t : L.Term α
h : listDecode t.listEncode = [t]
⊢ (fun l =>
        (do
            let a ← (listDecode l).head?
            pure (some a)).join)
      t.listEncode =
    some t
tactic: rw [bind_singleton] at h
state_before: L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
t : L.Term α
h : listDecode t.listEncode = [t]
⊢ (fun l =>
        (do
            let a ← (listDecode l).head?
            pure (some a)).join)
      t.listEncode =
    some t
state_after: no goals
tactic: simp only [Option.join, h, head?_cons, Option.pure_def, Option.bind_eq_bind, Option.some_bind,
      id_eq]
Theorem: Basis.ext_elem_iff
File: Mathlib/LinearAlgebra/Basis.lean

Proof steps:
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁹ : Semiring R
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : Module R M'
b b₁ : Basis ι R M
i : ι
c : R
x✝ : M
R₁ : Type u_10
inst✝⁴ : Semiring R₁
σ : R →+* R₁
σ' : R₁ →+* R
inst✝³ : RingHomInvPair σ σ'
inst✝² : RingHomInvPair σ' σ
M₁ : Type u_11
inst✝¹ : AddCommMonoid M₁
inst✝ : Module R₁ M₁
x y : M
⊢ x = y ↔ ∀ (i : ι), (b.repr x) i = (b.repr y) i
state_after: no goals
tactic: simp only [← DFunLike.ext_iff, EmbeddingLike.apply_eq_iff_eq]
Theorem: geom_sum_Ico
File: Mathlib/Algebra/GeomSum.lean

Proof steps:
state_before: α : Type u
inst✝ : DivisionRing α
x : α
hx : x ≠ 1
m n : ℕ
hmn : m ≤ n
⊢ ∑ i ∈ Ico m n, x ^ i = (x ^ n - x ^ m) / (x - 1)
state_after: no goals
tactic: simp only [sum_Ico_eq_sub _ hmn, geom_sum_eq hx, div_sub_div_same, sub_sub_sub_cancel_right]
Theorem: CategoryTheory.OverPresheafAux.MakesOverArrow.of_yoneda_arrow
File: Mathlib/CategoryTheory/Comma/Presheaf.lean

Proof steps:
state_before: C : Type u
inst✝ : Category.{v, u} C
A : Cᵒᵖ ⥤ Type v
Y : C
η : yoneda.obj Y ⟶ A
X : C
s : yoneda.obj X ⟶ A
f : X ⟶ Y
hf : yoneda.map f ≫ η = s
⊢ MakesOverArrow η s f
state_after: no goals
tactic: simpa only [yonedaEquiv_yoneda_map f] using of_arrow hf
Theorem: LinearLocallyFiniteOrder.isGLB_Ioc_of_isGLB_Ioi
File: Mathlib/Order/SuccPred/LinearLocallyFinite.lean

Proof steps:
state_before: ι : Type u_1
inst✝ : LinearOrder ι
i j k : ι
hij_lt : i < j
h : IsGLB (Set.Ioi i) k
⊢ IsGLB (Set.Ioc i j) k
state_after: ι : Type u_1
inst✝ : LinearOrder ι
i j k : ι
hij_lt : i < j
h : (∀ x ∈ Set.Ioi i, k ≤ x) ∧ ∀ (x : ι), (∀ x_1 ∈ Set.Ioi i, x ≤ x_1) → x ≤ k
⊢ (∀ x ∈ Set.Ioc i j, k ≤ x) ∧ ∀ (x : ι), (∀ x_1 ∈ Set.Ioc i j, x ≤ x_1) → x ≤ k
tactic: simp_rw [IsGLB, IsGreatest, mem_upperBounds, mem_lowerBounds] at h ⊢
state_before: ι : Type u_1
inst✝ : LinearOrder ι
i j k : ι
hij_lt : i < j
h : (∀ x ∈ Set.Ioi i, k ≤ x) ∧ ∀ (x : ι), (∀ x_1 ∈ Set.Ioi i, x ≤ x_1) → x ≤ k
⊢ (∀ x ∈ Set.Ioc i j, k ≤ x) ∧ ∀ (x : ι), (∀ x_1 ∈ Set.Ioc i j, x ≤ x_1) → x ≤ k
state_after: ι : Type u_1
inst✝ : LinearOrder ι
i j k : ι
hij_lt : i < j
h : (∀ x ∈ Set.Ioi i, k ≤ x) ∧ ∀ (x : ι), (∀ x_1 ∈ Set.Ioi i, x ≤ x_1) → x ≤ k
x : ι
hx : ∀ x_1 ∈ Set.Ioc i j, x ≤ x_1
⊢ ∀ x_1 ∈ Set.Ioi i, x ≤ x_1
tactic: refine ⟨fun x hx ↦ h.1 x hx.1, fun x hx ↦ h.2 x ?_⟩
state_before: ι : Type u_1
inst✝ : LinearOrder ι
i j k : ι
hij_lt : i < j
h : (∀ x ∈ Set.Ioi i, k ≤ x) ∧ ∀ (x : ι), (∀ x_1 ∈ Set.Ioi i, x ≤ x_1) → x ≤ k
x : ι
hx : ∀ x_1 ∈ Set.Ioc i j, x ≤ x_1
⊢ ∀ x_1 ∈ Set.Ioi i, x ≤ x_1
state_after: ι : Type u_1
inst✝ : LinearOrder ι
i j k : ι
hij_lt : i < j
h : (∀ x ∈ Set.Ioi i, k ≤ x) ∧ ∀ (x : ι), (∀ x_1 ∈ Set.Ioi i, x ≤ x_1) → x ≤ k
x : ι
hx : ∀ x_1 ∈ Set.Ioc i j, x ≤ x_1
y : ι
hy : y ∈ Set.Ioi i
⊢ x ≤ y
tactic: intro y hy
state_before: ι : Type u_1
inst✝ : LinearOrder ι
i j k : ι
hij_lt : i < j
h : (∀ x ∈ Set.Ioi i, k ≤ x) ∧ ∀ (x : ι), (∀ x_1 ∈ Set.Ioi i, x ≤ x_1) → x ≤ k
x : ι
hx : ∀ x_1 ∈ Set.Ioc i j, x ≤ x_1
y : ι
hy : y ∈ Set.Ioi i
⊢ x ≤ y
state_after: case inl
ι : Type u_1
inst✝ : LinearOrder ι
i j k : ι
hij_lt : i < j
h : (∀ x ∈ Set.Ioi i, k ≤ x) ∧ ∀ (x : ι), (∀ x_1 ∈ Set.Ioi i, x ≤ x_1) → x ≤ k
x : ι
hx : ∀ x_1 ∈ Set.Ioc i j, x ≤ x_1
y : ι
hy : y ∈ Set.Ioi i
h_le : y ≤ j
⊢ x ≤ y

case inr
ι : Type u_1
inst✝ : LinearOrder ι
i j k : ι
hij_lt : i < j
h : (∀ x ∈ Set.Ioi i, k ≤ x) ∧ ∀ (x : ι), (∀ x_1 ∈ Set.Ioi i, x ≤ x_1) → x ≤ k
x : ι
hx : ∀ x_1 ∈ Set.Ioc i j, x ≤ x_1
y : ι
hy : y ∈ Set.Ioi i
h_lt : j < y
⊢ x ≤ y
tactic: rcases le_or_lt y j with h_le | h_lt
Theorem: tendsto_comp_coe_Ioo_atTop
File: Mathlib/Topology/Order/DenselyOrdered.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f : α → β
h : a < b
⊢ Tendsto (fun x => f ↑x) atTop l ↔ Tendsto f (𝓝[<] b) l
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f : α → β
h : a < b
⊢ Tendsto (fun x => f ↑x) atTop l ↔ Tendsto (f ∘ Subtype.val) atTop l
tactic: rw [← map_coe_Ioo_atTop h, tendsto_map'_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f : α → β
h : a < b
⊢ Tendsto (fun x => f ↑x) atTop l ↔ Tendsto (f ∘ Subtype.val) atTop l
state_after: no goals
tactic: rfl
Theorem: symmDiff_triangle
File: Mathlib/Order/SymmDiff.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedCoheytingAlgebra α
a b c d : α
⊢ a ∆ c ≤ a ∆ b ⊔ b ∆ c
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedCoheytingAlgebra α
a b c d : α
⊢ a \ b ⊔ b \ c ⊔ (c \ b ⊔ b \ a) = a ∆ b ⊔ b ∆ c
tactic: refine (sup_le_sup (sdiff_triangle a b c) <| sdiff_triangle _ b _).trans_eq ?_
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedCoheytingAlgebra α
a b c d : α
⊢ a \ b ⊔ b \ c ⊔ (c \ b ⊔ b \ a) = a ∆ b ⊔ b ∆ c
state_after: no goals
tactic: rw [sup_comm (c \ b), sup_sup_sup_comm, symmDiff, symmDiff]
Theorem: CategoryTheory.Abelian.comp_coimage_π_eq_zero
File: Mathlib/CategoryTheory/Abelian/Basic.lean

Proof steps:
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Abelian C
P Q : C
f : P ⟶ Q
R : C
g : Q ⟶ R
h : f ≫ g = 0
⊢ (f ≫ coimage.π g) ≫ Abelian.factorThruCoimage g = 0
state_after: no goals
tactic: simp [h]
Theorem: CategoryTheory.Functor.hasRightDerivedFunctor_iff
File: Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean

Proof steps:
state_before: C : Type u_1
C' : Type ?u.80223
D : Type u_5
D' : Type ?u.80229
H : Type u_2
H' : Type ?u.80235
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Category.{?u.80243, ?u.80223} C'
inst✝⁴ : Category.{u_6, u_5} D
inst✝³ : Category.{?u.80251, ?u.80229} D'
inst✝² : Category.{u_4, u_2} H
inst✝¹ : Category.{?u.80259, ?u.80235} H'
RF RF' RF'' : D ⥤ H
F F' F'' : C ⥤ H
e : F ≅ F'
L : C ⥤ D
α : F ⟶ L ⋙ RF
α' : F' ⟶ L ⋙ RF'
α'' : F'' ⟶ L ⋙ RF''
α'₂ : F ⟶ L ⋙ RF'
W : MorphismProperty C
inst✝ : L.IsLocalization W
⊢ F.HasRightDerivedFunctor W ↔ L.HasLeftKanExtension F
state_after: C : Type u_1
C' : Type ?u.80223
D : Type u_5
D' : Type ?u.80229
H : Type u_2
H' : Type ?u.80235
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Category.{?u.80243, ?u.80223} C'
inst✝⁴ : Category.{u_6, u_5} D
inst✝³ : Category.{?u.80251, ?u.80229} D'
inst✝² : Category.{u_4, u_2} H
inst✝¹ : Category.{?u.80259, ?u.80235} H'
RF RF' RF'' : D ⥤ H
F F' F'' : C ⥤ H
e : F ≅ F'
L : C ⥤ D
α : F ⟶ L ⋙ RF
α' : F' ⟶ L ⋙ RF'
α'' : F'' ⟶ L ⋙ RF''
α'₂ : F ⟶ L ⋙ RF'
W : MorphismProperty C
inst✝ : L.IsLocalization W
this : F.HasRightDerivedFunctor W ↔ W.Q.HasLeftKanExtension F
⊢ F.HasRightDerivedFunctor W ↔ L.HasLeftKanExtension F
tactic: have : HasRightDerivedFunctor F W ↔ HasLeftKanExtension W.Q F :=
    ⟨fun h => h.hasLeftKanExtension', fun h => ⟨h⟩⟩
state_before: C : Type u_1
C' : Type ?u.80223
D : Type u_5
D' : Type ?u.80229
H : Type u_2
H' : Type ?u.80235
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Category.{?u.80243, ?u.80223} C'
inst✝⁴ : Category.{u_6, u_5} D
inst✝³ : Category.{?u.80251, ?u.80229} D'
inst✝² : Category.{u_4, u_2} H
inst✝¹ : Category.{?u.80259, ?u.80235} H'
RF RF' RF'' : D ⥤ H
F F' F'' : C ⥤ H
e : F ≅ F'
L : C ⥤ D
α : F ⟶ L ⋙ RF
α' : F' ⟶ L ⋙ RF'
α'' : F'' ⟶ L ⋙ RF''
α'₂ : F ⟶ L ⋙ RF'
W : MorphismProperty C
inst✝ : L.IsLocalization W
this : F.HasRightDerivedFunctor W ↔ W.Q.HasLeftKanExtension F
⊢ F.HasRightDerivedFunctor W ↔ L.HasLeftKanExtension F
state_after: no goals
tactic: rw [this, hasLeftExtension_iff_postcomp₁ (Localization.compUniqFunctor W.Q L W) F]
Theorem: Finset.Icc_subset_Ici_self
File: Mathlib/Order/Interval/Finset/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrder α
a a₁ a₂ b b₁ b₂ c x : α
inst✝ : LocallyFiniteOrderTop α
⊢ Icc a b ⊆ Ici a
state_after: no goals
tactic: simpa [← coe_subset] using Set.Icc_subset_Ici_self
Theorem: iter_deriv_inv
File: Mathlib/Analysis/Calculus/Deriv/ZPow.lean

Proof steps:
state_before: 𝕜 : Type u
inst✝² : NontriviallyNormedField 𝕜
E : Type v
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
x✝ : 𝕜
s : Set 𝕜
m : ℤ
k : ℕ
x : 𝕜
⊢ deriv^[k] Inv.inv x = (∏ i ∈ Finset.range k, (-1 - ↑i)) * x ^ (-1 - ↑k)
state_after: no goals
tactic: simpa only [zpow_neg_one, Int.cast_neg, Int.cast_one] using iter_deriv_zpow (-1) x k
Theorem: WType.leftInverse_nat
File: Mathlib/Data/W/Constructions.lean

Proof steps:
state_before: f : Natβ Natα.zero → WType Natβ
⊢ ofNat (mk Natα.zero f).toNat = mk Natα.zero f
state_after: f : Natβ Natα.zero → WType Natβ
⊢ mk Natα.zero Empty.elim = mk Natα.zero f
tactic: rw [toNat, ofNat]
state_before: f : Natβ Natα.zero → WType Natβ
⊢ mk Natα.zero Empty.elim = mk Natα.zero f
state_after: case e_f
f : Natβ Natα.zero → WType Natβ
⊢ Empty.elim = f
tactic: congr
state_before: case e_f
f : Natβ Natα.zero → WType Natβ
⊢ Empty.elim = f
state_after: case e_f.h
f : Natβ Natα.zero → WType Natβ
x : Empty
⊢ x.elim = f x
tactic: ext x
state_before: case e_f.h
f : Natβ Natα.zero → WType Natβ
x : Empty
⊢ x.elim = f x
state_after: no goals
tactic: cases x
state_before: f : Natβ Natα.succ → WType Natβ
⊢ ofNat (mk Natα.succ f).toNat = mk Natα.succ f
state_after: f : Natβ Natα.succ → WType Natβ
⊢ (fun x => f ()) = f
tactic: simp only [toNat, ofNat, leftInverse_nat (f ()), mk.injEq, heq_eq_eq, true_and]
state_before: f : Natβ Natα.succ → WType Natβ
⊢ (fun x => f ()) = f
state_after: no goals
tactic: rfl
Theorem: isLocalHomeomorph_iff_openEmbedding_restrict
File: Mathlib/Topology/IsLocalHomeomorph.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
g : Y → Z
f✝ : X → Y
s : Set X
t : Set Y
f : X → Y
⊢ IsLocalHomeomorph f ↔ ∀ (x : X), ∃ U ∈ 𝓝 x, OpenEmbedding (U.restrict f)
state_after: no goals
tactic: simp_rw [isLocalHomeomorph_iff_isLocalHomeomorphOn_univ,
    isLocalHomeomorphOn_iff_openEmbedding_restrict, imp_iff_right (Set.mem_univ _)]
Theorem: InnerProductSpace.Core.inner_smul_right
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
r : 𝕜
⊢ ⟪x, r • y⟫_𝕜 = r * ⟪x, y⟫_𝕜
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
r : 𝕜
⊢ (starRingEnd 𝕜) ((starRingEnd 𝕜) r * ⟪y, x⟫_𝕜) = r * ⟪x, y⟫_𝕜
tactic: rw [← inner_conj_symm, inner_smul_left]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
r : 𝕜
⊢ (starRingEnd 𝕜) ((starRingEnd 𝕜) r * ⟪y, x⟫_𝕜) = r * ⟪x, y⟫_𝕜
state_after: no goals
tactic: simp only [conj_conj, inner_conj_symm, RingHom.map_mul]
Theorem: Ordnode.Bounded.weak_left
File: Mathlib/Data/Ordmap/Ordset.lean

Proof steps:
state_before: α : Type u_1
inst✝ : Preorder α
o₁ : WithBot α
o₂ : WithTop α
h : nil.Bounded o₁ o₂
⊢ nil.Bounded ⊥ o₂
state_after: no goals
tactic: cases o₂ <;> trivial
Theorem: div_le_self_iff
File: Mathlib/Algebra/Order/Group/Unbundled/Basic.lean

Proof steps:
state_before: α : Type u
inst✝³ : Group α
inst✝² : LE α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a✝ b✝ c d a b : α
⊢ a / b ≤ a ↔ 1 ≤ b
state_after: no goals
tactic: simp [div_eq_mul_inv]
Theorem: WeierstrassCurve.Jacobian.equation_of_equiv
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

Proof steps:
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P Q : Fin 3 → R
h : P ≈ Q
⊢ W'.Equation P ↔ W'.Equation Q
state_after: case intro
R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
Q : Fin 3 → R
u : Rˣ
⊢ W'.Equation ((fun m => m • Q) u) ↔ W'.Equation Q
tactic: rcases h with ⟨u, rfl⟩
state_before: case intro
R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
Q : Fin 3 → R
u : Rˣ
⊢ W'.Equation ((fun m => m • Q) u) ↔ W'.Equation Q
state_after: no goals
tactic: exact equation_smul Q u.isUnit
Theorem: CategoryTheory.simple_of_isSimpleOrder_subobject
File: Mathlib/CategoryTheory/Simple.lean

Proof steps:
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
X : C
inst✝ : IsSimpleOrder (Subobject X)
⊢ Simple X
state_after: case mono_isIso_iff_nonzero
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
X : C
inst✝ : IsSimpleOrder (Subobject X)
⊢ ∀ {Y : C} (f : Y ⟶ X) [inst : Mono f], IsIso f ↔ f ≠ 0
tactic: constructor
state_before: case mono_isIso_iff_nonzero
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
X : C
inst✝ : IsSimpleOrder (Subobject X)
⊢ ∀ {Y : C} (f : Y ⟶ X) [inst : Mono f], IsIso f ↔ f ≠ 0
state_after: case mono_isIso_iff_nonzero
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
X : C
inst✝ : IsSimpleOrder (Subobject X)
Y : C
f : Y ⟶ X
hf : Mono f
⊢ IsIso f ↔ f ≠ 0
tactic: intros Y f hf
state_before: case mono_isIso_iff_nonzero
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
X : C
inst✝ : IsSimpleOrder (Subobject X)
Y : C
f : Y ⟶ X
hf : Mono f
⊢ IsIso f ↔ f ≠ 0
state_after: case mono_isIso_iff_nonzero.mp
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
X : C
inst✝ : IsSimpleOrder (Subobject X)
Y : C
f : Y ⟶ X
hf : Mono f
⊢ IsIso f → f ≠ 0

case mono_isIso_iff_nonzero.mpr
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
X : C
inst✝ : IsSimpleOrder (Subobject X)
Y : C
f : Y ⟶ X
hf : Mono f
⊢ f ≠ 0 → IsIso f
tactic: constructor
Theorem: SimpleGraph.incidenceSet_inter_incidenceSet_of_not_adj
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

Proof steps:
state_before: ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v w : V
e : Sym2 V
h : ¬G.Adj a b
hn : a ≠ b
⊢ G.incidenceSet a ∩ G.incidenceSet b = ∅
state_after: ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v w : V
e : Sym2 V
h : ¬G.Adj a b
hn : a ≠ b
⊢ ∀ x ∈ G.incidenceSet a, x ∉ G.incidenceSet b
tactic: simp_rw [Set.eq_empty_iff_forall_not_mem, Set.mem_inter_iff, not_and]
state_before: ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v w : V
e : Sym2 V
h : ¬G.Adj a b
hn : a ≠ b
⊢ ∀ x ∈ G.incidenceSet a, x ∉ G.incidenceSet b
state_after: ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u✝ v w : V
e : Sym2 V
h : ¬G.Adj a b
hn : a ≠ b
u : Sym2 V
ha : u ∈ G.incidenceSet a
hb : u ∈ G.incidenceSet b
⊢ False
tactic: intro u ha hb
state_before: ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u✝ v w : V
e : Sym2 V
h : ¬G.Adj a b
hn : a ≠ b
u : Sym2 V
ha : u ∈ G.incidenceSet a
hb : u ∈ G.incidenceSet b
⊢ False
state_after: no goals
tactic: exact h (G.adj_of_mem_incidenceSet hn ha hb)
Theorem: Fintype.prod_unique
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 : α✝¹ → β✝
ι : Type u_6
κ : Type u_7
α✝ : Type u_8
inst✝⁵ : Fintype ι
inst✝⁴ : Fintype κ
inst✝³ : CommMonoid α✝
α : Type u_9
β : Type u_10
inst✝² : CommMonoid β
inst✝¹ : Unique α
inst✝ : Fintype α
f : α → β
⊢ ∏ x : α, f x = f default
state_after: no goals
tactic: rw [univ_unique, prod_singleton]
Theorem: MeasureTheory.L1.integral_of_fun_eq_integral
File: Mathlib/MeasureTheory/Integral/Bochner.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
G : Type u_5
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
f : α → G
hf : Integrable f μ
⊢ ∫ (a : α), ↑↑(Integrable.toL1 f hf) a ∂μ = ∫ (a : α), f a ∂μ
state_after: case pos
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
G : Type u_5
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
f : α → G
hf : Integrable f μ
hG : CompleteSpace G
⊢ ∫ (a : α), ↑↑(Integrable.toL1 f hf) a ∂μ = ∫ (a : α), f a ∂μ

case neg
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
G : Type u_5
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
f : α → G
hf : Integrable f μ
hG : ¬CompleteSpace G
⊢ ∫ (a : α), ↑↑(Integrable.toL1 f hf) a ∂μ = ∫ (a : α), f a ∂μ
tactic: by_cases hG : CompleteSpace G
Theorem: CategoryTheory.Functor.toEventualRanges_nonempty
File: Mathlib/CategoryTheory/CofilteredSystem.lean

Proof steps:
state_before: J : Type u
inst✝² : Category.{u_1, u} J
F : J ⥤ Type v
i j✝ k : J
s : Set (F.obj i)
inst✝¹ : IsCofilteredOrEmpty J
h : F.IsMittagLeffler
inst✝ : ∀ (j : J), Nonempty (F.obj j)
j : J
⊢ Nonempty (F.toEventualRanges.obj j)
state_after: J : Type u
inst✝² : Category.{u_1, u} J
F : J ⥤ Type v
i✝ j✝ k : J
s : Set (F.obj i✝)
inst✝¹ : IsCofilteredOrEmpty J
h✝ : F.IsMittagLeffler
inst✝ : ∀ (j : J), Nonempty (F.obj j)
j i : J
f : i ⟶ j
h : F.eventualRange j = range (F.map f)
⊢ Nonempty (F.toEventualRanges.obj j)
tactic: let ⟨i, f, h⟩ := F.isMittagLeffler_iff_eventualRange.1 h j
state_before: J : Type u
inst✝² : Category.{u_1, u} J
F : J ⥤ Type v
i✝ j✝ k : J
s : Set (F.obj i✝)
inst✝¹ : IsCofilteredOrEmpty J
h✝ : F.IsMittagLeffler
inst✝ : ∀ (j : J), Nonempty (F.obj j)
j i : J
f : i ⟶ j
h : F.eventualRange j = range (F.map f)
⊢ Nonempty (F.toEventualRanges.obj j)
state_after: J : Type u
inst✝² : Category.{u_1, u} J
F : J ⥤ Type v
i✝ j✝ k : J
s : Set (F.obj i✝)
inst✝¹ : IsCofilteredOrEmpty J
h✝ : F.IsMittagLeffler
inst✝ : ∀ (j : J), Nonempty (F.obj j)
j i : J
f : i ⟶ j
h : F.eventualRange j = range (F.map f)
⊢ Nonempty ↑(range (F.map f))
tactic: rw [toEventualRanges_obj, h]
state_before: J : Type u
inst✝² : Category.{u_1, u} J
F : J ⥤ Type v
i✝ j✝ k : J
s : Set (F.obj i✝)
inst✝¹ : IsCofilteredOrEmpty J
h✝ : F.IsMittagLeffler
inst✝ : ∀ (j : J), Nonempty (F.obj j)
j i : J
f : i ⟶ j
h : F.eventualRange j = range (F.map f)
⊢ Nonempty ↑(range (F.map f))
state_after: no goals
tactic: infer_instance
Theorem: Int.exists_least_of_bdd
File: Mathlib/Data/Int/LeastGreatest.lean

Proof steps:
state_before: P : ℤ → Prop
Hbdd : ∃ b, ∀ (z : ℤ), P z → b ≤ z
Hinh : ∃ z, P z
⊢ ∃ lb, P lb ∧ ∀ (z : ℤ), P z → lb ≤ z
state_after: no goals
tactic: classical
  let ⟨b , Hb⟩ := Hbdd
  let ⟨lb , H⟩ := leastOfBdd b Hb Hinh
  exact ⟨lb , H⟩
Theorem: Ordering.then_eq_eq
File: .lake/packages/batteries/Batteries/Classes/Order.lean

Proof steps:
state_before: o₁ o₂ : Ordering
⊢ o₁.then o₂ = eq ↔ o₁ = eq ∧ o₂ = eq
state_after: no goals
tactic: cases o₁ <;> simp [«then»]
Theorem: isUnit_of_subsingleton
File: Mathlib/Algebra/Group/Units.lean

Proof steps:
state_before: α : Type u
M : Type u_1
N : Type u_2
inst✝¹ : Monoid M
inst✝ : Subsingleton M
a : M
⊢ a * a = 1
state_after: no goals
tactic: subsingleton
state_before: α : Type u
M : Type u_1
N : Type u_2
inst✝¹ : Monoid M
inst✝ : Subsingleton M
a : M
⊢ a * a = 1
state_after: no goals
tactic: subsingleton
Theorem: HasFTaylorSeriesUpToOn.continuousOn
File: Mathlib/Analysis/Calculus/ContDiff/Defs.lean

Proof steps:
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
h : HasFTaylorSeriesUpToOn n f p s
⊢ ContinuousOn f s
state_after: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
h : HasFTaylorSeriesUpToOn n f p s
this : ContinuousOn (fun x => (continuousMultilinearCurryFin0 𝕜 E F).symm (f x)) s
⊢ ContinuousOn f s
tactic: have := (h.cont 0 bot_le).congr fun x hx => (h.zero_eq' hx).symm
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
h : HasFTaylorSeriesUpToOn n f p s
this : ContinuousOn (fun x => (continuousMultilinearCurryFin0 𝕜 E F).symm (f x)) s
⊢ ContinuousOn f s
state_after: no goals
tactic: rwa [← (continuousMultilinearCurryFin0 𝕜 E F).symm.comp_continuousOn_iff]