1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Matrix.blockTriangular_stdBasisMatrix
File: Mathlib/LinearAlgebra/Matrix/Block.lean

tactic: intro r s hrs
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
o : Type u_5
m' : α → Type u_6
n' : α → Type u_7
R : Type v
inst✝² : CommRing R
M N : Matrix m m R
b : m → α
inst✝¹ : Preorder α
inst✝ : DecidableEq m
i j : m
hij : b i ≤ b j
c : R
⊢ (stdBasisMatrix i j c).BlockTriangular b
state_after: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
o : Type u_5
m' : α → Type u_6
n' : α → Type u_7
R : Type v
inst✝² : CommRing R
M N : Matrix m m R
b : m → α
inst✝¹ : Preorder α
inst✝ : DecidableEq m
i j : m
hij : b i ≤ b j
c : R
r s : m
hrs : b s < b r
⊢ stdBasisMatrix i j c r s = 0

tactic: apply StdBasisMatrix.apply_of_ne
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
o : Type u_5
m' : α → Type u_6
n' : α → Type u_7
R : Type v
inst✝² : CommRing R
M N : Matrix m m R
b : m → α
inst✝¹ : Preorder α
inst✝ : DecidableEq m
i j : m
hij : b i ≤ b j
c : R
r s : m
hrs : b s < b r
⊢ stdBasisMatrix i j c r s = 0
state_after: case h
α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
o : Type u_5
m' : α → Type u_6
n' : α → Type u_7
R : Type v
inst✝² : CommRing R
M N : Matrix m m R
b : m → α
inst✝¹ : Preorder α
inst✝ : DecidableEq m
i j : m
hij : b i ≤ b j
c : R
r s : m
hrs : b s < b r
⊢ ¬(i = r ∧ j = s)

tactic: rintro ⟨rfl, rfl⟩
state_before: case h
α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
o : Type u_5
m' : α → Type u_6
n' : α → Type u_7
R : Type v
inst✝² : CommRing R
M N : Matrix m m R
b : m → α
inst✝¹ : Preorder α
inst✝ : DecidableEq m
i j : m
hij : b i ≤ b j
c : R
r s : m
hrs : b s < b r
⊢ ¬(i = r ∧ j = s)
state_after: case h.intro
α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
o : Type u_5
m' : α → Type u_6
n' : α → Type u_7
R : Type v
inst✝² : CommRing R
M N : Matrix m m R
b : m → α
inst✝¹ : Preorder α
inst✝ : DecidableEq m
i j : m
hij : b i ≤ b j
c : R
hrs : b j < b i
⊢ False

tactic: exact (hij.trans_lt hrs).false
state_before: case h.intro
α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
o : Type u_5
m' : α → Type u_6
n' : α → Type u_7
R : Type v
inst✝² : CommRing R
M N : Matrix m m R
b : m → α
inst✝¹ : Preorder α
inst✝ : DecidableEq m
i j : m
hij : b i ≤ b j
c : R
hrs : b j < b i
⊢ False
state_after: no goals
Theorem: CategoryTheory.ShortComplex.exact_iff_isZero_homology
File: Mathlib/Algebra/Homology/ShortComplex/Exact.lean

tactic: constructor
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.1343, u_2} D
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroMorphisms D
S S₁ S₂ : ShortComplex C
inst✝ : S.HasHomology
⊢ S.Exact ↔ IsZero S.homology
state_after: case mp
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.1343, u_2} D
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroMorphisms D
S S₁ S₂ : ShortComplex C
inst✝ : S.HasHomology
⊢ S.Exact → IsZero S.homology

case mpr
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.1343, u_2} D
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroMorphisms D
S S₁ S₂ : ShortComplex C
inst✝ : S.HasHomology
⊢ IsZero S.homology → S.Exact

