1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Antitone.eq_of_le_of_le
File: Mathlib/Order/Monotone/Basic.lean

tactic: apply le_antisymm
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
δ : Type u_2
π : ι → Type u_3
r : α → α → Prop
inst✝¹ : LinearOrder α
inst✝ : PartialOrder β
f : α → β
a₁ a₂ : α
h_anti : Antitone f
h_fa : f a₁ = f a₂
i : α
h₁ : a₁ ≤ i
h₂ : i ≤ a₂
⊢ f i = f a₁
state_after: case a
ι : Type u_1
α : Type u
β : Type v
γ : Type w
δ : Type u_2
π : ι → Type u_3
r : α → α → Prop
inst✝¹ : LinearOrder α
inst✝ : PartialOrder β
f : α → β
a₁ a₂ : α
h_anti : Antitone f
h_fa : f a₁ = f a₂
i : α
h₁ : a₁ ≤ i
h₂ : i ≤ a₂
⊢ f i ≤ f a₁

case a
ι : Type u_1
α : Type u
β : Type v
γ : Type w
δ : Type u_2
π : ι → Type u_3
r : α → α → Prop
inst✝¹ : LinearOrder α
inst✝ : PartialOrder β
f : α → β
a₁ a₂ : α
h_anti : Antitone f
h_fa : f a₁ = f a₂
i : α
h₁ : a₁ ≤ i
h₂ : i ≤ a₂
⊢ f a₁ ≤ f i

tactic: exact h_anti h₁
state_before: case a
ι : Type u_1
α : Type u
β : Type v
γ : Type w
δ : Type u_2
π : ι → Type u_3
r : α → α → Prop
inst✝¹ : LinearOrder α
inst✝ : PartialOrder β
f : α → β
a₁ a₂ : α
h_anti : Antitone f
h_fa : f a₁ = f a₂
i : α
h₁ : a₁ ≤ i
h₂ : i ≤ a₂
⊢ f i ≤ f a₁
state_after: no goals

tactic: rw [h_fa]
state_before: case a
ι : Type u_1
α : Type u
β : Type v
γ : Type w
δ : Type u_2
π : ι → Type u_3
r : α → α → Prop
inst✝¹ : LinearOrder α
inst✝ : PartialOrder β
f : α → β
a₁ a₂ : α
h_anti : Antitone f
h_fa : f a₁ = f a₂
i : α
h₁ : a₁ ≤ i
h₂ : i ≤ a₂
⊢ f a₁ ≤ f i
state_after: case a
ι : Type u_1
α : Type u
β : Type v
γ : Type w
δ : Type u_2
π : ι → Type u_3
r : α → α → Prop
inst✝¹ : LinearOrder α
inst✝ : PartialOrder β
f : α → β
a₁ a₂ : α
h_anti : Antitone f
h_fa : f a₁ = f a₂
i : α
h₁ : a₁ ≤ i
h₂ : i ≤ a₂
⊢ f a₂ ≤ f i

tactic: exact h_anti h₂
state_before: case a
ι : Type u_1
α : Type u
β : Type v
γ : Type w
δ : Type u_2
π : ι → Type u_3
r : α → α → Prop
inst✝¹ : LinearOrder α
inst✝ : PartialOrder β
f : α → β
a₁ a₂ : α
h_anti : Antitone f
h_fa : f a₁ = f a₂
i : α
h₁ : a₁ ≤ i
h₂ : i ≤ a₂
⊢ f a₂ ≤ f i
state_after: no goals
Theorem: lowerCentralSeries_succ_eq_bot
File: Mathlib/GroupTheory/Nilpotent.lean

tactic: rw [lowerCentralSeries_succ, closure_eq_bot_iff, Set.subset_singleton_iff]
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
h : lowerCentralSeries G n ≤ center G
⊢ lowerCentralSeries G (n + 1) = ⊥
state_after: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
h : lowerCentralSeries G n ≤ center G
⊢ ∀ y ∈ {x | ∃ p ∈ lowerCentralSeries G n, ∃ q ∈ ⊤, p * q * p⁻¹ * q⁻¹ = x}, y = 1

tactic: rintro x ⟨y, hy1, z, ⟨⟩, rfl⟩
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
h : lowerCentralSeries G n ≤ center G
⊢ ∀ y ∈ {x | ∃ p ∈ lowerCentralSeries G n, ∃ q ∈ ⊤, p * q * p⁻¹ * q⁻¹ = x}, y = 1
state_after: case intro.intro.intro.intro.intro
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
h : lowerCentralSeries G n ≤ center G
y : G
hy1 : y ∈ lowerCentralSeries G n
z : G
⊢ y * z * y⁻¹ * z⁻¹ = 1

