ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: CochainComplex.HomComplex.Cochain.shift_add
File: Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean

Proof steps:
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a : ℤ
⊢ (γ₁ + γ₂).shift a = γ₁.shift a + γ₂.shift a
state_after: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a p q : ℤ
hpq : p + n = q
⊢ ((γ₁ + γ₂).shift a).v p q hpq = (γ₁.shift a + γ₂.shift a).v p q hpq
tactic: ext p q hpq
state_before: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a p q : ℤ
hpq : p + n = q
⊢ ((γ₁ + γ₂).shift a).v p q hpq = (γ₁.shift a + γ₂.shift a).v p q hpq
state_after: no goals
tactic: simp [shift_v']
Theorem: legendreSym.eq_neg_one_iff'
File: Mathlib/NumberTheory/LegendreSymbol/Basic.lean

Proof steps:
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
a : ℕ
⊢ legendreSym p ↑a = -1 ↔ ¬IsSquare ↑a
state_after: p : ℕ
inst✝ : Fact (Nat.Prime p)
a : ℕ
⊢ ¬IsSquare ↑↑a ↔ ¬IsSquare ↑a
tactic: rw [eq_neg_one_iff]
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
a : ℕ
⊢ ¬IsSquare ↑↑a ↔ ¬IsSquare ↑a
state_after: no goals
tactic: norm_cast
Theorem: Homeomorph.compStarAlgEquiv'_apply
File: Mathlib/Topology/ContinuousFunction/Algebra.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
inst✝⁸ : TopologicalSpace X
inst✝⁷ : TopologicalSpace Y
𝕜 : Type u_3
inst✝⁶ : CommSemiring 𝕜
A : Type u_4
inst✝⁵ : TopologicalSpace A
inst✝⁴ : Semiring A
inst✝³ : TopologicalSemiring A
inst✝² : StarRing A
inst✝¹ : ContinuousStar A
inst✝ : Algebra 𝕜 A
f : X ≃ₜ Y
g : C(Y, A)
⊢ (ContinuousMap.compStarAlgHom' 𝕜 A f.symm.toContinuousMap) ((ContinuousMap.compStarAlgHom' 𝕜 A f.toContinuousMap) g) =
    g
state_after: no goals
tactic: simp only [ContinuousMap.compStarAlgHom'_apply, ContinuousMap.comp_assoc,
        toContinuousMap_comp_symm, ContinuousMap.comp_id]
state_before: X : Type u_1
Y : Type u_2
inst✝⁸ : TopologicalSpace X
inst✝⁷ : TopologicalSpace Y
𝕜 : Type u_3
inst✝⁶ : CommSemiring 𝕜
A : Type u_4
inst✝⁵ : TopologicalSpace A
inst✝⁴ : Semiring A
inst✝³ : TopologicalSemiring A
inst✝² : StarRing A
inst✝¹ : ContinuousStar A
inst✝ : Algebra 𝕜 A
f : X ≃ₜ Y
g : C(X, A)
⊢ (ContinuousMap.compStarAlgHom' 𝕜 A f.toContinuousMap) ((ContinuousMap.compStarAlgHom' 𝕜 A f.symm.toContinuousMap) g) =
    g
state_after: no goals
tactic: simp only [ContinuousMap.compStarAlgHom'_apply, ContinuousMap.comp_assoc,
        symm_comp_toContinuousMap, ContinuousMap.comp_id]
Theorem: MeasureTheory.integral_div
File: Mathlib/MeasureTheory/Integral/Bochner.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : SMulCommClass ℝ 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : CompleteSpace F
G : Type u_5
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
L : Type u_6
inst✝ : RCLike L
r : L
f : α → L
⊢ ∫ (a : α), f a / r ∂μ = (∫ (a : α), f a ∂μ) / r
state_after: no goals
tactic: simpa only [← div_eq_mul_inv] using integral_mul_right r⁻¹ f
Theorem: continuous_circleMap_inv
File: Mathlib/MeasureTheory/Integral/CircleIntegral.lean

