ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: _private.Mathlib.Probability.Kernel.Disintegration.Basic.0.MeasureTheory.Measure.IsCondKernel.apply_of_ne_zero_of_measurableSet
File: Mathlib/Probability/Kernel/Disintegration/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mΩ : MeasurableSpace Ω
ρ : Measure (α × Ω)
inst✝² : IsFiniteMeasure ρ
ρCond : Kernel α Ω
inst✝¹ : ρ.IsCondKernel ρCond
inst✝ : MeasurableSingletonClass α
x : α
hx : ρ.fst {x} ≠ 0
s : Set Ω
hs : MeasurableSet s
⊢ (ρCond x) s = (ρ.fst {x})⁻¹ * ρ ({x} ×ˢ s)
state_after: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mΩ : MeasurableSpace Ω
ρ : Measure (α × Ω)
inst✝² : IsFiniteMeasure ρ
ρCond : Kernel α Ω
inst✝¹ : ρ.IsCondKernel ρCond
inst✝ : MeasurableSingletonClass α
x : α
hx : ρ.fst {x} ≠ 0
s : Set Ω
hs : MeasurableSet s
this : IsSFiniteKernel ρCond
⊢ (ρCond x) s = (ρ.fst {x})⁻¹ * ρ ({x} ×ˢ s)
tactic: have := isSFiniteKernel ρ ρCond (by rintro rfl; simp at hx)
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mΩ : MeasurableSpace Ω
ρ : Measure (α × Ω)
inst✝² : IsFiniteMeasure ρ
ρCond : Kernel α Ω
inst✝¹ : ρ.IsCondKernel ρCond
inst✝ : MeasurableSingletonClass α
x : α
hx : ρ.fst {x} ≠ 0
s : Set Ω
hs : MeasurableSet s
this : IsSFiniteKernel ρCond
⊢ (ρCond x) s = (ρ.fst {x})⁻¹ * ρ ({x} ×ˢ s)
state_after: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mΩ : MeasurableSpace Ω
ρ : Measure (α × Ω)
inst✝² : IsFiniteMeasure ρ
ρCond : Kernel α Ω
inst✝¹ : ρ.IsCondKernel ρCond
inst✝ : MeasurableSingletonClass α
x : α
hx : ρ.fst {x} ≠ 0
s : Set Ω
hs : MeasurableSet s
this : IsSFiniteKernel ρCond
⊢ (ρCond x) s = (ρ.fst {x})⁻¹ * (ρ.fst ⊗ₘ ρCond) ({x} ×ˢ s)
tactic: nth_rewrite 2 [← ρ.disintegrate ρCond]
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mΩ : MeasurableSpace Ω
ρ : Measure (α × Ω)
inst✝² : IsFiniteMeasure ρ
ρCond : Kernel α Ω
inst✝¹ : ρ.IsCondKernel ρCond
inst✝ : MeasurableSingletonClass α
x : α
hx : ρ.fst {x} ≠ 0
s : Set Ω
hs : MeasurableSet s
this : IsSFiniteKernel ρCond
⊢ (ρCond x) s = (ρ.fst {x})⁻¹ * (ρ.fst ⊗ₘ ρCond) ({x} ×ˢ s)
state_after: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mΩ : MeasurableSpace Ω
ρ : Measure (α × Ω)
inst✝² : IsFiniteMeasure ρ
ρCond : Kernel α Ω
inst✝¹ : ρ.IsCondKernel ρCond
inst✝ : MeasurableSingletonClass α
x : α
hx : ρ.fst {x} ≠ 0
s : Set Ω
hs : MeasurableSet s
this : IsSFiniteKernel ρCond
⊢ (ρCond x) s = (ρ.fst {x})⁻¹ * ∫⁻ (a : α), (ρCond a) (Prod.mk a ⁻¹' {x} ×ˢ s) ∂ρ.fst
tactic: rw [Measure.compProd_apply (measurableSet_prod.mpr (Or.inl ⟨measurableSet_singleton x, hs⟩))]
Theorem: Mathlib.Tactic.Abel.term_add_term
File: Mathlib/Tactic/Abel.lean

Proof steps:
state_before: α : Type u_1
inst✝ : AddCommMonoid α
n₁ : ℕ
x a₁ : α
n₂ : ℕ
a₂ : α
n' : ℕ
a' : α
h₁ : n₁ + n₂ = n'
h₂ : a₁ + a₂ = a'
⊢ term n₁ x a₁ + term n₂ x a₂ = term n' x a'
state_after: no goals
tactic: simp [h₁.symm, h₂.symm, term, add_nsmul, add_assoc, add_left_comm]
Theorem: Nat.sup_divisors_id
File: Mathlib/NumberTheory/Divisors.lean

Proof steps:
state_before: n✝ n : ℕ
⊢ n.divisors.sup id = n
state_after: n✝ n : ℕ
⊢ n ≤ n.divisors.sup id
tactic: refine le_antisymm (Finset.sup_le fun _ ↦ divisor_le) ?_
state_before: n✝ n : ℕ
⊢ n ≤ n.divisors.sup id
state_after: case inl
n : ℕ
⊢ 0 ≤ (divisors 0).sup id

case inr
n✝ n : ℕ
hn : n ≠ 0
⊢ n ≤ n.divisors.sup id
tactic: rcases Decidable.eq_or_ne n 0 with rfl | hn
Theorem: UpperSet.mem_sInf_iff
File: Mathlib/Order/UpperLower/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝ : LE α
S : Set (UpperSet α)
s t : UpperSet α
a : α
⊢ (∃ i, ∃ (_ : i ∈ S), a ∈ ↑i) ↔ ∃ s ∈ S, a ∈ s
state_after: no goals
tactic: simp only [exists_prop, SetLike.mem_coe]
Theorem: MeasureTheory.lintegral_strict_mono
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hμ : μ ≠ 0
hg : AEMeasurable g μ
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
h : ∀ᵐ (x : α) ∂μ, f x < g x
⊢ ∫⁻ (x : α), f x ∂μ < ∫⁻ (x : α), g x ∂μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hμ : ¬μ univ = 0
hg : AEMeasurable g μ
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
h : ∀ᵐ (x : α) ∂μ, f x < g x
⊢ ∫⁻ (x : α), f x ∂μ < ∫⁻ (x : α), g x ∂μ
tactic: rw [Ne, ← Measure.measure_univ_eq_zero] at hμ
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hμ : ¬μ univ = 0
hg : AEMeasurable g μ
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
h : ∀ᵐ (x : α) ∂μ, f x < g x
⊢ ∫⁻ (x : α), f x ∂μ < ∫⁻ (x : α), g x ∂μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hμ : ¬μ univ = 0
hg : AEMeasurable g μ
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
h : ∀ᵐ (x : α) ∂μ, f x < g x
⊢ ∀ᵐ (x : α) ∂μ, x ∈ univ → f x < g x
tactic: refine lintegral_strict_mono_of_ae_le_of_ae_lt_on hg hfi (ae_le_of_ae_lt h) hμ ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hμ : ¬μ univ = 0
hg : AEMeasurable g μ
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
h : ∀ᵐ (x : α) ∂μ, f x < g x
⊢ ∀ᵐ (x : α) ∂μ, x ∈ univ → f x < g x
state_after: no goals
tactic: simpa using h
Theorem: Cardinal.exists_eq_of_iSup_eq_of_not_isSuccLimit
File: Mathlib/SetTheory/Cardinal/Basic.lean

Proof steps:
state_before: α β ι : Type u
f : ι → Cardinal.{v}
ω : Cardinal.{v}
hω : ¬IsSuccLimit ω
h : ⨆ i, f i = ω
⊢ ∃ i, f i = ω
state_after: α β ι : Type u
f : ι → Cardinal.{v}
hω : ¬IsSuccLimit (⨆ i, f i)
⊢ ∃ i, f i = ⨆ i, f i
tactic: subst h
state_before: α β ι : Type u
f : ι → Cardinal.{v}
hω : ¬IsSuccLimit (⨆ i, f i)
⊢ ∃ i, f i = ⨆ i, f i
state_after: α β ι : Type u
f : ι → Cardinal.{v}
hω : ¬IsSuccLimit (⨆ i, f i)
⊢ BddAbove (range f)
tactic: refine (isLUB_csSup' ?_).exists_of_not_isSuccLimit hω
state_before: α β ι : Type u
f : ι → Cardinal.{v}
hω : ¬IsSuccLimit (⨆ i, f i)
⊢ BddAbove (range f)
state_after: α β ι : Type u
f : ι → Cardinal.{v}
hf : ¬BddAbove (range f)
⊢ IsSuccLimit (⨆ i, f i)
tactic: contrapose! hω with hf
state_before: α β ι : Type u
f : ι → Cardinal.{v}
hf : ¬BddAbove (range f)
⊢ IsSuccLimit (⨆ i, f i)
state_after: α β ι : Type u
f : ι → Cardinal.{v}
hf : ¬BddAbove (range f)
⊢ IsSuccLimit ⊥
tactic: rw [iSup, csSup_of_not_bddAbove hf, csSup_empty]
state_before: α β ι : Type u
f : ι → Cardinal.{v}
hf : ¬BddAbove (range f)
⊢ IsSuccLimit ⊥
state_after: no goals
tactic: exact Order.isSuccLimit_bot
Theorem: AddMonoid.Coprod.range_eq
File: Mathlib/GroupTheory/Coprod/Basic.lean

Proof steps:
state_before: G : Type u_1
H : Type u_2
inst✝² : Group G
inst✝¹ : Group H
K : Type u_3
inst✝ : Group K
f : G ∗ H →* K
⊢ f.range = (f.comp inl).range ⊔ (f.comp inr).range
state_after: no goals
tactic: rw [MonoidHom.range_eq_map, ← range_inl_sup_range_inr, Subgroup.map_sup, MonoidHom.map_range,
    MonoidHom.map_range]
Theorem: Homeomorph.image_connectedComponentIn
File: Mathlib/Topology/Homeomorph.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝¹ : TopologicalSpace X'
inst✝ : TopologicalSpace Y'
s : Set X
h : X ≃ₜ Y
x : X
hx : x ∈ s
⊢ ⇑h '' connectedComponentIn s x = connectedComponentIn (⇑h '' s) (h x)
state_after: X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝¹ : TopologicalSpace X'
inst✝ : TopologicalSpace Y'
s : Set X
h : X ≃ₜ Y
x : X
hx : x ∈ s
⊢ connectedComponentIn (⇑h '' s) (h x) ⊆ ⇑h '' connectedComponentIn s x
tactic: refine (h.continuous.image_connectedComponentIn_subset hx).antisymm ?_
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝¹ : TopologicalSpace X'
inst✝ : TopologicalSpace Y'
s : Set X
h : X ≃ₜ Y
x : X
hx : x ∈ s
⊢ connectedComponentIn (⇑h '' s) (h x) ⊆ ⇑h '' connectedComponentIn s x
state_after: X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝¹ : TopologicalSpace X'
inst✝ : TopologicalSpace Y'
s : Set X
h : X ≃ₜ Y
x : X
hx : x ∈ s
this : ⇑h.symm '' connectedComponentIn (⇑h '' s) (h x) ⊆ connectedComponentIn (⇑h.symm '' (⇑h '' s)) (h.symm (h x))
⊢ connectedComponentIn (⇑h '' s) (h x) ⊆ ⇑h '' connectedComponentIn s x
tactic: have := h.symm.continuous.image_connectedComponentIn_subset (mem_image_of_mem h hx)
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝¹ : TopologicalSpace X'
inst✝ : TopologicalSpace Y'
s : Set X
h : X ≃ₜ Y
x : X
hx : x ∈ s
this : ⇑h.symm '' connectedComponentIn (⇑h '' s) (h x) ⊆ connectedComponentIn (⇑h.symm '' (⇑h '' s)) (h.symm (h x))
⊢ connectedComponentIn (⇑h '' s) (h x) ⊆ ⇑h '' connectedComponentIn s x
state_after: no goals
tactic: rwa [image_subset_iff, h.preimage_symm, h.image_symm, h.preimage_image, h.symm_apply_apply]
    at this
Theorem: seminormFromConst_apply_of_isMul
File: Mathlib/Analysis/Normed/Ring/SeminormFromConst.lean

Proof steps:
state_before: R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
x : R
hx : ∀ (y : R), f (x * y) = f x * f y
hseq : seminormFromConst_seq c f x = fun _n => f x
⊢ Tendsto (seminormFromConst_seq c f x) atTop (𝓝 (f x))
state_after: R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
x : R
hx : ∀ (y : R), f (x * y) = f x * f y
hseq : seminormFromConst_seq c f x = fun _n => f x
⊢ Tendsto (fun _n => f x) atTop (𝓝 (f x))
tactic: rw [hseq]
state_before: R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
x : R
hx : ∀ (y : R), f (x * y) = f x * f y
hseq : seminormFromConst_seq c f x = fun _n => f x
⊢ Tendsto (fun _n => f x) atTop (𝓝 (f x))
state_after: no goals
tactic: exact tendsto_const_nhds
Theorem: Nat.two_dvd_centralBinom_succ
File: Mathlib/Data/Nat/Choose/Central.lean

Proof steps:
state_before: n : ℕ
⊢ 2 ∣ (n + 1).centralBinom
state_after: case h
n : ℕ
⊢ (n + 1).centralBinom = 2 * (n + 1 + n).choose n
tactic: use (n + 1 + n).choose n
state_before: case h
n : ℕ
⊢ (n + 1).centralBinom = 2 * (n + 1 + n).choose n
state_after: no goals
tactic: rw [centralBinom_eq_two_mul_choose, two_mul, ← add_assoc,
      choose_succ_succ' (n + 1 + n) n, choose_symm_add, ← two_mul]
Theorem: Polynomial.eval₂_at_ofNat
File: Mathlib/Algebra/Polynomial/Eval.lean

Proof steps:
state_before: R : Type u
S✝ : Type v
T : Type w
ι : Type y
a b : R
m n✝ : ℕ
inst✝² : Semiring R
p q r : R[X]
x : R
S : Type u_1
inst✝¹ : Semiring S
f : R →+* S
n : ℕ
inst✝ : n.AtLeastTwo
⊢ eval₂ f (OfNat.ofNat n) p = f (eval (OfNat.ofNat n) p)
state_after: no goals
tactic: simp [OfNat.ofNat]
Theorem: MvPolynomial.zero_not_mem_coeffs
File: Mathlib/Algebra/MvPolynomial/Basic.lean

Proof steps:
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q p : MvPolynomial σ R
⊢ 0 ∉ p.coeffs
state_after: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q p : MvPolynomial σ R
hz : 0 ∈ p.coeffs
⊢ False
tactic: intro hz
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q p : MvPolynomial σ R
hz : 0 ∈ p.coeffs
⊢ False
state_after: case intro.intro
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n✝ m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q p : MvPolynomial σ R
hz : 0 ∈ p.coeffs
n : σ →₀ ℕ
hnsupp : n ∈ p.support
hn : 0 = coeff n p
⊢ False
tactic: obtain ⟨n, hnsupp, hn⟩ := mem_coeffs_iff.mp hz
state_before: case intro.intro
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n✝ m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q p : MvPolynomial σ R
hz : 0 ∈ p.coeffs
n : σ →₀ ℕ
hnsupp : n ∈ p.support
hn : 0 = coeff n p
⊢ False
state_after: no goals
tactic: exact (mem_support_iff.mp hnsupp) hn.symm
Theorem: cfcₙHom_le_iff
File: Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁸ : OrderedCommRing R
inst✝¹⁷ : Nontrivial R
inst✝¹⁶ : StarRing R
inst✝¹⁵ : StarOrderedRing R
inst✝¹⁴ : MetricSpace R
inst✝¹³ : TopologicalRing R
inst✝¹² : ContinuousStar R
inst✝¹¹ : ∀ (α : Type ?u.1260451) [inst : Zero α] [inst_1 : TopologicalSpace α], StarOrderedRing C(α, R)₀
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : NonUnitalRing A
inst✝⁸ : StarRing A
inst✝⁷ : PartialOrder A
inst✝⁶ : StarOrderedRing A
inst✝⁵ : Module R A
inst✝⁴ : IsScalarTower R A A
inst✝³ : SMulCommClass R A A
inst✝² : StarModule R A
inst✝¹ : NonUnitalContinuousFunctionalCalculus R p
inst✝ : NonnegSpectrumClass R A
a : A
ha : p a
f g : C(↑(σₙ R a), R)₀
⊢ (cfcₙHom ha) f ≤ (cfcₙHom ha) g ↔ f ≤ g
state_after: no goals
tactic: rw [← sub_nonneg, ← map_sub, cfcₙHom_nonneg_iff, sub_nonneg]
Theorem: MulAction.mem_stabilizer_finset'
File: Mathlib/Algebra/Pointwise/Stabilizer.lean

Proof steps:
state_before: G : Type u_1
H : Type u_2
α : Type u_3
inst✝³ : Group G
inst✝² : Group H
inst✝¹ : MulAction G α
a : G
inst✝ : DecidableEq α
s : Finset α
⊢ a ∈ stabilizer G s ↔ ∀ ⦃b : α⦄, b ∈ s → a • b ∈ s
state_after: G : Type u_1
H : Type u_2
α : Type u_3
inst✝³ : Group G
inst✝² : Group H
inst✝¹ : MulAction G α
a : G
inst✝ : DecidableEq α
s : Finset α
⊢ s ⊆ a⁻¹ • s ↔ ∀ ⦃b : α⦄, b ∈ s → a • b ∈ s
tactic: rw [← Subgroup.inv_mem_iff, mem_stabilizer_finset_iff_subset_smul_finset]
state_before: G : Type u_1
H : Type u_2
α : Type u_3
inst✝³ : Group G
inst✝² : Group H
inst✝¹ : MulAction G α
a : G
inst✝ : DecidableEq α
s : Finset α
⊢ s ⊆ a⁻¹ • s ↔ ∀ ⦃b : α⦄, b ∈ s → a • b ∈ s
state_after: no goals
tactic: simp_rw [← Finset.mem_inv_smul_finset_iff, Finset.subset_iff]
Theorem: Matrix.mem_unitaryGroup_iff'
File: Mathlib/LinearAlgebra/UnitaryGroup.lean

Proof steps:
state_before: n : Type u
inst✝³ : DecidableEq n
inst✝² : Fintype n
α : Type v
inst✝¹ : CommRing α
inst✝ : StarRing α
A : Matrix n n α
⊢ A ∈ unitaryGroup n α ↔ star A * A = 1
state_after: n : Type u
inst✝³ : DecidableEq n
inst✝² : Fintype n
α : Type v
inst✝¹ : CommRing α
inst✝ : StarRing α
A : Matrix n n α
hA : star A * A = 1
⊢ A * star A = 1
tactic: refine ⟨And.left, fun hA => ⟨hA, ?_⟩⟩
state_before: n : Type u
inst✝³ : DecidableEq n
inst✝² : Fintype n
α : Type v
inst✝¹ : CommRing α
inst✝ : StarRing α
A : Matrix n n α
hA : star A * A = 1
⊢ A * star A = 1
state_after: no goals
tactic: rwa [mul_eq_one_comm] at hA
Theorem: Relation.not_cutExpand_zero
File: Mathlib/Logic/Hydra.lean

Proof steps:
state_before: α : Type u_1
r : α → α → Prop
inst✝ : IsIrrefl α r
s : Multiset α
⊢ ¬CutExpand r s 0
state_after: no goals
tactic: classical
  rw [cutExpand_iff]
  rintro ⟨_, _, _, ⟨⟩, _⟩
Theorem: List.mem_of_formPerm_ne_self
File: Mathlib/GroupTheory/Perm/List.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
l✝ : List α
x✝ : α
l : List α
x : α
h : l.formPerm x ≠ x
⊢ x ∈ l
state_after: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
l✝ : List α
x✝ : α
l : List α
x : α
h : l.formPerm x ≠ x
⊢ x ∈ {y | l.formPerm y ≠ y}
tactic: suffices x ∈ { y | formPerm l y ≠ y } by
    rw [← mem_toFinset]
    exact support_formPerm_le' _ this
state_before: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
l✝ : List α
x✝ : α
l : List α
x : α
h : l.formPerm x ≠ x
⊢ x ∈ {y | l.formPerm y ≠ y}
state_after: no goals
tactic: simpa using h
Theorem: Subgroup.commutator_eq_bot_iff_le_centralizer
File: Mathlib/GroupTheory/Commutator.lean

Proof steps:
state_before: G : Type u_1
G' : Type u_2
F : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : FunLike F G G'
inst✝ : MonoidHomClass F G G'
f : F
g₁ g₂ g₃ g : G
H₁ H₂ H₃ K₁ K₂ : Subgroup G
⊢ ⁅H₁, H₂⁆ = ⊥ ↔ H₁ ≤ centralizer ↑H₂
state_after: G : Type u_1
G' : Type u_2
F : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : FunLike F G G'
inst✝ : MonoidHomClass F G G'
f : F
g₁ g₂ g₃ g : G
H₁ H₂ H₃ K₁ K₂ : Subgroup G
⊢ (∀ g₁ ∈ H₁, ∀ g₂ ∈ H₂, ⁅g₁, g₂⁆ ∈ ⊥) ↔ H₁ ≤ centralizer ↑H₂
tactic: rw [eq_bot_iff, commutator_le]
state_before: G : Type u_1
G' : Type u_2
F : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : FunLike F G G'
inst✝ : MonoidHomClass F G G'
f : F
g₁ g₂ g₃ g : G
H₁ H₂ H₃ K₁ K₂ : Subgroup G
⊢ (∀ g₁ ∈ H₁, ∀ g₂ ∈ H₂, ⁅g₁, g₂⁆ ∈ ⊥) ↔ H₁ ≤ centralizer ↑H₂
state_after: G : Type u_1
G' : Type u_2
F : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : FunLike F G G'
inst✝ : MonoidHomClass F G G'
f : F
g₁ g₂ g₃ g : G
H₁ H₂ H₃ K₁ K₂ : Subgroup G
p : G
_hp : p ∈ H₁
q : G
hq : q ∈ H₂
⊢ ⁅p, q⁆ ∈ ⊥ ↔ q * p = p * q
tactic: refine forall_congr' fun p =>
    forall_congr' fun _hp => forall_congr' fun q => forall_congr' fun hq => ?_
state_before: G : Type u_1
G' : Type u_2
F : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : FunLike F G G'
inst✝ : MonoidHomClass F G G'
f : F
g₁ g₂ g₃ g : G
H₁ H₂ H₃ K₁ K₂ : Subgroup G
p : G
_hp : p ∈ H₁
q : G
hq : q ∈ H₂
⊢ ⁅p, q⁆ ∈ ⊥ ↔ q * p = p * q
state_after: no goals
tactic: rw [mem_bot, commutatorElement_eq_one_iff_mul_comm, eq_comm]
Theorem: Polynomial.exists_eval_ne_zero_of_natDegree_lt_card
File: Mathlib/Algebra/Polynomial/Roots.lean

Proof steps:
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p q f : R[X]
hf : f ≠ 0
hfR : ↑f.natDegree < #R
⊢ ∃ r, eval r f ≠ 0
state_after: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p q f : R[X]
hfR : ↑f.natDegree < #R
hf : ∀ (r : R), eval r f = 0
⊢ f = 0
tactic: contrapose! hf
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p q f : R[X]
hfR : ↑f.natDegree < #R
hf : ∀ (r : R), eval r f = 0
⊢ f = 0
state_after: no goals
tactic: exact eq_zero_of_forall_eval_zero_of_natDegree_lt_card f hf hfR
Theorem: CategoryTheory.Limits.diagramIsoCospan_hom_app
File: Mathlib/CategoryTheory/Limits/Shapes/Pullback/Cospan.lean

Proof steps:
state_before: C : Type u
inst✝ : Category.{v, u} C
F : WalkingCospan ⥤ C
j : WalkingCospan
⊢ F.obj j = (cospan (F.map inl) (F.map inr)).obj j
state_after: no goals
tactic: rcases j with (⟨⟩ | ⟨⟨⟩⟩) <;> rfl
state_before: C : Type u
inst✝ : Category.{v, u} C
F : WalkingCospan ⥤ C
⊢ ∀ {X Y : WalkingCospan} (f : X ⟶ Y),
    F.map f ≫ ((fun j => eqToIso ⋯) Y).hom = ((fun j => eqToIso ⋯) X).hom ≫ (cospan (F.map inl) (F.map inr)).map f
state_after: no goals
tactic: rintro (⟨⟩ | ⟨⟨⟩⟩) (⟨⟩ | ⟨⟨⟩⟩) f <;> cases f <;> dsimp <;> simp
Theorem: Nat.gcd_add_self_left
File: Mathlib/Data/Nat/GCD/Basic.lean

Proof steps:
state_before: m n : ℕ
⊢ (m + n).gcd n = m.gcd n
state_after: no goals
tactic: rw [gcd_comm, gcd_add_self_right, gcd_comm]
Theorem: ENNReal.hasSum_iff_tendsto_nat
File: Mathlib/Topology/Instances/ENNReal.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r✝ p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : ℕ → ℝ≥0∞
r : ℝ≥0∞
⊢ HasSum f r ↔ Tendsto (fun n => ∑ i ∈ Finset.range n, f i) atTop (𝓝 r)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r✝ p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : ℕ → ℝ≥0∞
r : ℝ≥0∞
h : Tendsto (fun n => ∑ i ∈ Finset.range n, f i) atTop (𝓝 r)
⊢ HasSum f r
tactic: refine ⟨HasSum.tendsto_sum_nat, fun h => ?_⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r✝ p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : ℕ → ℝ≥0∞
r : ℝ≥0∞
h : Tendsto (fun n => ∑ i ∈ Finset.range n, f i) atTop (𝓝 r)
⊢ HasSum f r
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r✝ p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : ℕ → ℝ≥0∞
r : ℝ≥0∞
h : Tendsto (fun n => ∑ i ∈ Finset.range n, f i) atTop (𝓝 r)
⊢ HasSum f (∑' (i : ℕ), f i)

α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r✝ p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : ℕ → ℝ≥0∞
r : ℝ≥0∞
h : Tendsto (fun n => ∑ i ∈ Finset.range n, f i) atTop (𝓝 r)
⊢ Monotone fun n => ∑ i ∈ Finset.range n, f i
tactic: rw [← iSup_eq_of_tendsto _ h, ← ENNReal.tsum_eq_iSup_nat]
Theorem: Irrational.div_int
File: Mathlib/Data/Real/Irrational.lean

Proof steps:
state_before: q : ℚ
x y : ℝ
h : Irrational x
m : ℤ
hm : m ≠ 0
⊢ Irrational (x / ↑m)
state_after: q : ℚ
x y : ℝ
h : Irrational x
m : ℤ
hm : m ≠ 0
⊢ Irrational (x / ↑↑m)
tactic: rw [← cast_intCast]
state_before: q : ℚ
x y : ℝ
h : Irrational x
m : ℤ
hm : m ≠ 0
⊢ Irrational (x / ↑↑m)
state_after: q : ℚ
x y : ℝ
h : Irrational x
m : ℤ
hm : m ≠ 0
⊢ ↑m ≠ 0
tactic: refine h.div_rat ?_
state_before: q : ℚ
x y : ℝ
h : Irrational x
m : ℤ
hm : m ≠ 0
⊢ ↑m ≠ 0
state_after: no goals
tactic: rwa [Int.cast_ne_zero]
Theorem: QuadraticMap.polar_sub_left
File: Mathlib/LinearAlgebra/QuadraticForm/Basic.lean

Proof steps:
state_before: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
A : Type u_7
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : AddCommGroup N
inst✝¹ : Module R M
inst✝ : Module R N
Q : QuadraticMap R M N
x x' y : M
⊢ polar (⇑Q) (x - x') y = polar (⇑Q) x y - polar (⇑Q) x' y
state_after: no goals
tactic: rw [sub_eq_add_neg, sub_eq_add_neg, polar_add_left, polar_neg_left]
Theorem: CategoryTheory.Adjunction.natIsoEquiv_apply_inv
File: Mathlib/CategoryTheory/Adjunction/Unique.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝¹ : Category.{?u.18053, u_1} C
inst✝ : Category.{?u.18057, u_2} D
F F' : C ⥤ D
G G' : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G'
i : G ≅ G'
⊢ (fun i =>
        { hom := (adj1.natTransEquiv adj2).symm i.hom, inv := (adj2.natTransEquiv adj1).symm i.inv, hom_inv_id := ⋯,
          inv_hom_id := ⋯ })
      ((fun i =>
          { hom := (adj1.natTransEquiv adj2) i.hom, inv := (adj2.natTransEquiv adj1) i.inv, hom_inv_id := ⋯,
            inv_hom_id := ⋯ })
        i) =
    i
state_after: no goals
tactic: simp
state_before: C : Type u_1
D : Type u_2
inst✝¹ : Category.{?u.18053, u_1} C
inst✝ : Category.{?u.18057, u_2} D
F F' : C ⥤ D
G G' : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G'
i : F' ≅ F
⊢ (fun i =>
        { hom := (adj1.natTransEquiv adj2) i.hom, inv := (adj2.natTransEquiv adj1) i.inv, hom_inv_id := ⋯,
          inv_hom_id := ⋯ })
      ((fun i =>
          { hom := (adj1.natTransEquiv adj2).symm i.hom, inv := (adj2.natTransEquiv adj1).symm i.inv, hom_inv_id := ⋯,
            inv_hom_id := ⋯ })
        i) =
    i
state_after: no goals
tactic: simp
Theorem: Real.Angle.toReal_neg_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

Proof steps:
state_before: ⊢ -π < -π / 2 ∧ -π / 2 ≤ π
state_after: no goals
tactic: constructor <;> linarith [pi_pos]
Theorem: MonoidAlgebra.mul_single_one_apply
File: Mathlib/Algebra/MonoidAlgebra/Basic.lean

Proof steps:
state_before: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝¹ : Semiring k
inst✝ : MulOneClass G
f : MonoidAlgebra k G
r : k
x a : G
⊢ a * 1 = x ↔ a = x
state_after: no goals
tactic: rw [mul_one]
Theorem: isGLB_infClosure
File: Mathlib/Order/SupClosed.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SemilatticeInf α
inst✝ : SemilatticeInf β
s t : Set α
a b : α
⊢ IsGLB (infClosure s) a ↔ IsGLB s a
state_after: no goals
tactic: simp [IsGLB]