tactic: rw [mul_assoc, ← mul_inv_rev, mul_inv_eq_one, eq_comm]
state_before: case intro.intro.intro.intro.intro
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
h : lowerCentralSeries G n ≤ center G
y : G
hy1 : y ∈ lowerCentralSeries G n
z : G
⊢ y * z * y⁻¹ * z⁻¹ = 1
state_after: case intro.intro.intro.intro.intro
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
h : lowerCentralSeries G n ≤ center G
y : G
hy1 : y ∈ lowerCentralSeries G n
z : G
⊢ z * y = y * z

tactic: exact mem_center_iff.mp (h hy1) z
state_before: case intro.intro.intro.intro.intro
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
h : lowerCentralSeries G n ≤ center G
y : G
hy1 : y ∈ lowerCentralSeries G n
z : G
⊢ z * y = y * z
state_after: no goals
Theorem: SimpleGraph.map_le_of_subsingleton
File: Mathlib/Combinatorics/SimpleGraph/Maps.lean

tactic: rw [map_le_iff_le_comap]
state_before: V : Type u_1
W : Type u_2
X : Type u_3
G : SimpleGraph V
G' : SimpleGraph W
u v : V
f : V ↪ W
inst✝ : Subsingleton V
⊢ SimpleGraph.map f G ≤ G'
state_after: V : Type u_1
W : Type u_2
X : Type u_3
G : SimpleGraph V
G' : SimpleGraph W
u v : V
f : V ↪ W
inst✝ : Subsingleton V
⊢ G ≤ SimpleGraph.comap (⇑f) G'

tactic: apply le_comap_of_subsingleton
state_before: V : Type u_1
W : Type u_2
X : Type u_3
G : SimpleGraph V
G' : SimpleGraph W
u v : V
f : V ↪ W
inst✝ : Subsingleton V
⊢ G ≤ SimpleGraph.comap (⇑f) G'
state_after: no goals
Theorem: Int.add_one_ediv_two_mul_two_of_odd
File: Mathlib/Algebra/Ring/Int.lean

tactic: rintro ⟨c, rfl⟩
state_before: m n : ℤ
⊢ Odd n → 1 + n / 2 * 2 = n
state_after: case intro
m c : ℤ
⊢ 1 + (2 * c + 1) / 2 * 2 = 2 * c + 1

tactic: rw [add_comm]
state_before: case intro
m c : ℤ
⊢ 1 + (2 * c + 1) / 2 * 2 = 2 * c + 1
state_after: case intro
m c : ℤ
⊢ (2 * c + 1) / 2 * 2 + 1 = 2 * c + 1

tactic: convert Int.ediv_add_emod' (2 * c + 1) 2
state_before: case intro
m c : ℤ
⊢ (2 * c + 1) / 2 * 2 + 1 = 2 * c + 1
state_after: case h.e'_2.h.e'_6
m c : ℤ
⊢ 1 = (2 * c + 1) % 2

tactic: simp [Int.add_emod]
state_before: case h.e'_2.h.e'_6
m c : ℤ
⊢ 1 = (2 * c + 1) % 2
state_after: no goals
Theorem: Matrix.adjugate_submatrix_equiv_self
File: Mathlib/LinearAlgebra/Matrix/Adjugate.lean

tactic: ext i j
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
e : n ≃ m
A : Matrix m m α
⊢ (A.submatrix ⇑e ⇑e).adjugate = A.adjugate.submatrix ⇑e ⇑e
state_after: case a
m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
e : n ≃ m
A : Matrix m m α
i j : n
⊢ (A.submatrix ⇑e ⇑e).adjugate i j = A.adjugate.submatrix (⇑e) (⇑e) i j

tactic: rw [adjugate_apply, submatrix_apply, adjugate_apply, ← det_submatrix_equiv_self e,
  updateRow_submatrix_equiv]
state_before: case a
m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
e : n ≃ m
A : Matrix m m α
i j : n
⊢ (A.submatrix ⇑e ⇑e).adjugate i j = A.adjugate.submatrix (⇑e) (⇑e) i j
state_after: case a
m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
e : n ≃ m
A : Matrix m m α
i j : n
⊢ ((A.updateRow (e j) fun j => Pi.single i 1 (e.symm j)).submatrix ⇑e ⇑e).det =
    ((A.updateRow (e j) (Pi.single (e i) 1)).submatrix ⇑e ⇑e).det

