1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: UpperSet.compl_iSup
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simp only [coe_compl, coe_iSup, compl_iInter, LowerSet.coe_iSup]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝ : LE α
s t : UpperSet α
a : α
f : ι → UpperSet α
⊢ ↑(⨆ i, f i).compl = ↑(⨆ i, (f i).compl)
state_after: no goals
Theorem: Monoid.mem_closure_union_iff
File: Mathlib/Deprecated/Submonoid.lean

tactic: rw [mul_assoc, List.prod_cons, ← hyzx]
state_before: M✝ : Type u_1
inst✝² : Monoid M✝
s✝ : Set M✝
A : Type u_2
inst✝¹ : AddMonoid A
t✝ : Set A
M : Type u_3
inst✝ : CommMonoid M
s t : Set M
x : M
hx : x ∈ Closure (s ∪ t)
L : List M
HL1✝ : ∀ x ∈ L, x ∈ s ∪ t
HL2 : L.prod = x
hd : M
tl : List M
ih : (∀ x ∈ tl, x ∈ s ∪ t) → ∃ y ∈ Closure s, ∃ z ∈ Closure t, y * z = tl.prod
HL1 : ∀ x ∈ hd :: tl, x ∈ s ∪ t
y : M
hy : y ∈ Closure s
z : M
hz : z ∈ Closure t
hyzx : y * z = tl.prod
hs : hd ∈ s
⊢ hd * y * z = (hd :: tl).prod
state_after: no goals

tactic: rw [← mul_assoc, List.prod_cons, ← hyzx, mul_comm hd]
state_before: M✝ : Type u_1
inst✝² : Monoid M✝
s✝ : Set M✝
A : Type u_2
inst✝¹ : AddMonoid A
t✝ : Set A
M : Type u_3
inst✝ : CommMonoid M
s t : Set M
x : M
hx : x ∈ Closure (s ∪ t)
L : List M
HL1✝ : ∀ x ∈ L, x ∈ s ∪ t
HL2 : L.prod = x
hd : M
tl : List M
ih : (∀ x ∈ tl, x ∈ s ∪ t) → ∃ y ∈ Closure s, ∃ z ∈ Closure t, y * z = tl.prod
HL1 : ∀ x ∈ hd :: tl, x ∈ s ∪ t
y : M
hy : y ∈ Closure s
z : M
hz : z ∈ Closure t
hyzx : y * z = tl.prod
ht : hd ∈ t
⊢ y * (z * hd) = (hd :: tl).prod
state_after: no goals
Theorem: orderOf_eq_prime
File: Mathlib/GroupTheory/OrderOfElement.lean

tactic: rwa [IsFixedPt, mul_one]
state_before: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : Monoid G
a b x y : G
n m p : ℕ
hp : Fact (Nat.Prime p)
hg : x ^ p = 1
hg1 : x ≠ 1
⊢ ¬IsFixedPt (fun x_1 => x * x_1) 1
state_after: no goals
Theorem: Polynomial.exists_root_of_splits'
File: Mathlib/Algebra/Polynomial/Splits.lean

