1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Rat.inv_def
File: .lake/packages/batteries/Batteries/Data/Rat/Lemmas.lean

tactic: unfold Rat.inv
state_before: a : Rat
⊢ a.inv = ↑a.den /. a.num
state_after: a : Rat
⊢ (if h : a.num < 0 then { num := -↑a.den, den := a.num.natAbs, den_nz := ⋯, reduced := ⋯ }
    else if h : a.num > 0 then { num := ↑a.den, den := a.num.natAbs, den_nz := ⋯, reduced := ⋯ } else a) =
    ↑a.den /. a.num

tactic: split
state_before: a : Rat
⊢ (if h : a.num < 0 then { num := -↑a.den, den := a.num.natAbs, den_nz := ⋯, reduced := ⋯ }
    else if h : a.num > 0 then { num := ↑a.den, den := a.num.natAbs, den_nz := ⋯, reduced := ⋯ } else a) =
    ↑a.den /. a.num
state_after: case isTrue
a : Rat
h✝ : a.num < 0
⊢ { num := -↑a.den, den := a.num.natAbs, den_nz := ⋯, reduced := ⋯ } = ↑a.den /. a.num

case isFalse
a : Rat
h✝ : ¬a.num < 0
⊢ (if h : a.num > 0 then { num := ↑a.den, den := a.num.natAbs, den_nz := ⋯, reduced := ⋯ } else a) = ↑a.den /. a.num

tactic: split
state_before: case isFalse
a : Rat
h✝ : ¬a.num < 0
⊢ (if h : a.num > 0 then { num := ↑a.den, den := a.num.natAbs, den_nz := ⋯, reduced := ⋯ } else a) = ↑a.den /. a.num
state_after: case isFalse.isTrue
a : Rat
h✝¹ : ¬a.num < 0
h✝ : a.num > 0
⊢ { num := ↑a.den, den := a.num.natAbs, den_nz := ⋯, reduced := ⋯ } = ↑a.den /. a.num

case isFalse.isFalse
a : Rat
h✝¹ : ¬a.num < 0
h✝ : ¬a.num > 0
⊢ a = ↑a.den /. a.num

tactic: next h => rw [mk_eq_divInt, ← Int.natAbs_neg,
  Int.natAbs_of_nonneg (Int.le_of_lt <| Int.neg_pos_of_neg h), neg_divInt_neg]
state_before: case isTrue
a : Rat
h✝ : a.num < 0
⊢ { num := -↑a.den, den := a.num.natAbs, den_nz := ⋯, reduced := ⋯ } = ↑a.den /. a.num
state_after: no goals

tactic: rw [mk_eq_divInt, ← Int.natAbs_neg,
Int.natAbs_of_nonneg (Int.le_of_lt <| Int.neg_pos_of_neg h), neg_divInt_neg]
state_before: a : Rat
h : a.num < 0
⊢ { num := -↑a.den, den := a.num.natAbs, den_nz := ⋯, reduced := ⋯ } = ↑a.den /. a.num
state_after: no goals

tactic: next h => rw [mk_eq_divInt, Int.natAbs_of_nonneg (Int.le_of_lt h)]
state_before: case isFalse.isTrue
a : Rat
h✝¹ : ¬a.num < 0
h✝ : a.num > 0
⊢ { num := ↑a.den, den := a.num.natAbs, den_nz := ⋯, reduced := ⋯ } = ↑a.den /. a.num
state_after: no goals

tactic: rw [mk_eq_divInt, Int.natAbs_of_nonneg (Int.le_of_lt h)]
state_before: a : Rat
h✝ : ¬a.num < 0
h : a.num > 0
⊢ { num := ↑a.den, den := a.num.natAbs, den_nz := ⋯, reduced := ⋯ } = ↑a.den /. a.num
state_after: no goals

tactic: next h₁ h₂ =>
apply (divInt_self _).symm.trans
simp [Int.le_antisymm (Int.not_lt.1 h₂) (Int.not_lt.1 h₁)]
state_before: case isFalse.isFalse
a : Rat
h✝¹ : ¬a.num < 0
h✝ : ¬a.num > 0
⊢ a = ↑a.den /. a.num
state_after: no goals

