ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: CategoryTheory.Abelian.FunctorCategory.coimageObjIso_hom
File: Mathlib/CategoryTheory/Abelian/FunctorCategory.lean

Proof steps:
state_before: C : Type u
inst✝² : Category.{v, u} C
D : Type w
inst✝¹ : Category.{z, w} D
inst✝ : Abelian D
F G : C ⥤ D
α : F ⟶ G
X : C
⊢ ((evaluation C D).obj X).map (kernel.ι α) ≫ (Iso.refl (((evaluation C D).obj X).obj F)).hom =
    (PreservesKernel.iso ((evaluation C D).obj X) α).hom ≫ kernel.ι (α.app X)
state_after: C : Type u
inst✝² : Category.{v, u} C
D : Type w
inst✝¹ : Category.{z, w} D
inst✝ : Abelian D
F G : C ⥤ D
α : F ⟶ G
X : C
⊢ (kernel.ι α).app X ≫ 𝟙 (F.obj X) = (PreservesKernel.iso ((evaluation C D).obj X) α).hom ≫ kernel.ι (α.app X)
tactic: dsimp
state_before: C : Type u
inst✝² : Category.{v, u} C
D : Type w
inst✝¹ : Category.{z, w} D
inst✝ : Abelian D
F G : C ⥤ D
α : F ⟶ G
X : C
⊢ (kernel.ι α).app X ≫ 𝟙 (F.obj X) = (PreservesKernel.iso ((evaluation C D).obj X) α).hom ≫ kernel.ι (α.app X)
state_after: C : Type u
inst✝² : Category.{v, u} C
D : Type w
inst✝¹ : Category.{z, w} D
inst✝ : Abelian D
F G : C ⥤ D
α : F ⟶ G
X : C
⊢ (kernel.ι α).app X = kernelComparison α ((evaluation C D).obj X) ≫ kernel.ι (α.app X)
tactic: simp only [Category.comp_id, PreservesKernel.iso_hom]
state_before: C : Type u
inst✝² : Category.{v, u} C
D : Type w
inst✝¹ : Category.{z, w} D
inst✝ : Abelian D
F G : C ⥤ D
α : F ⟶ G
X : C
⊢ (kernel.ι α).app X = kernelComparison α ((evaluation C D).obj X) ≫ kernel.ι (α.app X)
state_after: no goals
tactic: exact (kernelComparison_comp_ι _ ((evaluation C D).obj X)).symm
Theorem: AffineSubspace.vsub_right_mem_direction_iff_mem
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

Proof steps:
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
p : P
hp : p ∈ s
p2 : P
⊢ p2 -ᵥ p ∈ s.direction ↔ p2 ∈ s
state_after: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
p : P
hp : p ∈ s
p2 : P
⊢ (∃ p2_1 ∈ s, p2 -ᵥ p = p2_1 -ᵥ p) ↔ p2 ∈ s
tactic: rw [mem_direction_iff_eq_vsub_right hp]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
p : P
hp : p ∈ s
p2 : P
⊢ (∃ p2_1 ∈ s, p2 -ᵥ p = p2_1 -ᵥ p) ↔ p2 ∈ s
state_after: no goals
tactic: simp
Theorem: mul_mem_ball_mul_iff
File: Mathlib/Analysis/Normed/Group/Basic.lean

Proof steps:
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
c : E
⊢ a * c ∈ ball (b * c) r ↔ a ∈ ball b r
state_after: no goals
tactic: simp only [mem_ball, dist_eq_norm_div, mul_div_mul_right_eq_div]
Theorem: Equiv.subtypeSubtypeEquivSubtypeExists_symm_apply_coe_coe
File: Mathlib/Logic/Equiv/Basic.lean

Proof steps:
state_before: α : Sort ?u.60325
p : α → Prop
q : Subtype p → Prop
a : Subtype q
⊢ q ⟨↑↑a, ⋯⟩
state_after: case mk.mk
α : Sort ?u.60325
p : α → Prop
q : Subtype p → Prop
a : α
hap : p a
haq : q ⟨a, hap⟩
⊢ q ⟨↑↑⟨⟨a, hap⟩, haq⟩, ⋯⟩
tactic: rcases a with ⟨⟨a, hap⟩, haq⟩
state_before: case mk.mk
α : Sort ?u.60325
p : α → Prop
q : Subtype p → Prop
a : α
hap : p a
haq : q ⟨a, hap⟩
⊢ q ⟨↑↑⟨⟨a, hap⟩, haq⟩, ⋯⟩
state_after: no goals
tactic: exact haq
Theorem: ENNReal.ofReal_le_ofReal
File: Mathlib/Data/ENNReal/Real.lean