tactic: rintro ⟨⟨h', z⟩⟩
state_before: case mp
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.1343, u_2} D
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroMorphisms D
S S₁ S₂ : ShortComplex C
inst✝ : S.HasHomology
⊢ S.Exact → IsZero S.homology
state_after: case mp.mk.intro
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.1343, u_2} D
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroMorphisms D
S S₁ S₂ : ShortComplex C
inst✝ : S.HasHomology
h' : S.HomologyData
z : IsZero h'.left.H
⊢ IsZero S.homology

tactic: exact IsZero.of_iso z h'.left.homologyIso
state_before: case mp.mk.intro
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.1343, u_2} D
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroMorphisms D
S S₁ S₂ : ShortComplex C
inst✝ : S.HasHomology
h' : S.HomologyData
z : IsZero h'.left.H
⊢ IsZero S.homology
state_after: no goals

tactic: intro h
state_before: case mpr
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.1343, u_2} D
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroMorphisms D
S S₁ S₂ : ShortComplex C
inst✝ : S.HasHomology
⊢ IsZero S.homology → S.Exact
state_after: case mpr
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.1343, u_2} D
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroMorphisms D
S S₁ S₂ : ShortComplex C
inst✝ : S.HasHomology
h : IsZero S.homology
⊢ S.Exact

tactic: exact ⟨⟨_, h⟩⟩
state_before: case mpr
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.1343, u_2} D
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroMorphisms D
S S₁ S₂ : ShortComplex C
inst✝ : S.HasHomology
h : IsZero S.homology
⊢ S.Exact
state_after: no goals
Theorem: Mathlib.Tactic.Ring.neg_congr
File: Mathlib/Tactic/Ring/Basic.lean

tactic: subst_vars
state_before: u : Lean.Level
R✝ : Type ?u.211273
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
R : Type u_1
inst✝ : Ring R
a a' b : R
x✝¹ : a = a'
x✝ : -a' = b
⊢ -a = b
state_after: u : Lean.Level
R✝ : Type ?u.211273
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
R : Type u_1
inst✝ : Ring R
a' : R
⊢ -a' = -a'

tactic: rfl
state_before: u : Lean.Level
R✝ : Type ?u.211273
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
R : Type u_1
inst✝ : Ring R
a' : R
⊢ -a' = -a'
state_after: no goals
Theorem: Batteries.RBNode.balance2_toList
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: unfold balance2
state_before: α : Type u_1
l : RBNode α
v : α
r : RBNode α
⊢ (l.balance2 v r).toList = l.toList ++ v :: r.toList
state_after: α : Type u_1
l : RBNode α
v : α
r : RBNode α
⊢ (match l, v, r with
      | a, x, node red b y (node red c z d) => node red (node black a x b) y (node black c z d)
      | a, x, node red (node red b y c) z d => node red (node black a x b) y (node black c z d)
      | a, x, b => node black a x b).toList =
    l.toList ++ v :: r.toList

tactic: split <;> simp
state_before: α : Type u_1
l : RBNode α
v : α
r : RBNode α
⊢ (match l, v, r with
      | a, x, node red b y (node red c z d) => node red (node black a x b) y (node black c z d)
      | a, x, node red (node red b y c) z d => node red (node black a x b) y (node black c z d)
      | a, x, b => node black a x b).toList =
    l.toList ++ v :: r.toList
state_after: no goals
Theorem: Ordinal.CNF_of_lt
File: Mathlib/SetTheory/Ordinal/CantorNormalForm.lean

tactic: simp only [CNF_ne_zero ho, log_eq_zero hb, opow_zero, div_one, mod_one, CNF_zero]
state_before: b o : Ordinal.{u_1}
ho : o ≠ 0
hb : o < b
⊢ CNF b o = [(0, o)]
state_after: no goals
Theorem: EReal.sign_mul_inv_abs
File: Mathlib/Data/Real/EReal.lean

tactic: simp
state_before: case h_top

⊢ ↑(sign ⊤) * (↑⊤.abs)⁻¹ = ⊤⁻¹
state_after: no goals

