ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: analyticOn_inv
File: Mathlib/Analysis/Analytic/Constructions.lean

Proof steps:
state_before: α : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_3
F : Type u_4
G : Type u_5
H : Type u_6
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : NormedSpace 𝕜 G
inst✝⁵ : NormedAddCommGroup H
inst✝⁴ : NormedSpace 𝕜 H
𝕝 : Type u_7
inst✝³ : NontriviallyNormedField 𝕝
inst✝² : NormedAlgebra 𝕜 𝕝
A : Type u_8
inst✝¹ : NormedRing A
inst✝ : NormedAlgebra 𝕜 A
⊢ AnalyticOn 𝕜 (fun z => z⁻¹) {z | z ≠ 0}
state_after: α : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_3
F : Type u_4
G : Type u_5
H : Type u_6
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : NormedSpace 𝕜 G
inst✝⁵ : NormedAddCommGroup H
inst✝⁴ : NormedSpace 𝕜 H
𝕝 : Type u_7
inst✝³ : NontriviallyNormedField 𝕝
inst✝² : NormedAlgebra 𝕜 𝕝
A : Type u_8
inst✝¹ : NormedRing A
inst✝ : NormedAlgebra 𝕜 A
z : 𝕝
m : z ∈ {z | z ≠ 0}
⊢ AnalyticAt 𝕜 (fun z => z⁻¹) z
tactic: intro z m
state_before: α : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_3
F : Type u_4
G : Type u_5
H : Type u_6
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : NormedSpace 𝕜 G
inst✝⁵ : NormedAddCommGroup H
inst✝⁴ : NormedSpace 𝕜 H
𝕝 : Type u_7
inst✝³ : NontriviallyNormedField 𝕝
inst✝² : NormedAlgebra 𝕜 𝕝
A : Type u_8
inst✝¹ : NormedRing A
inst✝ : NormedAlgebra 𝕜 A
z : 𝕝
m : z ∈ {z | z ≠ 0}
⊢ AnalyticAt 𝕜 (fun z => z⁻¹) z
state_after: no goals
tactic: exact analyticAt_inv m
Theorem: Rat.intCast_div_eq_divInt
File: Mathlib/Data/Rat/Defs.lean

Proof steps:
state_before: q a b c : ℚ
n d : ℤ
⊢ ↑n / ↑d = n /. d
state_after: no goals
tactic: rw [divInt_eq_div]
Theorem: MeasureTheory.LocallyIntegrable.integrable_of_isBigO_cocompact
File: Mathlib/MeasureTheory/Integral/Asymptotics.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : MeasurableSpace α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
f : α → E
g : α → F
a b : α
μ : Measure α
l : Filter α
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
inst✝ : (cocompact α).IsMeasurablyGenerated
hf : LocallyIntegrable f μ
ho : f =O[cocompact α] g
hg : IntegrableAtFilter g (cocompact α) μ
⊢ Integrable f μ
state_after: α : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : MeasurableSpace α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
f : α → E
g : α → F
a b : α
μ : Measure α
l : Filter α
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
inst✝ : (cocompact α).IsMeasurablyGenerated
hf : LocallyIntegrable f μ
ho : f =O[cocompact α] g
hg : IntegrableAtFilter g (cocompact α) μ
⊢ StronglyMeasurableAtFilter f (cocompact α) μ
tactic: refine integrable_iff_integrableAtFilter_cocompact.mpr ⟨ho.integrableAtFilter ?_ hg, hf⟩
state_before: α : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : MeasurableSpace α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
f : α → E
g : α → F
a b : α
μ : Measure α
l : Filter α
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
inst✝ : (cocompact α).IsMeasurablyGenerated
hf : LocallyIntegrable f μ
ho : f =O[cocompact α] g
hg : IntegrableAtFilter g (cocompact α) μ
⊢ StronglyMeasurableAtFilter f (cocompact α) μ
state_after: no goals
tactic: exact hf.aestronglyMeasurable.stronglyMeasurableAtFilter
Theorem: MeasureTheory.memℒp_finset_sum'
File: Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
q : ℝ
μ : Measure α
f✝ g : α → E
ι : Type u_3
s : Finset ι
f : ι → α → E
hf : ∀ i ∈ s, Memℒp (f i) p μ
⊢ Memℒp (∑ i ∈ s, f i) p μ
state_after: case h.e'_5
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
q : ℝ
μ : Measure α
f✝ g : α → E
ι : Type u_3
s : Finset ι
f : ι → α → E
hf : ∀ i ∈ s, Memℒp (f i) p μ
⊢ ∑ i ∈ s, f i = fun a => ∑ i ∈ s, f i a
tactic: convert memℒp_finset_sum s hf using 1
state_before: case h.e'_5
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
q : ℝ
μ : Measure α
f✝ g : α → E
ι : Type u_3
s : Finset ι
f : ι → α → E
hf : ∀ i ∈ s, Memℒp (f i) p μ
⊢ ∑ i ∈ s, f i = fun a => ∑ i ∈ s, f i a
state_after: case h.e'_5.h
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
q : ℝ
μ : Measure α
f✝ g : α → E
ι : Type u_3
s : Finset ι
f : ι → α → E
hf : ∀ i ∈ s, Memℒp (f i) p μ
x : α
⊢ (∑ i ∈ s, f i) x = ∑ i ∈ s, f i x
tactic: ext x
state_before: case h.e'_5.h
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
q : ℝ
μ : Measure α
f✝ g : α → E
ι : Type u_3
s : Finset ι
f : ι → α → E
hf : ∀ i ∈ s, Memℒp (f i) p μ
x : α
⊢ (∑ i ∈ s, f i) x = ∑ i ∈ s, f i x
state_after: no goals
tactic: simp
Theorem: CategoryTheory.Limits.pullbackAssoc_inv_fst_snd
File: Mathlib/CategoryTheory/Limits/Shapes/Pullback/Assoc.lean

