1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: exists_dist_le_lt
File: Mathlib/Analysis/NormedSpace/Pointwise.lean

tactic: refine (exists_dist_eq x z (div_nonneg hε.le <| add_nonneg hε.le hδ)
  (div_nonneg hδ <| add_nonneg hε.le hδ) <| by
    rw [← add_div, div_self (add_pos_of_pos_of_nonneg hε hδ).ne']).imp
  fun y hy => ?_
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x y z : E
δ ε : ℝ
hδ : 0 ≤ δ
hε : 0 < ε
h : dist x z < ε + δ
⊢ ∃ y, dist x y ≤ δ ∧ dist y z < ε
state_after: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x y✝ z : E
δ ε : ℝ
hδ : 0 ≤ δ
hε : 0 < ε
h : dist x z < ε + δ
y : E
hy : dist x y = δ / (ε + δ) * dist x z ∧ dist y z = ε / (ε + δ) * dist x z
⊢ dist x y ≤ δ ∧ dist y z < ε

tactic: rw [hy.1, hy.2, div_mul_comm, div_mul_comm ε]
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x y✝ z : E
δ ε : ℝ
hδ : 0 ≤ δ
hε : 0 < ε
h : dist x z < ε + δ
y : E
hy : dist x y = δ / (ε + δ) * dist x z ∧ dist y z = ε / (ε + δ) * dist x z
⊢ dist x y ≤ δ ∧ dist y z < ε
state_after: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x y✝ z : E
δ ε : ℝ
hδ : 0 ≤ δ
hε : 0 < ε
h : dist x z < ε + δ
y : E
hy : dist x y = δ / (ε + δ) * dist x z ∧ dist y z = ε / (ε + δ) * dist x z
⊢ dist x z / (ε + δ) * δ ≤ δ ∧ dist x z / (ε + δ) * ε < ε

tactic: rw [← div_lt_one (add_pos_of_pos_of_nonneg hε hδ)] at h
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x y✝ z : E
δ ε : ℝ
hδ : 0 ≤ δ
hε : 0 < ε
h : dist x z < ε + δ
y : E
hy : dist x y = δ / (ε + δ) * dist x z ∧ dist y z = ε / (ε + δ) * dist x z
⊢ dist x z / (ε + δ) * δ ≤ δ ∧ dist x z / (ε + δ) * ε < ε
state_after: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x y✝ z : E
δ ε : ℝ
hδ : 0 ≤ δ
hε : 0 < ε
h : dist x z / (ε + δ) < 1
y : E
hy : dist x y = δ / (ε + δ) * dist x z ∧ dist y z = ε / (ε + δ) * dist x z
⊢ dist x z / (ε + δ) * δ ≤ δ ∧ dist x z / (ε + δ) * ε < ε

tactic: exact ⟨mul_le_of_le_one_left hδ h.le, mul_lt_of_lt_one_left hε h⟩
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x y✝ z : E
δ ε : ℝ
hδ : 0 ≤ δ
hε : 0 < ε
h : dist x z / (ε + δ) < 1
y : E
hy : dist x y = δ / (ε + δ) * dist x z ∧ dist y z = ε / (ε + δ) * dist x z
⊢ dist x z / (ε + δ) * δ ≤ δ ∧ dist x z / (ε + δ) * ε < ε
state_after: no goals

tactic: rw [← add_div, div_self (add_pos_of_pos_of_nonneg hε hδ).ne']
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x y z : E
δ ε : ℝ
hδ : 0 ≤ δ
hε : 0 < ε
h : dist x z < ε + δ
⊢ ε / (ε + δ) + δ / (ε + δ) = 1
state_after: no goals
Theorem: Dvd.intro_left
File: Mathlib/Algebra/Divisibility/Basic.lean

tactic: rw [mul_comm] at h
state_before: α : Type u_1
inst✝ : CommSemigroup α
a b c✝ c : α
h : c * a = b
⊢ a * ?m.8167 = b
state_after: α : Type u_1
inst✝ : CommSemigroup α
a b c✝ c : α
h✝ : c * a = b
h : a * c = b
⊢ a * ?m.8167 = b

tactic: apply h
state_before: α : Type u_1
inst✝ : CommSemigroup α
a b c✝ c : α
h✝ : c * a = b
h : a * c = b
⊢ a * ?m.8167 = b
state_after: no goals
Theorem: Grp.hasLimit_iff_small_sections
File: Mathlib/Algebra/Category/Grp/Limits.lean

tactic: constructor
state_before: J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Grp
⊢ HasLimit F ↔ Small.{u, max u v} ↑(F ⋙ forget Grp).sections
state_after: case mp
J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Grp
⊢ HasLimit F → Small.{u, max u v} ↑(F ⋙ forget Grp).sections

case mpr
J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Grp
⊢ Small.{u, max u v} ↑(F ⋙ forget Grp).sections → HasLimit F

tactic: apply Concrete.small_sections_of_hasLimit
state_before: case mp
J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Grp
⊢ HasLimit F → Small.{u, max u v} ↑(F ⋙ forget Grp).sections
state_after: no goals

tactic: intro
state_before: case mpr
J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Grp
⊢ Small.{u, max u v} ↑(F ⋙ forget Grp).sections → HasLimit F
state_after: case mpr
J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Grp
a✝ : Small.{u, max u v} ↑(F ⋙ forget Grp).sections
⊢ HasLimit F

tactic: infer_instance
state_before: case mpr
J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Grp
a✝ : Small.{u, max u v} ↑(F ⋙ forget Grp).sections
⊢ HasLimit F
state_after: no goals
Theorem: Polynomial.derivative_C
File: Mathlib/Algebra/Polynomial/Derivative.lean

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

tactic: match l with
| [] =>
  rw [List.dProd_nil, List.map_nil, List.prod_nil]
  rfl
| head::tail =>
  rw [List.dProd_cons, List.map_cons, List.prod_cons, List.dProd_monoid tail _ _]
  rfl
state_before: ι : Type u_1
R : Type u_2
α : Type u_3
inst✝¹ : AddMonoid ι
inst✝ : Monoid R
l : List α
fι : α → ι
fA : α → R
⊢ l.dProd fι fA = (map fA l).prod
state_after: no goals

tactic: rw [List.dProd_nil, List.map_nil, List.prod_nil]
state_before: ι : Type u_1
R : Type u_2
α : Type u_3
inst✝¹ : AddMonoid ι
inst✝ : Monoid R
l : List α
fι : α → ι
fA : α → R
⊢ [].dProd fι fA = (map fA []).prod
state_after: ι : Type u_1
R : Type u_2
α : Type u_3
inst✝¹ : AddMonoid ι
inst✝ : Monoid R
l : List α
fι : α → ι
fA : α → R
⊢ GradedMonoid.GOne.one = 1

tactic: rfl
state_before: ι : Type u_1
R : Type u_2
α : Type u_3
inst✝¹ : AddMonoid ι
inst✝ : Monoid R
l : List α
fι : α → ι
fA : α → R
⊢ GradedMonoid.GOne.one = 1
state_after: no goals

tactic: rw [List.dProd_cons, List.map_cons, List.prod_cons, List.dProd_monoid tail _ _]
state_before: ι : Type u_1
R : Type u_2
α : Type u_3
inst✝¹ : AddMonoid ι
inst✝ : Monoid R
l : List α
fι : α → ι
fA : α → R
head : α
tail : List α
⊢ (head :: tail).dProd fι fA = (map fA (head :: tail)).prod
state_after: ι : Type u_1
R : Type u_2
α : Type u_3
inst✝¹ : AddMonoid ι
inst✝ : Monoid R
l : List α
fι : α → ι
fA : α → R
head : α
tail : List α
⊢ GradedMonoid.GMul.mul (fA head) (map fA tail).prod = fA head * (map fA tail).prod

tactic: rfl
state_before: ι : Type u_1
R : Type u_2
α : Type u_3
inst✝¹ : AddMonoid ι
inst✝ : Monoid R
l : List α
fι : α → ι
fA : α → R
head : α
tail : List α
⊢ GradedMonoid.GMul.mul (fA head) (map fA tail).prod = fA head * (map fA tail).prod
state_after: no goals
Theorem: PowerSeries.coeff_zero_eq_constantCoeff_apply
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: rw [coeff_zero_eq_constantCoeff]
state_before: R : Type u_1
inst✝ : Semiring R
φ : R⟦X⟧
⊢ (coeff R 0) φ = (constantCoeff R) φ
state_after: no goals
Theorem: mul_div_cancel_left₀
File: Mathlib/Algebra/GroupWithZero/Defs.lean

tactic: rw [mul_comm, mul_div_cancel_right₀ _ ha]
state_before: G₀ : Type u
M₀ : Type u_1
M₀' : Type u_2
G₀' : Type u_3
inst✝² : CommMonoidWithZero M₀
inst✝¹ : Div M₀
inst✝ : MulDivCancelClass M₀
a b✝ b : M₀
ha : a ≠ 0
⊢ a * b / a = b
state_after: no goals
Theorem: Topology.IsScott.lowerClosure_subset_closure
File: Mathlib/Topology/Order/ScottTopology.lean

tactic: convert closure.mono (@upperSet_le_scott α _)
state_before: α : Type u_1
β : Type u_2
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : IsScott α
s : Set α
a : α
⊢ ↑(lowerClosure s) ⊆ closure s
state_after: case h.e'_3
α : Type u_1
β : Type u_2
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : IsScott α
s : Set α
a : α
⊢ ↑(lowerClosure s) = closure s

case h.e'_4.h.e'_2
α : Type u_1
β : Type u_2
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : IsScott α
s : Set α
a : α
⊢ inst✝¹ = scott α

tactic: rw [@IsUpperSet.closure_eq_lowerClosure α _ (upperSet α) ?_ s]
state_before: case h.e'_3
α : Type u_1
β : Type u_2
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : IsScott α
s : Set α
a : α
⊢ ↑(lowerClosure s) = closure s
state_after: α : Type u_1
β : Type u_2
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : IsScott α
s : Set α
a : α
⊢ Topology.IsUpperSet α

tactic: infer_instance
state_before: α : Type u_1
β : Type u_2
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : IsScott α
s : Set α
a : α
⊢ Topology.IsUpperSet α
state_after: no goals

tactic: exact topology_eq α
state_before: case h.e'_4.h.e'_2
α : Type u_1
β : Type u_2
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : IsScott α
s : Set α
a : α
⊢ inst✝¹ = scott α
state_after: no goals
Theorem: measurable_fract
File: Mathlib/MeasureTheory/Function/Floor.lean

tactic: intro s hs
state_before: α : Type u_1
R : Type u_2
inst✝⁶ : MeasurableSpace α
inst✝⁵ : LinearOrderedRing R
inst✝⁴ : FloorRing R
inst✝³ : TopologicalSpace R
inst✝² : OrderTopology R
inst✝¹ : MeasurableSpace R
inst✝ : BorelSpace R
⊢ Measurable Int.fract
state_after: α : Type u_1
R : Type u_2
inst✝⁶ : MeasurableSpace α
inst✝⁵ : LinearOrderedRing R
inst✝⁴ : FloorRing R
inst✝³ : TopologicalSpace R
inst✝² : OrderTopology R
inst✝¹ : MeasurableSpace R
inst✝ : BorelSpace R
s : Set R
hs : MeasurableSet s
⊢ MeasurableSet (Int.fract ⁻¹' s)

tactic: rw [Int.preimage_fract]
state_before: α : Type u_1
R : Type u_2
inst✝⁶ : MeasurableSpace α
inst✝⁵ : LinearOrderedRing R
inst✝⁴ : FloorRing R
inst✝³ : TopologicalSpace R
inst✝² : OrderTopology R
inst✝¹ : MeasurableSpace R
inst✝ : BorelSpace R
s : Set R
hs : MeasurableSet s
⊢ MeasurableSet (Int.fract ⁻¹' s)
state_after: α : Type u_1
R : Type u_2
inst✝⁶ : MeasurableSpace α
inst✝⁵ : LinearOrderedRing R
inst✝⁴ : FloorRing R
inst✝³ : TopologicalSpace R
inst✝² : OrderTopology R
inst✝¹ : MeasurableSpace R
inst✝ : BorelSpace R
s : Set R
hs : MeasurableSet s
⊢ MeasurableSet (⋃ m, (fun x => x - ↑m) ⁻¹' (s ∩ Ico 0 1))

tactic: exact MeasurableSet.iUnion fun z => measurable_id.sub_const _ (hs.inter measurableSet_Ico)
state_before: α : Type u_1
R : Type u_2
inst✝⁶ : MeasurableSpace α
inst✝⁵ : LinearOrderedRing R
inst✝⁴ : FloorRing R
inst✝³ : TopologicalSpace R
inst✝² : OrderTopology R
inst✝¹ : MeasurableSpace R
inst✝ : BorelSpace R
s : Set R
hs : MeasurableSet s
⊢ MeasurableSet (⋃ m, (fun x => x - ↑m) ⁻¹' (s ∩ Ico 0 1))
state_after: no goals
Theorem: SimpleGraph.Walk.IsEulerian.isTrail
File: Mathlib/Combinatorics/SimpleGraph/Trails.lean

tactic: rw [isTrail_def, List.nodup_iff_count_le_one]
state_before: V : Type u_1
G : SimpleGraph V
inst✝ : DecidableEq V
u v : V
p : G.Walk u v
h : p.IsEulerian
⊢ p.IsTrail
state_after: V : Type u_1
G : SimpleGraph V
inst✝ : DecidableEq V
u v : V
p : G.Walk u v
h : p.IsEulerian
⊢ ∀ (a : Sym2 V), List.count a p.edges ≤ 1

tactic: intro e
state_before: V : Type u_1
G : SimpleGraph V
inst✝ : DecidableEq V
u v : V
p : G.Walk u v
h : p.IsEulerian
⊢ ∀ (a : Sym2 V), List.count a p.edges ≤ 1
state_after: V : Type u_1
G : SimpleGraph V
inst✝ : DecidableEq V
u v : V
p : G.Walk u v
h : p.IsEulerian
e : Sym2 V
⊢ List.count e p.edges ≤ 1

tactic: by_cases he : e ∈ p.edges
state_before: V : Type u_1
G : SimpleGraph V
inst✝ : DecidableEq V
u v : V
p : G.Walk u v
h : p.IsEulerian
e : Sym2 V
⊢ List.count e p.edges ≤ 1
state_after: case pos
V : Type u_1
G : SimpleGraph V
inst✝ : DecidableEq V
u v : V
p : G.Walk u v
h : p.IsEulerian
e : Sym2 V
he : e ∈ p.edges
⊢ List.count e p.edges ≤ 1

case neg
V : Type u_1
G : SimpleGraph V
inst✝ : DecidableEq V
u v : V
p : G.Walk u v
h : p.IsEulerian
e : Sym2 V
he : e ∉ p.edges
⊢ List.count e p.edges ≤ 1

tactic: exact (h e (edges_subset_edgeSet _ he)).le
state_before: case pos
V : Type u_1
G : SimpleGraph V
inst✝ : DecidableEq V
u v : V
p : G.Walk u v
h : p.IsEulerian
e : Sym2 V
he : e ∈ p.edges
⊢ List.count e p.edges ≤ 1
state_after: no goals

tactic: simp [he]
state_before: case neg
V : Type u_1
G : SimpleGraph V
inst✝ : DecidableEq V
u v : V
p : G.Walk u v
h : p.IsEulerian
e : Sym2 V
he : e ∉ p.edges
⊢ List.count e p.edges ≤ 1
state_after: no goals
Theorem: FirstOrder.Language.Equiv.injective_toEmbedding
File: Mathlib/ModelTheory/Basic.lean

tactic: intro _ _ h
state_before: L : Language
L' : Language
M : Type w
N : Type w'
inst✝³ : L.Structure M
inst✝² : L.Structure N
P : Type u_1
inst✝¹ : L.Structure P
Q : Type u_2
inst✝ : L.Structure Q
⊢ Function.Injective toEmbedding
state_after: L : Language
L' : Language
M : Type w
N : Type w'
inst✝³ : L.Structure M
inst✝² : L.Structure N
P : Type u_1
inst✝¹ : L.Structure P
Q : Type u_2
inst✝ : L.Structure Q
a₁✝ a₂✝ : M ≃[L] N
h : a₁✝.toEmbedding = a₂✝.toEmbedding
⊢ a₁✝ = a₂✝

tactic: apply DFunLike.coe_injective
state_before: L : Language
L' : Language
M : Type w
N : Type w'
inst✝³ : L.Structure M
inst✝² : L.Structure N
P : Type u_1
inst✝¹ : L.Structure P
Q : Type u_2
inst✝ : L.Structure Q
a₁✝ a₂✝ : M ≃[L] N
h : a₁✝.toEmbedding = a₂✝.toEmbedding
⊢ a₁✝ = a₂✝
state_after: case a
L : Language
L' : Language
M : Type w
N : Type w'
inst✝³ : L.Structure M
inst✝² : L.Structure N
P : Type u_1
inst✝¹ : L.Structure P
Q : Type u_2
inst✝ : L.Structure Q
a₁✝ a₂✝ : M ≃[L] N
h : a₁✝.toEmbedding = a₂✝.toEmbedding
⊢ (fun f => ⇑f) a₁✝ = (fun f => ⇑f) a₂✝

tactic: exact congr_arg (DFunLike.coe ∘ Embedding.toHom) h
state_before: case a
L : Language
L' : Language
M : Type w
N : Type w'
inst✝³ : L.Structure M
inst✝² : L.Structure N
P : Type u_1
inst✝¹ : L.Structure P
Q : Type u_2
inst✝ : L.Structure Q
a₁✝ a₂✝ : M ≃[L] N
h : a₁✝.toEmbedding = a₂✝.toEmbedding
⊢ (fun f => ⇑f) a₁✝ = (fun f => ⇑f) a₂✝
state_after: no goals
Theorem: GroupSeminorm.mul_bddBelow_range_add
File: Mathlib/Analysis/Normed/Group/Seminorm.lean

tactic: rintro _ ⟨x, rfl⟩
state_before: ι : Type u_1
R : Type u_2
R' : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
inst✝² : FunLike F E ℝ
inst✝¹ : CommGroup E
inst✝ : CommGroup F
p✝ q✝ : GroupSeminorm E
x✝ y : E
p q : GroupSeminorm E
x : E
⊢ 0 ∈ lowerBounds (range fun y => p y + q (x / y))
state_after: case intro
ι : Type u_1
R : Type u_2
R' : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
inst✝² : FunLike F E ℝ
inst✝¹ : CommGroup E
inst✝ : CommGroup F
p✝ q✝ : GroupSeminorm E
x✝¹ y : E
p q : GroupSeminorm E
x✝ x : E
⊢ 0 ≤ (fun y => p y + q (x✝ / y)) x

tactic: dsimp
state_before: case intro
ι : Type u_1
R : Type u_2
R' : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
inst✝² : FunLike F E ℝ
inst✝¹ : CommGroup E
inst✝ : CommGroup F
p✝ q✝ : GroupSeminorm E
x✝¹ y : E
p q : GroupSeminorm E
x✝ x : E
⊢ 0 ≤ (fun y => p y + q (x✝ / y)) x
state_after: case intro
ι : Type u_1
R : Type u_2
R' : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
inst✝² : FunLike F E ℝ
inst✝¹ : CommGroup E
inst✝ : CommGroup F
p✝ q✝ : GroupSeminorm E
x✝¹ y : E
p q : GroupSeminorm E
x✝ x : E
⊢ 0 ≤ p x + q (x✝ / x)

tactic: positivity
state_before: case intro
ι : Type u_1
R : Type u_2
R' : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
inst✝² : FunLike F E ℝ
inst✝¹ : CommGroup E
inst✝ : CommGroup F
p✝ q✝ : GroupSeminorm E
x✝¹ y : E
p q : GroupSeminorm E
x✝ x : E
⊢ 0 ≤ p x + q (x✝ / x)
state_after: no goals
Theorem: Polynomial.eval₂_eq_sum
File: Mathlib/Algebra/Polynomial/Eval.lean

tactic: rw [eval₂_def]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
f✝ : R →+* S
x✝ : S
f : R →+* S
x : S
⊢ eval₂ f x p = p.sum fun e a => f a * x ^ e
state_after: no goals
Theorem: Finset.supIndep_singleton
File: Mathlib/Order/SupIndep.lean

tactic: rw [eq_empty_of_ssubset_singleton ⟨hs, fun h => hj (h hji)⟩, sup_empty]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : Lattice α
inst✝ : OrderBot α
s✝ t : Finset ι
f✝ : ι → α
i✝ i : ι
f : ι → α
s : Finset ι
hs : s ⊆ {i}
j : ι
hji : j ∈ {i}
hj : j ∉ s
⊢ Disjoint (f j) (s.sup f)
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : Lattice α
inst✝ : OrderBot α
s✝ t : Finset ι
f✝ : ι → α
i✝ i : ι
f : ι → α
s : Finset ι
hs : s ⊆ {i}
j : ι
hji : j ∈ {i}
hj : j ∉ s
⊢ Disjoint (f j) ⊥

tactic: exact disjoint_bot_right
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : Lattice α
inst✝ : OrderBot α
s✝ t : Finset ι
f✝ : ι → α
i✝ i : ι
f : ι → α
s : Finset ι
hs : s ⊆ {i}
j : ι
hji : j ∈ {i}
hj : j ∉ s
⊢ Disjoint (f j) ⊥
state_after: no goals
Theorem: DFinsupp.support_sum
File: Mathlib/Data/DFinsupp/Basic.lean

tactic: have :
  ∀ i₁ : ι,
    (f.sum fun (i : ι₁) (b : β₁ i) => (g i b) i₁) ≠ 0 → ∃ i : ι₁, f i ≠ 0 ∧ ¬(g i (f i)) i₁ = 0 :=
  fun i₁ h =>
  let ⟨i, hi, Ne⟩ := Finset.exists_ne_zero_of_sum_ne_zero h
  ⟨i, mem_support_iff.1 hi, Ne⟩
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁✝ : ι → Type v₁
β₂ : ι → Type v₂
inst✝⁵ : DecidableEq ι
ι₁ : Type u₁
inst✝⁴ : DecidableEq ι₁
β₁ : ι₁ → Type v₁
inst✝³ : (i₁ : ι₁) → Zero (β₁ i₁)
inst✝² : (i : ι₁) → (x : β₁ i) → Decidable (x ≠ 0)
inst✝¹ : (i : ι) → AddCommMonoid (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
f : Π₀ (i₁ : ι₁), β₁ i₁
g : (i₁ : ι₁) → β₁ i₁ → Π₀ (i : ι), β i
⊢ (f.sum g).support ⊆ f.support.biUnion fun i => (g i (f i)).support
state_after: ι : Type u
γ : Type w
β : ι → Type v
β₁✝ : ι → Type v₁
β₂ : ι → Type v₂
inst✝⁵ : DecidableEq ι
ι₁ : Type u₁
inst✝⁴ : DecidableEq ι₁
β₁ : ι₁ → Type v₁
inst✝³ : (i₁ : ι₁) → Zero (β₁ i₁)
inst✝² : (i : ι₁) → (x : β₁ i) → Decidable (x ≠ 0)
inst✝¹ : (i : ι) → AddCommMonoid (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
f : Π₀ (i₁ : ι₁), β₁ i₁
g : (i₁ : ι₁) → β₁ i₁ → Π₀ (i : ι), β i
this : ∀ (i₁ : ι), (f.sum fun i b => (g i b) i₁) ≠ 0 → ∃ i, f i ≠ 0 ∧ ¬(g i (f i)) i₁ = 0
⊢ (f.sum g).support ⊆ f.support.biUnion fun i => (g i (f i)).support

tactic: simpa [Finset.subset_iff, mem_support_iff, Finset.mem_biUnion, sum_apply] using this
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁✝ : ι → Type v₁
β₂ : ι → Type v₂
inst✝⁵ : DecidableEq ι
ι₁ : Type u₁
inst✝⁴ : DecidableEq ι₁
β₁ : ι₁ → Type v₁
inst✝³ : (i₁ : ι₁) → Zero (β₁ i₁)
inst✝² : (i : ι₁) → (x : β₁ i) → Decidable (x ≠ 0)
inst✝¹ : (i : ι) → AddCommMonoid (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
f : Π₀ (i₁ : ι₁), β₁ i₁
g : (i₁ : ι₁) → β₁ i₁ → Π₀ (i : ι), β i
this : ∀ (i₁ : ι), (f.sum fun i b => (g i b) i₁) ≠ 0 → ∃ i, f i ≠ 0 ∧ ¬(g i (f i)) i₁ = 0
⊢ (f.sum g).support ⊆ f.support.biUnion fun i => (g i (f i)).support
state_after: no goals
Theorem: Matrix.conjTranspose_mul_self_mulVec_eq_zero
File: Mathlib/LinearAlgebra/Matrix/DotProduct.lean

tactic: simpa only [← Matrix.col_mulVec, col_eq_zero] using
  conjTranspose_mul_self_mul_eq_zero A (col (Fin 1) v)
state_before: m : Type u_1
n : Type u_2
p : Type u_3
R : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : Fintype p
inst✝⁴ : PartialOrder R
inst✝³ : NonUnitalRing R
inst✝² : StarRing R
inst✝¹ : StarOrderedRing R
inst✝ : NoZeroDivisors R
A : Matrix m n R
v : n → R
⊢ (Aᴴ * A) *ᵥ v = 0 ↔ A *ᵥ v = 0
state_after: no goals
Theorem: Real.Angle.intCast_mul_eq_zsmul
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: simpa only [zsmul_eq_mul] using coeHom.map_zsmul x n
state_before: x : ℝ
n : ℤ
⊢ ↑(↑n * x) = n • ↑x
state_after: no goals
Theorem: CategoryTheory.ChosenFiniteProducts.whiskerRight_snd
File: Mathlib/CategoryTheory/ChosenFiniteProducts.lean

tactic: simp
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : ChosenFiniteProducts C
X₁ X₂ : C
f : X₁ ⟶ X₂
Y : C
⊢ snd X₁ Y ≫ 𝟙 Y = snd X₁ Y
state_after: no goals
Theorem: continuousAt_iff_lower_upperSemicontinuousAt
File: Mathlib/Topology/Semicontinuous.lean

tactic: simp_rw [← continuousWithinAt_univ, ← lowerSemicontinuousWithinAt_univ_iff, ←
  upperSemicontinuousWithinAt_univ_iff, continuousWithinAt_iff_lower_upperSemicontinuousWithinAt]
state_before: α : Type u_1
inst✝⁴ : TopologicalSpace α
β : Type u_2
inst✝³ : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
γ : Type u_3
inst✝² : LinearOrder γ
inst✝¹ : TopologicalSpace γ
inst✝ : OrderTopology γ
f : α → γ
⊢ ContinuousAt f x ↔ LowerSemicontinuousAt f x ∧ UpperSemicontinuousAt f x
state_after: no goals
Theorem: isIntegral_algEquiv
File: Mathlib/RingTheory/IntegralClosure.lean

tactic: simpa using h.map f.symm
state_before: R : Type u_1
A✝ : Type u_2
B✝ : Type u_3
S : Type u_4
inst✝⁹ : CommRing R
inst✝⁸ : CommRing A✝
inst✝⁷ : Ring B✝
inst✝⁶ : CommRing S
inst✝⁵ : Algebra R A✝
inst✝⁴ : Algebra R B✝
f✝ : R →+* S
A : Type u_5
B : Type u_6
inst✝³ : Ring A
inst✝² : Ring B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f : A ≃ₐ[R] B
x : A
h : IsIntegral R (f x)
⊢ IsIntegral R x
state_after: no goals
Theorem: IsCyclotomicExtension.singleton_one
File: Mathlib/NumberTheory/Cyclotomic/Basic.lean

tactic: simpa [adjoin_singleton_one] using ((isCyclotomicExtension_iff _ _ _).1 h).2 x
state_before: n : ℕ+
S T : Set ℕ+
A : Type u
B : Type v
K : Type w
L : Type z
inst✝⁵ : CommRing A
inst✝⁴ : CommRing B
inst✝³ : Algebra A B
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Algebra K L
h : IsCyclotomicExtension {1} A B
x : B
⊢ x ∈ ⊥
state_after: no goals
Theorem: Polynomial.card_support_eraseLead'
File: Mathlib/Algebra/Polynomial/EraseLead.lean

tactic: rw [card_support_eraseLead, fc, add_tsub_cancel_right]
state_before: R : Type u_1
inst✝ : Semiring R
f : R[X]
c : ℕ
fc : f.support.card = c + 1
⊢ f.eraseLead.support.card = c
state_after: no goals
Theorem: BoxIntegral.HasIntegral.neg
File: Mathlib/Analysis/BoxIntegral/Basic.lean

tactic: simpa only [HasIntegral, ← integralSum_neg] using hf.neg
state_before: ι : Type u
E : Type v
F : Type w
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
I J : Box ι
π : TaggedPrepartition I
inst✝ : Fintype ι
l : IntegrationParams
f g : (ι → ℝ) → E
vol : ι →ᵇᵃ[⊤] E →L[ℝ] F
y y' : F
hf : HasIntegral I l f vol y
⊢ HasIntegral I l (-f) vol (-y)
state_after: no goals
Theorem: mul_inv_cancel_left₀
File: Mathlib/Algebra/GroupWithZero/Defs.lean

tactic: simp [h]
state_before: G₀ : Type u
M₀ : Type u_1
M₀' : Type u_2
G₀' : Type u_3
inst✝ : GroupWithZero G₀
a b✝ c g h✝ x : G₀
h : a ≠ 0
b : G₀
⊢ a * a⁻¹ * b = b
state_after: no goals