ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: MeasureTheory.Measure.haar.prehaar_mono
File: Mathlib/MeasureTheory/Measure/Haar/Basic.lean

Proof steps:
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
hU : (interior U).Nonempty
K₁ K₂ : Compacts G
h : ↑K₁ ⊆ K₂.carrier
⊢ prehaar (↑K₀) U K₁ ≤ prehaar (↑K₀) U K₂
state_after: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
hU : (interior U).Nonempty
K₁ K₂ : Compacts G
h : ↑K₁ ⊆ K₂.carrier
⊢ ↑(index (↑K₁) U) / ↑(index (↑K₀) U) ≤ ↑(index (↑K₂) U) / ↑(index (↑K₀) U)
tactic: simp only [prehaar]
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
hU : (interior U).Nonempty
K₁ K₂ : Compacts G
h : ↑K₁ ⊆ K₂.carrier
⊢ ↑(index (↑K₁) U) / ↑(index (↑K₀) U) ≤ ↑(index (↑K₂) U) / ↑(index (↑K₀) U)
state_after: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
hU : (interior U).Nonempty
K₁ K₂ : Compacts G
h : ↑K₁ ⊆ K₂.carrier
⊢ ↑(index (↑K₁) U) ≤ ↑(index (↑K₂) U)

G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
hU : (interior U).Nonempty
K₁ K₂ : Compacts G
h : ↑K₁ ⊆ K₂.carrier
⊢ 0 < ↑(index (↑K₀) U)
tactic: rw [div_le_div_right]
Theorem: Cardinal.lsub_lt_ord_of_isRegular
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

