1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: IsSubmonoid.pow_mem
File: Mathlib/Deprecated/Submonoid.lean

tactic: rw [pow_zero]
state_before: M : Type u_1
inst✝¹ : Monoid M
s : Set M
A : Type u_2
inst✝ : AddMonoid A
t : Set A
a : M
hs : IsSubmonoid s
h : a ∈ s
⊢ a ^ 0 ∈ s
state_after: M : Type u_1
inst✝¹ : Monoid M
s : Set M
A : Type u_2
inst✝ : AddMonoid A
t : Set A
a : M
hs : IsSubmonoid s
h : a ∈ s
⊢ 1 ∈ s

tactic: exact hs.one_mem
state_before: M : Type u_1
inst✝¹ : Monoid M
s : Set M
A : Type u_2
inst✝ : AddMonoid A
t : Set A
a : M
hs : IsSubmonoid s
h : a ∈ s
⊢ 1 ∈ s
state_after: no goals

tactic: rw [pow_succ]
state_before: M : Type u_1
inst✝¹ : Monoid M
s : Set M
A : Type u_2
inst✝ : AddMonoid A
t : Set A
a : M
hs : IsSubmonoid s
h : a ∈ s
n : ℕ
⊢ a ^ (n + 1) ∈ s
state_after: M : Type u_1
inst✝¹ : Monoid M
s : Set M
A : Type u_2
inst✝ : AddMonoid A
t : Set A
a : M
hs : IsSubmonoid s
h : a ∈ s
n : ℕ
⊢ a ^ n * a ∈ s

tactic: exact hs.mul_mem (IsSubmonoid.pow_mem hs h) h
state_before: M : Type u_1
inst✝¹ : Monoid M
s : Set M
A : Type u_2
inst✝ : AddMonoid A
t : Set A
a : M
hs : IsSubmonoid s
h : a ∈ s
n : ℕ
⊢ a ^ n * a ∈ s
state_after: no goals
Theorem: LSeries.mul_delta
File: Mathlib/NumberTheory/LSeries/Basic.lean

tactic: rw [mul_delta_eq_smul_delta, h, one_smul]
state_before: f : ℕ → ℂ
h : f 1 = 1
⊢ f * δ = δ
state_after: no goals
Theorem: CategoryTheory.IsPushout.of_isBilimit
File: Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean

tactic: convert IsPushout.of_is_coproduct' h.isColimit HasZeroObject.zeroIsInitial
  <;> apply Subsingleton.elim
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
Z X Y P : C
f : Z ⟶ X
g : Z ⟶ Y
inl : X ⟶ P
inr : Y ⟶ P
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
b : BinaryBicone X Y
h : b.IsBilimit
⊢ IsPushout 0 0 b.inl b.inr
state_after: no goals
Theorem: FreeGroup.reduce_invRev
File: Mathlib/GroupTheory/FreeGroup/Basic.lean

tactic: apply reduce.min
state_before: α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
inst✝ : DecidableEq α
w : List (α × Bool)
⊢ reduce (invRev w) = invRev (reduce w)
state_after: case H
α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
inst✝ : DecidableEq α
w : List (α × Bool)
⊢ Red (reduce (invRev w)) (invRev (reduce w))

tactic: rw [← red_invRev_iff, invRev_invRev]
state_before: case H
α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
inst✝ : DecidableEq α
w : List (α × Bool)
⊢ Red (reduce (invRev w)) (invRev (reduce w))
state_after: case H
α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
inst✝ : DecidableEq α
w : List (α × Bool)
⊢ Red (invRev (reduce (invRev w))) (reduce w)

tactic: apply Red.reduce_left
state_before: case H
α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
inst✝ : DecidableEq α
w : List (α × Bool)
⊢ Red (invRev (reduce (invRev w))) (reduce w)
state_after: case H.h
α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
inst✝ : DecidableEq α
w : List (α × Bool)
⊢ Red w (invRev (reduce (invRev w)))