Proof steps:
state_before: a b c d : ℝ≥0∞
r p✝ q✝ : ℝ≥0
p q : ℝ
h : p ≤ q
⊢ ENNReal.ofReal p ≤ ENNReal.ofReal q
state_after: no goals
tactic: simp [ENNReal.ofReal, Real.toNNReal_le_toNNReal h]
Theorem: groupCohomology.isTwoCoboundary_of_twoCoboundaries
File: Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean

Proof steps:
state_before: k✝ G✝ : Type u
inst✝⁷ : CommRing k✝
inst✝⁶ : Group G✝
A✝ : Rep k✝ G✝
k G A : Type u
inst✝⁵ : CommRing k
inst✝⁴ : Group G
inst✝³ : AddCommGroup A
inst✝² : Module k A
inst✝¹ : DistribMulAction G A
inst✝ : SMulCommClass G k A
f : ↥(twoCoboundaries (Rep.ofDistribMulAction k G A))
⊢ IsTwoCoboundary ↑↑f
state_after: case intro
k✝ G✝ : Type u
inst✝⁷ : CommRing k✝
inst✝⁶ : Group G✝
A✝ : Rep k✝ G✝
k G A : Type u
inst✝⁵ : CommRing k
inst✝⁴ : Group G
inst✝³ : AddCommGroup A
inst✝² : Module k A
inst✝¹ : DistribMulAction G A
inst✝ : SMulCommClass G k A
f : ↥(twoCoboundaries (Rep.ofDistribMulAction k G A))
x : G → CoeSort.coe (Rep.ofDistribMulAction k G A)
hx : (dOne (Rep.ofDistribMulAction k G A)) x = (twoCocycles (Rep.ofDistribMulAction k G A)).subtype ↑f
⊢ IsTwoCoboundary ↑↑f
tactic: rcases mem_range_of_mem_twoCoboundaries f.2 with ⟨x, hx⟩
state_before: case intro
k✝ G✝ : Type u
inst✝⁷ : CommRing k✝
inst✝⁶ : Group G✝
A✝ : Rep k✝ G✝
k G A : Type u
inst✝⁵ : CommRing k
inst✝⁴ : Group G
inst✝³ : AddCommGroup A
inst✝² : Module k A
inst✝¹ : DistribMulAction G A
inst✝ : SMulCommClass G k A
f : ↥(twoCoboundaries (Rep.ofDistribMulAction k G A))
x : G → CoeSort.coe (Rep.ofDistribMulAction k G A)
hx : (dOne (Rep.ofDistribMulAction k G A)) x = (twoCocycles (Rep.ofDistribMulAction k G A)).subtype ↑f
⊢ IsTwoCoboundary ↑↑f
state_after: no goals
tactic: exact ⟨x, fun g h => Function.funext_iff.1 hx (g, h)⟩
Theorem: MvPFunctor.wDest'_wMk'
File: Mathlib/Data/PFunctor/Multivariate/W.lean

