ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: MvPolynomial.comap_id_apply
File: Mathlib/Algebra/MvPolynomial/Comap.lean

Proof steps:
state_before: σ : Type u_1
τ : Type u_2
υ : Type u_3
R : Type u_4
inst✝ : CommSemiring R
x : σ → R
⊢ comap (AlgHom.id R (MvPolynomial σ R)) x = x
state_after: case h
σ : Type u_1
τ : Type u_2
υ : Type u_3
R : Type u_4
inst✝ : CommSemiring R
x : σ → R
i : σ
⊢ comap (AlgHom.id R (MvPolynomial σ R)) x i = x i
tactic: funext i
state_before: case h
σ : Type u_1
τ : Type u_2
υ : Type u_3
R : Type u_4
inst✝ : CommSemiring R
x : σ → R
i : σ
⊢ comap (AlgHom.id R (MvPolynomial σ R)) x i = x i
state_after: no goals
tactic: simp only [comap, AlgHom.id_apply, id, aeval_X]
Theorem: Nat.Ico_succ_singleton
File: Mathlib/Order/Interval/Finset/Nat.lean

Proof steps:
state_before: a b c : ℕ
⊢ Ico a (a + 1) = {a}
state_after: no goals
tactic: rw [Ico_succ_right, Icc_self]
Theorem: Algebra.norm_eq_matrix_det
File: Mathlib/RingTheory/Norm/Defs.lean

Proof steps:
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : Ring S
inst✝⁷ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Field F
inst✝³ : Algebra K L
inst✝² : Algebra K F
ι : Type w
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
b : Basis ι R S
s : S
⊢ (norm R) s = ((leftMulMatrix b) s).det
state_after: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : Ring S
inst✝⁷ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Field F
inst✝³ : Algebra K L
inst✝² : Algebra K F
ι : Type w
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
b : Basis ι R S
s : S
⊢ ((toMatrix b b) ((lmul R S) s)).det = ((toMatrix b b) (mulLeft R s)).det
tactic: rw [norm_apply, ← LinearMap.det_toMatrix b, ← toMatrix_lmul_eq]
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : Ring S
inst✝⁷ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Field F
inst✝³ : Algebra K L
inst✝² : Algebra K F
ι : Type w
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
b : Basis ι R S
s : S
⊢ ((toMatrix b b) ((lmul R S) s)).det = ((toMatrix b b) (mulLeft R s)).det
state_after: no goals
tactic: rfl
Theorem: Ordinal.lift_le
File: Mathlib/SetTheory/Ordinal/Basic.lean

Proof steps:
state_before: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a b : Ordinal.{v}
α : Type v
r : α → α → Prop
x✝¹ : IsWellOrder α r
β : Type v
s : β → β → Prop
x✝ : IsWellOrder β s
⊢ lift.{u, v} (type r) ≤ lift.{u, v} (type s) ↔ type r ≤ type s
state_after: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a b : Ordinal.{v}
α : Type v
r : α → α → Prop
x✝¹ : IsWellOrder α r
β : Type v
s : β → β → Prop
x✝ : IsWellOrder β s
⊢ lift.{max v u, v} (type r) ≤ lift.{max v u, v} (type s) ↔ type r ≤ type s
tactic: rw [← lift_umax]
state_before: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a b : Ordinal.{v}
α : Type v
r : α → α → Prop
x✝¹ : IsWellOrder α r
β : Type v
s : β → β → Prop
x✝ : IsWellOrder β s
⊢ lift.{max v u, v} (type r) ≤ lift.{max v u, v} (type s) ↔ type r ≤ type s
state_after: no goals
tactic: exact lift_type_le.{_,_,u}
Theorem: Set.Iic.isCompl_inf_inf_of_isCompl_of_le
File: Mathlib/Order/ModularLattice.lean

