ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: AddMonoidHom.map_finsum_of_preimage_zero
File: Mathlib/Algebra/BigOperators/Finprod.lean

Proof steps:
state_before: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : M →* N
hf : ∀ (x : M), f x = 1 → x = 1
g : α → M
⊢ f (∏ᶠ (i : α), g i) = ∏ᶠ (i : α), f (g i)
state_after: case pos
G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : M →* N
hf : ∀ (x : M), f x = 1 → x = 1
g : α → M
hg : (mulSupport (g ∘ PLift.down)).Finite
⊢ f (∏ᶠ (i : α), g i) = ∏ᶠ (i : α), f (g i)

case neg
G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : M →* N
hf : ∀ (x : M), f x = 1 → x = 1
g : α → M
hg : ¬(mulSupport (g ∘ PLift.down)).Finite
⊢ f (∏ᶠ (i : α), g i) = ∏ᶠ (i : α), f (g i)
tactic: by_cases hg : (mulSupport <| g ∘ PLift.down).Finite
state_before: case neg
G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : M →* N
hf : ∀ (x : M), f x = 1 → x = 1
g : α → M
hg : ¬(mulSupport (g ∘ PLift.down)).Finite
⊢ f (∏ᶠ (i : α), g i) = ∏ᶠ (i : α), f (g i)
state_after: case neg.hnc
G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : M →* N
hf : ∀ (x : M), f x = 1 → x = 1
g : α → M
hg : ¬(mulSupport (g ∘ PLift.down)).Finite
⊢ ¬(mulSupport ((fun i => f (g i)) ∘ PLift.down)).Finite

case neg.hnc
G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : M →* N
hf : ∀ (x : M), f x = 1 → x = 1
g : α → M
hg : ¬(mulSupport (g ∘ PLift.down)).Finite
⊢ ¬(mulSupport ((fun i => g i) ∘ PLift.down)).Finite
tactic: rw [finprod, dif_neg, f.map_one, finprod, dif_neg]
state_before: case neg.hnc
G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : M →* N
hf : ∀ (x : M), f x = 1 → x = 1
g : α → M
hg : ¬(mulSupport (g ∘ PLift.down)).Finite
⊢ ¬(mulSupport ((fun i => f (g i)) ∘ PLift.down)).Finite

case neg.hnc
G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : M →* N
hf : ∀ (x : M), f x = 1 → x = 1
g : α → M
hg : ¬(mulSupport (g ∘ PLift.down)).Finite
⊢ ¬(mulSupport ((fun i => g i) ∘ PLift.down)).Finite
state_after: no goals
tactic: exacts [Infinite.mono (fun x hx => mt (hf (g x.down)) hx) hg, hg]
Theorem: AddCon.nsmul
File: Mathlib/GroupTheory/Congruence/Basic.lean

Proof steps:
state_before: M✝ : Type u_1
N : Type u_2
P : Type u_3
M : Type u_4
inst✝ : Monoid M
c : Con M
w x : M
x✝ : c w x
⊢ c (w ^ 0) (x ^ 0)
state_after: no goals
tactic: simpa using c.refl _
state_before: M✝ : Type u_1
N : Type u_2
P : Type u_3
M : Type u_4
inst✝ : Monoid M
c : Con M
n : ℕ
w x : M
h : c w x
⊢ c (w ^ n.succ) (x ^ n.succ)
state_after: no goals
tactic: simpa [pow_succ] using c.mul (Con.pow c n h) h
Theorem: Sequential.isoEquivHomeo_symm_apply
File: Mathlib/Topology/Category/Sequential.lean