tactic: apply (divInt_self _).symm.trans
state_before: a : Rat
h₁ : ¬a.num < 0
h₂ : ¬a.num > 0
⊢ a = ↑a.den /. a.num
state_after: a : Rat
h₁ : ¬a.num < 0
h₂ : ¬a.num > 0
⊢ a.num /. ↑a.den = ↑a.den /. a.num

tactic: simp [Int.le_antisymm (Int.not_lt.1 h₂) (Int.not_lt.1 h₁)]
state_before: a : Rat
h₁ : ¬a.num < 0
h₂ : ¬a.num > 0
⊢ a.num /. ↑a.den = ↑a.den /. a.num
state_after: no goals
Theorem: Subgroup.map_inf_eq
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: rw [← SetLike.coe_set_eq]
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁵ : Group G
inst✝⁴ : Group G'
inst✝³ : Group G''
A : Type u_4
inst✝² : AddGroup A
H✝ K✝ : Subgroup G
k : Set G
N : Type u_5
inst✝¹ : Group N
P : Type u_6
inst✝ : Group P
H K : Subgroup G
f : G →* N
hf : Injective ⇑f
⊢ map f (H ⊓ K) = map f H ⊓ map f K
state_after: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁵ : Group G
inst✝⁴ : Group G'
inst✝³ : Group G''
A : Type u_4
inst✝² : AddGroup A
H✝ K✝ : Subgroup G
k : Set G
N : Type u_5
inst✝¹ : Group N
P : Type u_6
inst✝ : Group P
H K : Subgroup G
f : G →* N
hf : Injective ⇑f
⊢ ↑(map f (H ⊓ K)) = ↑(map f H ⊓ map f K)

tactic: simp [Set.image_inter hf]
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁵ : Group G
inst✝⁴ : Group G'
inst✝³ : Group G''
A : Type u_4
inst✝² : AddGroup A
H✝ K✝ : Subgroup G
k : Set G
N : Type u_5
inst✝¹ : Group N
P : Type u_6
inst✝ : Group P
H K : Subgroup G
f : G →* N
hf : Injective ⇑f
⊢ ↑(map f (H ⊓ K)) = ↑(map f H ⊓ map f K)
state_after: no goals
Theorem: Cubic.degree_of_c_ne_zero
File: Mathlib/Algebra/CubicDiscriminant.lean

tactic: rw [of_b_eq_zero ha hb, degree_linear hc]
state_before: R : Type u_1
S : Type u_2
F : Type u_3
K : Type u_4
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
ha : P.a = 0
hb : P.b = 0
hc : P.c ≠ 0
⊢ P.toPoly.degree = 1
state_after: no goals
Theorem: WittVector.mulN_isPoly
File: Mathlib/RingTheory/WittVector/MulP.lean

tactic: funext k
state_before: p : ℕ
R✝ : Type u_1
hp : Fact (Nat.Prime p)
inst✝ : CommRing R✝
n : ℕ
R : Type u_2
_Rcr : CommRing R
x : 𝕎 R
⊢ (x * ↑n).coeff = fun n_1 => (aeval x.coeff) (wittMulN p n n_1)
state_after: case h
p : ℕ
R✝ : Type u_1
hp : Fact (Nat.Prime p)
inst✝ : CommRing R✝
n : ℕ
R : Type u_2
_Rcr : CommRing R
x : 𝕎 R
k : ℕ
⊢ (x * ↑n).coeff k = (aeval x.coeff) (wittMulN p n k)

tactic: exact mulN_coeff n x k
state_before: case h
p : ℕ
R✝ : Type u_1
hp : Fact (Nat.Prime p)
inst✝ : CommRing R✝
n : ℕ
R : Type u_2
_Rcr : CommRing R
x : 𝕎 R
k : ℕ
⊢ (x * ↑n).coeff k = (aeval x.coeff) (wittMulN p n k)
state_after: no goals
Theorem: Cardinal.add_ciSup
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: rw [add_comm, Cardinal.ciSup_add f hf]
state_before: ι : Type u
ι' : Type w
f : ι → Cardinal.{v}
inst✝¹ : Nonempty ι
inst✝ : Nonempty ι'
hf : BddAbove (range f)
c : Cardinal.{v}
⊢ c + ⨆ i, f i = ⨆ i, c + f i
state_after: ι : Type u
ι' : Type w
f : ι → Cardinal.{v}
inst✝¹ : Nonempty ι
inst✝ : Nonempty ι'
hf : BddAbove (range f)
c : Cardinal.{v}
⊢ ⨆ i, f i + c = ⨆ i, c + f i