tactic: have : Red (invRev (invRev w)) (invRev (reduce (invRev w))) := reduce.red.invRev
state_before: case H.h
α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
inst✝ : DecidableEq α
w : List (α × Bool)
⊢ Red w (invRev (reduce (invRev w)))
state_after: case H.h
α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
inst✝ : DecidableEq α
w : List (α × Bool)
this : Red (invRev (invRev w)) (invRev (reduce (invRev w)))
⊢ Red w (invRev (reduce (invRev w)))

tactic: rwa [invRev_invRev] at this
state_before: case H.h
α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
inst✝ : DecidableEq α
w : List (α × Bool)
this : Red (invRev (invRev w)) (invRev (reduce (invRev w)))
⊢ Red w (invRev (reduce (invRev w)))
state_after: no goals
Theorem: tprod_le_of_prod_le'
File: Mathlib/Topology/Algebra/InfiniteSum/Order.lean

tactic: by_cases hf : Multipliable f
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g : ι → α
a a₁ a₂ : α
ha₂ : 1 ≤ a₂
h : ∀ (s : Finset ι), ∏ i ∈ s, f i ≤ a₂
⊢ ∏' (i : ι), f i ≤ a₂
state_after: case pos
ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g : ι → α
a a₁ a₂ : α
ha₂ : 1 ≤ a₂
h : ∀ (s : Finset ι), ∏ i ∈ s, f i ≤ a₂
hf : Multipliable f
⊢ ∏' (i : ι), f i ≤ a₂

case neg
ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g : ι → α
a a₁ a₂ : α
ha₂ : 1 ≤ a₂
h : ∀ (s : Finset ι), ∏ i ∈ s, f i ≤ a₂
hf : ¬Multipliable f
⊢ ∏' (i : ι), f i ≤ a₂

tactic: exact tprod_le_of_prod_le hf h
state_before: case pos
ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g : ι → α
a a₁ a₂ : α
ha₂ : 1 ≤ a₂
h : ∀ (s : Finset ι), ∏ i ∈ s, f i ≤ a₂
hf : Multipliable f
⊢ ∏' (i : ι), f i ≤ a₂
state_after: no goals

tactic: rw [tprod_eq_one_of_not_multipliable hf]
state_before: case neg
ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g : ι → α
a a₁ a₂ : α
ha₂ : 1 ≤ a₂
h : ∀ (s : Finset ι), ∏ i ∈ s, f i ≤ a₂
hf : ¬Multipliable f
⊢ ∏' (i : ι), f i ≤ a₂
state_after: case neg
ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g : ι → α
a a₁ a₂ : α
ha₂ : 1 ≤ a₂
h : ∀ (s : Finset ι), ∏ i ∈ s, f i ≤ a₂
hf : ¬Multipliable f
⊢ 1 ≤ a₂

tactic: exact ha₂
state_before: case neg
ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g : ι → α
a a₁ a₂ : α
ha₂ : 1 ≤ a₂
h : ∀ (s : Finset ι), ∏ i ∈ s, f i ≤ a₂
hf : ¬Multipliable f
⊢ 1 ≤ a₂
state_after: no goals
Theorem: Set.toFinset_empty
File: Mathlib/Data/Fintype/Basic.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
inst✝ : Fintype ↑∅
⊢ ∅.toFinset = ∅
state_after: case a
α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
inst✝ : Fintype ↑∅
a✝ : α
⊢ a✝ ∈ ∅.toFinset ↔ a✝ ∈ ∅

tactic: simp
state_before: case a
α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
inst✝ : Fintype ↑∅
a✝ : α
⊢ a✝ ∈ ∅.toFinset ↔ a✝ ∈ ∅
state_after: no goals
Theorem: Stream'.Seq.head_cons
File: Mathlib/Data/Seq/Seq.lean