Proof steps:
state_before: C : Type u
inst✝⁶ : Category.{v, u} C
W X Y Z X₁ X₂ X₃ Y₁ Y₂ : C
f₁ : X₁ ⟶ Y₁
f₂ : X₂ ⟶ Y₁
f₃ : X₂ ⟶ Y₂
f₄ : X₃ ⟶ Y₂
inst✝⁵ : HasPullback f₁ f₂
inst✝⁴ : HasPullback f₃ f₄
inst✝³ : HasPullback (sorryAx (?m.176514 ⟶ X₂) true ≫ f₃) f₄
inst✝² : HasPullback f₁ (sorryAx (?m.181965 ⟶ X₂) true ≫ f₂)
inst✝¹ : HasPullback (pullback.snd f₁ f₂ ≫ f₃) f₄
inst✝ : HasPullback f₁ (pullback.fst f₃ f₄ ≫ f₂)
⊢ (pullbackAssoc f₁ f₂ f₃ f₄).inv ≫ pullback.fst (pullback.snd f₁ f₂ ≫ f₃) f₄ ≫ pullback.snd f₁ f₂ =
    pullback.snd f₁ (pullback.fst f₃ f₄ ≫ f₂) ≫ pullback.fst f₃ f₄
state_after: no goals
tactic: rw [Iso.inv_comp_eq, pullbackAssoc_hom_snd_fst]
Theorem: PerfectClosure.mk_zero
File: Mathlib/FieldTheory/PerfectClosure.lean

Proof steps:
state_before: K : Type u
inst✝² : CommRing K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
n : ℕ
⊢ mk K p (n, 0) = 0
state_after: case zero
K : Type u
inst✝² : CommRing K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
⊢ mk K p (0, 0) = 0