Proof steps:
state_before: X✝ : Type u
inst✝¹ : TopologicalSpace X✝
inst✝ : SequentialSpace X✝
X Y : Sequential
f : X ≅ Y
⊢ isoOfHomeo (homeoOfIso f) = f
state_after: case w.w
X✝ : Type u
inst✝¹ : TopologicalSpace X✝
inst✝ : SequentialSpace X✝
X Y : Sequential
f : X ≅ Y
x✝ : (forget Sequential).obj X
⊢ (isoOfHomeo (homeoOfIso f)).hom x✝ = f.hom x✝
tactic: ext
state_before: case w.w
X✝ : Type u
inst✝¹ : TopologicalSpace X✝
inst✝ : SequentialSpace X✝
X Y : Sequential
f : X ≅ Y
x✝ : (forget Sequential).obj X
⊢ (isoOfHomeo (homeoOfIso f)).hom x✝ = f.hom x✝
state_after: no goals
tactic: rfl
state_before: X✝ : Type u
inst✝¹ : TopologicalSpace X✝
inst✝ : SequentialSpace X✝
X Y : Sequential
f : ↑X.toTop ≃ₜ ↑Y.toTop
⊢ homeoOfIso (isoOfHomeo f) = f
state_after: case H
X✝ : Type u
inst✝¹ : TopologicalSpace X✝
inst✝ : SequentialSpace X✝
X Y : Sequential
f : ↑X.toTop ≃ₜ ↑Y.toTop
x✝ : ↑X.toTop
⊢ (homeoOfIso (isoOfHomeo f)) x✝ = f x✝
tactic: ext
state_before: case H
X✝ : Type u
inst✝¹ : TopologicalSpace X✝
inst✝ : SequentialSpace X✝
X Y : Sequential
f : ↑X.toTop ≃ₜ ↑Y.toTop
x✝ : ↑X.toTop
⊢ (homeoOfIso (isoOfHomeo f)) x✝ = f x✝
state_after: no goals
tactic: rfl
Theorem: Nat.bit_eq_zero_iff
File: Mathlib/Data/Nat/Bits.lean

Proof steps:
state_before: m n✝ n : ℕ
b : Bool
⊢ bit b n = 0 ↔ n = 0 ∧ b = false
state_after: case mp
m n✝ n : ℕ
b : Bool
⊢ bit b n = 0 → n = 0 ∧ b = false

case mpr
m n✝ n : ℕ
b : Bool
⊢ n = 0 ∧ b = false → bit b n = 0
tactic: constructor
Theorem: AddAction.period_eq_zero_iff
File: Mathlib/GroupTheory/GroupAction/Period.lean