tactic: suffices (fun j => Pi.single i 1 (e.symm j)) = Pi.single (e i) 1 by
  erw [this]
state_before: case a
m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
e : n ≃ m
A : Matrix m m α
i j : n
⊢ ((A.updateRow (e j) fun j => Pi.single i 1 (e.symm j)).submatrix ⇑e ⇑e).det =
    ((A.updateRow (e j) (Pi.single (e i) 1)).submatrix ⇑e ⇑e).det
state_after: case a
m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
e : n ≃ m
A : Matrix m m α
i j : n
⊢ (fun j => Pi.single i 1 (e.symm j)) = Pi.single (e i) 1

tactic: exact Function.update_comp_equiv _ e.symm _ _
state_before: case a
m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
e : n ≃ m
A : Matrix m m α
i j : n
⊢ (fun j => Pi.single i 1 (e.symm j)) = Pi.single (e i) 1
state_after: no goals

tactic: erw [this]
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
e : n ≃ m
A : Matrix m m α
i j : n
this : (fun j => Pi.single i 1 (e.symm j)) = Pi.single (e i) 1
⊢ ((A.updateRow (e j) fun j => Pi.single i 1 (e.symm j)).submatrix ⇑e ⇑e).det =
    ((A.updateRow (e j) (Pi.single (e i) 1)).submatrix ⇑e ⇑e).det
state_after: no goals
Theorem: Nat.div_mod_unique
File: Mathlib/Data/Nat/Defs.lean

tactic: rw [add_mul_div_left _ _ h, add_mul_mod_self_left]
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
h : 0 < b
x✝ : c + b * d = a ∧ c < b
h₁ : c + b * d = a
h₂ : c < b
⊢ (c + b * d) / b = d ∧ (c + b * d) % b = c
state_after: a b c d m n k : ℕ
p q : ℕ → Prop
h : 0 < b
x✝ : c + b * d = a ∧ c < b
h₁ : c + b * d = a
h₂ : c < b
⊢ c / b + d = d ∧ c % b = c

tactic: simp [div_eq_of_lt, mod_eq_of_lt, h₂]
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
h : 0 < b
x✝ : c + b * d = a ∧ c < b
h₁ : c + b * d = a
h₂ : c < b
⊢ c / b + d = d ∧ c % b = c
state_after: no goals
Theorem: MeasureTheory.VectorMeasure.mapRange_zero
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
m inst✝⁵ : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
M : Type u_3
inst✝³ : AddCommMonoid M
inst✝² : TopologicalSpace M
v : VectorMeasure α M
N : Type u_4
inst✝¹ : AddCommMonoid N
inst✝ : TopologicalSpace N
f : M →+ N
hf : Continuous ⇑f
⊢ mapRange 0 f hf = 0
state_after: case h
α : Type u_1
β : Type u_2
m inst✝⁵ : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
M : Type u_3
inst✝³ : AddCommMonoid M
inst✝² : TopologicalSpace M
v : VectorMeasure α M
N : Type u_4
inst✝¹ : AddCommMonoid N
inst✝ : TopologicalSpace N
f : M →+ N
hf : Continuous ⇑f
i✝ : Set α
a✝ : MeasurableSet i✝
⊢ ↑(mapRange 0 f hf) i✝ = ↑0 i✝

tactic: simp
state_before: case h
α : Type u_1
β : Type u_2
m inst✝⁵ : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
M : Type u_3
inst✝³ : AddCommMonoid M
inst✝² : TopologicalSpace M
v : VectorMeasure α M
N : Type u_4
inst✝¹ : AddCommMonoid N
inst✝ : TopologicalSpace N
f : M →+ N
hf : Continuous ⇑f
i✝ : Set α
a✝ : MeasurableSet i✝
⊢ ↑(mapRange 0 f hf) i✝ = ↑0 i✝
state_after: no goals
Theorem: tendsto_subtype_rng
File: Mathlib/Topology/Constructions.lean