Proof steps:
state_before: α : Type u_1
inst✝² : Lattice α
inst✝¹ : BoundedOrder α
inst✝ : IsModularLattice α
a b c : α
h₁ : IsCompl b c
h₂ : b ≤ a
⊢ IsCompl ⟨a ⊓ b, ⋯⟩ ⟨a ⊓ c, ⋯⟩
state_after: case disjoint
α : Type u_1
inst✝² : Lattice α
inst✝¹ : BoundedOrder α
inst✝ : IsModularLattice α
a b c : α
h₁ : IsCompl b c
h₂ : b ≤ a
⊢ Disjoint ⟨a ⊓ b, ⋯⟩ ⟨a ⊓ c, ⋯⟩

case codisjoint
α : Type u_1
inst✝² : Lattice α
inst✝¹ : BoundedOrder α
inst✝ : IsModularLattice α
a b c : α
h₁ : IsCompl b c
h₂ : b ≤ a
⊢ Codisjoint ⟨a ⊓ b, ⋯⟩ ⟨a ⊓ c, ⋯⟩
tactic: constructor
Theorem: MeasureTheory.OuterMeasure.isometry_comap_mkMetric
File: Mathlib/MeasureTheory/Measure/Hausdorff.lean

Proof steps:
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹ : EMetricSpace X
inst✝ : EMetricSpace Y
m : ℝ≥0∞ → ℝ≥0∞
f : X → Y
hf : Isometry f
H : Monotone m ∨ Surjective f
⊢ (comap f) (mkMetric m) = mkMetric m
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹ : EMetricSpace X
inst✝ : EMetricSpace Y
m : ℝ≥0∞ → ℝ≥0∞
f : X → Y
hf : Isometry f
H : Monotone m ∨ Surjective f
⊢ ⨆ i, ⨆ (_ : i > 0), (comap f) (boundedBy (extend fun s x => m (diam s))) =
    ⨆ r, ⨆ (_ : r > 0), boundedBy (extend fun s x => m (diam s))
tactic: simp only [mkMetric, mkMetric', mkMetric'.pre, inducedOuterMeasure, comap_iSup]
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹ : EMetricSpace X
inst✝ : EMetricSpace Y
m : ℝ≥0∞ → ℝ≥0∞
f : X → Y
hf : Isometry f
H : Monotone m ∨ Surjective f
⊢ ⨆ i, ⨆ (_ : i > 0), (comap f) (boundedBy (extend fun s x => m (diam s))) =
    ⨆ r, ⨆ (_ : r > 0), boundedBy (extend fun s x => m (diam s))
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹ : EMetricSpace X
inst✝ : EMetricSpace Y
m : ℝ≥0∞ → ℝ≥0∞
f : X → Y
hf : Isometry f
H : Monotone m ∨ Surjective f
ε : ℝ≥0∞
hε : id ε > 0
⊢ (comap f) (boundedBy (extend fun s x => m (diam s))) = boundedBy (extend fun s x => m (diam s))
tactic: refine surjective_id.iSup_congr id fun ε => surjective_id.iSup_congr id fun hε => ?_
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹ : EMetricSpace X
inst✝ : EMetricSpace Y
m : ℝ≥0∞ → ℝ≥0∞
f : X → Y
hf : Isometry f
H : Monotone m ∨ Surjective f
ε : ℝ≥0∞
hε : id ε > 0
⊢ (comap f) (boundedBy (extend fun s x => m (diam s))) = boundedBy (extend fun s x => m (diam s))
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹ : EMetricSpace X
inst✝ : EMetricSpace Y
m : ℝ≥0∞ → ℝ≥0∞
f : X → Y
hf : Isometry f
H : Monotone m ∨ Surjective f
ε : ℝ≥0∞
hε : id ε > 0
⊢ (boundedBy fun s => extend (fun s x => m (diam s)) (f '' s)) = boundedBy (extend fun s x => m (diam s))

ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹ : EMetricSpace X
inst✝ : EMetricSpace Y
m : ℝ≥0∞ → ℝ≥0∞
f : X → Y
hf : Isometry f
H : Monotone m ∨ Surjective f
ε : ℝ≥0∞
hε : id ε > 0
⊢ Monotone m → Monotone fun s => extend (fun s x => m (diam s)) ↑s
tactic: rw [comap_boundedBy _ (H.imp _ id)]
Theorem: ext_nat'
File: Mathlib/Data/Nat/Cast/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
F : Type u_5
inst✝³ : AddMonoidWithOne B
inst✝² : FunLike F ℕ A
inst✝¹ : AddMonoid A
inst✝ : AddMonoidHomClass F ℕ A
f g : F
h : f 1 = g 1
⊢ ∀ (x : ℕ), f x = g x
state_after: α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
F : Type u_5
inst✝³ : AddMonoidWithOne B
inst✝² : FunLike F ℕ A
inst✝¹ : AddMonoid A
inst✝ : AddMonoidHomClass F ℕ A
f g : F
h : f 1 = g 1
n : ℕ
⊢ f n = g n
tactic: intro n
state_before: α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
F : Type u_5
inst✝³ : AddMonoidWithOne B
inst✝² : FunLike F ℕ A
inst✝¹ : AddMonoid A
inst✝ : AddMonoidHomClass F ℕ A
f g : F
h : f 1 = g 1
n : ℕ
⊢ f n = g n
state_after: no goals
tactic: induction n with
    | zero => simp_rw [map_zero f, map_zero g]
    | succ n ihn =>
      simp [h, ihn]
