1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.PreGaloisCategory.card_aut_le_card_fiber_of_connected
File: Mathlib/CategoryTheory/Galois/Basic.lean

tactic: have h : Nonempty (F.obj A) := inferInstance
state_before: C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A : C
inst✝ : IsConnected A
⊢ Nat.card (Aut A) ≤ Nat.card ↑(F.obj A)
state_after: C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A : C
inst✝ : IsConnected A
h : Nonempty ↑(F.obj A)
⊢ Nat.card (Aut A) ≤ Nat.card ↑(F.obj A)

tactic: obtain ⟨a⟩ := h
state_before: C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A : C
inst✝ : IsConnected A
h : Nonempty ↑(F.obj A)
⊢ Nat.card (Aut A) ≤ Nat.card ↑(F.obj A)
state_after: case intro
C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A : C
inst✝ : IsConnected A
a : ↑(F.obj A)
⊢ Nat.card (Aut A) ≤ Nat.card ↑(F.obj A)

tactic: apply Nat.card_le_card_of_injective
state_before: case intro
C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A : C
inst✝ : IsConnected A
a : ↑(F.obj A)
⊢ Nat.card (Aut A) ≤ Nat.card ↑(F.obj A)
state_after: case intro.hf
C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A : C
inst✝ : IsConnected A
a : ↑(F.obj A)
⊢ Function.Injective ?intro.f

case intro.f
C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A : C
inst✝ : IsConnected A
a : ↑(F.obj A)
⊢ Aut A → ↑(F.obj A)

tactic: exact evaluation_aut_injective_of_isConnected _ _ a
state_before: case intro.hf
C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A : C
inst✝ : IsConnected A
a : ↑(F.obj A)
⊢ Function.Injective ?intro.f

case intro.f
C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A : C
inst✝ : IsConnected A
a : ↑(F.obj A)
⊢ Aut A → ↑(F.obj A)
state_after: no goals
Theorem: SimpleGraph.TripartiteFromTriangles.exists_mem_toTriangle
File: Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean

tactic: cases hxy <;> exact ⟨_, ‹_›, by simp⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝³ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a a' : α
b b' : β
c c' : γ
x✝ : α × β × γ
ε : 𝕜
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
x y : α ⊕ β ⊕ γ
hxy : (graph t).Adj x y
⊢ ∃ z ∈ t, x ∈ toTriangle z ∧ y ∈ toTriangle z
state_after: no goals

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝³ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a a' : α
b b' : β
c c' : γ
x : α × β × γ
ε : 𝕜
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableEq γ
a✝¹ : α
b✝ : β
c✝ : γ
a✝ : (a✝¹, b✝, c✝) ∈ t
⊢ in₂ c✝ ∈ toTriangle (a✝¹, b✝, c✝) ∧ in₁ b✝ ∈ toTriangle (a✝¹, b✝, c✝)
state_after: no goals
Theorem: ClusterPt.of_nhds_le
File: Mathlib/Topology/Basic.lean

tactic: simp only [ClusterPt, inf_eq_left.mpr H, nhds_neBot]
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
f : Filter X
H : 𝓝 x ≤ f
⊢ ClusterPt x f
state_after: no goals
Theorem: CompHaus.pullback.condition
File: Mathlib/Topology/Category/CompHaus/Limits.lean

tactic: ext ⟨_,h⟩
state_before: X Y B : CompHaus
f : X ⟶ B
g : Y ⟶ B
⊢ fst f g ≫ f = snd f g ≫ g
state_after: case w.mk
X Y B : CompHaus
f : X ⟶ B
g : Y ⟶ B
val✝ : ↑X.toTop × ↑Y.toTop
h : val✝ ∈ {xy | f xy.1 = g xy.2}
⊢ (fst f g ≫ f) ⟨val✝, h⟩ = (snd f g ≫ g) ⟨val✝, h⟩

