ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: MonoidAlgebra.mapDomainAlgHom_id
File: Mathlib/Algebra/MonoidAlgebra/Basic.lean

Proof steps:
state_before: k✝ : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝⁹ : CommSemiring k✝
inst✝⁸ : Monoid G
inst✝⁷ : Monoid H
A✝ : Type u₃
inst✝⁶ : Semiring A✝
inst✝⁵ : Algebra k✝ A✝
B : Type u_3
inst✝⁴ : Semiring B
inst✝³ : Algebra k✝ B
k : Type u_4
A : Type u_5
inst✝² : CommSemiring k
inst✝¹ : Semiring A
inst✝ : Algebra k A
⊢ mapDomainAlgHom k A (MonoidHom.id G) = AlgHom.id k (MonoidAlgebra A G)
state_after: case H
k✝ : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝⁹ : CommSemiring k✝
inst✝⁸ : Monoid G
inst✝⁷ : Monoid H
A✝ : Type u₃
inst✝⁶ : Semiring A✝
inst✝⁵ : Algebra k✝ A✝
B : Type u_3
inst✝⁴ : Semiring B
inst✝³ : Algebra k✝ B
k : Type u_4
A : Type u_5
inst✝² : CommSemiring k
inst✝¹ : Semiring A
inst✝ : Algebra k A
x✝ : MonoidAlgebra A G
⊢ (mapDomainAlgHom k A (MonoidHom.id G)) x✝ = (AlgHom.id k (MonoidAlgebra A G)) x✝
tactic: ext
state_before: case H
k✝ : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝⁹ : CommSemiring k✝
inst✝⁸ : Monoid G
inst✝⁷ : Monoid H
A✝ : Type u₃
inst✝⁶ : Semiring A✝
inst✝⁵ : Algebra k✝ A✝
B : Type u_3
inst✝⁴ : Semiring B
inst✝³ : Algebra k✝ B
k : Type u_4
A : Type u_5
inst✝² : CommSemiring k
inst✝¹ : Semiring A
inst✝ : Algebra k A
x✝ : MonoidAlgebra A G
⊢ (mapDomainAlgHom k A (MonoidHom.id G)) x✝ = (AlgHom.id k (MonoidAlgebra A G)) x✝
state_after: no goals
tactic: simp [MonoidHom.id, ← Function.id_def]
Theorem: MulActionHom.inverse_apply
File: Mathlib/GroupTheory/GroupAction/Hom.lean