Theorem: Set.Nontrivial.einfsep_exists_of_finite
File: Mathlib/Topology/MetricSpace/Infsep.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : EDist α
x y : α
s t : Set α
inst✝ : Finite ↑s
hs : s.Nontrivial
⊢ ∃ x ∈ s, ∃ y ∈ s, x ≠ y ∧ s.einfsep = edist x y
state_after: no goals
tactic: classical
    cases nonempty_fintype s
    simp_rw [einfsep_of_fintype]
    rcases Finset.exists_mem_eq_inf s.offDiag.toFinset (by simpa) (uncurry edist) with ⟨w, hxy, hed⟩
    simp_rw [mem_toFinset] at hxy
    exact ⟨w.fst, hxy.1, w.snd, hxy.2.1, hxy.2.2, hed⟩
Theorem: midpoint_zero_add
File: Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean

Proof steps:
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁷ : Ring R
inst✝⁶ : Invertible 2
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x✝ y✝ z : P
x y : V
⊢ 0 -ᵥ x = y -ᵥ (x + y)
state_after: no goals
tactic: simp [sub_add_eq_sub_sub_swap]
Theorem: BoxIntegral.integralSum_add
File: Mathlib/Analysis/BoxIntegral/Basic.lean

Proof steps:
state_before: ι : Type u
E : Type v
F : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
I J : Box ι
π✝ : TaggedPrepartition I
f g : (ι → ℝ) → E
vol : ι →ᵇᵃ[⊤] E →L[ℝ] F
π : TaggedPrepartition I
⊢ integralSum (f + g) vol π = integralSum f vol π + integralSum g vol π
state_after: no goals
tactic: simp only [integralSum, Pi.add_apply, (vol _).map_add, Finset.sum_add_distrib]
Theorem: Set.subset_center_units
File: Mathlib/Algebra/Group/Center.lean

