tasksource/leandojo huggingface dataset:
Theorem: Subgroup.eq_one_of_smul_eq_one
File: Mathlib/GroupTheory/SchurZassenhaus.lean

tactic: rw [← diff_inv, smul_diff', diff_self, one_mul, inv_pow, inv_inv]
state_before: G : Type u_1
inst✝³ : Group G
H : Subgroup G
inst✝² : IsCommutative H
inst✝¹ : FiniteIndex H
α✝¹ β : ↑(leftTransversals ↑H)
inst✝ : Normal H
hH : Nat.coprime (Nat.card { x // x ∈ H }) (index H)
α✝ : QuotientDiff H
h : { x // x ∈ H }
α : ↑(leftTransversals ↑H)
hα : h • Quotient.mk'' α = Quotient.mk'' α
⊢ h ^ index H = diff (MonoidHom.id { x // x ∈ H }) (op ↑h⁻¹ • α) α
Theorem: Asymptotics.isBigO_snd_prod'
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simpa [IsBigO_def, IsBigOWith_def] using isBigO_snd_prod (E' := E') (F' := F')
state_before: α : Type u_3
β : Type ?u.151767
E : Type ?u.151770
F : Type ?u.151773
G : Type ?u.151776
E' : Type u_1
F' : Type u_2
G' : Type ?u.151785
E'' : Type ?u.151788
F'' : Type ?u.151791
G'' : Type ?u.151794
R : Type ?u.151797
R' : Type ?u.151800
𝕜 : Type ?u.151803
𝕜' : Type ?u.151806
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✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
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 α
f' : α → E' × F'
⊢ (fun x => (f' x).snd) =O[l] f'
Theorem: ZNum.zneg_bitm1
File: Mathlib/Data/Num/Lemmas.lean

tactic: cases n <;> rfl
state_before: α : Type ?u.658517
n : ZNum
⊢ -ZNum.bitm1 n = ZNum.bit1 (-n)
Theorem: Sym2.other_invol
File: Mathlib/Data/Sym/Sym2.lean

tactic: classical
rw [other_eq_other'] at hb⊢
convert other_invol' ha hb using 2
apply other_eq_other'
state_before: α : Type u_1
β : Type ?u.114502
γ : Type ?u.114505
a : α
z : Sym2 α
ha : a ∈ z
hb : Mem.other ha ∈ z
⊢ Mem.other hb = a

tactic: rw [other_eq_other'] at hb⊢
state_before: α : Type u_1
β : Type ?u.114502
γ : Type ?u.114505
a : α
z : Sym2 α
ha : a ∈ z
hb : Mem.other ha ∈ z
⊢ Mem.other hb = a

tactic: convert other_invol' ha hb using 2
state_before: α : Type u_1
β : Type ?u.114502
γ : Type ?u.114505
a : α
z : Sym2 α
ha : a ∈ z
hb✝ : Mem.other ha ∈ z
hb : Mem.other' ha ∈ z
⊢ Mem.other' hb✝ = a

tactic: apply other_eq_other'
state_before: case h.e'_2.h.e'_3
α : Type u_1
β : Type ?u.114502
γ : Type ?u.114505
a : α
z : Sym2 α
ha : a ∈ z
hb✝ : Mem.other ha ∈ z
hb : Mem.other' ha ∈ z
⊢ Mem.other ha = Mem.other' ha
Theorem: SimpleGraph.Walk.transfer_self
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: induction p <;> simp [*]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
p : Walk G u v
⊢ Walk.transfer p G (_ : ∀ ⦃e : Sym2 V⦄, e ∈ edges p → e ∈ edgeSet G) = p
Theorem: Cardinal.mk_compl_finset_of_infinite
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: apply mk_compl_of_infinite
state_before: α : Type u_1
inst✝ : Infinite α
s : Finset α
⊢ (#↑(↑sᶜ)) = (#α)

tactic: exact (finset_card_lt_aleph0 s).trans_le (aleph0_le_mk α)
state_before: case h2
α : Type u_1
inst✝ : Infinite α
s : Finset α
⊢ (#↑↑s) < (#α)
Theorem: IntermediateField.iInf_toSubalgebra
File: Mathlib/FieldTheory/Adjoin.lean

tactic: simp [iInf]
state_before: F : Type u_2
inst✝² : Field F
E : Type u_3
inst✝¹ : Field E
inst✝ : Algebra F E
ι : Sort u_1
S : ι → IntermediateField F E
⊢ ↑(iInf S).toSubalgebra = ↑(⨅ (i : ι), (S i).toSubalgebra)
Theorem: norm_multiset_prod_le
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: rw [← Multiplicative.ofAdd_le, ofAdd_multiset_prod, Multiset.map_map]
state_before: 𝓕 : Type ?u.694205
𝕜 : Type ?u.694208
α : Type ?u.694211
ι : Type ?u.694214
κ : Type ?u.694217
E : Type u_1
F : Type ?u.694223
G : Type ?u.694226
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
m : Multiset E
⊢ ‖Multiset.prod m‖ ≤ Multiset.sum (Multiset.map (fun x => ‖x‖) m)

tactic: refine' Multiset.le_prod_of_submultiplicative (Multiplicative.ofAdd ∘ norm) _ (fun x y => _) _
state_before: 𝓕 : Type ?u.694205
𝕜 : Type ?u.694208
α : Type ?u.694211
ι : Type ?u.694214
κ : Type ?u.694217
E : Type u_1
F : Type ?u.694223
G : Type ?u.694226
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
m : Multiset E
⊢ ↑Multiplicative.ofAdd ‖Multiset.prod m‖ ≤ Multiset.prod (Multiset.map (↑Multiplicative.ofAdd ∘ fun x => ‖x‖) m)

tactic: simp only [comp_apply, norm_one', ofAdd_zero]
state_before: case refine'_1
𝓕 : Type ?u.694205
𝕜 : Type ?u.694208
α : Type ?u.694211
ι : Type ?u.694214
κ : Type ?u.694217
E : Type u_1
F : Type ?u.694223
G : Type ?u.694226
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
m : Multiset E
⊢ (↑Multiplicative.ofAdd ∘ norm) 1 = 1

tactic: exact norm_mul_le' x y
state_before: case refine'_2
𝓕 : Type ?u.694205
𝕜 : Type ?u.694208
α : Type ?u.694211
ι : Type ?u.694214
κ : Type ?u.694217
E : Type u_1
F : Type ?u.694223
G : Type ?u.694226
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
m : Multiset E
x y : E
⊢ (↑Multiplicative.ofAdd ∘ norm) (x * y) ≤ (↑Multiplicative.ofAdd ∘ norm) x * (↑Multiplicative.ofAdd ∘ norm) y
Theorem: support_comp_inv_smul
File: Mathlib/Data/Set/Pointwise/Support.lean

tactic: ext x
state_before: α : Type u_3
β : Type u_2
γ : Type u_1
inst✝² : Group α
inst✝¹ : MulAction α β
inst✝ : Zero γ
c : α
f : β → γ
⊢ (support fun x => f (c⁻¹ • x)) = c • support f

tactic: simp only [mem_smul_set_iff_inv_smul_mem, mem_support]
state_before: case h
α : Type u_3
β : Type u_2
γ : Type u_1
inst✝² : Group α
inst✝¹ : MulAction α β
inst✝ : Zero γ
c : α
f : β → γ
x : β
⊢ (x ∈ support fun x => f (c⁻¹ • x)) ↔ x ∈ c • support f
Theorem: CategoryTheory.MorphismProperty.StableUnderComposition.monomorphisms
File: Mathlib/CategoryTheory/MorphismProperty.lean

tactic: rw [monomorphisms.iff] at hf hg⊢
state_before: C : Type u
inst✝¹ : Category C
D : Type ?u.63348
inst✝ : Category D
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hf : MorphismProperty.monomorphisms C f
hg : MorphismProperty.monomorphisms C g
⊢ MorphismProperty.monomorphisms C (f ≫ g)

tactic: haveI := hf
state_before: C : Type u
inst✝¹ : Category C
D : Type ?u.63348
inst✝ : Category D
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hf : Mono f
hg : Mono g
⊢ Mono (f ≫ g)

tactic: haveI := hg
state_before: C : Type u
inst✝¹ : Category C
D : Type ?u.63348
inst✝ : Category D
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hf : Mono f
hg : Mono g
this : Mono f
⊢ Mono (f ≫ g)

tactic: apply mono_comp
state_before: C : Type u
inst✝¹ : Category C
D : Type ?u.63348
inst✝ : Category D
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hf : Mono f
hg : Mono g
this✝ : Mono f
this : Mono g
⊢ Mono (f ≫ g)
Theorem: CategoryTheory.IsIso.inv_eq_of_inv_hom_id
File: Mathlib/CategoryTheory/Iso.lean

tactic: apply (cancel_mono f).mp
state_before: C : Type u
inst✝¹ : Category C
X Y Z : C
f : X ⟶ Y
inst✝ : IsIso f
g : Y ⟶ X
inv_hom_id : g ≫ f = 𝟙 Y
⊢ inv f = g

tactic: simp [inv_hom_id]
state_before: C : Type u
inst✝¹ : Category C
X Y Z : C
f : X ⟶ Y
inst✝ : IsIso f
g : Y ⟶ X
inv_hom_id : g ≫ f = 𝟙 Y
⊢ inv f ≫ f = g ≫ f
Theorem: MeasureTheory.Lp.norm_le_mul_norm_of_ae_le_mul
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: cases' le_or_lt 0 c with hc hc
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.421336
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : ℝ
f : { x // x ∈ Lp E p }
g : { x // x ∈ Lp F p }
h : ∀ᵐ (x : α) ∂μ, ‖↑↑f x‖ ≤ c * ‖↑↑g x‖
⊢ ‖f‖ ≤ c * ‖g‖

tactic: lift c to ℝ≥0 using hc
state_before: case inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.421336
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : ℝ
f : { x // x ∈ Lp E p }
g : { x // x ∈ Lp F p }
h : ∀ᵐ (x : α) ∂μ, ‖↑↑f x‖ ≤ c * ‖↑↑g x‖
hc : 0 ≤ c
⊢ ‖f‖ ≤ c * ‖g‖

tactic: exact NNReal.coe_le_coe.mpr (nnnorm_le_mul_nnnorm_of_ae_le_mul h)
state_before: case inl.intro
α : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.421336
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : { x // x ∈ Lp E p }
g : { x // x ∈ Lp F p }
c : ℝ≥0
h : ∀ᵐ (x : α) ∂μ, ‖↑↑f x‖ ≤ ↑c * ‖↑↑g x‖
⊢ ‖f‖ ≤ ↑c * ‖g‖

tactic: simp only [norm_def]
state_before: case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.421336
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : ℝ
f : { x // x ∈ Lp E p }
g : { x // x ∈ Lp F p }
h : ∀ᵐ (x : α) ∂μ, ‖↑↑f x‖ ≤ c * ‖↑↑g x‖
hc : c < 0
⊢ ‖f‖ ≤ c * ‖g‖

tactic: have := snorm_eq_zero_and_zero_of_ae_le_mul_neg h hc p
state_before: case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.421336
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : ℝ
f : { x // x ∈ Lp E p }
g : { x // x ∈ Lp F p }
h : ∀ᵐ (x : α) ∂μ, ‖↑↑f x‖ ≤ c * ‖↑↑g x‖
hc : c < 0
⊢ ENNReal.toReal (snorm (↑↑f) p μ) ≤ c * ENNReal.toReal (snorm (↑↑g) p μ)

tactic: simp [this]
state_before: case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.421336
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : ℝ
f : { x // x ∈ Lp E p }
g : { x // x ∈ Lp F p }
h : ∀ᵐ (x : α) ∂μ, ‖↑↑f x‖ ≤ c * ‖↑↑g x‖
hc : c < 0
this : snorm (fun x => ↑↑f x) p μ = 0 ∧ snorm (fun x => ↑↑g x) p μ = 0
⊢ ENNReal.toReal (snorm (↑↑f) p μ) ≤ c * ENNReal.toReal (snorm (↑↑g) p μ)
Theorem: DirectSum.ofIntCast
File: Mathlib/Algebra/DirectSum/Ring.lean

tactic: rfl
state_before: ι : Type u_1
inst✝³ : DecidableEq ι
A : ι → Type u_2
inst✝² : (i : ι) → AddCommGroup (A i)
inst✝¹ : AddMonoid ι
inst✝ : GRing A
n : ℤ
⊢ ↑(of A 0) ↑n = ↑n
Theorem: Order.pred_iterate_le
File: Mathlib/Order/SuccPred/Basic.lean

tactic: conv_rhs => rw [(by simp only [Function.iterate_id, id.def] : x = (id^[k]) x)]
state_before: α : Type u_1
inst✝¹ : Preorder α
inst✝ : PredOrder α
a b : α
k : ℕ
x : α
⊢ (pred^[k]) x ≤ x

tactic: exact Monotone.iterate_le_of_le pred_mono pred_le k x
state_before: α : Type u_1
inst✝¹ : Preorder α
inst✝ : PredOrder α
a b : α
k : ℕ
x : α
⊢ (pred^[k]) x ≤ (id^[k]) x

tactic: simp only [Function.iterate_id, id.def]
state_before: α : Type u_1
inst✝¹ : Preorder α
inst✝ : PredOrder α
a b : α
k : ℕ
x : α
⊢ x = (id^[k]) x
Theorem: Finset.sum_range_id
File: Mathlib/Algebra/BigOperators/Intervals.lean

tactic: rw [← sum_range_id_mul_two n, Nat.mul_div_cancel _ zero_lt_two]
state_before: α : Type u
β : Type v
γ : Type w
s₂ s₁ s : Finset α
a : α
g f : α → β
inst✝ : CommMonoid β
n : ℕ
⊢ ∑ i in range n, i = n * (n - 1) / 2
Theorem: Equiv.swapCore_swapCore
File: Mathlib/Logic/Equiv/Basic.lean

tactic: unfold swapCore
state_before: α : Sort u_1
inst✝ : DecidableEq α
r a b : α
⊢ swapCore a b (swapCore a b r) = r

tactic: split_ifs with h₁ h₂ h₃ h₄ h₅
state_before: α : Sort u_1
inst✝ : DecidableEq α
r a b : α
⊢ (if (if r = a then b else if r = b then a else r) = a then b
    else if (if r = a then b else if r = b then a else r) = b then a else if r = a then b else if r = b then a else r) =
    r

tactic: subst h₁
state_before: case inl.inl
α : Sort u_1
inst✝ : DecidableEq α
r a b : α
h₁ : r = a
h₂ : b = a
⊢ b = r

tactic: exact h₂
state_before: case inl.inl
α : Sort u_1
inst✝ : DecidableEq α
r b : α
h₂ : b = r
⊢ b = r

tactic: subst h₁
state_before: case inl.inr.inl
α : Sort u_1
inst✝ : DecidableEq α
r a b : α
h₁ : r = a
h₂ : ¬b = a
h₃ : b = b
⊢ a = r

tactic: rfl
state_before: case inl.inr.inl
α : Sort u_1
inst✝ : DecidableEq α
r b : α
h₃ : b = b
h₂ : ¬b = r
⊢ r = r

tactic: cases h₃ rfl
state_before: case inl.inr.inr
α : Sort u_1
inst✝ : DecidableEq α
r a b : α
h₁ : r = a
h₂ : ¬b = a
h₃ : ¬b = b
⊢ b = r

tactic: exact h₄.symm
state_before: case inr.inl.inl
α : Sort u_1
inst✝ : DecidableEq α
r a b : α
h₁ : ¬r = a
h₄ : r = b
h₅ : a = a
⊢ b = r

tactic: cases h₅ rfl
state_before: case inr.inl.inr.inl
α : Sort u_1
inst✝ : DecidableEq α
r a b : α
h₁ : ¬r = a
h₄ : r = b
h₅ : ¬a = a
h✝ : a = b
⊢ a = r

tactic: cases h₅ rfl
state_before: case inr.inl.inr.inr
α : Sort u_1
inst✝ : DecidableEq α
r a b : α
h₁ : ¬r = a
h₄ : r = b
h₅ : ¬a = a
h✝ : ¬a = b
⊢ a = r

tactic: rfl
state_before: case inr.inr
α : Sort u_1
inst✝ : DecidableEq α
r a b : α
h₁ : ¬r = a
h₄ : ¬r = b
⊢ r = r
Theorem: PrimeSpectrum.isClosed_singleton_iff_isMaximal
File: Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean

tactic: refine' (isClosed_iff_zeroLocus _).trans ⟨fun h => _, fun h => _⟩
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
x : PrimeSpectrum R
⊢ IsClosed {x} ↔ Ideal.IsMaximal x.asIdeal

tactic: obtain ⟨s, hs⟩ := h
state_before: case refine'_1
R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
x : PrimeSpectrum R
h : ∃ s, {x} = zeroLocus s
⊢ Ideal.IsMaximal x.asIdeal

tactic: rw [eq_comm, Set.eq_singleton_iff_unique_mem] at hs
state_before: case refine'_1.intro
R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
x : PrimeSpectrum R
s : Set R
hs : {x} = zeroLocus s
⊢ Ideal.IsMaximal x.asIdeal

tactic: refine'
  ⟨⟨x.2.1, fun I hI =>
      Classical.not_not.1
        (mt (Ideal.exists_le_maximal I) <| not_exists.2 fun J => not_and.2 fun hJ hIJ => _)⟩⟩
state_before: case refine'_1.intro
R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
x : PrimeSpectrum R
s : Set R
hs : x ∈ zeroLocus s ∧ ∀ (x_1 : PrimeSpectrum R), x_1 ∈ zeroLocus s → x_1 = x
⊢ Ideal.IsMaximal x.asIdeal

tactic: exact
  ne_of_lt (lt_of_lt_of_le hI hIJ)
    (symm <|
      congr_arg PrimeSpectrum.asIdeal
        (hs.2 ⟨J, hJ.isPrime⟩ fun r hr => hIJ (le_of_lt hI <| hs.1 hr)))
state_before: case refine'_1.intro
R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
x : PrimeSpectrum R
s : Set R
hs : x ∈ zeroLocus s ∧ ∀ (x_1 : PrimeSpectrum R), x_1 ∈ zeroLocus s → x_1 = x
I : Ideal R
hI : x.asIdeal < I
J : Ideal R
hJ : Ideal.IsMaximal J
hIJ : I ≤ J
⊢ False

tactic: refine' ⟨x.asIdeal.1, _⟩
state_before: case refine'_2
R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
x : PrimeSpectrum R
h : Ideal.IsMaximal x.asIdeal
⊢ ∃ s, {x} = zeroLocus s

tactic: rw [eq_comm, Set.eq_singleton_iff_unique_mem]
state_before: case refine'_2
R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
x : PrimeSpectrum R
h : Ideal.IsMaximal x.asIdeal
⊢ {x} = zeroLocus ↑x.asIdeal.toAddSubmonoid

tactic: refine' ⟨fun _ h => h, fun y hy => PrimeSpectrum.ext _ _ (h.eq_of_le y.2.ne_top hy).symm⟩
state_before: case refine'_2
R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
x : PrimeSpectrum R
h : Ideal.IsMaximal x.asIdeal
⊢ x ∈ zeroLocus ↑x.asIdeal.toAddSubmonoid ∧
    ∀ (x_1 : PrimeSpectrum R), x_1 ∈ zeroLocus ↑x.asIdeal.toAddSubmonoid → x_1 = x
Theorem: PartialOrder.ext
File: Mathlib/Order/Basic.lean

tactic: ext x y
state_before: ι : Type ?u.19885
α✝ : Type u
β : Type v
γ : Type w
π : ι → Type ?u.19896
r : α✝ → α✝ → Prop
α : Type u_1
A B : PartialOrder α
H : ∀ (x y : α), x ≤ y ↔ x ≤ y
⊢ A = B

tactic: exact H x y
state_before: case a.a.le.h.h.a
ι : Type ?u.19885
α✝ : Type u
β : Type v
γ : Type w
π : ι → Type ?u.19896
r : α✝ → α✝ → Prop
α : Type u_1
A B : PartialOrder α
H : ∀ (x y : α), x ≤ y ↔ x ≤ y
x y : α
⊢ x ≤ y ↔ x ≤ y
Theorem: Finset.image_preimage_of_bij
File: Mathlib/Data/Finset/Preimage.lean

tactic: simpa using hf.image_eq
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
inst✝ : DecidableEq β
f : α → β
s : Finset β
hf : BijOn f (f ⁻¹' ↑s) ↑s
⊢ ↑(image f (preimage s f (_ : InjOn f (f ⁻¹' ↑s)))) = ↑s
Theorem: Finset.singleton_iff_unique_mem
File: Mathlib/Data/Finset/Basic.lean

tactic: simp only [eq_singleton_iff_unique_mem, ExistsUnique]
state_before: α : Type u_1
β : Type ?u.34389
γ : Type ?u.34392
s✝ : Finset α
a b : α
s : Finset α
⊢ (∃ a, s = {a}) ↔ ∃! a, a ∈ s
Theorem: Matrix.zero_zpow_eq
File: Mathlib/LinearAlgebra/Matrix/ZPow.lean

tactic: split_ifs with h
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
n : ℤ
⊢ 0 ^ n = if n = 0 then 1 else 0

tactic: rw [h, zpow_zero]
state_before: case inl
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
n : ℤ
h : n = 0
⊢ 0 ^ n = 1

tactic: rw [zero_zpow _ h]
state_before: case inr
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
n : ℤ
h : ¬n = 0
⊢ 0 ^ n = 0
Theorem: finprod_set_coe_eq_finprod_mem
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: rw [← finprod_mem_range, Subtype.range_coe]
state_before: α : Type u_1
β : Type ?u.357823
ι : Type ?u.357826
G : Type ?u.357829
M : Type u_2
N : Type ?u.357835
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g : α → M
a b : α
s✝ t s : Set α
⊢ (∏ᶠ (j : ↑s), f ↑j) = ∏ᶠ (i : α) (_ : i ∈ s), f i

tactic: exact Subtype.coe_injective
state_before: α : Type u_1
β : Type ?u.357823
ι : Type ?u.357826
G : Type ?u.357829
M : Type u_2
N : Type ?u.357835
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g : α → M
a b : α
s✝ t s : Set α
⊢ Injective fun j => ↑j
Theorem: finprod_eq_prod_pLift_of_mulSupport_subset
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: rw [Finite.mem_toFinset] at hx
state_before: G : Type ?u.29447
M : Type u_2
N : Type ?u.29453
α : Sort u_1
β : Sort ?u.29459
ι : Sort ?u.29462
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : α → M
s : Finset (PLift α)
hs : mulSupport (f ∘ PLift.down) ⊆ ↑s
x : PLift α
hx : x ∈ Finite.toFinset (_ : Set.Finite (mulSupport (f ∘ PLift.down)))
⊢ x ∈ s

tactic: exact hs hx
state_before: G : Type ?u.29447
M : Type u_2
N : Type ?u.29453
α : Sort u_1
β : Sort ?u.29459
ι : Sort ?u.29462
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : α → M
s : Finset (PLift α)
hs : mulSupport (f ∘ PLift.down) ⊆ ↑s
x : PLift α
hx : x ∈ mulSupport (f ∘ PLift.down)
⊢ x ∈ s
Theorem: WittVector.ghostFun_zero
File: Mathlib/RingTheory/WittVector/Basic.lean

tactic: ghost_fun_tac 0, ![]
state_before: p : ℕ
R : Type u_1
S : Type ?u.636818
T : Type ?u.636821
hp : Fact (Nat.Prime p)
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : CommRing T
α : Type ?u.636836
β : Type ?u.636839
x y : 𝕎 R
⊢ WittVector.ghostFun 0 = 0
Theorem: MeasureTheory.ProbabilityMeasure.eq_of_forall_toMeasure_apply_eq
File: Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean

tactic: apply toMeasure_injective
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ ν : ProbabilityMeasure Ω
h : ∀ (s : Set Ω), MeasurableSet s → ↑↑↑μ s = ↑↑↑ν s
⊢ μ = ν

tactic: ext1 s s_mble
state_before: case a
Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ ν : ProbabilityMeasure Ω
h : ∀ (s : Set Ω), MeasurableSet s → ↑↑↑μ s = ↑↑↑ν s
⊢ ↑μ = ↑ν

tactic: exact h s s_mble
state_before: case a.h
Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ ν : ProbabilityMeasure Ω
h : ∀ (s : Set Ω), MeasurableSet s → ↑↑↑μ s = ↑↑↑ν s
s : Set Ω
s_mble : MeasurableSet s
⊢ ↑↑↑μ s = ↑↑↑ν s
Theorem: CategoryTheory.kernel.ι_unop
File: Mathlib/CategoryTheory/Abelian/Opposite.lean

tactic: simp
state_before: C : Type u_2
inst✝¹ : Category C
inst✝ : Abelian C
X Y : C
f : X ⟶ Y
A B : Cᵒᵖ
g : A ⟶ B
⊢ (kernel.ι g.unop).op = eqToHom (_ : B.unop.op = B) ≫ cokernel.π g ≫ (kernelUnopOp g).inv
Theorem: pow_mem
File: Mathlib/GroupTheory/Submonoid/Basic.lean

tactic: rw [pow_zero]
state_before: M✝ : Type ?u.2295
N : Type ?u.2298
A✝ : Type ?u.2301
inst✝⁴ : MulOneClass M✝
s : Set M✝
inst✝³ : AddZeroClass A✝
t : Set A✝
M : Type u_1
A : Type u_2
inst✝² : Monoid M
inst✝¹ : SetLike A M
inst✝ : SubmonoidClass A M
S : A
x : M
hx : x ∈ S
⊢ x ^ 0 ∈ S

tactic: exact OneMemClass.one_mem S
state_before: M✝ : Type ?u.2295
N : Type ?u.2298
A✝ : Type ?u.2301
inst✝⁴ : MulOneClass M✝
s : Set M✝
inst✝³ : AddZeroClass A✝
t : Set A✝
M : Type u_1
A : Type u_2
inst✝² : Monoid M
inst✝¹ : SetLike A M
inst✝ : SubmonoidClass A M
S : A
x : M
hx : x ∈ S
⊢ 1 ∈ S

tactic: rw [pow_succ]
state_before: M✝ : Type ?u.2295
N : Type ?u.2298
A✝ : Type ?u.2301
inst✝⁴ : MulOneClass M✝
s : Set M✝
inst✝³ : AddZeroClass A✝
t : Set A✝
M : Type u_1
A : Type u_2
inst✝² : Monoid M
inst✝¹ : SetLike A M
inst✝ : SubmonoidClass A M
S : A
x : M
hx : x ∈ S
n : ℕ
⊢ x ^ (n + 1) ∈ S

tactic: exact mul_mem hx (pow_mem hx n)
state_before: M✝ : Type ?u.2295
N : Type ?u.2298
A✝ : Type ?u.2301
inst✝⁴ : MulOneClass M✝
s : Set M✝
inst✝³ : AddZeroClass A✝
t : Set A✝
M : Type u_1
A : Type u_2
inst✝² : Monoid M
inst✝¹ : SetLike A M
inst✝ : SubmonoidClass A M
S : A
x : M
hx : x ∈ S
n : ℕ
⊢ x * x ^ n ∈ S
Theorem: Finset.Ico_subset_Ico
File: Mathlib/Data/Finset/LocallyFinite.lean

tactic: simpa [← coe_subset] using Set.Ico_subset_Ico ha hb
state_before: ι : Type ?u.9464
α : Type u_1
inst✝¹ : Preorder α
inst✝ : LocallyFiniteOrder α
a a₁ a₂ b b₁ b₂ c x : α
ha : a₂ ≤ a₁
hb : b₁ ≤ b₂
⊢ Ico a₁ b₁ ⊆ Ico a₂ b₂
Theorem: List.concat_append
File: Mathlib/Data/List/Basic.lean

tactic: simp
state_before: ι : Type ?u.24989
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁✝ l₂✝ : List α
a : α
l₁ l₂ : List α
⊢ concat l₁ a ++ l₂ = l₁ ++ a :: l₂
Theorem: IsLocalization.algEquiv_mk'
File: Mathlib/RingTheory/Localization/Basic.lean

tactic: simp
state_before: R : Type u_1
inst✝⁷ : CommSemiring R
M : Submonoid R
S : Type u_3
inst✝⁶ : CommSemiring S
inst✝⁵ : Algebra R S
P : Type ?u.2533012
inst✝⁴ : CommSemiring P
inst✝³ : IsLocalization M S
g : R →+* P
hg : ∀ (y : { x // x ∈ M }), IsUnit (↑g ↑y)
Q : Type u_2
inst✝² : CommSemiring Q
inst✝¹ : Algebra R Q
inst✝ : IsLocalization M Q
x : R
y : { x // x ∈ M }
⊢ ↑(algEquiv M S Q) (mk' S x y) = mk' Q x y
Theorem: PowerSeries.coeff_inv
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: rw [inv_eq_inv_aux, coeff_inv_aux n (constantCoeff k φ)⁻¹ φ]
state_before: R : Type ?u.3760552
k : Type u_1
inst✝ : Field k
n : ℕ
φ : PowerSeries k
⊢ ↑(coeff k n) φ⁻¹ =
    if n = 0 then (↑(constantCoeff k) φ)⁻¹
    else
      -(↑(constantCoeff k) φ)⁻¹ *
        ∑ x in Finset.Nat.antidiagonal n, if x.snd < n then ↑(coeff k x.fst) φ * ↑(coeff k x.snd) φ⁻¹ else 0
Theorem: ENNReal.ofReal_eq_ofReal_iff
File: Mathlib/Data/Real/ENNReal.lean

tactic: rw [ENNReal.ofReal, ENNReal.ofReal, coe_eq_coe, Real.toNNReal_eq_toNNReal_iff hp hq]
state_before: α : Type ?u.806647
β : Type ?u.806650
a b c d : ℝ≥0∞
r p✝ q✝ : ℝ≥0
p q : ℝ
hp : 0 ≤ p
hq : 0 ≤ q
⊢ ENNReal.ofReal p = ENNReal.ofReal q ↔ p = q
Theorem: NormedRing.inverse_add_norm_diff_nth_order
File: Mathlib/Analysis/NormedSpace/Units.lean

tactic: refine EventuallyEq.trans_isBigO (.sub (inverse_add_nth_order x n) (.refl _ _)) ?_
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : Rˣ
n : ℕ
⊢ (fun t => inverse (↑x + t) - (∑ i in range n, (-↑x⁻¹ * t) ^ i) * ↑x⁻¹) =O[𝓝 0] fun t => ‖t‖ ^ n

tactic: simp only [add_sub_cancel']
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : Rˣ
n : ℕ
⊢ (fun x_1 =>
      (∑ i in range n, (-↑x⁻¹ * x_1) ^ i) * ↑x⁻¹ + (-↑x⁻¹ * x_1) ^ n * inverse (↑x + x_1) -
        (∑ i in range n, (-↑x⁻¹ * x_1) ^ i) * ↑x⁻¹) =O[𝓝 0]
    fun t => ‖t‖ ^ n

tactic: refine ((isBigO_refl _ _).norm_right.mul (inverse_add_norm x)).trans ?_
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : Rˣ
n : ℕ
⊢ (fun x_1 => (-↑x⁻¹ * x_1) ^ n * inverse (↑x + x_1)) =O[𝓝 0] fun t => ‖t‖ ^ n

tactic: simp only [mul_one, isBigO_norm_left]
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : Rˣ
n : ℕ
⊢ (fun x_1 => ‖(-↑x⁻¹ * x_1) ^ n‖ * 1) =O[𝓝 0] fun t => ‖t‖ ^ n

tactic: exact ((isBigO_refl _ _).norm_right.const_mul_left _).pow _
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : Rˣ
n : ℕ
⊢ (fun x_1 => (-↑x⁻¹ * x_1) ^ n) =O[𝓝 0] fun t => ‖t‖ ^ n
Theorem: isPeriodicPt_mul_iff_pow_eq_one
File: Mathlib/GroupTheory/OrderOfElement.lean

tactic: rw [IsPeriodicPt, IsFixedPt, mul_left_iterate]
state_before: G : Type u
A : Type v
x✝ y : G
a b : A
n m : ℕ
inst✝¹ : Monoid G
inst✝ : AddMonoid A
x : G
⊢ IsPeriodicPt ((fun x x_1 => x * x_1) x) n 1 ↔ x ^ n = 1

tactic: simp only [mul_one]
state_before: G : Type u
A : Type v
x✝ y : G
a b : A
n m : ℕ
inst✝¹ : Monoid G
inst✝ : AddMonoid A
x : G
⊢ (fun x_1 => x ^ n * x_1) 1 = 1 ↔ x ^ n = 1