tactic: rw [head_eq_destruct, destruct_cons, Option.map_eq_map, Option.map_some']
state_before: α : Type u
β : Type v
γ : Type w
a : α
s : Seq α
⊢ (cons a s).head = some a
state_after: no goals
Theorem: nhds_translation_mul_inv
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: simp
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝³ : TopologicalSpace G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : TopologicalSpace α
f : α → G
s : Set α
x✝ : α
x : G
⊢ 𝓝 (1 * x⁻¹⁻¹) = 𝓝 x
state_after: no goals
Theorem: dvd_cancel_left_mem_nonZeroDivisors
File: Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean

tactic: rwa [← mul_cancel_left_mem_nonZeroDivisors hr, ← mul_assoc]
state_before: M₀ : Type u_1
inst✝⁵ : MonoidWithZero M₀
M : Type u_2
M' : Type u_3
M₁ : Type u_4
R : Type u_5
R' : Type u_6
F : Type u_7
inst✝⁴ : MonoidWithZero M
inst✝³ : MonoidWithZero M'
inst✝² : CommMonoidWithZero M₁
inst✝¹ : Ring R
inst✝ : CommRing R'
x y r : R'
hr : r ∈ R'⁰
x✝ : r * x ∣ r * y
z : R'
h✝ : r * y = r * x * z
⊢ y = x * z
state_after: no goals

tactic: rw [h, ← mul_assoc]
state_before: M₀ : Type u_1
inst✝⁵ : MonoidWithZero M₀
M : Type u_2
M' : Type u_3
M₁ : Type u_4
R : Type u_5
R' : Type u_6
F : Type u_7
inst✝⁴ : MonoidWithZero M
inst✝³ : MonoidWithZero M'
inst✝² : CommMonoidWithZero M₁
inst✝¹ : Ring R
inst✝ : CommRing R'
x y r : R'
hr : r ∈ R'⁰
x✝ : x ∣ y
z : R'
h : y = x * z
⊢ r * y = r * x * z
state_after: no goals
Theorem: PNat.card_fintype_Icc
File: Mathlib/Data/PNat/Interval.lean

tactic: rw [← card_Icc, Fintype.card_ofFinset]
state_before: a b : ℕ+
⊢ Fintype.card ↑(Set.Icc a b) = ↑b + 1 - ↑a
state_after: no goals
Theorem: Fin.succAbove_rev_left
File: Mathlib/Data/Fin/Basic.lean

tactic: obtain h | h := (rev p).succ_le_or_le_castSucc i
state_before: n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
⊢ p.rev.succAbove i = (p.succAbove i.rev).rev
state_after: case inl
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
h : i.succ ≤ p.rev
⊢ p.rev.succAbove i = (p.succAbove i.rev).rev

case inr
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
h : p.rev ≤ i.castSucc
⊢ p.rev.succAbove i = (p.succAbove i.rev).rev

tactic: rw [succAbove_of_succ_le _ _ h,
  succAbove_of_le_castSucc _ _ (rev_succ _ ▸ (le_rev_iff.mpr h)), rev_succ, rev_rev]
state_before: case inl
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
h : i.succ ≤ p.rev
⊢ p.rev.succAbove i = (p.succAbove i.rev).rev
state_after: no goals

tactic: rw [succAbove_of_le_castSucc _ _ h,
  succAbove_of_succ_le _ _ (rev_castSucc _ ▸ (rev_le_iff.mpr h)), rev_castSucc, rev_rev]
state_before: case inr
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
h : p.rev ≤ i.castSucc
⊢ p.rev.succAbove i = (p.succAbove i.rev).rev
state_after: no goals
Theorem: Complex.cos_ofReal_im
File: Mathlib/Data/Complex/Exponential.lean

tactic: rw [← ofReal_cos_ofReal_re, ofReal_im]
state_before: x✝ y : ℂ
x : ℝ
⊢ (cos ↑x).im = 0
state_after: no goals
Theorem: CochainComplex.exactAt_succ_single_obj
File: Mathlib/Algebra/Homology/SingleHomology.lean

tactic: simp
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
ι : Type u_1
inst✝ : DecidableEq ι
c : ComplexShape ι
j : ι
A : C
n : ℕ
⊢ n + 1 ≠ 0
state_after: no goals
Theorem: Filter.tendsto_div_const_atBot_iff_neg
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: simp [div_eq_mul_inv, tendsto_mul_const_atBot_iff_neg h]
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝¹ : LinearOrderedField α
l : Filter β
f : β → α
r : α
inst✝ : l.NeBot
h : Tendsto f l atTop
⊢ Tendsto (fun x => f x / r) l atBot ↔ r < 0
state_after: no goals
Theorem: Polynomial.leadingCoeff_smul_of_smul_regular
File: Mathlib/Algebra/Polynomial/Monic.lean

tactic: rw [Polynomial.leadingCoeff, Polynomial.leadingCoeff, coeff_smul,
  natDegree_smul_of_smul_regular p h]
state_before: R : Type u
S✝ : Type v
a b : R
m n : ℕ
ι : Type y
inst✝² : Semiring R
p✝ : R[X]
S : Type u_1
inst✝¹ : Monoid S
inst✝ : DistribMulAction S R
k : S
p : R[X]
h : IsSMulRegular R k
⊢ (k • p).leadingCoeff = k • p.leadingCoeff
state_after: no goals
Theorem: Finite.card_eq
File: Mathlib/Data/Finite/Card.lean

tactic: haveI := Fintype.ofFinite α
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : Finite α
inst✝ : Finite β
⊢ Nat.card α = Nat.card β ↔ Nonempty (α ≃ β)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : Finite α
inst✝ : Finite β
this : Fintype α
⊢ Nat.card α = Nat.card β ↔ Nonempty (α ≃ β)

tactic: haveI := Fintype.ofFinite β
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : Finite α
inst✝ : Finite β
this : Fintype α
⊢ Nat.card α = Nat.card β ↔ Nonempty (α ≃ β)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : Finite α
inst✝ : Finite β
this✝ : Fintype α
this : Fintype β
⊢ Nat.card α = Nat.card β ↔ Nonempty (α ≃ β)

tactic: simp only [Nat.card_eq_fintype_card, Fintype.card_eq]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : Finite α
inst✝ : Finite β
this✝ : Fintype α
this : Fintype β
⊢ Nat.card α = Nat.card β ↔ Nonempty (α ≃ β)
state_after: no goals
Theorem: finrank_eq_rank
File: Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean

tactic: rw [FiniteDimensional.finrank, cast_toNat_of_lt_aleph0 (rank_lt_aleph0 R M)]
state_before: R : Type u
M : Type v
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
ι : Type w
ι' : Type w'
inst✝¹ : StrongRankCondition R
inst✝ : Module.Finite R M
⊢ ↑(finrank R M) = Module.rank R M
state_after: no goals
Theorem: LaurentPolynomial.degree_C_ite
File: Mathlib/Algebra/Polynomial/Laurent.lean

tactic: split_ifs with h <;> simp only [h, map_zero, degree_zero, degree_C, Ne, not_false_iff]
state_before: R : Type u_1
inst✝¹ : Semiring R
inst✝ : DecidableEq R
a : R
⊢ (C a).degree = if a = 0 then ⊥ else 0
state_after: no goals
Theorem: mem_nhds_uniformity_iff_left
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: rw [uniformity_eq_symm, mem_nhds_uniformity_iff_right]
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
x : α
s : Set α
⊢ s ∈ 𝓝 x ↔ {p | p.2 = x → p.1 ∈ s} ∈ 𝓤 α
state_after: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
x : α
s : Set α
⊢ {p | p.1 = x → p.2 ∈ s} ∈ 𝓤 α ↔ {p | p.2 = x → p.1 ∈ s} ∈ Prod.swap <$> 𝓤 α

tactic: simp only [map_def, mem_map, preimage_setOf_eq, Prod.snd_swap, Prod.fst_swap]
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
x : α
s : Set α
⊢ {p | p.1 = x → p.2 ∈ s} ∈ 𝓤 α ↔ {p | p.2 = x → p.1 ∈ s} ∈ Prod.swap <$> 𝓤 α
state_after: no goals
Theorem: Complex.GammaIntegral_conj
File: Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean

tactic: rw [GammaIntegral, GammaIntegral, ← integral_conj]
state_before: s : ℂ
⊢ ((starRingEnd ℂ) s).GammaIntegral = (starRingEnd ℂ) s.GammaIntegral
state_after: s : ℂ
⊢ ∫ (x : ℝ) in Ioi 0, ↑(rexp (-x)) * ↑x ^ ((starRingEnd ℂ) s - 1) =
    ∫ (x : ℝ) in Ioi 0, (starRingEnd ℂ) (↑(rexp (-x)) * ↑x ^ (s - 1))

tactic: refine setIntegral_congr measurableSet_Ioi fun x hx => ?_
state_before: s : ℂ
⊢ ∫ (x : ℝ) in Ioi 0, ↑(rexp (-x)) * ↑x ^ ((starRingEnd ℂ) s - 1) =
    ∫ (x : ℝ) in Ioi 0, (starRingEnd ℂ) (↑(rexp (-x)) * ↑x ^ (s - 1))
state_after: s : ℂ
x : ℝ
hx : x ∈ Ioi 0
⊢ ↑(rexp (-x)) * ↑x ^ ((starRingEnd ℂ) s - 1) = (starRingEnd ℂ) (↑(rexp (-x)) * ↑x ^ (s - 1))

tactic: rw [RingHom.map_mul, conj_ofReal, cpow_def_of_ne_zero (ofReal_ne_zero.mpr (ne_of_gt hx)),
  cpow_def_of_ne_zero (ofReal_ne_zero.mpr (ne_of_gt hx)), ← exp_conj, RingHom.map_mul, ←
  ofReal_log (le_of_lt hx), conj_ofReal, RingHom.map_sub, RingHom.map_one]
state_before: s : ℂ
x : ℝ
hx : x ∈ Ioi 0
⊢ ↑(rexp (-x)) * ↑x ^ ((starRingEnd ℂ) s - 1) = (starRingEnd ℂ) (↑(rexp (-x)) * ↑x ^ (s - 1))
state_after: no goals
Theorem: NNReal.iSup_div
File: Mathlib/Data/NNReal/Basic.lean

tactic: simp only [div_eq_mul_inv, iSup_mul]
state_before: ι : Sort u_1
f✝ f : ι → ℝ≥0
a : ℝ≥0
⊢ (⨆ i, f i) / a = ⨆ i, f i / a
state_after: no goals
Theorem: dist_edist
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: rw [edist_dist, ENNReal.toReal_ofReal dist_nonneg]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x y : α
⊢ dist x y = (edist x y).toReal
state_after: no goals
Theorem: Ideal.inertiaDeg_of_subsingleton
File: Mathlib/NumberTheory/RamificationInertia.lean

tactic: have := Ideal.Quotient.subsingleton_iff.mp hQ
state_before: R : Type u
inst✝¹ : CommRing R
S : Type v
inst✝ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
hp : p.IsMaximal
hQ : Subsingleton (S ⧸ P)
⊢ inertiaDeg f p P = 0
state_after: R : Type u
inst✝¹ : CommRing R
S : Type v
inst✝ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
hp : p.IsMaximal
hQ : Subsingleton (S ⧸ P)
this : P = ⊤
⊢ inertiaDeg f p P = 0

tactic: subst this
state_before: R : Type u
inst✝¹ : CommRing R
S : Type v
inst✝ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
hp : p.IsMaximal
hQ : Subsingleton (S ⧸ P)
this : P = ⊤
⊢ inertiaDeg f p P = 0
state_after: R : Type u
inst✝¹ : CommRing R
S : Type v
inst✝ : CommRing S
f : R →+* S
p : Ideal R
hp : p.IsMaximal
hQ : Subsingleton (S ⧸ ⊤)
⊢ inertiaDeg f p ⊤ = 0

tactic: exact dif_neg fun h => hp.ne_top <| h.symm.trans comap_top
state_before: R : Type u
inst✝¹ : CommRing R
S : Type v
inst✝ : CommRing S
f : R →+* S
p : Ideal R
hp : p.IsMaximal
hQ : Subsingleton (S ⧸ ⊤)
⊢ inertiaDeg f p ⊤ = 0
state_after: no goals
Theorem: EReal.preimage_coe_Iio_top
File: Mathlib/Data/Real/EReal.lean

tactic: change (WithBot.some ∘ WithTop.some) ⁻¹' (Iio (WithBot.some ⊤)) = _
state_before: ⊢ Real.toEReal ⁻¹' Iio ⊤ = univ
state_after: ⊢ WithBot.some ∘ WithTop.some ⁻¹' Iio ↑⊤ = univ

tactic: refine preimage_comp.trans ?_
state_before: ⊢ WithBot.some ∘ WithTop.some ⁻¹' Iio ↑⊤ = univ
state_after: ⊢ WithTop.some ⁻¹' (WithBot.some ⁻¹' Iio ↑⊤) = univ