tactic: rcases lt_trichotomy a 0 with (a_neg | rfl | a_pos)
state_before: case h_real
a : ℝ
⊢ ↑(sign ↑a) * (↑(↑a).abs)⁻¹ = (↑a)⁻¹
state_after: case h_real.inl
a : ℝ
a_neg : a < 0
⊢ ↑(sign ↑a) * (↑(↑a).abs)⁻¹ = (↑a)⁻¹

case h_real.inr.inl

⊢ ↑(sign ↑0) * (↑(↑0).abs)⁻¹ = (↑0)⁻¹

case h_real.inr.inr
a : ℝ
a_pos : 0 < a
⊢ ↑(sign ↑a) * (↑(↑a).abs)⁻¹ = (↑a)⁻¹

tactic: rw [sign_coe, _root_.sign_neg a_neg, coe_neg_one, neg_one_mul, ← inv_neg, abs_def a,
  coe_ennreal_ofReal, max_eq_left (abs_nonneg a), ← coe_neg |a|, abs_of_neg a_neg, neg_neg]
state_before: case h_real.inl
a : ℝ
a_neg : a < 0
⊢ ↑(sign ↑a) * (↑(↑a).abs)⁻¹ = (↑a)⁻¹
state_after: no goals

tactic: rw [coe_zero, sign_zero, SignType.coe_zero, abs_zero, coe_ennreal_zero, inv_zero, mul_zero]
state_before: case h_real.inr.inl

⊢ ↑(sign ↑0) * (↑(↑0).abs)⁻¹ = (↑0)⁻¹
state_after: no goals

tactic: rw [sign_coe, _root_.sign_pos a_pos, SignType.coe_one, one_mul]
state_before: case h_real.inr.inr
a : ℝ
a_pos : 0 < a
⊢ ↑(sign ↑a) * (↑(↑a).abs)⁻¹ = (↑a)⁻¹
state_after: case h_real.inr.inr
a : ℝ
a_pos : 0 < a
⊢ (↑(↑a).abs)⁻¹ = (↑a)⁻¹

tactic: simp only [abs_def a, coe_ennreal_ofReal, ge_iff_le, abs_nonneg, max_eq_left]
state_before: case h_real.inr.inr
a : ℝ
a_pos : 0 < a
⊢ (↑(↑a).abs)⁻¹ = (↑a)⁻¹
state_after: case h_real.inr.inr
a : ℝ
a_pos : 0 < a
⊢ (↑|a|)⁻¹ = (↑a)⁻¹

tactic: congr
state_before: case h_real.inr.inr
a : ℝ
a_pos : 0 < a
⊢ (↑|a|)⁻¹ = (↑a)⁻¹
state_after: case h_real.inr.inr.e_a.e_a
a : ℝ
a_pos : 0 < a
⊢ |a| = a

tactic: exact abs_of_pos a_pos
state_before: case h_real.inr.inr.e_a.e_a
a : ℝ
a_pos : 0 < a
⊢ |a| = a
state_after: no goals
Theorem: Complex.areaForm
File: Mathlib/Analysis/InnerProductSpace/TwoDim.lean

tactic: let o := Complex.orientation
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
w z : ℂ
⊢ (Complex.orientation.areaForm w) z = ((starRingEnd ℂ) w * z).im
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o✝ : Orientation ℝ E (Fin 2)
w z : ℂ
o : Orientation ℝ ℂ (Fin 2) := Complex.orientation
⊢ (Complex.orientation.areaForm w) z = ((starRingEnd ℂ) w * z).im

tactic: simp only [o.areaForm_to_volumeForm, o.volumeForm_robust Complex.orthonormalBasisOneI rfl,
  Basis.det_apply, Matrix.det_fin_two, Basis.toMatrix_apply, toBasis_orthonormalBasisOneI,
  Matrix.cons_val_zero, coe_basisOneI_repr, Matrix.cons_val_one, Matrix.head_cons, mul_im,
  conj_re, conj_im]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o✝ : Orientation ℝ E (Fin 2)
