1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Set.Intersecting.insert
File: Mathlib/Combinatorics/SetFamily/Intersecting.lean

tactic: rintro b (rfl | hb) c (rfl | hc)
state_before: α : Type u_1
inst✝¹ : SemilatticeInf α
inst✝ : OrderBot α
s t : Set α
a b c : α
hs : s.Intersecting
ha : a ≠ ⊥
h : ∀ b ∈ s, ¬Disjoint a b
⊢ (insert a s).Intersecting
state_after: case inl.inl
α : Type u_1
inst✝¹ : SemilatticeInf α
inst✝ : OrderBot α
s t : Set α
b c✝ : α
hs : s.Intersecting
c : α
ha : c ≠ ⊥
h : ∀ b ∈ s, ¬Disjoint c b
⊢ ¬Disjoint c c

case inl.inr
α : Type u_1
inst✝¹ : SemilatticeInf α
inst✝ : OrderBot α
s t : Set α
b✝ c✝ : α
hs : s.Intersecting
b : α
ha : b ≠ ⊥
h : ∀ b_1 ∈ s, ¬Disjoint b b_1
c : α
hc : c ∈ s
⊢ ¬Disjoint b c

case inr.inl
α : Type u_1
inst✝¹ : SemilatticeInf α
inst✝ : OrderBot α
s t : Set α
b✝ c✝ : α
hs : s.Intersecting
b : α
hb : b ∈ s
c : α
ha : c ≠ ⊥
h : ∀ b ∈ s, ¬Disjoint c b
⊢ ¬Disjoint b c

case inr.inr
α : Type u_1
inst✝¹ : SemilatticeInf α
inst✝ : OrderBot α
s t : Set α
a b✝ c✝ : α
hs : s.Intersecting
ha : a ≠ ⊥
h : ∀ b ∈ s, ¬Disjoint a b
b : α
hb : b ∈ s
c : α
hc : c ∈ s
⊢ ¬Disjoint b c

tactic: rwa [disjoint_self]
state_before: case inl.inl
α : Type u_1
inst✝¹ : SemilatticeInf α
inst✝ : OrderBot α
s t : Set α
b c✝ : α
hs : s.Intersecting
c : α
ha : c ≠ ⊥
h : ∀ b ∈ s, ¬Disjoint c b
⊢ ¬Disjoint c c
state_after: no goals

tactic: exact h _ hc
state_before: case inl.inr
α : Type u_1
inst✝¹ : SemilatticeInf α
inst✝ : OrderBot α
s t : Set α
b✝ c✝ : α
hs : s.Intersecting
b : α
ha : b ≠ ⊥
h : ∀ b_1 ∈ s, ¬Disjoint b b_1
c : α
hc : c ∈ s
⊢ ¬Disjoint b c
state_after: no goals

tactic: exact fun H => h _ hb H.symm
state_before: case inr.inl
α : Type u_1
inst✝¹ : SemilatticeInf α
inst✝ : OrderBot α
s t : Set α
b✝ c✝ : α
hs : s.Intersecting
b : α
hb : b ∈ s
c : α
ha : c ≠ ⊥
h : ∀ b ∈ s, ¬Disjoint c b
⊢ ¬Disjoint b c
state_after: no goals

tactic: exact hs hb hc
state_before: case inr.inr
α : Type u_1
inst✝¹ : SemilatticeInf α
inst✝ : OrderBot α
s t : Set α
a b✝ c✝ : α
hs : s.Intersecting
ha : a ≠ ⊥
h : ∀ b ∈ s, ¬Disjoint a b
b : α
hb : b ∈ s
c : α
hc : c ∈ s
⊢ ¬Disjoint b c
state_after: no goals
Theorem: SignType.map_cast
File: Mathlib/Data/Sign.lean