Proof steps:
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
R : ℝ
z w : ℂ
hw : w ∈ ball z R
⊢ Continuous fun θ => (circleMap z R θ - w)⁻¹
state_after: E : Type u_1
inst✝ : NormedAddCommGroup E
R : ℝ
z w : ℂ
hw : w ∈ ball z R
this : ∀ (θ : ℝ), circleMap z R θ - w ≠ 0
⊢ Continuous fun θ => (circleMap z R θ - w)⁻¹
tactic: have : ∀ θ, circleMap z R θ - w ≠ 0 := by
    simp_rw [sub_ne_zero]
    exact fun θ => circleMap_ne_mem_ball hw θ
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
R : ℝ
z w : ℂ
hw : w ∈ ball z R
this : ∀ (θ : ℝ), circleMap z R θ - w ≠ 0
⊢ Continuous fun θ => (circleMap z R θ - w)⁻¹
state_after: no goals
tactic: exact Continuous.inv₀ (by fun_prop) this
Theorem: LinearPMap.mem_domain_iff_of_eq_graph
File: Mathlib/LinearAlgebra/LinearPMap.lean

Proof steps:
state_before: R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type u_3
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type u_4
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
M : Type u_5
inst✝² : Monoid M
inst✝¹ : DistribMulAction M F
inst✝ : SMulCommClass R M F
y : M
f g : E →ₗ.[R] F
h : f.graph = g.graph
x : E
⊢ x ∈ f.domain ↔ x ∈ g.domain
state_after: no goals
tactic: simp_rw [mem_domain_iff, h]
Theorem: tsub_div
File: Mathlib/Algebra/Order/Field/Canonical/Basic.lean

Proof steps:
state_before: α : Type u_1
inst✝² : CanonicallyLinearOrderedSemifield α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c : α
⊢ (a - b) / c = a / c - b / c
state_after: no goals
tactic: simp_rw [div_eq_mul_inv, tsub_mul]
Theorem: OrderIso.preimage_Ici
File: Mathlib/Order/Interval/Set/OrderIso.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
e : α ≃o β
b : β
⊢ ⇑e ⁻¹' Ici b = Ici (e.symm b)
state_after: case h
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
e : α ≃o β
b : β
x : α
⊢ x ∈ ⇑e ⁻¹' Ici b ↔ x ∈ Ici (e.symm b)
tactic: ext x
state_before: case h
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
e : α ≃o β
b : β
x : α
⊢ x ∈ ⇑e ⁻¹' Ici b ↔ x ∈ Ici (e.symm b)
state_after: no goals
tactic: simp [← e.le_iff_le]
Theorem: List.chain_singleton
File: Mathlib/Data/List/Chain.lean

Proof steps:
state_before: α : Type u
β : Type v
R r : α → α → Prop
l l₁ l₂ : List α
a✝ b✝ a b : α
⊢ Chain R a [b] ↔ R a b
state_after: no goals
tactic: simp only [chain_cons, Chain.nil, and_true_iff]
Theorem: MeasureTheory.tendsto_lintegral_thickenedIndicator_of_isClosed
File: Mathlib/MeasureTheory/Measure/HasOuterApproxClosed.lean

Proof steps:
state_before: Ω✝ : Type u_1
inst✝⁶ : TopologicalSpace Ω✝
inst✝⁵ : MeasurableSpace Ω✝
inst✝⁴ : OpensMeasurableSpace Ω✝
Ω : Type u_2
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
F : Set Ω
F_closed : IsClosed F
δs : ℕ → ℝ
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
⊢ Tendsto (fun n => ∫⁻ (ω : Ω), ↑((thickenedIndicator ⋯ F) ω) ∂μ) atTop (𝓝 (μ F))
state_after: Ω✝ : Type u_1
inst✝⁶ : TopologicalSpace Ω✝
inst✝⁵ : MeasurableSpace Ω✝
inst✝⁴ : OpensMeasurableSpace Ω✝
Ω : Type u_2
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
F : Set Ω
F_closed : IsClosed F
δs : ℕ → ℝ
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
⊢ Tendsto (fun n ω => (thickenedIndicator ⋯ F) ω) atTop (𝓝 (F.indicator fun x => 1))
tactic: apply measure_of_cont_bdd_of_tendsto_indicator μ F_closed.measurableSet
    (fun n ↦ thickenedIndicator (δs_pos n) F) fun n ω ↦ thickenedIndicator_le_one (δs_pos n) F ω
