1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Submodule.subsingleton_iff
File: Mathlib/Algebra/Module/Submodule/Lattice.lean

tactic: rw [← subsingleton_iff_bot_eq_top, ← subsingleton_iff_bot_eq_top, ← toAddSubmonoid_eq,
  bot_toAddSubmonoid, top_toAddSubmonoid]
state_before: R : Type u_1
S : Type u_2
M : Type u_3
inst✝⁶ : Semiring R
inst✝⁵ : Semiring S
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : Module S M
inst✝¹ : SMul S R
inst✝ : IsScalarTower S R M
p q : Submodule R M
⊢ Subsingleton (Submodule R M) ↔ Subsingleton (AddSubmonoid M)
state_after: no goals
Theorem: WittVector.one_coeff_zero
File: Mathlib/RingTheory/WittVector/Defs.lean

tactic: simp only [wittOne_zero_eq_one, AlgHom.map_one]
state_before: p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝ : CommRing R
⊢ (aeval (Function.uncurry fun i => (![] i).coeff)) (wittOne p 0) = 1
state_after: no goals
Theorem: Filter.tendsto_iff_ultrafilter
File: Mathlib/Order/Filter/Ultrafilter.lean

tactic: simpa only [tendsto_iff_comap] using le_iff_ultrafilter
state_before: α : Type u
β : Type v
γ : Type u_1
f✝ : Filter α
s : Set α
a : α
f : α → β
l₁ : Filter α
l₂ : Filter β
⊢ Tendsto f l₁ l₂ ↔ ∀ (g : Ultrafilter α), ↑g ≤ l₁ → Tendsto f (↑g) l₂
state_after: no goals
Theorem: toIocDiv_zsmul_add
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [add_comm, toIocDiv_add_zsmul, add_comm]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
m : ℤ
⊢ toIocDiv hp a (m • p + b) = m + toIocDiv hp a b
state_after: no goals
Theorem: intervalIntegral.integral_comp_mul_deriv'''
File: Mathlib/MeasureTheory/Integral/FundThmCalculus.lean

tactic: have hg2' : IntegrableOn (fun x => f' x • (g ∘ f) x) [[a, b]] := by simpa [mul_comm] using hg2
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
f✝¹ : ℝ → E
g' g✝ φ : ℝ → ℝ
a✝ b✝ : ℝ
inst✝ : CompleteSpace E
f✝ f'✝ : ℝ → E
a b : ℝ
f f' g : ℝ → ℝ
hf : ContinuousOn f [[a, b]]
hff' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x
hg_cont : ContinuousOn g (f '' Ioo (min a b) (max a b))
hg1 : IntegrableOn g (f '' [[a, b]]) volume
hg2 : IntegrableOn (fun x => (g ∘ f) x * f' x) [[a, b]] volume
⊢ ∫ (x : ℝ) in a..b, (g ∘ f) x * f' x = ∫ (u : ℝ) in f a..f b, g u
state_after: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
f✝¹ : ℝ → E
g' g✝ φ : ℝ → ℝ
a✝ b✝ : ℝ
inst✝ : CompleteSpace E
f✝ f'✝ : ℝ → E
a b : ℝ
f f' g : ℝ → ℝ
hf : ContinuousOn f [[a, b]]
hff' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x
hg_cont : ContinuousOn g (f '' Ioo (min a b) (max a b))
hg1 : IntegrableOn g (f '' [[a, b]]) volume
hg2 : IntegrableOn (fun x => (g ∘ f) x * f' x) [[a, b]] volume
hg2' : IntegrableOn (fun x => f' x • (g ∘ f) x) [[a, b]] volume
⊢ ∫ (x : ℝ) in a..b, (g ∘ f) x * f' x = ∫ (u : ℝ) in f a..f b, g u

tactic: simpa [mul_comm] using integral_comp_smul_deriv''' hf hff' hg_cont hg1 hg2'
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
f✝¹ : ℝ → E
g' g✝ φ : ℝ → ℝ
a✝ b✝ : ℝ
inst✝ : CompleteSpace E
f✝ f'✝ : ℝ → E
a b : ℝ
f f' g : ℝ → ℝ
hf : ContinuousOn f [[a, b]]
hff' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x
hg_cont : ContinuousOn g (f '' Ioo (min a b) (max a b))
hg1 : IntegrableOn g (f '' [[a, b]]) volume
hg2 : IntegrableOn (fun x => (g ∘ f) x * f' x) [[a, b]] volume
hg2' : IntegrableOn (fun x => f' x • (g ∘ f) x) [[a, b]] volume
⊢ ∫ (x : ℝ) in a..b, (g ∘ f) x * f' x = ∫ (u : ℝ) in f a..f b, g u
state_after: no goals