tactic: simp_rw [add_comm]
state_before: ι : Type u
ι' : Type w
f : ι → Cardinal.{v}
inst✝¹ : Nonempty ι
inst✝ : Nonempty ι'
hf : BddAbove (range f)
c : Cardinal.{v}
⊢ ⨆ i, f i + c = ⨆ i, c + f i
state_after: no goals
Theorem: Set.infinite_of_injective_forall_mem
File: Mathlib/Data/Set/Finite.lean

tactic: rw [← range_subset_iff] at hf
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s✝ t : Set α
inst✝ : Infinite α
s : Set β
f : α → β
hi : Injective f
hf : ∀ (x : α), f x ∈ s
⊢ s.Infinite
state_after: α : Type u
β : Type v
ι : Sort w
γ : Type x
s✝ t : Set α
inst✝ : Infinite α
s : Set β
f : α → β
hi : Injective f
hf : range f ⊆ s
⊢ s.Infinite

tactic: exact (infinite_range_of_injective hi).mono hf
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s✝ t : Set α
inst✝ : Infinite α
s : Set β
f : α → β
hi : Injective f
hf : range f ⊆ s
⊢ s.Infinite
state_after: no goals
Theorem: mul_inv_mul_self
File: Mathlib/Algebra/GroupWithZero/Basic.lean

tactic: by_cases h : a = 0
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : GroupWithZero G₀
a✝ b c a : G₀
⊢ a * a⁻¹ * a = a
state_after: case pos
α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : GroupWithZero G₀
a✝ b c a : G₀
h : a = 0
⊢ a * a⁻¹ * a = a

case neg
α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : GroupWithZero G₀
a✝ b c a : G₀
h : ¬a = 0
⊢ a * a⁻¹ * a = a

tactic: rw [h, inv_zero, mul_zero]
state_before: case pos
α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : GroupWithZero G₀
a✝ b c a : G₀
h : a = 0
⊢ a * a⁻¹ * a = a
state_after: no goals

tactic: rw [mul_inv_cancel h, one_mul]
state_before: case neg
α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : GroupWithZero G₀
a✝ b c a : G₀
h : ¬a = 0
⊢ a * a⁻¹ * a = a
state_after: no goals
Theorem: MeasureTheory.Integrable.edist_toL1_toL1
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simp only [toL1, Lp.edist_toLp_toLp, snorm, one_ne_zero, snorm', Pi.sub_apply, one_toReal,
  ENNReal.rpow_one, ne_eq, not_false_eq_true, div_self, ite_false]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f g : α → β
hf : Integrable f μ
hg : Integrable g μ
⊢ edist (toL1 f hf) (toL1 g hg) = ∫⁻ (a : α), edist (f a) (g a) ∂μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f g : α → β
hf : Integrable f μ
hg : Integrable g μ
⊢ (if 1 = ⊤ then snormEssSup (f - g) μ else ∫⁻ (a : α), ↑‖f a - g a‖₊ ∂μ) = ∫⁻ (a : α), edist (f a) (g a) ∂μ

tactic: simp [edist_eq_coe_nnnorm_sub]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f g : α → β
hf : Integrable f μ
hg : Integrable g μ
⊢ (if 1 = ⊤ then snormEssSup (f - g) μ else ∫⁻ (a : α), ↑‖f a - g a‖₊ ∂μ) = ∫⁻ (a : α), edist (f a) (g a) ∂μ
state_after: no goals
Theorem: one_lt_zpow'
File: Mathlib/Algebra/Order/Group/Basic.lean