Proof steps:
state_before: n : ℕ
P : MvPFunctor.{u} (n + 1)
α : TypeVec.{u} n
x : ↑P (α ::: P.W α)
⊢ P.wDest' (P.wMk' x) = x
state_after: case mk
n : ℕ
P : MvPFunctor.{u} (n + 1)
α : TypeVec.{u} n
a : P.A
f : P.B a ⟹ α ::: P.W α
⊢ P.wDest' (P.wMk' ⟨a, f⟩) = ⟨a, f⟩
tactic: cases' x with a f
state_before: case mk
n : ℕ
P : MvPFunctor.{u} (n + 1)
α : TypeVec.{u} n
a : P.A
f : P.B a ⟹ α ::: P.W α
⊢ P.wDest' (P.wMk' ⟨a, f⟩) = ⟨a, f⟩
state_after: no goals
tactic: rw [wMk', wDest'_wMk, split_dropFun_lastFun]
Theorem: CauSeq.limZero_congr
File: Mathlib/Algebra/Order/CauSeq/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝² : LinearOrderedField α
inst✝¹ : Ring β
abv : β → α
inst✝ : IsAbsoluteValue abv
f g : CauSeq β abv
h : f ≈ g
l : f.LimZero
⊢ g.LimZero
state_after: no goals
tactic: simpa using add_limZero (Setoid.symm h) l
state_before: α : Type u_1
β : Type u_2
inst✝² : LinearOrderedField α
inst✝¹ : Ring β
abv : β → α
inst✝ : IsAbsoluteValue abv
f g : CauSeq β abv
h : f ≈ g
l : g.LimZero
⊢ f.LimZero
state_after: no goals
tactic: simpa using add_limZero h l
Theorem: PMF.support_uniformOfFintype
File: Mathlib/Probability/Distributions/Uniform.lean

Proof steps:
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
inst✝³ : Fintype α✝
inst✝² : Nonempty α✝
α : Type u_4
inst✝¹ : Fintype α
inst✝ : Nonempty α
x : α
⊢ x ∈ (uniformOfFintype α).support ↔ x ∈ ⊤
state_after: no goals
tactic: simp [mem_support_iff]
Theorem: OrderMonoidWithZeroHom.cancel_right
File: Mathlib/Algebra/Order/Hom/Monoid.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
inst✝⁷ : Preorder α
inst✝⁶ : Preorder β
inst✝⁵ : Preorder γ
inst✝⁴ : Preorder δ
inst✝³ : MulZeroOneClass α
inst✝² : MulZeroOneClass β
inst✝¹ : MulZeroOneClass γ
inst✝ : MulZeroOneClass δ
f✝ g : α →*₀o β
g₁ g₂ : β →*₀o γ
f : α →*₀o β
hf : Surjective ⇑f
x✝ : g₁ = g₂
⊢ g₁.comp f = g₂.comp f
state_after: no goals
tactic: congr
Theorem: Finset.toList_eq_singleton_iff
File: Mathlib/Data/Finset/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a : α
s : Finset α
⊢ s.toList = [a] ↔ s = {a}
state_after: no goals
tactic: rw [toList, Multiset.toList_eq_singleton_iff, val_eq_singleton_iff]
Theorem: monovaryOn_iff_forall_smul_nonneg
File: Mathlib/Algebra/Order/Monovary.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝³ : LinearOrderedRing α
inst✝² : LinearOrderedAddCommGroup β
inst✝¹ : Module α β
inst✝ : OrderedSMul α β
f : ι → α
g : ι → β
s : Set ι
a a₁ a₂ : α
b b₁ b₂ : β
⊢ MonovaryOn f g s ↔ ∀ ⦃i : ι⦄, i ∈ s → ∀ ⦃j : ι⦄, j ∈ s → 0 ≤ (f j - f i) • (g j - g i)
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝³ : LinearOrderedRing α
inst✝² : LinearOrderedAddCommGroup β
inst✝¹ : Module α β
inst✝ : OrderedSMul α β
f : ι → α
g : ι → β
s : Set ι
a a₁ a₂ : α
b b₁ b₂ : β
⊢ MonovaryOn f g s ↔ (∀ x ∈ s, ∀ x_2 ∈ s, f x < f x_2 → g x ≤ g x_2) ∧ ∀ x ∈ s, ∀ x_2 ∈ s, g x < g x_2 → f x ≤ f x_2
tactic: simp_rw [smul_nonneg_iff_pos_imp_nonneg, sub_pos, sub_nonneg, forall_and]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝³ : LinearOrderedRing α
inst✝² : LinearOrderedAddCommGroup β
inst✝¹ : Module α β
inst✝ : OrderedSMul α β
f : ι → α
g : ι → β
s : Set ι
a a₁ a₂ : α
b b₁ b₂ : β
⊢ MonovaryOn f g s ↔ (∀ x ∈ s, ∀ x_2 ∈ s, f x < f x_2 → g x ≤ g x_2) ∧ ∀ x ∈ s, ∀ x_2 ∈ s, g x < g x_2 → f x ≤ f x_2
state_after: no goals
tactic: exact (and_iff_right_of_imp MonovaryOn.symm).symm
Theorem: csInf_inv
File: Mathlib/Algebra/Order/Pointwise.lean