Proof steps:
state_before: M' : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
φ : M → N
ψ : N → P
χ : M → P
X : Type u_5
inst✝⁵ : SMul M X
inst✝⁴ : SMul M' X
Y : Type u_6
inst✝³ : SMul N Y
inst✝² : SMul M' Y
Z : Type u_7
inst✝¹ : SMul P Z
φ' : N → M
Y₁ : Type u_8
inst✝ : SMul M Y₁
f : X →ₑ[id] Y₁
g : Y₁ → X
h₁ : Function.LeftInverse g ⇑f
h₂ : Function.RightInverse g ⇑f
m : M
x : Y₁
⊢ g (m • x) = g (m • f (g x))
state_after: no goals
tactic: rw [h₂]
state_before: M' : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
φ : M → N
ψ : N → P
χ : M → P
X : Type u_5
inst✝⁵ : SMul M X
inst✝⁴ : SMul M' X
Y : Type u_6
inst✝³ : SMul N Y
inst✝² : SMul M' Y
Z : Type u_7
inst✝¹ : SMul P Z
φ' : N → M
Y₁ : Type u_8
inst✝ : SMul M Y₁
f : X →ₑ[id] Y₁
g : Y₁ → X
h₁ : Function.LeftInverse g ⇑f
h₂ : Function.RightInverse g ⇑f
m : M
x : Y₁
⊢ g (m • f (g x)) = g (f (m • g x))
state_after: no goals
tactic: simp only [map_smul, id_eq]
state_before: M' : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
φ : M → N
ψ : N → P
χ : M → P
X : Type u_5
inst✝⁵ : SMul M X
inst✝⁴ : SMul M' X
Y : Type u_6
inst✝³ : SMul N Y
inst✝² : SMul M' Y
Z : Type u_7
inst✝¹ : SMul P Z
φ' : N → M
Y₁ : Type u_8
inst✝ : SMul M Y₁
f : X →ₑ[id] Y₁
g : Y₁ → X
h₁ : Function.LeftInverse g ⇑f
h₂ : Function.RightInverse g ⇑f
m : M
x : Y₁
⊢ g (f (m • g x)) = m • g x
state_after: no goals
tactic: rw [h₁]
Theorem: _private.Mathlib.Analysis.Analytic.Inverse.0.FormalMultilinearSeries.leftInv_eq_rightInv_aux
File: Mathlib/Analysis/Analytic/Inverse.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = (continuousMultilinearCurryFin1 𝕜 E F).symm ↑i
h0 : p 0 = 0
⊢ p.leftInv i = (p.leftInv i).comp (id 𝕜 F)
state_after: no goals
tactic: simp
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = (continuousMultilinearCurryFin1 𝕜 E F).symm ↑i
h0 : p 0 = 0
⊢ (p.leftInv i).comp (id 𝕜 F) = (p.leftInv i).comp (p.comp (p.rightInv i))
state_after: no goals
tactic: rw [comp_rightInv p i h h0]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = (continuousMultilinearCurryFin1 𝕜 E F).symm ↑i
h0 : p 0 = 0
⊢ (p.leftInv i).comp (p.comp (p.rightInv i)) = ((p.leftInv i).comp p).comp (p.rightInv i)
state_after: no goals
tactic: rw [comp_assoc]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = (continuousMultilinearCurryFin1 𝕜 E F).symm ↑i
h0 : p 0 = 0
⊢ ((p.leftInv i).comp p).comp (p.rightInv i) = (id 𝕜 E).comp (p.rightInv i)
state_after: no goals
tactic: rw [leftInv_comp p i h]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
h : p 1 = (continuousMultilinearCurryFin1 𝕜 E F).symm ↑i
h0 : p 0 = 0
⊢ (id 𝕜 E).comp (p.rightInv i) = p.rightInv i
state_after: no goals
tactic: simp
Theorem: pow_succ_padicValNat_not_dvd
File: Mathlib/NumberTheory/Padics/PadicVal.lean

Proof steps:
state_before: p n : ℕ
hp : Fact (Nat.Prime p)
hn : n ≠ 0
⊢ ¬p ^ (padicValNat p n + 1) ∣ n
state_after: p n : ℕ
hp : Fact (Nat.Prime p)
hn : n ≠ 0
⊢ padicValNat p n < padicValNat p n + 1
tactic: rw [padicValNat_dvd_iff_le hn, not_le]
state_before: p n : ℕ
hp : Fact (Nat.Prime p)
hn : n ≠ 0
⊢ padicValNat p n < padicValNat p n + 1
state_after: no goals
tactic: exact Nat.lt_succ_self _
Theorem: MeasureTheory.aestronglyMeasurable_zero_measure
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝² : Countable ι
inst✝¹ : MeasurableSpace α
inst✝ : TopologicalSpace β
f : α → β
⊢ AEStronglyMeasurable f 0
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝² : Countable ι
inst✝¹ : MeasurableSpace α
inst✝ : TopologicalSpace β
f : α → β
a✝ : Nontrivial α
⊢ AEStronglyMeasurable f 0
tactic: nontriviality α
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝² : Countable ι
inst✝¹ : MeasurableSpace α
inst✝ : TopologicalSpace β
f : α → β
a✝ : Nontrivial α
⊢ AEStronglyMeasurable f 0
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝² : Countable ι
inst✝¹ : MeasurableSpace α
inst✝ : TopologicalSpace β
f : α → β
a✝ : Nontrivial α
inhabited_h : Inhabited α
⊢ AEStronglyMeasurable f 0
tactic: inhabit α
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝² : Countable ι
inst✝¹ : MeasurableSpace α
inst✝ : TopologicalSpace β
f : α → β
a✝ : Nontrivial α
inhabited_h : Inhabited α
⊢ AEStronglyMeasurable f 0
state_after: no goals
tactic: exact ⟨fun _ => f default, stronglyMeasurable_const, rfl⟩
Theorem: compl_iSup
File: Mathlib/Order/CompleteBooleanAlgebra.lean