tactic: simpa [mul_comm] using hg2
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
f✝¹ : ℝ → E
g' g✝ φ : ℝ → ℝ
a✝ b✝ : ℝ
inst✝ : CompleteSpace E
f✝ f'✝ : ℝ → E
a b : ℝ
f f' g : ℝ → ℝ
hf : ContinuousOn f [[a, b]]
hff' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x
hg_cont : ContinuousOn g (f '' Ioo (min a b) (max a b))
hg1 : IntegrableOn g (f '' [[a, b]]) volume
hg2 : IntegrableOn (fun x => (g ∘ f) x * f' x) [[a, b]] volume
⊢ IntegrableOn (fun x => f' x • (g ∘ f) x) [[a, b]] volume
state_after: no goals
Theorem: Nat.lt_mul_self_iff
File: Mathlib/Data/Nat/Defs.lean

tactic: simp
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
⊢ 0 < 0 * 0 ↔ 1 < 0
state_after: no goals
Theorem: finprod_congr_Prop
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: subst q
state_before: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
p q : Prop
f : p → M
g : q → M
hpq : p = q
hfg : ∀ (h : q), f ⋯ = g h
⊢ finprod f = finprod g
state_after: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
p : Prop
f g : p → M
hfg : ∀ (h : p), f ⋯ = g h
⊢ finprod f = finprod g

tactic: exact finprod_congr hfg
state_before: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
p : Prop
f g : p → M
hfg : ∀ (h : p), f ⋯ = g h
⊢ finprod f = finprod g
state_after: no goals
Theorem: multiplicity.finite_pow
File: Mathlib/RingTheory/Multiplicity.lean

tactic: simp [mt isUnit_iff_dvd_one.2 hp.2.1]
state_before: α : Type u_1
β : Type u_2
inst✝ : CancelCommMonoidWithZero α
p a : α
hp : Prime p
x✝ : Finite p a
⊢ ¬p ^ (0 + 1) ∣ a ^ 0
state_after: no goals

tactic: rw [_root_.pow_succ']
state_before: α : Type u_1
β : Type u_2
inst✝ : CancelCommMonoidWithZero α
p a : α
hp : Prime p
k : ℕ
ha : Finite p a
⊢ Finite p (a ^ (k + 1))
state_after: α : Type u_1
β : Type u_2
inst✝ : CancelCommMonoidWithZero α
p a : α
hp : Prime p
k : ℕ
ha : Finite p a
⊢ Finite p (a * a ^ k)

tactic: exact finite_mul hp ha (finite_pow hp ha)
state_before: α : Type u_1
β : Type u_2
inst✝ : CancelCommMonoidWithZero α
p a : α
hp : Prime p
k : ℕ
ha : Finite p a
⊢ Finite p (a * a ^ k)
state_after: no goals
Theorem: Submodule.isTorsion'_iff_torsion'_eq_top
File: Mathlib/Algebra/Module/Torsion.lean

tactic: rw [← @mem_torsion'_iff R, h]
state_before: R : Type u_1
M : Type u_2
inst✝⁵ : CommSemiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
S : Type u_3
inst✝² : CommMonoid S
inst✝¹ : DistribMulAction S M
inst✝ : SMulCommClass S R M
h : torsion' R M S = ⊤
x : M
⊢ ∃ a, a • x = 0
state_after: R : Type u_1
M : Type u_2
inst✝⁵ : CommSemiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
S : Type u_3
inst✝² : CommMonoid S
inst✝¹ : DistribMulAction S M
inst✝ : SMulCommClass S R M
h : torsion' R M S = ⊤
x : M
⊢ x ∈ ⊤

tactic: trivial
state_before: R : Type u_1
M : Type u_2
inst✝⁵ : CommSemiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
S : Type u_3
inst✝² : CommMonoid S
inst✝¹ : DistribMulAction S M
inst✝ : SMulCommClass S R M
h : torsion' R M S = ⊤
x : M
⊢ x ∈ ⊤
state_after: no goals
Theorem: Batteries.TransCmp.gt_trans
File: .lake/packages/batteries/Batteries/Classes/Order.lean

tactic: rw [cmp_eq_gt] at h₁ h₂ ⊢
state_before: cmp✝ : ?m.4485 → ?m.4485 → Ordering
inst✝¹ : TransCmp cmp✝
x✝ : Sort ?u.4483
cmp : x✝ → x✝ → Ordering
inst✝ : TransCmp cmp
x y z : x✝
h₁ : cmp x y = Ordering.gt
h₂ : cmp y z = Ordering.gt
⊢ cmp x z = Ordering.gt
state_after: cmp✝ : ?m.4485 → ?m.4485 → Ordering
inst✝¹ : TransCmp cmp✝
x✝ : Sort ?u.4483
cmp : x✝ → x✝ → Ordering
inst✝ : TransCmp cmp
x y z : x✝
h₁ : cmp y x = Ordering.lt
h₂ : cmp z y = Ordering.lt
⊢ cmp z x = Ordering.lt

tactic: exact lt_trans h₂ h₁
state_before: cmp✝ : ?m.4485 → ?m.4485 → Ordering
inst✝¹ : TransCmp cmp✝
x✝ : Sort ?u.4483
cmp : x✝ → x✝ → Ordering
inst✝ : TransCmp cmp
x y z : x✝
h₁ : cmp y x = Ordering.lt
h₂ : cmp z y = Ordering.lt
⊢ cmp z x = Ordering.lt
state_after: no goals
Theorem: CliffordAlgebraComplex.ofComplex_conj
File: Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean

tactic: rw [equiv_apply, equiv_apply, toComplex_involute, toComplex_ofComplex, toComplex_ofComplex]
state_before: c : ℂ
⊢ CliffordAlgebraComplex.equiv (ofComplex ((starRingEnd ℂ) c)) = CliffordAlgebraComplex.equiv (involute (ofComplex c))
state_after: no goals
Theorem: Set.biInter_finsetSigma_univ'
File: Mathlib/Data/Fintype/Sigma.lean

tactic: aesop
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
κ : ι → Type u_5
inst✝ : (i : ι) → Fintype (κ i)
s : Finset ι
f : (i : ι) → κ i → Set α
⊢ ⋂ i ∈ s, ⋂ j, f i j = ⋂ ij ∈ s.sigma fun x => Finset.univ, f ij.fst ij.snd
state_after: no goals
Theorem: Real.sin_antiperiodic
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: simp [sin_add]
state_before: ⊢ Function.Antiperiodic sin π
state_after: no goals
Theorem: PFunctor.M.isPath_cons
File: Mathlib/Data/PFunctor/Univariate/M.lean

tactic: generalize h : M.mk ⟨a, f⟩ = x
state_before: F : PFunctor.{u}
X : Type u_1
f✝ : X → ↑F X
xs : Path F
a a' : F.A
f : F.B a → F.M
i : F.B a'
⊢ IsPath (⟨a', i⟩ :: xs) (M.mk ⟨a, f⟩) → a = a'
state_after: F : PFunctor.{u}
X : Type u_1
f✝ : X → ↑F X
xs : Path F
a a' : F.A
f : F.B a → F.M
i : F.B a'
x : F.M
h : M.mk ⟨a, f⟩ = x
⊢ IsPath (⟨a', i⟩ :: xs) x → a = a'

tactic: rintro (_ | ⟨_, _, _, _, rfl, _⟩)
state_before: F : PFunctor.{u}
X : Type u_1
f✝ : X → ↑F X
xs : Path F
a a' : F.A
f : F.B a → F.M
i : F.B a'
x : F.M
h : M.mk ⟨a, f⟩ = x
⊢ IsPath (⟨a', i⟩ :: xs) x → a = a'
state_after: case cons
F : PFunctor.{u}
X : Type u_1
f✝¹ : X → ↑F X
xs : Path F
a a' : F.A
f : F.B a → F.M
i : F.B a'
f✝ : F.B a' → F.M
a✝ : IsPath xs (f✝ i)
h : M.mk ⟨a, f⟩ = M.mk ⟨a', f✝⟩
⊢ a = a'

tactic: cases mk_inj h
state_before: case cons
F : PFunctor.{u}
X : Type u_1
f✝¹ : X → ↑F X
xs : Path F
a a' : F.A
f : F.B a → F.M
i : F.B a'
f✝ : F.B a' → F.M
a✝ : IsPath xs (f✝ i)
h : M.mk ⟨a, f⟩ = M.mk ⟨a', f✝⟩
⊢ a = a'
state_after: case cons.refl
F : PFunctor.{u}
X : Type u_1
f✝ : X → ↑F X
xs : Path F
a : F.A
f : F.B a → F.M
i : F.B a
a✝ : IsPath xs (f i)
h : M.mk ⟨a, f⟩ = M.mk ⟨a, f⟩
⊢ a = a

tactic: rfl
state_before: case cons.refl
F : PFunctor.{u}
X : Type u_1
f✝ : X → ↑F X
xs : Path F
a : F.A
f : F.B a → F.M
i : F.B a
a✝ : IsPath xs (f i)
h : M.mk ⟨a, f⟩ = M.mk ⟨a, f⟩
⊢ a = a
state_after: no goals
Theorem: IsAlgClosed.exists_eq_mul_self
File: Mathlib/FieldTheory/IsAlgClosed/Basic.lean

tactic: rcases exists_pow_nat_eq x zero_lt_two with ⟨z, rfl⟩
state_before: k : Type u
inst✝¹ : Field k
inst✝ : IsAlgClosed k
x : k
⊢ ∃ z, x = z * z
state_after: case intro
k : Type u
inst✝¹ : Field k
inst✝ : IsAlgClosed k
z : k
⊢ ∃ z_1, z ^ 2 = z_1 * z_1

tactic: exact ⟨z, sq z⟩
state_before: case intro
k : Type u
inst✝¹ : Field k
inst✝ : IsAlgClosed k
z : k
⊢ ∃ z_1, z ^ 2 = z_1 * z_1
state_after: no goals
Theorem: Complex.cpow_inv_two_im_eq_neg_sqrt
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rw [← ofReal_ofNat, ← ofReal_inv, cpow_ofReal_im, ← div_eq_mul_inv, ← one_div,
  ← Real.sqrt_eq_rpow, sin_half_eq_neg_sqrt, mul_neg, ← sqrt_mul (abs.nonneg _),
  ← mul_div_assoc, mul_sub, mul_one, abs_mul_cos_arg]
state_before: x : ℂ
hx : x.im < 0
⊢ (x ^ 2⁻¹).im = -√((abs x - x.re) / 2)
state_after: case hl
x : ℂ
hx : x.im < 0
⊢ -(2 * π) ≤ x.arg

case hr
x : ℂ
hx : x.im < 0
⊢ x.arg ≤ 0

tactic: linarith [pi_pos, neg_pi_lt_arg x]
state_before: case hl
x : ℂ
hx : x.im < 0
⊢ -(2 * π) ≤ x.arg
state_after: no goals

tactic: exact (arg_neg_iff.2 hx).le
state_before: case hr
x : ℂ
hx : x.im < 0
⊢ x.arg ≤ 0
state_after: no goals
Theorem: MeasureTheory.SignedMeasure.rnDeriv_smul
File: Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean

tactic: refine
  Integrable.ae_eq_of_withDensityᵥ_eq (integrable_rnDeriv _ _)
    ((integrable_rnDeriv _ _).smul r) ?_
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν : Measure α
s✝ t s : SignedMeasure α
μ : Measure α
inst✝ : s.HaveLebesgueDecomposition μ
r : ℝ
⊢ (r • s).rnDeriv μ =ᶠ[ae μ] r • s.rnDeriv μ
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν : Measure α
s✝ t s : SignedMeasure α
μ : Measure α
inst✝ : s.HaveLebesgueDecomposition μ
r : ℝ
⊢ μ.withDensityᵥ ((r • s).rnDeriv μ) = μ.withDensityᵥ (r • s.rnDeriv μ)

tactic: rw [withDensityᵥ_smul (rnDeriv s μ) r, ← add_right_inj ((r • s).singularPart μ),
  singularPart_add_withDensity_rnDeriv_eq, singularPart_smul, ← smul_add,
  singularPart_add_withDensity_rnDeriv_eq]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν : Measure α
s✝ t s : SignedMeasure α
μ : Measure α
inst✝ : s.HaveLebesgueDecomposition μ
r : ℝ
⊢ μ.withDensityᵥ ((r • s).rnDeriv μ) = μ.withDensityᵥ (r • s.rnDeriv μ)
state_after: no goals
Theorem: Nat.zmodeq_ofDigits_digits
File: Mathlib/Data/Nat/Digits.lean

tactic: rw [coe_int_ofDigits]
state_before: n✝ b b' : ℕ
c : ℤ
h : ↑b' ≡ c [ZMOD ↑b]
n : ℕ
⊢ ↑(ofDigits b' (b'.digits n)) ≡ ofDigits c (b'.digits n) [ZMOD ↑b]
state_after: n✝ b b' : ℕ
c : ℤ
h : ↑b' ≡ c [ZMOD ↑b]
n : ℕ
⊢ ofDigits (↑b') (b'.digits n) ≡ ofDigits c (b'.digits n) [ZMOD ↑b]

tactic: apply ofDigits_zmodeq' _ _ _ h
state_before: n✝ b b' : ℕ
c : ℤ
h : ↑b' ≡ c [ZMOD ↑b]
n : ℕ
⊢ ofDigits (↑b') (b'.digits n) ≡ ofDigits c (b'.digits n) [ZMOD ↑b]
state_after: no goals
Theorem: DirichletCharacter.conductor_eq_zero_iff_level_eq_zero
File: Mathlib/NumberTheory/DirichletCharacter/Basic.lean

tactic: refine ⟨(conductor_ne_zero χ).mtr, ?_⟩
state_before: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
⊢ χ.conductor = 0 ↔ n = 0
state_after: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
⊢ n = 0 → χ.conductor = 0

tactic: rintro rfl
state_before: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
⊢ n = 0 → χ.conductor = 0
state_after: R : Type u_1
inst✝ : CommMonoidWithZero R
χ : DirichletCharacter R 0
⊢ χ.conductor = 0

tactic: exact Nat.sInf_eq_zero.mpr <| Or.inl <| level_mem_conductorSet χ
state_before: R : Type u_1
inst✝ : CommMonoidWithZero R
χ : DirichletCharacter R 0
⊢ χ.conductor = 0
state_after: no goals
Theorem: Real.Angle.tan_periodic
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: intro θ
state_before: ⊢ Function.Periodic tan ↑π
state_after: θ : Angle
⊢ (θ + ↑π).tan = θ.tan

tactic: induction θ using Real.Angle.induction_on
state_before: θ : Angle
⊢ (θ + ↑π).tan = θ.tan
state_after: case h
x✝ : ℝ
⊢ (↑x✝ + ↑π).tan = (↑x✝).tan

tactic: rw [← coe_add, tan_coe, tan_coe]
state_before: case h
x✝ : ℝ
⊢ (↑x✝ + ↑π).tan = (↑x✝).tan
state_after: case h
x✝ : ℝ
⊢ Real.tan (x✝ + π) = Real.tan x✝

tactic: exact Real.tan_periodic _
state_before: case h
x✝ : ℝ
⊢ Real.tan (x✝ + π) = Real.tan x✝
state_after: no goals
Theorem: rec_heq_of_heq
File: Mathlib/Logic/Basic.lean

tactic: subst e
state_before: α : Sort u_2
a : α
β : Sort u_1
b : α
C : α → Sort u_1
x : C a
y : β
e : a = b
h : HEq x y
⊢ HEq (e ▸ x) y
state_after: α : Sort u_2
a : α
β : Sort u_1
C : α → Sort u_1
x : C a
y : β
h : HEq x y
⊢ HEq (⋯ ▸ x) y

tactic: exact h
state_before: α : Sort u_2
a : α
β : Sort u_1
C : α → Sort u_1
x : C a
y : β
h : HEq x y
⊢ HEq (⋯ ▸ x) y
state_after: no goals
Theorem: MeasureTheory.integral_inv_eq_self
File: Mathlib/MeasureTheory/Group/Integral.lean

tactic: have h : MeasurableEmbedding fun x : G => x⁻¹ := (MeasurableEquiv.inv G).measurableEmbedding
state_before: 𝕜 : Type u_1
M : Type u_2
α : Type u_3
G : Type u_4
E : Type u_5
F : Type u_6
inst✝⁷ : MeasurableSpace G
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
μ✝ : Measure G
f✝ : G → E
g : G
inst✝² : Group G
inst✝¹ : MeasurableInv G
f : G → E
μ : Measure G
inst✝ : μ.IsInvInvariant
⊢ ∫ (x : G), f x⁻¹ ∂μ = ∫ (x : G), f x ∂μ
state_after: 𝕜 : Type u_1
M : Type u_2
α : Type u_3
G : Type u_4
E : Type u_5
F : Type u_6
inst✝⁷ : MeasurableSpace G
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
μ✝ : Measure G
f✝ : G → E
g : G
inst✝² : Group G
inst✝¹ : MeasurableInv G
f : G → E
μ : Measure G
inst✝ : μ.IsInvInvariant
h : MeasurableEmbedding fun x => x⁻¹
⊢ ∫ (x : G), f x⁻¹ ∂μ = ∫ (x : G), f x ∂μ

tactic: rw [← h.integral_map, map_inv_eq_self]
state_before: 𝕜 : Type u_1
M : Type u_2
α : Type u_3
G : Type u_4
E : Type u_5
F : Type u_6
inst✝⁷ : MeasurableSpace G
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
μ✝ : Measure G
f✝ : G → E
g : G
inst✝² : Group G
inst✝¹ : MeasurableInv G
f : G → E
μ : Measure G
inst✝ : μ.IsInvInvariant
h : MeasurableEmbedding fun x => x⁻¹
⊢ ∫ (x : G), f x⁻¹ ∂μ = ∫ (x : G), f x ∂μ
state_after: no goals
Theorem: Equiv.Perm.not_mem_support
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: simp
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x : α
⊢ x ∉ f.support ↔ f x = x
state_after: no goals
Theorem: OrderIso.mulLeft_symm
File: Mathlib/Algebra/Order/Group/OrderIso.lean

tactic: ext x
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a : α
⊢ (mulLeft a).symm = mulLeft a⁻¹
state_after: case h.h
α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a x : α
⊢ (mulLeft a).symm x = (mulLeft a⁻¹) x

tactic: rfl
state_before: case h.h
α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a x : α
⊢ (mulLeft a).symm x = (mulLeft a⁻¹) x
state_after: no goals
Theorem: CategoryTheory.Localization.Construction.NatTransExtension.app_eq
File: Mathlib/CategoryTheory/Localization/Construction.lean

tactic: simp only [app, eqToHom_refl, comp_id, id_comp]
state_before: C : Type uC
inst✝¹ : Category.{uC', uC} C
W : MorphismProperty C
D : Type uD
inst✝ : Category.{uD', uD} D
G : C ⥤ D
hG : W.IsInvertedBy G
F₁ F₂ : W.Localization ⥤ D
τ : W.Q ⋙ F₁ ⟶ W.Q ⋙ F₂
X : C
⊢ app τ (W.Q.obj X) = τ.app X
state_after: C : Type uC
inst✝¹ : Category.{uC', uC} C
W : MorphismProperty C
D : Type uD
inst✝ : Category.{uD', uD} D
G : C ⥤ D
hG : W.IsInvertedBy G
F₁ F₂ : W.Localization ⥤ D
τ : W.Q ⋙ F₁ ⟶ W.Q ⋙ F₂
X : C
⊢ τ.app ((objEquiv W).invFun (W.Q.obj X)) = τ.app X

tactic: rfl
state_before: C : Type uC
inst✝¹ : Category.{uC', uC} C
W : MorphismProperty C
D : Type uD
inst✝ : Category.{uD', uD} D
G : C ⥤ D
hG : W.IsInvertedBy G
F₁ F₂ : W.Localization ⥤ D
τ : W.Q ⋙ F₁ ⟶ W.Q ⋙ F₂
X : C
⊢ τ.app ((objEquiv W).invFun (W.Q.obj X)) = τ.app X
state_after: no goals
Theorem: Filter.mem_iff_ultrafilter
File: Mathlib/Order/Filter/Ultrafilter.lean

tactic: refine ⟨fun hf g hg => hg hf, fun H => by_contra fun hf => ?_⟩
state_before: α : Type u
β : Type v
γ : Type u_1
f : Filter α
s : Set α
a : α
⊢ s ∈ f ↔ ∀ (g : Ultrafilter α), ↑g ≤ f → s ∈ g
state_after: α : Type u
β : Type v
γ : Type u_1
f : Filter α
s : Set α
a : α
H : ∀ (g : Ultrafilter α), ↑g ≤ f → s ∈ g
hf : s ∉ f
⊢ False

tactic: set g : Filter (sᶜ : Set α) := comap (↑) f
state_before: α : Type u
β : Type v
γ : Type u_1
f : Filter α
s : Set α
a : α
H : ∀ (g : Ultrafilter α), ↑g ≤ f → s ∈ g
hf : s ∉ f
⊢ False
state_after: α : Type u
β : Type v
γ : Type u_1
f : Filter α
s : Set α
a : α
H : ∀ (g : Ultrafilter α), ↑g ≤ f → s ∈ g
hf : s ∉ f
g : Filter ↑sᶜ := comap Subtype.val f
⊢ False

tactic: haveI : NeBot g := comap_neBot_iff_compl_range.2 (by simpa [compl_setOf] )
state_before: α : Type u
β : Type v
γ : Type u_1
f : Filter α
s : Set α
a : α
H : ∀ (g : Ultrafilter α), ↑g ≤ f → s ∈ g
hf : s ∉ f
g : Filter ↑sᶜ := comap Subtype.val f
⊢ False
state_after: α : Type u
β : Type v
γ : Type u_1
f : Filter α
s : Set α
a : α
H : ∀ (g : Ultrafilter α), ↑g ≤ f → s ∈ g
hf : s ∉ f
g : Filter ↑sᶜ := comap Subtype.val f
this : g.NeBot
⊢ False

tactic: simpa using H ((of g).map (↑)) (map_le_iff_le_comap.mpr (of_le g))
state_before: α : Type u
β : Type v
γ : Type u_1
f : Filter α
s : Set α
a : α
H : ∀ (g : Ultrafilter α), ↑g ≤ f → s ∈ g
hf : s ∉ f
g : Filter ↑sᶜ := comap Subtype.val f
this : g.NeBot
⊢ False
state_after: no goals

tactic: simpa [compl_setOf]
state_before: α : Type u
β : Type v
γ : Type u_1
f : Filter α
s : Set α
a : α
H : ∀ (g : Ultrafilter α), ↑g ≤ f → s ∈ g
hf : s ∉ f
g : Filter ↑sᶜ := comap Subtype.val f
⊢ (range Subtype.val)ᶜ ∉ f
state_after: no goals
Theorem: Multiset.stronglyMeasurable_prod
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: simpa only [← Pi.multiset_prod_apply] using s.stronglyMeasurable_prod' hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
f g : α → β
M : Type u_5
inst✝² : CommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : ContinuousMul M
m : MeasurableSpace α
s : Multiset (α → M)
hs : ∀ f ∈ s, StronglyMeasurable f
⊢ StronglyMeasurable fun x => (Multiset.map (fun f => f x) s).prod
state_after: no goals
Theorem: YoungDiagram.mk_mem_row_iff
File: Mathlib/Combinatorics/Young/YoungDiagram.lean

tactic: simp [row]
state_before: μ : YoungDiagram
i j : ℕ
⊢ (i, j) ∈ μ.row i ↔ (i, j) ∈ μ
state_after: no goals
Theorem: IsPrimitiveRoot.card_rootsOfUnity'
File: Mathlib/RingTheory/RootsOfUnity/Basic.lean

tactic: let e := h.zmodEquivZPowers
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ : Rˣ
h✝ : IsPrimitiveRoot ζ k
inst✝ : IsDomain R
n : ℕ+
h : IsPrimitiveRoot ζ ↑n
⊢ Fintype.card ↥(rootsOfUnity n R) = ↑n
state_after: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ : Rˣ
h✝ : IsPrimitiveRoot ζ k
inst✝ : IsDomain R
n : ℕ+
h : IsPrimitiveRoot ζ ↑n
e : ZMod ↑n ≃+ Additive ↥(Subgroup.zpowers ζ) := h.zmodEquivZPowers
⊢ Fintype.card ↥(rootsOfUnity n R) = ↑n

tactic: haveI F : Fintype (Subgroup.zpowers ζ) := Fintype.ofEquiv _ e.toEquiv
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ : Rˣ
h✝ : IsPrimitiveRoot ζ k
inst✝ : IsDomain R
n : ℕ+
h : IsPrimitiveRoot ζ ↑n
e : ZMod ↑n ≃+ Additive ↥(Subgroup.zpowers ζ) := h.zmodEquivZPowers
⊢ Fintype.card ↥(rootsOfUnity n R) = ↑n
state_after: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F✝ : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ : Rˣ
h✝ : IsPrimitiveRoot ζ k
inst✝ : IsDomain R
n : ℕ+
h : IsPrimitiveRoot ζ ↑n
e : ZMod ↑n ≃+ Additive ↥(Subgroup.zpowers ζ) := h.zmodEquivZPowers
F : Fintype ↥(Subgroup.zpowers ζ)
⊢ Fintype.card ↥(rootsOfUnity n R) = ↑n

tactic: calc
  Fintype.card (rootsOfUnity n R) = Fintype.card (Subgroup.zpowers ζ) :=
    Fintype.card_congr <| by rw [h.zpowers_eq]
  _ = Fintype.card (ZMod n) := Fintype.card_congr e.toEquiv.symm
  _ = n := ZMod.card n
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F✝ : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ : Rˣ
h✝ : IsPrimitiveRoot ζ k
inst✝ : IsDomain R
n : ℕ+
h : IsPrimitiveRoot ζ ↑n
e : ZMod ↑n ≃+ Additive ↥(Subgroup.zpowers ζ) := h.zmodEquivZPowers
F : Fintype ↥(Subgroup.zpowers ζ)
⊢ Fintype.card ↥(rootsOfUnity n R) = ↑n
state_after: no goals

tactic: rw [h.zpowers_eq]
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F✝ : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k l : ℕ
inst✝¹ : CommRing R
ζ : Rˣ
h✝ : IsPrimitiveRoot ζ k
inst✝ : IsDomain R
n : ℕ+
h : IsPrimitiveRoot ζ ↑n
e : ZMod ↑n ≃+ Additive ↥(Subgroup.zpowers ζ) := h.zmodEquivZPowers
F : Fintype ↥(Subgroup.zpowers ζ)
⊢ ↥(rootsOfUnity n R) ≃ ↥(Subgroup.zpowers ζ)
state_after: no goals
Theorem: MeasurableSpace.generateFrom_singleton_univ
File: Mathlib/MeasureTheory/MeasurableSpace/Defs.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort u_6
s t u : Set α
⊢ ∀ t ∈ {univ}, MeasurableSet t
state_after: no goals
Theorem: List.reduceOption_concat_of_some
File: Mathlib/Data/List/ReduceOption.lean

tactic: simp only [reduceOption_nil, concat_eq_append, reduceOption_append, reduceOption_cons_of_some]
state_before: α : Type u_1
β : Type u_2
l : List (Option α)
x : α
⊢ (l.concat (some x)).reduceOption = l.reduceOption.concat x
state_after: no goals