tactic: simp only [WithBot.preimage_coe_Iio, WithTop.preimage_coe_Iio_top]
state_before: ⊢ WithTop.some ⁻¹' (WithBot.some ⁻¹' Iio ↑⊤) = univ
state_after: no goals
Theorem: Polynomial.smeval_X
File: Mathlib/Algebra/Polynomial/Smeval.lean

tactic: simp only [smeval_eq_sum, smul_pow, zero_smul, sum_X_index, one_smul]
state_before: R : Type u_1
inst✝³ : Semiring R
r : R
p : R[X]
S : Type u_2
inst✝² : AddCommMonoid S
inst✝¹ : Pow S ℕ
inst✝ : MulActionWithZero R S
x : S
⊢ X.smeval x = x ^ 1
state_after: no goals
Theorem: ProbabilityTheory.condCount_union
File: Mathlib/Probability/CondCount.lean

tactic: rw [condCount, cond_apply _ hs.measurableSet, cond_apply _ hs.measurableSet,
  cond_apply _ hs.measurableSet, Set.inter_union_distrib_left, measure_union, mul_add]
state_before: Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
htu : Disjoint t u
⊢ (condCount s) (t ∪ u) = (condCount s) t + (condCount s) u
state_after: case hd
Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
htu : Disjoint t u
⊢ Disjoint (s ∩ t) (s ∩ u)