tactic: simp [eval₂_eq_eval_map, hf0']
state_before: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝² : CommRing K
inst✝¹ : Field L
inst✝ : Field F
i : K →+* L
f : K[X]
hs : Splits i f
hf0 : (map i f).degree ≠ 0
this : DecidableEq L := Classical.decEq L
hf0' : map i f = 0
⊢ ∃ x, eval₂ i x f = 0
state_after: no goals

tactic: rw [← eval_map, hi, eval_mul, show _ = _ from hx, zero_mul]
state_before: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝² : CommRing K
inst✝¹ : Field L
inst✝ : Field F
i✝ : K →+* L
f : K[X]
hs : Splits i✝ f
hf0 : (map i✝ f).degree ≠ 0
this : DecidableEq L := Classical.decEq L
hf0' : ¬map i✝ f = 0
g : L[X]
hg : Irreducible g ∧ g ∣ map i✝ f
x : L
hx : g.IsRoot x
i : L[X]
hi : map i✝ f = g * i
⊢ eval₂ i✝ x f = 0
state_after: no goals
Theorem: MvPowerSeries.coeff_index_single_X
File: Mathlib/RingTheory/MvPowerSeries/Basic.lean

tactic: simp only [coeff_X, single_left_inj (one_ne_zero : (1 : ℕ) ≠ 0)]
state_before: σ : Type u_1
R : Type u_2
inst✝¹ : Semiring R
inst✝ : DecidableEq σ
s t : σ
⊢ (coeff R (single t 1)) (X s) = if t = s then 1 else 0
state_after: no goals
Theorem: MeasureTheory.Memℒp.integrable_sq
File: Mathlib/MeasureTheory/Function/L2Space.lean

tactic: simpa [← memℒp_one_iff_integrable] using h.norm_rpow two_ne_zero ENNReal.two_ne_top
state_before: α : Type u_1
F : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup F
f : α → ℝ
h : Memℒp f 2 μ
⊢ Integrable (fun x => f x ^ 2) μ
state_after: no goals
Theorem: Rat.mul_inv_cancel
File: Mathlib/Data/Rat/Defs.lean

tactic: simp [hd] at hn
state_before: q a b c : ℚ
n : ℤ
d : ℕ
hd : d ≠ 0
hn : n /. ↑d ≠ 0
⊢ n /. ↑d * (n /. ↑d)⁻¹ = 1
state_after: q a b c : ℚ
n : ℤ
d : ℕ
hd : d ≠ 0
hn : ¬n = 0
⊢ n /. ↑d * (n /. ↑d)⁻¹ = 1

tactic: simp [-divInt_ofNat, mkRat_eq_divInt, Int.mul_comm, Int.mul_ne_zero hn (Int.ofNat_ne_zero.2 hd)]
state_before: q a b c : ℚ
n : ℤ
d : ℕ
hd : d ≠ 0
hn : ¬n = 0
⊢ n /. ↑d * (n /. ↑d)⁻¹ = 1
state_after: no goals
Theorem: Nat.nine_dvd_iff
File: Mathlib/Data/Nat/Digits.lean

tactic: norm_num
state_before: n✝ n : ℕ
⊢ 10 % 9 = 1
state_after: no goals
Theorem: IsLowerSet.disjoint_upperClosure_left
File: Mathlib/Order/UpperLower/Basic.lean

tactic: refine ⟨Disjoint.mono_left subset_upperClosure, ?_⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : Preorder α
inst✝ : Preorder β
s t : Set α
x : α
ht : IsLowerSet t
⊢ Disjoint (↑(upperClosure s)) t ↔ Disjoint s t
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : Preorder α
inst✝ : Preorder β
s t : Set α
x : α
ht : IsLowerSet t
⊢ Disjoint s t → Disjoint (↑(upperClosure s)) t

tactic: simp only [disjoint_left, SetLike.mem_coe, mem_upperClosure, forall_exists_index, and_imp]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : Preorder α
inst✝ : Preorder β
s t : Set α
x : α
ht : IsLowerSet t
⊢ Disjoint s t → Disjoint (↑(upperClosure s)) t
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : Preorder α
inst✝ : Preorder β
s t : Set α
x : α
ht : IsLowerSet t
⊢ (∀ ⦃a : α⦄, a ∈ s → a ∉ t) → ∀ ⦃a : α⦄, ∀ x ∈ s, x ≤ a → a ∉ t

tactic: exact fun h a b hb hba ha ↦ h hb <| ht hba ha
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : Preorder α
inst✝ : Preorder β
s t : Set α
x : α
ht : IsLowerSet t
⊢ (∀ ⦃a : α⦄, a ∈ s → a ∉ t) → ∀ ⦃a : α⦄, ∀ x ∈ s, x ≤ a → a ∉ t
state_after: no goals
Theorem: ContinuousMap.not_mem_idealOfSet
File: Mathlib/Topology/ContinuousFunction/Ideals.lean

tactic: simp_rw [mem_idealOfSet]
state_before: X : Type u_1
R : Type u_2
inst✝³ : TopologicalSpace X
inst✝² : Semiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set X
f : C(X, R)
⊢ f ∉ idealOfSet R s ↔ ∃ x ∈ sᶜ, f x ≠ 0
state_after: X : Type u_1
R : Type u_2
inst✝³ : TopologicalSpace X
inst✝² : Semiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set X
f : C(X, R)
⊢ (¬∀ ⦃x : X⦄, x ∈ sᶜ → f x = 0) ↔ ∃ x ∈ sᶜ, f x ≠ 0

tactic: push_neg
state_before: X : Type u_1
R : Type u_2
inst✝³ : TopologicalSpace X
inst✝² : Semiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set X
f : C(X, R)
⊢ (¬∀ ⦃x : X⦄, x ∈ sᶜ → f x = 0) ↔ ∃ x ∈ sᶜ, f x ≠ 0
state_after: X : Type u_1
R : Type u_2
inst✝³ : TopologicalSpace X
inst✝² : Semiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set X
f : C(X, R)
⊢ (∃ x ∈ sᶜ, f x ≠ 0) ↔ ∃ x ∈ sᶜ, f x ≠ 0

tactic: rfl
state_before: X : Type u_1
R : Type u_2
inst✝³ : TopologicalSpace X
inst✝² : Semiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set X
f : C(X, R)
⊢ (∃ x ∈ sᶜ, f x ≠ 0) ↔ ∃ x ∈ sᶜ, f x ≠ 0
state_after: no goals
Theorem: Ordinal.IsFundamentalSequence.succ
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: refine ⟨?_, @fun i j hi hj h => ?_, blsub_const Ordinal.one_ne_zero o⟩
state_before: α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
⊢ (succ o).IsFundamentalSequence 1 fun x x => o
state_after: case refine_1
α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
⊢ 1 ≤ (succ o).cof.ord

case refine_2
α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
i j : Ordinal.{u}
hi : i < 1
hj : j < 1
h : i < j
⊢ (fun x x => o) i hi < (fun x x => o) j hj

tactic: rw [cof_succ, ord_one]
state_before: case refine_1
α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
⊢ 1 ≤ (succ o).cof.ord
state_after: no goals

tactic: rw [lt_one_iff_zero] at hi hj
state_before: case refine_2
α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
i j : Ordinal.{u}
hi : i < 1
hj : j < 1
h : i < j
⊢ (fun x x => o) i hi < (fun x x => o) j hj
state_after: case refine_2
α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
i j : Ordinal.{u}
hi✝ : i < 1
hi : i = 0
hj✝ : j < 1
hj : j = 0
h : i < j
⊢ (fun x x => o) i hi✝ < (fun x x => o) j hj✝

tactic: rw [hi, hj] at h
state_before: case refine_2
α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
i j : Ordinal.{u}
hi✝ : i < 1
hi : i = 0
hj✝ : j < 1
hj : j = 0
h : i < j
⊢ (fun x x => o) i hi✝ < (fun x x => o) j hj✝
state_after: case refine_2
α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
i j : Ordinal.{u}
hi✝ : i < 1
hi : i = 0
hj✝ : j < 1
hj : j = 0
h : 0 < 0
⊢ (fun x x => o) i hi✝ < (fun x x => o) j hj✝

tactic: exact h.false.elim
state_before: case refine_2
α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
i j : Ordinal.{u}
hi✝ : i < 1
hi : i = 0
hj✝ : j < 1
hj : j = 0
h : 0 < 0
⊢ (fun x x => o) i hi✝ < (fun x x => o) j hj✝
state_after: no goals
Theorem: HomologicalComplex.homologyMap_sub
File: Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean

tactic: dsimp [homologyMap]
state_before: C : Type u_1
ι : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Preadditive C
c : ComplexShape ι
K L : HomologicalComplex C c
f g φ ψ : K ⟶ L
i : ι
inst✝¹ : K.HasHomology i
inst✝ : L.HasHomology i
⊢ homologyMap (φ - ψ) i = homologyMap φ i - homologyMap ψ i
state_after: C : Type u_1
ι : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Preadditive C
c : ComplexShape ι
K L : HomologicalComplex C c
f g φ ψ : K ⟶ L
i : ι
inst✝¹ : K.HasHomology i
inst✝ : L.HasHomology i
⊢ ShortComplex.homologyMap ((shortComplexFunctor C c i).map (φ - ψ)) =
    ShortComplex.homologyMap ((shortComplexFunctor C c i).map φ) -
      ShortComplex.homologyMap ((shortComplexFunctor C c i).map ψ)

tactic: rw [← ShortComplex.homologyMap_sub]
state_before: C : Type u_1
ι : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Preadditive C
c : ComplexShape ι
K L : HomologicalComplex C c
f g φ ψ : K ⟶ L
i : ι
inst✝¹ : K.HasHomology i
inst✝ : L.HasHomology i
⊢ ShortComplex.homologyMap ((shortComplexFunctor C c i).map (φ - ψ)) =
    ShortComplex.homologyMap ((shortComplexFunctor C c i).map φ) -
      ShortComplex.homologyMap ((shortComplexFunctor C c i).map ψ)
state_after: C : Type u_1
ι : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Preadditive C
c : ComplexShape ι
K L : HomologicalComplex C c
f g φ ψ : K ⟶ L
i : ι
inst✝¹ : K.HasHomology i
inst✝ : L.HasHomology i
⊢ ShortComplex.homologyMap ((shortComplexFunctor C c i).map (φ - ψ)) =
    ShortComplex.homologyMap ((shortComplexFunctor C c i).map φ - (shortComplexFunctor C c i).map ψ)

tactic: rfl
state_before: C : Type u_1
ι : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Preadditive C
c : ComplexShape ι
K L : HomologicalComplex C c
f g φ ψ : K ⟶ L
i : ι
inst✝¹ : K.HasHomology i
inst✝ : L.HasHomology i
⊢ ShortComplex.homologyMap ((shortComplexFunctor C c i).map (φ - ψ)) =
    ShortComplex.homologyMap ((shortComplexFunctor C c i).map φ - (shortComplexFunctor C c i).map ψ)
state_after: no goals
Theorem: OrderTop.upperBounds_univ
File: Mathlib/Order/Bounds/Basic.lean

tactic: rw [isGreatest_univ.upperBounds_eq, Ici_top]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝³ : Preorder α
inst✝² : Preorder β
s t : Set α
a b : α
inst✝¹ : PartialOrder γ
inst✝ : OrderTop γ
⊢ upperBounds univ = {⊤}
state_after: no goals
Theorem: Subgroup.MemLeftTransversals.toEquiv_apply
File: Mathlib/GroupTheory/Complement.lean

tactic: refine (Subtype.ext_iff.mp ?_).trans (Subtype.coe_mk (f q) ⟨q, rfl⟩)
state_before: G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
f : G ⧸ H → G
hf : ∀ (q : G ⧸ H), ↑(f q) = q
q : G ⧸ H
⊢ ↑((toEquiv ⋯) q) = f q
state_after: G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
f : G ⧸ H → G
hf : ∀ (q : G ⧸ H), ↑(f q) = q
q : G ⧸ H
⊢ (toEquiv ⋯) q = ⟨f q, ⋯⟩

tactic: exact (toEquiv (range_mem_leftTransversals hf)).apply_eq_iff_eq_symm_apply.mpr (hf q).symm
state_before: G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
f : G ⧸ H → G
hf : ∀ (q : G ⧸ H), ↑(f q) = q
q : G ⧸ H
⊢ (toEquiv ⋯) q = ⟨f q, ⋯⟩
state_after: no goals
Theorem: Set.kernImage_preimage_union
File: Mathlib/Data/Set/Lattice.lean

tactic: rw [union_comm, kernImage_union_preimage, union_comm]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
f : α → β
s : Set α
t : Set β
⊢ kernImage f (f ⁻¹' t ∪ s) = t ∪ kernImage f s
state_after: no goals
Theorem: List.length_join
File: Mathlib/Algebra/BigOperators/Group/List.lean

tactic: induction L <;> [rfl; simp only [*, join, map, sum_cons, length_append]]
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
L : List (List α)
⊢ L.join.length = (map length L).sum
state_after: no goals
Theorem: MulActionHom.inverse_eq_inverse'
File: Mathlib/GroupTheory/GroupAction/Hom.lean

tactic: rfl
state_before: M' : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
φ : M → N
ψ : N → P
χ : M → P
X : Type u_5
inst✝⁵ : SMul M X
inst✝⁴ : SMul M' X
Y : Type u_6
inst✝³ : SMul N Y
inst✝² : SMul M' Y
Z : Type u_7
inst✝¹ : SMul P Z
φ' : N → M
Y₁ : Type u_8
inst✝ : SMul M Y₁
f : X →ₑ[id] Y₁
g : Y₁ → X
h₁ : Function.LeftInverse g ⇑f
h₂ : Function.RightInverse g ⇑f
⊢ f.inverse g h₁ h₂ = f.inverse' g ⋯ h₁ h₂
state_after: no goals
Theorem: MvPolynomial.map_injective
File: Mathlib/Algebra/MvPolynomial/Basic.lean

tactic: intro p q h
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p q : MvPolynomial σ R
f : R →+* S₁
hf : Injective ⇑f
⊢ Injective ⇑(map f)
state_after: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
f : R →+* S₁
hf : Injective ⇑f
p q : MvPolynomial σ R
h : (map f) p = (map f) q
⊢ p = q

tactic: simp only [ext_iff, coeff_map] at h ⊢
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
f : R →+* S₁
hf : Injective ⇑f
p q : MvPolynomial σ R
h : (map f) p = (map f) q
⊢ p = q
state_after: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
f : R →+* S₁
hf : Injective ⇑f
p q : MvPolynomial σ R
h : ∀ (m : σ →₀ ℕ), f (coeff m p) = f (coeff m q)
⊢ ∀ (m : σ →₀ ℕ), coeff m p = coeff m q

tactic: intro m
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
f : R →+* S₁
hf : Injective ⇑f
p q : MvPolynomial σ R
h : ∀ (m : σ →₀ ℕ), f (coeff m p) = f (coeff m q)
⊢ ∀ (m : σ →₀ ℕ), coeff m p = coeff m q
state_after: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m✝ : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
f : R →+* S₁
hf : Injective ⇑f
p q : MvPolynomial σ R
h : ∀ (m : σ →₀ ℕ), f (coeff m p) = f (coeff m q)
m : σ →₀ ℕ
⊢ coeff m p = coeff m q

tactic: exact hf (h m)
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m✝ : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
f : R →+* S₁
hf : Injective ⇑f
p q : MvPolynomial σ R
h : ∀ (m : σ →₀ ℕ), f (coeff m p) = f (coeff m q)
m : σ →₀ ℕ
⊢ coeff m p = coeff m q
state_after: no goals
Theorem: Polynomial.degree_mul_leadingCoeff_inv
File: Mathlib/Algebra/Polynomial/Degree/Lemmas.lean

tactic: have h₁ : (leadingCoeff q)⁻¹ ≠ 0 := inv_ne_zero (mt leadingCoeff_eq_zero.1 h)
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
K : Type u_1
inst✝ : DivisionRing K
p q : K[X]
h : q ≠ 0
⊢ (p * C q.leadingCoeff⁻¹).degree = p.degree
state_after: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
K : Type u_1
inst✝ : DivisionRing K
p q : K[X]
h : q ≠ 0
h₁ : q.leadingCoeff⁻¹ ≠ 0
⊢ (p * C q.leadingCoeff⁻¹).degree = p.degree

tactic: rw [degree_mul_C h₁]
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
K : Type u_1
inst✝ : DivisionRing K
p q : K[X]
h : q ≠ 0
h₁ : q.leadingCoeff⁻¹ ≠ 0
⊢ (p * C q.leadingCoeff⁻¹).degree = p.degree
state_after: no goals
Theorem: ContinuousWithinAt.finset_inf
File: Mathlib/Topology/Order/Lattice.lean

tactic: simpa only [← Finset.inf_apply] using finset_inf_apply hs
state_before: L : Type u_1
X : Type u_2
inst✝⁴ : TopologicalSpace L
inst✝³ : TopologicalSpace X
ι : Type u_3
inst✝² : SemilatticeInf L
inst✝¹ : OrderTop L
inst✝ : ContinuousInf L
s : Finset ι
f : ι → X → L
t : Set X
x : X
hs : ∀ i ∈ s, ContinuousWithinAt (f i) t x
⊢ ContinuousWithinAt (s.inf f) t x
state_after: no goals
Theorem: Nat.mem_factors_mul_right
File: Mathlib/Data/Nat/Factors.lean

tactic: rw [mul_comm]
state_before: p a b : ℕ
hpb : p ∈ b.factors
ha : a ≠ 0
⊢ p ∈ (a * b).factors
state_after: p a b : ℕ
hpb : p ∈ b.factors
ha : a ≠ 0
⊢ p ∈ (b * a).factors

tactic: exact mem_factors_mul_left hpb ha
state_before: p a b : ℕ
hpb : p ∈ b.factors
ha : a ≠ 0
⊢ p ∈ (b * a).factors
state_after: no goals
Theorem: PMF.toMeasure_mono
File: Mathlib/Probability/ProbabilityMassFunction/Basic.lean

tactic: simpa only [p.toMeasure_apply_eq_toOuterMeasure_apply, hs, ht] using toOuterMeasure_mono p h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : MeasurableSpace α
p : PMF α
s✝ t✝ s t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
h : s ∩ p.support ⊆ t
⊢ p.toMeasure s ≤ p.toMeasure t
state_after: no goals
Theorem: Filter.map_top
File: Mathlib/Order/Filter/Basic.lean

tactic: rw [← principal_univ, map_principal, image_univ]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
l f✝ f₁ f₂ : Filter α
g g₁ g₂ : Filter β
m : α → β
m' : β → γ
s : Set α
t : Set β
f : α → β
⊢ map f ⊤ = 𝓟 (range f)
state_after: no goals
Theorem: MeasureTheory.Integrable.fintype_prod_dep
File: Mathlib/MeasureTheory/Integral/Pi.lean

tactic: let e := (equivFin ι).symm
state_before: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
ι : Type u_2
inst✝² : Fintype ι
E : ι → Type u_3
f : (i : ι) → E i → 𝕜
inst✝¹ : (i : ι) → MeasureSpace (E i)
inst✝ : ∀ (i : ι), SigmaFinite volume
hf : ∀ (i : ι), Integrable (f i) volume
⊢ Integrable (fun x => ∏ i : ι, f i (x i)) volume
state_after: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
ι : Type u_2
inst✝² : Fintype ι
E : ι → Type u_3
f : (i : ι) → E i → 𝕜
inst✝¹ : (i : ι) → MeasureSpace (E i)
inst✝ : ∀ (i : ι), SigmaFinite volume
hf : ∀ (i : ι), Integrable (f i) volume
e : Fin (card ι) ≃ ι := (equivFin ι).symm
⊢ Integrable (fun x => ∏ i : ι, f i (x i)) volume

tactic: simp_rw [← (volume_measurePreserving_piCongrLeft _ e).integrable_comp_emb
  (MeasurableEquiv.measurableEmbedding _),
  ← e.prod_comp, MeasurableEquiv.coe_piCongrLeft, Function.comp_def,
  Equiv.piCongrLeft_apply_apply]
state_before: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
ι : Type u_2
inst✝² : Fintype ι
E : ι → Type u_3
f : (i : ι) → E i → 𝕜
inst✝¹ : (i : ι) → MeasureSpace (E i)
inst✝ : ∀ (i : ι), SigmaFinite volume
hf : ∀ (i : ι), Integrable (f i) volume
e : Fin (card ι) ≃ ι := (equivFin ι).symm
⊢ Integrable (fun x => ∏ i : ι, f i (x i)) volume
state_after: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
ι : Type u_2
inst✝² : Fintype ι
E : ι → Type u_3
f : (i : ι) → E i → 𝕜
inst✝¹ : (i : ι) → MeasureSpace (E i)
inst✝ : ∀ (i : ι), SigmaFinite volume
hf : ∀ (i : ι), Integrable (f i) volume
e : Fin (card ι) ≃ ι := (equivFin ι).symm
⊢ Integrable (fun x => ∏ x_1 : Fin (card ι), f (e x_1) (x x_1)) volume

tactic: exact .fin_nat_prod (fun i ↦ hf _)
state_before: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
ι : Type u_2
inst✝² : Fintype ι
E : ι → Type u_3
f : (i : ι) → E i → 𝕜
inst✝¹ : (i : ι) → MeasureSpace (E i)
inst✝ : ∀ (i : ι), SigmaFinite volume
hf : ∀ (i : ι), Integrable (f i) volume
e : Fin (card ι) ≃ ι := (equivFin ι).symm
⊢ Integrable (fun x => ∏ x_1 : Fin (card ι), f (e x_1) (x x_1)) volume
state_after: no goals
Theorem: Nat.Coprime.cast
File: Mathlib/RingTheory/Coprime/Lemmas.lean

tactic: rw [← isCoprime_iff_coprime] at h
state_before: R✝ : Type u
I : Type v
inst✝¹ : CommSemiring R✝
x y z : R✝
s : I → R✝
t : Finset I
R : Type u_1
inst✝ : CommRing R
a b : ℕ
h : a.Coprime b
⊢ IsCoprime ↑a ↑b
state_after: R✝ : Type u
I : Type v
inst✝¹ : CommSemiring R✝
x y z : R✝
s : I → R✝
t : Finset I
R : Type u_1
inst✝ : CommRing R
a b : ℕ
h : IsCoprime ↑a ↑b
⊢ IsCoprime ↑a ↑b

tactic: rw [← Int.cast_natCast a, ← Int.cast_natCast b]
state_before: R✝ : Type u
I : Type v
inst✝¹ : CommSemiring R✝
x y z : R✝
s : I → R✝
t : Finset I
R : Type u_1
inst✝ : CommRing R
a b : ℕ
h : IsCoprime ↑a ↑b
⊢ IsCoprime ↑a ↑b
state_after: R✝ : Type u
I : Type v
inst✝¹ : CommSemiring R✝
x y z : R✝
s : I → R✝
t : Finset I
R : Type u_1
inst✝ : CommRing R
a b : ℕ
h : IsCoprime ↑a ↑b
⊢ IsCoprime ↑↑a ↑↑b

tactic: exact IsCoprime.intCast h
state_before: R✝ : Type u
I : Type v
inst✝¹ : CommSemiring R✝
x y z : R✝
s : I → R✝
t : Finset I
R : Type u_1
inst✝ : CommRing R
a b : ℕ
h : IsCoprime ↑a ↑b
⊢ IsCoprime ↑↑a ↑↑b
state_after: no goals
Theorem: Asymptotics.SuperpolynomialDecay.polynomial_mul
File: Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean

tactic: simpa [add_mul] using hp.add hq
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝³ : TopologicalSpace β
inst✝² : CommSemiring β
inst✝¹ : ContinuousAdd β
inst✝ : ContinuousMul β
hf : SuperpolynomialDecay l k f
p✝ p q : β[X]
hp : SuperpolynomialDecay l k fun x => eval (k x) p * f x
hq : SuperpolynomialDecay l k fun x => eval (k x) q * f x
⊢ SuperpolynomialDecay l k fun x => eval (k x) (p + q) * f x
state_after: no goals

tactic: simpa [mul_assoc] using (hf.param_pow_mul n).const_mul c
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝³ : TopologicalSpace β
inst✝² : CommSemiring β
inst✝¹ : ContinuousAdd β
inst✝ : ContinuousMul β
hf : SuperpolynomialDecay l k f
p : β[X]
n : ℕ
c : β
⊢ SuperpolynomialDecay l k fun x => eval (k x) ((monomial n) c) * f x
state_after: no goals
Theorem: CategoryTheory.CommSq.horiz_comp
File: Mathlib/CategoryTheory/CommSq.lean

tactic: rw [← Category.assoc, Category.assoc, ← hsq₁.w, hsq₂.w, Category.assoc]
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
W✝ X✝ Y✝ Z✝ : C
f✝ : W✝ ⟶ X✝
g✝ : W✝ ⟶ Y✝
h✝ : X✝ ⟶ Z✝
i✝ : Y✝ ⟶ Z✝
W X X' Y Z Z' : C
f : W ⟶ X
f' : X ⟶ X'
g : W ⟶ Y
h : X ⟶ Z
h' : X' ⟶ Z'
i : Y ⟶ Z
i' : Z ⟶ Z'
hsq₁ : CommSq f g h i
hsq₂ : CommSq f' h h' i'
⊢ (f ≫ f') ≫ h' = g ≫ i ≫ i'
state_after: no goals