state_before: Ω✝ : Type u_1
inst✝⁶ : TopologicalSpace Ω✝
inst✝⁵ : MeasurableSpace Ω✝
inst✝⁴ : OpensMeasurableSpace Ω✝
Ω : Type u_2
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
F : Set Ω
F_closed : IsClosed F
δs : ℕ → ℝ
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
⊢ Tendsto (fun n ω => (thickenedIndicator ⋯ F) ω) atTop (𝓝 (F.indicator fun x => 1))
state_after: Ω✝ : Type u_1
inst✝⁶ : TopologicalSpace Ω✝
inst✝⁵ : MeasurableSpace Ω✝
inst✝⁴ : OpensMeasurableSpace Ω✝
Ω : Type u_2
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
F : Set Ω
F_closed : IsClosed F
δs : ℕ → ℝ
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key : Tendsto (fun n => ⇑(thickenedIndicator ⋯ F)) atTop (𝓝 ((closure F).indicator fun x => 1))
⊢ Tendsto (fun n ω => (thickenedIndicator ⋯ F) ω) atTop (𝓝 (F.indicator fun x => 1))
tactic: have key := thickenedIndicator_tendsto_indicator_closure δs_pos δs_lim F
state_before: Ω✝ : Type u_1
inst✝⁶ : TopologicalSpace Ω✝
inst✝⁵ : MeasurableSpace Ω✝
inst✝⁴ : OpensMeasurableSpace Ω✝
Ω : Type u_2
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
F : Set Ω
F_closed : IsClosed F
δs : ℕ → ℝ
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key : Tendsto (fun n => ⇑(thickenedIndicator ⋯ F)) atTop (𝓝 ((closure F).indicator fun x => 1))
⊢ Tendsto (fun n ω => (thickenedIndicator ⋯ F) ω) atTop (𝓝 (F.indicator fun x => 1))
state_after: no goals
tactic: rwa [F_closed.closure_eq] at key
Theorem: Rat.sqrt_natCast
File: Mathlib/Data/Rat/Sqrt.lean

Proof steps:
state_before: n : ℕ
⊢ sqrt ↑n = ↑n.sqrt
state_after: no goals
tactic: rw [← Int.cast_natCast, sqrt_intCast, Int.sqrt_natCast, Int.cast_natCast]
Theorem: Rat.add_den_dvd
File: Mathlib/Data/Rat/Lemmas.lean

Proof steps:
state_before: q₁ q₂ : ℚ
⊢ (q₁ + q₂).den ∣ q₁.den * q₂.den
state_after: q₁ q₂ : ℚ
⊢ {
        num :=
          (q₁.num * ↑q₂.den + q₂.num * ↑q₁.den) / ↑((q₁.num * ↑q₂.den + q₂.num * ↑q₁.den).natAbs.gcd (q₁.den * q₂.den)),
        den := q₁.den * q₂.den / (q₁.num * ↑q₂.den + q₂.num * ↑q₁.den).natAbs.gcd (q₁.den * q₂.den), den_nz := ⋯,
        reduced := ⋯ }.den ∣
    q₁.den * q₂.den
tactic: rw [add_def, normalize_eq]
state_before: q₁ q₂ : ℚ
⊢ {
        num :=
          (q₁.num * ↑q₂.den + q₂.num * ↑q₁.den) / ↑((q₁.num * ↑q₂.den + q₂.num * ↑q₁.den).natAbs.gcd (q₁.den * q₂.den)),
        den := q₁.den * q₂.den / (q₁.num * ↑q₂.den + q₂.num * ↑q₁.den).natAbs.gcd (q₁.den * q₂.den), den_nz := ⋯,
        reduced := ⋯ }.den ∣
    q₁.den * q₂.den
state_after: case h
q₁ q₂ : ℚ
⊢ (q₁.num * ↑q₂.den + q₂.num * ↑q₁.den).natAbs.gcd (q₁.den * q₂.den) ∣ q₁.den * q₂.den
tactic: apply Nat.div_dvd_of_dvd
state_before: case h
q₁ q₂ : ℚ
⊢ (q₁.num * ↑q₂.den + q₂.num * ↑q₁.den).natAbs.gcd (q₁.den * q₂.den) ∣ q₁.den * q₂.den
state_after: no goals
tactic: apply Nat.gcd_dvd_right
Theorem: ModelWithCorners.prod_target
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