Proof steps:
state_before: M : Type u_1
S T : Set M
inst✝ : Monoid M
x✝ : Mˣ
ha : x✝ ∈ Units.val ⁻¹' center M
⊢ x✝ ∈ center Mˣ
state_after: M : Type u_1
S T : Set M
inst✝ : Monoid M
x✝ : Mˣ
ha : x✝ ∈ Units.val ⁻¹' center M
⊢ ∀ (g : Mˣ), g * x✝ = x✝ * g
tactic: rw [_root_.Semigroup.mem_center_iff]
state_before: M : Type u_1
S T : Set M
inst✝ : Monoid M
x✝ : Mˣ
ha : x✝ ∈ Units.val ⁻¹' center M
⊢ ∀ (g : Mˣ), g * x✝ = x✝ * g
state_after: M : Type u_1
S T : Set M
inst✝ : Monoid M
x✝ : Mˣ
ha : x✝ ∈ Units.val ⁻¹' center M
g✝ : Mˣ
⊢ g✝ * x✝ = x✝ * g✝
tactic: intro _
state_before: M : Type u_1
S T : Set M
inst✝ : Monoid M
x✝ : Mˣ
ha : x✝ ∈ Units.val ⁻¹' center M
g✝ : Mˣ
⊢ g✝ * x✝ = x✝ * g✝
state_after: no goals
tactic: rw [← Units.eq_iff, Units.val_mul, Units.val_mul, ha.comm]
Theorem: isOpen_extChartAt_preimage
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 : M
s : Set E
hs : IsOpen s
⊢ IsOpen ((chartAt H x).source ∩ ↑(extChartAt I x) ⁻¹' s)
state_after: 𝕜 : 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 : M
s : Set E
hs : IsOpen s
⊢ IsOpen ((extChartAt I x).source ∩ ↑(extChartAt I x) ⁻¹' s)
tactic: rw [← extChartAt_source I]
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 : M
s : Set E
hs : IsOpen s
⊢ IsOpen ((extChartAt I x).source ∩ ↑(extChartAt I x) ⁻¹' s)
state_after: no goals
tactic: exact isOpen_extChartAt_preimage' I x hs
Theorem: InnerProductSpace.Core.inner_mul_symm_re_eq_norm
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ re (⟪x, y⟫_𝕜 * ⟪y, x⟫_𝕜) = ‖⟪x, y⟫_𝕜 * ⟪y, x⟫_𝕜‖
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ re (⟪y, x⟫_𝕜 * (starRingEnd 𝕜) ⟪y, x⟫_𝕜) = ‖⟪y, x⟫_𝕜 * (starRingEnd 𝕜) ⟪y, x⟫_𝕜‖
tactic: rw [← inner_conj_symm, mul_comm]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ re (⟪y, x⟫_𝕜 * (starRingEnd 𝕜) ⟪y, x⟫_𝕜) = ‖⟪y, x⟫_𝕜 * (starRingEnd 𝕜) ⟪y, x⟫_𝕜‖
state_after: no goals
tactic: exact re_eq_norm_of_mul_conj (inner y x)
Theorem: TopologicalSpace.IsTopologicalBasis.isOpen
File: Mathlib/Topology/Bases.lean

Proof steps:
state_before: α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
hs : s ∈ b
⊢ IsOpen s
state_after: no goals
tactic: exact .basic s hs
Theorem: EquicontinuousOn.inducing_uniformOnFun_iff_pi'
File: Mathlib/Topology/UniformSpace/Ascoli.lean

Proof steps:
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
F : ι → X → α
G : ι → β → α
inst✝ : TopologicalSpace ι
𝔖 : Set (Set X)
𝔖_compact : ∀ K ∈ 𝔖, IsCompact K
F_eqcont : ∀ K ∈ 𝔖, EquicontinuousOn F K
⊢ Inducing (⇑(UniformOnFun.ofFun 𝔖) ∘ F) ↔ Inducing ((⋃₀ 𝔖).restrict ∘ F)
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
F : ι → X → α
G : ι → β → α
inst✝ : TopologicalSpace ι
𝔖 : Set (Set X)
𝔖_compact : ∀ K ∈ 𝔖, IsCompact K
F_eqcont : ∀ K ∈ 𝔖, EquicontinuousOn F K
⊢ inst✝ = TopologicalSpace.induced (⇑(UniformOnFun.ofFun 𝔖) ∘ F) (UniformOnFun.topologicalSpace X α 𝔖) ↔
    inst✝ = TopologicalSpace.induced ((⋃₀ 𝔖).restrict ∘ F) Pi.topologicalSpace
tactic: rw [inducing_iff, inducing_iff]
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
F : ι → X → α
G : ι → β → α
inst✝ : TopologicalSpace ι
𝔖 : Set (Set X)
𝔖_compact : ∀ K ∈ 𝔖, IsCompact K
F_eqcont : ∀ K ∈ 𝔖, EquicontinuousOn F K
⊢ inst✝ = TopologicalSpace.induced (⇑(UniformOnFun.ofFun 𝔖) ∘ F) (UniformOnFun.topologicalSpace X α 𝔖) ↔
    inst✝ = TopologicalSpace.induced ((⋃₀ 𝔖).restrict ∘ F) Pi.topologicalSpace
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
F : ι → X → α
G : ι → β → α
inst✝ : TopologicalSpace ι
𝔖 : Set (Set X)
𝔖_compact : ∀ K ∈ 𝔖, IsCompact K
F_eqcont : ∀ K ∈ 𝔖, EquicontinuousOn F K
⊢ inst✝ = UniformSpace.toTopologicalSpace ↔ inst✝ = UniformSpace.toTopologicalSpace
tactic: change (_ = ((UniformOnFun.uniformSpace X α 𝔖).comap F).toTopologicalSpace) ↔
    (_ = ((Pi.uniformSpace _).comap ((⋃₀ 𝔖).restrict ∘ F)).toTopologicalSpace)
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
F : ι → X → α
G : ι → β → α
inst✝ : TopologicalSpace ι
𝔖 : Set (Set X)
𝔖_compact : ∀ K ∈ 𝔖, IsCompact K
F_eqcont : ∀ K ∈ 𝔖, EquicontinuousOn F K
⊢ inst✝ = UniformSpace.toTopologicalSpace ↔ inst✝ = UniformSpace.toTopologicalSpace
state_after: no goals
tactic: rw [← EquicontinuousOn.comap_uniformOnFun_eq 𝔖_compact F_eqcont]
Theorem: Finite.isDomain_to_isField
File: Mathlib/RingTheory/LittleWedderburn.lean

Proof steps:
state_before: D : Type u_1
inst✝² : Finite D
inst✝¹ : Ring D
inst✝ : IsDomain D
⊢ IsField D
state_after: no goals
tactic: classical
  cases nonempty_fintype D
  let _ := Fintype.divisionRingOfIsDomain D
  let _ := littleWedderburn D
  exact Field.toIsField D
Theorem: CategoryTheory.ShortComplex.cyclesMapIso_hom
File: Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean

Proof steps:
state_before: C : Type u_1
inst✝³ : Category.{?u.121680, u_1} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
e : S₁ ≅ S₂
inst✝¹ : S₁.HasLeftHomology
inst✝ : S₂.HasLeftHomology
⊢ cyclesMap e.hom ≫ cyclesMap e.inv = 𝟙 S₁.cycles
state_after: no goals
tactic: rw [← cyclesMap_comp, e.hom_inv_id, cyclesMap_id]
state_before: C : Type u_1
inst✝³ : Category.{?u.121680, u_1} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
e : S₁ ≅ S₂
inst✝¹ : S₁.HasLeftHomology
inst✝ : S₂.HasLeftHomology
⊢ cyclesMap e.inv ≫ cyclesMap e.hom = 𝟙 S₂.cycles
state_after: no goals
tactic: rw [← cyclesMap_comp, e.inv_hom_id, cyclesMap_id]
Theorem: Monoid.IsTorsionFree.card_add_card_sub_one_le_card_mul
File: Mathlib/Combinatorics/SetFamily/CauchyDavenport.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : Group α
inst✝ : DecidableEq α
x y : Finset α × Finset α
s t : Finset α
h : IsTorsionFree α
hs : s.Nonempty
ht : t.Nonempty
⊢ s.card + t.card - 1 ≤ (s * t).card
state_after: no goals
tactic: simpa only [h.minOrder, min_eq_right, le_top, Nat.cast_le] using Finset.min_le_card_mul hs ht
Theorem: EReal.inv_neg
File: Mathlib/Data/Real/EReal.lean

Proof steps:
state_before: a : EReal
⊢ (-a)⁻¹ = -a⁻¹
state_after: case h_bot

⊢ (-⊥)⁻¹ = -⊥⁻¹

case h_real
a✝ : ℝ
⊢ (-↑a✝)⁻¹ = -(↑a✝)⁻¹

case h_top

⊢ (-⊤)⁻¹ = -⊤⁻¹
tactic: induction a
Theorem: Ring.two_ne_zero
File: Mathlib/Algebra/CharP/Defs.lean

Proof steps:
state_before: R✝ : Type u_1
R : Type u_2
inst✝¹ : NonAssocSemiring R
inst✝ : Nontrivial R
hR : ringChar R ≠ 2
⊢ 2 ≠ 0
state_after: R✝ : Type u_1
R : Type u_2
inst✝¹ : NonAssocSemiring R
inst✝ : Nontrivial R
hR : ringChar R ≠ 2
⊢ ¬(ringChar R = 1 ∨ ringChar R = 2)
tactic: rw [Ne, (by norm_cast : (2 : R) = (2 : ℕ)), ringChar.spec, Nat.dvd_prime Nat.prime_two]
state_before: R✝ : Type u_1
R : Type u_2
inst✝¹ : NonAssocSemiring R
inst✝ : Nontrivial R
hR : ringChar R ≠ 2
⊢ ¬(ringChar R = 1 ∨ ringChar R = 2)
state_after: no goals
tactic: exact mt (or_iff_left hR).mp CharP.ringChar_ne_one
Theorem: CategoryTheory.ShortComplex.RightHomologyData.opcyclesIso_hom_comp_descQ
File: Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean

Proof steps:
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
h : S.RightHomologyData
A : C
k : S.X₂ ⟶ A
hk : S.f ≫ k = 0
inst✝ : S.HasRightHomology
⊢ h.opcyclesIso.hom ≫ h.descQ k hk = S.descOpcycles k hk
state_after: no goals
tactic: rw [← h.opcyclesIso_inv_comp_descOpcycles, Iso.hom_inv_id_assoc]
Theorem: HNNExtension.NormalWord.prod_smul_empty
File: Mathlib/GroupTheory/HNNExtension.lean

Proof steps:
state_before: G : Type u_1
inst✝³ : Group G
A B : Subgroup G
φ : ↥A ≃* ↥B
H : Type u_2
inst✝² : Group H
M : Type u_3
inst✝¹ : Monoid M
d : TransversalPair G A B
inst✝ : DecidableEq G
w : NormalWord d
⊢ ReducedWord.prod φ w.toReducedWord • empty = w
state_after: no goals
tactic: induction w using consRecOn with
  | ofGroup => simp [ofGroup, ReducedWord.prod, of_smul_eq_smul, group_smul_def]
  | cons g u w h1 h2 ih =>
    rw [prod_cons, ← mul_assoc, mul_smul, ih, mul_smul, t_pow_smul_eq_unitsSMul,
      of_smul_eq_smul, unitsSMul]
    rw [dif_neg (not_cancels_of_cons_hyp u w h2)]
    -- The next 3 lines were a single `simp [...]` before leanprover/lean4#2644
    simp only [unitsSMulGroup]
    simp_rw [SetLike.coe_sort_coe]
    erw [(d.compl _).equiv_fst_eq_one_of_mem_of_one_mem (one_mem _) h1]
    ext <;> simp
    -- The next 4 were not needed before leanprover/lean4#2644
    erw [(d.compl _).equiv_snd_eq_inv_mul]
    simp_rw [SetLike.coe_sort_coe]
    erw [(d.compl _).equiv_fst_eq_one_of_mem_of_one_mem (one_mem _) h1]
    simp
Theorem: MeasureTheory.Measure.join_map_join
File: Mathlib/MeasureTheory/Measure/GiryMonad.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure (Measure (Measure α))
⊢ (map join μ).join = μ.join.join
state_after: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure (Measure (Measure α))
⊢ μ.bind join = μ.join.join
tactic: show bind μ join = join (join μ)
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure (Measure (Measure α))
⊢ μ.bind join = μ.join.join
state_after: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure (Measure (Measure α))
⊢ μ.bind join = μ.bind fun a => (id a).bind id
tactic: rw [join_eq_bind, join_eq_bind, bind_bind measurable_id measurable_id]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure (Measure (Measure α))
⊢ μ.bind join = μ.bind fun a => (id a).bind id
state_after: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure (Measure (Measure α))
⊢ join = fun a => (id a).bind id
tactic: apply congr_arg (bind μ)
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure (Measure (Measure α))
⊢ join = fun a => (id a).bind id
state_after: case h
α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure (Measure (Measure α))
ν : Measure (Measure α)
⊢ ν.join = (id ν).bind id
tactic: funext ν
state_before: case h
α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure (Measure (Measure α))
ν : Measure (Measure α)
⊢ ν.join = (id ν).bind id
state_after: no goals
tactic: exact join_eq_bind ν
Theorem: PNat.card_Ico
File: Mathlib/Data/PNat/Interval.lean

Proof steps:
state_before: a b : ℕ+
⊢ (Ico a b).card = ↑b - ↑a
state_after: a b : ℕ+
⊢ (Ico a b).card = (Ico ↑a ↑b).card
tactic: rw [← Nat.card_Ico]
state_before: a b : ℕ+
⊢ (Ico a b).card = (Ico ↑a ↑b).card
state_after: a b : ℕ+
⊢ (Ico a b).card = (map (Embedding.subtype fun n => 0 < n) (Ico a b)).card
tactic: erw [← Finset.map_subtype_embedding_Ico _ a b (fun c x _ hx _ hc _ => hc.trans_le hx)]
state_before: a b : ℕ+
⊢ (Ico a b).card = (map (Embedding.subtype fun n => 0 < n) (Ico a b)).card
state_after: no goals
tactic: rw [card_map]
Theorem: PMF.restrict_toMeasure_support
File: Mathlib/Probability/ProbabilityMassFunction/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : MeasurableSpace α
p✝ : PMF α
s t : Set α
inst✝ : MeasurableSingletonClass α
p : PMF α
⊢ p.toMeasure.restrict p.support = p.toMeasure
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : MeasurableSpace α
p✝ : PMF α
s✝ t : Set α
inst✝ : MeasurableSingletonClass α
p : PMF α
s : Set α
hs : MeasurableSet s
⊢ (p.toMeasure.restrict p.support) s = p.toMeasure s
tactic: ext s hs
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : MeasurableSpace α
p✝ : PMF α
s✝ t : Set α
inst✝ : MeasurableSingletonClass α
p : PMF α
s : Set α
hs : MeasurableSet s
⊢ (p.toMeasure.restrict p.support) s = p.toMeasure s
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : MeasurableSpace α
p✝ : PMF α
s✝ t : Set α
inst✝ : MeasurableSingletonClass α
p : PMF α
s : Set α
hs : MeasurableSet s
⊢ p.toMeasure (s ∩ p.support) = p.toMeasure s
tactic: apply (MeasureTheory.Measure.restrict_apply hs).trans
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : MeasurableSpace α
p✝ : PMF α
s✝ t : Set α
inst✝ : MeasurableSingletonClass α
p : PMF α
s : Set α
hs : MeasurableSet s
⊢ p.toMeasure (s ∩ p.support) = p.toMeasure s
state_after: no goals
tactic: apply toMeasure_apply_inter_support p s hs p.support_countable.measurableSet
Theorem: List.perm_inv_core
File: .lake/packages/batteries/Batteries/Data/List/Perm.lean

Proof steps:
state_before: α : Type u_1
a : α
l₁ l₂ r₁ r₂ : List α
⊢ ∀ (s₁ s₂ : List α), s₁ ~ s₂ → ∀ {l₁ l₂ r₁ r₂ : List α}, l₁ ++ a :: r₁ = s₁ → l₂ ++ a :: r₂ = s₂ → l₁ ++ r₁ ~ l₂ ++ r₂
state_after: α : Type u_1
a : α
l₁ l₂ r₁ r₂ s₁ s₂ : List α
p : s₁ ~ s₂
⊢ ∀ {l₁ l₂ r₁ r₂ : List α}, l₁ ++ a :: r₁ = s₁ → l₂ ++ a :: r₂ = s₂ → l₁ ++ r₁ ~ l₂ ++ r₂
tactic: intro s₁ s₂ p
Theorem: inv_mul_cancel_left₀
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 g h✝ x : G₀
h : a ≠ 0
b : G₀
⊢ a⁻¹ * a * b = b
state_after: no goals
tactic: simp [h]