tactic: rw [nhds_subtype_eq_comap, tendsto_comap_iff]
state_before: X : Type u
Y✝ : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y✝
inst✝ : TopologicalSpace Z
p✝ : X → Prop
Y : Type u_5
p : X → Prop
l : Filter Y
f : Y → Subtype p
a : X
ha : p a
⊢ Tendsto f l (𝓝 ⟨a, ha⟩) ↔ Tendsto (fun x => ↑(f x)) l (𝓝 ↑⟨a, ha⟩)
state_after: X : Type u
Y✝ : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y✝
inst✝ : TopologicalSpace Z
p✝ : X → Prop
Y : Type u_5
p : X → Prop
l : Filter Y
f : Y → Subtype p
a : X
ha : p a
⊢ Tendsto (Subtype.val ∘ f) l (𝓝 a) ↔ Tendsto (fun x => ↑(f x)) l (𝓝 ↑⟨a, ha⟩)

tactic: rfl
state_before: X : Type u
Y✝ : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y✝
inst✝ : TopologicalSpace Z
p✝ : X → Prop
Y : Type u_5
p : X → Prop
l : Filter Y
f : Y → Subtype p
a : X
ha : p a
⊢ Tendsto (Subtype.val ∘ f) l (𝓝 a) ↔ Tendsto (fun x => ↑(f x)) l (𝓝 ↑⟨a, ha⟩)
state_after: no goals
Theorem: PrimeSpectrum.vanishingIdeal_zeroLocus_eq_radical
File: Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean

tactic: rw [mem_vanishingIdeal, Ideal.radical_eq_sInf, Submodule.mem_sInf]
state_before: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
I : Ideal R
f : R
⊢ f ∈ vanishingIdeal (zeroLocus ↑I) ↔ f ∈ I.radical
state_after: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
I : Ideal R
f : R
⊢ (∀ x ∈ zeroLocus ↑I, f ∈ x.asIdeal) ↔ ∀ p ∈ {J | I ≤ J ∧ J.IsPrime}, f ∈ p

tactic: exact ⟨fun h x hx => h ⟨x, hx.2⟩ hx.1, fun h x hx => h x.1 ⟨hx, x.2⟩⟩
state_before: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
I : Ideal R
f : R
⊢ (∀ x ∈ zeroLocus ↑I, f ∈ x.asIdeal) ↔ ∀ p ∈ {J | I ≤ J ∧ J.IsPrime}, f ∈ p
state_after: no goals
Theorem: UpperHalfPlane.normSq_pos
File: Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean

tactic: rw [Complex.normSq_pos]
state_before: z : ℍ
⊢ 0 < Complex.normSq ↑z
state_after: z : ℍ
⊢ ↑z ≠ 0

tactic: exact z.ne_zero
state_before: z : ℍ
⊢ ↑z ≠ 0
state_after: no goals
Theorem: wbtw_self_iff
File: Mathlib/Analysis/Convex/Between.lean

tactic: refine ⟨fun h => ?_, fun h => ?_⟩
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y : P
⊢ Wbtw R x y x ↔ y = x
state_after: case refine_1
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y : P
h : Wbtw R x y x
⊢ y = x

case refine_2
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y : P
h : y = x
⊢ Wbtw R x y x

tactic: have ⟨_, _, h₂⟩ := h
state_before: case refine_1
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y : P
h : Wbtw R x y x
⊢ y = x
state_after: case refine_1
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y : P
h : Wbtw R x y x
w✝ : R
left✝ : w✝ ∈ Set.Icc 0 1
h₂ : (lineMap x x) w✝ = y
⊢ y = x

tactic: rw [h₂.symm, lineMap_same_apply]
state_before: case refine_1
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y : P
h : Wbtw R x y x
w✝ : R
left✝ : w✝ ∈ Set.Icc 0 1
h₂ : (lineMap x x) w✝ = y
⊢ y = x
state_after: no goals

tactic: rw [h]
state_before: case refine_2
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y : P
h : y = x
⊢ Wbtw R x y x
state_after: case refine_2
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y : P
h : y = x
⊢ Wbtw R x x x

tactic: exact wbtw_self_left R x x
state_before: case refine_2
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y : P
h : y = x
⊢ Wbtw R x x x
state_after: no goals
Theorem: CategoryTheory.exists_simple_subobject
File: Mathlib/CategoryTheory/Noetherian.lean

tactic: haveI : Nontrivial (Subobject X) := nontrivial_of_not_isZero h
state_before: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
X : C
inst✝ : ArtinianObject X
h : ¬IsZero X
⊢ ∃ Y, Simple (underlying.obj Y)
state_after: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
X : C
inst✝ : ArtinianObject X
h : ¬IsZero X
this : Nontrivial (Subobject X)
⊢ ∃ Y, Simple (underlying.obj Y)

