1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Filter.mem_iff_inf_principal_compl
File: Mathlib/Order/Filter/Bases.lean

tactic: refine not_iff_not.1 ((inf_principal_neBot_iff.trans ?_).symm.trans neBot_iff)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
l l' : Filter α
p : ι → Prop
s✝ : ι → Set α
t : Set α
i : ι
p' : ι' → Prop
s' : ι' → Set α
i' : ι'
f : Filter α
s : Set α
⊢ s ∈ f ↔ f ⊓ 𝓟 sᶜ = ⊥
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
l l' : Filter α
p : ι → Prop
s✝ : ι → Set α
t : Set α
i : ι
p' : ι' → Prop
s' : ι' → Set α
i' : ι'
f : Filter α
s : Set α
⊢ (∀ U ∈ f, (U ∩ sᶜ).Nonempty) ↔ s ∉ f

tactic: exact
  ⟨fun h hs => by simpa [Set.not_nonempty_empty] using h s hs, fun hs t ht =>
    inter_compl_nonempty_iff.2 fun hts => hs <| mem_of_superset ht hts⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
l l' : Filter α
p : ι → Prop
s✝ : ι → Set α
t : Set α
i : ι
p' : ι' → Prop
s' : ι' → Set α
i' : ι'
f : Filter α
s : Set α
⊢ (∀ U ∈ f, (U ∩ sᶜ).Nonempty) ↔ s ∉ f
state_after: no goals

tactic: simpa [Set.not_nonempty_empty] using h s hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
l l' : Filter α
p : ι → Prop
s✝ : ι → Set α
t : Set α
i : ι
p' : ι' → Prop
s' : ι' → Set α
i' : ι'
f : Filter α
s : Set α
h : ∀ U ∈ f, (U ∩ sᶜ).Nonempty
hs : s ∈ f
⊢ False
state_after: no goals
Theorem: CategoryTheory.LocalizerMorphism.homMap_id
File: Mathlib/CategoryTheory/Localization/HomEquiv.lean

tactic: simpa using Φ.homMap_map L₁ L₂ (𝟙 X)
state_before: C : Type u_1
C₁ : Type u_2
C₂ : Type u_3
C₃ : Type u_4
D₁ : Type u_5
D₂ : Type u_6
D₃ : Type u_7
inst✝⁹ : Category.{?u.7914, u_1} C
inst✝⁸ : Category.{u_10, u_2} C₁
inst✝⁷ : Category.{u_9, u_3} C₂
inst✝⁶ : Category.{?u.7926, u_4} C₃
inst✝⁵ : Category.{u_11, u_5} D₁
inst✝⁴ : Category.{u_8, u_6} D₂
inst✝³ : Category.{?u.7938, u_7} D₃
W₁ : MorphismProperty C₁
W₂ : MorphismProperty C₂
W₃ : MorphismProperty C₃
Φ : LocalizerMorphism W₁ W₂
Ψ : LocalizerMorphism W₂ W₃
L₁ : C₁ ⥤ D₁
inst✝² : L₁.IsLocalization W₁
L₂ : C₂ ⥤ D₂
inst✝¹ : L₂.IsLocalization W₂
L₃ : C₃ ⥤ D₃
inst✝ : L₃.IsLocalization W₃
X Y Z : C₁
⊢ Φ.homMap L₁ L₂ (𝟙 (L₁.obj X)) = 𝟙 (L₂.obj (Φ.functor.obj X))
state_after: no goals
Theorem: sq_abs
File: Mathlib/Algebra/Order/Ring/Abs.lean

tactic: simpa only [sq] using abs_mul_abs_self a
state_before: α : Type u_1
inst✝ : LinearOrderedRing α
n : ℕ
a✝ b c a : α
⊢ |a| ^ 2 = a ^ 2
state_after: no goals
Theorem: TrivSqZeroExt.nnnorm_def
File: Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean

tactic: ext
state_before: 𝕜 : Type u_1
S : Type u_2
R : Type u_3
M : Type u_4
inst✝¹³ : SeminormedCommRing S
inst✝¹² : SeminormedRing R
inst✝¹¹ : SeminormedAddCommGroup M
inst✝¹⁰ : Algebra S R
inst✝⁹ : Module S M
inst✝⁸ : Module R M
inst✝⁷ : Module Rᵐᵒᵖ M
inst✝⁶ : BoundedSMul S R
inst✝⁵ : BoundedSMul S M
inst✝⁴ : BoundedSMul R M
inst✝³ : BoundedSMul Rᵐᵒᵖ M
inst✝² : SMulCommClass R Rᵐᵒᵖ M
inst✝¹ : IsScalarTower S R M
inst✝ : IsScalarTower S Rᵐᵒᵖ M
x : tsze R M
⊢ ‖x‖₊ = ‖x.fst‖₊ + ‖x.snd‖₊
state_after: case a
𝕜 : Type u_1
S : Type u_2
R : Type u_3
M : Type u_4
inst✝¹³ : SeminormedCommRing S
inst✝¹² : SeminormedRing R
inst✝¹¹ : SeminormedAddCommGroup M
inst✝¹⁰ : Algebra S R
inst✝⁹ : Module S M
inst✝⁸ : Module R M
inst✝⁷ : Module Rᵐᵒᵖ M
inst✝⁶ : BoundedSMul S R
inst✝⁵ : BoundedSMul S M
inst✝⁴ : BoundedSMul R M
inst✝³ : BoundedSMul Rᵐᵒᵖ M
inst✝² : SMulCommClass R Rᵐᵒᵖ M
inst✝¹ : IsScalarTower S R M
inst✝ : IsScalarTower S Rᵐᵒᵖ M
x : tsze R M
⊢ ↑‖x‖₊ = ↑(‖x.fst‖₊ + ‖x.snd‖₊)

tactic: simp [norm_def]
state_before: case a
𝕜 : Type u_1
S : Type u_2
R : Type u_3
M : Type u_4
inst✝¹³ : SeminormedCommRing S
inst✝¹² : SeminormedRing R
inst✝¹¹ : SeminormedAddCommGroup M
inst✝¹⁰ : Algebra S R
inst✝⁹ : Module S M
inst✝⁸ : Module R M
inst✝⁷ : Module Rᵐᵒᵖ M
inst✝⁶ : BoundedSMul S R
inst✝⁵ : BoundedSMul S M
inst✝⁴ : BoundedSMul R M
inst✝³ : BoundedSMul Rᵐᵒᵖ M
inst✝² : SMulCommClass R Rᵐᵒᵖ M
inst✝¹ : IsScalarTower S R M
inst✝ : IsScalarTower S Rᵐᵒᵖ M
x : tsze R M
⊢ ↑‖x‖₊ = ↑(‖x.fst‖₊ + ‖x.snd‖₊)
state_after: no goals
Theorem: intervalIntegral.integral_finset_sum
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simp only [intervalIntegral_eq_integral_uIoc, integral_finset_sum s fun i hi => (h i hi).def',
  Finset.smul_sum]
state_before: ι✝ : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b : ℝ
f✝ g : ℝ → E
μ : Measure ℝ
ι : Type u_6
s : Finset ι
f : ι → ℝ → E
h : ∀ i ∈ s, IntervalIntegrable (f i) μ a b
⊢ ∫ (x : ℝ) in a..b, ∑ i ∈ s, f i x ∂μ = ∑ i ∈ s, ∫ (x : ℝ) in a..b, f i x ∂μ
state_after: no goals
Theorem: AdjoinRoot.Minpoly.toAdjoin_apply'
File: Mathlib/RingTheory/AdjoinRoot.lean