case h
Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
htu : Disjoint t u
⊢ MeasurableSet (s ∩ u)

tactic: exacts [htu.mono inf_le_right inf_le_right, (hs.inter_of_left _).measurableSet]
state_before: case hd
Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
htu : Disjoint t u
⊢ Disjoint (s ∩ t) (s ∩ u)

case h
Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
htu : Disjoint t u
⊢ MeasurableSet (s ∩ u)
state_after: no goals
Theorem: indicator_ae_eq_of_ae_eq_set
File: Mathlib/MeasureTheory/Measure/Restrict.lean

tactic: classical exact piecewise_ae_eq_of_ae_eq_set hst
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
hst : s =ᶠ[ae μ] t
⊢ s.indicator f =ᶠ[ae μ] t.indicator f
state_after: no goals

tactic: exact piecewise_ae_eq_of_ae_eq_set hst
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
hst : s =ᶠ[ae μ] t
⊢ s.indicator f =ᶠ[ae μ] t.indicator f
state_after: no goals
Theorem: dvd_mul_sub_mul
File: Mathlib/Algebra/Ring/Divisibility/Basic.lean

tactic: convert dvd_add (hxy.mul_left a) (hab.mul_right y) using 1
state_before: α : Type u_1
β : Type u_2
inst✝ : NonUnitalCommRing α
a✝ b✝ c k a b x y : α
hab : k ∣ a - b
hxy : k ∣ x - y
⊢ k ∣ a * x - b * y
state_after: case h.e'_4
α : Type u_1
β : Type u_2
inst✝ : NonUnitalCommRing α
a✝ b✝ c k a b x y : α
hab : k ∣ a - b
hxy : k ∣ x - y
⊢ a * x - b * y = a * (x - y) + (a - b) * y