tactic: obtain ⟨n, rfl⟩ := Int.eq_ofNat_of_zero_le hn.le
state_before: α : Type u_1
M : Type u_2
R : Type u_3
inst✝ : OrderedCommGroup α
m n : ℤ
a b : α
ha : 1 < a
hn : 0 < n
⊢ 1 < a ^ n
state_after: case intro
α : Type u_1
M : Type u_2
R : Type u_3
inst✝ : OrderedCommGroup α
m : ℤ
a b : α
ha : 1 < a
n : ℕ
hn : 0 < ↑n
⊢ 1 < a ^ ↑n

tactic: rw [zpow_natCast]
state_before: case intro
α : Type u_1
M : Type u_2
R : Type u_3
inst✝ : OrderedCommGroup α
m : ℤ
a b : α
ha : 1 < a
n : ℕ
hn : 0 < ↑n
⊢ 1 < a ^ ↑n
state_after: case intro
α : Type u_1
M : Type u_2
R : Type u_3
inst✝ : OrderedCommGroup α
m : ℤ
a b : α
ha : 1 < a
n : ℕ
hn : 0 < ↑n
⊢ 1 < a ^ n

tactic: refine one_lt_pow' ha ?_
state_before: case intro
α : Type u_1
M : Type u_2
R : Type u_3
inst✝ : OrderedCommGroup α
m : ℤ
a b : α
ha : 1 < a
n : ℕ
hn : 0 < ↑n
⊢ 1 < a ^ n
state_after: case intro
α : Type u_1
M : Type u_2
R : Type u_3
inst✝ : OrderedCommGroup α
m : ℤ
a b : α
ha : 1 < a
n : ℕ
hn : 0 < ↑n
⊢ n ≠ 0

tactic: rintro rfl
state_before: case intro
α : Type u_1
M : Type u_2
R : Type u_3
inst✝ : OrderedCommGroup α
m : ℤ
a b : α
ha : 1 < a
n : ℕ
hn : 0 < ↑n
⊢ n ≠ 0
state_after: case intro
α : Type u_1
M : Type u_2
R : Type u_3
inst✝ : OrderedCommGroup α
m : ℤ
a b : α
ha : 1 < a
hn : 0 < ↑0
⊢ False

tactic: simp at hn
state_before: case intro
α : Type u_1
M : Type u_2
R : Type u_3
inst✝ : OrderedCommGroup α
m : ℤ
a b : α
ha : 1 < a
hn : 0 < ↑0
⊢ False
state_after: no goals
Theorem: Matrix.posSemidef_diagonal_iff
File: Mathlib/LinearAlgebra/Matrix/PosDef.lean

tactic: refine ⟨fun ⟨_, hP⟩ i ↦ by simpa using hP (Pi.single i 1), ?_⟩
state_before: m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
d : n → R
⊢ (diagonal d).PosSemidef ↔ ∀ (i : n), 0 ≤ d i
state_after: m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
d : n → R
⊢ (∀ (i : n), 0 ≤ d i) → (diagonal d).PosSemidef

tactic: refine fun hd ↦ ⟨isHermitian_diagonal_iff.2 fun i ↦ IsSelfAdjoint.of_nonneg (hd i), ?_⟩
state_before: m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
d : n → R
⊢ (∀ (i : n), 0 ≤ d i) → (diagonal d).PosSemidef
state_after: m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
d : n → R
hd : ∀ (i : n), 0 ≤ d i
⊢ ∀ (x : n → R), 0 ≤ star x ⬝ᵥ diagonal d *ᵥ x

tactic: refine fun x ↦ Finset.sum_nonneg fun i _ ↦ ?_
state_before: m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
d : n → R
hd : ∀ (i : n), 0 ≤ d i
⊢ ∀ (x : n → R), 0 ≤ star x ⬝ᵥ diagonal d *ᵥ x
state_after: m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
d : n → R
hd : ∀ (i : n), 0 ≤ d i
x : n → R
i : n
x✝ : i ∈ Finset.univ
⊢ 0 ≤ star x i * (diagonal d *ᵥ x) i