Proof steps:
state_before: 𝕜 : Type u
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type v
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
H : Type w
inst✝³ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
E' : Type v'
inst✝² : NormedAddCommGroup E'
inst✝¹ : NormedSpace 𝕜 E'
H' : Type w'
inst✝ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
⊢ { toFun := fun x => (↑I x.1, ↑I' x.2), invFun := fun x => (↑I.symm x.1, ↑I'.symm x.2),
        source := {x | x.1 ∈ I.source ∧ x.2 ∈ I'.source}, target := __src✝.target, map_source' := ⋯, map_target' := ⋯,
        left_inv' := ⋯, right_inv' := ⋯ }.source =
    univ
state_after: no goals
tactic: simp only [setOf_true, mfld_simps]
Theorem: Equiv.toPartialEquivOfImageEq_symm_apply
File: Mathlib/Logic/Equiv/PartialEquiv.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e✝ : PartialEquiv α β
e' : PartialEquiv β γ
e : α ≃ β
s : Set α
t : Set β
h : ⇑e '' s = t
x : β
hx : x ∈ t
⊢ e.symm x ∈ s
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e✝ : PartialEquiv α β
e' : PartialEquiv β γ
e : α ≃ β
s : Set α
x : β
hx : x ∈ ⇑e '' s
⊢ e.symm x ∈ s
tactic: subst t
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e✝ : PartialEquiv α β
e' : PartialEquiv β γ
e : α ≃ β
s : Set α
x : β
hx : x ∈ ⇑e '' s
⊢ e.symm x ∈ s
state_after: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e✝ : PartialEquiv α β
e' : PartialEquiv β γ
e : α ≃ β
s : Set α
x : α
hx : x ∈ s
⊢ e.symm (e x) ∈ s
tactic: rcases hx with ⟨x, hx, rfl⟩
state_before: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e✝ : PartialEquiv α β
e' : PartialEquiv β γ
e : α ≃ β
s : Set α
x : α
hx : x ∈ s
⊢ e.symm (e x) ∈ s
state_after: no goals
tactic: rwa [e.symm_apply_apply]
Theorem: UniversalEnvelopingAlgebra.lift_ι_apply
File: Mathlib/Algebra/Lie/UniversalEnveloping.lean

Proof steps:
state_before: R : Type u₁
L : Type u₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
A : Type u₃
inst✝¹ : Ring A
inst✝ : Algebra R A
f : L →ₗ⁅R⁆ A
x : L
⊢ ((lift R) f) ((ι R) x) = f x
state_after: no goals
tactic: rw [← Function.comp_apply (f := lift R f) (g := ι R) (x := x), ι_comp_lift]
Theorem: Finset.diag_union_offDiag
File: Mathlib/Data/Finset/Prod.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t : Finset α
x : α × α
⊢ s.diag ∪ s.offDiag = s ×ˢ s
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t : Finset α
x : α × α
⊢ s.diag ∪ s.offDiag = filter (fun a => a.1 = a.2) (s ×ˢ s) ∪ filter (fun a => ¬a.1 = a.2) (s ×ˢ s)
tactic: conv_rhs => rw [← filter_union_filter_neg_eq (fun a => a.1 = a.2) (s ×ˢ s)]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t : Finset α
x : α × α
⊢ s.diag ∪ s.offDiag = filter (fun a => a.1 = a.2) (s ×ˢ s) ∪ filter (fun a => ¬a.1 = a.2) (s ×ˢ s)
state_after: no goals
tactic: rfl
Theorem: Matrix.dotProduct_single
File: Mathlib/Data/Matrix/Basic.lean

Proof steps:
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : DecidableEq m
inst✝ : NonUnitalNonAssocSemiring α
u v w : m → α
x : α
i : m
⊢ v ⬝ᵥ Pi.single i x = v i * x
state_after: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : DecidableEq m
inst✝ : NonUnitalNonAssocSemiring α
u v w : m → α
x : α
i : m
this : ∀ (j : m), j ≠ i → v j * Pi.single i x j = 0
⊢ v ⬝ᵥ Pi.single i x = v i * x
tactic: have : ∀ j ≠ i, v j * Pi.single (f := fun _ => α) i x j = 0 := fun j hij => by
    simp [Pi.single_eq_of_ne hij]
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : DecidableEq m
inst✝ : NonUnitalNonAssocSemiring α
u v w : m → α
x : α
i : m
this : ∀ (j : m), j ≠ i → v j * Pi.single i x j = 0
⊢ v ⬝ᵥ Pi.single i x = v i * x
state_after: no goals
tactic: convert Finset.sum_eq_single i (fun j _ => this j) _ using 1 <;> simp
Theorem: MeasureTheory.lintegral_nnnorm_zero
File: Mathlib/MeasureTheory/Function/L1Space.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
⊢ ∫⁻ (x : α), ↑‖0‖₊ ∂μ = 0
state_after: no goals
tactic: simp
Theorem: NumberField.InfinitePlace.comap_surjective
File: Mathlib/NumberTheory/NumberField/Embeddings.lean

Proof steps:
state_before: k : Type u_1
inst✝⁵ : Field k
K : Type u_2
inst✝⁴ : Field K
F : Type u_3
inst✝³ : Field F
inst✝² : NumberField K
inst✝¹ : Algebra k K
inst✝ : Algebra.IsAlgebraic k K
w : InfinitePlace k
this : Algebra k ℂ := w.embedding.toAlgebra
⊢ (fun x => x.comap (algebraMap k K)) (mk IsAlgClosed.lift.toRingHom) = w
state_after: no goals
tactic: simp [comap_mk, RingHom.algebraMap_toAlgebra]
Theorem: HNNExtension.inv_t_mul_of
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
b : ↥B
⊢ t⁻¹ * of ↑b = of ↑(φ.symm b) * t⁻¹
state_after: 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
b : ↥B
⊢ t⁻¹ * of ↑b = t⁻¹ * of ↑b * t * t⁻¹
tactic: rw [equiv_symm_eq_conj]
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
b : ↥B
⊢ t⁻¹ * of ↑b = t⁻¹ * of ↑b * t * t⁻¹
state_after: no goals
tactic: simp
Theorem: zsmul_eq_mul'
File: Mathlib/Data/Int/Cast/Lemmas.lean

Proof steps:
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : NonAssocRing α
a✝ b : α
n✝ : ℤ
a : α
n : ℤ
⊢ n • a = a * ↑n
state_after: no goals
tactic: rw [zsmul_eq_mul, (n.cast_commute a).eq]
Theorem: isOpen_pi_iff
File: Mathlib/Topology/Constructions.lean

Proof steps:
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
ι : Type u_5
π : ι → Type u_6
κ : Type u_7
inst✝ : TopologicalSpace X
T : (i : ι) → TopologicalSpace (π i)
f : X → (i : ι) → π i
s : Set ((a : ι) → π a)
⊢ IsOpen s ↔ ∀ f ∈ s, ∃ I u, (∀ a ∈ I, IsOpen (u a) ∧ f a ∈ u a) ∧ (↑I).pi u ⊆ s
state_after: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
ι : Type u_5
π : ι → Type u_6
κ : Type u_7
inst✝ : TopologicalSpace X
T : (i : ι) → TopologicalSpace (π i)
f : X → (i : ι) → π i
s : Set ((a : ι) → π a)
⊢ (∀ x ∈ s, 𝓝 x ≤ 𝓟 s) ↔ ∀ f ∈ s, ∃ I u, (∀ a ∈ I, IsOpen (u a) ∧ f a ∈ u a) ∧ (↑I).pi u ⊆ s
tactic: rw [isOpen_iff_nhds]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
ι : Type u_5
π : ι → Type u_6
κ : Type u_7
inst✝ : TopologicalSpace X
T : (i : ι) → TopologicalSpace (π i)
f : X → (i : ι) → π i
s : Set ((a : ι) → π a)
⊢ (∀ x ∈ s, 𝓝 x ≤ 𝓟 s) ↔ ∀ f ∈ s, ∃ I u, (∀ a ∈ I, IsOpen (u a) ∧ f a ∈ u a) ∧ (↑I).pi u ⊆ s
state_after: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
ι : Type u_5
π : ι → Type u_6
κ : Type u_7
inst✝ : TopologicalSpace X
T : (i : ι) → TopologicalSpace (π i)
f : X → (i : ι) → π i
s : Set ((a : ι) → π a)
⊢ (∀ x ∈ s, ∃ I t, (∀ (i : ι), ∃ t_1 ⊆ t i, IsOpen t_1 ∧ x i ∈ t_1) ∧ (↑I).pi t ⊆ s) ↔
    ∀ f ∈ s, ∃ I u, (∀ a ∈ I, IsOpen (u a) ∧ f a ∈ u a) ∧ (↑I).pi u ⊆ s
tactic: simp_rw [le_principal_iff, nhds_pi, Filter.mem_pi', mem_nhds_iff]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
ι : Type u_5
π : ι → Type u_6
κ : Type u_7
inst✝ : TopologicalSpace X
T : (i : ι) → TopologicalSpace (π i)
f : X → (i : ι) → π i
s : Set ((a : ι) → π a)
⊢ (∀ x ∈ s, ∃ I t, (∀ (i : ι), ∃ t_1 ⊆ t i, IsOpen t_1 ∧ x i ∈ t_1) ∧ (↑I).pi t ⊆ s) ↔
    ∀ f ∈ s, ∃ I u, (∀ a ∈ I, IsOpen (u a) ∧ f a ∈ u a) ∧ (↑I).pi u ⊆ s
state_after: case refine_1
X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
ι : Type u_5
π : ι → Type u_6
κ : Type u_7
inst✝ : TopologicalSpace X
T : (i : ι) → TopologicalSpace (π i)
f : X → (i : ι) → π i
s : Set ((a : ι) → π a)
a : (a : ι) → π a
x✝ : a ∈ s
⊢ (∃ I t, (∀ (i : ι), ∃ t_1 ⊆ t i, IsOpen t_1 ∧ a i ∈ t_1) ∧ (↑I).pi t ⊆ s) →
    ∃ I u, (∀ a_2 ∈ I, IsOpen (u a_2) ∧ a a_2 ∈ u a_2) ∧ (↑I).pi u ⊆ s

case refine_2
X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
ι : Type u_5
π : ι → Type u_6
κ : Type u_7
inst✝ : TopologicalSpace X
T : (i : ι) → TopologicalSpace (π i)
f : X → (i : ι) → π i
s : Set ((a : ι) → π a)
a : (a : ι) → π a
x✝ : a ∈ s
⊢ (∃ I u, (∀ a_1 ∈ I, IsOpen (u a_1) ∧ a a_1 ∈ u a_1) ∧ (↑I).pi u ⊆ s) →
    ∃ I t, (∀ (i : ι), ∃ t_1 ⊆ t i, IsOpen t_1 ∧ a i ∈ t_1) ∧ (↑I).pi t ⊆ s
tactic: refine forall₂_congr fun a _ => ⟨?_, ?_⟩
Theorem: CategoryTheory.Idempotents.Karoubi.decompId_p_f
File: Mathlib/CategoryTheory/Idempotents/Karoubi.lean

Proof steps:
state_before: C : Type u_1
inst✝ : Category.{?u.38879, u_1} C
P : Karoubi C
⊢ P.p = { X := P.X, p := 𝟙 P.X, idem := ⋯ }.p ≫ P.p ≫ P.p
state_after: no goals
tactic: erw [coe_p, id_comp, P.idem]
Theorem: AlgebraicGeometry.quasiCompact_over_affine_iff
File: Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean

Proof steps:
state_before: X✝ Y✝ : Scheme
f✝ : X✝ ⟶ Y✝
X Y : Scheme
f : X ⟶ Y
inst✝ : IsAffine Y
⊢ QuasiCompact f ↔ CompactSpace ↑↑X.toPresheafedSpace
state_after: no goals
tactic: rw [HasAffineProperty.iff_of_isAffine (P := @QuasiCompact)]
Theorem: MeasureTheory.Content.outerMeasure_exists_open
File: Mathlib/MeasureTheory/Measure/Content.lean

Proof steps:
state_before: G : Type w
inst✝¹ : TopologicalSpace G
μ : Content G
inst✝ : R1Space G
A : Set G
hA : μ.outerMeasure A ≠ ⊤
ε : ℝ≥0
hε : ε ≠ 0
⊢ ∃ U, A ⊆ ↑U ∧ μ.outerMeasure ↑U ≤ μ.outerMeasure A + ↑ε
state_after: case intro.intro.intro
G : Type w
inst✝¹ : TopologicalSpace G
μ : Content G
inst✝ : R1Space G
A : Set G
hA : μ.outerMeasure A ≠ ⊤
ε : ℝ≥0
hε : ε ≠ 0
U : Set G
hU : IsOpen U
h2U : A ⊆ U
h3U :
  (inducedOuterMeasure (fun s₁ hs₁ => μ.innerContent { carrier := s₁, is_open' := hs₁ }) ⋯ ⋯) U ≤
    (inducedOuterMeasure (fun s₁ hs₁ => μ.innerContent { carrier := s₁, is_open' := hs₁ }) ⋯ ⋯) A + ↑ε
⊢ ∃ U, A ⊆ ↑U ∧ μ.outerMeasure ↑U ≤ μ.outerMeasure A + ↑ε
tactic: rcases inducedOuterMeasure_exists_set _ μ.innerContent_iUnion_nat μ.innerContent_mono hA
      (ENNReal.coe_ne_zero.2 hε) with
    ⟨U, hU, h2U, h3U⟩
state_before: case intro.intro.intro
G : Type w
inst✝¹ : TopologicalSpace G
μ : Content G
inst✝ : R1Space G
A : Set G
hA : μ.outerMeasure A ≠ ⊤
ε : ℝ≥0
hε : ε ≠ 0
U : Set G
hU : IsOpen U
h2U : A ⊆ U
h3U :
  (inducedOuterMeasure (fun s₁ hs₁ => μ.innerContent { carrier := s₁, is_open' := hs₁ }) ⋯ ⋯) U ≤
    (inducedOuterMeasure (fun s₁ hs₁ => μ.innerContent { carrier := s₁, is_open' := hs₁ }) ⋯ ⋯) A + ↑ε
⊢ ∃ U, A ⊆ ↑U ∧ μ.outerMeasure ↑U ≤ μ.outerMeasure A + ↑ε
state_after: no goals
tactic: exact ⟨⟨U, hU⟩, h2U, h3U⟩
Theorem: MeasureTheory.OuterMeasure.map_comap
File: Mathlib/MeasureTheory/OuterMeasure/Operations.lean

Proof steps:
state_before: α : Type u_1
β✝ : Type u_2
m✝ : OuterMeasure α
β : Type u_3
f : α → β
m : OuterMeasure β
s : Set β
⊢ f '' (f ⁻¹' s) = Subtype.val '' (Subtype.val ⁻¹' s)
state_after: no goals
tactic: simp only [image_preimage_eq_inter_range, Subtype.range_coe]
Theorem: LieSubalgebra.sInf_coe
File: Mathlib/Algebra/Lie/Subalgebra.lean

Proof steps:
state_before: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
S : Set (LieSubalgebra R L)
⊢ ↑(sInf S) = ⋂ s ∈ S, ↑s
state_after: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
S : Set (LieSubalgebra R L)
⊢ ⋂ p ∈ {x | ∃ s ∈ S, s.toSubmodule = x}, ↑p = ⋂ s ∈ S, ↑s
tactic: rw [← coe_to_submodule, sInf_coe_to_submodule, Submodule.sInf_coe]
state_before: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
S : Set (LieSubalgebra R L)
⊢ ⋂ p ∈ {x | ∃ s ∈ S, s.toSubmodule = x}, ↑p = ⋂ s ∈ S, ↑s
state_after: case h
R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
S : Set (LieSubalgebra R L)
x : L
⊢ x ∈ ⋂ p ∈ {x | ∃ s ∈ S, s.toSubmodule = x}, ↑p ↔ x ∈ ⋂ s ∈ S, ↑s
tactic: ext x
state_before: case h
R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
S : Set (LieSubalgebra R L)
x : L
⊢ x ∈ ⋂ p ∈ {x | ∃ s ∈ S, s.toSubmodule = x}, ↑p ↔ x ∈ ⋂ s ∈ S, ↑s
state_after: no goals
tactic: simp