w z : ℂ
o : Orientation ℝ ℂ (Fin 2) := Complex.orientation
⊢ (Complex.orientation.areaForm w) z = ((starRingEnd ℂ) w * z).im
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o✝ : Orientation ℝ E (Fin 2)
w z : ℂ
o : Orientation ℝ ℂ (Fin 2) := Complex.orientation
⊢ w.re * z.im - z.re * w.im = w.re * z.im + -w.im * z.re

tactic: ring
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o✝ : Orientation ℝ E (Fin 2)
w z : ℂ
o : Orientation ℝ ℂ (Fin 2) := Complex.orientation
⊢ w.re * z.im - z.re * w.im = w.re * z.im + -w.im * z.re
state_after: no goals
Theorem: Batteries.RBNode.Path.zoom_fill'
File: .lake/packages/batteries/Batteries/Data/RBMap/Alter.lean

tactic: induction t generalizing path with
| nil => rfl
| node _ _ _ _ iha ihb => unfold zoom; split <;> [apply iha; apply ihb; rfl]
state_before: α : Type u_1
cut : α → Ordering
t : RBNode α
path : Path α
⊢ fill' (zoom cut t path) = path.fill t
state_after: no goals

tactic: rfl
state_before: case nil
α : Type u_1
cut : α → Ordering
path : Path α
⊢ fill' (zoom cut nil path) = path.fill nil
state_after: no goals

tactic: unfold zoom
state_before: case node
α : Type u_1
cut : α → Ordering
c✝ : RBColor
l✝ : RBNode α
v✝ : α
r✝ : RBNode α
iha : ∀ (path : Path α), fill' (zoom cut l✝ path) = path.fill l✝
ihb : ∀ (path : Path α), fill' (zoom cut r✝ path) = path.fill r✝
path : Path α
⊢ fill' (zoom cut (node c✝ l✝ v✝ r✝) path) = path.fill (node c✝ l✝ v✝ r✝)
state_after: case node
α : Type u_1
cut : α → Ordering
c✝ : RBColor
l✝ : RBNode α
v✝ : α
r✝ : RBNode α
iha : ∀ (path : Path α), fill' (zoom cut l✝ path) = path.fill l✝
ihb : ∀ (path : Path α), fill' (zoom cut r✝ path) = path.fill r✝
path : Path α
⊢ fill'
      (match cut v✝ with
      | Ordering.lt => zoom cut l✝ (left c✝ path v✝ r✝)
      | Ordering.gt => zoom cut r✝ (right c✝ l✝ v✝ path)
      | Ordering.eq => (node c✝ l✝ v✝ r✝, path)) =
    path.fill (node c✝ l✝ v✝ r✝)

tactic: split <;> [apply iha; apply ihb; rfl]
state_before: case node
α : Type u_1
cut : α → Ordering
c✝ : RBColor
l✝ : RBNode α
v✝ : α
r✝ : RBNode α
iha : ∀ (path : Path α), fill' (zoom cut l✝ path) = path.fill l✝
ihb : ∀ (path : Path α), fill' (zoom cut r✝ path) = path.fill r✝
path : Path α
⊢ fill'
      (match cut v✝ with
      | Ordering.lt => zoom cut l✝ (left c✝ path v✝ r✝)
      | Ordering.gt => zoom cut r✝ (right c✝ l✝ v✝ path)
      | Ordering.eq => (node c✝ l✝ v✝ r✝, path)) =
    path.fill (node c✝ l✝ v✝ r✝)
state_after: no goals
Theorem: IsUnit.div_div_cancel_left
File: Mathlib/Algebra/Group/Units.lean

tactic: rw [div_eq_mul_inv, div_eq_mul_inv, mul_right_comm, h.mul_inv_cancel, one_mul]
state_before: α : Type u
M : Type u_1
N : Type u_2
inst✝ : DivisionCommMonoid α
a b c d : α
h : IsUnit a
⊢ a / b / a = b⁻¹
state_after: no goals
Theorem: derivWithin_inter
File: Mathlib/Analysis/Calculus/Deriv/Basic.lean