tactic: rw [mul_sub_left_distrib, mul_sub_right_distrib]
state_before: case h.e'_4
α : Type u_1
β : Type u_2
inst✝ : NonUnitalCommRing α
a✝ b✝ c k a b x y : α
hab : k ∣ a - b
hxy : k ∣ x - y
⊢ a * x - b * y = a * (x - y) + (a - b) * y
state_after: case h.e'_4
α : Type u_1
β : Type u_2
inst✝ : NonUnitalCommRing α
a✝ b✝ c k a b x y : α
hab : k ∣ a - b
hxy : k ∣ x - y
⊢ a * x - b * y = a * x - a * y + (a * y - b * y)

tactic: simp only [sub_eq_add_neg, add_assoc, neg_add_cancel_left]
state_before: case h.e'_4
α : Type u_1
β : Type u_2
inst✝ : NonUnitalCommRing α
a✝ b✝ c k a b x y : α
hab : k ∣ a - b
hxy : k ∣ x - y
⊢ a * x - b * y = a * x - a * y + (a * y - b * y)
state_after: no goals
Theorem: MeasureTheory.Integrable.sub
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simpa only [sub_eq_add_neg] using hf.add hg.neg
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f g : α → β
hf : Integrable f μ
hg : Integrable g μ
⊢ Integrable (f - g) μ
state_after: no goals
Theorem: WithZeroTopology.isOpen_iff
File: Mathlib/Topology/Algebra/WithZeroTopology.lean