tactic: simpa only [mulVec_diagonal, mul_assoc] using conjugate_nonneg (hd i) _
state_before: m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
d : n → R
hd : ∀ (i : n), 0 ≤ d i
x : n → R
i : n
x✝ : i ∈ Finset.univ
⊢ 0 ≤ star x i * (diagonal d *ᵥ x) i
state_after: no goals

tactic: simpa using hP (Pi.single i 1)
state_before: m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
d : n → R
x✝ : (diagonal d).PosSemidef
i : n
left✝ : (diagonal d).IsHermitian
hP : ∀ (x : n → R), 0 ≤ star x ⬝ᵥ diagonal d *ᵥ x
⊢ 0 ≤ d i
state_after: no goals
Theorem: Matrix.hadamard_one
File: Mathlib/Data/Matrix/Hadamard.lean

tactic: ext i j
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
m : Type u_4
n : Type u_5
R : Type u_6
A B C : Matrix m n α
inst✝¹ : DecidableEq n
inst✝ : MulZeroOneClass α
M : Matrix n n α
⊢ M ⊙ 1 = diagonal fun i => M i i
state_after: case a
α : Type u_1
β : Type u_2
γ : Type u_3
m : Type u_4
n : Type u_5
R : Type u_6
A B C : Matrix m n α
inst✝¹ : DecidableEq n
inst✝ : MulZeroOneClass α
M : Matrix n n α
i j : n
⊢ (M ⊙ 1) i j = diagonal (fun i => M i i) i j

tactic: by_cases h: i = j <;> simp [h]
state_before: case a
α : Type u_1
β : Type u_2
γ : Type u_3
m : Type u_4
n : Type u_5
R : Type u_6
A B C : Matrix m n α
inst✝¹ : DecidableEq n
inst✝ : MulZeroOneClass α
M : Matrix n n α
i j : n
⊢ (M ⊙ 1) i j = diagonal (fun i => M i i) i j
state_after: no goals
Theorem: monovaryOn_inv_left
File: Mathlib/Algebra/Order/Monovary.lean

tactic: simp [MonovaryOn, AntivaryOn]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : OrderedCommGroup α
inst✝ : OrderedCommGroup β
s : Set ι
f f₁ f₂ : ι → α
g g₁ g₂ : ι → β
⊢ MonovaryOn f⁻¹ g s ↔ AntivaryOn f g s
state_after: no goals
Theorem: Finset.forall_image
File: Mathlib/Data/Finset/Image.lean