tactic: apply map_cast' <;> simp
state_before: α✝ : Type u_1
inst✝⁸ : Zero α✝
inst✝⁷ : One α✝
inst✝⁶ : Neg α✝
α : Type u_2
β : Type u_3
F : Type u_4
inst✝⁵ : AddGroupWithOne α
inst✝⁴ : One β
inst✝³ : SubtractionMonoid β
inst✝² : FunLike F α β
inst✝¹ : AddMonoidHomClass F α β
inst✝ : OneHomClass F α β
f : F
s : SignType
⊢ f ↑s = ↑s
state_after: no goals
Theorem: CategoryTheory.GrothendieckTopology.isClosed_pullback
File: Mathlib/CategoryTheory/Sites/Closed.lean

tactic: rwa [J₁.covers_iff, Sieve.pullback_comp]
state_before: C : Type u
inst✝ : Category.{v, u} C
J₁ J₂ : GrothendieckTopology C
X Y : C
f : Y ⟶ X
S : Sieve X
hS : J₁.IsClosed S
Z : C
g : Z ⟶ Y
hg : J₁.Covers (Sieve.pullback f S) g
⊢ J₁.Covers S (g ≫ f)
state_after: no goals
Theorem: DMatrix.map_zero
File: Mathlib/Data/Matrix/DMatrix.lean

tactic: ext
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
α : m → n → Type v
inst✝¹ : (i : m) → (j : n) → Zero (α i j)
β : m → n → Type w
inst✝ : (i : m) → (j : n) → Zero (β i j)
f : ⦃i : m⦄ → ⦃j : n⦄ → α i j → β i j
h : ∀ (i : m) (j : n), f 0 = 0
⊢ map 0 f = 0
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
α : m → n → Type v
inst✝¹ : (i : m) → (j : n) → Zero (α i j)
β : m → n → Type w
inst✝ : (i : m) → (j : n) → Zero (β i j)
f : ⦃i : m⦄ → ⦃j : n⦄ → α i j → β i j
h : ∀ (i : m) (j : n), f 0 = 0
i✝ : m
j✝ : n
⊢ map 0 f i✝ j✝ = 0 i✝ j✝

tactic: simp [h]
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
α : m → n → Type v
inst✝¹ : (i : m) → (j : n) → Zero (α i j)
β : m → n → Type w
inst✝ : (i : m) → (j : n) → Zero (β i j)
f : ⦃i : m⦄ → ⦃j : n⦄ → α i j → β i j
h : ∀ (i : m) (j : n), f 0 = 0
i✝ : m
j✝ : n
⊢ map 0 f i✝ j✝ = 0 i✝ j✝
state_after: no goals
Theorem: Real.mk_zero
File: Mathlib/Data/Real/Basic.lean

tactic: rw [← ofCauchy_zero]
state_before: x y : ℝ
⊢ mk 0 = 0
state_after: x y : ℝ
⊢ mk 0 = { cauchy := 0 }

tactic: rfl
state_before: x y : ℝ
⊢ mk 0 = { cauchy := 0 }
state_after: no goals
Theorem: Finset.Icc_eq_empty_iff
File: Mathlib/Order/Interval/Finset/Basic.lean

tactic: rw [← coe_eq_empty, coe_Icc, Set.Icc_eq_empty_iff]
state_before: ι : Type u_1
α : Type u_2
inst✝¹ : Preorder α
inst✝ : LocallyFiniteOrder α
a a₁ a₂ b b₁ b₂ c x : α
⊢ Icc a b = ∅ ↔ ¬a ≤ b
state_after: no goals
Theorem: Finset.orderEmbOfFin_last
File: Mathlib/Data/Finset/Sort.lean