tactic: rw [isOpen_iff_mem_nhds, ← and_forall_ne (0 : Γ₀)]
state_before: α : Type u_1
Γ₀ : Type u_2
inst✝ : LinearOrderedCommGroupWithZero Γ₀
γ γ₁ γ₂ : Γ₀
l : Filter α
f : α → Γ₀
s : Set Γ₀
⊢ IsOpen s ↔ 0 ∉ s ∨ ∃ γ, γ ≠ 0 ∧ Iio γ ⊆ s
state_after: α : Type u_1
Γ₀ : Type u_2
inst✝ : LinearOrderedCommGroupWithZero Γ₀
γ γ₁ γ₂ : Γ₀
l : Filter α
f : α → Γ₀
s : Set Γ₀
⊢ ((0 ∈ s → s ∈ 𝓝 0) ∧ ∀ (b : Γ₀), b ≠ 0 → b ∈ s → s ∈ 𝓝 b) ↔ 0 ∉ s ∨ ∃ γ, γ ≠ 0 ∧ Iio γ ⊆ s

tactic: simp (config := { contextual := true }) [nhds_of_ne_zero, imp_iff_not_or,
  hasBasis_nhds_zero.mem_iff]
state_before: α : Type u_1
Γ₀ : Type u_2
inst✝ : LinearOrderedCommGroupWithZero Γ₀
γ γ₁ γ₂ : Γ₀
l : Filter α
f : α → Γ₀
s : Set Γ₀
⊢ ((0 ∈ s → s ∈ 𝓝 0) ∧ ∀ (b : Γ₀), b ≠ 0 → b ∈ s → s ∈ 𝓝 b) ↔ 0 ∉ s ∨ ∃ γ, γ ≠ 0 ∧ Iio γ ⊆ s
state_after: no goals
Theorem: Int.ceil_intCast
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [ceil_le, Int.cast_le]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z✝ : ℤ
a✝ : α
z a : ℤ
⊢ ⌈↑z⌉ ≤ a ↔ z ≤ a
state_after: no goals
Theorem: Submonoid.card_le_one_iff_eq_bot
File: Mathlib/Algebra/Group/Submonoid/Membership.lean