tactic: haveI := isAtomic_of_orderBot_wellFounded_lt (ArtinianObject.subobject_lt_wellFounded X)
state_before: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
X : C
inst✝ : ArtinianObject X
h : ¬IsZero X
this : Nontrivial (Subobject X)
⊢ ∃ Y, Simple (underlying.obj Y)
state_after: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
X : C
inst✝ : ArtinianObject X
h : ¬IsZero X
this✝ : Nontrivial (Subobject X)
this : IsAtomic (Subobject X)
⊢ ∃ Y, Simple (underlying.obj Y)

tactic: obtain ⟨Y, s⟩ := (IsAtomic.eq_bot_or_exists_atom_le (⊤ : Subobject X)).resolve_left top_ne_bot
state_before: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
X : C
inst✝ : ArtinianObject X
h : ¬IsZero X
this✝ : Nontrivial (Subobject X)
this : IsAtomic (Subobject X)
⊢ ∃ Y, Simple (underlying.obj Y)
state_after: case intro
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
X : C
inst✝ : ArtinianObject X
h : ¬IsZero X
this✝ : Nontrivial (Subobject X)
this : IsAtomic (Subobject X)
Y : Subobject X
s : IsAtom Y ∧ Y ≤ ⊤
⊢ ∃ Y, Simple (underlying.obj Y)

tactic: exact ⟨Y, (subobject_simple_iff_isAtom _).mpr s.1⟩
state_before: case intro
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
X : C
inst✝ : ArtinianObject X
h : ¬IsZero X
this✝ : Nontrivial (Subobject X)
this : IsAtomic (Subobject X)
Y : Subobject X
s : IsAtom Y ∧ Y ≤ ⊤
⊢ ∃ Y, Simple (underlying.obj Y)
state_after: no goals
Theorem: Complex.log_inv_eq_integral
File: Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean

tactic: rw [sub_eq_add_neg 1 z] at hz ⊢
state_before: z : ℂ
hz : 1 - z ∈ slitPlane
⊢ log (1 - z)⁻¹ = z * ∫ (t : ℝ) in 0 ..1, (1 - t • z)⁻¹
state_after: z : ℂ
hz : 1 + -z ∈ slitPlane
⊢ log (1 + -z)⁻¹ = z * ∫ (t : ℝ) in 0 ..1, (1 - t • z)⁻¹

tactic: rw [log_inv _ <| slitPlane_arg_ne_pi hz, neg_eq_iff_eq_neg, ← neg_mul]
state_before: z : ℂ
hz : 1 + -z ∈ slitPlane
⊢ log (1 + -z)⁻¹ = z * ∫ (t : ℝ) in 0 ..1, (1 - t • z)⁻¹
state_after: z : ℂ
hz : 1 + -z ∈ slitPlane
⊢ log (1 + -z) = -z * ∫ (t : ℝ) in 0 ..1, (1 - t • z)⁻¹

tactic: convert log_eq_integral hz using 5
state_before: z : ℂ
hz : 1 + -z ∈ slitPlane
⊢ log (1 + -z) = -z * ∫ (t : ℝ) in 0 ..1, (1 - t • z)⁻¹
state_after: case h.e'_3.h.e'_6.h.e'_4.h.h.e'_3
z : ℂ
hz : 1 + -z ∈ slitPlane
x✝ : ℝ
⊢ 1 - x✝ • z = 1 + x✝ • -z

tactic: rw [sub_eq_add_neg, smul_neg]
state_before: case h.e'_3.h.e'_6.h.e'_4.h.h.e'_3
z : ℂ
hz : 1 + -z ∈ slitPlane
x✝ : ℝ
⊢ 1 - x✝ • z = 1 + x✝ • -z
state_after: no goals
Theorem: NormedSpace.expSeries_apply_eq
File: Mathlib/Analysis/NormedSpace/Exponential.lean

tactic: simp [expSeries]
state_before: 𝕂 : Type u_1
𝔸 : Type u_2
inst✝⁴ : Field 𝕂
inst✝³ : Ring 𝔸
inst✝² : Algebra 𝕂 𝔸
inst✝¹ : TopologicalSpace 𝔸
inst✝ : TopologicalRing 𝔸
x : 𝔸
n : ℕ
⊢ ((expSeries 𝕂 𝔸 n) fun x_1 => x) = (↑n !)⁻¹ • x ^ n
state_after: no goals
Theorem: Real.sinh_nonpos_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean

tactic: simpa only [sinh_zero] using @sinh_le_sinh x 0
state_before: x y z : ℝ
⊢ sinh x ≤ 0 ↔ x ≤ 0
state_after: no goals
Theorem: Option.isNone_eq_false_iff
File: Mathlib/Data/Option/Basic.lean

tactic: cases a <;> simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a : Option α
⊢ a.isNone = false ↔ a.isSome = true
state_after: no goals
Theorem: VectorFourier.fourierPowSMulRight_apply
File: Mathlib/Analysis/Fourier/FourierTransformDeriv.lean

tactic: simp [fourierPowSMulRight]
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
V : Type u_2
W : Type u_3
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
f✝ f : V → E
v : V
n : ℕ
m : Fin n → W
⊢ (fourierPowSMulRight L f v n) m = (-(2 * ↑π * I)) ^ n • (∏ i : Fin n, (L v) (m i)) • f v
state_after: no goals
Theorem: Filter.limsup_const
File: Mathlib/Order/LiminfLimsup.lean

tactic: simpa only [limsup_eq, eventually_const] using csInf_Ici
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝² : ConditionallyCompleteLattice α✝
α : Type u_6
inst✝¹ : ConditionallyCompleteLattice β
f : Filter α
inst✝ : f.NeBot
b : β
⊢ limsup (fun x => b) f = b
state_after: no goals
Theorem: EuclideanGeometry.concyclic_or_collinear_of_two_zsmul_oangle_eq
File: Mathlib/Geometry/Euclidean/Angle/Sphere.lean

tactic: rcases cospherical_or_collinear_of_two_zsmul_oangle_eq h with (hc | hc)
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
h : 2 • ∡ p₁ p₂ p₄ = 2 • ∡ p₁ p₃ p₄
⊢ Concyclic {p₁, p₂, p₃, p₄} ∨ Collinear ℝ {p₁, p₂, p₃, p₄}
state_after: case inl
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
h : 2 • ∡ p₁ p₂ p₄ = 2 • ∡ p₁ p₃ p₄
hc : Cospherical {p₁, p₂, p₃, p₄}
⊢ Concyclic {p₁, p₂, p₃, p₄} ∨ Collinear ℝ {p₁, p₂, p₃, p₄}

case inr
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
h : 2 • ∡ p₁ p₂ p₄ = 2 • ∡ p₁ p₃ p₄
hc : Collinear ℝ {p₁, p₂, p₃, p₄}
⊢ Concyclic {p₁, p₂, p₃, p₄} ∨ Collinear ℝ {p₁, p₂, p₃, p₄}

tactic: exact Or.inl ⟨hc, coplanar_of_fact_finrank_eq_two _⟩
state_before: case inl
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
h : 2 • ∡ p₁ p₂ p₄ = 2 • ∡ p₁ p₃ p₄
hc : Cospherical {p₁, p₂, p₃, p₄}
⊢ Concyclic {p₁, p₂, p₃, p₄} ∨ Collinear ℝ {p₁, p₂, p₃, p₄}
state_after: no goals

tactic: exact Or.inr hc
state_before: case inr
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
h : 2 • ∡ p₁ p₂ p₄ = 2 • ∡ p₁ p₃ p₄
hc : Collinear ℝ {p₁, p₂, p₃, p₄}
⊢ Concyclic {p₁, p₂, p₃, p₄} ∨ Collinear ℝ {p₁, p₂, p₃, p₄}
state_after: no goals
Theorem: Filter.comap_prod
File: Mathlib/Order/Filter/Prod.lean

tactic: erw [comap_inf, Filter.comap_comap, Filter.comap_comap]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
s : Set α
t : Set β
f✝ : Filter α
g : Filter β
f : α → β × γ
b : Filter β
c : Filter γ
⊢ comap f (b ×ˢ c) = comap (Prod.fst ∘ f) b ⊓ comap (Prod.snd ∘ f) c
state_after: no goals
Theorem: NormedAddGroupHom.mem_ker
File: Mathlib/Analysis/Normed/Group/Hom.lean

tactic: erw [f.toAddMonoidHom.mem_ker, coe_toAddMonoidHom]
state_before: V : Type u_1
W : Type u_2
V₁ : Type u_3
V₂ : Type u_4
V₃ : Type u_5
inst✝⁴ : SeminormedAddCommGroup V
inst✝³ : SeminormedAddCommGroup W
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f : NormedAddGroupHom V₁ V₂
g : NormedAddGroupHom V₂ V₃
v : V₁
⊢ v ∈ f.ker ↔ f v = 0
state_after: no goals