case succ
K : Type u
inst✝² : CommRing K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
n : ℕ
ih : mk K p (n, 0) = 0
⊢ mk K p (n + 1, 0) = 0
tactic: induction' n with n ih
state_before: case succ
K : Type u
inst✝² : CommRing K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
n : ℕ
ih : mk K p (n, 0) = 0
⊢ mk K p (n + 1, 0) = 0
state_after: case succ
K : Type u
inst✝² : CommRing K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
n : ℕ
ih : mk K p (n, 0) = 0
⊢ mk K p (n + 1, 0) = mk K p (n, 0)
tactic: rw [← ih]
state_before: case succ
K : Type u
inst✝² : CommRing K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
n : ℕ
ih : mk K p (n, 0) = 0
⊢ mk K p (n + 1, 0) = mk K p (n, 0)
state_after: case succ
K : Type u
inst✝² : CommRing K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
n : ℕ
ih : mk K p (n, 0) = 0
⊢ mk K p (n, 0) = mk K p (n + 1, 0)
tactic: symm
state_before: case succ
K : Type u
inst✝² : CommRing K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
n : ℕ
ih : mk K p (n, 0) = 0
⊢ mk K p (n, 0) = mk K p (n + 1, 0)
state_after: case succ.a
K : Type u
inst✝² : CommRing K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
n : ℕ
ih : mk K p (n, 0) = 0
⊢ R K p (n, 0) (n + 1, 0)
tactic: apply Quot.sound
state_before: case succ.a
K : Type u
inst✝² : CommRing K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
n : ℕ
ih : mk K p (n, 0) = 0
⊢ R K p (n, 0) (n + 1, 0)
state_after: case succ.a
K : Type u
inst✝² : CommRing K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
n : ℕ
ih : mk K p (n, 0) = 0
this : R K p (n, 0) (n + 1, (frobenius K p) 0)
⊢ R K p (n, 0) (n + 1, 0)
tactic: have := R.intro (p := p) n (0 : K)
state_before: case succ.a
K : Type u
inst✝² : CommRing K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
n : ℕ
ih : mk K p (n, 0) = 0
this : R K p (n, 0) (n + 1, (frobenius K p) 0)
⊢ R K p (n, 0) (n + 1, 0)
state_after: no goals
tactic: rwa [frobenius_zero K p] at this
Theorem: List.Subperm.cons_left
File: .lake/packages/batteries/Batteries/Data/List/Perm.lean