Proof steps:
state_before: α : Type u_1
r : α → α → Prop
ι : Type (max u_2 u_3)
f : ι → Ordinal.{max u_2 u_3}
c : Cardinal.{max u_2 u_3}
hc : c.IsRegular
hι : #ι < c
⊢ #ι < c.ord.cof
state_after: no goals
tactic: rwa [hc.cof_eq]
Theorem: cfcₙHom_eq_of_continuous_of_map_id
File: Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹³ : CommSemiring R
inst✝¹² : Nontrivial R
inst✝¹¹ : StarRing R
inst✝¹⁰ : MetricSpace R
inst✝⁹ : TopologicalSemiring R
inst✝⁸ : ContinuousStar R
inst✝⁷ : NonUnitalRing A
inst✝⁶ : StarRing A
inst✝⁵ : TopologicalSpace A
inst✝⁴ : Module R A
inst✝³ : IsScalarTower R A A
inst✝² : SMulCommClass R A A
inst✝¹ : NonUnitalContinuousFunctionalCalculus R p
a : A
ha : p a
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
φ : C(↑(σₙ R a), R)₀ →⋆ₙₐ[R] A
hφ₁ : Continuous ⇑φ
hφ₂ : φ { toContinuousMap := ContinuousMap.restrict (σₙ R a) (ContinuousMap.id R), map_zero' := ⋯ } = a
⊢ (cfcₙHom ha) { toContinuousMap := ContinuousMap.restrict (σₙ R a) (ContinuousMap.id R), map_zero' := ⋯ } =
    φ { toContinuousMap := ContinuousMap.restrict (σₙ R a) (ContinuousMap.id R), map_zero' := ⋯ }
state_after: no goals
tactic: rw [cfcₙHom_id ha, hφ₂]
Theorem: MulAction.IsBlock.mk_mem
File: Mathlib/GroupTheory/GroupAction/Blocks.lean

Proof steps:
state_before: G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
B : Set X
⊢ IsBlock G B ↔ ∀ (g : G), ∀ a ∈ B, g • a ∈ B → g • B = B
state_after: G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
B : Set X
⊢ (∀ (g : G), g • B ∩ B ≠ ∅ → g • B = B) ↔ ∀ (g : G), ∀ a ∈ B, g • a ∈ B → g • B = B
tactic: rw [IsBlock.mk_notempty_one]
state_before: G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
B : Set X
⊢ (∀ (g : G), g • B ∩ B ≠ ∅ → g • B = B) ↔ ∀ (g : G), ∀ a ∈ B, g • a ∈ B → g • B = B
state_after: G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
B : Set X
⊢ (∀ (g : G) (x : X), g⁻¹ • x ∈ B → x ∈ B → g • B = B) ↔ ∀ (g : G), ∀ a ∈ B, g • a ∈ B → g • B = B
tactic: simp only [← Set.nonempty_iff_ne_empty, Set.nonempty_def, Set.mem_inter_iff,
    exists_imp, and_imp, Set.mem_smul_set_iff_inv_smul_mem]
state_before: G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
B : Set X
⊢ (∀ (g : G) (x : X), g⁻¹ • x ∈ B → x ∈ B → g • B = B) ↔ ∀ (g : G), ∀ a ∈ B, g • a ∈ B → g • B = B
state_after: case mp
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
B : Set X
⊢ (∀ (g : G) (x : X), g⁻¹ • x ∈ B → x ∈ B → g • B = B) → ∀ (g : G), ∀ a ∈ B, g • a ∈ B → g • B = B

case mpr
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
B : Set X
⊢ (∀ (g : G), ∀ a ∈ B, g • a ∈ B → g • B = B) → ∀ (g : G) (x : X), g⁻¹ • x ∈ B → x ∈ B → g • B = B
tactic: constructor
Theorem: CliffordAlgebra.iSup_ι_range_eq_top
File: Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean

Proof steps:
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
⊢ ⨆ i, LinearMap.range (ι Q) ^ i = ⊤
state_after: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
⊢ iSup (evenOdd Q) = ⨆ i, LinearMap.range (ι Q) ^ i
tactic: rw [← (DirectSum.Decomposition.isInternal (evenOdd Q)).submodule_iSup_eq_top, eq_comm]
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
⊢ iSup (evenOdd Q) = ⨆ i, LinearMap.range (ι Q) ^ i
state_after: no goals
tactic: calc
    -- Porting note: needs extra annotations, no longer unifies against the goal in the face of
    -- ambiguity
    ⨆ (i : ZMod 2) (j : { n : ℕ // ↑n = i }), LinearMap.range (ι Q) ^ (j : ℕ) =
        ⨆ i : Σ i : ZMod 2, { n : ℕ // ↑n = i }, LinearMap.range (ι Q) ^ (i.2 : ℕ) := by
      rw [iSup_sigma]
    _ = ⨆ i : ℕ, LinearMap.range (ι Q) ^ i :=
      Function.Surjective.iSup_congr (fun i => i.2) (fun i => ⟨⟨_, i, rfl⟩, rfl⟩) fun _ => rfl
Theorem: left_eq_mul₀
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✝ : CancelMonoidWithZero M₀
a b c : M₀
ha : a ≠ 0
⊢ a = a * b ↔ b = 1
state_after: no goals
tactic: rw [eq_comm, mul_eq_left₀ ha]
Theorem: padicValRat.lt_sum_of_lt
File: Mathlib/NumberTheory/Padics/PadicVal.lean

Proof steps:
state_before: p✝ : ℕ
hp✝ : Fact (Nat.Prime p✝)
p j : ℕ
hp : Fact (Nat.Prime p)
F : ℕ → ℚ
S : Finset ℕ
hS : S.Nonempty
hF : ∀ i ∈ S, padicValRat p (F j) < padicValRat p (F i)
hn1 : ∀ (i : ℕ), 0 < F i
⊢ padicValRat p (F j) < padicValRat p (∑ i ∈ S, F i)
state_after: case singleton
p✝ : ℕ
hp✝ : Fact (Nat.Prime p✝)
p j : ℕ
hp : Fact (Nat.Prime p)
F : ℕ → ℚ
S : Finset ℕ
hn1 : ∀ (i : ℕ), 0 < F i
k : ℕ
hF : ∀ i ∈ {k}, padicValRat p (F j) < padicValRat p (F i)
⊢ padicValRat p (F j) < padicValRat p (∑ i ∈ {k}, F i)

case cons
p✝ : ℕ
hp✝ : Fact (Nat.Prime p✝)
p j : ℕ
hp : Fact (Nat.Prime p)
F : ℕ → ℚ
S : Finset ℕ
hn1 : ∀ (i : ℕ), 0 < F i
s : ℕ
S' : Finset ℕ
Hnot : s ∉ S'
Hne : S'.Nonempty
Hind : (∀ i ∈ S', padicValRat p (F j) < padicValRat p (F i)) → padicValRat p (F j) < padicValRat p (∑ i ∈ S', F i)
hF : ∀ i ∈ Finset.cons s S' Hnot, padicValRat p (F j) < padicValRat p (F i)
⊢ padicValRat p (F j) < padicValRat p (∑ i ∈ Finset.cons s S' Hnot, F i)
tactic: induction' hS using Finset.Nonempty.cons_induction with k s S' Hnot Hne Hind
Theorem: List.exists_tfae
File: Mathlib/Data/List/TFAE.lean

Proof steps:
state_before: α : Type u_1
l : List (α → Prop)
H : ∀ (a : α), (map (fun p => p a) l).TFAE
⊢ (map (fun p => ∃ a, p a) l).TFAE
state_after: α : Type u_1
l : List (α → Prop)
H : ∀ (a : α), (map (fun p => p a) l).TFAE
⊢ ∀ (j : α → Prop), j ∈ l → ∀ (j_1 : α → Prop), j_1 ∈ l → ((∃ a, j a) ↔ ∃ a, j_1 a)
tactic: simp only [TFAE, List.forall_mem_map_iff]
state_before: α : Type u_1
l : List (α → Prop)
H : ∀ (a : α), (map (fun p => p a) l).TFAE
⊢ ∀ (j : α → Prop), j ∈ l → ∀ (j_1 : α → Prop), j_1 ∈ l → ((∃ a, j a) ↔ ∃ a, j_1 a)
state_after: α : Type u_1
l : List (α → Prop)
H : ∀ (a : α), (map (fun p => p a) l).TFAE
p₁ : α → Prop
hp₁ : p₁ ∈ l
p₂ : α → Prop
hp₂ : p₂ ∈ l
⊢ (∃ a, p₁ a) ↔ ∃ a, p₂ a
tactic: intros p₁ hp₁ p₂ hp₂
state_before: α : Type u_1
l : List (α → Prop)
H : ∀ (a : α), (map (fun p => p a) l).TFAE
p₁ : α → Prop
hp₁ : p₁ ∈ l
p₂ : α → Prop
hp₂ : p₂ ∈ l
⊢ (∃ a, p₁ a) ↔ ∃ a, p₂ a
state_after: no goals
tactic: exact exists_congr fun a ↦ H a (p₁ a) (mem_map_of_mem (fun p ↦ p a) hp₁)
    (p₂ a) (mem_map_of_mem (fun p ↦ p a) hp₂)
Theorem: Finset.piecewise_insert
File: Mathlib/Data/Finset/Piecewise.lean

Proof steps:
state_before: ι : Type u_1
π : ι → Sort u_2
s : Finset ι
f g : (i : ι) → π i
inst✝² : (j : ι) → Decidable (j ∈ s)
inst✝¹ : DecidableEq ι
j : ι
inst✝ : (i : ι) → Decidable (i ∈ insert j s)
⊢ (insert j s).piecewise f g = update (s.piecewise f g) j (f j)
state_after: ι : Type u_1
π : ι → Sort u_2
s : Finset ι
f g : (i : ι) → π i
inst✝² : (j : ι) → Decidable (j ∈ s)
inst✝¹ : DecidableEq ι
j : ι
inst✝ : (i : ι) → Decidable (i ∈ insert j s)
⊢ (↑(insert j s)).piecewise f g = (insert j ↑s).piecewise f g
tactic: classical simp only [← piecewise_coe, coe_insert, ← Set.piecewise_insert]
state_before: ι : Type u_1
π : ι → Sort u_2
s : Finset ι
f g : (i : ι) → π i
inst✝² : (j : ι) → Decidable (j ∈ s)
inst✝¹ : DecidableEq ι
j : ι
inst✝ : (i : ι) → Decidable (i ∈ insert j s)
⊢ (↑(insert j s)).piecewise f g = (insert j ↑s).piecewise f g
state_after: case h
ι : Type u_1
π : ι → Sort u_2
s : Finset ι
f g : (i : ι) → π i
inst✝² : (j : ι) → Decidable (j ∈ s)
inst✝¹ : DecidableEq ι
j : ι
inst✝ : (i : ι) → Decidable (i ∈ insert j s)
x✝ : ι
⊢ (↑(insert j s)).piecewise f g x✝ = (insert j ↑s).piecewise f g x✝
tactic: ext
state_before: case h
ι : Type u_1
π : ι → Sort u_2
s : Finset ι
f g : (i : ι) → π i
inst✝² : (j : ι) → Decidable (j ∈ s)
inst✝¹ : DecidableEq ι
j : ι
inst✝ : (i : ι) → Decidable (i ∈ insert j s)
x✝ : ι
⊢ (↑(insert j s)).piecewise f g x✝ = (insert j ↑s).piecewise f g x✝
state_after: case h.e_s
ι : Type u_1
π : ι → Sort u_2
s : Finset ι
f g : (i : ι) → π i
inst✝² : (j : ι) → Decidable (j ∈ s)
inst✝¹ : DecidableEq ι
j : ι
inst✝ : (i : ι) → Decidable (i ∈ insert j s)
x✝ : ι
⊢ ↑(insert j s) = insert j ↑s
tactic: congr
state_before: case h.e_s
ι : Type u_1
π : ι → Sort u_2
s : Finset ι
f g : (i : ι) → π i
inst✝² : (j : ι) → Decidable (j ∈ s)
inst✝¹ : DecidableEq ι
j : ι
inst✝ : (i : ι) → Decidable (i ∈ insert j s)
x✝ : ι
⊢ ↑(insert j s) = insert j ↑s
state_after: no goals
tactic: simp
Theorem: _private.Mathlib.NumberTheory.NumberField.House.0.NumberField.house.asiegel_remark
File: Mathlib/NumberTheory/NumberField/House.lean

Proof steps:
state_before: K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
A : ℝ
habs : ∀ (k : α) (l : β), house ((algebraMap (𝓞 K) K) (a k l)) ≤ A
Apos : 0 ≤ A
⊢ ‖NumberField.house.asiegel K a‖ ≤ NumberField.house.c₂ K * A
state_after: K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
A : ℝ
habs : ∀ (k : α) (l : β), house ((algebraMap (𝓞 K) K) (a k l)) ≤ A
Apos : 0 ≤ A
⊢ ∀ (i : α × (K →+* ℂ)) (j : β × (K →+* ℂ)), ‖NumberField.house.asiegel K a i j‖ ≤ NumberField.house.c₂ K * A

case hr
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : DecidableEq (K →+* ℂ)
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : Fintype β
a : Matrix α β (𝓞 K)
ha : a ≠ 0
p q : ℕ
cardα : Fintype.card α = p
cardβ : Fintype.card β = q
h0p : 0 < p
hpq : p < q
x : β × (K →+* ℂ) → ℤ
hxl : x ≠ 0
hmulvec0 : NumberField.house.asiegel K a *ᵥ x = 0
hxbound : ‖x‖ ≤ (↑q * ↑(finrank ℚ K) * ‖NumberField.house.asiegel K a‖) ^ (↑p / (↑q - ↑p))
A : ℝ
habs : ∀ (k : α) (l : β), house ((algebraMap (𝓞 K) K) (a k l)) ≤ A
Apos : 0 ≤ A
⊢ 0 ≤ NumberField.house.c₂ K * A
tactic: rw [Matrix.norm_le_iff]
Theorem: Inducing.isLindelof_iff
File: Mathlib/Topology/Compactness/Lindelof.lean

Proof steps:
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
f : X → Y
hf : Inducing f
⊢ IsLindelof s ↔ IsLindelof (f '' s)
state_after: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
f : X → Y
hf : Inducing f
hs : IsLindelof (f '' s)
F : Filter X
F_ne_bot : F.NeBot
x✝ : CountableInterFilter F
F_le : F ≤ 𝓟 s
⊢ ∃ x ∈ s, ClusterPt x F
tactic: refine ⟨fun hs => hs.image hf.continuous, fun hs F F_ne_bot _ F_le => ?_⟩
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
f : X → Y
hf : Inducing f
hs : IsLindelof (f '' s)
F : Filter X
F_ne_bot : F.NeBot
x✝ : CountableInterFilter F
F_le : F ≤ 𝓟 s
⊢ ∃ x ∈ s, ClusterPt x F
state_after: case intro.intro.intro.intro
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
f : X → Y
hf : Inducing f
hs : IsLindelof (f '' s)
F : Filter X
F_ne_bot : F.NeBot
x✝ : CountableInterFilter F
F_le : F ≤ 𝓟 s
x : X
x_in : x ∈ s
hx : ClusterPt (f x) (map f F)
⊢ ∃ x ∈ s, ClusterPt x F
tactic: obtain ⟨_, ⟨x, x_in : x ∈ s, rfl⟩, hx : ClusterPt (f x) (map f F)⟩ :=
    hs ((map_mono F_le).trans_eq map_principal)
state_before: case intro.intro.intro.intro
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
f : X → Y
hf : Inducing f
hs : IsLindelof (f '' s)
F : Filter X
F_ne_bot : F.NeBot
x✝ : CountableInterFilter F
F_le : F ≤ 𝓟 s
x : X
x_in : x ∈ s
hx : ClusterPt (f x) (map f F)
⊢ ∃ x ∈ s, ClusterPt x F
state_after: no goals
tactic: exact ⟨x, x_in, hf.mapClusterPt_iff.1 hx⟩
Theorem: Metric.continuousAt_inv_infDist_pt
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

Proof steps:
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
h : x ∉ closure s
⊢ ContinuousAt (fun x => (infDist x s)⁻¹) x
state_after: case inl
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
t u : Set α
x y : α
Φ : α → β
h : x ∉ closure ∅
⊢ ContinuousAt (fun x => (infDist x ∅)⁻¹) x

case inr
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
h : x ∉ closure s
hs : s.Nonempty
⊢ ContinuousAt (fun x => (infDist x s)⁻¹) x
tactic: rcases s.eq_empty_or_nonempty with (rfl | hs)
Theorem: Complex.norm_log_one_sub_inv_sub_self_le
File: Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean

Proof steps:
state_before: z : ℂ
hz : ‖z‖ < 1
⊢ ‖log (1 - z)⁻¹ - z‖ ≤ ‖z‖ ^ 2 * (1 - ‖z‖)⁻¹ / 2
state_after: case h.e'_3.h.e'_3
z : ℂ
hz : ‖z‖ < 1
⊢ log (1 - z)⁻¹ - z = log (1 - z)⁻¹ + logTaylor (1 + 1) (-z)

case h.e'_4.h.e'_6
z : ℂ
hz : ‖z‖ < 1
⊢ 2 = ↑1 + 1
tactic: convert norm_log_one_sub_inv_add_logTaylor_neg_le 1 hz using 2
Theorem: Polynomial.natTrailingDegree_neg
File: Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean

Proof steps:
state_before: R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Ring R
p : R[X]
⊢ (-p).natTrailingDegree = p.natTrailingDegree
state_after: no goals
tactic: simp [natTrailingDegree]
Theorem: IsLocalization.map_map
File: Mathlib/RingTheory/Localization/Basic.lean

Proof steps:
state_before: R : Type u_1
inst✝¹¹ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝¹⁰ : CommSemiring S
inst✝⁹ : Algebra R S
P : Type u_3
inst✝⁸ : CommSemiring P
inst✝⁷ : IsLocalization M S
g : R →+* P
hg : ∀ (y : ↥M), IsUnit (g ↑y)
T : Submonoid P
Q : Type u_4
inst✝⁶ : CommSemiring Q
hy : M ≤ Submonoid.comap g T
inst✝⁵ : Algebra P Q
inst✝⁴ : IsLocalization T Q
A : Type u_5
inst✝³ : CommSemiring A
U : Submonoid A
W : Type u_6
inst✝² : CommSemiring W
inst✝¹ : Algebra A W
inst✝ : IsLocalization U W
l : P →+* A
hl : T ≤ Submonoid.comap l U
x : S
⊢ (map W l hl) ((map Q g hy) x) = (map W (l.comp g) ⋯) x
state_after: R : Type u_1
inst✝¹¹ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝¹⁰ : CommSemiring S
inst✝⁹ : Algebra R S
P : Type u_3
inst✝⁸ : CommSemiring P
inst✝⁷ : IsLocalization M S
g : R →+* P
hg : ∀ (y : ↥M), IsUnit (g ↑y)
T : Submonoid P
Q : Type u_4
inst✝⁶ : CommSemiring Q
hy : M ≤ Submonoid.comap g T
inst✝⁵ : Algebra P Q
inst✝⁴ : IsLocalization T Q
A : Type u_5
inst✝³ : CommSemiring A
U : Submonoid A
W : Type u_6
inst✝² : CommSemiring W
inst✝¹ : Algebra A W
inst✝ : IsLocalization U W
l : P →+* A
hl : T ≤ Submonoid.comap l U
x : S
⊢ (map W l hl) ((map Q g hy) x) = ((map W l hl).comp (map Q g hy)) x
tactic: rw [← map_comp_map (Q := Q) hy hl]
state_before: R : Type u_1
inst✝¹¹ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝¹⁰ : CommSemiring S
inst✝⁹ : Algebra R S
P : Type u_3
inst✝⁸ : CommSemiring P
inst✝⁷ : IsLocalization M S
g : R →+* P
hg : ∀ (y : ↥M), IsUnit (g ↑y)
T : Submonoid P
Q : Type u_4
inst✝⁶ : CommSemiring Q
hy : M ≤ Submonoid.comap g T
inst✝⁵ : Algebra P Q
inst✝⁴ : IsLocalization T Q
A : Type u_5
inst✝³ : CommSemiring A
U : Submonoid A
W : Type u_6
inst✝² : CommSemiring W
inst✝¹ : Algebra A W
inst✝ : IsLocalization U W
l : P →+* A
hl : T ≤ Submonoid.comap l U
x : S
⊢ (map W l hl) ((map Q g hy) x) = ((map W l hl).comp (map Q g hy)) x
state_after: no goals
tactic: rfl
Theorem: Filter.rcomap_rcomap
File: Mathlib/Order/Filter/Partial.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
r : Rel α β
s : Rel β γ
l : Filter γ
⊢ (rcomap r (rcomap s l)).sets = (rcomap (r.comp s) l).sets
state_after: case h
α : Type u
β : Type v
γ : Type w
r : Rel α β
s : Rel β γ
l : Filter γ
t : Set α
⊢ t ∈ (rcomap r (rcomap s l)).sets ↔ t ∈ (rcomap (r.comp s) l).sets
tactic: ext t
state_before: case h
α : Type u
β : Type v
γ : Type w
r : Rel α β
s : Rel β γ
l : Filter γ
t : Set α
⊢ t ∈ (rcomap r (rcomap s l)).sets ↔ t ∈ (rcomap (r.comp s) l).sets
state_after: case h
α : Type u
β : Type v
γ : Type w
r : Rel α β
s : Rel β γ
l : Filter γ
t : Set α
⊢ (∃ x, (∃ x_1 ∈ l, s.core x_1 ⊆ x) ∧ r.core x ⊆ t) ↔ ∃ x ∈ l, r.core (s.core x) ⊆ t
tactic: simp only [rcomap_sets, Rel.image, Filter.mem_sets, Set.mem_setOf_eq, Rel.core_comp]
state_before: case h
α : Type u
β : Type v
γ : Type w
r : Rel α β
s : Rel β γ
l : Filter γ
t : Set α
⊢ (∃ x, (∃ x_1 ∈ l, s.core x_1 ⊆ x) ∧ r.core x ⊆ t) ↔ ∃ x ∈ l, r.core (s.core x) ⊆ t
state_after: case h.mp
α : Type u
β : Type v
γ : Type w
r : Rel α β
s : Rel β γ
l : Filter γ
t : Set α
⊢ (∃ x, (∃ x_1 ∈ l, s.core x_1 ⊆ x) ∧ r.core x ⊆ t) → ∃ x ∈ l, r.core (s.core x) ⊆ t

case h.mpr
α : Type u
β : Type v
γ : Type w
r : Rel α β
s : Rel β γ
l : Filter γ
t : Set α
⊢ (∃ x ∈ l, r.core (s.core x) ⊆ t) → ∃ x, (∃ x_1 ∈ l, s.core x_1 ⊆ x) ∧ r.core x ⊆ t
tactic: constructor
state_before: case h.mpr
α : Type u
β : Type v
γ : Type w
r : Rel α β
s : Rel β γ
l : Filter γ
t : Set α
⊢ (∃ x ∈ l, r.core (s.core x) ⊆ t) → ∃ x, (∃ x_1 ∈ l, s.core x_1 ⊆ x) ∧ r.core x ⊆ t
state_after: case h.mpr.intro.intro
α : Type u
β : Type v
γ : Type w
r : Rel α β
s : Rel β γ
l : Filter γ
t✝ : Set α
t : Set γ
tsets : t ∈ l
ht : r.core (s.core t) ⊆ t✝
⊢ ∃ x, (∃ x_1 ∈ l, s.core x_1 ⊆ x) ∧ r.core x ⊆ t✝
tactic: rintro ⟨t, tsets, ht⟩
state_before: case h.mpr.intro.intro
α : Type u
β : Type v
γ : Type w
r : Rel α β
s : Rel β γ
l : Filter γ
t✝ : Set α
t : Set γ
tsets : t ∈ l
ht : r.core (s.core t) ⊆ t✝
⊢ ∃ x, (∃ x_1 ∈ l, s.core x_1 ⊆ x) ∧ r.core x ⊆ t✝
state_after: no goals
tactic: exact ⟨Rel.core s t, ⟨t, tsets, Set.Subset.rfl⟩, ht⟩
Theorem: NonUnitalNonAssocSemiring.mem_center_iff
File: Mathlib/Algebra/Ring/CentroidHom.lean

Proof steps:
state_before: F : Type u_1
M : Type u_2
N : Type u_3
R✝ : Type u_4
α : Type u_5
inst✝¹⁶ : NonUnitalNonAssocSemiring α
inst✝¹⁵ : Monoid M
inst✝¹⁴ : Monoid N
inst✝¹³ : Semiring R✝
inst✝¹² : DistribMulAction M α
inst✝¹¹ : SMulCommClass M α α
inst✝¹⁰ : IsScalarTower M α α
inst✝⁹ : DistribMulAction N α
inst✝⁸ : SMulCommClass N α α
inst✝⁷ : IsScalarTower N α α
inst✝⁶ : Module R✝ α
inst✝⁵ : SMulCommClass R✝ α α
inst✝⁴ : IsScalarTower R✝ α α
R : Type u_6
inst✝³ : CommSemiring R
inst✝² : Module R α
inst✝¹ : SMulCommClass R α α
inst✝ : IsScalarTower R α α
a : α
⊢ a ∈ NonUnitalSubsemiring.center α ↔ R a = L a ∧ L a ∈ (toEndRingHom α).rangeS
state_after: case mp
F : Type u_1
M : Type u_2
N : Type u_3
R✝ : Type u_4
α : Type u_5
inst✝¹⁶ : NonUnitalNonAssocSemiring α
inst✝¹⁵ : Monoid M
inst✝¹⁴ : Monoid N
inst✝¹³ : Semiring R✝
inst✝¹² : DistribMulAction M α
inst✝¹¹ : SMulCommClass M α α
inst✝¹⁰ : IsScalarTower M α α
inst✝⁹ : DistribMulAction N α
inst✝⁸ : SMulCommClass N α α
inst✝⁷ : IsScalarTower N α α
inst✝⁶ : Module R✝ α
inst✝⁵ : SMulCommClass R✝ α α
inst✝⁴ : IsScalarTower R✝ α α
R : Type u_6
inst✝³ : CommSemiring R
inst✝² : Module R α
inst✝¹ : SMulCommClass R α α
inst✝ : IsScalarTower R α α
a : α
⊢ a ∈ NonUnitalSubsemiring.center α → R a = L a ∧ L a ∈ (toEndRingHom α).rangeS

case mpr
F : Type u_1
M : Type u_2
N : Type u_3
R✝ : Type u_4
α : Type u_5
inst✝¹⁶ : NonUnitalNonAssocSemiring α
inst✝¹⁵ : Monoid M
inst✝¹⁴ : Monoid N
inst✝¹³ : Semiring R✝
inst✝¹² : DistribMulAction M α
inst✝¹¹ : SMulCommClass M α α
inst✝¹⁰ : IsScalarTower M α α
inst✝⁹ : DistribMulAction N α
inst✝⁸ : SMulCommClass N α α
inst✝⁷ : IsScalarTower N α α
inst✝⁶ : Module R✝ α
inst✝⁵ : SMulCommClass R✝ α α
inst✝⁴ : IsScalarTower R✝ α α
R : Type u_6
inst✝³ : CommSemiring R
inst✝² : Module R α
inst✝¹ : SMulCommClass R α α
inst✝ : IsScalarTower R α α
a : α
⊢ R a = L a ∧ L a ∈ (toEndRingHom α).rangeS → a ∈ NonUnitalSubsemiring.center α
tactic: constructor
Theorem: Complex.continuous_cos
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

Proof steps:
state_before: ⊢ Continuous cos
state_after: ⊢ Continuous fun z => (cexp (z * I) + cexp (-z * I)) / 2
tactic: change Continuous fun z => (exp (z * I) + exp (-z * I)) / 2
state_before: ⊢ Continuous fun z => (cexp (z * I) + cexp (-z * I)) / 2
state_after: no goals
tactic: continuity
Theorem: Ordinal.isNormal_iff_strictMono_and_continuous
File: Mathlib/SetTheory/Ordinal/Topology.lean

Proof steps:
state_before: s : Set Ordinal.{u}
a : Ordinal.{u}
f : Ordinal.{u} → Ordinal.{u}
⊢ IsNormal f ↔ StrictMono f ∧ Continuous f
state_after: case refine_1
s : Set Ordinal.{u}
a : Ordinal.{u}
f : Ordinal.{u} → Ordinal.{u}
h : IsNormal f
⊢ Continuous f

case refine_2
s : Set Ordinal.{u}
a : Ordinal.{u}
f : Ordinal.{u} → Ordinal.{u}
⊢ StrictMono f ∧ Continuous f → IsNormal f
tactic: refine ⟨fun h => ⟨h.strictMono, ?_⟩, ?_⟩
Theorem: MeasureTheory.inter_ae_eq_empty_of_ae_eq_empty_left
File: Mathlib/MeasureTheory/OuterMeasure/AE.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ : F
s t : Set α
h : s =ᶠ[ae μ] ∅
⊢ s ∩ t =ᶠ[ae μ] ∅
state_after: case h.e'_5
α : Type u_1
β : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ : F
s t : Set α
h : s =ᶠ[ae μ] ∅
⊢ ∅ = ∅ ∩ t
tactic: convert ae_eq_set_inter h (ae_eq_refl t)
state_before: case h.e'_5
α : Type u_1
β : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ : F
s t : Set α
h : s =ᶠ[ae μ] ∅
⊢ ∅ = ∅ ∩ t
state_after: no goals
tactic: rw [empty_inter]
Theorem: Finset.affineCombinationLineMapWeights_apply_right
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 ι₂
inst✝ : DecidableEq ι
i j : ι
h : i ≠ j
c : k
⊢ affineCombinationLineMapWeights i j c j = c
state_after: no goals
tactic: simp [affineCombinationLineMapWeights, h.symm]
Theorem: CategoryTheory.Square.toArrowArrowFunctor_obj_left_left
File: Mathlib/CategoryTheory/Square.lean

Proof steps:
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
X✝ Y✝ : Square C
φ : X✝ ⟶ Y✝
⊢ Arrow.homMk ⋯ ≫ ((fun sq => Arrow.mk (Arrow.homMk ⋯)) Y✝).hom =
    ((fun sq => Arrow.mk (Arrow.homMk ⋯)) X✝).hom ≫ Arrow.homMk ⋯
state_after: no goals
tactic: aesop_cat