tactic: simpa [Subtype.ext_iff] using card_le_one_iff.1 h ⟨x, hx⟩ 1
state_before: M : Type u_1
A : Type u_2
B : Type u_3
inst✝¹ : Monoid M
a : M
S : Submonoid M
inst✝ : Fintype ↥S
h : card ↥S ≤ 1
x : M
hx : x ∈ S
⊢ x = 1
state_after: no goals

tactic: simp [h]
state_before: M : Type u_1
A : Type u_2
B : Type u_3
inst✝¹ : Monoid M
a : M
S : Submonoid M
inst✝ : Fintype ↥S
h : S = ⊥
⊢ card ↥S ≤ 1
state_after: no goals
Theorem: Real.Angle.coe_expMapCircle
File: Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean

tactic: induction θ using Real.Angle.induction_on
state_before: θ : Angle
⊢ ↑θ.expMapCircle = ↑θ.cos + ↑θ.sin * I
state_after: case h
x✝ : ℝ
⊢ ↑(↑x✝).expMapCircle = ↑(↑x✝).cos + ↑(↑x✝).sin * I

tactic: simp [Complex.exp_mul_I]
state_before: case h
x✝ : ℝ
⊢ ↑(↑x✝).expMapCircle = ↑(↑x✝).cos + ↑(↑x✝).sin * I
state_after: no goals
Theorem: ENNReal.eq_div_iff
File: Mathlib/Data/ENNReal/Inv.lean

tactic: rw [h, ENNReal.mul_div_cancel' ha ha']
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ 0
ha' : a ≠ ⊤
h : b = c / a
⊢ a * b = c
state_after: no goals

tactic: rw [← h, mul_div_assoc, ENNReal.mul_div_cancel' ha ha']
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ 0
ha' : a ≠ ⊤
h : a * b = c
⊢ b = c / a
state_after: no goals
Theorem: connectedComponentIn_mem_nhds
File: Mathlib/Topology/Connected/LocallyConnected.lean

tactic: rw [(LocallyConnectedSpace.open_connected_basis x).mem_iff] at h
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s t u v : Set α
inst✝ : LocallyConnectedSpace α
F : Set α
x : α
h : F ∈ 𝓝 x
⊢ connectedComponentIn F x ∈ 𝓝 x
state_after: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s t u v : Set α
inst✝ : LocallyConnectedSpace α
F : Set α
x : α
h : ∃ i, (IsOpen i ∧ x ∈ i ∧ IsConnected i) ∧ id i ⊆ F
⊢ connectedComponentIn F x ∈ 𝓝 x

tactic: rcases h with ⟨s, ⟨h1s, hxs, h2s⟩, hsF⟩
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s t u v : Set α
inst✝ : LocallyConnectedSpace α
F : Set α
x : α
h : ∃ i, (IsOpen i ∧ x ∈ i ∧ IsConnected i) ∧ id i ⊆ F
⊢ connectedComponentIn F x ∈ 𝓝 x
state_after: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : LocallyConnectedSpace α
F : Set α
x : α
s : Set α
hsF : id s ⊆ F
h1s : IsOpen s
hxs : x ∈ s
h2s : IsConnected s
⊢ connectedComponentIn F x ∈ 𝓝 x

tactic: exact mem_nhds_iff.mpr ⟨s, h2s.isPreconnected.subset_connectedComponentIn hxs hsF, h1s, hxs⟩
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : LocallyConnectedSpace α
F : Set α
x : α
s : Set α
hsF : id s ⊆ F
h1s : IsOpen s
hxs : x ∈ s
h2s : IsConnected s
⊢ connectedComponentIn F x ∈ 𝓝 x
state_after: no goals