tactic: simp [← Subalgebra.coe_eq_zero, aeval_subalgebra_coe]
state_before: R : Type u
S : Type v
K : Type w
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
x : S
a : AdjoinRoot (minpoly R x)
⊢ (aeval ⟨x, ⋯⟩) (minpoly R x) = 0
state_after: no goals
Theorem: List.pairwise_map
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: induction l
state_before: α : Type u_1
α✝ : Type u_2
f : α → α✝
R : α✝ → α✝ → Prop
l : List α
⊢ Pairwise R (map f l) ↔ Pairwise (fun a b => R (f a) (f b)) l
state_after: case nil
α : Type u_1
α✝ : Type u_2
f : α → α✝
R : α✝ → α✝ → Prop
⊢ Pairwise R (map f []) ↔ Pairwise (fun a b => R (f a) (f b)) []

case cons
α : Type u_1
α✝ : Type u_2
f : α → α✝
R : α✝ → α✝ → Prop
head✝ : α
tail✝ : List α
tail_ih✝ : Pairwise R (map f tail✝) ↔ Pairwise (fun a b => R (f a) (f b)) tail✝
⊢ Pairwise R (map f (head✝ :: tail✝)) ↔ Pairwise (fun a b => R (f a) (f b)) (head✝ :: tail✝)

tactic: simp
state_before: case nil
α : Type u_1
α✝ : Type u_2
f : α → α✝
R : α✝ → α✝ → Prop
⊢ Pairwise R (map f []) ↔ Pairwise (fun a b => R (f a) (f b)) []
state_after: no goals

tactic: simp only [map, pairwise_cons, forall_mem_map_iff, *]
state_before: case cons
α : Type u_1
α✝ : Type u_2
f : α → α✝
R : α✝ → α✝ → Prop
head✝ : α
tail✝ : List α
tail_ih✝ : Pairwise R (map f tail✝) ↔ Pairwise (fun a b => R (f a) (f b)) tail✝
⊢ Pairwise R (map f (head✝ :: tail✝)) ↔ Pairwise (fun a b => R (f a) (f b)) (head✝ :: tail✝)
state_after: no goals
Theorem: Function.Antiperiodic.periodic
File: Mathlib/Algebra/Periodic.lean

tactic: simp [two_nsmul, ← add_assoc, h _]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f g : α → β
c c₁ c₂ x : α
inst✝¹ : AddMonoid α
inst✝ : InvolutiveNeg β
h : Antiperiodic f c
⊢ Periodic f (2 • c)
state_after: no goals
Theorem: Option.orElse_none'
File: Mathlib/Data/Option/Basic.lean

tactic: cases x <;> rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
x : Option α
⊢ (x.orElse fun x => none) = x
state_after: no goals
Theorem: Finset.insert_inter_distrib
File: Mathlib/Data/Finset/Basic.lean

tactic: simp_rw [insert_eq, union_inter_distrib_left]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s✝ t✝ u v : Finset α
a✝ b : α
s t : Finset α
a : α
⊢ insert a (s ∩ t) = insert a s ∩ insert a t
state_after: no goals
Theorem: Cardinal.mk_biUnion_le
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [biUnion_eq_iUnion]
state_before: α✝ β : Type u
c : Cardinal.{?u.203746}
ι α : Type u
A : ι → Set α
s : Set ι
⊢ #↑(⋃ x ∈ s, A x) ≤ #↑s * ⨆ x, #↑(A ↑x)
state_after: α✝ β : Type u
c : Cardinal.{?u.203746}
ι α : Type u
A : ι → Set α
s : Set ι
⊢ #↑(⋃ x, A ↑x) ≤ #↑s * ⨆ x, #↑(A ↑x)

tactic: apply mk_iUnion_le
state_before: α✝ β : Type u
c : Cardinal.{?u.203746}
ι α : Type u
A : ι → Set α
s : Set ι
⊢ #↑(⋃ x, A ↑x) ≤ #↑s * ⨆ x, #↑(A ↑x)
state_after: no goals
Theorem: Vector.ne_cons_iff
File: Mathlib/Data/Vector/Basic.lean