tactic: unfold derivWithin
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
ht : t ∈ 𝓝 x
⊢ derivWithin f (s ∩ t) x = derivWithin f s x
state_after: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
ht : t ∈ 𝓝 x
⊢ (fderivWithin 𝕜 f (s ∩ t) x) 1 = (fderivWithin 𝕜 f s x) 1

tactic: rw [fderivWithin_inter ht]
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
ht : t ∈ 𝓝 x
⊢ (fderivWithin 𝕜 f (s ∩ t) x) 1 = (fderivWithin 𝕜 f s x) 1
state_after: no goals
Theorem: Equiv.subtypeEquiv_refl
File: Mathlib/Logic/Equiv/Basic.lean

tactic: ext
state_before: α : Sort u_1
p : α → Prop
h : optParam (∀ (a : α), p a ↔ p ((Equiv.refl α) a)) ⋯
⊢ (Equiv.refl α).subtypeEquiv h = Equiv.refl { a // p a }
state_after: case H.a
α : Sort u_1
p : α → Prop
h : optParam (∀ (a : α), p a ↔ p ((Equiv.refl α) a)) ⋯
x✝ : { a // p a }
⊢ ↑(((Equiv.refl α).subtypeEquiv h) x✝) = ↑((Equiv.refl { a // p a }) x✝)

tactic: rfl
state_before: case H.a
α : Sort u_1
p : α → Prop
h : optParam (∀ (a : α), p a ↔ p ((Equiv.refl α) a)) ⋯
x✝ : { a // p a }
⊢ ↑(((Equiv.refl α).subtypeEquiv h) x✝) = ↑((Equiv.refl { a // p a }) x✝)
state_after: no goals
Theorem: MeasureTheory.Submartingale.stoppedValue_leastGE_snorm_le
File: Mathlib/Probability/Martingale/BorelCantelli.lean

tactic: refine snorm_one_le_of_le' ((hf.stoppedValue_leastGE r).integrable _) ?_
  (norm_stoppedValue_leastGE_le hr hf0 hbdd i)
state_before: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f : ℕ → Ω → ℝ
ω : Ω
r : ℝ
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
hf : Submartingale f ℱ μ
hr : 0 ≤ r
hf0 : f 0 = 0
hbdd : ∀ᵐ (ω : Ω) ∂μ, ∀ (i : ℕ), |f (i + 1) ω - f i ω| ≤ ↑R
i : ℕ
⊢ snorm (stoppedValue f (leastGE f r i)) 1 μ ≤ 2 * μ Set.univ * ENNReal.ofReal (r + ↑R)
state_after: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f : ℕ → Ω → ℝ
ω : Ω
r : ℝ
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
hf : Submartingale f ℱ μ
hr : 0 ≤ r
hf0 : f 0 = 0
hbdd : ∀ᵐ (ω : Ω) ∂μ, ∀ (i : ℕ), |f (i + 1) ω - f i ω| ≤ ↑R
i : ℕ
⊢ 0 ≤ ∫ (x : Ω), stoppedValue f (leastGE f r i) x ∂μ

tactic: rw [← integral_univ]
state_before: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f : ℕ → Ω → ℝ
ω : Ω
r : ℝ
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
hf : Submartingale f ℱ μ
hr : 0 ≤ r
hf0 : f 0 = 0
hbdd : ∀ᵐ (ω : Ω) ∂μ, ∀ (i : ℕ), |f (i + 1) ω - f i ω| ≤ ↑R
i : ℕ
⊢ 0 ≤ ∫ (x : Ω), stoppedValue f (leastGE f r i) x ∂μ
state_after: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f : ℕ → Ω → ℝ
ω : Ω
r : ℝ
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
hf : Submartingale f ℱ μ
hr : 0 ≤ r
hf0 : f 0 = 0
hbdd : ∀ᵐ (ω : Ω) ∂μ, ∀ (i : ℕ), |f (i + 1) ω - f i ω| ≤ ↑R
i : ℕ
⊢ 0 ≤ ∫ (x : Ω) in Set.univ, stoppedValue f (leastGE f r i) x ∂μ

tactic: refine le_trans ?_ ((hf.stoppedValue_leastGE r).setIntegral_le (zero_le _) MeasurableSet.univ)
state_before: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f : ℕ → Ω → ℝ
ω : Ω
r : ℝ
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
hf : Submartingale f ℱ μ
hr : 0 ≤ r
hf0 : f 0 = 0
hbdd : ∀ᵐ (ω : Ω) ∂μ, ∀ (i : ℕ), |f (i + 1) ω - f i ω| ≤ ↑R
i : ℕ
⊢ 0 ≤ ∫ (x : Ω) in Set.univ, stoppedValue f (leastGE f r i) x ∂μ
state_after: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f : ℕ → Ω → ℝ
ω : Ω
r : ℝ
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
hf : Submartingale f ℱ μ
hr : 0 ≤ r
hf0 : f 0 = 0
hbdd : ∀ᵐ (ω : Ω) ∂μ, ∀ (i : ℕ), |f (i + 1) ω - f i ω| ≤ ↑R
i : ℕ
⊢ 0 ≤ ∫ (ω : Ω) in Set.univ, stoppedValue f (leastGE f r 0) ω ∂μ

tactic: simp_rw [stoppedValue, leastGE, hitting_of_le le_rfl, hf0, integral_zero', le_rfl]
state_before: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f : ℕ → Ω → ℝ
ω : Ω
r : ℝ
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
hf : Submartingale f ℱ μ
hr : 0 ≤ r
hf0 : f 0 = 0
hbdd : ∀ᵐ (ω : Ω) ∂μ, ∀ (i : ℕ), |f (i + 1) ω - f i ω| ≤ ↑R
i : ℕ
⊢ 0 ≤ ∫ (ω : Ω) in Set.univ, stoppedValue f (leastGE f r 0) ω ∂μ
state_after: no goals
Theorem: Units.inv_eq_of_mul_eq_one_right
File: Mathlib/Algebra/Group/Units.lean

tactic: rw [mul_one]
state_before: α : Type u
inst✝ : Monoid α
a✝ b c u : αˣ
a : α
h : ↑u * a = 1
⊢ ↑u⁻¹ = ↑u⁻¹ * 1
state_after: no goals

tactic: rw [← h, inv_mul_cancel_left]
state_before: α : Type u
inst✝ : Monoid α
a✝ b c u : αˣ
a : α
h : ↑u * a = 1
⊢ ↑u⁻¹ * 1 = a
state_after: no goals
Theorem: Ideal.fg_of_isUnit
File: Mathlib/RingTheory/FractionalIdeal/Operations.lean

tactic: rw [← coeIdeal_fg S inj I]
state_before: R : Type u_1
inst✝⁶ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
P' : Type u_3
inst✝³ : CommRing P'
inst✝² : Algebra R P'
loc' : IsLocalization S P'
P'' : Type u_4
inst✝¹ : CommRing P''
inst✝ : Algebra R P''
loc'' : IsLocalization S P''
I✝ J : FractionalIdeal S P
g : P →ₐ[R] P'
inj : Function.Injective ⇑(algebraMap R P)
I : Ideal R
h : IsUnit ↑I
⊢ I.FG
state_after: R : Type u_1
inst✝⁶ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
P' : Type u_3
inst✝³ : CommRing P'
inst✝² : Algebra R P'
loc' : IsLocalization S P'
P'' : Type u_4
inst✝¹ : CommRing P''
inst✝ : Algebra R P''
loc'' : IsLocalization S P''
I✝ J : FractionalIdeal S P
g : P →ₐ[R] P'
inj : Function.Injective ⇑(algebraMap R P)
I : Ideal R
h : IsUnit ↑I
⊢ (↑↑I).FG

tactic: exact FractionalIdeal.fg_of_isUnit I h
state_before: R : Type u_1
inst✝⁶ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
P' : Type u_3
inst✝³ : CommRing P'
inst✝² : Algebra R P'
loc' : IsLocalization S P'
P'' : Type u_4
inst✝¹ : CommRing P''
inst✝ : Algebra R P''
loc'' : IsLocalization S P''
I✝ J : FractionalIdeal S P
g : P →ₐ[R] P'
inj : Function.Injective ⇑(algebraMap R P)
I : Ideal R
h : IsUnit ↑I
⊢ (↑↑I).FG
state_after: no goals
Theorem: Polynomial.smeval_mul_X_pow
File: Mathlib/Algebra/Polynomial/Smeval.lean

tactic: simp only [npow_zero, mul_one]
state_before: R : Type u_1
inst✝⁶ : Semiring R
p✝ : R[X]
r : R
p q : R[X]
S : Type u_2
inst✝⁵ : NonAssocSemiring S
inst✝⁴ : Module R S
inst✝³ : IsScalarTower R S S
inst✝² : SMulCommClass R S S
inst✝¹ : Pow S ℕ
inst✝ : NatPowAssoc S
x : S
⊢ (p * X ^ 0).smeval x = p.smeval x * x ^ 0
state_after: no goals

tactic: rw [npow_add, ← mul_assoc, npow_one, smeval_mul_X, smeval_mul_X_pow n, npow_add,
  ← smeval_assoc_X_pow, npow_one]
state_before: R : Type u_1
inst✝⁶ : Semiring R
p✝ : R[X]
r : R
p q : R[X]
S : Type u_2
inst✝⁵ : NonAssocSemiring S
inst✝⁴ : Module R S
inst✝³ : IsScalarTower R S S
inst✝² : SMulCommClass R S S
inst✝¹ : Pow S ℕ
inst✝ : NatPowAssoc S
x : S
n : ℕ
⊢ (p * X ^ (n + 1)).smeval x = p.smeval x * x ^ (n + 1)
state_after: no goals
Theorem: ProbabilityTheory.condCount_eq_one_of
File: Mathlib/Probability/CondCount.lean

tactic: haveI := condCount_isProbabilityMeasure hs hs'
state_before: Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
hs' : s.Nonempty
ht : s ⊆ t
⊢ (condCount s) t = 1
state_after: Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
hs' : s.Nonempty
ht : s ⊆ t
this : IsProbabilityMeasure (condCount s)
⊢ (condCount s) t = 1

tactic: refine eq_of_le_of_not_lt prob_le_one ?_
state_before: Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
hs' : s.Nonempty
ht : s ⊆ t
this : IsProbabilityMeasure (condCount s)
⊢ (condCount s) t = 1
state_after: Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
hs' : s.Nonempty
ht : s ⊆ t
this : IsProbabilityMeasure (condCount s)
⊢ ¬(condCount s) t < 1

tactic: rw [not_lt, ← condCount_self hs hs']
state_before: Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
hs' : s.Nonempty
ht : s ⊆ t
this : IsProbabilityMeasure (condCount s)
⊢ ¬(condCount s) t < 1
state_after: Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
hs' : s.Nonempty
ht : s ⊆ t
this : IsProbabilityMeasure (condCount s)
⊢ (condCount s) s ≤ (condCount s) t

tactic: exact measure_mono ht
state_before: Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
hs' : s.Nonempty
ht : s ⊆ t
this : IsProbabilityMeasure (condCount s)
⊢ (condCount s) s ≤ (condCount s) t
state_after: no goals
Theorem: Polynomial.monic_X_pow_add
File: Mathlib/Algebra/Polynomial/Monic.lean

tactic: rw [coeff_add, coeff_X_pow, if_pos rfl, coeff_eq_zero_of_degree_lt H1, add_zero]
state_before: R : Type u
S : Type v
a b : R
m n✝ : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
n : ℕ
H : p.degree ≤ ↑n
H1 : p.degree < ↑(n + 1)
⊢ (X ^ (n + 1) + p).coeff (n + 1) = 1
state_after: no goals
Theorem: Metric.equicontinuousAt_of_continuity_modulus
File: Mathlib/Topology/MetricSpace/Equicontinuity.lean

tactic: rw [Metric.equicontinuousAt_iff_right]
state_before: α : Type u_1
β : Type u_2
ι✝ : Type u_3
inst✝¹ : PseudoMetricSpace α
ι : Type u_4
inst✝ : TopologicalSpace β
x₀ : β
b : β → ℝ
b_lim : Tendsto b (𝓝 x₀) (𝓝 0)
F : ι → β → α
H : ∀ᶠ (x : β) in 𝓝 x₀, ∀ (i : ι), dist (F i x₀) (F i x) ≤ b x
⊢ EquicontinuousAt F x₀
state_after: α : Type u_1
β : Type u_2
ι✝ : Type u_3
inst✝¹ : PseudoMetricSpace α
ι : Type u_4
inst✝ : TopologicalSpace β
x₀ : β
b : β → ℝ
b_lim : Tendsto b (𝓝 x₀) (𝓝 0)
F : ι → β → α
H : ∀ᶠ (x : β) in 𝓝 x₀, ∀ (i : ι), dist (F i x₀) (F i x) ≤ b x
⊢ ∀ ε > 0, ∀ᶠ (x : β) in 𝓝 x₀, ∀ (i : ι), dist (F i x₀) (F i x) < ε

tactic: intro ε ε0
state_before: α : Type u_1
β : Type u_2
ι✝ : Type u_3
inst✝¹ : PseudoMetricSpace α
ι : Type u_4
inst✝ : TopologicalSpace β
x₀ : β
b : β → ℝ
b_lim : Tendsto b (𝓝 x₀) (𝓝 0)
F : ι → β → α
H : ∀ᶠ (x : β) in 𝓝 x₀, ∀ (i : ι), dist (F i x₀) (F i x) ≤ b x
⊢ ∀ ε > 0, ∀ᶠ (x : β) in 𝓝 x₀, ∀ (i : ι), dist (F i x₀) (F i x) < ε
state_after: α : Type u_1
β : Type u_2
ι✝ : Type u_3
inst✝¹ : PseudoMetricSpace α
ι : Type u_4
inst✝ : TopologicalSpace β
x₀ : β
b : β → ℝ
b_lim : Tendsto b (𝓝 x₀) (𝓝 0)
F : ι → β → α
H : ∀ᶠ (x : β) in 𝓝 x₀, ∀ (i : ι), dist (F i x₀) (F i x) ≤ b x
ε : ℝ
ε0 : ε > 0
⊢ ∀ᶠ (x : β) in 𝓝 x₀, ∀ (i : ι), dist (F i x₀) (F i x) < ε

tactic: filter_upwards [Filter.mem_map.mp <| b_lim (Iio_mem_nhds ε0), H] using
  fun x hx₁ hx₂ i => (hx₂ i).trans_lt hx₁
state_before: α : Type u_1
β : Type u_2
ι✝ : Type u_3
inst✝¹ : PseudoMetricSpace α
ι : Type u_4
inst✝ : TopologicalSpace β
x₀ : β
b : β → ℝ
b_lim : Tendsto b (𝓝 x₀) (𝓝 0)
F : ι → β → α
H : ∀ᶠ (x : β) in 𝓝 x₀, ∀ (i : ι), dist (F i x₀) (F i x) ≤ b x
ε : ℝ
ε0 : ε > 0
⊢ ∀ᶠ (x : β) in 𝓝 x₀, ∀ (i : ι), dist (F i x₀) (F i x) < ε
state_after: no goals