1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: LieDerivation.lie_ad
File: Mathlib/Algebra/Lie/Derivation/AdjointAction.lean

tactic: ext
state_before: R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x : L
D : LieDerivation R L L
⊢ ⁅(ad R L) x, D⁆ = ⁅x, D⁆
state_after: case H
R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x : L
D : LieDerivation R L L
a✝ : L
⊢ ⁅(ad R L) x, D⁆ a✝ = ⁅x, D⁆ a✝

tactic: simp
state_before: case H
R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x : L
D : LieDerivation R L L
a✝ : L
⊢ ⁅(ad R L) x, D⁆ a✝ = ⁅x, D⁆ a✝
state_after: no goals
Theorem: div_le_one_of_ge
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: simpa only [neg_div_neg_eq] using div_le_one_of_le (neg_le_neg h) (neg_nonneg_of_nonpos hb)
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
h : b ≤ a
hb : b ≤ 0
⊢ a / b ≤ 1
state_after: no goals
Theorem: EuclideanGeometry.orthogonalProjectionFn_mem_orthogonal
File: Mathlib/Geometry/Euclidean/Basic.lean

tactic: rw [← mem_coe, ← Set.singleton_subset_iff, ← inter_eq_singleton_orthogonalProjectionFn]
state_before: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty ↥s
inst✝ : HasOrthogonalProjection s.direction
p : P
⊢ orthogonalProjectionFn s p ∈ mk' p s.directionᗮ
state_after: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty ↥s
inst✝ : HasOrthogonalProjection s.direction
p : P
⊢ ↑s ∩ ↑(mk' p s.directionᗮ) ⊆ ↑(mk' p s.directionᗮ)

tactic: exact Set.inter_subset_right
state_before: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty ↥s
inst✝ : HasOrthogonalProjection s.direction
p : P
⊢ ↑s ∩ ↑(mk' p s.directionᗮ) ⊆ ↑(mk' p s.directionᗮ)
state_after: no goals
Theorem: CategoryTheory.Bicategory.unitors_equal
File: Mathlib/CategoryTheory/Bicategory/Basic.lean

tactic: rw [← whiskerLeft_iff, ← cancel_epi (α_ _ _ _).hom, ← cancel_mono (ρ_ _).hom, triangle, ←
    rightUnitor_comp, rightUnitor_naturality]
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
⊢ (λ_ (𝟙 a)).hom = (ρ_ (𝟙 a)).hom
state_after: no goals
Theorem: Set.prod_range_range_eq
File: Mathlib/Data/Set/Prod.lean

tactic: simp [range]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
m₁ : α → γ
m₂ : β → δ
⊢ ∀ (x : γ × δ), x ∈ range m₁ ×ˢ range m₂ ↔ x ∈ range fun p => (m₁ p.1, m₂ p.2)
state_after: no goals
Theorem: sub_smul
File: Mathlib/Algebra/Module/Defs.lean

tactic: simp [add_smul, sub_eq_add_neg]
state_before: α : Type u_1
R : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
r✝ s✝ : R
x y✝ : M
r s : R
y : M
⊢ (r - s) • y = r • y - s • y
state_after: no goals
Theorem: HomotopyCategory.homologyShiftIso_hom_app
File: Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean

tactic: apply Functor.ShiftSequence.induced_shiftIso_hom_app_obj
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
inst✝ : CategoryWithHomology C
n a a' : ℤ
ha' : n + a = a'
K : CochainComplex C ℤ
⊢ ((homologyFunctor C (up ℤ) 0).shiftIso n a a' ha').hom.app ((quotient C (up ℤ)).obj K) =
    (homologyFunctor C (up ℤ) a).map (((quotient C (up ℤ)).commShiftIso n).inv.app K) ≫
      (homologyFunctorFactors C (up ℤ) a).hom.app ((shiftFunctor (HomologicalComplex C (up ℤ)) n).obj K) ≫
        ((HomologicalComplex.homologyFunctor C (up ℤ) 0).shiftIso n a a' ha').hom.app K ≫
          (homologyFunctorFactors C (up ℤ) a').inv.app K
state_after: no goals
Theorem: Set.smul_zero_subset
File: Mathlib/Data/Set/Pointwise/SMul.lean

tactic: simp [subset_def, mem_smul]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝¹ : Zero β
inst✝ : SMulZeroClass α β
s✝ : Set α
t : Set β
a : α
s : Set α
⊢ s • 0 ⊆ 0
state_after: no goals
Theorem: div_div_self
File: Mathlib/Algebra/GroupWithZero/Basic.lean

tactic: rw [div_div_eq_mul_div]
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : GroupWithZero G₀
a✝ b c a : G₀
⊢ a / (a / a) = a
state_after: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : GroupWithZero G₀
a✝ b c a : G₀
⊢ a * a / a = a

tactic: exact mul_self_div_self a
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : GroupWithZero G₀
a✝ b c a : G₀
⊢ a * a / a = a
state_after: no goals
Theorem: inv_antitoneOn_Iio
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: convert sub_inv_antitoneOn_Iio
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
⊢ AntitoneOn (fun x => x⁻¹) (Set.Iio 0)
state_after: case h.e'_5.h.h.e'_3
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
x✝ : α
⊢ x✝ = x✝ - 0

tactic: exact (sub_zero _).symm
state_before: case h.e'_5.h.h.e'_3
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
x✝ : α
⊢ x✝ = x✝ - 0
state_after: no goals
Theorem: Ideal.spanNorm_mul_spanNorm_le
File: Mathlib/RingTheory/Ideal/Norm.lean

tactic: rw [spanNorm, spanNorm, spanNorm, Ideal.span_mul_span', ← Set.image_mul]
state_before: R : Type u_1
inst✝² : CommRing R
S : Type u_2
inst✝¹ : CommRing S
inst✝ : Algebra R S
I J : Ideal S
⊢ spanNorm R I * spanNorm R J ≤ spanNorm R (I * J)
state_after: R : Type u_1
inst✝² : CommRing R
S : Type u_2
inst✝¹ : CommRing S
inst✝ : Algebra R S
I J : Ideal S
⊢ span (⇑(Algebra.norm R) '' (↑I * ↑J)) ≤ span (⇑(Algebra.norm R) '' ↑(I * J))

tactic: refine Ideal.span_mono (Set.monotone_image ?_)
state_before: R : Type u_1
inst✝² : CommRing R
S : Type u_2
inst✝¹ : CommRing S
inst✝ : Algebra R S
I J : Ideal S
⊢ span (⇑(Algebra.norm R) '' (↑I * ↑J)) ≤ span (⇑(Algebra.norm R) '' ↑(I * J))
state_after: R : Type u_1
inst✝² : CommRing R
S : Type u_2
inst✝¹ : CommRing S
inst✝ : Algebra R S
I J : Ideal S
⊢ ↑I * ↑J ≤ ↑(I * J)

tactic: rintro _ ⟨x, hxI, y, hyJ, rfl⟩
state_before: R : Type u_1
inst✝² : CommRing R
S : Type u_2
inst✝¹ : CommRing S
inst✝ : Algebra R S
I J : Ideal S
⊢ ↑I * ↑J ≤ ↑(I * J)
state_after: case intro.intro.intro.intro
R : Type u_1
inst✝² : CommRing R
S : Type u_2
inst✝¹ : CommRing S
inst✝ : Algebra R S
I J : Ideal S
x : S
hxI : x ∈ ↑I
y : S
hyJ : y ∈ ↑J
⊢ (fun x x_1 => x * x_1) x y ∈ ↑(I * J)

tactic: exact Ideal.mul_mem_mul hxI hyJ
state_before: case intro.intro.intro.intro
R : Type u_1
inst✝² : CommRing R
S : Type u_2
inst✝¹ : CommRing S
inst✝ : Algebra R S
I J : Ideal S
x : S
hxI : x ∈ ↑I
y : S
hyJ : y ∈ ↑J
⊢ (fun x x_1 => x * x_1) x y ∈ ↑(I * J)
state_after: no goals
Theorem: Asymptotics.SuperpolynomialDecay.add
File: Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean

tactic: simpa only [mul_add, add_zero, Pi.add_apply] using (hf z).add (hg z)
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : CommSemiring β
inst✝ : ContinuousAdd β
hf : SuperpolynomialDecay l k f
hg : SuperpolynomialDecay l k g
z : ℕ
⊢ Tendsto (fun a => k a ^ z * (f + g) a) l (𝓝 0)
state_after: no goals
Theorem: MvPowerSeries.commute_monomial
File: Mathlib/RingTheory/MvPowerSeries/Basic.lean

tactic: refine ext_iff.trans ⟨fun h m => ?_, fun h m => ?_⟩
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n✝ : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
n : σ →₀ ℕ
⊢ Commute φ ((monomial R n) a) ↔ ∀ (m : σ →₀ ℕ), Commute ((coeff R m) φ) a
state_after: case refine_1
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m✝ n✝ : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
n : σ →₀ ℕ
h : ∀ (n_1 : σ →₀ ℕ), (coeff R n_1) (φ * (monomial R n) a) = (coeff R n_1) ((monomial R n) a * φ)
m : σ →₀ ℕ
⊢ Commute ((coeff R m) φ) a

case refine_2
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m✝ n✝ : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
n : σ →₀ ℕ
h : ∀ (m : σ →₀ ℕ), Commute ((coeff R m) φ) a
m : σ →₀ ℕ
⊢ (coeff R m) (φ * (monomial R n) a) = (coeff R m) ((monomial R n) a * φ)

tactic: have := h (m + n)
state_before: case refine_1
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m✝ n✝ : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
n : σ →₀ ℕ
h : ∀ (n_1 : σ →₀ ℕ), (coeff R n_1) (φ * (monomial R n) a) = (coeff R n_1) ((monomial R n) a * φ)
m : σ →₀ ℕ
⊢ Commute ((coeff R m) φ) a
state_after: case refine_1
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m✝ n✝ : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
n : σ →₀ ℕ
h : ∀ (n_1 : σ →₀ ℕ), (coeff R n_1) (φ * (monomial R n) a) = (coeff R n_1) ((monomial R n) a * φ)
m : σ →₀ ℕ
this : (coeff R (m + n)) (φ * (monomial R n) a) = (coeff R (m + n)) ((monomial R n) a * φ)
⊢ Commute ((coeff R m) φ) a

tactic: rwa [coeff_add_mul_monomial, add_comm, coeff_add_monomial_mul] at this
state_before: case refine_1
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m✝ n✝ : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
n : σ →₀ ℕ
h : ∀ (n_1 : σ →₀ ℕ), (coeff R n_1) (φ * (monomial R n) a) = (coeff R n_1) ((monomial R n) a * φ)
m : σ →₀ ℕ
this : (coeff R (m + n)) (φ * (monomial R n) a) = (coeff R (m + n)) ((monomial R n) a * φ)
⊢ Commute ((coeff R m) φ) a
state_after: no goals

tactic: rw [coeff_mul_monomial, coeff_monomial_mul]
state_before: case refine_2
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m✝ n✝ : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
n : σ →₀ ℕ
h : ∀ (m : σ →₀ ℕ), Commute ((coeff R m) φ) a
m : σ →₀ ℕ
⊢ (coeff R m) (φ * (monomial R n) a) = (coeff R m) ((monomial R n) a * φ)
state_after: case refine_2
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m✝ n✝ : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
n : σ →₀ ℕ
h : ∀ (m : σ →₀ ℕ), Commute ((coeff R m) φ) a
m : σ →₀ ℕ
⊢ (if n ≤ m then (coeff R (m - n)) φ * a else 0) = if n ≤ m then a * (coeff R (m - n)) φ else 0

tactic: split_ifs <;> [apply h; rfl]
state_before: case refine_2
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m✝ n✝ : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
n : σ →₀ ℕ
h : ∀ (m : σ →₀ ℕ), Commute ((coeff R m) φ) a
m : σ →₀ ℕ
⊢ (if n ≤ m then (coeff R (m - n)) φ * a else 0) = if n ≤ m then a * (coeff R (m - n)) φ else 0
state_after: no goals
Theorem: Matrix.IsDiag.kronecker
File: Mathlib/LinearAlgebra/Matrix/IsDiag.lean

tactic: rintro ⟨a, b⟩ ⟨c, d⟩ h
state_before: α : Type u_1
β : Type u_2
R : Type u_3
n : Type u_4
m : Type u_5
inst✝ : MulZeroClass α
A : Matrix m m α
B : Matrix n n α
hA : A.IsDiag
hB : B.IsDiag
⊢ (kroneckerMap (fun x x_1 => x * x_1) A B).IsDiag
state_after: case mk.mk
α : Type u_1
β : Type u_2
R : Type u_3
n : Type u_4
m : Type u_5
inst✝ : MulZeroClass α
A : Matrix m m α
B : Matrix n n α
hA : A.IsDiag
hB : B.IsDiag
a : m
b : n
c : m
d : n
h : (a, b) ≠ (c, d)
⊢ kroneckerMap (fun x x_1 => x * x_1) A B (a, b) (c, d) = 0

tactic: simp only [Prod.mk.inj_iff, Ne, not_and_or] at h
state_before: case mk.mk
α : Type u_1
β : Type u_2
R : Type u_3
n : Type u_4
m : Type u_5
inst✝ : MulZeroClass α
A : Matrix m m α
B : Matrix n n α
hA : A.IsDiag
hB : B.IsDiag
a : m
b : n
c : m
d : n
h : (a, b) ≠ (c, d)
⊢ kroneckerMap (fun x x_1 => x * x_1) A B (a, b) (c, d) = 0
state_after: case mk.mk
α : Type u_1
β : Type u_2
R : Type u_3
n : Type u_4
m : Type u_5
inst✝ : MulZeroClass α
A : Matrix m m α
B : Matrix n n α
hA : A.IsDiag
hB : B.IsDiag
a : m
b : n
c : m
d : n
h : ¬a = c ∨ ¬b = d
⊢ kroneckerMap (fun x x_1 => x * x_1) A B (a, b) (c, d) = 0

tactic: cases' h with hac hbd
state_before: case mk.mk
α : Type u_1
β : Type u_2
R : Type u_3
n : Type u_4
m : Type u_5
inst✝ : MulZeroClass α
A : Matrix m m α
B : Matrix n n α
hA : A.IsDiag
hB : B.IsDiag
a : m
b : n
c : m
d : n
h : ¬a = c ∨ ¬b = d
⊢ kroneckerMap (fun x x_1 => x * x_1) A B (a, b) (c, d) = 0
state_after: case mk.mk.inl
α : Type u_1
β : Type u_2
R : Type u_3
n : Type u_4
m : Type u_5
inst✝ : MulZeroClass α
A : Matrix m m α
B : Matrix n n α
hA : A.IsDiag
hB : B.IsDiag
a : m
b : n
c : m
d : n
hac : ¬a = c
⊢ kroneckerMap (fun x x_1 => x * x_1) A B (a, b) (c, d) = 0

case mk.mk.inr
α : Type u_1
β : Type u_2
R : Type u_3
n : Type u_4
m : Type u_5
inst✝ : MulZeroClass α
A : Matrix m m α
B : Matrix n n α
hA : A.IsDiag
hB : B.IsDiag
a : m
b : n
c : m
d : n
hbd : ¬b = d
⊢ kroneckerMap (fun x x_1 => x * x_1) A B (a, b) (c, d) = 0

tactic: simp [hA hac]
state_before: case mk.mk.inl
α : Type u_1
β : Type u_2
R : Type u_3
n : Type u_4
m : Type u_5
inst✝ : MulZeroClass α
A : Matrix m m α
B : Matrix n n α
hA : A.IsDiag
hB : B.IsDiag
a : m
b : n
c : m
d : n
hac : ¬a = c
⊢ kroneckerMap (fun x x_1 => x * x_1) A B (a, b) (c, d) = 0
state_after: no goals

tactic: simp [hB hbd]
state_before: case mk.mk.inr
α : Type u_1
β : Type u_2
R : Type u_3
n : Type u_4
m : Type u_5
inst✝ : MulZeroClass α
A : Matrix m m α
B : Matrix n n α
hA : A.IsDiag
hB : B.IsDiag
a : m
b : n
c : m
d : n
hbd : ¬b = d
⊢ kroneckerMap (fun x x_1 => x * x_1) A B (a, b) (c, d) = 0
state_after: no goals
Theorem: Nat.Prime.factorization_pow
File: Mathlib/Data/Nat/Factorization/Basic.lean

tactic: simp [hp]
state_before: a b m n p✝ p k : ℕ
hp : Prime p
⊢ (p ^ k).factorization = single p k
state_after: no goals
Theorem: isClosed_setOf_specializes
File: Mathlib/Topology/Separation.lean

tactic: simp only [← isOpen_compl_iff, compl_setOf, ← disjoint_nhds_nhds_iff_not_specializes,
  isOpen_setOf_disjoint_nhds_nhds]
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
⊢ IsClosed {p | p.1 ⤳ p.2}
state_after: no goals
Theorem: List.prod_inv_reverse
File: Mathlib/Algebra/BigOperators/Group/List.lean

tactic: simp
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝ : Group G
⊢ [].prod⁻¹ = (map (fun x => x⁻¹) []).reverse.prod
state_after: no goals

tactic: simp [prod_inv_reverse xs]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝ : Group G
x : G
xs : List G
⊢ (x :: xs).prod⁻¹ = (map (fun x => x⁻¹) (x :: xs)).reverse.prod
state_after: no goals
Theorem: PartialOrder.toPreorder_injective
File: Mathlib/Order/Basic.lean

tactic: cases A
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
A B : PartialOrder α
h : toPreorder = toPreorder
⊢ A = B
state_after: case mk
ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
B : PartialOrder α
toPreorder✝ : Preorder α
le_antisymm✝ : ∀ (a b : α), a ≤ b → b ≤ a → a = b
h : toPreorder = toPreorder
⊢ mk le_antisymm✝ = B

tactic: cases B
state_before: case mk
ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
B : PartialOrder α
toPreorder✝ : Preorder α
le_antisymm✝ : ∀ (a b : α), a ≤ b → b ≤ a → a = b
h : toPreorder = toPreorder
⊢ mk le_antisymm✝ = B
state_after: case mk.mk
ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
toPreorder✝¹ : Preorder α
le_antisymm✝¹ : ∀ (a b : α), a ≤ b → b ≤ a → a = b
toPreorder✝ : Preorder α
le_antisymm✝ : ∀ (a b : α), a ≤ b → b ≤ a → a = b
h : toPreorder = toPreorder
⊢ mk le_antisymm✝¹ = mk le_antisymm✝

tactic: cases h
state_before: case mk.mk
ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
toPreorder✝¹ : Preorder α
le_antisymm✝¹ : ∀ (a b : α), a ≤ b → b ≤ a → a = b
toPreorder✝ : Preorder α
le_antisymm✝ : ∀ (a b : α), a ≤ b → b ≤ a → a = b
h : toPreorder = toPreorder
⊢ mk le_antisymm✝¹ = mk le_antisymm✝
state_after: case mk.mk.refl
ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
toPreorder✝ : Preorder α
le_antisymm✝¹ le_antisymm✝ : ∀ (a b : α), a ≤ b → b ≤ a → a = b
⊢ mk le_antisymm✝¹ = mk le_antisymm✝

tactic: congr
state_before: case mk.mk.refl
ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
toPreorder✝ : Preorder α
le_antisymm✝¹ le_antisymm✝ : ∀ (a b : α), a ≤ b → b ≤ a → a = b
⊢ mk le_antisymm✝¹ = mk le_antisymm✝
state_after: no goals
Theorem: MeasureTheory.Measure.setIntegral_condKernel_univ_right
File: Mathlib/Probability/Kernel/Disintegration/Integral.lean

tactic: rw [← setIntegral_condKernel hs MeasurableSet.univ hf]
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁵ : MeasurableSpace Ω
inst✝⁴ : StandardBorelSpace Ω
inst✝³ : Nonempty Ω
ρ : Measure (β × Ω)
inst✝² : IsFiniteMeasure ρ
E : Type u_4
f : β × Ω → E
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s : Set β
hs : MeasurableSet s
hf : IntegrableOn f (s ×ˢ Set.univ) ρ
⊢ ∫ (b : β) in s, ∫ (ω : Ω), f (b, ω) ∂ρ.condKernel b ∂ρ.fst = ∫ (x : β × Ω) in s ×ˢ Set.univ, f x ∂ρ
state_after: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁵ : MeasurableSpace Ω
inst✝⁴ : StandardBorelSpace Ω
inst✝³ : Nonempty Ω
ρ : Measure (β × Ω)
inst✝² : IsFiniteMeasure ρ
E : Type u_4
f : β × Ω → E
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s : Set β
hs : MeasurableSet s
hf : IntegrableOn f (s ×ˢ Set.univ) ρ
⊢ ∫ (b : β) in s, ∫ (ω : Ω), f (b, ω) ∂ρ.condKernel b ∂ρ.fst =
    ∫ (b : β) in s, ∫ (ω : Ω) in Set.univ, f (b, ω) ∂ρ.condKernel b ∂ρ.fst

tactic: simp_rw [Measure.restrict_univ]
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁵ : MeasurableSpace Ω
inst✝⁴ : StandardBorelSpace Ω
inst✝³ : Nonempty Ω
ρ : Measure (β × Ω)
inst✝² : IsFiniteMeasure ρ
E : Type u_4
f : β × Ω → E
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s : Set β
hs : MeasurableSet s
hf : IntegrableOn f (s ×ˢ Set.univ) ρ
⊢ ∫ (b : β) in s, ∫ (ω : Ω), f (b, ω) ∂ρ.condKernel b ∂ρ.fst =
    ∫ (b : β) in s, ∫ (ω : Ω) in Set.univ, f (b, ω) ∂ρ.condKernel b ∂ρ.fst
state_after: no goals
Theorem: PartialHomeomorph.map_nhdsWithin_preimage_eq
File: Mathlib/Topology/PartialHomeomorph.lean

tactic: rw [e.map_nhdsWithin_eq hx, e.image_source_inter_eq', e.target_inter_inv_preimage_preimage,
  e.nhdsWithin_target_inter (e.map_source hx)]
state_before: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
x : X
hx : x ∈ e.source
s : Set Y
⊢ map (↑e) (𝓝[↑e ⁻¹' s] x) = 𝓝[s] ↑e x
state_after: no goals
Theorem: padicNormE.norm_p_zpow
File: Mathlib/NumberTheory/Padics/PadicNumbers.lean

tactic: rw [norm_zpow, norm_p, zpow_neg, inv_zpow]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n : ℤ
⊢ ‖↑p ^ n‖ = ↑p ^ (-n)
state_after: no goals
Theorem: BoxIntegral.Prepartition.coe_eq_of_mem_split_of_lt_mem
File: Mathlib/Analysis/BoxIntegral/Partition/Split.lean

tactic: refine (mem_split_iff'.1 h₁).resolve_left fun H => ?_
state_before: ι : Type u_1
M : Type u_2
n : ℕ
I J : Box ι
i : ι
x : ℝ
y : ι → ℝ
h₁ : J ∈ split I i x
h₂ : y ∈ J
h₃ : x < y i
⊢ ↑J = ↑I ∩ {y | x < y i}
state_after: ι : Type u_1
M : Type u_2
n : ℕ
I J : Box ι
i : ι
x : ℝ
y : ι → ℝ
h₁ : J ∈ split I i x
h₂ : y ∈ J
h₃ : x < y i
H : ↑J = ↑I ∩ {y | y i ≤ x}
⊢ False

tactic: rw [← Box.mem_coe, H] at h₂
state_before: ι : Type u_1
M : Type u_2
n : ℕ
I J : Box ι
i : ι
x : ℝ
y : ι → ℝ
h₁ : J ∈ split I i x
h₂ : y ∈ J
h₃ : x < y i
H : ↑J = ↑I ∩ {y | y i ≤ x}
⊢ False
state_after: ι : Type u_1
M : Type u_2
n : ℕ
I J : Box ι
i : ι
x : ℝ
y : ι → ℝ
h₁ : J ∈ split I i x
h₂ : y ∈ ↑I ∩ {y | y i ≤ x}
h₃ : x < y i
H : ↑J = ↑I ∩ {y | y i ≤ x}
⊢ False

tactic: exact h₃.not_le h₂.2
state_before: ι : Type u_1
M : Type u_2
n : ℕ
I J : Box ι
i : ι
x : ℝ
y : ι → ℝ
h₁ : J ∈ split I i x
h₂ : y ∈ ↑I ∩ {y | y i ≤ x}
h₃ : x < y i
H : ↑J = ↑I ∩ {y | y i ≤ x}
⊢ False
state_after: no goals
Theorem: one_sub_gold
File: Mathlib/Data/Real/GoldenRatio.lean

tactic: linarith [gold_add_goldConj]
state_before: ⊢ 1 - ψ = φ
state_after: no goals
Theorem: CategoryTheory.Adjunction.homEquiv_id
File: Mathlib/CategoryTheory/Adjunction/Basic.lean

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F : C ⥤ D
G : D ⥤ C
adj : F ⊣ G
X' X✝ : C
Y Y' : D
X : C
⊢ (adj.homEquiv X (F.obj X)) (𝟙 (F.obj X)) = adj.unit.app X
state_after: no goals
Theorem: self_eq_neg
File: Mathlib/Algebra/Module/Defs.lean

tactic: rw [← two_nsmul_eq_zero R M, two_smul, add_eq_zero_iff_eq_neg]
state_before: α : Type u_1
R : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝⁴ : Semiring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : CharZero R
v : M
⊢ v = -v ↔ v = 0
state_after: no goals
Theorem: StarConvex.linear_image
File: Mathlib/Analysis/Convex/Star.lean

tactic: rintro _ ⟨y, hy, rfl⟩ a b ha hb hab
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y z : E
s : Set E
hs : StarConvex 𝕜 x s
f : E →ₗ[𝕜] F
⊢ StarConvex 𝕜 (f x) (⇑f '' s)
state_after: case intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y✝ z : E
s : Set E
hs : StarConvex 𝕜 x s
f : E →ₗ[𝕜] F
y : E
hy : y ∈ s
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • f x + b • f y ∈ ⇑f '' s

tactic: exact ⟨a • x + b • y, hs hy ha hb hab, by rw [f.map_add, f.map_smul, f.map_smul]⟩
state_before: case intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y✝ z : E
s : Set E
hs : StarConvex 𝕜 x s
f : E →ₗ[𝕜] F
y : E
hy : y ∈ s
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • f x + b • f y ∈ ⇑f '' s
state_after: no goals

tactic: rw [f.map_add, f.map_smul, f.map_smul]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y✝ z : E
s : Set E
hs : StarConvex 𝕜 x s
f : E →ₗ[𝕜] F
y : E
hy : y ∈ s
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ f (a • x + b • y) = a • f x + b • f y
state_after: no goals
Theorem: CategoryTheory.Limits.hasStrictTerminalObjects_of_terminal_is_strict
File: Mathlib/CategoryTheory/Limits/Shapes/StrictInitial.lean

tactic: rw [assoc, IsIso.inv_hom_id]
state_before: C : Type u
inst✝ : Category.{v, u} C
I : C
h : ∀ (A : C) (f : I ⟶ A), IsIso f
I' A : C
f : I' ⟶ A
hI' : IsTerminal I'
this : IsIso (hI'.from I ≫ f)
⊢ (inv (hI'.from I ≫ f) ≫ hI'.from I) ≫ f = 𝟙 A
state_after: no goals
Theorem: CompositionSeries.Equivalent.length_eq
File: Mathlib/Order/JordanHolder.lean

tactic: simpa using Fintype.card_congr h.choose
state_before: X : Type u
inst✝¹ : Lattice X
inst✝ : JordanHolderLattice X
s₁ s₂ : CompositionSeries X
h : s₁.Equivalent s₂
⊢ s₁.length = s₂.length
state_after: no goals
Theorem: Asymptotics.isBigO_one_iff
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp only [isBigO_iff, norm_one, mul_one, IsBoundedUnder, IsBounded, eventually_map]
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✝¹ : One F
inst✝ : NormOneClass F
⊢ (f =O[l] fun _x => 1) ↔ IsBoundedUnder (fun x x_1 => x ≤ x_1) l fun x => ‖f x‖
state_after: no goals