tactic: simp [orderEmbOfFin_apply, max'_eq_sorted_last, h]
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
s : Finset α
k : ℕ
h : s.card = k
hz : 0 < k
⊢ (s.orderEmbOfFin h) ⟨k - 1, ⋯⟩ = s.max' ⋯
state_after: no goals
Theorem: RCLike.sub_conj
File: Mathlib/Analysis/RCLike/Basic.lean

tactic: rw [re_add_im, ← conj_eq_re_sub_im]
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z : K
⊢ z - (starRingEnd K) z = ↑(re z) + ↑(im z) * I - (↑(re z) - ↑(im z) * I)
state_after: no goals

tactic: rw [add_sub_sub_cancel, ← two_mul, mul_assoc]
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z : K
⊢ ↑(re z) + ↑(im z) * I - (↑(re z) - ↑(im z) * I) = 2 * ↑(im z) * I
state_after: no goals
Theorem: MeasureTheory.IsStoppingTime.measurableSpace_min_const
File: Mathlib/Probability/Process/Stopping.lean

tactic: rw [hτ.measurableSpace_min (isStoppingTime_const _ i), measurableSpace_const]
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : LinearOrder ι
f : Filtration ι m
τ π : Ω → ι
hτ : IsStoppingTime f τ
i : ι
⊢ ⋯.measurableSpace = hτ.measurableSpace ⊓ ↑f i
state_after: no goals
Theorem: multiplicity.not_finite_iff_forall
File: Mathlib/RingTheory/Multiplicity.lean

tactic: rw [_root_.pow_zero]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Monoid α
inst✝ : Monoid β
a b : α
h : ¬Finite a b
n : ℕ
⊢ a ^ zero ∣ b
state_after: α : Type u_1
β : Type u_2
inst✝¹ : Monoid α
inst✝ : Monoid β
a b : α
h : ¬Finite a b
n : ℕ
⊢ 1 ∣ b

tactic: exact one_dvd _
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Monoid α
inst✝ : Monoid β
a b : α
h : ¬Finite a b
n : ℕ
⊢ 1 ∣ b
state_after: no goals

tactic: simpa [Finite, Classical.not_not] using h
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Monoid α
inst✝ : Monoid β
a b : α
h : ¬Finite a b
n : ℕ
⊢ ∀ (n : ℕ), a ^ n.succ ∣ b
state_after: no goals

tactic: simp [Finite, multiplicity, Classical.not_not]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Monoid α
inst✝ : Monoid β
a b : α
⊢ (∀ (n : ℕ), a ^ n ∣ b) → ¬Finite a b
state_after: α : Type u_1
β : Type u_2
inst✝¹ : Monoid α
inst✝ : Monoid β
a b : α
⊢ (∀ (n : ℕ), a ^ n ∣ b) → ∀ (x : ℕ), a ^ (x + 1) ∣ b

tactic: tauto
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Monoid α
inst✝ : Monoid β
a b : α
⊢ (∀ (n : ℕ), a ^ n ∣ b) → ∀ (x : ℕ), a ^ (x + 1) ∣ b
state_after: no goals
Theorem: CategoryTheory.MonoidalCategory.tensor_inv_hom_id'
File: Mathlib/CategoryTheory/Monoidal/Category.lean

tactic: rw [← tensor_comp, IsIso.inv_hom_id]
state_before: C✝ : Type u
𝒞 : Category.{v, u} C✝
inst✝³ : MonoidalCategory C✝
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : MonoidalCategory C
U V✝ W✝ X✝ Y✝ Z✝ V W X Y Z : C
f : V ⟶ W
inst✝ : IsIso f
g : X ⟶ Y
h : Y ⟶ Z
⊢ (g ⊗ inv f) ≫ (h ⊗ f) = (g ⊗ 𝟙 W) ≫ (h ⊗ 𝟙 W)
state_after: C✝ : Type u
𝒞 : Category.{v, u} C✝
inst✝³ : MonoidalCategory C✝
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : MonoidalCategory C
U V✝ W✝ X✝ Y✝ Z✝ V W X Y Z : C
f : V ⟶ W
inst✝ : IsIso f
g : X ⟶ Y
h : Y ⟶ Z
⊢ g ≫ h ⊗ 𝟙 W = (g ⊗ 𝟙 W) ≫ (h ⊗ 𝟙 W)

tactic: simp [tensorHom_id]
state_before: C✝ : Type u
𝒞 : Category.{v, u} C✝
inst✝³ : MonoidalCategory C✝
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : MonoidalCategory C
U V✝ W✝ X✝ Y✝ Z✝ V W X Y Z : C
f : V ⟶ W
inst✝ : IsIso f
g : X ⟶ Y
h : Y ⟶ Z
⊢ g ≫ h ⊗ 𝟙 W = (g ⊗ 𝟙 W) ≫ (h ⊗ 𝟙 W)
state_after: no goals
Theorem: LieSubmodule.mk_eq_top_iff
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: rw [← coe_toSubmodule_eq_iff, top_coeSubmodule]
state_before: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N✝ N' : LieSubmodule R L M
I J : LieIdeal R L
N : Submodule R M
h : ∀ {x : L} {m : M}, m ∈ N.carrier → ⁅x, m⁆ ∈ N.carrier
⊢ { toSubmodule := N, lie_mem := h } = ⊤ ↔ N = ⊤
state_after: no goals
Theorem: WithBot.unbot'_eq_unbot'_iff
File: Mathlib/Order/WithBot.lean

tactic: induction y <;> simp [unbot'_eq_iff, or_comm]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a b d : α
x y : WithBot α
⊢ unbot' d x = unbot' d y ↔ x = y ∨ x = ↑d ∧ y = ⊥ ∨ x = ⊥ ∧ y = ↑d
state_after: no goals
Theorem: List.Pairwise.and_mem
File: .lake/packages/batteries/Batteries/Data/List/Pairwise.lean

tactic: simp (config := { contextual := true })
state_before: α : Type u_1
R : α → α → Prop
l : List α
⊢ ∀ {a b : α}, a ∈ l → b ∈ l → (R a b ↔ a ∈ l ∧ b ∈ l ∧ R a b)
state_after: no goals
Theorem: measurableSet_prod
File: Mathlib/MeasureTheory/MeasurableSpace/Basic.lean

tactic: rcases (s ×ˢ t).eq_empty_or_nonempty with h | h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s✝ t✝ u : Set α
m : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
s : Set α
t : Set β
⊢ MeasurableSet (s ×ˢ t) ↔ MeasurableSet s ∧ MeasurableSet t ∨ s = ∅ ∨ t = ∅
state_after: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s✝ t✝ u : Set α
m : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
s : Set α
t : Set β
h : s ×ˢ t = ∅
⊢ MeasurableSet (s ×ˢ t) ↔ MeasurableSet s ∧ MeasurableSet t ∨ s = ∅ ∨ t = ∅

case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s✝ t✝ u : Set α
m : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
s : Set α
t : Set β
h : (s ×ˢ t).Nonempty
⊢ MeasurableSet (s ×ˢ t) ↔ MeasurableSet s ∧ MeasurableSet t ∨ s = ∅ ∨ t = ∅

tactic: simp [h, prod_eq_empty_iff.mp h]
state_before: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s✝ t✝ u : Set α
m : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
s : Set α
t : Set β
h : s ×ˢ t = ∅
⊢ MeasurableSet (s ×ˢ t) ↔ MeasurableSet s ∧ MeasurableSet t ∨ s = ∅ ∨ t = ∅
state_after: no goals

tactic: simp [← not_nonempty_iff_eq_empty, prod_nonempty_iff.mp h, measurableSet_prod_of_nonempty h]
state_before: case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s✝ t✝ u : Set α
m : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
s : Set α
t : Set β
h : (s ×ˢ t).Nonempty
⊢ MeasurableSet (s ×ˢ t) ↔ MeasurableSet s ∧ MeasurableSet t ∨ s = ∅ ∨ t = ∅
state_after: no goals
Theorem: Multiset.map_univ_coeEmbedding
File: Mathlib/Data/Multiset/Fintype.lean

tactic: ext ⟨x, i⟩
state_before: α : Type u_1
inst✝ : DecidableEq α
m✝ m : Multiset α
⊢ Finset.map m.coeEmbedding Finset.univ = m.toEnumFinset
state_after: case a.mk
α : Type u_1
inst✝ : DecidableEq α
m✝ m : Multiset α
x : α
i : ℕ
⊢ (x, i) ∈ Finset.map m.coeEmbedding Finset.univ ↔ (x, i) ∈ m.toEnumFinset

tactic: simp only [Fin.exists_iff, Finset.mem_map, Finset.mem_univ, Multiset.coeEmbedding_apply,
  Prod.mk.inj_iff, exists_true_left, Multiset.exists_coe, Multiset.coe_mk, Fin.val_mk,
  exists_prop, exists_eq_right_right, exists_eq_right, Multiset.mem_toEnumFinset, iff_self_iff,
  true_and_iff]
state_before: case a.mk
α : Type u_1
inst✝ : DecidableEq α
m✝ m : Multiset α
x : α
i : ℕ
⊢ (x, i) ∈ Finset.map m.coeEmbedding Finset.univ ↔ (x, i) ∈ m.toEnumFinset
state_after: no goals
Theorem: StrictConvexOn.slope_lt_of_hasDerivWithinAt
File: Mathlib/Analysis/Convex/Deriv.lean

tactic: refine hfc.slope_lt_of_hasDerivWithinAt_Iio hx hy hxy (hf'.mono_of_mem ?_)
state_before: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : StrictConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' S y
⊢ slope f x y < f'
state_after: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : StrictConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' S y
⊢ S ∈ 𝓝[<] y

tactic: rw [mem_nhdsWithin_Iio_iff_exists_Ico_subset]
state_before: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : StrictConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' S y
⊢ S ∈ 𝓝[<] y
state_after: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : StrictConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' S y
⊢ ∃ l ∈ Iio y, Ico l y ⊆ S

tactic: exact ⟨x, hxy, Ico_subset_Icc_self.trans (hfc.1.ordConnected.out hx hy)⟩
state_before: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : StrictConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' S y
⊢ ∃ l ∈ Iio y, Ico l y ⊆ S
state_after: no goals
Theorem: WittVector.mapFun.zsmul
File: Mathlib/RingTheory/WittVector/Basic.lean

tactic: map_fun_tac
state_before: p : ℕ
R : Type u_1
S : Type u_2
T : Type u_3
hp : Fact (Nat.Prime p)
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : CommRing T
α : Type u_4
β : Type u_5
f : R →+* S
x✝ y : 𝕎 R
z : ℤ
x : 𝕎 R
⊢ mapFun (⇑f) (z • x) = z • mapFun (⇑f) x
state_after: no goals
Theorem: Submodule.map_subtype_top
File: Mathlib/Algebra/Module/Submodule/Range.lean

tactic: simp
state_before: R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
K : Type u_4
K₂ : Type u_5
M : Type u_6
M₂ : Type u_7
M₃ : Type u_8
V : Type u_9
V₂ : Type u_10
inst✝⁷ : Semiring R
inst✝⁶ : Semiring R₂
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M₂
inst✝³ : Module R M
inst✝² : Module R₂ M₂
p p' : Submodule R M
q : Submodule R₂ M₂
τ₁₂ : R →+* R₂
F : Type u_11
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F τ₁₂ M M₂
⊢ map p.subtype ⊤ = p
state_after: no goals
Theorem: Rat.mk_eq_normalize
File: .lake/packages/batteries/Batteries/Data/Rat/Lemmas.lean

tactic: simp [normalize_eq, c.gcd_eq_one]
state_before: num : Int
den : Nat
nz : den ≠ 0
c : num.natAbs.Coprime den
⊢ { num := num, den := den, den_nz := nz, reduced := c } = normalize num den nz
state_after: no goals
Theorem: Cardinal.eq_aleph'_of_eq_card_ord
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: simpa using ho
state_before: o : Ordinal.{u_1}
ho : o.card.ord = o
⊢ (aleph' (alephIdx.relIso o.card)).ord = o
state_after: no goals
Theorem: tendsto_order
File: Mathlib/Topology/Order/Basic.lean

tactic: simp only [nhds_eq_order a, tendsto_inf, tendsto_iInf, tendsto_principal]
state_before: α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
f : β → α
a : α
x : Filter β
⊢ Tendsto f x (𝓝 a) ↔ (∀ a' < a, ∀ᶠ (b : β) in x, a' < f b) ∧ ∀ a' > a, ∀ᶠ (b : β) in x, f b < a'
state_after: α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
f : β → α
a : α
x : Filter β
⊢ ((∀ i ∈ Iio a, ∀ᶠ (a : β) in x, f a ∈ Ioi i) ∧ ∀ i ∈ Ioi a, ∀ᶠ (a : β) in x, f a ∈ Iio i) ↔
    (∀ a' < a, ∀ᶠ (b : β) in x, a' < f b) ∧ ∀ a' > a, ∀ᶠ (b : β) in x, f b < a'

tactic: rfl
state_before: α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
f : β → α
a : α
x : Filter β
⊢ ((∀ i ∈ Iio a, ∀ᶠ (a : β) in x, f a ∈ Ioi i) ∧ ∀ i ∈ Ioi a, ∀ᶠ (a : β) in x, f a ∈ Iio i) ↔
    (∀ a' < a, ∀ᶠ (b : β) in x, a' < f b) ∧ ∀ a' > a, ∀ᶠ (b : β) in x, f b < a'
state_after: no goals
Theorem: CategoryTheory.Limits.IsInitial.mono_from
File: Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean

tactic: rw [hI.hom_ext f (hI.to X)]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : InitialMonoClass C
I X : C
hI : IsInitial I
f : I ⟶ X
⊢ Mono f
state_after: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : InitialMonoClass C
I X : C
hI : IsInitial I
f : I ⟶ X
⊢ Mono (hI.to X)

tactic: apply InitialMonoClass.isInitial_mono_from
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : InitialMonoClass C
I X : C
hI : IsInitial I
f : I ⟶ X
⊢ Mono (hI.to X)
state_after: no goals
Theorem: ZFSet.toSet_singleton
File: Mathlib/SetTheory/ZFC/Basic.lean

tactic: ext
state_before: x : ZFSet
⊢ {x}.toSet = {x}
state_after: case h
x x✝ : ZFSet
⊢ x✝ ∈ {x}.toSet ↔ x✝ ∈ {x}

tactic: simp
state_before: case h
x x✝ : ZFSet
⊢ x✝ ∈ {x}.toSet ↔ x✝ ∈ {x}
state_after: no goals
Theorem: toIcoDiv_neg'
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simpa only [neg_neg] using toIcoDiv_neg hp (-a) (-b)
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
⊢ toIcoDiv hp (-a) b = -(toIocDiv hp a (-b) + 1)
state_after: no goals
Theorem: isConj_iff_conjugatesOf_eq
File: Mathlib/Algebra/Group/Conj.lean

tactic: have ha := @mem_conjugatesOf_self _ _ b
state_before: α : Type u
β : Type v
inst✝ : Monoid α
a b : α
h : conjugatesOf a = conjugatesOf b
⊢ IsConj a b
state_after: α : Type u
β : Type v
inst✝ : Monoid α
a b : α
h : conjugatesOf a = conjugatesOf b
ha : b ∈ conjugatesOf b
⊢ IsConj a b

tactic: rwa [← h] at ha
state_before: α : Type u
β : Type v
inst✝ : Monoid α
a b : α
h : conjugatesOf a = conjugatesOf b
ha : b ∈ conjugatesOf b
⊢ IsConj a b
state_after: no goals
Theorem: MeasureTheory.IntegrableOn.restrict
File: Mathlib/MeasureTheory/Integral/IntegrableOn.lean

tactic: rw [IntegrableOn, Measure.restrict_restrict hs]
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
h : IntegrableOn f s μ
hs : MeasurableSet s
⊢ IntegrableOn f s (μ.restrict t)
state_after: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
h : IntegrableOn f s μ
hs : MeasurableSet s
⊢ Integrable f (μ.restrict (s ∩ t))

tactic: exact h.mono_set inter_subset_left
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
h : IntegrableOn f s μ
hs : MeasurableSet s
⊢ Integrable f (μ.restrict (s ∩ t))
state_after: no goals
Theorem: map_normEDS
File: Mathlib/NumberTheory/EllipticDivisibilitySequence.lean

tactic: rw [normEDS, map_mul, map_preNormEDS, map_pow, apply_ite f, map_one, normEDS]
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
n : ℤ
⊢ f (normEDS b c d n) = normEDS (f b) (f c) (f d) n
state_after: no goals
Theorem: MulAction.IsBlock.mk_notempty
File: Mathlib/GroupTheory/GroupAction/Blocks.lean

tactic: simp_rw [IsBlock.def, or_iff_not_imp_right, Set.disjoint_iff_inter_eq_empty]
state_before: G : Type u_1
X : Type u_2
inst✝ : SMul G X
B : Set X
⊢ IsBlock G B ↔ ∀ (g g' : G), g • B ∩ g' • B ≠ ∅ → g • B = g' • B
state_after: no goals
Theorem: NNReal.sqrt_mul_self
File: Mathlib/Data/Real/Sqrt.lean

tactic: rw [← sq, sqrt_sq]
state_before: x✝ y x : ℝ≥0
⊢ sqrt (x * x) = x
state_after: no goals
Theorem: ModP.preVal_eq_zero
File: Mathlib/RingTheory/Perfection.lean

tactic: rw [← v_p_lt_preVal, hvx] at hx0
state_before: K : Type u₁
inst✝² : Field K
v : Valuation K ℝ≥0
O : Type u₂
inst✝¹ : CommRing O
inst✝ : Algebra O K
hv : v.Integers O
p : ℕ
hp : Fact (Nat.Prime p)
hvp : Fact (v ↑p ≠ 1)
x : ModP K v O hv p
hvx : preVal K v O hv p x = 0
hx0 : x ≠ 0
⊢ False
state_after: K : Type u₁
inst✝² : Field K
v : Valuation K ℝ≥0
O : Type u₂
inst✝¹ : CommRing O
inst✝ : Algebra O K
hv : v.Integers O
p : ℕ
hp : Fact (Nat.Prime p)
hvp : Fact (v ↑p ≠ 1)
x : ModP K v O hv p
hvx : preVal K v O hv p x = 0
hx0 : v ↑p < 0
⊢ False

tactic: exact not_lt_zero' hx0
state_before: K : Type u₁
inst✝² : Field K
v : Valuation K ℝ≥0
O : Type u₂
inst✝¹ : CommRing O
inst✝ : Algebra O K
hv : v.Integers O
p : ℕ
hp : Fact (Nat.Prime p)
hvp : Fact (v ↑p ≠ 1)
x : ModP K v O hv p
hvx : preVal K v O hv p x = 0
hx0 : v ↑p < 0
⊢ False
state_after: no goals
Theorem: hyperoperation_two
File: Mathlib/Data/Nat/Hyperoperation.lean

tactic: ext m k
state_before: ⊢ hyperoperation 2 = fun x x_1 => x * x_1
state_after: case h.h
m k : ℕ
⊢ hyperoperation 2 m k = m * k

tactic: induction' k with bn bih
state_before: case h.h
m k : ℕ
⊢ hyperoperation 2 m k = m * k
state_after: case h.h.zero
m : ℕ
⊢ hyperoperation 2 m 0 = m * 0

case h.h.succ
m bn : ℕ
bih : hyperoperation 2 m bn = m * bn
⊢ hyperoperation 2 m (bn + 1) = m * (bn + 1)

tactic: rw [hyperoperation]
state_before: case h.h.zero
m : ℕ
⊢ hyperoperation 2 m 0 = m * 0
state_after: case h.h.zero
m : ℕ
⊢ 0 = m * 0

tactic: exact (Nat.mul_zero m).symm
state_before: case h.h.zero
m : ℕ
⊢ 0 = m * 0
state_after: no goals

tactic: rw [hyperoperation_recursion, hyperoperation_one, bih]
state_before: case h.h.succ
m bn : ℕ
bih : hyperoperation 2 m bn = m * bn
⊢ hyperoperation 2 m (bn + 1) = m * (bn + 1)
state_after: case h.h.succ
m bn : ℕ
bih : hyperoperation 2 m bn = m * bn
⊢ (fun x x_1 => x + x_1) m (m * bn) = m * (bn + 1)

tactic: dsimp only
state_before: case h.h.succ
m bn : ℕ
bih : hyperoperation 2 m bn = m * bn
⊢ (fun x x_1 => x + x_1) m (m * bn) = m * (bn + 1)
state_after: case h.h.succ
m bn : ℕ
bih : hyperoperation 2 m bn = m * bn
⊢ m + m * bn = m * (bn + 1)

tactic: nth_rewrite 1 [← mul_one m]
state_before: case h.h.succ
m bn : ℕ
bih : hyperoperation 2 m bn = m * bn
⊢ m + m * bn = m * (bn + 1)
state_after: case h.h.succ
m bn : ℕ
bih : hyperoperation 2 m bn = m * bn
⊢ m * 1 + m * bn = m * (bn + 1)

tactic: rw [← mul_add, add_comm]
state_before: case h.h.succ
m bn : ℕ
bih : hyperoperation 2 m bn = m * bn
⊢ m * 1 + m * bn = m * (bn + 1)
state_after: no goals
Theorem: Stream'.WSeq.head_think
File: Mathlib/Data/Seq/WSeq.lean

tactic: simp [head]
state_before: α : Type u
β : Type v
γ : Type w
s : WSeq α
⊢ s.think.head = s.head.think
state_after: no goals
Theorem: mul_eq_of_eq_inv_mul
File: Mathlib/Algebra/Group/Basic.lean

tactic: rw [h, mul_inv_cancel_left]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a b c d : G
n : ℤ
h : b = a⁻¹ * c
⊢ a * b = c
state_after: no goals
Theorem: Ideal.span_singleton_neg
File: Mathlib/RingTheory/Ideal/Basic.lean

tactic: ext
state_before: α : Type u
β : Type v
inst✝ : Ring α
I : Ideal α
a b x : α
⊢ span {-x} = span {x}
state_after: case h
α : Type u
β : Type v
inst✝ : Ring α
I : Ideal α
a b x x✝ : α
⊢ x✝ ∈ span {-x} ↔ x✝ ∈ span {x}

tactic: simp only [mem_span_singleton']
state_before: case h
α : Type u
β : Type v
inst✝ : Ring α
I : Ideal α
a b x x✝ : α
⊢ x✝ ∈ span {-x} ↔ x✝ ∈ span {x}
state_after: case h
α : Type u
β : Type v
inst✝ : Ring α
I : Ideal α
a b x x✝ : α
⊢ (∃ a, a * -x = x✝) ↔ ∃ a, a * x = x✝

tactic: exact ⟨fun ⟨y, h⟩ => ⟨-y, h ▸ neg_mul_comm y x⟩, fun ⟨y, h⟩ => ⟨-y, h ▸ neg_mul_neg y x⟩⟩
state_before: case h
α : Type u
β : Type v
inst✝ : Ring α
I : Ideal α
a b x x✝ : α
⊢ (∃ a, a * -x = x✝) ↔ ∃ a, a * x = x✝
state_after: no goals
Theorem: Ordinal.iSup_lt
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: rwa [(#ι).lift_id]
state_before: α : Type u_1
r : α → α → Prop
ι : Type u_2
f : ι → Cardinal.{u_2}
c : Cardinal.{u_2}
hι : #ι < c.ord.cof
⊢ Cardinal.lift.{?u.33292, u_2} #ι < c.ord.cof
state_after: no goals
Theorem: AlgebraicGeometry.Scheme.Pullback.t'_fst_fst_snd
File: Mathlib/AlgebraicGeometry/Pullbacks.lean

tactic: simp only [t', Category.assoc, pullbackSymmetry_hom_comp_fst_assoc,
  pullbackRightPullbackFstIso_inv_snd_fst_assoc, pullback.lift_fst_assoc, t_fst_snd,
  pullbackRightPullbackFstIso_hom_fst_assoc]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i j k : 𝒰.J
⊢ t' 𝒰 f g i j k ≫ pullback.fst ≫ pullback.fst ≫ pullback.snd = pullback.fst ≫ pullback.fst ≫ pullback.snd
state_after: no goals