tactic: exact h
state_before: case w.mk
X Y B : CompHaus
f : X ⟶ B
g : Y ⟶ B
val✝ : ↑X.toTop × ↑Y.toTop
h : val✝ ∈ {xy | f xy.1 = g xy.2}
⊢ (fst f g ≫ f) ⟨val✝, h⟩ = (snd f g ≫ g) ⟨val✝, h⟩
state_after: no goals
Theorem: map_sdiff'
File: Mathlib/Order/Hom/Lattice.lean

tactic: rw [sdiff_eq, sdiff_eq, map_inf, map_compl']
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
inst✝³ : BooleanAlgebra α
inst✝² : BooleanAlgebra β
inst✝¹ : FunLike F α β
inst✝ : BoundedLatticeHomClass F α β
f : F
a b : α
⊢ f (a \ b) = f a \ f b
state_after: no goals
Theorem: Finset.affineCombination_indicator_subset
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: rw [affineCombination_apply, affineCombination_apply,
  weightedVSubOfPoint_indicator_subset _ _ _ h]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
ι : Type u_4
s : Finset ι
ι₂ : Type u_5
s₂✝ : Finset ι₂
w : ι → k
p : ι → P
s₁ s₂ : Finset ι
h : s₁ ⊆ s₂
⊢ (affineCombination k s₁ p) w = (affineCombination k s₂ p) ((↑s₁).indicator w)
state_after: no goals
Theorem: Language.reverse_one
File: Mathlib/Computability/Language.lean

tactic: simp [reverse, ← one_def]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
l m : Language α
a b x : List α
⊢ reverse 1 = 1
state_after: no goals
Theorem: List.getElem?_set'
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: by_cases m = n <;> simp [*]
state_before: α : Type u_1
a : α
m n : Nat
l : List α
⊢ (l.set m a)[n]? = if m = n then (fun x => a) <$> l[n]? else l[n]?
state_after: no goals
Theorem: inv_mul_le_iff_le_mul
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [← mul_le_mul_iff_left b, mul_inv_cancel_left]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c d : α
⊢ b⁻¹ * a ≤ c ↔ a ≤ b * c
state_after: no goals
Theorem: ConvexBody.hausdorffEdist_ne_top
File: Mathlib/Analysis/Convex/Body.lean

tactic: apply_rules [Metric.hausdorffEdist_ne_top_of_nonempty_of_bounded, ConvexBody.nonempty,
  ConvexBody.isBounded]
state_before: V : Type u_1
inst✝¹ : SeminormedAddCommGroup V
inst✝ : NormedSpace ℝ V
K✝ L✝ K L : ConvexBody V
⊢ EMetric.hausdorffEdist ↑K ↑L ≠ ⊤
state_after: no goals
Theorem: Multiset.toFinset_sum_count_eq
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: simpa using (Finset.sum_multiset_map_count s (fun _ => (1 : ℕ))).symm
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✝ : DecidableEq α
s : Multiset α
⊢ ∑ a ∈ s.toFinset, count a s = card s
state_after: no goals
Theorem: toIocMod_sub_zsmul
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [sub_eq_add_neg, ← neg_smul, toIocMod_add_zsmul]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
m : ℤ
⊢ toIocMod hp a (b - m • p) = toIocMod hp a b
state_after: no goals
Theorem: MeasureTheory.IsProjectiveLimit.unique
File: Mathlib/MeasureTheory/Constructions/Projective.lean

tactic: haveI : IsFiniteMeasure μ := hμ.isFiniteMeasure
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → MeasurableSpace (α i)
P : (J : Finset ι) → Measure ((j : { x // x ∈ J }) → α ↑j)
μ ν : Measure ((i : ι) → α i)
inst✝ : ∀ (i : Finset ι), IsFiniteMeasure (P i)
hμ : IsProjectiveLimit μ P
hν : IsProjectiveLimit ν P
⊢ μ = ν
state_after: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → MeasurableSpace (α i)
P : (J : Finset ι) → Measure ((j : { x // x ∈ J }) → α ↑j)
μ ν : Measure ((i : ι) → α i)
inst✝ : ∀ (i : Finset ι), IsFiniteMeasure (P i)
hμ : IsProjectiveLimit μ P
hν : IsProjectiveLimit ν P
this : IsFiniteMeasure μ
⊢ μ = ν

tactic: refine ext_of_generate_finite (measurableCylinders α) generateFrom_measurableCylinders.symm
  isPiSystem_measurableCylinders (fun s hs ↦ ?_) (hμ.measure_univ_unique hν)
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → MeasurableSpace (α i)
P : (J : Finset ι) → Measure ((j : { x // x ∈ J }) → α ↑j)
μ ν : Measure ((i : ι) → α i)
inst✝ : ∀ (i : Finset ι), IsFiniteMeasure (P i)
hμ : IsProjectiveLimit μ P
hν : IsProjectiveLimit ν P
this : IsFiniteMeasure μ
⊢ μ = ν
state_after: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → MeasurableSpace (α i)
P : (J : Finset ι) → Measure ((j : { x // x ∈ J }) → α ↑j)
μ ν : Measure ((i : ι) → α i)
inst✝ : ∀ (i : Finset ι), IsFiniteMeasure (P i)
hμ : IsProjectiveLimit μ P
hν : IsProjectiveLimit ν P
this : IsFiniteMeasure μ
s : Set ((i : ι) → α i)
hs : s ∈ measurableCylinders α
⊢ μ s = ν s

tactic: obtain ⟨I, S, hS, rfl⟩ := (mem_measurableCylinders _).mp hs
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → MeasurableSpace (α i)
P : (J : Finset ι) → Measure ((j : { x // x ∈ J }) → α ↑j)
μ ν : Measure ((i : ι) → α i)
inst✝ : ∀ (i : Finset ι), IsFiniteMeasure (P i)
hμ : IsProjectiveLimit μ P
hν : IsProjectiveLimit ν P
this : IsFiniteMeasure μ
s : Set ((i : ι) → α i)
hs : s ∈ measurableCylinders α
⊢ μ s = ν s
state_after: case intro.intro.intro
ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → MeasurableSpace (α i)
P : (J : Finset ι) → Measure ((j : { x // x ∈ J }) → α ↑j)
μ ν : Measure ((i : ι) → α i)
inst✝ : ∀ (i : Finset ι), IsFiniteMeasure (P i)
hμ : IsProjectiveLimit μ P
hν : IsProjectiveLimit ν P
this : IsFiniteMeasure μ
I : Finset ι
S : Set ((i : { x // x ∈ I }) → α ↑i)
hS : MeasurableSet S
hs : cylinder I S ∈ measurableCylinders α
⊢ μ (cylinder I S) = ν (cylinder I S)

tactic: rw [hμ.measure_cylinder _ hS, hν.measure_cylinder _ hS]
state_before: case intro.intro.intro
ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → MeasurableSpace (α i)
P : (J : Finset ι) → Measure ((j : { x // x ∈ J }) → α ↑j)
μ ν : Measure ((i : ι) → α i)
inst✝ : ∀ (i : Finset ι), IsFiniteMeasure (P i)
hμ : IsProjectiveLimit μ P
hν : IsProjectiveLimit ν P
this : IsFiniteMeasure μ
I : Finset ι
S : Set ((i : { x // x ∈ I }) → α ↑i)
hS : MeasurableSet S
hs : cylinder I S ∈ measurableCylinders α
⊢ μ (cylinder I S) = ν (cylinder I S)
state_after: no goals
Theorem: ENNReal.toNNReal_lt_toNNReal
File: Mathlib/Data/ENNReal/Real.lean

tactic: rwa [← coe_toNNReal ha, ← coe_toNNReal hb, coe_lt_coe]
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ ⊤
hb : b ≠ ⊤
h : a.toNNReal < b.toNNReal
⊢ a < b
state_after: no goals
Theorem: SimpleGraph.Walk.isPath_of_length_eq_dist
File: Mathlib/Combinatorics/SimpleGraph/Metric.lean

tactic: classical
have : p.bypass = p := by
  apply Walk.bypass_eq_self_of_length_le
  calc p.length
    _ = G.dist u v := hp
    _ ≤ p.bypass.length := dist_le p.bypass
rw [← this]
apply Walk.bypass_isPath
state_before: V : Type u_1
G : SimpleGraph V
u v : V
p : G.Walk u v
hp : p.length = G.dist u v
⊢ p.IsPath
state_after: no goals

tactic: have : p.bypass = p := by
  apply Walk.bypass_eq_self_of_length_le
  calc p.length
    _ = G.dist u v := hp
    _ ≤ p.bypass.length := dist_le p.bypass
state_before: V : Type u_1
G : SimpleGraph V
u v : V
p : G.Walk u v
hp : p.length = G.dist u v
⊢ p.IsPath
state_after: V : Type u_1
G : SimpleGraph V
u v : V
p : G.Walk u v
hp : p.length = G.dist u v
this : p.bypass = p
⊢ p.IsPath

tactic: rw [← this]
state_before: V : Type u_1
G : SimpleGraph V
u v : V
p : G.Walk u v
hp : p.length = G.dist u v
this : p.bypass = p
⊢ p.IsPath
state_after: V : Type u_1
G : SimpleGraph V
u v : V
p : G.Walk u v
hp : p.length = G.dist u v
this : p.bypass = p
⊢ p.bypass.IsPath

tactic: apply Walk.bypass_isPath
state_before: V : Type u_1
G : SimpleGraph V
u v : V
p : G.Walk u v
hp : p.length = G.dist u v
this : p.bypass = p
⊢ p.bypass.IsPath
state_after: no goals

tactic: apply Walk.bypass_eq_self_of_length_le
state_before: V : Type u_1
G : SimpleGraph V
u v : V
p : G.Walk u v
hp : p.length = G.dist u v
⊢ p.bypass = p
state_after: case h
V : Type u_1
G : SimpleGraph V
u v : V
p : G.Walk u v
hp : p.length = G.dist u v
⊢ p.length ≤ p.bypass.length

tactic: calc p.length
  _ = G.dist u v := hp
  _ ≤ p.bypass.length := dist_le p.bypass
state_before: case h
V : Type u_1
G : SimpleGraph V
u v : V
p : G.Walk u v
hp : p.length = G.dist u v
⊢ p.length ≤ p.bypass.length
state_after: no goals
Theorem: mul_sub_right_distrib
File: Mathlib/Algebra/Ring/Defs.lean

tactic: simpa only [sub_eq_add_neg, neg_mul_eq_neg_mul] using add_mul a (-b) c
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝ : NonUnitalNonAssocRing α
a b c : α
⊢ (a - b) * c = a * c - b * c
state_after: no goals
Theorem: extChartAt_image_nhd_mem_nhds_of_boundaryless
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rw [extChartAt]
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : TopologicalSpace H
inst✝⁷ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : NormedSpace 𝕜 E'
inst✝⁴ : TopologicalSpace H'
inst✝³ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝² : ChartedSpace H M
inst✝¹ : ChartedSpace H' M'
x✝ : ?m.180388
inst✝ : I.Boundaryless
x : M
hx : s ∈ 𝓝 x
⊢ ↑(extChartAt I x) '' s ∈ 𝓝 (↑(extChartAt I x) x)
state_after: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : TopologicalSpace H
inst✝⁷ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : NormedSpace 𝕜 E'
inst✝⁴ : TopologicalSpace H'
inst✝³ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝² : ChartedSpace H M
inst✝¹ : ChartedSpace H' M'
x✝ : ?m.180388
inst✝ : I.Boundaryless
x : M
hx : s ∈ 𝓝 x
⊢ ↑((chartAt H x).extend I) '' s ∈ 𝓝 (↑((chartAt H x).extend I) x)

tactic: exact extend_image_nhd_mem_nhds_of_boundaryless _ I (mem_chart_source H x) hx
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : TopologicalSpace H
inst✝⁷ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : NormedSpace 𝕜 E'
inst✝⁴ : TopologicalSpace H'
inst✝³ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝² : ChartedSpace H M
inst✝¹ : ChartedSpace H' M'
x✝ : ?m.180388
inst✝ : I.Boundaryless
x : M
hx : s ∈ 𝓝 x
⊢ ↑((chartAt H x).extend I) '' s ∈ 𝓝 (↑((chartAt H x).extend I) x)
state_after: no goals
Theorem: Computation.mem_map
File: Mathlib/Data/Seq/Computation.lean

tactic: rw [← bind_pure]
state_before: α : Type u
β : Type v
γ : Type w
f : α → β
a : α
s : Computation α
m : a ∈ s
⊢ f a ∈ map f s
state_after: α : Type u
β : Type v
γ : Type w
f : α → β
a : α
s : Computation α
m : a ∈ s
⊢ f a ∈ s.bind (pure ∘ f)

tactic: apply mem_bind m
state_before: α : Type u
β : Type v
γ : Type w
f : α → β
a : α
s : Computation α
m : a ∈ s
⊢ f a ∈ s.bind (pure ∘ f)
state_after: α : Type u
β : Type v
γ : Type w
f : α → β
a : α
s : Computation α
m : a ∈ s
⊢ f a ∈ (pure ∘ f) a

tactic: apply ret_mem
state_before: α : Type u
β : Type v
γ : Type w
f : α → β
a : α
s : Computation α
m : a ∈ s
⊢ f a ∈ (pure ∘ f) a
state_after: no goals
Theorem: Cardinal.sum_le_iSup_lift
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [← (iSup f).lift_id, ← lift_umax, lift_umax.{max u v, u}, ← sum_const]
state_before: α β ι : Type u
f : ι → Cardinal.{max u v}
⊢ sum f ≤ lift.{v, u} #ι * iSup f
state_after: α β ι : Type u
f : ι → Cardinal.{max u v}
⊢ sum f ≤ sum fun x => iSup f

tactic: exact sum_le_sum _ _ (le_ciSup <| bddAbove_range f)
state_before: α β ι : Type u
f : ι → Cardinal.{max u v}
⊢ sum f ≤ sum fun x => iSup f
state_after: no goals
Theorem: Cardinal.add_eq_right_iff
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: rw [add_comm, add_eq_left_iff]
state_before: a b : Cardinal.{u_1}
⊢ a + b = b ↔ max ℵ₀ a ≤ b ∨ a = 0
state_after: no goals
Theorem: Asymptotics.isBigOWith_insert
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp_rw [IsBigOWith_def, nhdsWithin_insert, eventually_sup, eventually_pure, h, true_and_iff]
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹⁴ : Norm E
inst✝¹³ : Norm F
inst✝¹² : Norm G
inst✝¹¹ : SeminormedAddCommGroup E'
inst✝¹⁰ : SeminormedAddCommGroup F'
inst✝⁹ : SeminormedAddCommGroup G'
inst✝⁸ : NormedAddCommGroup E''
inst✝⁷ : NormedAddCommGroup F''
inst✝⁶ : NormedAddCommGroup G''
inst✝⁵ : SeminormedRing R
inst✝⁴ : SeminormedAddGroup E'''
inst✝³ : SeminormedRing R'
inst✝² : NormedDivisionRing 𝕜
inst✝¹ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g✝ : α → F
k : α → G
f' : α → E'
g'✝ : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
inst✝ : TopologicalSpace α
x : α
s : Set α
C : ℝ
g : α → E
g' : α → F
h : ‖g x‖ ≤ C * ‖g' x‖
⊢ IsBigOWith C (𝓝[insert x s] x) g g' ↔ IsBigOWith C (𝓝[s] x) g g'
state_after: no goals
Theorem: Units.inv_eq_of_mul_eq_one_left
File: Mathlib/Algebra/Group/Units.lean

tactic: rw [one_mul]
state_before: α : Type u
inst✝ : Monoid α
a✝ b c u : αˣ
a : α
h : a * ↑u = 1
⊢ ↑u⁻¹ = 1 * ↑u⁻¹
state_after: no goals

tactic: rw [← h, mul_inv_cancel_right]
state_before: α : Type u
inst✝ : Monoid α
a✝ b c u : αˣ
a : α
h : a * ↑u = 1
⊢ 1 * ↑u⁻¹ = a
state_after: no goals
Theorem: SubMulAction.val_preimage_orbit
File: Mathlib/GroupTheory/GroupAction/SubMulAction.lean

tactic: rw [← val_image_orbit, Subtype.val_injective.preimage_image]
state_before: S : Type u'
T : Type u''
R : Type u
M : Type v
inst✝¹ : Monoid R
inst✝ : MulAction R M
p : SubMulAction R M
m : ↥p
⊢ Subtype.val ⁻¹' MulAction.orbit R ↑m = MulAction.orbit R m
state_after: no goals
Theorem: map_bihimp
File: Mathlib/Order/Heyting/Hom.lean

tactic: simp_rw [bihimp, map_inf, map_himp]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
inst✝³ : FunLike F α β
inst✝² : HeytingAlgebra α
inst✝¹ : HeytingAlgebra β
inst✝ : HeytingHomClass F α β
f : F
a b : α
⊢ f (a ⇔ b) = f a ⇔ f b
state_after: no goals
Theorem: Polynomial.divX_eq_zero_iff
File: Mathlib/Algebra/Polynomial/Inductions.lean

tactic: simpa [eq_comm, h] using divX_mul_X_add p
state_before: R : Type u
S : Type v
T : Type w
A : Type z
a b : R
n : ℕ
inst✝ : Semiring R
p q : R[X]
h : p.divX = 0
⊢ p = C (p.coeff 0)
state_after: no goals

tactic: rw [h, divX_C]
state_before: R : Type u
S : Type v
T : Type w
A : Type z
a b : R
n : ℕ
inst✝ : Semiring R
p q : R[X]
h : p = C (p.coeff 0)
⊢ p.divX = 0
state_after: no goals
Theorem: MeasureTheory.Lp.norm_measure_zero
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: simp [norm_def]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : ↥(Lp E p 0)
⊢ ‖f‖ = 0
state_after: no goals
Theorem: Ideal.isPrime_radical
File: Mathlib/RingTheory/Ideal/IsPrimary.lean

tactic: rw [mul_pow] at hxy
state_before: R : Type u_1
inst✝ : CommSemiring R
I : Ideal R
hi : I.IsPrimary
x y : R
x✝ : x * y ∈ I.radical
m : ℕ
hxy : (x * y) ^ m ∈ I
⊢ x ∈ I.radical ∨ y ∈ I.radical
state_after: R : Type u_1
inst✝ : CommSemiring R
I : Ideal R
hi : I.IsPrimary
x y : R
x✝ : x * y ∈ I.radical
m : ℕ
hxy : x ^ m * y ^ m ∈ I
⊢ x ∈ I.radical ∨ y ∈ I.radical

tactic: cases' hi.2 hxy with h h
state_before: R : Type u_1
inst✝ : CommSemiring R
I : Ideal R
hi : I.IsPrimary
x y : R
x✝ : x * y ∈ I.radical
m : ℕ
hxy : x ^ m * y ^ m ∈ I
⊢ x ∈ I.radical ∨ y ∈ I.radical
state_after: case inl
R : Type u_1
inst✝ : CommSemiring R
I : Ideal R
hi : I.IsPrimary
x y : R
x✝ : x * y ∈ I.radical
m : ℕ
hxy : x ^ m * y ^ m ∈ I
h : x ^ m ∈ I
⊢ x ∈ I.radical ∨ y ∈ I.radical

case inr
R : Type u_1
inst✝ : CommSemiring R
I : Ideal R
hi : I.IsPrimary
x y : R
x✝ : x * y ∈ I.radical
m : ℕ
hxy : x ^ m * y ^ m ∈ I
h : y ^ m ∈ I.radical
⊢ x ∈ I.radical ∨ y ∈ I.radical

tactic: exact Or.inl ⟨m, h⟩
state_before: case inl
R : Type u_1
inst✝ : CommSemiring R
I : Ideal R
hi : I.IsPrimary
x y : R
x✝ : x * y ∈ I.radical
m : ℕ
hxy : x ^ m * y ^ m ∈ I
h : x ^ m ∈ I
⊢ x ∈ I.radical ∨ y ∈ I.radical
state_after: no goals

tactic: exact Or.inr (mem_radical_of_pow_mem h)
state_before: case inr
R : Type u_1
inst✝ : CommSemiring R
I : Ideal R
hi : I.IsPrimary
x y : R
x✝ : x * y ∈ I.radical
m : ℕ
hxy : x ^ m * y ^ m ∈ I
h : y ^ m ∈ I.radical
⊢ x ∈ I.radical ∨ y ∈ I.radical
state_after: no goals
Theorem: Finset.piecewise_erase_univ
File: Mathlib/Data/Finset/Piecewise.lean

tactic: rw [← compl_singleton, piecewise_compl, piecewise_singleton]
state_before: ι : Type u_1
π : ι → Sort u_2
s : Finset ι
f✝ g✝ : (i : ι) → π i
inst✝² : (j : ι) → Decidable (j ∈ s)
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
i : ι
f g : (i : ι) → π i
⊢ (univ.erase i).piecewise f g = update f i (g i)
state_after: no goals
Theorem: HolorIndex.cast_type
File: Mathlib/Data/Holor.lean

tactic: subst eq
state_before: ds₁ ds₂ ds₃ is : List ℕ
eq : ds₁ = ds₂
h : Forall₂ (fun x x_1 => x < x_1) is ds₁
⊢ ↑(cast ⋯ ⟨is, h⟩) = is
state_after: ds₁ ds₃ is : List ℕ
h : Forall₂ (fun x x_1 => x < x_1) is ds₁
⊢ ↑(cast ⋯ ⟨is, h⟩) = is

tactic: rfl
state_before: ds₁ ds₃ is : List ℕ
h : Forall₂ (fun x x_1 => x < x_1) is ds₁
⊢ ↑(cast ⋯ ⟨is, h⟩) = is
state_after: no goals
Theorem: Multiset.disjoint_union_left
File: Mathlib/Data/Multiset/Basic.lean

tactic: simp [Disjoint, or_imp, forall_and]
state_before: α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s t u : Multiset α
⊢ (s ∪ t).Disjoint u ↔ s.Disjoint u ∧ t.Disjoint u
state_after: no goals
Theorem: Finset.image₂_nonempty_iff
File: Mathlib/Data/Finset/NAry.lean

tactic: rw [← coe_nonempty, coe_image₂]
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
⊢ (image₂ f s t).Nonempty ↔ s.Nonempty ∧ t.Nonempty
state_after: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
⊢ (image2 f ↑s ↑t).Nonempty ↔ s.Nonempty ∧ t.Nonempty

tactic: exact image2_nonempty_iff
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
⊢ (image2 f ↑s ↑t).Nonempty ↔ s.Nonempty ∧ t.Nonempty
state_after: no goals