ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: multiplicity.get_multiplicity_self
File: Mathlib/RingTheory/Multiplicity.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a : α
ha : Finite a a
⊢ a ^ 1 ∣ a
state_after: no goals
tactic: simp
state_before: α : Type u_1
β : Type u_2
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a : α
ha : Finite a a
x✝ : a ^ (1 + 1) ∣ a
b : α
hb : a = a ^ (1 + 1) * b
⊢ False
state_after: α : Type u_1
β : Type u_2
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a : α
ha : Finite a a
x✝ : a ^ (1 + 1) ∣ a
b : α
hb : 1 = 1 * (a * 1 * b)
⊢ False
tactic: rw [← mul_one a, pow_add, pow_one, mul_assoc, mul_assoc,
            mul_right_inj' (ne_zero_of_finite ha)] at hb
state_before: α : Type u_1
β : Type u_2
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a : α
ha : Finite a a
x✝ : a ^ (1 + 1) ∣ a
b : α
hb : 1 = 1 * (a * 1 * b)
⊢ False
state_after: no goals
tactic: exact mt isUnit_iff_dvd_one.2 (not_unit_of_finite ha) ⟨b, by simp_all⟩
Theorem: ContinuousMap.equivBoundedOfCompact_apply
File: Mathlib/Topology/ContinuousFunction/Compact.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
E : Type u_3
inst✝³ : TopologicalSpace α
inst✝² : CompactSpace α
inst✝¹ : MetricSpace β
inst✝ : NormedAddCommGroup E
f : C(α, β)
⊢ (mkOfCompact f).toContinuousMap = f
state_after: case h
α : Type u_1
β : Type u_2
E : Type u_3
inst✝³ : TopologicalSpace α
inst✝² : CompactSpace α
inst✝¹ : MetricSpace β
inst✝ : NormedAddCommGroup E
f : C(α, β)
a✝ : α
⊢ (mkOfCompact f).toContinuousMap a✝ = f a✝
tactic: ext
state_before: case h
α : Type u_1
β : Type u_2
E : Type u_3
inst✝³ : TopologicalSpace α
inst✝² : CompactSpace α
inst✝¹ : MetricSpace β
inst✝ : NormedAddCommGroup E
f : C(α, β)
a✝ : α
⊢ (mkOfCompact f).toContinuousMap a✝ = f a✝
state_after: no goals
tactic: rfl
state_before: α : Type u_1
β : Type u_2
E : Type u_3
inst✝³ : TopologicalSpace α
inst✝² : CompactSpace α
inst✝¹ : MetricSpace β
inst✝ : NormedAddCommGroup E
f : α →ᵇ β
⊢ mkOfCompact f.toContinuousMap = f
state_after: case h
α : Type u_1
β : Type u_2
E : Type u_3
inst✝³ : TopologicalSpace α
inst✝² : CompactSpace α
inst✝¹ : MetricSpace β
inst✝ : NormedAddCommGroup E
f : α →ᵇ β
x✝ : α
⊢ (mkOfCompact f.toContinuousMap) x✝ = f x✝
tactic: ext
state_before: case h
α : Type u_1
β : Type u_2
E : Type u_3
inst✝³ : TopologicalSpace α
inst✝² : CompactSpace α
inst✝¹ : MetricSpace β
inst✝ : NormedAddCommGroup E
f : α →ᵇ β
x✝ : α
⊢ (mkOfCompact f.toContinuousMap) x✝ = f x✝
state_after: no goals
tactic: rfl
Theorem: List.prod_eq_one_iff
File: Mathlib/Algebra/Order/BigOperators/Group/List.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
P : Type u_5
M₀ : Type u_6
G : Type u_7
R : Type u_8
inst✝ : CanonicallyOrderedCommMonoid M
l : List M
h : ∀ x ∈ l, x = 1
⊢ l.prod = 1
state_after: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
P : Type u_5
M₀ : Type u_6
G : Type u_7
R : Type u_8
inst✝ : CanonicallyOrderedCommMonoid M
l : List M
h : ∀ x ∈ l, x = 1
⊢ ℕ

ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
P : Type u_5
M₀ : Type u_6
G : Type u_7
R : Type u_8
inst✝ : CanonicallyOrderedCommMonoid M
l : List M
h : ∀ x ∈ l, x = 1
⊢ l.length = ?m.22276
tactic: rw [List.eq_replicate.2 ⟨_, h⟩, prod_replicate, one_pow]
Theorem: Commute.mul_pow
File: Mathlib/Algebra/Group/Commute/Defs.lean

Proof steps:
state_before: G : Type u_1
M : Type u_2
S : Type u_3
inst✝ : Monoid M
a b : M
h : Commute a b
⊢ (a * b) ^ 0 = a ^ 0 * b ^ 0
state_after: no goals
tactic: rw [pow_zero, pow_zero, pow_zero, one_mul]
state_before: G : Type u_1
M : Type u_2
S : Type u_3
inst✝ : Monoid M
a b : M
h : Commute a b
n : ℕ
⊢ (a * b) ^ (n + 1) = a ^ (n + 1) * b ^ (n + 1)
state_after: no goals
tactic: simp only [pow_succ', h.mul_pow n, ← mul_assoc, (h.pow_left n).right_comm]
Theorem: map_extChartAt_nhds'
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x y : M
hy : y ∈ (extChartAt I x).source
⊢ y ∈ (chartAt H x).source
state_after: no goals
tactic: rwa [← extChartAt_source I]
Theorem: RelIso.cast_apply
File: Mathlib/Order/RelIso/Basic.lean

Proof steps:
state_before: α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
u : δ → δ → Prop
α β : Type u
r : α → α → Prop
s : β → β → Prop
h₁ : α = β
h₂ : HEq r s
a b : α
⊢ s ((Equiv.cast h₁) a) ((Equiv.cast h₁) b) ↔ r a b
state_after: α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
r✝ : α✝ → α✝ → Prop
s✝ : β → β → Prop
t : γ → γ → Prop
u : δ → δ → Prop
α : Type u
r : α → α → Prop
a b : α
s : α → α → Prop
h₂ : HEq r s
⊢ s ((Equiv.cast ⋯) a) ((Equiv.cast ⋯) b) ↔ r a b
tactic: subst h₁
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
r✝ : α✝ → α✝ → Prop
s✝ : β → β → Prop
t : γ → γ → Prop
u : δ → δ → Prop
α : Type u
r : α → α → Prop
a b : α
s : α → α → Prop
h₂ : HEq r s
⊢ s ((Equiv.cast ⋯) a) ((Equiv.cast ⋯) b) ↔ r a b
state_after: α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
r✝ : α✝ → α✝ → Prop
s✝ : β → β → Prop
t : γ → γ → Prop
u : δ → δ → Prop
α : Type u
r : α → α → Prop
a b : α
s : α → α → Prop
h₂ : HEq r s
⊢ s ((Equiv.cast ⋯) a) ((Equiv.cast ⋯) b) ↔ s a b
tactic: rw [eq_of_heq h₂]
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
r✝ : α✝ → α✝ → Prop
s✝ : β → β → Prop
t : γ → γ → Prop
u : δ → δ → Prop
α : Type u
r : α → α → Prop
a b : α
s : α → α → Prop
h₂ : HEq r s
⊢ s ((Equiv.cast ⋯) a) ((Equiv.cast ⋯) b) ↔ s a b
state_after: no goals
tactic: rfl
Theorem: circleIntegral.integral_smul
File: Mathlib/MeasureTheory/Integral/CircleIntegral.lean

Proof steps:
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
inst✝³ : CompleteSpace E
𝕜 : Type u_2
inst✝² : RCLike 𝕜
inst✝¹ : NormedSpace 𝕜 E
inst✝ : SMulCommClass 𝕜 ℂ E
a : 𝕜
f : ℂ → E
c : ℂ
R : ℝ
⊢ (∮ (z : ℂ) in C(c, R), a • f z) = a • ∮ (z : ℂ) in C(c, R), f z
state_after: no goals
tactic: simp only [circleIntegral, ← smul_comm a (_ : ℂ) (_ : E), intervalIntegral.integral_smul]
Theorem: PFunctor.M.Approx.P_mk
File: Mathlib/Data/PFunctor/Univariate/M.lean

Proof steps:
state_before: F : PFunctor.{u}
X : Type u_1
f : X → ↑F X
x : ↑F F.M
⊢ Agree (Approx.sMk x 0) (Approx.sMk x (succ 0))
state_after: no goals
tactic: constructor
state_before: F : PFunctor.{u}
X : Type u_1
f : X → ↑F X
x : ↑F F.M
n : ℕ
⊢ Agree (Approx.sMk x n.succ) (Approx.sMk x n.succ.succ)
state_after: case a
F : PFunctor.{u}
X : Type u_1
f : X → ↑F X
x : ↑F F.M
n : ℕ
⊢ ∀ (i : F.B x.fst), Agree ((x.snd i).approx n) ((x.snd i).approx (n + 1))
tactic: constructor
state_before: case a
F : PFunctor.{u}
X : Type u_1
f : X → ↑F X
x : ↑F F.M
n : ℕ
⊢ ∀ (i : F.B x.fst), Agree ((x.snd i).approx n) ((x.snd i).approx (n + 1))
state_after: case a
F : PFunctor.{u}
X : Type u_1
f : X → ↑F X
x : ↑F F.M
n : ℕ
i : F.B x.fst
⊢ Agree ((x.snd i).approx n) ((x.snd i).approx (n + 1))
tactic: introv
state_before: case a
F : PFunctor.{u}
X : Type u_1
f : X → ↑F X
x : ↑F F.M
n : ℕ
i : F.B x.fst
⊢ Agree ((x.snd i).approx n) ((x.snd i).approx (n + 1))
state_after: no goals
tactic: apply (x.2 i).consistent
Theorem: Nat.image_nth_Iio_card
File: Mathlib/Data/Nat/Nth.lean

Proof steps:
state_before: p : ℕ → Prop
hf : (setOf p).Finite
⊢ nth p '' Set.Iio hf.toFinset.card = Set.range ⇑(hf.toFinset.orderEmbOfFin ⋯)
state_after: case h
p : ℕ → Prop
hf : (setOf p).Finite
x : ℕ
⊢ x ∈ nth p '' Set.Iio hf.toFinset.card ↔ x ∈ Set.range ⇑(hf.toFinset.orderEmbOfFin ⋯)
tactic: ext x
state_before: case h
p : ℕ → Prop
hf : (setOf p).Finite
x : ℕ
⊢ x ∈ nth p '' Set.Iio hf.toFinset.card ↔ x ∈ Set.range ⇑(hf.toFinset.orderEmbOfFin ⋯)
state_after: no goals
tactic: simp only [Set.mem_image, Set.mem_range, Fin.exists_iff, ← nth_eq_orderEmbOfFin hf,
        Set.mem_Iio, exists_prop]
state_before: p : ℕ → Prop
hf : (setOf p).Finite
⊢ Set.range ⇑(hf.toFinset.orderEmbOfFin ⋯) = setOf p
state_after: no goals
tactic: rw [range_orderEmbOfFin, Set.Finite.coe_toFinset]
Theorem: Set.eq_of_inclusion_surjective
File: Mathlib/Data/Set/Basic.lean

Proof steps:
state_before: α : Type u_1
s✝ t✝ u s t : Set α
h : s ⊆ t
h_surj : Surjective (inclusion h)
⊢ s = t
state_after: α : Type u_1
s✝ t✝ u s t : Set α
h : s ⊆ t
h_surj : Surjective (inclusion h)
x : α
hx : x ∈ t
⊢ x ∈ s
tactic: refine Set.Subset.antisymm h (fun x hx => ?_)
state_before: α : Type u_1
s✝ t✝ u s t : Set α
h : s ⊆ t
h_surj : Surjective (inclusion h)
x : α
hx : x ∈ t
⊢ x ∈ s
state_after: case intro
α : Type u_1
s✝ t✝ u s t : Set α
h : s ⊆ t
h_surj : Surjective (inclusion h)
x : α
hx : x ∈ t
y : ↑s
hy : inclusion h y = ⟨x, hx⟩
⊢ x ∈ s
tactic: obtain ⟨y, hy⟩ := h_surj ⟨x, hx⟩
state_before: case intro
α : Type u_1
s✝ t✝ u s t : Set α
h : s ⊆ t
h_surj : Surjective (inclusion h)
x : α
hx : x ∈ t
y : ↑s
hy : inclusion h y = ⟨x, hx⟩
⊢ x ∈ s
state_after: no goals
tactic: exact mem_of_eq_of_mem (congr_arg Subtype.val hy).symm y.prop
Theorem: Submonoid.iSup_induction'
File: Mathlib/Algebra/Group/Submonoid/Membership.lean

Proof steps:
state_before: M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : MulOneClass M
ι : Sort u_4
S : ι → Submonoid M
C : (x : M) → x ∈ ⨆ i, S i → Prop
mem : ∀ (i : ι) (x : M) (hxS : x ∈ S i), C x ⋯
one : C 1 ⋯
mul : ∀ (x y : M) (hx : x ∈ ⨆ i, S i) (hy : y ∈ ⨆ i, S i), C x hx → C y hy → C (x * y) ⋯
x : M
hx : x ∈ ⨆ i, S i
⊢ C x hx
state_after: M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : MulOneClass M
ι : Sort u_4
S : ι → Submonoid M
C : (x : M) → x ∈ ⨆ i, S i → Prop
mem : ∀ (i : ι) (x : M) (hxS : x ∈ S i), C x ⋯
one : C 1 ⋯
mul : ∀ (x y : M) (hx : x ∈ ⨆ i, S i) (hy : y ∈ ⨆ i, S i), C x hx → C y hy → C (x * y) ⋯
x : M
hx : x ∈ ⨆ i, S i
⊢ ∃ (Hx : x ∈ ⨆ i, S i), C x Hx
tactic: refine Exists.elim (?_ : ∃ Hx, C x Hx) fun (hx : x ∈ ⨆ i, S i) (hc : C x hx) => hc
state_before: M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : MulOneClass M
ι : Sort u_4
S : ι → Submonoid M
C : (x : M) → x ∈ ⨆ i, S i → Prop
mem : ∀ (i : ι) (x : M) (hxS : x ∈ S i), C x ⋯
one : C 1 ⋯
mul : ∀ (x y : M) (hx : x ∈ ⨆ i, S i) (hy : y ∈ ⨆ i, S i), C x hx → C y hy → C (x * y) ⋯
x : M
hx : x ∈ ⨆ i, S i
⊢ ∃ (Hx : x ∈ ⨆ i, S i), C x Hx
state_after: case refine_1
M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : MulOneClass M
ι : Sort u_4
S : ι → Submonoid M
C : (x : M) → x ∈ ⨆ i, S i → Prop
mem : ∀ (i : ι) (x : M) (hxS : x ∈ S i), C x ⋯
one : C 1 ⋯
mul : ∀ (x y : M) (hx : x ∈ ⨆ i, S i) (hy : y ∈ ⨆ i, S i), C x hx → C y hy → C (x * y) ⋯
x✝ : M
hx✝ : x✝ ∈ ⨆ i, S i
i : ι
x : M
hx : x ∈ S i
⊢ (fun m => ∃ (hm : m ∈ ⨆ i, S i), C m hm) x

case refine_2
M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : MulOneClass M
ι : Sort u_4
S : ι → Submonoid M
C : (x : M) → x ∈ ⨆ i, S i → Prop
mem : ∀ (i : ι) (x : M) (hxS : x ∈ S i), C x ⋯
one : C 1 ⋯
mul : ∀ (x y : M) (hx : x ∈ ⨆ i, S i) (hy : y ∈ ⨆ i, S i), C x hx → C y hy → C (x * y) ⋯
x : M
hx : x ∈ ⨆ i, S i
⊢ (fun m => ∃ (hm : m ∈ ⨆ i, S i), C m hm) 1

case refine_3
M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : MulOneClass M
ι : Sort u_4
S : ι → Submonoid M
C : (x : M) → x ∈ ⨆ i, S i → Prop
mem : ∀ (i : ι) (x : M) (hxS : x ∈ S i), C x ⋯
one : C 1 ⋯
mul : ∀ (x y : M) (hx : x ∈ ⨆ i, S i) (hy : y ∈ ⨆ i, S i), C x hx → C y hy → C (x * y) ⋯
x✝ : M
hx : x✝ ∈ ⨆ i, S i
x y : M
⊢ (fun m => ∃ (hm : m ∈ ⨆ i, S i), C m hm) x →
    (fun m => ∃ (hm : m ∈ ⨆ i, S i), C m hm) y → (fun m => ∃ (hm : m ∈ ⨆ i, S i), C m hm) (x * y)
tactic: refine @iSup_induction _ _ ι S (fun m => ∃ hm, C m hm) _ hx (fun i x hx => ?_) ?_ fun x y => ?_
Theorem: edist_sub_right
File: Mathlib/Topology/MetricSpace/IsometricSMul.lean

Proof steps:
state_before: M : Type u
G : Type v
X : Type w
inst✝⁶ : PseudoEMetricSpace X
inst✝⁵ : Group G
inst✝⁴ : MulAction G X
inst✝³ : IsometricSMul G X
inst✝² : DivInvMonoid M
inst✝¹ : PseudoEMetricSpace M
inst✝ : IsometricSMul Mᵐᵒᵖ M
a b c : M
⊢ edist (a / c) (b / c) = edist a b
state_after: no goals
tactic: simp only [div_eq_mul_inv, edist_mul_right]
Theorem: CochainComplex.mappingCone.d_fst_v'
File: Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{?u.94969, u_1} C
inst✝³ : Category.{?u.94973, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
i j : ℤ
hij : i + 1 = j
⊢ i - 1 + 1 = i
state_after: no goals
tactic: omega
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.94973, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
i j : ℤ
hij : i + 1 = j
⊢ i - 1 + 1 = i
state_after: no goals
tactic: omega
Theorem: Rack.self_act_act_eq
File: Mathlib/Algebra/Quandle.lean

Proof steps:
state_before: R : Type u_1
inst✝ : Rack R
x y : R
⊢ (x ◃ x) ◃ y = x ◃ y
state_after: no goals
tactic: rw [← right_inv x y, ← self_distrib]
Theorem: Convex.mem_toCone'
File: Mathlib/Analysis/Convex/Cone/Basic.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
hs : Convex 𝕜 s
x : E
⊢ x ∈ toCone s hs ↔ ∃ c, 0 < c ∧ c • x ∈ s
state_after: case refine_1
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
hs : Convex 𝕜 s
x : E
⊢ (∃ c, 0 < c ∧ ∃ y ∈ s, c • y = x) → ∃ c, 0 < c ∧ c • x ∈ s

case refine_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
hs : Convex 𝕜 s
x : E
⊢ (∃ c, 0 < c ∧ c • x ∈ s) → ∃ c, 0 < c ∧ ∃ y ∈ s, c • y = x
tactic: refine hs.mem_toCone.trans ⟨?_, ?_⟩
Theorem: Quaternion.hasSum_coe
File: Mathlib/Analysis/Quaternion.lean

Proof steps:
state_before: α : Type u_1
f : α → ℝ
r : ℝ
h : HasSum (fun a => ↑(f a)) ↑r
⊢ HasSum f r
state_after: no goals
tactic: simpa only using h.map (show ℍ →ₗ[ℝ] ℝ from QuaternionAlgebra.reₗ _ _) continuous_re
state_before: α : Type u_1
f : α → ℝ
r : ℝ
h : HasSum f r
⊢ HasSum (fun a => ↑(f a)) ↑r
state_after: no goals
tactic: simpa only using h.map (algebraMap ℝ ℍ) (continuous_algebraMap _ _)
Theorem: CategoryTheory.ShortComplex.HomotopyEquiv.refl_homotopyInvHomId
File: Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean

Proof steps:
state_before: C : Type u_1
inst✝¹ : Category.{?u.237910, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ₁ φ₂ φ₃ φ₄ : S₁ ⟶ S₂
S : ShortComplex C
⊢ 𝟙 S ≫ 𝟙 S = 𝟙 S
state_after: no goals
tactic: simp
state_before: C : Type u_1
inst✝¹ : Category.{?u.237910, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ₁ φ₂ φ₃ φ₄ : S₁ ⟶ S₂
S : ShortComplex C
⊢ 𝟙 S ≫ 𝟙 S = 𝟙 S
state_after: no goals
tactic: simp
Theorem: Perfection.coeff_iterate_frobenius
File: Mathlib/RingTheory/Perfection.lean

Proof steps:
state_before: R : Type u₁
inst✝¹ : CommSemiring R
p : ℕ
hp : Fact (Nat.Prime p)
inst✝ : CharP R p
f : Ring.Perfection R p
n m✝ m : ℕ
ih : (coeff R p (n + m)) ((⇑(frobenius (Ring.Perfection R p) p))^[m] f) = (coeff R p n) f
⊢ (coeff R p (n + m.succ)) ((⇑(frobenius (Ring.Perfection R p) p))^[m.succ] f) = (coeff R p n) f
state_after: no goals
tactic: erw [Function.iterate_succ_apply', coeff_frobenius, ih]
Theorem: Finset.sum_val
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

Proof steps:
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : CommMonoid α
s : Finset α
⊢ s.val.prod = s.prod id
state_after: no goals
tactic: rw [Finset.prod, Multiset.map_id]
Theorem: ZNum.zneg_zneg
File: Mathlib/Data/Num/Lemmas.lean

Proof steps:
state_before: α : Type u_1
n : ZNum
⊢ - -n = n
state_after: no goals
tactic: cases n <;> rfl
Theorem: CategoryTheory.Functor.ext
File: Mathlib/CategoryTheory/EqToHom.lean

Proof steps:
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
β : Sort u_1
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F G : C ⥤ D
h_obj : ∀ (X : C), F.obj X = G.obj X
h_map : autoParam (∀ (X Y : C) (f : X ⟶ Y), F.map f = eqToHom ⋯ ≫ G.map f ≫ eqToHom ⋯) _auto✝
⊢ F = G
state_after: no goals
tactic: match F, G with
  | mk F_pre _ _ , mk G_pre _ _ =>
    match F_pre, G_pre with  -- Porting note: did not unfold the Prefunctor unlike Lean3
    | Prefunctor.mk F_obj _ , Prefunctor.mk G_obj _ =>
    obtain rfl : F_obj = G_obj := by
      ext X
      apply h_obj
    congr
    funext X Y f
    simpa using h_map X Y f
Theorem: LinearMap.toSeminorm_comp
File: Mathlib/Analysis/LocallyConvex/WeakDual.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type u_4
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
f : F →ₗ[𝕜] 𝕜
g : E →ₗ[𝕜] F
⊢ f.toSeminorm.comp g = (f ∘ₗ g).toSeminorm
state_after: case h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type u_4
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
f : F →ₗ[𝕜] 𝕜
g : E →ₗ[𝕜] F
x✝ : E
⊢ (f.toSeminorm.comp g) x✝ = (f ∘ₗ g).toSeminorm x✝
tactic: ext
state_before: case h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type u_4
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
f : F →ₗ[𝕜] 𝕜
g : E →ₗ[𝕜] F
x✝ : E
⊢ (f.toSeminorm.comp g) x✝ = (f ∘ₗ g).toSeminorm x✝
state_after: no goals
tactic: simp only [Seminorm.comp_apply, toSeminorm_apply, coe_comp, Function.comp_apply]
Theorem: one_lt_mabs
File: Mathlib/Algebra/Order/Group/Unbundled/Abs.lean

Proof steps:
state_before: α : Type u_1
inst✝² : Group α
inst✝¹ : LinearOrder α
a✝ b✝ : α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c : α
⊢ 1 < mabs a ↔ a ≠ 1
state_after: case inl
α : Type u_1
inst✝² : Group α
inst✝¹ : LinearOrder α
a✝ b✝ : α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c : α
ha : a < 1
⊢ 1 < mabs a ↔ a ≠ 1

case inr.inl
α : Type u_1
inst✝² : Group α
inst✝¹ : LinearOrder α
a b✝ : α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
b c : α
⊢ 1 < mabs 1 ↔ 1 ≠ 1

case inr.inr
α : Type u_1
inst✝² : Group α
inst✝¹ : LinearOrder α
a✝ b✝ : α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c : α
ha : 1 < a
⊢ 1 < mabs a ↔ a ≠ 1
tactic: obtain ha | rfl | ha := lt_trichotomy a 1
Theorem: IsGreatest.union
File: Mathlib/Order/Bounds/Basic.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝² : Preorder α
inst✝¹ : Preorder β
s✝ t✝ : Set α
a✝ b✝ : α
inst✝ : LinearOrder γ
a b : γ
s t : Set γ
ha : IsGreatest s a
hb : IsGreatest t b
⊢ max a b ∈ s ∪ t
state_after: no goals
tactic: rcases le_total a b with h | h <;> simp [h, ha.1, hb.1]
Theorem: Batteries.TransOrd.instLexOrd
File: .lake/packages/batteries/Batteries/Classes/Order.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝³ : Ord α
inst✝² : Ord β
inst✝¹ : TransOrd α
inst✝ : TransOrd β
⊢ TransOrd (α × β)
state_after: α : Type u_1
β : Type u_2
inst✝³ : Ord α
inst✝² : Ord β
inst✝¹ : TransOrd α
inst✝ : TransOrd β
⊢ TransCmp (compareLex (compareOn fun x => x.fst) (compareOn fun x => x.snd))
tactic: rw [TransOrd, lexOrd_def]
state_before: α : Type u_1
β : Type u_2
inst✝³ : Ord α
inst✝² : Ord β
inst✝¹ : TransOrd α
inst✝ : TransOrd β
⊢ TransCmp (compareLex (compareOn fun x => x.fst) (compareOn fun x => x.snd))
state_after: no goals
tactic: infer_instance
Theorem: Real.Angle.coe_expMapCircle
File: Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean

Proof steps:
state_before: θ : Angle
⊢ ↑θ.expMapCircle = ↑θ.cos + ↑θ.sin * I
state_after: case h
x✝ : ℝ
⊢ ↑(↑x✝).expMapCircle = ↑(↑x✝).cos + ↑(↑x✝).sin * I
tactic: induction θ using Real.Angle.induction_on
state_before: case h
x✝ : ℝ
⊢ ↑(↑x✝).expMapCircle = ↑(↑x✝).cos + ↑(↑x✝).sin * I
state_after: no goals
tactic: simp [exp_mul_I]
Theorem: AlgebraicTopology.DoldKan.P_f_0_eq
File: Mathlib/AlgebraicTopology/DoldKan/Projections.lean

Proof steps:
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
q : ℕ
⊢ (P q).f 0 = 𝟙 (K[X].X 0)
state_after: case zero
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
⊢ (P 0).f 0 = 𝟙 (K[X].X 0)

case succ
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
q : ℕ
hq : (P q).f 0 = 𝟙 (K[X].X 0)
⊢ (P (q + 1)).f 0 = 𝟙 (K[X].X 0)
tactic: induction' q with q hq
Theorem: MeasureTheory.Measure.sum_fintype
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
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f : α → β
inst✝ : Fintype ι
μ : ι → Measure α
⊢ sum μ = ∑ i : ι, μ i
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f : α → β
inst✝ : Fintype ι
μ : ι → Measure α
s : Set α
hs : MeasurableSet s
⊢ (sum μ) s = (∑ i : ι, μ i) s
tactic: ext1 s hs
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f : α → β
inst✝ : Fintype ι
μ : ι → Measure α
s : Set α
hs : MeasurableSet s
⊢ (sum μ) s = (∑ i : ι, μ i) s
state_after: no goals
tactic: simp only [sum_apply, finset_sum_apply, hs, tsum_fintype]
Theorem: MeasureTheory.FiniteMeasure.average_eq_integral_normalize
File: Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean

Proof steps:
state_before: Ω : Type u_1
inst✝² : Nonempty Ω
m0 : MeasurableSpace Ω
μ : FiniteMeasure Ω
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
nonzero : μ ≠ 0
f : Ω → E
⊢ average (↑μ) f = ∫ (ω : Ω), f ω ∂↑μ.normalize
state_after: Ω : Type u_1
inst✝² : Nonempty Ω
m0 : MeasurableSpace Ω
μ : FiniteMeasure Ω
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
nonzero : μ ≠ 0
f : Ω → E
⊢ ∫ (x : Ω), f x ∂(↑μ univ)⁻¹ • ↑μ = ∫ (ω : Ω), f ω ∂μ.mass⁻¹ • ↑μ
tactic: rw [μ.toMeasure_normalize_eq_of_nonzero nonzero, average]
state_before: Ω : Type u_1
inst✝² : Nonempty Ω
m0 : MeasurableSpace Ω
μ : FiniteMeasure Ω
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
nonzero : μ ≠ 0
f : Ω → E
⊢ ∫ (x : Ω), f x ∂(↑μ univ)⁻¹ • ↑μ = ∫ (ω : Ω), f ω ∂μ.mass⁻¹ • ↑μ
state_after: case e_μ.e_a
Ω : Type u_1
inst✝² : Nonempty Ω
m0 : MeasurableSpace Ω
μ : FiniteMeasure Ω
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
nonzero : μ ≠ 0
f : Ω → E
⊢ (↑μ univ)⁻¹ = ↑ENNReal.ofNNRealHom.toMonoidWithZeroHom μ.mass⁻¹
tactic: congr
state_before: case e_μ.e_a
Ω : Type u_1
inst✝² : Nonempty Ω
m0 : MeasurableSpace Ω
μ : FiniteMeasure Ω
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
nonzero : μ ≠ 0
f : Ω → E
⊢ (↑μ univ)⁻¹ = ↑ENNReal.ofNNRealHom.toMonoidWithZeroHom μ.mass⁻¹
state_after: no goals
tactic: simp [ENNReal.coe_inv (μ.mass_nonzero_iff.mpr nonzero), ennreal_mass]