tactic: rw [Ne, eq_cons_iff a v v', not_and_or]
state_before: n : ℕ
α : Type u_1
a : α
v : Vector α n.succ
v' : Vector α n
⊢ v ≠ a ::ᵥ v' ↔ v.head ≠ a ∨ v.tail ≠ v'
state_after: no goals
Theorem: mem_openSegment_translate
File: Mathlib/Analysis/Convex/Segment.lean

tactic: simp_rw [← vadd_eq_add, ← vadd_openSegment, vadd_mem_vadd_set_iff]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁵ : OrderedRing 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : AddCommGroup F
inst✝² : AddCommGroup G
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
a x b c : E
⊢ a + x ∈ openSegment 𝕜 (a + b) (a + c) ↔ x ∈ openSegment 𝕜 b c
state_after: no goals
Theorem: CategoryTheory.ShortComplex.RightHomologyData.rightHomologyIso_hom_comp_ι
File: Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean

tactic: simp only [← cancel_mono h.opcyclesIso.inv, ← cancel_epi h.rightHomologyIso.inv,
  assoc, Iso.inv_hom_id_assoc, Iso.hom_inv_id, comp_id, rightHomologyIso_inv_comp_rightHomologyι]
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
h : S.RightHomologyData
inst✝ : S.HasRightHomology
⊢ h.rightHomologyIso.hom ≫ h.ι = S.rightHomologyι ≫ h.opcyclesIso.hom
state_after: no goals
Theorem: isOpen_iff_ultrafilter'
File: Mathlib/Topology/Separation.lean

tactic: rw [isOpen_iff_ultrafilter]
state_before: X : Type u_1
Y : Type u_2
inst✝³ : TopologicalSpace X
inst✝² : FirstCountableTopology X
inst✝¹ : T2Space X
f : Filter X
inst✝ : CompactSpace X
U : Set X
⊢ IsOpen U ↔ ∀ (F : Ultrafilter X), F.lim ∈ U → U ∈ ↑F
state_after: X : Type u_1
Y : Type u_2
inst✝³ : TopologicalSpace X
inst✝² : FirstCountableTopology X
inst✝¹ : T2Space X
f : Filter X
inst✝ : CompactSpace X
U : Set X
⊢ (∀ x ∈ U, ∀ (l : Ultrafilter X), ↑l ≤ 𝓝 x → U ∈ l) ↔ ∀ (F : Ultrafilter X), F.lim ∈ U → U ∈ ↑F

tactic: refine ⟨fun h F hF => h F.lim hF F F.le_nhds_lim, ?_⟩
state_before: X : Type u_1
Y : Type u_2
inst✝³ : TopologicalSpace X
inst✝² : FirstCountableTopology X
inst✝¹ : T2Space X
f : Filter X
inst✝ : CompactSpace X
U : Set X
⊢ (∀ x ∈ U, ∀ (l : Ultrafilter X), ↑l ≤ 𝓝 x → U ∈ l) ↔ ∀ (F : Ultrafilter X), F.lim ∈ U → U ∈ ↑F
state_after: X : Type u_1
Y : Type u_2
inst✝³ : TopologicalSpace X
inst✝² : FirstCountableTopology X
inst✝¹ : T2Space X
f : Filter X
inst✝ : CompactSpace X
U : Set X
⊢ (∀ (F : Ultrafilter X), F.lim ∈ U → U ∈ ↑F) → ∀ x ∈ U, ∀ (l : Ultrafilter X), ↑l ≤ 𝓝 x → U ∈ l

tactic: intro cond x hx f h
state_before: X : Type u_1
Y : Type u_2
inst✝³ : TopologicalSpace X
inst✝² : FirstCountableTopology X
inst✝¹ : T2Space X
f : Filter X
inst✝ : CompactSpace X
U : Set X
⊢ (∀ (F : Ultrafilter X), F.lim ∈ U → U ∈ ↑F) → ∀ x ∈ U, ∀ (l : Ultrafilter X), ↑l ≤ 𝓝 x → U ∈ l
state_after: X : Type u_1
Y : Type u_2
inst✝³ : TopologicalSpace X
inst✝² : FirstCountableTopology X
inst✝¹ : T2Space X
f✝ : Filter X
inst✝ : CompactSpace X
U : Set X
cond : ∀ (F : Ultrafilter X), F.lim ∈ U → U ∈ ↑F
x : X
hx : x ∈ U
f : Ultrafilter X
h : ↑f ≤ 𝓝 x
⊢ U ∈ f

tactic: rw [← Ultrafilter.lim_eq_iff_le_nhds.2 h] at hx
state_before: X : Type u_1
Y : Type u_2
inst✝³ : TopologicalSpace X
inst✝² : FirstCountableTopology X
inst✝¹ : T2Space X
f✝ : Filter X
inst✝ : CompactSpace X
U : Set X
cond : ∀ (F : Ultrafilter X), F.lim ∈ U → U ∈ ↑F
x : X
hx : x ∈ U
f : Ultrafilter X
h : ↑f ≤ 𝓝 x
⊢ U ∈ f
state_after: X : Type u_1
Y : Type u_2
inst✝³ : TopologicalSpace X
inst✝² : FirstCountableTopology X
inst✝¹ : T2Space X
f✝ : Filter X
inst✝ : CompactSpace X
U : Set X
cond : ∀ (F : Ultrafilter X), F.lim ∈ U → U ∈ ↑F
x : X
f : Ultrafilter X
hx : f.lim ∈ U
h : ↑f ≤ 𝓝 x
⊢ U ∈ f

tactic: exact cond _ hx
state_before: X : Type u_1
Y : Type u_2
inst✝³ : TopologicalSpace X
inst✝² : FirstCountableTopology X
inst✝¹ : T2Space X
f✝ : Filter X
inst✝ : CompactSpace X
U : Set X
cond : ∀ (F : Ultrafilter X), F.lim ∈ U → U ∈ ↑F
x : X
f : Ultrafilter X
hx : f.lim ∈ U
h : ↑f ≤ 𝓝 x
⊢ U ∈ f
state_after: no goals
Theorem: MvPolynomial.homogeneousSubmodule_eq_finsupp_supported
File: Mathlib/RingTheory/MvPolynomial/Homogeneous.lean

tactic: simp_rw [← weightedDegree_one]
state_before: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝¹ inst✝ : CommSemiring R
n : ℕ
⊢ homogeneousSubmodule σ R n = Finsupp.supported R R {d | degree d = n}
state_after: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝¹ inst✝ : CommSemiring R
n : ℕ
⊢ homogeneousSubmodule σ R n = Finsupp.supported R R {d | (weightedDegree 1) d = n}

tactic: exact weightedHomogeneousSubmodule_eq_finsupp_supported R 1 n
state_before: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝¹ inst✝ : CommSemiring R
n : ℕ
⊢ homogeneousSubmodule σ R n = Finsupp.supported R R {d | (weightedDegree 1) d = n}
state_after: no goals
Theorem: Ordinal.zero_nadd
File: Mathlib/SetTheory/Ordinal/NaturalOps.lean

tactic: rw [nadd_comm, nadd_zero]
state_before: a b c : Ordinal.{u}
⊢ 0 ♯ a = a
state_after: no goals
Theorem: Real.tendsto_logb_atTop_of_base_lt_one
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

tactic: rw [tendsto_atTop_atBot]
state_before: b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
⊢ Tendsto (logb b) atTop atBot
state_after: b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
⊢ ∀ (b_1 : ℝ), ∃ i, ∀ (a : ℝ), i ≤ a → logb b a ≤ b_1

tactic: intro e
state_before: b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
⊢ ∀ (b_1 : ℝ), ∃ i, ∀ (a : ℝ), i ≤ a → logb b a ≤ b_1
state_after: b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
e : ℝ
⊢ ∃ i, ∀ (a : ℝ), i ≤ a → logb b a ≤ e

tactic: use 1 ⊔ b ^ e
state_before: b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
e : ℝ
⊢ ∃ i, ∀ (a : ℝ), i ≤ a → logb b a ≤ e
state_after: case h
b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
e : ℝ
⊢ ∀ (a : ℝ), 1 ⊔ b ^ e ≤ a → logb b a ≤ e

tactic: intro a
state_before: case h
b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
e : ℝ
⊢ ∀ (a : ℝ), 1 ⊔ b ^ e ≤ a → logb b a ≤ e
state_after: case h
b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
e a : ℝ
⊢ 1 ⊔ b ^ e ≤ a → logb b a ≤ e

tactic: simp only [and_imp, sup_le_iff]
state_before: case h
b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
e a : ℝ
⊢ 1 ⊔ b ^ e ≤ a → logb b a ≤ e
state_after: case h
b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
e a : ℝ
⊢ 1 ≤ a → b ^ e ≤ a → logb b a ≤ e

tactic: intro ha
state_before: case h
b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
e a : ℝ
⊢ 1 ≤ a → b ^ e ≤ a → logb b a ≤ e
state_after: case h
b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
e a : ℝ
ha : 1 ≤ a
⊢ b ^ e ≤ a → logb b a ≤ e

tactic: rw [logb_le_iff_le_rpow_of_base_lt_one b_pos b_lt_one]
state_before: case h
b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
e a : ℝ
ha : 1 ≤ a
⊢ b ^ e ≤ a → logb b a ≤ e
state_after: case h
b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
e a : ℝ
ha : 1 ≤ a
⊢ b ^ e ≤ a → b ^ e ≤ a

case h
b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
e a : ℝ
ha : 1 ≤ a
⊢ 0 < a

tactic: tauto
state_before: case h
b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
e a : ℝ
ha : 1 ≤ a
⊢ b ^ e ≤ a → b ^ e ≤ a
state_after: no goals

tactic: exact lt_of_lt_of_le zero_lt_one ha
state_before: case h
b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
e a : ℝ
ha : 1 ≤ a
⊢ 0 < a
state_after: no goals
Theorem: Commute.right_comm
File: Mathlib/Algebra/Group/Commute/Defs.lean

tactic: simp only [mul_assoc, h.eq]
state_before: G : Type u_1
M : Type u_2
S : Type u_3
inst✝ : Semigroup S
a✝ b c : S
h : Commute b c
a : S
⊢ a * b * c = a * c * b
state_after: no goals
Theorem: MeasureTheory.levyProkhorovEDist_comm
File: Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean

tactic: simp only [levyProkhorovEDist, and_comm]
state_before: ι : Type u_1
Ω : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : PseudoEMetricSpace Ω
μ ν : Measure Ω
⊢ levyProkhorovEDist μ ν = levyProkhorovEDist ν μ
state_after: no goals
Theorem: AkraBazziRecurrence.one_mem_range_sumCoeffsExp
File: Mathlib/Computability/AkraBazzi/AkraBazzi.lean

tactic: refine mem_range_of_exists_le_of_exists_ge R.continuous_sumCoeffsExp ?le_one ?ge_one
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ 1 ∈ Set.range fun p => ∑ i : α, a i * b i ^ p
state_after: case le_one
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∃ a_1, ∑ i : α, a i * b i ^ a_1 ≤ 1

case ge_one
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∃ b_1, 1 ≤ ∑ i : α, a i * b i ^ b_1

tactic: case le_one =>
  exact Eventually.exists <| eventually_le_of_tendsto_lt zero_lt_one R.tendsto_zero_sumCoeffsExp
state_before: case le_one
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∃ a_1, ∑ i : α, a i * b i ^ a_1 ≤ 1

case ge_one
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∃ b_1, 1 ≤ ∑ i : α, a i * b i ^ b_1
state_after: case ge_one
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∃ b_1, 1 ≤ ∑ i : α, a i * b i ^ b_1

tactic: case ge_one =>
  exact Eventually.exists <| R.tendsto_atTop_sumCoeffsExp.eventually_ge_atTop _
state_before: case ge_one
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∃ b_1, 1 ≤ ∑ i : α, a i * b i ^ b_1
state_after: no goals

tactic: exact Eventually.exists <| eventually_le_of_tendsto_lt zero_lt_one R.tendsto_zero_sumCoeffsExp
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∃ a_1, ∑ i : α, a i * b i ^ a_1 ≤ 1
state_after: no goals

tactic: exact Eventually.exists <| R.tendsto_atTop_sumCoeffsExp.eventually_ge_atTop _
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∃ b_1, 1 ≤ ∑ i : α, a i * b i ^ b_1
state_after: no goals
Theorem: integral_sin_sq
File: Mathlib/Analysis/SpecialFunctions/Integrals.lean

tactic: field_simp [integral_sin_pow, add_sub_assoc]
state_before: a b : ℝ
n : ℕ
⊢ ∫ (x : ℝ) in a..b, sin x ^ 2 = (sin a * cos a - sin b * cos b + b - a) / 2
state_after: no goals
Theorem: FirstOrder.Language.Substructure.fg_iff_structure_fg
File: Mathlib/ModelTheory/FinitelyGenerated.lean

tactic: rw [Structure.fg_def]
state_before: L : Language
M : Type u_1
inst✝ : L.Structure M
S : L.Substructure M
⊢ S.FG ↔ Structure.FG L ↥S
state_after: L : Language
M : Type u_1
inst✝ : L.Structure M
S : L.Substructure M
⊢ S.FG ↔ ⊤.FG

tactic: refine ⟨fun h => FG.of_map_embedding S.subtype ?_, fun h => ?_⟩
state_before: L : Language
M : Type u_1
inst✝ : L.Structure M
S : L.Substructure M
⊢ S.FG ↔ ⊤.FG
state_after: case refine_1
L : Language
M : Type u_1
inst✝ : L.Structure M
S : L.Substructure M
h : S.FG
⊢ (map S.subtype.toHom ⊤).FG

case refine_2
L : Language
M : Type u_1
inst✝ : L.Structure M
S : L.Substructure M
h : ⊤.FG
⊢ S.FG

tactic: rw [← Hom.range_eq_map, range_subtype]
state_before: case refine_1
L : Language
M : Type u_1
inst✝ : L.Structure M
S : L.Substructure M
h : S.FG
⊢ (map S.subtype.toHom ⊤).FG
state_after: case refine_1
L : Language
M : Type u_1
inst✝ : L.Structure M
S : L.Substructure M
h : S.FG
⊢ S.FG

tactic: exact h
state_before: case refine_1
L : Language
M : Type u_1
inst✝ : L.Structure M
S : L.Substructure M
h : S.FG
⊢ S.FG
state_after: no goals

tactic: have h := h.map S.subtype.toHom
state_before: case refine_2
L : Language
M : Type u_1
inst✝ : L.Structure M
S : L.Substructure M
h : ⊤.FG
⊢ S.FG
state_after: case refine_2
L : Language
M : Type u_1
inst✝ : L.Structure M
S : L.Substructure M
h✝ : ⊤.FG
h : (map S.subtype.toHom ⊤).FG
⊢ S.FG

tactic: rw [← Hom.range_eq_map, range_subtype] at h
state_before: case refine_2
L : Language
M : Type u_1
inst✝ : L.Structure M
S : L.Substructure M
h✝ : ⊤.FG
h : (map S.subtype.toHom ⊤).FG
⊢ S.FG
state_after: case refine_2
L : Language
M : Type u_1
inst✝ : L.Structure M
S : L.Substructure M
h✝ : ⊤.FG
h : S.FG
⊢ S.FG

tactic: exact h
state_before: case refine_2
L : Language
M : Type u_1
inst✝ : L.Structure M
S : L.Substructure M
h✝ : ⊤.FG
h : S.FG
⊢ S.FG
state_after: no goals
Theorem: Filter.Tendsto.atTop_mul_const_of_neg'
File: Mathlib/Order/Filter/Archimedean.lean

tactic: simpa only [tendsto_neg_atTop_iff, mul_neg] using hf.atTop_mul_const' (neg_pos.mpr hr)
state_before: α : Type u_1
R : Type u_2
l : Filter α
f : α → R
r : R
inst✝¹ : LinearOrderedRing R
inst✝ : Archimedean R
hr : r < 0
hf : Tendsto f l atTop
⊢ Tendsto (fun x => f x * r) l atBot
state_after: no goals
Theorem: Submodule.card_eq_card_quotient_mul_card
File: Mathlib/LinearAlgebra/Quotient.lean

tactic: rw [mul_comm, ← Fintype.card_prod]
state_before: R : Type u_1
M : Type u_2
r : R
x y : M
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
p p' : Submodule R M
inst✝¹ : Fintype M
S : Submodule R M
inst✝ : DecidablePred fun x => x ∈ S
⊢ Fintype.card M = Fintype.card ↥S * Fintype.card (M ⧸ S)
state_after: R : Type u_1
M : Type u_2
r : R
x y : M
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
p p' : Submodule R M
inst✝¹ : Fintype M
S : Submodule R M
inst✝ : DecidablePred fun x => x ∈ S
⊢ Fintype.card M = Fintype.card ((M ⧸ S) × ↥S)

tactic: exact Fintype.card_congr AddSubgroup.addGroupEquivQuotientProdAddSubgroup
state_before: R : Type u_1
M : Type u_2
r : R
x y : M
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
p p' : Submodule R M
inst✝¹ : Fintype M
S : Submodule R M
inst✝ : DecidablePred fun x => x ∈ S
⊢ Fintype.card M = Fintype.card ((M ⧸ S) × ↥S)
state_after: no goals
Theorem: le_tsub_add_add
File: Mathlib/Algebra/Order/Sub/Defs.lean

tactic: rw [add_comm a, add_comm (a - c)]
state_before: α : Type u_1
β : Type u_2
inst✝⁴ : Preorder α
inst✝³ : AddCommSemigroup α
inst✝² : Sub α
inst✝¹ : OrderedSub α
a b c d : α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
⊢ a + b ≤ a - c + (b + c)
state_after: α : Type u_1
β : Type u_2
inst✝⁴ : Preorder α
inst✝³ : AddCommSemigroup α
inst✝² : Sub α
inst✝¹ : OrderedSub α
a b c d : α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
⊢ b + a ≤ b + c + (a - c)

tactic: exact add_le_add_add_tsub
state_before: α : Type u_1
β : Type u_2
inst✝⁴ : Preorder α
inst✝³ : AddCommSemigroup α
inst✝² : Sub α
inst✝¹ : OrderedSub α
a b c d : α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
⊢ b + a ≤ b + c + (a - c)
state_after: no goals
Theorem: ContinuousLinearEquiv.dimH_preimage
File: Mathlib/Topology/MetricSpace/HausdorffDimension.lean

tactic: rw [← e.image_symm_eq_preimage, e.symm.dimH_image]
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝⁶ : EMetricSpace X
inst✝⁵ : EMetricSpace Y
C K r : ℝ≥0
f : X → Y
s✝ t : Set X
𝕜 : Type u_4
E : Type u_5
F : Type u_6
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
e : E ≃L[𝕜] F
s : Set F
⊢ dimH (⇑e ⁻¹' s) = dimH s
state_after: no goals