tactic: simp only [mem_image, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq β
f g : α → β
s : Finset α
t : Finset β
a : α
b c : β
p : β → Prop
⊢ (∀ b ∈ image f s, p b) ↔ ∀ a ∈ s, p (f a)
state_after: no goals
Theorem: ProbabilityTheory.tendsto_defaultRatCDF_atTop
File: Mathlib/Probability/Kernel/Disintegration/MeasurableStieltjes.lean

tactic: refine (tendsto_congr' ?_).mp tendsto_const_nhds
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
⊢ Tendsto defaultRatCDF atTop (𝓝 1)
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
⊢ (fun x => 1) =ᶠ[atTop] defaultRatCDF

tactic: rw [EventuallyEq, eventually_atTop]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
⊢ (fun x => 1) =ᶠ[atTop] defaultRatCDF
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
⊢ ∃ a, ∀ b ≥ a, 1 = defaultRatCDF b

tactic: exact ⟨0, fun q hq => (if_neg (not_lt.mpr hq)).symm⟩
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
⊢ ∃ a, ∀ b ≥ a, 1 = defaultRatCDF b
state_after: no goals
Theorem: CategoryTheory.GradedObject.mapBifunctorRightUnitorCofan_inj
File: Mathlib/CategoryTheory/GradedObject/Unitor.lean

tactic: simp [mapBifunctorRightUnitorCofan]
state_before: C : Type u_1
D : Type u_2
I : Type u_3
J : Type u_4
inst✝⁵ : Category.{u_6, u_1} C
inst✝⁴ : Category.{u_5, u_2} D
inst✝³ : Zero I
inst✝² : DecidableEq I
inst✝¹ : HasInitial C
F : D ⥤ C ⥤ D
Y : C
e : F.flip.obj Y ≅ 𝟭 D
inst✝ : (X : D) → PreservesColimit (Functor.empty C) (F.obj X)
p : J × I → J
hp : ∀ (j : J), p (j, 0) = j
X X' : GradedObject J D
φ : X ⟶ X'
j : J
⊢ Cofan.inj (mapBifunctorRightUnitorCofan F Y e p hp X j) ⟨(j, 0), ⋯⟩ =
    (F.obj (X j)).map (singleObjApplyIso 0 Y).hom ≫ e.hom.app (X j)
state_after: no goals
Theorem: isClosed_iff_forall_filter
File: Mathlib/Topology/Basic.lean

tactic: simp_rw [isClosed_iff_clusterPt]
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
⊢ IsClosed s ↔ ∀ (x : X) (F : Filter X), F.NeBot → F ≤ 𝓟 s → F ≤ 𝓝 x → x ∈ s
state_after: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
⊢ (∀ (a : X), ClusterPt a (𝓟 s) → a ∈ s) ↔ ∀ (x : X) (F : Filter X), F.NeBot → F ≤ 𝓟 s → F ≤ 𝓝 x → x ∈ s

tactic: exact ⟨fun hs x F F_ne FS Fx ↦ hs _ <| NeBot.mono F_ne (le_inf Fx FS),
       fun hs x hx ↦ hs x (𝓝 x ⊓ 𝓟 s) hx inf_le_right inf_le_left⟩
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
⊢ (∀ (a : X), ClusterPt a (𝓟 s) → a ∈ s) ↔ ∀ (x : X) (F : Filter X), F.NeBot → F ≤ 𝓟 s → F ≤ 𝓝 x → x ∈ s
state_after: no goals
Theorem: Finset.comp_sup'_eq_sup'_comp
File: Mathlib/Data/Finset/Lattice.lean

tactic: refine H.cons_induction ?_ ?_ <;> intros <;> simp [*]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝¹ : SemilatticeSup α
s✝ : Finset β
H✝ : s✝.Nonempty
f✝ : β → α
inst✝ : SemilatticeSup γ
s : Finset β
H : s.Nonempty
f : β → α
g : α → γ
g_sup : ∀ (x y : α), g (x ⊔ y) = g x ⊔ g y
⊢ g (s.sup' H f) = s.sup' H (g ∘ f)
state_after: no goals
Theorem: lt_self_pow
File: Mathlib/Algebra/Order/Ring/Basic.lean

tactic: simpa only [pow_one] using pow_lt_pow_right h hm
state_before: α : Type u_1
M : Type u_2
R : Type u_3
inst✝ : StrictOrderedSemiring R
a x y : R
n m : ℕ
h : 1 < a
hm : 1 < m
⊢ a < a ^ m
state_after: no goals
Theorem: Commute.geom_sum₂_comm
File: Mathlib/Algebra/GeomSum.lean

tactic: cases n
state_before: α✝ α : Type u
inst✝ : Semiring α
x y : α
n : ℕ
h : Commute x y
⊢ ∑ i ∈ range n, x ^ i * y ^ (n - 1 - i) = ∑ i ∈ range n, y ^ i * x ^ (n - 1 - i)
state_after: case zero
α✝ α : Type u
inst✝ : Semiring α
x y : α
h : Commute x y
⊢ ∑ i ∈ range 0, x ^ i * y ^ (0 - 1 - i) = ∑ i ∈ range 0, y ^ i * x ^ (0 - 1 - i)

case succ
α✝ α : Type u
inst✝ : Semiring α
x y : α
h : Commute x y
n✝ : ℕ
⊢ ∑ i ∈ range (n✝ + 1), x ^ i * y ^ (n✝ + 1 - 1 - i) = ∑ i ∈ range (n✝ + 1), y ^ i * x ^ (n✝ + 1 - 1 - i)

tactic: simp only [Nat.succ_eq_add_one, Nat.add_sub_cancel]
state_before: case succ
α✝ α : Type u
inst✝ : Semiring α
x y : α
h : Commute x y
n✝ : ℕ
⊢ ∑ i ∈ range (n✝ + 1), x ^ i * y ^ (n✝ + 1 - 1 - i) = ∑ i ∈ range (n✝ + 1), y ^ i * x ^ (n✝ + 1 - 1 - i)
state_after: case succ
α✝ α : Type u
inst✝ : Semiring α
x y : α
h : Commute x y
n✝ : ℕ
⊢ ∑ x_1 ∈ range (n✝ + 1), x ^ x_1 * y ^ (n✝ - x_1) = ∑ x_1 ∈ range (n✝ + 1), y ^ x_1 * x ^ (n✝ - x_1)

tactic: rw [← Finset.sum_flip]
state_before: case succ
α✝ α : Type u
inst✝ : Semiring α
x y : α
h : Commute x y
n✝ : ℕ
⊢ ∑ x_1 ∈ range (n✝ + 1), x ^ x_1 * y ^ (n✝ - x_1) = ∑ x_1 ∈ range (n✝ + 1), y ^ x_1 * x ^ (n✝ - x_1)
state_after: case succ
α✝ α : Type u
inst✝ : Semiring α
x y : α
h : Commute x y
n✝ : ℕ
⊢ ∑ r ∈ range (n✝ + 1), x ^ (n✝ - r) * y ^ (n✝ - (n✝ - r)) = ∑ x_1 ∈ range (n✝ + 1), y ^ x_1 * x ^ (n✝ - x_1)

tactic: refine Finset.sum_congr rfl fun i hi => ?_
state_before: case succ
α✝ α : Type u
inst✝ : Semiring α
x y : α
h : Commute x y
n✝ : ℕ
⊢ ∑ r ∈ range (n✝ + 1), x ^ (n✝ - r) * y ^ (n✝ - (n✝ - r)) = ∑ x_1 ∈ range (n✝ + 1), y ^ x_1 * x ^ (n✝ - x_1)
state_after: case succ
α✝ α : Type u
inst✝ : Semiring α
x y : α
h : Commute x y
n✝ i : ℕ
hi : i ∈ range (n✝ + 1)
⊢ x ^ (n✝ - i) * y ^ (n✝ - (n✝ - i)) = y ^ i * x ^ (n✝ - i)

tactic: simpa [Nat.sub_sub_self (Nat.succ_le_succ_iff.mp (Finset.mem_range.mp hi))] using h.pow_pow _ _
state_before: case succ
α✝ α : Type u
inst✝ : Semiring α
x y : α
h : Commute x y
n✝ i : ℕ
hi : i ∈ range (n✝ + 1)
⊢ x ^ (n✝ - i) * y ^ (n✝ - (n✝ - i)) = y ^ i * x ^ (n✝ - i)
state_after: no goals

tactic: simp
state_before: case zero
α✝ α : Type u
inst✝ : Semiring α
x y : α
h : Commute x y
⊢ ∑ i ∈ range 0, x ^ i * y ^ (0 - 1 - i) = ∑ i ∈ range 0, y ^ i * x ^ (0 - 1 - i)
state_after: no goals
Theorem: LucasLehmer.Int.natCast_pow_pred
File: Mathlib/NumberTheory/LucasLehmer.lean

tactic: have : 1 ≤ b ^ p := Nat.one_le_pow p b w
state_before: b p : ℕ
w : 0 < b
⊢ ↑(b ^ p - 1) = ↑b ^ p - 1
state_after: b p : ℕ
w : 0 < b
this : 1 ≤ b ^ p
⊢ ↑(b ^ p - 1) = ↑b ^ p - 1

tactic: norm_cast
state_before: b p : ℕ
w : 0 < b
this : 1 ≤ b ^ p
⊢ ↑(b ^ p - 1) = ↑b ^ p - 1
state_after: no goals
Theorem: Set.mem_univ_pi
File: Mathlib/Data/Set/Defs.lean

tactic: simp
state_before: α✝ : Type u
β : Type v
γ : Type w
ι : Type u_1
α : ι → Type u_2
s : Set ι
t : (i : ι) → Set (α i)
f : (i : ι) → α i
⊢ f ∈ univ.pi t ↔ ∀ (i : ι), f i ∈ t i
state_after: no goals