Proof steps:
state_before: α : Type u_1
inst✝³ : ConditionallyCompleteLattice α
inst✝² : Group α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
s t : Set α
hs₀ : s.Nonempty
hs₁ : BddAbove s
⊢ sInf s⁻¹ = (sSup s)⁻¹
state_after: α : Type u_1
inst✝³ : ConditionallyCompleteLattice α
inst✝² : Group α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
s t : Set α
hs₀ : s.Nonempty
hs₁ : BddAbove s
⊢ sInf (Inv.inv '' s) = (sSup s)⁻¹
tactic: rw [← image_inv]
state_before: α : Type u_1
inst✝³ : ConditionallyCompleteLattice α
inst✝² : Group α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
s t : Set α
hs₀ : s.Nonempty
hs₁ : BddAbove s
⊢ sInf (Inv.inv '' s) = (sSup s)⁻¹
state_after: no goals
tactic: exact ((OrderIso.inv α).map_csSup' hs₀ hs₁).symm
Theorem: Submodule.mul_induction_on
File: Mathlib/Algebra/Algebra/Operations.lean

Proof steps:
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M N P Q : Submodule R A
m n : A
C : A → Prop
r : A
hr : r ∈ M * N
hm : ∀ m ∈ M, ∀ n ∈ N, C (m * n)
ha : ∀ (x y : A), C x → C y → C (x + y)
⊢ C r
state_after: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M N P Q : Submodule R A
m n : A
C : A → Prop
r : A
hr : r ∈ M.toAddSubmonoid * N.toAddSubmonoid
hm : ∀ m ∈ M, ∀ n ∈ N, C (m * n)
ha : ∀ (x y : A), C x → C y → C (x + y)
⊢ C r
tactic: rw [← mem_toAddSubmonoid, mul_toAddSubmonoid] at hr
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M N P Q : Submodule R A
m n : A
C : A → Prop
r : A
hr : r ∈ M.toAddSubmonoid * N.toAddSubmonoid
hm : ∀ m ∈ M, ∀ n ∈ N, C (m * n)
ha : ∀ (x y : A), C x → C y → C (x + y)
⊢ C r
state_after: no goals
tactic: exact AddSubmonoid.mul_induction_on hr hm ha
Theorem: Equiv.Perm.card_cycleType_eq_one
File: Mathlib/GroupTheory/Perm/Cycle/Type.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
⊢ card σ.cycleType = 1 ↔ σ.IsCycle
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
⊢ (∃ a, σ.cycleType = {a}) ↔ σ.IsCycle
tactic: rw [card_eq_one]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
⊢ (∃ a, σ.cycleType = {a}) ↔ σ.IsCycle
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
⊢ (∃ a a_1, (σ.IsCycle ∧ σ = a_1) ∧ (Finset.card ∘ support) a_1 = a) ↔ σ.IsCycle
tactic: simp_rw [cycleType_def, Multiset.map_eq_singleton, ← Finset.singleton_val, Finset.val_inj,
    cycleFactorsFinset_eq_singleton_iff]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
⊢ (∃ a a_1, (σ.IsCycle ∧ σ = a_1) ∧ (Finset.card ∘ support) a_1 = a) ↔ σ.IsCycle
state_after: case mp
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
⊢ (∃ a a_1, (σ.IsCycle ∧ σ = a_1) ∧ (Finset.card ∘ support) a_1 = a) → σ.IsCycle

case mpr
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
⊢ σ.IsCycle → ∃ a a_1, (σ.IsCycle ∧ σ = a_1) ∧ (Finset.card ∘ support) a_1 = a
tactic: constructor
Theorem: Seminorm.continuousAt_zero'
File: Mathlib/Analysis/Seminorm.lean

Proof steps:
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r : ℝ
hp : p.closedBall 0 r ∈ 𝓝 0
⊢ ContinuousAt (⇑p) 0
state_after: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r : ℝ
hp : p.closedBall 0 r ∈ 𝓝 0
ε : ℝ
hε : ε > 0
⊢ p.closedBall 0 ε ∈ 𝓝 0
tactic: refine continuousAt_zero_of_forall' fun ε hε ↦ ?_
state_before: case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r : ℝ
hp : p.closedBall 0 r ∈ 𝓝 0
ε : ℝ
hε : ε > 0
k : 𝕜
hk₀ : 0 < ‖k‖
hk : ‖k‖ * r < ε
⊢ p.closedBall 0 ε ∈ 𝓝 0
state_after: case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r ε : ℝ
hε : ε > 0
k : 𝕜
hp : p.closedBall 0 (‖k‖ * r) ∈ 𝓝 0
hk₀ : 0 < ‖k‖
hk : ‖k‖ * r < ε
⊢ p.closedBall 0 ε ∈ 𝓝 0
tactic: rw [← set_smul_mem_nhds_zero_iff (norm_pos_iff.1 hk₀), smul_closedBall_zero hk₀] at hp
state_before: case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r ε : ℝ
hε : ε > 0
k : 𝕜
hp : p.closedBall 0 (‖k‖ * r) ∈ 𝓝 0
hk₀ : 0 < ‖k‖
hk : ‖k‖ * r < ε
⊢ p.closedBall 0 ε ∈ 𝓝 0
state_after: no goals
tactic: exact mem_of_superset hp <| p.closedBall_mono hk.le
Theorem: padicNorm.mul
File: Mathlib/NumberTheory/Padics/PadicNorm.lean

Proof steps:
state_before: p : ℕ
hp : Fact (Nat.Prime p)
q r : ℚ
hq : q = 0
⊢ padicNorm p (q * r) = padicNorm p q * padicNorm p r
state_after: no goals
tactic: simp [hq]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
q r : ℚ
hq : ¬q = 0
hr : r = 0
⊢ padicNorm p (q * r) = padicNorm p q * padicNorm p r
state_after: no goals
tactic: simp [hr]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
q r : ℚ
hq : ¬q = 0
hr : ¬r = 0
⊢ padicNorm p (q * r) = padicNorm p q * padicNorm p r
state_after: p : ℕ
hp : Fact (Nat.Prime p)
q r : ℚ
hq : ¬q = 0
hr : ¬r = 0
this : ↑p ≠ 0
⊢ padicNorm p (q * r) = padicNorm p q * padicNorm p r
tactic: have : (p : ℚ) ≠ 0 := by simp [hp.1.ne_zero]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
q r : ℚ
hq : ¬q = 0
hr : ¬r = 0
this : ↑p ≠ 0
⊢ padicNorm p (q * r) = padicNorm p q * padicNorm p r
state_after: no goals
tactic: simp [padicNorm, *, padicValRat.mul, zpow_add₀ this, mul_comm]
Theorem: ZMod.valMinAbs_neg_of_ne_half
File: Mathlib/Data/ZMod/Basic.lean

Proof steps:
state_before: m n✝ n : ℕ
a : ZMod n
ha : 2 * a.val ≠ n
⊢ (-a).valMinAbs = -a.valMinAbs
state_after: case inl
m n✝ n : ℕ
a : ZMod n
ha : 2 * a.val ≠ n
h : n = 0
⊢ (-a).valMinAbs = -a.valMinAbs

case inr
m n✝ n : ℕ
a : ZMod n
ha : 2 * a.val ≠ n
h : NeZero n
⊢ (-a).valMinAbs = -a.valMinAbs
tactic: cases' eq_zero_or_neZero n with h h
state_before: case inr
m n✝ n : ℕ
a : ZMod n
ha : 2 * a.val ≠ n
h : NeZero n
⊢ (-a).valMinAbs = -a.valMinAbs
state_after: case inr.refine_1
m n✝ n : ℕ
a : ZMod n
ha : 2 * a.val ≠ n
h : NeZero n
⊢ -a = ↑(-a.valMinAbs)

case inr.refine_2
m n✝ n : ℕ
a : ZMod n
ha : 2 * a.val ≠ n
h : NeZero n
⊢ -↑n < -a.valMinAbs * 2

case inr.refine_3
m n✝ n : ℕ
a : ZMod n
ha : 2 * a.val ≠ n
h : NeZero n
⊢ -a.valMinAbs * 2 ≤ ↑n
tactic: refine (valMinAbs_spec _ _).2 ⟨?_, ?_, ?_⟩
Theorem: spectrum.singleton_sub_eq
File: Mathlib/Algebra/Algebra/Spectrum.lean

Proof steps:
state_before: R : Type u
A : Type v
inst✝² : CommRing R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
r : R
⊢ {r} - σ a = σ (↑ₐ r - a)
state_after: no goals
tactic: rw [sub_eq_add_neg, neg_eq, singleton_add_eq, sub_eq_add_neg]
Theorem: FractionalIdeal.mul_left_le_iff
File: Mathlib/RingTheory/DedekindDomain/Ideal.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : Algebra A K
inst✝¹ : IsFractionRing A K
inst✝ : IsDedekindDomain A
J : FractionalIdeal A⁰ K
hJ : J ≠ 0
I I' : FractionalIdeal A⁰ K
⊢ J * I ≤ J * I' ↔ I ≤ I'
state_after: case h.e'_1.a
R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : Algebra A K
inst✝¹ : IsFractionRing A K
inst✝ : IsDedekindDomain A
J : FractionalIdeal A⁰ K
hJ : J ≠ 0
I I' : FractionalIdeal A⁰ K
⊢ J * I ≤ J * I' ↔ I * J ≤ I' * J
tactic: convert mul_right_le_iff hJ using 1
state_before: case h.e'_1.a
R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : Algebra A K
inst✝¹ : IsFractionRing A K
inst✝ : IsDedekindDomain A
J : FractionalIdeal A⁰ K
hJ : J ≠ 0
I I' : FractionalIdeal A⁰ K
⊢ J * I ≤ J * I' ↔ I * J ≤ I' * J
state_after: no goals
tactic: simp only [mul_comm]
Theorem: HasCompactSupport.convolution_integrand_bound_left
File: Mathlib/Analysis/Convolution.lean

Proof steps:
state_before: 𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : NormedAddCommGroup E''
inst✝⁷ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x✝ x' : G
y y' : E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : NormedSpace 𝕜 E''
inst✝² : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝¹ : AddGroup G
inst✝ : TopologicalSpace G
hcf : HasCompactSupport f
hf : Continuous f
x t : G
s : Set G
hx : x ∈ s
⊢ ‖(L (f (x - t))) (g t)‖ ≤ (-tsupport f + s).indicator (fun t => (‖L‖ * ⨆ i, ‖f i‖) * ‖g t‖) t
state_after: case h.e'_4
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : NormedAddCommGroup E''
inst✝⁷ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x✝ x' : G
y y' : E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : NormedSpace 𝕜 E''
inst✝² : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝¹ : AddGroup G
inst✝ : TopologicalSpace G
hcf : HasCompactSupport f
hf : Continuous f
x t : G
s : Set G
hx : x ∈ s
⊢ (-tsupport f + s).indicator (fun t => (‖L‖ * ⨆ i, ‖f i‖) * ‖g t‖) t =
    (-tsupport f + s).indicator (fun t => ‖L.flip‖ * ‖g t‖ * ⨆ i, ‖f i‖) t
tactic: convert hcf.convolution_integrand_bound_right L.flip hf hx using 1
state_before: case h.e'_4
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : NormedAddCommGroup E''
inst✝⁷ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x✝ x' : G
y y' : E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : NormedSpace 𝕜 E''
inst✝² : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝¹ : AddGroup G
inst✝ : TopologicalSpace G
hcf : HasCompactSupport f
hf : Continuous f
x t : G
s : Set G
hx : x ∈ s
⊢ (-tsupport f + s).indicator (fun t => (‖L‖ * ⨆ i, ‖f i‖) * ‖g t‖) t =
    (-tsupport f + s).indicator (fun t => ‖L.flip‖ * ‖g t‖ * ⨆ i, ‖f i‖) t
state_after: no goals
tactic: simp_rw [L.opNorm_flip, mul_right_comm]
Theorem: SimpleGraph.incMatrix_apply_eq_one_iff
File: Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean

Proof steps:
state_before: R : Type u_1
α : Type u_2
G : SimpleGraph α
inst✝¹ : MulZeroOneClass R
a b : α
e : Sym2 α
inst✝ : Nontrivial R
⊢ incMatrix R G a e = 1 ↔ e ∈ G.incidenceSet a
state_after: R : Type u_1
α : Type u_2
G : SimpleGraph α
inst✝¹ : MulZeroOneClass R
a b : α
e : Sym2 α
inst✝ : Nontrivial R
⊢ (if e ∈ G.incidenceSet a then 1 e else 0) = 1 ↔ e ∈ G.incidenceSet a
tactic: unfold incMatrix Set.indicator
state_before: R : Type u_1
α : Type u_2
G : SimpleGraph α
inst✝¹ : MulZeroOneClass R
a b : α
e : Sym2 α
inst✝ : Nontrivial R
⊢ (if e ∈ G.incidenceSet a then 1 e else 0) = 1 ↔ e ∈ G.incidenceSet a
state_after: R : Type u_1
α : Type u_2
G : SimpleGraph α
inst✝¹ : MulZeroOneClass R
a b : α
e : Sym2 α
inst✝ : Nontrivial R
⊢ (if e ∈ G.incidenceSet a then 1 else 0) = 1 ↔ e ∈ G.incidenceSet a
tactic: simp only [Pi.one_apply]
state_before: R : Type u_1
α : Type u_2
G : SimpleGraph α
inst✝¹ : MulZeroOneClass R
a b : α
e : Sym2 α
inst✝ : Nontrivial R
⊢ (if e ∈ G.incidenceSet a then 1 else 0) = 1 ↔ e ∈ G.incidenceSet a
state_after: case mp
R : Type u_1
α : Type u_2
G : SimpleGraph α
inst✝¹ : MulZeroOneClass R
a b : α
e : Sym2 α
inst✝ : Nontrivial R
h : (if e ∈ G.incidenceSet a then 1 else 0) = 1
⊢ e ∈ G.incidenceSet a

case mpr
R : Type u_1
α : Type u_2
G : SimpleGraph α
inst✝¹ : MulZeroOneClass R
a b : α
e : Sym2 α
inst✝ : Nontrivial R
h : e ∈ G.incidenceSet a
⊢ (if e ∈ G.incidenceSet a then 1 else 0) = 1
tactic: apply Iff.intro <;> intro h
Theorem: Submodule.prod_eq_top_iff
File: Mathlib/LinearAlgebra/Prod.lean

Proof steps:
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type u_1
M₆ : Type u_2
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M
inst✝ : Module R M₂
p : Submodule R M
q : Submodule R M₂
p₁ : Submodule R M
p₂ : Submodule R M₂
⊢ p₁.prod p₂ = ⊤ ↔ p₁ = ⊤ ∧ p₂ = ⊤
state_after: no goals
tactic: simp only [eq_top_iff, le_prod_iff, ← (gc_map_comap _).le_iff_le, map_top, range_fst, range_snd]
Theorem: Batteries.RBNode.isRed_reverse
File: .lake/packages/batteries/Batteries/Data/RBMap/WF.lean

Proof steps:
state_before: α : Type u_1
t : RBNode α
⊢ t.reverse.isRed = t.isRed
state_after: no goals
tactic: cases t <;> simp [isRed]
Theorem: Sum.liftRel_inr_inr
File: .lake/packages/batteries/Batteries/Data/Sum/Basic.lean

Proof steps:
state_before: α✝ : Type u_1
γ✝ : Type u_2
r : α✝ → γ✝ → Prop
β✝ : Type u_3
δ✝ : Type u_4
s : β✝ → δ✝ → Prop
b : β✝
d : δ✝
h : LiftRel r s (inr b) (inr d)
⊢ s b d
state_after: case inr
α✝ : Type u_1
γ✝ : Type u_2
r : α✝ → γ✝ → Prop
β✝ : Type u_3
δ✝ : Type u_4
s : β✝ → δ✝ → Prop
b : β✝
d : δ✝
a✝ : s b d
⊢ s b d
tactic: cases h
state_before: case inr
α✝ : Type u_1
γ✝ : Type u_2
r : α✝ → γ✝ → Prop
β✝ : Type u_3
δ✝ : Type u_4
s : β✝ → δ✝ → Prop
b : β✝
d : δ✝
a✝ : s b d
⊢ s b d
state_after: no goals
tactic: assumption