Proof steps:
state_before: α : Type u
β : Type v
ι : Sort w
κ : ι → Sort w'
inst✝ : CompleteBooleanAlgebra α
a b : α
s : Set α
f : ι → α
⊢ (iSup f)ᶜᶜ = (⨅ i, (f i)ᶜ)ᶜ
state_after: no goals
tactic: simp [compl_iInf]
Theorem: MeasureTheory.condexpIndSMul_empty
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹⁹ : RCLike 𝕜
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : InnerProductSpace 𝕜 E
inst✝¹⁶ : CompleteSpace E
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : InnerProductSpace 𝕜 E'
inst✝¹³ : CompleteSpace E'
inst✝¹² : NormedSpace ℝ E'
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedAddCommGroup G'
inst✝⁷ : NormedSpace ℝ G'
inst✝⁶ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
E'' : Type u_8
𝕜' : Type u_9
inst✝⁵ : RCLike 𝕜'
inst✝⁴ : NormedAddCommGroup E''
inst✝³ : InnerProductSpace 𝕜' E''
inst✝² : CompleteSpace E''
inst✝¹ : NormedSpace ℝ E''
inst✝ : NormedSpace ℝ G
hm : m ≤ m0
x : G
⊢ condexpIndSMul hm ⋯ ⋯ x = 0
state_after: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹⁹ : RCLike 𝕜
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : InnerProductSpace 𝕜 E
inst✝¹⁶ : CompleteSpace E
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : InnerProductSpace 𝕜 E'
inst✝¹³ : CompleteSpace E'
inst✝¹² : NormedSpace ℝ E'
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedAddCommGroup G'
inst✝⁷ : NormedSpace ℝ G'
inst✝⁶ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
E'' : Type u_8
𝕜' : Type u_9
inst✝⁵ : RCLike 𝕜'
inst✝⁴ : NormedAddCommGroup E''
inst✝³ : InnerProductSpace 𝕜' E''
inst✝² : CompleteSpace E''
inst✝¹ : NormedSpace ℝ E''
inst✝ : NormedSpace ℝ G
hm : m ≤ m0
x : G
⊢ (compLpL 2 μ (toSpanSingleton ℝ x)) ↑((condexpL2 ℝ ℝ hm) 0) = 0
tactic: rw [condexpIndSMul, indicatorConstLp_empty]
state_before: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹⁹ : RCLike 𝕜
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : InnerProductSpace 𝕜 E
inst✝¹⁶ : CompleteSpace E
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : InnerProductSpace 𝕜 E'
inst✝¹³ : CompleteSpace E'
inst✝¹² : NormedSpace ℝ E'
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedAddCommGroup G'
inst✝⁷ : NormedSpace ℝ G'
inst✝⁶ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
E'' : Type u_8
𝕜' : Type u_9
inst✝⁵ : RCLike 𝕜'
inst✝⁴ : NormedAddCommGroup E''
inst✝³ : InnerProductSpace 𝕜' E''
inst✝² : CompleteSpace E''
inst✝¹ : NormedSpace ℝ E''
inst✝ : NormedSpace ℝ G
hm : m ≤ m0
x : G
⊢ (compLpL 2 μ (toSpanSingleton ℝ x)) ↑((condexpL2 ℝ ℝ hm) 0) = 0
state_after: no goals
tactic: simp only [Submodule.coe_zero, ContinuousLinearMap.map_zero]
Theorem: CategoryTheory.Limits.pushout.mapLift_comp
File: Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean

Proof steps:
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
W X✝ Y✝ Z X Y S T S' : C
f : T ⟶ X
g : T ⟶ Y
i : S ⟶ T
i' : S' ⟶ S
inst✝³ : HasPushout f g
inst✝² : HasPushout (i ≫ f) (i ≫ g)
inst✝¹ : HasPushout (i' ≫ i ≫ f) (i' ≫ i ≫ g)
inst✝ : HasPushout ((i' ≫ i) ≫ f) ((i' ≫ i) ≫ g)
⊢ mapLift f g (i' ≫ i) = (congrHom ⋯ ⋯).hom ≫ mapLift (i ≫ f) (i ≫ g) i' ≫ mapLift f g i
state_after: no goals
tactic: aesop_cat
Theorem: ContinuousLinearMap.comp_hasFPowerSeriesOnBall
File: Mathlib/Analysis/Analytic/Basic.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f g✝ : E → F
p pf pg : FormalMultilinearSeries 𝕜 E F
x : E
r r' : ℝ≥0∞
g : F →L[𝕜] G
h : HasFPowerSeriesOnBall f p x r
y✝ : E
hy : y✝ ∈ EMetric.ball 0 r
⊢ HasSum (fun n => (g.compFormalMultilinearSeries p n) fun x => y✝) ((⇑g ∘ f) (x + y✝))
state_after: no goals
tactic: simpa only [ContinuousLinearMap.compFormalMultilinearSeries_apply,
        ContinuousLinearMap.compContinuousMultilinearMap_coe, Function.comp_apply] using
        g.hasSum (h.hasSum hy)
Theorem: SetTheory.PGame.powHalf_leftMoves
File: Mathlib/SetTheory/Surreal/Dyadic.lean

Proof steps:
state_before: n : ℕ
⊢ (powHalf n).LeftMoves = PUnit.{u_1 + 1}
state_after: no goals
tactic: cases n <;> rfl
Theorem: Cardinal.add_eq_max'
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

Proof steps:
state_before: a b : Cardinal.{u_1}
ha : ℵ₀ ≤ b
⊢ a + b = max a b
state_after: no goals
tactic: rw [add_comm, max_comm, add_eq_max ha]
Theorem: zero_div
File: Mathlib/Algebra/GroupWithZero/Basic.lean

Proof steps:
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : GroupWithZero G₀
a✝ b c a : G₀
⊢ 0 / a = 0
state_after: no goals
tactic: rw [div_eq_mul_inv, zero_mul]
Theorem: MultilinearMap.mkContinuous_norm_le'
File: Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean

Proof steps:
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : MultilinearMap 𝕜 E G
C : ℝ
H : ∀ (m : (i : ι) → E i), ‖f m‖ ≤ C * ∏ i : ι, ‖m i‖
m : (i : ι) → E i
⊢ 0 ≤ ∏ i : ι, ‖m i‖
state_after: no goals
tactic: positivity
Theorem: List.lt_length_left_of_zipWith
File: Mathlib/Data/List/Zip.lean

Proof steps:
state_before: α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
f : α → β → γ
i : ℕ
l : List α
l' : List β
h : i < (zipWith f l l').length
⊢ i < l.length
state_after: α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
f : α → β → γ
i : ℕ
l : List α
l' : List β
h : i < min l.length l'.length
⊢ i < l.length
tactic: rw [length_zipWith] at h
state_before: α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
f : α → β → γ
i : ℕ
l : List α
l' : List β
h : i < min l.length l'.length
⊢ i < l.length
state_after: no goals
tactic: omega
Theorem: Mathlib.Meta.NormNum.isRat_rpow_pos
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

Proof steps:
state_before: a b : ℝ
nb : ℕ
num : ℤ
den : ℕ
pb : IsNat b nb
pe' : IsRat (a ^ nb) num den
⊢ IsRat (a ^ b) num den
state_after: no goals
tactic: rwa [pb.out, rpow_natCast]
Theorem: Ordinal.log_eq_zero
File: Mathlib/SetTheory/Ordinal/Exponential.lean

Proof steps:
state_before: b o : Ordinal.{u_1}
hbo : o < b
⊢ log b o = 0
state_after: case inl
b : Ordinal.{u_1}
hbo : 0 < b
⊢ log b 0 = 0

case inr
b o : Ordinal.{u_1}
hbo : o < b
ho : o ≠ 0
⊢ log b o = 0
tactic: rcases eq_or_ne o 0 with (rfl | ho)
state_before: case inr
b o : Ordinal.{u_1}
hbo : o < b
ho : o ≠ 0
⊢ log b o = 0
state_after: case inr.inl
b o : Ordinal.{u_1}
hbo : o < b
ho : o ≠ 0
hb : b ≤ 1
⊢ log b o = 0

case inr.inr
b o : Ordinal.{u_1}
hbo : o < b
ho : o ≠ 0
hb : 1 < b
⊢ log b o = 0
tactic: rcases le_or_lt b 1 with hb | hb
Theorem: List.insertNth_eq_insertNthTR
File: .lake/packages/batteries/Batteries/Data/List/Basic.lean

Proof steps:
state_before: ⊢ @insertNth = @insertNthTR
state_after: case h.h.h.h
α : Type u_1
f : Nat
n : α
l : List α
⊢ insertNth f n l = insertNthTR f n l
tactic: funext α f n l
state_before: case h.h.h.h
α : Type u_1
f : Nat
n : α
l : List α
⊢ insertNth f n l = insertNthTR f n l
state_after: no goals
tactic: simp [insertNthTR, insertNthTR_go_eq]
Theorem: PMF.uniformOfFinset_apply_of_mem
File: Mathlib/Probability/Distributions/Uniform.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s : Finset α
hs : s.Nonempty
a : α
ha : a ∈ s
⊢ (uniformOfFinset s hs) a = (↑s.card)⁻¹
state_after: no goals
tactic: simp [ha]
Theorem: EuclideanGeometry.inversion_self
File: Mathlib/Geometry/Euclidean/Inversion/Basic.lean

Proof steps:
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
a b c✝ d x y z : P
r R✝ : ℝ
c : P
R : ℝ
⊢ inversion c R c = c
state_after: no goals
tactic: simp [inversion]
Theorem: CategoryTheory.Subgroupoid.isTotallyDisconnected_iff
File: Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean

Proof steps:
state_before: C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
⊢ S.IsTotallyDisconnected ↔ ∀ (c d : C), (S.arrows c d).Nonempty → c = d
state_after: case mp
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
⊢ S.IsTotallyDisconnected → ∀ (c d : C), (S.arrows c d).Nonempty → c = d

case mpr
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
⊢ (∀ (c d : C), (S.arrows c d).Nonempty → c = d) → S.IsTotallyDisconnected
tactic: constructor
Theorem: MeasureTheory.measure_diff_lt_of_lt_add
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
hs : MeasurableSet s
hst : s ⊆ t
hs' : μ s ≠ ⊤
ε : ℝ≥0∞
h : μ t < μ s + ε
⊢ μ (t \ s) < ε
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
hs : MeasurableSet s
hst : s ⊆ t
hs' : μ s ≠ ⊤
ε : ℝ≥0∞
h : μ t < μ s + ε
⊢ μ t - μ s < ε
tactic: rw [measure_diff hst hs hs']
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
hs : MeasurableSet s
hst : s ⊆ t
hs' : μ s ≠ ⊤
ε : ℝ≥0∞
h : μ t < μ s + ε
⊢ μ t - μ s < ε
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
hs : MeasurableSet s
hst : s ⊆ t
hs' : μ s ≠ ⊤
ε : ℝ≥0∞
h : μ t < ε + μ s
⊢ μ t - μ s < ε
tactic: rw [add_comm] at h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
hs : MeasurableSet s
hst : s ⊆ t
hs' : μ s ≠ ⊤
ε : ℝ≥0∞
h : μ t < ε + μ s
⊢ μ t - μ s < ε
state_after: no goals
tactic: exact ENNReal.sub_lt_of_lt_add (measure_mono hst) h
Theorem: Prefunctor.costar_conj_star
File: Mathlib/Combinatorics/Quiver/Covering.lean

Proof steps:
state_before: U : Type u_1
inst✝⁵ : Quiver U
V : Type u_2
inst✝⁴ : Quiver V
φ : U ⥤q V
W : Type ?u.18416
inst✝³ : Quiver W
ψ : V ⥤q W
inst✝² : HasInvolutiveReverse U
inst✝¹ : HasInvolutiveReverse V
inst✝ : φ.MapReverse
u : U
⊢ φ.costar u = ⇑(starEquivCostar (φ.obj u)) ∘ φ.star u ∘ ⇑(starEquivCostar u).symm
state_after: no goals
tactic: ext ⟨v, f⟩ <;> simp
Theorem: Nat.card_pos_iff
File: Mathlib/SetTheory/Cardinal/Finite.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
⊢ 0 < Nat.card α ↔ Nonempty α ∧ Finite α
state_after: no goals
tactic: simp [Nat.card, mk_eq_zero_iff, mk_lt_aleph0_iff]
Theorem: EReal.toReal_add
File: Mathlib/Data/Real/EReal.lean

Proof steps:
state_before: x y : EReal
hx : x ≠ ⊤
h'x : x ≠ ⊥
hy : y ≠ ⊤
h'y : y ≠ ⊥
⊢ (x + y).toReal = x.toReal + y.toReal
state_after: case intro
y : EReal
hy : y ≠ ⊤
h'y : y ≠ ⊥
x : ℝ
hx : ↑x ≠ ⊤
h'x : ↑x ≠ ⊥
⊢ (↑x + y).toReal = (↑x).toReal + y.toReal
tactic: lift x to ℝ using ⟨hx, h'x⟩
state_before: case intro
y : EReal
hy : y ≠ ⊤
h'y : y ≠ ⊥
x : ℝ
hx : ↑x ≠ ⊤
h'x : ↑x ≠ ⊥
⊢ (↑x + y).toReal = (↑x).toReal + y.toReal
state_after: case intro.intro
x : ℝ
hx : ↑x ≠ ⊤
h'x : ↑x ≠ ⊥
y : ℝ
hy : ↑y ≠ ⊤
h'y : ↑y ≠ ⊥
⊢ (↑x + ↑y).toReal = (↑x).toReal + (↑y).toReal
tactic: lift y to ℝ using ⟨hy, h'y⟩
state_before: case intro.intro
x : ℝ
hx : ↑x ≠ ⊤
h'x : ↑x ≠ ⊥
y : ℝ
hy : ↑y ≠ ⊤
h'y : ↑y ≠ ⊥
⊢ (↑x + ↑y).toReal = (↑x).toReal + (↑y).toReal
state_after: no goals
tactic: rfl
Theorem: Rat.maybeNormalize_eq
File: .lake/packages/batteries/Batteries/Data/Rat/Lemmas.lean

Proof steps:
state_before: num : Int
den g : Nat
den_nz : den / g ≠ 0
reduced : (num.div ↑g).natAbs.Coprime (den / g)
⊢ maybeNormalize num den g den_nz reduced = { num := num.div ↑g, den := den / g, den_nz := den_nz, reduced := reduced }
state_after: num : Int
den g : Nat
den_nz : den / g ≠ 0
reduced : (num.div ↑g).natAbs.Coprime (den / g)
⊢ (if hg : g = 1 then { num := num, den := den, den_nz := ⋯, reduced := ⋯ }
    else { num := num.div ↑g, den := den / g, den_nz := den_nz, reduced := reduced }) =
    { num := num.div ↑g, den := den / g, den_nz := den_nz, reduced := reduced }
tactic: unfold maybeNormalize
state_before: num : Int
den g : Nat
den_nz : den / g ≠ 0
reduced : (num.div ↑g).natAbs.Coprime (den / g)
⊢ (if hg : g = 1 then { num := num, den := den, den_nz := ⋯, reduced := ⋯ }
    else { num := num.div ↑g, den := den / g, den_nz := den_nz, reduced := reduced }) =
    { num := num.div ↑g, den := den / g, den_nz := den_nz, reduced := reduced }
state_after: case isTrue
num : Int
den g : Nat
den_nz : den / g ≠ 0
reduced : (num.div ↑g).natAbs.Coprime (den / g)
h✝ : g = 1
⊢ { num := num, den := den, den_nz := ⋯, reduced := ⋯ } =
    { num := num.div ↑g, den := den / g, den_nz := den_nz, reduced := reduced }

case isFalse
num : Int
den g : Nat
den_nz : den / g ≠ 0
reduced : (num.div ↑g).natAbs.Coprime (den / g)
h✝ : ¬g = 1
⊢ { num := num.div ↑g, den := den / g, den_nz := den_nz, reduced := reduced } =
    { num := num.div ↑g, den := den / g, den_nz := den_nz, reduced := reduced }
tactic: split
Theorem: CochainComplex.mappingCone.inr_fst_assoc
File: Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.45694, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
d e f : ℤ
γ : Cochain F K d
he : 1 + d = e
hf : 0 + e = f
⊢ (Cochain.ofHom (inr φ)).comp ((↑(fst φ)).comp γ he) hf = 0
state_after: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.45694, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
d e : ℤ
γ : Cochain F K d
he : 1 + d = e
hf : 0 + e = e
⊢ (Cochain.ofHom (inr φ)).comp ((↑(fst φ)).comp γ he) hf = 0
tactic: obtain rfl : e = f := by omega
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.45694, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
d e : ℤ
γ : Cochain F K d
he : 1 + d = e
hf : 0 + e = e
⊢ (Cochain.ofHom (inr φ)).comp ((↑(fst φ)).comp γ he) hf = 0
state_after: no goals
tactic: rw [← Cochain.comp_assoc_of_first_is_zero_cochain, inr_fst, Cochain.zero_comp]
Theorem: Finset.mk_mem_sym2_iff
File: Mathlib/Data/Finset/Sym.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
s t : Finset α
a b : α
⊢ s(a, b) ∈ s.sym2 ↔ a ∈ s ∧ b ∈ s
state_after: no goals
tactic: rw [mem_mk, sym2_val, Multiset.mk_mem_sym2_iff, mem_mk, mem_mk]
Theorem: Batteries.BEqCmp.compareOfLessAndEq
File: .lake/packages/batteries/Batteries/Classes/Order.lean

Proof steps:
state_before: α : Type u_1
inst✝⁴ : LT α
inst✝³ : DecidableRel LT.lt
inst✝² : DecidableEq α
inst✝¹ : BEq α
inst✝ : LawfulBEq α
lt_irrefl : ∀ (x : α), ¬x < x
x y : α
⊢ compareOfLessAndEq x y = Ordering.eq ↔ (x == y) = true
state_after: α : Type u_1
inst✝⁴ : LT α
inst✝³ : DecidableRel LT.lt
inst✝² : DecidableEq α
inst✝¹ : BEq α
inst✝ : LawfulBEq α
lt_irrefl : ∀ (x : α), ¬x < x
x y : α
⊢ (if x < y then Ordering.lt else if x = y then Ordering.eq else Ordering.gt) = Ordering.eq ↔ x = y
tactic: simp [compareOfLessAndEq]
state_before: α : Type u_1
inst✝⁴ : LT α
inst✝³ : DecidableRel LT.lt
inst✝² : DecidableEq α
inst✝¹ : BEq α
inst✝ : LawfulBEq α
lt_irrefl : ∀ (x : α), ¬x < x
x y : α
⊢ (if x < y then Ordering.lt else if x = y then Ordering.eq else Ordering.gt) = Ordering.eq ↔ x = y
state_after: case isTrue
α : Type u_1
inst✝⁴ : LT α
inst✝³ : DecidableRel LT.lt
inst✝² : DecidableEq α
inst✝¹ : BEq α
inst✝ : LawfulBEq α
lt_irrefl : ∀ (x : α), ¬x < x
x y : α
h✝ : x < y
⊢ ¬x = y
tactic: split <;> [skip; split] <;> simp [*]
state_before: case isTrue
α : Type u_1
inst✝⁴ : LT α
inst✝³ : DecidableRel LT.lt
inst✝² : DecidableEq α
inst✝¹ : BEq α
inst✝ : LawfulBEq α
lt_irrefl : ∀ (x : α), ¬x < x
x y : α
h✝ : x < y
⊢ ¬x = y
state_after: case isTrue
α : Type u_1
inst✝⁴ : LT α
inst✝³ : DecidableRel LT.lt
inst✝² : DecidableEq α
inst✝¹ : BEq α
inst✝ : LawfulBEq α
lt_irrefl : ∀ (x : α), ¬x < x
x : α
h✝ : x < x
⊢ False
tactic: rintro rfl
state_before: case isTrue
α : Type u_1
inst✝⁴ : LT α
inst✝³ : DecidableRel LT.lt
inst✝² : DecidableEq α
inst✝¹ : BEq α
inst✝ : LawfulBEq α
lt_irrefl : ∀ (x : α), ¬x < x
x : α
h✝ : x < x
⊢ False
state_after: no goals
tactic: exact lt_irrefl _ ‹_›