Proof steps:
state_before: α : Type v
G : Type u
inst✝³ : Group G
inst✝² : MulAction G α
M : Type u
inst✝¹ : Monoid M
inst✝ : MulAction M α
m : M
a : α
fixed : m • a = a
⊢ m ^ 1 • a = a
state_after: no goals
tactic: simpa
state_before: α : Type v
G : Type u
inst✝³ : Group G
inst✝² : MulAction G α
M : Type u
inst✝¹ : Monoid M
inst✝ : MulAction M α
m : M
a : α
fixed : m • a = a
⊢ m ^ 1 • a = a
state_after: no goals
tactic: simpa
Theorem: FormalMultilinearSeries.derivSeries_apply_diag
File: Mathlib/Analysis/Calculus/FDeriv/Analytic.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
n : ℕ
x : E
⊢ ((p.derivSeries n) fun x_1 => x) x = (n + 1) • (p (n + 1)) fun x_1 => x
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
n : ℕ
x : E
⊢ ∑ x_1 : { s // s.card = n }, ((p.changeOriginSeriesTerm 1 n ↑x_1 ⋯) fun x_2 => x) (Fin.snoc ![] x) =
    (n + 1) • (p (n + 1)) fun x_1 => x
tactic: simp only [derivSeries, compFormalMultilinearSeries_apply, changeOriginSeries,
    compContinuousMultilinearMap_coe, ContinuousLinearEquiv.coe_coe, LinearIsometryEquiv.coe_coe,
    Function.comp_apply, ContinuousMultilinearMap.sum_apply, map_sum, coe_sum', Finset.sum_apply,
    continuousMultilinearCurryFin1_apply, Matrix.zero_empty]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
n : ℕ
x : E
⊢ ∑ x_1 : { s // s.card = n }, ((p.changeOriginSeriesTerm 1 n ↑x_1 ⋯) fun x_2 => x) (Fin.snoc ![] x) =
    (n + 1) • (p (n + 1)) fun x_1 => x
state_after: case h.e'_2.a
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
n : ℕ
x : E
x✝ : { s // s.card = n }
a✝ : x✝ ∈ Finset.univ
⊢ ((p.changeOriginSeriesTerm 1 n ↑x✝ ⋯) fun x_1 => x) (Fin.snoc ![] x) = (p (n + 1)) fun x_1 => x

case h.e'_3.h.e'_5
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
n : ℕ
x : E
⊢ n + 1 = Finset.univ.card
tactic: convert Finset.sum_const _
Theorem: CochainComplex.mappingCone.decomp_to
File: Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{?u.60532, u_1} C
inst✝³ : Category.{?u.60536, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
i : ℤ
A : C
f : A ⟶ (mappingCone φ).X i
j : ℤ
hij : i + 1 = j
a : A ⟶ F.X j
b : A ⟶ G.X i
⊢ j + -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.60536, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
i : ℤ
A : C
f : A ⟶ (mappingCone φ).X i
j : ℤ
hij : i + 1 = j
⊢ f = (f ≫ (↑(fst φ)).v i j hij) ≫ (inl φ).v j i ⋯ + (f ≫ (snd φ).v i i ⋯) ≫ (inr φ).f i
state_after: no goals
tactic: apply ext_to φ i j hij <;> simp
Theorem: Complex.HadamardThreeLines.sSupNormIm_eps_pos
File: Mathlib/Analysis/Complex/Hadamard.lean

Proof steps:
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℂ → E
z : ℂ
ε : ℝ
hε : ε > 0
x : ℝ
⊢ 0 < ε + sSupNormIm f x
state_after: no goals
tactic: linarith [sSupNormIm_nonneg f x]
Theorem: Algebra.intNorm_ne_zero
File: Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean

Proof steps:
state_before: A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst✝³¹ : CommRing A
inst✝³⁰ : CommRing B
inst✝²⁹ : Algebra A B
inst✝²⁸ : Field K
inst✝²⁷ : Field L
inst✝²⁶ : Algebra A K
inst✝²⁵ : IsFractionRing A K
inst✝²⁴ : Algebra B L
inst✝²³ : Algebra K L
inst✝²² : Algebra A L
inst✝²¹ : IsScalarTower A B L
inst✝²⁰ : IsScalarTower A K L
inst✝¹⁹ : IsIntegralClosure B A L
inst✝¹⁸ : FiniteDimensional K L
Aₘ : Type ?u.655614
Bₘ : Type ?u.655617
inst✝¹⁷ : CommRing Aₘ
inst✝¹⁶ : CommRing Bₘ
inst✝¹⁵ : Algebra Aₘ Bₘ
inst✝¹⁴ : Algebra A Aₘ
inst✝¹³ : Algebra B Bₘ
inst✝¹² : Algebra A Bₘ
inst✝¹¹ : IsScalarTower A Aₘ Bₘ
inst✝¹⁰ : IsScalarTower A B Bₘ
M : Submonoid A
inst✝⁹ : IsLocalization M Aₘ
inst✝⁸ : IsLocalization (algebraMapSubmonoid B M) Bₘ
inst✝⁷ : IsIntegrallyClosed A
inst✝⁶ : IsDomain A
inst✝⁵ : IsIntegrallyClosed A
inst✝⁴ : IsDomain B
inst✝³ : IsIntegrallyClosed B
inst✝² : Module.Finite A B
inst✝¹ : NoZeroSMulDivisors A B
inst✝ : Algebra.IsSeparable (FractionRing A) (FractionRing B)
x : B
⊢ (intNorm A B) x ≠ 0 ↔ x ≠ 0
state_after: no goals
tactic: simp
Theorem: ZNum.cast_bit0
File: Mathlib/Data/Num/Lemmas.lean

Proof steps:
state_before: α : Type u_1
inst✝ : AddGroupWithOne α
p : PosNum
⊢ ↑(pos p).bit0 = ↑(pos p) + ↑(pos p)
state_after: α : Type u_1
inst✝ : AddGroupWithOne α
p : PosNum
⊢ ↑p.bit0 = ↑p + ↑p
tactic: rw [ZNum.bit0, cast_pos, cast_pos]
state_before: α : Type u_1
inst✝ : AddGroupWithOne α
p : PosNum
⊢ ↑p.bit0 = ↑p + ↑p
state_after: no goals
tactic: rfl
state_before: α : Type u_1
inst✝ : AddGroupWithOne α
p : PosNum
⊢ ↑(neg p).bit0 = ↑(neg p) + ↑(neg p)
state_after: no goals
tactic: rw [ZNum.bit0, cast_neg, cast_neg, PosNum.cast_bit0, neg_add_rev]
Theorem: Set.pairwise_disjoint_Ioo_zpow
File: Mathlib/Algebra/Order/Interval/Set/Group.lean

Proof steps:
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
a b : α
⊢ Pairwise (Disjoint on fun n => Ioo (b ^ n) (b ^ (n + 1)))
state_after: no goals
tactic: simpa only [one_mul] using pairwise_disjoint_Ioo_mul_zpow 1 b
Theorem: Set.toFinset_compl
File: Mathlib/Data/Fintype/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
inst✝⁴ : DecidableEq α
inst✝³ : Fintype ↑s
inst✝² : Fintype ↑t
inst✝¹ : Fintype α
inst✝ : Fintype ↑sᶜ
⊢ sᶜ.toFinset = s.toFinsetᶜ
state_after: case a
α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
inst✝⁴ : DecidableEq α
inst✝³ : Fintype ↑s
inst✝² : Fintype ↑t
inst✝¹ : Fintype α
inst✝ : Fintype ↑sᶜ
a✝ : α
⊢ a✝ ∈ sᶜ.toFinset ↔ a✝ ∈ s.toFinsetᶜ
tactic: ext
state_before: case a
α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
inst✝⁴ : DecidableEq α
inst✝³ : Fintype ↑s
inst✝² : Fintype ↑t
inst✝¹ : Fintype α
inst✝ : Fintype ↑sᶜ
a✝ : α
⊢ a✝ ∈ sᶜ.toFinset ↔ a✝ ∈ s.toFinsetᶜ
state_after: no goals
tactic: simp
Theorem: CategoryTheory.IsIso.of_isIso_comp_right
File: Mathlib/CategoryTheory/Iso.lean

Proof steps:
state_before: C : Type u
inst✝² : Category.{v, u} C
X✝ Y✝ Z✝ : C
f✝ g✝ : X✝ ⟶ Y✝
h : Y✝ ⟶ Z✝
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
inst✝¹ : IsIso g
inst✝ : IsIso (f ≫ g)
⊢ IsIso f
state_after: C : Type u
inst✝² : Category.{v, u} C
X✝ Y✝ Z✝ : C
f✝ g✝ : X✝ ⟶ Y✝
h : Y✝ ⟶ Z✝
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
inst✝¹ : IsIso g
inst✝ : IsIso (f ≫ g)
⊢ IsIso ((f ≫ g) ≫ inv g)
tactic: rw [← comp_id f, ← hom_inv_id g, ← assoc]
state_before: C : Type u
inst✝² : Category.{v, u} C
X✝ Y✝ Z✝ : C
f✝ g✝ : X✝ ⟶ Y✝
h : Y✝ ⟶ Z✝
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
inst✝¹ : IsIso g
inst✝ : IsIso (f ≫ g)
⊢ IsIso ((f ≫ g) ≫ inv g)
state_after: no goals
tactic: infer_instance
Theorem: ChartedSpace.locallyConnectedSpace
File: Mathlib/Geometry/Manifold/ChartedSpace.lean

Proof steps:
state_before: H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
⊢ LocallyConnectedSpace M
state_after: H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → PartialHomeomorph M H := chartAt H
⊢ LocallyConnectedSpace M
tactic: let e : M → PartialHomeomorph M H := chartAt H
state_before: H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → PartialHomeomorph M H := chartAt H
⊢ LocallyConnectedSpace M
state_after: case refine_1
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → PartialHomeomorph M H := chartAt H
⊢ ∀ (x : M),
    (𝓝 x).HasBasis ((fun x s => (IsOpen s ∧ ↑(e x) x ∈ s ∧ IsConnected s) ∧ s ⊆ (e x).target) x)
      ((fun x s => ↑(e x).symm '' s) x)

case refine_2
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → PartialHomeomorph M H := chartAt H
⊢ ∀ (x : M) (i : Set H),
    (fun x s => (IsOpen s ∧ ↑(e x) x ∈ s ∧ IsConnected s) ∧ s ⊆ (e x).target) x i →
      IsPreconnected ((fun x s => ↑(e x).symm '' s) x i)
tactic: refine locallyConnectedSpace_of_connected_bases (fun x s ↦ (e x).symm '' s)
      (fun x s ↦ (IsOpen s ∧ e x x ∈ s ∧ IsConnected s) ∧ s ⊆ (e x).target) ?_ ?_
Theorem: Stream'.WSeq.liftRel_nil
File: Mathlib/Data/Seq/WSeq.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
R : α → β → Prop
⊢ LiftRel R nil nil
state_after: α : Type u
β : Type v
γ : Type w
R : α → β → Prop
⊢ Computation.LiftRel (LiftRelO R (LiftRel R)) nil.destruct nil.destruct
tactic: rw [liftRel_destruct_iff]
state_before: α : Type u
β : Type v
γ : Type w
R : α → β → Prop
⊢ Computation.LiftRel (LiftRelO R (LiftRel R)) nil.destruct nil.destruct
state_after: no goals
tactic: simp [-liftRel_pure_left, -liftRel_pure_right]
Theorem: CliffordAlgebra.submodule_map_pow_reverse
File: Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean

Proof steps:
state_before: R : Type u_1
inst✝² : CommRing R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
p : Submodule R (CliffordAlgebra Q)
n : ℕ
⊢ Submodule.map reverse (p ^ n) = Submodule.map reverse p ^ n
state_after: no goals
tactic: simp_rw [reverse, Submodule.map_comp, Submodule.map_pow, Submodule.map_unop_pow]
Theorem: ContinuousMap.exists_extension'
File: Mathlib/Topology/TietzeExtension.lean

Proof steps:
state_before: X₁ : Type u₁
inst✝⁴ : TopologicalSpace X₁
X : Type u
inst✝³ : TopologicalSpace X
inst✝² : NormalSpace X
s : Set X
hs : IsClosed s
e : X₁ → X
he : ClosedEmbedding e
Y : Type v
inst✝¹ : TopologicalSpace Y
inst✝ : TietzeExtension Y
f : C(X₁, Y)
g : C(X, Y)
hg : g.comp { toFun := e, continuous_toFun := ⋯ } = f
⊢ ⇑g ∘ e = ⇑f
state_after: case h
X₁ : Type u₁
inst✝⁴ : TopologicalSpace X₁
X : Type u
inst✝³ : TopologicalSpace X
inst✝² : NormalSpace X
s : Set X
hs : IsClosed s
e : X₁ → X
he : ClosedEmbedding e
Y : Type v
inst✝¹ : TopologicalSpace Y
inst✝ : TietzeExtension Y
f : C(X₁, Y)
g : C(X, Y)
hg : g.comp { toFun := e, continuous_toFun := ⋯ } = f
x : X₁
⊢ (⇑g ∘ e) x = f x
tactic: ext x
state_before: case h
X₁ : Type u₁
inst✝⁴ : TopologicalSpace X₁
X : Type u
inst✝³ : TopologicalSpace X
inst✝² : NormalSpace X
s : Set X
hs : IsClosed s
e : X₁ → X
he : ClosedEmbedding e
Y : Type v
inst✝¹ : TopologicalSpace Y
inst✝ : TietzeExtension Y
f : C(X₁, Y)
g : C(X, Y)
hg : g.comp { toFun := e, continuous_toFun := ⋯ } = f
x : X₁
⊢ (⇑g ∘ e) x = f x
state_after: no goals
tactic: congrm($(hg) x)
Theorem: fourierCoeff_liftIoc_eq
File: Mathlib/Analysis/Fourier/AddCircle.lean

Proof steps:
state_before: T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a : ℝ
f : ℝ → ℂ
n : ℤ
⊢ fourierCoeff (liftIoc T a f) n = fourierCoeffOn ⋯ f n
state_after: T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a : ℝ
f : ℝ → ℂ
n : ℤ
⊢ (1 / T) • ∫ (x : ℝ) in ?a..?a + T, (fourier (-n)) ↑x • liftIoc T a f ↑x =
    (1 / T) • ∫ (x : ℝ) in a..a + T, (fourier (-n)) ↑x • f x

case a
T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a : ℝ
f : ℝ → ℂ
n : ℤ
⊢ ℝ
tactic: rw [fourierCoeffOn_eq_integral, fourierCoeff_eq_intervalIntegral, add_sub_cancel_left a T]
Theorem: zpow_sub_one
File: Mathlib/Algebra/Group/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a✝ b c d : G
n✝ : ℤ
a : G
n : ℤ
⊢ a ^ (n - 1) * a * a⁻¹ = a ^ n * a⁻¹
state_after: no goals
tactic: rw [← zpow_add_one, Int.sub_add_cancel]
Theorem: TopologicalSpace.IsTopologicalBasis.exists_mem_of_ne
File: Mathlib/Topology/Separation.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : T1Space X
b : Set (Set X)
hb : IsTopologicalBasis b
x y : X
h : x ≠ y
⊢ ∃ a ∈ b, x ∈ a ∧ y ∉ a
state_after: case intro.intro.intro
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : T1Space X
b : Set (Set X)
hb : IsTopologicalBasis b
x y : X
h : x ≠ y
a : Set X
ab : a ∈ b
xa : x ∈ a
ha : a ⊆ {y_1 | y_1 ≠ y}
⊢ ∃ a ∈ b, x ∈ a ∧ y ∉ a
tactic: rcases hb.isOpen_iff.1 isOpen_ne x h with ⟨a, ab, xa, ha⟩
state_before: case intro.intro.intro
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : T1Space X
b : Set (Set X)
hb : IsTopologicalBasis b
x y : X
h : x ≠ y
a : Set X
ab : a ∈ b
xa : x ∈ a
ha : a ⊆ {y_1 | y_1 ≠ y}
⊢ ∃ a ∈ b, x ∈ a ∧ y ∉ a
state_after: no goals
tactic: exact ⟨a, ab, xa, fun h => ha h rfl⟩
Theorem: ENNReal.iUnion_Icc_coe_nat
File: Mathlib/Data/ENNReal/Basic.lean

Proof steps:
state_before: α : Type u_1
a b c d : ℝ≥0∞
r p q : ℝ≥0
⊢ ⋃ n, Icc a ↑n = Ici a \ {⊤}
state_after: no goals
tactic: simp only [← Ici_inter_Iic, ← inter_iUnion, iUnion_Iic_coe_nat, diff_eq]
Theorem: irreducible_pow_sup_of_ge
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
T : Type u_4
inst✝¹ : CommRing T
inst✝ : IsDedekindDomain T
I J : Ideal T
hI : I ≠ ⊥
hJ : Irreducible J
n : ℕ
hn : multiplicity J I ≤ ↑n
⊢ J ^ n ⊔ I = J ^ (multiplicity J I).get ⋯
state_after: R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Field K
T : Type u_4
inst✝¹ : CommRing T
inst✝ : IsDedekindDomain T
I J : Ideal T
hI : I ≠ ⊥
hJ : Irreducible J
n : ℕ
hn : multiplicity J I ≤ ↑n
⊢ J ^ count J (normalizedFactors I) = J ^ (multiplicity J I).get ⋯

R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Field K
T : Type u_4
inst✝¹ : CommRing T
inst✝ : IsDedekindDomain T
I J : Ideal T
hI : I ≠ ⊥
hJ : Irreducible J
n : ℕ
hn : multiplicity J I ≤ ↑n
⊢ count J (normalizedFactors I) ≤ n
tactic: rw [irreducible_pow_sup hI hJ, min_eq_left]
Theorem: PNat.find_eq_one
File: Mathlib/Data/PNat/Find.lean

Proof steps:
state_before: p q : ℕ+ → Prop
inst✝¹ : DecidablePred p
inst✝ : DecidablePred q
h : ∃ n, p n
n m : ℕ+
⊢ PNat.find h = 1 ↔ p 1
state_after: no goals
tactic: simp [find_eq_iff]
Theorem: Finset.weightedVSubOfPoint_const_smul
File: Mathlib/LinearAlgebra/AffineSpace/Combination.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
S : AffineSpace V P
ι : Type u_4
s : Finset ι
ι₂ : Type u_5
s₂ : Finset ι₂
w : ι → k
p : ι → P
b : P
c : k
⊢ (s.weightedVSubOfPoint p b) (c • w) = c • (s.weightedVSubOfPoint p b) w
state_after: no goals
tactic: simp_rw [weightedVSubOfPoint_apply, smul_sum, Pi.smul_apply, smul_smul, smul_eq_mul]
Theorem: NormedSpace.exp_continuous
File: Mathlib/Analysis/NormedSpace/Exponential.lean

Proof steps:
state_before: 𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type u_3
inst✝⁵ : RCLike 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedAlgebra 𝕂 𝔸
inst✝² : NormedRing 𝔹
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
⊢ Continuous (exp 𝕂)
state_after: 𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type u_3
inst✝⁵ : RCLike 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedAlgebra 𝕂 𝔸
inst✝² : NormedRing 𝔹
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
⊢ ContinuousOn (exp 𝕂) (EMetric.ball 0 (expSeries 𝕂 𝔸).radius)
tactic: rw [continuous_iff_continuousOn_univ, ← Metric.eball_top_eq_univ (0 : 𝔸), ←
    expSeries_radius_eq_top 𝕂 𝔸]
state_before: 𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type u_3
inst✝⁵ : RCLike 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedAlgebra 𝕂 𝔸
inst✝² : NormedRing 𝔹
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
⊢ ContinuousOn (exp 𝕂) (EMetric.ball 0 (expSeries 𝕂 𝔸).radius)
state_after: no goals
tactic: exact continuousOn_exp
Theorem: TopologicalSpace.Closeds.mem_iInf
File: Mathlib/Topology/Sets/Closeds.lean

Proof steps:
state_before: ι✝ : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
ι : Sort u_4
x : α
s : ι → Closeds α
⊢ x ∈ iInf s ↔ ∀ (i : ι), x ∈ s i
state_after: no goals
tactic: simp [iInf]
Theorem: FixedPoints.isIntegral
File: Mathlib/FieldTheory/Fixed.lean

Proof steps:
state_before: M : Type u
inst✝⁵ : Monoid M
G : Type u
inst✝⁴ : Group G
F : Type v
inst✝³ : Field F
inst✝² : MulSemiringAction M F
inst✝¹ : MulSemiringAction G F
m : M
inst✝ : Finite G
x : F
⊢ IsIntegral (↥(subfield G F)) x
state_after: case intro
M : Type u
inst✝⁵ : Monoid M
G : Type u
inst✝⁴ : Group G
F : Type v
inst✝³ : Field F
inst✝² : MulSemiringAction M F
inst✝¹ : MulSemiringAction G F
m : M
inst✝ : Finite G
x : F
val✝ : Fintype G
⊢ IsIntegral (↥(subfield G F)) x
tactic: cases nonempty_fintype G
state_before: case intro
M : Type u
inst✝⁵ : Monoid M
G : Type u
inst✝⁴ : Group G
F : Type v
inst✝³ : Field F
inst✝² : MulSemiringAction M F
inst✝¹ : MulSemiringAction G F
m : M
inst✝ : Finite G
x : F
val✝ : Fintype G
⊢ IsIntegral (↥(subfield G F)) x
state_after: no goals
tactic: exact ⟨minpoly G F x, minpoly.monic G F x, minpoly.eval₂ G F x⟩
Theorem: MeasurableEmbedding.map_comap
File: Mathlib/MeasureTheory/Measure/Restrict.lean

Proof steps:
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure β
⊢ Measure.map f (Measure.comap f μ) = μ.restrict (range f)
state_after: case h
R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure β
t : Set β
ht : MeasurableSet t
⊢ (Measure.map f (Measure.comap f μ)) t = (μ.restrict (range f)) t
tactic: ext1 t ht
state_before: case h
R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure β
t : Set β
ht : MeasurableSet t
⊢ (Measure.map f (Measure.comap f μ)) t = (μ.restrict (range f)) t
state_after: no goals
tactic: rw [hf.map_apply, comap_apply f hf.injective hf.measurableSet_image' _ (hf.measurable ht),
    image_preimage_eq_inter_range, Measure.restrict_apply ht]
Theorem: Finset.truncatedInf_sups_of_not_mem
File: Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝³ : DistribLattice α
inst✝² : BoundedOrder α
inst✝¹ : DecidableEq α
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a : α
ha : a ∉ upperClosure ↑s ⊔ upperClosure ↑t
⊢ a ∉ upperClosure ↑(s ⊻ t)
state_after: no goals
tactic: rwa [coe_sups, upperClosure_sups]