Proof steps:
state_before: α : Type u_1
inst✝ : DecidableEq α
l₁ l₂ : List α
h : l₁ <+~ l₂
x : α
hx : count x l₁ < count x l₂
⊢ x :: l₁ <+~ l₂
state_after: α : Type u_1
inst✝ : DecidableEq α
l₁ l₂ : List α
h : ∀ (x : α), x ∈ l₁ → count x l₁ ≤ count x l₂
x : α
hx : count x l₁ < count x l₂
⊢ ∀ (x_1 : α), x_1 ∈ x :: l₁ → count x_1 (x :: l₁) ≤ count x_1 l₂
tactic: rw [subperm_ext_iff] at h ⊢
state_before: α : Type u_1
inst✝ : DecidableEq α
l₁ l₂ : List α
h : ∀ (x : α), x ∈ l₁ → count x l₁ ≤ count x l₂
x : α
hx : count x l₁ < count x l₂
⊢ ∀ (x_1 : α), x_1 ∈ x :: l₁ → count x_1 (x :: l₁) ≤ count x_1 l₂
state_after: α : Type u_1
inst✝ : DecidableEq α
l₁ l₂ : List α
h : ∀ (x : α), x ∈ l₁ → count x l₁ ≤ count x l₂
x : α
hx : count x l₁ < count x l₂
y : α
hy : y ∈ x :: l₁
⊢ count y (x :: l₁) ≤ count y l₂
tactic: intro y hy
state_before: α : Type u_1
inst✝ : DecidableEq α
l₁ l₂ : List α
h : ∀ (x : α), x ∈ l₁ → count x l₁ ≤ count x l₂
x : α
hx : count x l₁ < count x l₂
y : α
hy : y ∈ x :: l₁
⊢ count y (x :: l₁) ≤ count y l₂
state_after: no goals
tactic: if hy' : y = x then
    subst x; simpa using Nat.succ_le_of_lt hx
  else
    rw [count_cons_of_ne hy']
    refine h y ?_
    simpa [hy'] using hy
Theorem: Submodule.prod_span_singleton
File: Mathlib/Algebra/Algebra/Operations.lean

Proof steps:
state_before: ι✝ : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
ι : Type u_1
s : Finset ι
x : ι → A
⊢ ∏ i ∈ s, span R {x i} = span R {∏ i ∈ s, x i}
state_after: no goals
tactic: rw [prod_span, Set.finset_prod_singleton]
Theorem: mem_closure_one_iff_norm
File: Mathlib/Analysis/Normed/Group/Basic.lean

Proof steps:
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝³ : SeminormedGroup E
inst✝² : SeminormedGroup F
inst✝¹ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
inst✝ : FunLike 𝓕 E F
x : E
⊢ x ∈ closure {1} ↔ ‖x‖ = 0
state_after: no goals
tactic: rw [← closedBall_zero', mem_closedBall_one_iff, (norm_nonneg' x).le_iff_eq]
Theorem: Ordinal.nmul_le_iff
File: Mathlib/SetTheory/Ordinal/NaturalOps.lean

Proof steps:
state_before: a b c d : Ordinal.{u}
⊢ a ⨳ b ≤ c ↔ ∀ a' < a, ∀ b' < b, a' ⨳ b ♯ a ⨳ b' < c ♯ a' ⨳ b'
state_after: a b c d : Ordinal.{u}
⊢ ¬a ⨳ b ≤ c ↔ ¬∀ a' < a, ∀ b' < b, a' ⨳ b ♯ a ⨳ b' < c ♯ a' ⨳ b'
tactic: rw [← not_iff_not]
state_before: a b c d : Ordinal.{u}
⊢ ¬a ⨳ b ≤ c ↔ ¬∀ a' < a, ∀ b' < b, a' ⨳ b ♯ a ⨳ b' < c ♯ a' ⨳ b'
state_after: no goals
tactic: simp [lt_nmul_iff]
Theorem: Ordinal.fp_bfamily_unbounded
File: Mathlib/SetTheory/Ordinal/FixedPoint.lean

Proof steps:
state_before: o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{max u v} → Ordinal.{max u v}
H : ∀ (i : Ordinal.{u}) (hi : i < o), IsNormal (f i hi)
a : Ordinal.{max u v}
⊢ o.nfpBFamily f a ∈ ⋂ i, ⋂ (hi : i < o), fixedPoints (f i hi)
state_after: o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{max u v} → Ordinal.{max u v}
H : ∀ (i : Ordinal.{u}) (hi : i < o), IsNormal (f i hi)
a : Ordinal.{max u v}
⊢ ∀ (i : Ordinal.{u}) (j : i < o), o.nfpBFamily f a ∈ fixedPoints (f i j)
tactic: rw [Set.mem_iInter₂]
state_before: o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{max u v} → Ordinal.{max u v}
H : ∀ (i : Ordinal.{u}) (hi : i < o), IsNormal (f i hi)
a : Ordinal.{max u v}
⊢ ∀ (i : Ordinal.{u}) (j : i < o), o.nfpBFamily f a ∈ fixedPoints (f i j)
state_after: no goals
tactic: exact fun i hi => nfpBFamily_fp (H i hi) _
Theorem: xInTermsOfW_aux
File: Mathlib/RingTheory/WittVector/WittPolynomial.lean

Proof steps:
state_before: p : ℕ
R : Type u_1
inst✝² : CommRing R
inst✝¹ : DecidableEq R
inst✝ : Invertible ↑p
n : ℕ
⊢ xInTermsOfW p R n * C (↑p ^ n) = X n - ∑ i ∈ range n, C (↑p ^ i) * xInTermsOfW p R i ^ p ^ (n - i)
state_after: no goals
tactic: rw [xInTermsOfW_eq, mul_assoc, ← C_mul, ← mul_pow, invOf_mul_self,
    one_pow, C_1, mul_one]
Theorem: Continuous.map_borel_eq
File: Mathlib/MeasureTheory/Constructions/Polish/Basic.lean

Proof steps:
state_before: α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
inst✝⁴ : TopologicalSpace X
inst✝³ : PolishSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : T0Space Y
inst✝ : SecondCountableTopology Y
f : X → Y
hf : Continuous f
hsurj : Surjective f
⊢ MeasurableSpace.map f (borel X) = borel Y
state_after: α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
inst✝⁴ : TopologicalSpace X
inst✝³ : PolishSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : T0Space Y
inst✝ : SecondCountableTopology Y
f : X → Y
hf : Continuous f
hsurj : Surjective f
this✝¹ : MeasurableSpace X := borel X
this✝ : BorelSpace X
⊢ MeasurableSpace.map f (borel X) = borel Y
tactic: borelize X
state_before: α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
inst✝⁴ : TopologicalSpace X
inst✝³ : PolishSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : T0Space Y
inst✝ : SecondCountableTopology Y
f : X → Y
hf : Continuous f
hsurj : Surjective f
this✝¹ : MeasurableSpace X := borel X
this✝ : BorelSpace X
⊢ MeasurableSpace.map f (borel X) = borel Y
state_after: no goals
tactic: exact hf.map_eq_borel hsurj
Theorem: OrderIso.image_Iic
File: Mathlib/Order/Interval/Set/OrderIso.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
e : α ≃o β
a : α
⊢ ⇑e '' Iic a = Iic (e a)
state_after: no goals
tactic: rw [e.image_eq_preimage, e.symm.preimage_Iic, e.symm_symm]
Theorem: Nat.lt_div_iff_mul_lt
File: Mathlib/Data/Nat/Defs.lean

Proof steps:
state_before: a✝ b c d m n k : ℕ
p q : ℕ → Prop
hdn : d ∣ n
a : ℕ
⊢ a < n / d ↔ d * a < n
state_after: case inl
a✝ b c m n k : ℕ
p q : ℕ → Prop
a : ℕ
hdn : 0 ∣ n
⊢ a < n / 0 ↔ 0 * a < n

case inr
a✝ b c d m n k : ℕ
p q : ℕ → Prop
hdn : d ∣ n
a : ℕ
hd : d > 0
⊢ a < n / d ↔ d * a < n
tactic: obtain rfl | hd := d.eq_zero_or_pos
Theorem: Real.exp_lt_one_iff
File: Mathlib/Data/Complex/Exponential.lean

Proof steps:
state_before: x✝ y x : ℝ
⊢ rexp x < 1 ↔ x < 0
state_after: no goals
tactic: rw [← exp_zero, exp_lt_exp]
Theorem: tendsto_zero_iff_norm_tendsto_zero
File: Mathlib/Analysis/Normed/Group/Basic.lean

Proof steps:
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝³ : SeminormedGroup E
inst✝² : SeminormedGroup F
inst✝¹ : SeminormedGroup G
s : Set E
a✝ a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
inst✝ : FunLike 𝓕 E F
f : α → E
a : Filter α
⊢ Tendsto (fun e => ‖f e / 1‖) a (𝓝 0) ↔ Tendsto (fun x => ‖f x‖) a (𝓝 0)
state_after: no goals
tactic: simp only [div_one]
Theorem: EuclideanGeometry.eq_orthogonalProjection_of_eq_subspace
File: Mathlib/Geometry/Euclidean/Basic.lean

Proof steps:
state_before: V : Type u_1
P : Type u_2
inst✝⁷ : NormedAddCommGroup V
inst✝⁶ : InnerProductSpace ℝ V
inst✝⁵ : MetricSpace P
inst✝⁴ : NormedAddTorsor V P
s s' : AffineSubspace ℝ P
inst✝³ : Nonempty ↥s
inst✝² : Nonempty ↥s'
inst✝¹ : HasOrthogonalProjection s.direction
inst✝ : HasOrthogonalProjection s'.direction
h : s = s'
p : P
⊢ ↑((orthogonalProjection s) p) = ↑((orthogonalProjection s') p)
state_after: V : Type u_1
P : Type u_2
inst✝⁷ : NormedAddCommGroup V
inst✝⁶ : InnerProductSpace ℝ V
inst✝⁵ : MetricSpace P
inst✝⁴ : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝³ : Nonempty ↥s
inst✝² : HasOrthogonalProjection s.direction
p : P
inst✝¹ : Nonempty ↥s
inst✝ : HasOrthogonalProjection s.direction
⊢ ↑((orthogonalProjection s) p) = ↑((orthogonalProjection s) p)
tactic: subst h
state_before: V : Type u_1
P : Type u_2
inst✝⁷ : NormedAddCommGroup V
inst✝⁶ : InnerProductSpace ℝ V
inst✝⁵ : MetricSpace P
inst✝⁴ : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝³ : Nonempty ↥s
inst✝² : HasOrthogonalProjection s.direction
p : P
inst✝¹ : Nonempty ↥s
inst✝ : HasOrthogonalProjection s.direction
⊢ ↑((orthogonalProjection s) p) = ↑((orthogonalProjection s) p)
state_after: no goals
tactic: rfl
Theorem: Nat.perm_primeFactorsList_mul
File: Mathlib/Data/Nat/Factors.lean

Proof steps:
state_before: a b : ℕ
ha : a ≠ 0
hb : b ≠ 0
⊢ (a * b).primeFactorsList ~ a.primeFactorsList ++ b.primeFactorsList
state_after: case refine_1
a b : ℕ
ha : a ≠ 0
hb : b ≠ 0
⊢ (a.primeFactorsList ++ b.primeFactorsList).prod = a * b

case refine_2
a b : ℕ
ha : a ≠ 0
hb : b ≠ 0
⊢ ∀ p ∈ a.primeFactorsList ++ b.primeFactorsList, Prime p
tactic: refine (primeFactorsList_unique ?_ ?_).symm
Theorem: PreTilt.valAux_one
File: Mathlib/RingTheory/Perfection.lean

Proof steps:
state_before: K : Type u₁
inst✝² : Field K
v : Valuation K ℝ≥0
O : Type u₂
inst✝¹ : CommRing O
inst✝ : Algebra O K
hv : v.Integers O
p : ℕ
hp : Fact (Nat.Prime p)
hvp : Fact (v ↑p ≠ 1)
⊢ ModP.preVal K v O hv p ((coeff (ModP K v O hv p) p 0) 1) ^ p ^ 0 = 1
state_after: K : Type u₁
inst✝² : Field K
v : Valuation K ℝ≥0
O : Type u₂
inst✝¹ : CommRing O
inst✝ : Algebra O K
hv : v.Integers O
p : ℕ
hp : Fact (Nat.Prime p)
hvp : Fact (v ↑p ≠ 1)
⊢ (Ideal.Quotient.mk (Ideal.span {↑p})) 1 ≠ 0
tactic: rw [pow_zero, pow_one, RingHom.map_one, ← (Ideal.Quotient.mk _).map_one, ModP.preVal_mk,
      RingHom.map_one, v.map_one]
state_before: K : Type u₁
inst✝² : Field K
v : Valuation K ℝ≥0
O : Type u₂
inst✝¹ : CommRing O
inst✝ : Algebra O K
hv : v.Integers O
p : ℕ
hp : Fact (Nat.Prime p)
hvp : Fact (v ↑p ≠ 1)
⊢ (Ideal.Quotient.mk (Ideal.span {↑p})) 1 ≠ 0
state_after: K : Type u₁
inst✝² : Field K
v : Valuation K ℝ≥0
O : Type u₂
inst✝¹ : CommRing O
inst✝ : Algebra O K
hv : v.Integers O
p : ℕ
hp : Fact (Nat.Prime p)
hvp : Fact (v ↑p ≠ 1)
⊢ 1 ≠ 0
tactic: change (1 : ModP K v O hv p) ≠ 0
state_before: K : Type u₁
inst✝² : Field K
v : Valuation K ℝ≥0
O : Type u₂
inst✝¹ : CommRing O
inst✝ : Algebra O K
hv : v.Integers O
p : ℕ
hp : Fact (Nat.Prime p)
hvp : Fact (v ↑p ≠ 1)
⊢ 1 ≠ 0
state_after: no goals
tactic: exact one_ne_zero
Theorem: HomologicalComplex₂.XXIsoOfEq_hom_ιTotal
File: Mathlib/Algebra/Homology/TotalComplex.lean

Proof steps:
state_before: C : Type u_1
inst✝⁴ : Category.{?u.67457, u_1} C
inst✝³ : Preadditive C
I₁ : Type u_2
I₂ : Type u_3
I₁₂ : Type u_4
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
K L M : HomologicalComplex₂ C c₁ c₂
φ : K ⟶ L
e : K ≅ L
ψ : L ⟶ M
c₁₂ : ComplexShape I₁₂
inst✝² : DecidableEq I₁₂
inst✝¹ : TotalComplexShape c₁ c₂ c₁₂
inst✝ : K.HasTotal c₁₂
x₁ y₁ : I₁
h₁ : x₁ = y₁
x₂ y₂ : I₂
h₂ : x₂ = y₂
i₁₂ : I₁₂
h : c₁.π c₂ c₁₂ (y₁, y₂) = i₁₂
⊢ c₁.π c₂ c₁₂ (x₁, x₂) = i₁₂
state_after: no goals
tactic: rw [h₁, h₂, h]
state_before: C : Type u_1
inst✝⁴ : Category.{u_5, u_1} C
inst✝³ : Preadditive C
I₁ : Type u_2
I₂ : Type u_3
I₁₂ : Type u_4
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
K L M : HomologicalComplex₂ C c₁ c₂
φ : K ⟶ L
e : K ≅ L
ψ : L ⟶ M
c₁₂ : ComplexShape I₁₂
inst✝² : DecidableEq I₁₂
inst✝¹ : TotalComplexShape c₁ c₂ c₁₂
inst✝ : K.HasTotal c₁₂
x₁ y₁ : I₁
h₁ : x₁ = y₁
x₂ y₂ : I₂
h₂ : x₂ = y₂
i₁₂ : I₁₂
h : c₁.π c₂ c₁₂ (y₁, y₂) = i₁₂
⊢ (XXIsoOfEq C c₁ c₂ K h₁ h₂).hom ≫ K.ιTotal c₁₂ y₁ y₂ i₁₂ h = K.ιTotal c₁₂ x₁ x₂ i₁₂ ⋯
state_after: C : Type u_1
inst✝⁴ : Category.{u_5, u_1} C
inst✝³ : Preadditive C
I₁ : Type u_2
I₂ : Type u_3
I₁₂ : Type u_4
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
K L M : HomologicalComplex₂ C c₁ c₂
φ : K ⟶ L
e : K ≅ L
ψ : L ⟶ M
c₁₂ : ComplexShape I₁₂
inst✝² : DecidableEq I₁₂
inst✝¹ : TotalComplexShape c₁ c₂ c₁₂
inst✝ : K.HasTotal c₁₂
x₁ : I₁
x₂ : I₂
i₁₂ : I₁₂
h : c₁.π c₂ c₁₂ (x₁, x₂) = i₁₂
⊢ (XXIsoOfEq C c₁ c₂ K ⋯ ⋯).hom ≫ K.ιTotal c₁₂ x₁ x₂ i₁₂ h = K.ιTotal c₁₂ x₁ x₂ i₁₂ ⋯
tactic: subst h₁ h₂
state_before: C : Type u_1
inst✝⁴ : Category.{u_5, u_1} C
inst✝³ : Preadditive C
I₁ : Type u_2
I₂ : Type u_3
I₁₂ : Type u_4
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
K L M : HomologicalComplex₂ C c₁ c₂
φ : K ⟶ L
e : K ≅ L
ψ : L ⟶ M
c₁₂ : ComplexShape I₁₂
inst✝² : DecidableEq I₁₂
inst✝¹ : TotalComplexShape c₁ c₂ c₁₂
inst✝ : K.HasTotal c₁₂
x₁ : I₁
x₂ : I₂
i₁₂ : I₁₂
h : c₁.π c₂ c₁₂ (x₁, x₂) = i₁₂
⊢ (XXIsoOfEq C c₁ c₂ K ⋯ ⋯).hom ≫ K.ιTotal c₁₂ x₁ x₂ i₁₂ h = K.ιTotal c₁₂ x₁ x₂ i₁₂ ⋯
state_after: no goals
tactic: simp
Theorem: MeasureTheory.condexp_nonneg
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean

Proof steps:
state_before: α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝¹⁰ : RCLike 𝕜
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
inst✝⁷ : NormedAddCommGroup F'
inst✝⁶ : NormedSpace 𝕜 F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
E : Type u_5
inst✝³ : NormedLatticeAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
inst✝ : OrderedSMul ℝ E
f : α → E
hf : 0 ≤ᶠ[ae μ] f
⊢ 0 ≤ᶠ[ae μ] μ[f|m]
state_after: case pos
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝¹⁰ : RCLike 𝕜
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
inst✝⁷ : NormedAddCommGroup F'
inst✝⁶ : NormedSpace 𝕜 F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
E : Type u_5
inst✝³ : NormedLatticeAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
inst✝ : OrderedSMul ℝ E
f : α → E
hf : 0 ≤ᶠ[ae μ] f
hfint : Integrable f μ
⊢ 0 ≤ᶠ[ae μ] μ[f|m]

case neg
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝¹⁰ : RCLike 𝕜
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
inst✝⁷ : NormedAddCommGroup F'
inst✝⁶ : NormedSpace 𝕜 F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
E : Type u_5
inst✝³ : NormedLatticeAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
inst✝ : OrderedSMul ℝ E
f : α → E
hf : 0 ≤ᶠ[ae μ] f
hfint : ¬Integrable f μ
⊢ 0 ≤ᶠ[ae μ] μ[f|m]
tactic: by_cases hfint : Integrable f μ
Theorem: Filter.disjoint_principal_principal
File: Mathlib/Order/Filter/Bases.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
l l' : Filter α
p : ι → Prop
s✝ : ι → Set α
t✝ : Set α
i : ι
p' : ι' → Prop
s' : ι' → Set α
i' : ι'
s t : Set α
⊢ Disjoint (𝓟 s) (𝓟 t) ↔ Disjoint s t
state_after: no goals
tactic: rw [← subset_compl_iff_disjoint_left, disjoint_principal_left, mem_principal]
Theorem: List.isRotated_prev_eq
File: Mathlib/Data/List/Cycle.lean

Proof steps:
state_before: α : Type u_1
inst✝ : DecidableEq α
l✝ : List α
x✝ : α
l l' : List α
h : l ~r l'
hn : l.Nodup
x : α
hx : x ∈ l
⊢ l.prev x hx = l'.prev x ⋯
state_after: α : Type u_1
inst✝ : DecidableEq α
l✝ : List α
x✝ : α
l l' : List α
h : l ~r l'
hn : l.Nodup
x : α
hx : x ∈ l
⊢ l.reverse.next x ⋯ = l'.reverse.next x ⋯
tactic: rw [← next_reverse_eq_prev _ hn, ← next_reverse_eq_prev _ (h.nodup_iff.mp hn)]
state_before: α : Type u_1
inst✝ : DecidableEq α
l✝ : List α
x✝ : α
l l' : List α
h : l ~r l'
hn : l.Nodup
x : α
hx : x ∈ l
⊢ l.reverse.next x ⋯ = l'.reverse.next x ⋯
state_after: no goals
tactic: exact isRotated_next_eq h.reverse (nodup_reverse.mpr hn) _
Theorem: List.monotone_filter_right
File: Mathlib/Data/List/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
p✝ : α → Bool
l : List α
p q : α → Bool
h : ∀ (a : α), p a = true → q a = true
⊢ filter p l <+ filter q l
state_after: case nil
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
p✝ p q : α → Bool
h : ∀ (a : α), p a = true → q a = true
⊢ filter p [] <+ filter q []

case cons
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
p✝ p q : α → Bool
h : ∀ (a : α), p a = true → q a = true
hd : α
tl : List α
IH : filter p tl <+ filter q tl
⊢ filter p (hd :: tl) <+ filter q (hd :: tl)
tactic: induction' l with hd tl IH
Theorem: CategoryTheory.Abelian.Pseudoelement.apply_eq_zero_of_comp_eq_zero
File: Mathlib/CategoryTheory/Abelian/Pseudoelements.lean

Proof steps:
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Abelian C
P Q R : C
f : Q ⟶ R
a : P ⟶ Q
h : a ≫ f = 0
⊢ pseudoApply f (Quot.mk (PseudoEqual Q) (Over.mk a)) = 0
state_after: no goals
tactic: simp [over_coe_def, pseudoApply_mk', Over.coe_hom, h]