1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.IsFundamentalDomain.mk'
File: Mathlib/MeasureTheory/Group/FundamentalDomain.lean

tactic: rw [mem_smul_set_iff_inv_smul_mem] at hxa hxb
state_before: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝⁶ : Group G
inst✝⁵ : Group H
inst✝⁴ : MulAction G α
inst✝³ : MeasurableSpace α
inst✝² : MulAction H β
inst✝¹ : MeasurableSpace β
inst✝ : NormedAddCommGroup E
s t : Set α
μ : Measure α
h_meas : NullMeasurableSet s μ
h_exists : ∀ (x : α), ∃! g, g • x ∈ s
a b : G
hab : a ≠ b
x : α
hxa : x ∈ (fun g => g • s) a
hxb : x ∈ (fun g => g • s) b
⊢ False
state_after: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝⁶ : Group G
inst✝⁵ : Group H
inst✝⁴ : MulAction G α
inst✝³ : MeasurableSpace α
inst✝² : MulAction H β
inst✝¹ : MeasurableSpace β
inst✝ : NormedAddCommGroup E
s t : Set α
μ : Measure α
h_meas : NullMeasurableSet s μ
h_exists : ∀ (x : α), ∃! g, g • x ∈ s
a b : G
hab : a ≠ b
x : α
hxa : a⁻¹ • x ∈ s
hxb : b⁻¹ • x ∈ s
⊢ False

tactic: exact hab (inv_injective <| (h_exists x).unique hxa hxb)
state_before: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝⁶ : Group G
inst✝⁵ : Group H
inst✝⁴ : MulAction G α
inst✝³ : MeasurableSpace α
inst✝² : MulAction H β
inst✝¹ : MeasurableSpace β
inst✝ : NormedAddCommGroup E
s t : Set α
μ : Measure α
h_meas : NullMeasurableSet s μ
h_exists : ∀ (x : α), ∃! g, g • x ∈ s
a b : G
hab : a ≠ b
x : α
hxa : a⁻¹ • x ∈ s
hxb : b⁻¹ • x ∈ s
⊢ False
state_after: no goals
Theorem: Stream'.Seq.ofList_cons
File: Mathlib/Data/Seq/Seq.lean

tactic: ext1 (_ | n) <;> rfl
state_before: α : Type u
β : Type v
γ : Type w
a : α
l : List α
⊢ ↑(a :: l) = cons a ↑l
state_after: no goals
Theorem: List.argmax_concat
File: Mathlib/Data/List/MinMax.lean

tactic: rw [argmax, argmax]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder β
inst✝ : DecidableRel fun x x_1 => x < x_1
f✝ : α → β
l✝ : List α
o : Option α
a✝ m : α
f : α → β
a : α
l : List α
⊢ argmax f (l ++ [a]) = Option.casesOn (argmax f l) (some a) fun c => if f c < f a then some a else some c
state_after: α : Type u_1
β : Type u_2
inst✝¹ : Preorder β
inst✝ : DecidableRel fun x x_1 => x < x_1
f✝ : α → β
l✝ : List α
o : Option α
a✝ m : α
f : α → β
a : α
l : List α
⊢ foldl (argAux fun b c => f c < f b) none (l ++ [a]) =
    Option.casesOn (foldl (argAux fun b c => f c < f b) none l) (some a) fun c => if f c < f a then some a else some c

tactic: simp [argAux]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder β
inst✝ : DecidableRel fun x x_1 => x < x_1
f✝ : α → β
l✝ : List α
o : Option α
a✝ m : α
f : α → β
a : α
l : List α
⊢ foldl (argAux fun b c => f c < f b) none (l ++ [a]) =
    Option.casesOn (foldl (argAux fun b c => f c < f b) none l) (some a) fun c => if f c < f a then some a else some c
state_after: no goals
Theorem: List.length_cyclicPermutations_cons
File: Mathlib/Data/List/Rotate.lean

tactic: simp [cyclicPermutations_cons]
state_before: α : Type u
l✝ l' : List α
x : α
l : List α
⊢ (x :: l).cyclicPermutations.length = l.length + 1
state_after: no goals
Theorem: Complex.log_inv
File: Mathlib/Analysis/SpecialFunctions/Complex/Log.lean

tactic: rw [log_inv_eq_ite, if_neg hx]
state_before: x : ℂ
hx : x.arg ≠ π
⊢ log x⁻¹ = -log x
state_after: no goals
Theorem: primitiveRoots_zero
File: Mathlib/RingTheory/RootsOfUnity/Basic.lean

tactic: rw [primitiveRoots, nthRoots_zero, Multiset.toFinset_zero, Finset.filter_empty]
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
⊢ primitiveRoots 0 R = ∅
state_after: no goals
Theorem: mul_div_cancel_right
File: Mathlib/Algebra/Group/Basic.lean

tactic: rw [div_eq_mul_inv, mul_inv_cancel_right a b]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a✝ b✝ c d : G
n : ℤ
a b : G
⊢ a * b / b = a
state_after: no goals
Theorem: MeasureTheory.Measure.lintegral_compProd
File: Mathlib/Probability/Kernel/MeasureCompProd.lean

tactic: rw [compProd, kernel.lintegral_compProd _ _ _ hf]
state_before: α : Type u_1
β : Type u_2
mα : MeasurableSpace α
mβ : MeasurableSpace β
μ : Measure α
κ η : ↥(kernel α β)
inst✝¹ : SFinite μ
inst✝ : IsSFiniteKernel κ
f : α × β → ℝ≥0∞
hf : Measurable f
⊢ ∫⁻ (x : α × β), f x ∂μ ⊗ₘ κ = ∫⁻ (a : α), ∫⁻ (b : β), f (a, b) ∂κ a ∂μ
state_after: α : Type u_1
β : Type u_2
mα : MeasurableSpace α
mβ : MeasurableSpace β
μ : Measure α
κ η : ↥(kernel α β)
inst✝¹ : SFinite μ
inst✝ : IsSFiniteKernel κ
f : α × β → ℝ≥0∞
hf : Measurable f
⊢ ∫⁻ (b : α), ∫⁻ (c : β), f (b, c) ∂(kernel.prodMkLeft Unit κ) ((), b) ∂(kernel.const Unit μ) () =
    ∫⁻ (a : α), ∫⁻ (b : β), f (a, b) ∂κ a ∂μ

tactic: simp
state_before: α : Type u_1
β : Type u_2
mα : MeasurableSpace α
mβ : MeasurableSpace β
μ : Measure α
κ η : ↥(kernel α β)
inst✝¹ : SFinite μ
inst✝ : IsSFiniteKernel κ
f : α × β → ℝ≥0∞
hf : Measurable f
⊢ ∫⁻ (b : α), ∫⁻ (c : β), f (b, c) ∂(kernel.prodMkLeft Unit κ) ((), b) ∂(kernel.const Unit μ) () =
    ∫⁻ (a : α), ∫⁻ (b : β), f (a, b) ∂κ a ∂μ
state_after: no goals
Theorem: Polynomial.erase_same
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: simp [coeff_erase]
state_before: R : Type u
a b : R
m n✝ : ℕ
inst✝ : Semiring R
p✝ q p : R[X]
n : ℕ
⊢ (erase n p).coeff n = 0
state_after: no goals
Theorem: Matrix.det_fin_two
File: Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean

tactic: simp only [det_succ_row_zero, det_unique, Fin.default_eq_zero, submatrix_apply,
  Fin.succ_zero_eq_one, Fin.sum_univ_succ, Fin.val_zero, Fin.zero_succAbove, univ_unique,
  Fin.val_succ, Fin.coe_fin_one, Fin.succ_succAbove_zero, sum_singleton]
state_before: m : Type u_1
n : Type u_2
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
A : Matrix (Fin 2) (Fin 2) R
⊢ A.det = A 0 0 * A 1 1 - A 0 1 * A 1 0
state_after: m : Type u_1
n : Type u_2
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
A : Matrix (Fin 2) (Fin 2) R
⊢ (-1) ^ 0 * A 0 0 * A 1 1 + (-1) ^ (0 + 1) * A 0 1 * A 1 0 = A 0 0 * A 1 1 - A 0 1 * A 1 0

tactic: ring
state_before: m : Type u_1
n : Type u_2
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
A : Matrix (Fin 2) (Fin 2) R
⊢ (-1) ^ 0 * A 0 0 * A 1 1 + (-1) ^ (0 + 1) * A 0 1 * A 1 0 = A 0 0 * A 1 1 - A 0 1 * A 1 0
state_after: no goals
Theorem: Filter.le_map_of_right_inverse
File: Mathlib/Order/Filter/Basic.lean

tactic: rw [← @map_id _ g, ← map_congr h₁, ← map_map]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
l : Filter α
mab : α → β
mba : β → α
f : Filter α
g : Filter β
h₁ : mab ∘ mba =ᶠ[g] id
h₂ : Tendsto mba g f
⊢ g ≤ map mab f
state_after: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
l : Filter α
mab : α → β
mba : β → α
f : Filter α
g : Filter β
h₁ : mab ∘ mba =ᶠ[g] id
h₂ : Tendsto mba g f
⊢ map mab (map mba g) ≤ map mab f

tactic: exact map_mono h₂
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
l : Filter α
mab : α → β
mba : β → α
f : Filter α
g : Filter β
h₁ : mab ∘ mba =ᶠ[g] id
h₂ : Tendsto mba g f
⊢ map mab (map mba g) ≤ map mab f
state_after: no goals
Theorem: LinearMap.toMatrix'_id
File: Mathlib/LinearAlgebra/Matrix/ToLin.lean

tactic: ext
state_before: R : Type u_1
inst✝² : CommSemiring R
k : Type u_2
l : Type u_3
m : Type u_4
n : Type u_5
inst✝¹ : DecidableEq n
inst✝ : Fintype n
⊢ toMatrix' id = 1
state_after: case a
R : Type u_1
inst✝² : CommSemiring R
k : Type u_2
l : Type u_3
m : Type u_4
n : Type u_5
inst✝¹ : DecidableEq n
inst✝ : Fintype n
i✝ j✝ : n
⊢ toMatrix' id i✝ j✝ = 1 i✝ j✝

tactic: rw [Matrix.one_apply, LinearMap.toMatrix'_apply, id_apply]
state_before: case a
R : Type u_1
inst✝² : CommSemiring R
k : Type u_2
l : Type u_3
m : Type u_4
n : Type u_5
inst✝¹ : DecidableEq n
inst✝ : Fintype n
i✝ j✝ : n
⊢ toMatrix' id i✝ j✝ = 1 i✝ j✝
state_after: no goals
Theorem: Holor.mul_assoc0
File: Mathlib/Data/Holor.lean

tactic: rw [assocLeft]
state_before: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
inst✝ : Semigroup α
x : Holor α ds₁
y : Holor α ds₂
z : Holor α ds₃
t : HolorIndex (ds₁ ++ ds₂ ++ ds₃)
⊢ (x ⊗ y ⊗ z) t = (x ⊗ (y ⊗ z)).assocLeft t
state_after: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
inst✝ : Semigroup α
x : Holor α ds₁
y : Holor α ds₂
z : Holor α ds₃
t : HolorIndex (ds₁ ++ ds₂ ++ ds₃)
⊢ (x ⊗ y ⊗ z) t = cast ⋯ (x ⊗ (y ⊗ z)) t

tactic: unfold mul
state_before: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
inst✝ : Semigroup α
x : Holor α ds₁
y : Holor α ds₂
z : Holor α ds₃
t : HolorIndex (ds₁ ++ ds₂ ++ ds₃)
⊢ (x ⊗ y ⊗ z) t = cast ⋯ (x ⊗ (y ⊗ z)) t
state_after: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
inst✝ : Semigroup α
x : Holor α ds₁
y : Holor α ds₂
z : Holor α ds₃
t : HolorIndex (ds₁ ++ ds₂ ++ ds₃)
⊢ x t.take.take * y t.take.drop * z t.drop = cast ⋯ (fun t => x t.take * (y t.drop.take * z t.drop.drop)) t

tactic: rw [mul_assoc, ← HolorIndex.take_take, ← HolorIndex.drop_take, ← HolorIndex.drop_drop,
  cast_type]
state_before: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
inst✝ : Semigroup α
x : Holor α ds₁
y : Holor α ds₂
z : Holor α ds₃
t : HolorIndex (ds₁ ++ ds₂ ++ ds₃)
⊢ x t.take.take * y t.take.drop * z t.drop = cast ⋯ (fun t => x t.take * (y t.drop.take * z t.drop.drop)) t
state_after: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
inst✝ : Semigroup α
x : Holor α ds₁
y : Holor α ds₂
z : Holor α ds₃
t : HolorIndex (ds₁ ++ ds₂ ++ ds₃)
⊢ x t.assocRight.take * (y t.assocRight.drop.take * z t.assocRight.drop.drop) =
    (fun t => x (cast ⋯ t).take * (y (cast ⋯ t).drop.take * z (cast ⋯ t).drop.drop)) t

case eq
α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
inst✝ : Semigroup α
x : Holor α ds₁
y : Holor α ds₂
z : Holor α ds₃
t : HolorIndex (ds₁ ++ ds₂ ++ ds₃)
⊢ ds₁ ++ (ds₂ ++ ds₃) = ds₁ ++ ds₂ ++ ds₃

tactic: rw [append_assoc]
state_before: case eq
α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
inst✝ : Semigroup α
x : Holor α ds₁
y : Holor α ds₂
z : Holor α ds₃
t : HolorIndex (ds₁ ++ ds₂ ++ ds₃)
⊢ ds₁ ++ (ds₂ ++ ds₃) = ds₁ ++ ds₂ ++ ds₃
state_after: no goals

tactic: rfl
state_before: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
inst✝ : Semigroup α
x : Holor α ds₁
y : Holor α ds₂
z : Holor α ds₃
t : HolorIndex (ds₁ ++ ds₂ ++ ds₃)
⊢ x t.assocRight.take * (y t.assocRight.drop.take * z t.assocRight.drop.drop) =
    (fun t => x (cast ⋯ t).take * (y (cast ⋯ t).drop.take * z (cast ⋯ t).drop.drop)) t
state_after: no goals
Theorem: Multiset.untrop_sum
File: Mathlib/Algebra/Tropical/BigOperators.lean

tactic: induction' s using Multiset.induction with s x IH
state_before: R : Type u_1
S : Type u_2
inst✝¹ : LinearOrder R
inst✝ : OrderTop R
s : Multiset (Tropical R)
⊢ untrop s.sum = (map untrop s).inf
state_after: case empty
R : Type u_1
S : Type u_2
inst✝¹ : LinearOrder R
inst✝ : OrderTop R
⊢ untrop (sum 0) = (map untrop 0).inf

case cons
R : Type u_1
S : Type u_2
inst✝¹ : LinearOrder R
inst✝ : OrderTop R
s : Tropical R
x : Multiset (Tropical R)
IH : untrop x.sum = (map untrop x).inf
⊢ untrop (s ::ₘ x).sum = (map untrop (s ::ₘ x)).inf

tactic: simp
state_before: case empty
R : Type u_1
S : Type u_2
inst✝¹ : LinearOrder R
inst✝ : OrderTop R
⊢ untrop (sum 0) = (map untrop 0).inf
state_after: no goals

tactic: simp only [sum_cons, ge_iff_le, untrop_add, untrop_le_iff, map_cons, inf_cons, ← IH]
state_before: case cons
R : Type u_1
S : Type u_2
inst✝¹ : LinearOrder R
inst✝ : OrderTop R
s : Tropical R
x : Multiset (Tropical R)
IH : untrop x.sum = (map untrop x).inf
⊢ untrop (s ::ₘ x).sum = (map untrop (s ::ₘ x)).inf
state_after: case cons
R : Type u_1
S : Type u_2
inst✝¹ : LinearOrder R
inst✝ : OrderTop R
s : Tropical R
x : Multiset (Tropical R)
IH : untrop x.sum = (map untrop x).inf
⊢ min (untrop s) (untrop x.sum) = untrop s ⊓ untrop x.sum

tactic: rfl
state_before: case cons
R : Type u_1
S : Type u_2
inst✝¹ : LinearOrder R
inst✝ : OrderTop R
s : Tropical R
x : Multiset (Tropical R)
IH : untrop x.sum = (map untrop x).inf
⊢ min (untrop s) (untrop x.sum) = untrop s ⊓ untrop x.sum
state_after: no goals
Theorem: Submodule.comap_map_eq_self
File: Mathlib/LinearAlgebra/Span.lean

tactic: rw [Submodule.comap_map_eq, sup_of_le_left h]
state_before: R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁸ : Semiring R
inst✝⁷ : Semiring R₂
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
τ₁₂ : R →+* R₂
inst✝² : RingHomSurjective τ₁₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F τ₁₂ M M₂
f : F
p : Submodule R M
h : LinearMap.ker f ≤ p
⊢ comap f (map f p) = p
state_after: no goals
Theorem: AffineSubspace.nonempty_iff_ne_bot
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: rw [nonempty_iff_ne_empty]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
Q : AffineSubspace k P
⊢ (↑Q).Nonempty ↔ Q ≠ ⊥
state_after: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
Q : AffineSubspace k P
⊢ ↑Q ≠ ∅ ↔ Q ≠ ⊥

tactic: exact not_congr Q.coe_eq_bot_iff
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
Q : AffineSubspace k P
⊢ ↑Q ≠ ∅ ↔ Q ≠ ⊥
state_after: no goals
Theorem: Polynomial.eval₂_one_cyclotomic_prime
File: Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean

tactic: simp
state_before: R : Type u_1
S : Type u_2
inst✝² : CommRing R
inst✝¹ : Semiring S
f : R →+* S
p : ℕ
inst✝ : Fact (Nat.Prime p)
⊢ eval₂ f 1 (cyclotomic p R) = ↑p
state_after: no goals
Theorem: Filter.mem_iSup
File: Mathlib/Order/Filter/Basic.lean

tactic: simp only [← Filter.mem_sets, iSup_sets_eq, iff_self_iff, mem_iInter]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
f✝ g : Filter α
s t x : Set α
f : ι → Filter α
⊢ x ∈ iSup f ↔ ∀ (i : ι), x ∈ f i
state_after: no goals
Theorem: SubMulAction.stabilizer_of_subMul
File: Mathlib/GroupTheory/GroupAction/SubMulAction.lean

tactic: rw [← Subgroup.toSubmonoid_eq]
state_before: S : Type u'
T : Type u''
R : Type u
M : Type v
inst✝¹ : Group R
inst✝ : MulAction R M
p : SubMulAction R M
m : ↥p
⊢ MulAction.stabilizer R m = MulAction.stabilizer R ↑m
state_after: S : Type u'
T : Type u''
R : Type u
M : Type v
inst✝¹ : Group R
inst✝ : MulAction R M
p : SubMulAction R M
m : ↥p
⊢ (MulAction.stabilizer R m).toSubmonoid = (MulAction.stabilizer R ↑m).toSubmonoid

tactic: exact stabilizer_of_subMul.submonoid m
state_before: S : Type u'
T : Type u''
R : Type u
M : Type v
inst✝¹ : Group R
inst✝ : MulAction R M
p : SubMulAction R M
m : ↥p
⊢ (MulAction.stabilizer R m).toSubmonoid = (MulAction.stabilizer R ↑m).toSubmonoid
state_after: no goals
Theorem: Polynomial.div_tendsto_leadingCoeff_div_of_degree_eq
File: Mathlib/Analysis/SpecialFunctions/Polynomials.lean

tactic: refine (isEquivalent_atTop_div P Q).symm.tendsto_nhds ?_
state_before: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : P.degree = Q.degree
⊢ Tendsto (fun x => eval x P / eval x Q) atTop (𝓝 (P.leadingCoeff / Q.leadingCoeff))
state_after: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : P.degree = Q.degree
⊢ Tendsto (fun x => P.leadingCoeff / Q.leadingCoeff * x ^ (↑P.natDegree - ↑Q.natDegree)) atTop
    (𝓝 (P.leadingCoeff / Q.leadingCoeff))

tactic: rw [show (P.natDegree : ℤ) = Q.natDegree by simp [hdeg, natDegree]]
state_before: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : P.degree = Q.degree
⊢ Tendsto (fun x => P.leadingCoeff / Q.leadingCoeff * x ^ (↑P.natDegree - ↑Q.natDegree)) atTop
    (𝓝 (P.leadingCoeff / Q.leadingCoeff))
state_after: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : P.degree = Q.degree
⊢ Tendsto (fun x => P.leadingCoeff / Q.leadingCoeff * x ^ (↑Q.natDegree - ↑Q.natDegree)) atTop
    (𝓝 (P.leadingCoeff / Q.leadingCoeff))

tactic: simp [tendsto_const_nhds]
state_before: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : P.degree = Q.degree
⊢ Tendsto (fun x => P.leadingCoeff / Q.leadingCoeff * x ^ (↑Q.natDegree - ↑Q.natDegree)) atTop
    (𝓝 (P.leadingCoeff / Q.leadingCoeff))
state_after: no goals

tactic: simp [hdeg, natDegree]
state_before: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : P.degree = Q.degree
⊢ ↑P.natDegree = ↑Q.natDegree
state_after: no goals
Theorem: Function.fixedPoints_id
File: Mathlib/Dynamics/FixedPoints/Basic.lean

tactic: simpa using isFixedPt_id _
state_before: α : Type u
β : Type v
f fa g : α → α
x y : α
fb : β → β
m n k : ℕ
e : Perm α
x✝ : α
⊢ x✝ ∈ fixedPoints id ↔ x✝ ∈ Set.univ
state_after: no goals
Theorem: Ideal.isCoprime_iff_codisjoint
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: rw [IsCoprime, codisjoint_iff]
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
⊢ IsCoprime I J ↔ Codisjoint I J
state_after: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
⊢ (∃ a b, a * I + b * J = 1) ↔ I ⊔ J = ⊤

tactic: constructor
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
⊢ (∃ a b, a * I + b * J = 1) ↔ I ⊔ J = ⊤
state_after: case mp
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
⊢ (∃ a b, a * I + b * J = 1) → I ⊔ J = ⊤

case mpr
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
⊢ I ⊔ J = ⊤ → ∃ a b, a * I + b * J = 1

tactic: rintro ⟨x, y, hxy⟩
state_before: case mp
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
⊢ (∃ a b, a * I + b * J = 1) → I ⊔ J = ⊤
state_after: case mp.intro.intro
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L x y : Ideal R
hxy : x * I + y * J = 1
⊢ I ⊔ J = ⊤

tactic: rw [eq_top_iff_one]
state_before: case mp.intro.intro
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L x y : Ideal R
hxy : x * I + y * J = 1
⊢ I ⊔ J = ⊤
state_after: case mp.intro.intro
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L x y : Ideal R
hxy : x * I + y * J = 1
⊢ 1 ∈ I ⊔ J

tactic: apply (show x * I + y * J ≤ I ⊔ J from
  sup_le (mul_le_left.trans le_sup_left) (mul_le_left.trans le_sup_right))
state_before: case mp.intro.intro
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L x y : Ideal R
hxy : x * I + y * J = 1
⊢ 1 ∈ I ⊔ J
state_after: case mp.intro.intro.a
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L x y : Ideal R
hxy : x * I + y * J = 1
⊢ 1 ∈ x * I + y * J

tactic: rw [hxy]
state_before: case mp.intro.intro.a
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L x y : Ideal R
hxy : x * I + y * J = 1
⊢ 1 ∈ x * I + y * J
state_after: case mp.intro.intro.a
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L x y : Ideal R
hxy : x * I + y * J = 1
⊢ 1 ∈ 1

tactic: simp only [one_eq_top, Submodule.mem_top]
state_before: case mp.intro.intro.a
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L x y : Ideal R
hxy : x * I + y * J = 1
⊢ 1 ∈ 1
state_after: no goals

tactic: intro h
state_before: case mpr
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
⊢ I ⊔ J = ⊤ → ∃ a b, a * I + b * J = 1
state_after: case mpr
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
h : I ⊔ J = ⊤
⊢ ∃ a b, a * I + b * J = 1

tactic: refine ⟨1, 1, ?_⟩
state_before: case mpr
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
h : I ⊔ J = ⊤
⊢ ∃ a b, a * I + b * J = 1
state_after: case mpr
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
h : I ⊔ J = ⊤
⊢ 1 * I + 1 * J = 1

tactic: simpa only [one_eq_top, top_mul, Submodule.add_eq_sup]
state_before: case mpr
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
h : I ⊔ J = ⊤
⊢ 1 * I + 1 * J = 1
state_after: no goals
Theorem: ProbabilityTheory.geometricPMFReal_nonneg
File: Mathlib/Probability/Distributions/Geometric.lean

tactic: rw [geometricPMFReal]
state_before: p : ℝ
n : ℕ
hp_pos : 0 < p
hp_le_one : p ≤ 1
⊢ 0 ≤ geometricPMFReal p n
state_after: p : ℝ
n : ℕ
hp_pos : 0 < p
hp_le_one : p ≤ 1
⊢ 0 ≤ (1 - p) ^ n * p

tactic: have : 0 ≤ 1 - p := sub_nonneg.mpr hp_le_one
state_before: p : ℝ
n : ℕ
hp_pos : 0 < p
hp_le_one : p ≤ 1
⊢ 0 ≤ (1 - p) ^ n * p
state_after: p : ℝ
n : ℕ
hp_pos : 0 < p
hp_le_one : p ≤ 1
this : 0 ≤ 1 - p
⊢ 0 ≤ (1 - p) ^ n * p

tactic: positivity
state_before: p : ℝ
n : ℕ
hp_pos : 0 < p
hp_le_one : p ≤ 1
this : 0 ≤ 1 - p
⊢ 0 ≤ (1 - p) ^ n * p
state_after: no goals
Theorem: Polynomial.adjoin_rootSet_eq_range
File: Mathlib/Algebra/Polynomial/Splits.lean

tactic: rw [← image_rootSet h f, Algebra.adjoin_image, ← Algebra.map_top]
state_before: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝⁵ : CommRing R
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field F
i : K →+* L
inst✝¹ : Algebra R K
inst✝ : Algebra R L
p : R[X]
h : Splits (algebraMap R K) p
f : K →ₐ[R] L
⊢ Algebra.adjoin R (p.rootSet L) = f.range ↔ Algebra.adjoin R (p.rootSet K) = ⊤
state_after: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝⁵ : CommRing R
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field F
i : K →+* L
inst✝¹ : Algebra R K
inst✝ : Algebra R L
p : R[X]
h : Splits (algebraMap R K) p
f : K →ₐ[R] L
⊢ Subalgebra.map f (Algebra.adjoin R (p.rootSet K)) = Subalgebra.map f ⊤ ↔ Algebra.adjoin R (p.rootSet K) = ⊤

tactic: exact (Subalgebra.map_injective f.toRingHom.injective).eq_iff
state_before: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝⁵ : CommRing R
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field F
i : K →+* L
inst✝¹ : Algebra R K
inst✝ : Algebra R L
p : R[X]
h : Splits (algebraMap R K) p
f : K →ₐ[R] L
⊢ Subalgebra.map f (Algebra.adjoin R (p.rootSet K)) = Subalgebra.map f ⊤ ↔ Algebra.adjoin R (p.rootSet K) = ⊤
state_after: no goals
Theorem: QuotientGroup.subgroup_eq_top_of_subsingleton
File: Mathlib/GroupTheory/QuotientGroup.lean

tactic: have this : 1⁻¹ * x ∈ H := QuotientGroup.eq.1 (Subsingleton.elim _ _)
state_before: G : Type u
inst✝² : Group G
N : Subgroup G
nN : N.Normal
H✝ : Type v
inst✝¹ : Group H✝
M : Type x
inst✝ : Monoid M
φ : G →* H✝
H : Subgroup G
h : Subsingleton (G ⧸ H)
x : G
x✝ : x ∈ ⊤
⊢ x ∈ H
state_after: G : Type u
inst✝² : Group G
N : Subgroup G
nN : N.Normal
H✝ : Type v
inst✝¹ : Group H✝
M : Type x
inst✝ : Monoid M
φ : G →* H✝
H : Subgroup G
h : Subsingleton (G ⧸ H)
x : G
x✝ : x ∈ ⊤
this : 1⁻¹ * x ∈ H
⊢ x ∈ H

tactic: rwa [inv_one, one_mul] at this
state_before: G : Type u
inst✝² : Group G
N : Subgroup G
nN : N.Normal
H✝ : Type v
inst✝¹ : Group H✝
M : Type x
inst✝ : Monoid M
φ : G →* H✝
H : Subgroup G
h : Subsingleton (G ⧸ H)
x : G
x✝ : x ∈ ⊤
this : 1⁻¹ * x ∈ H
⊢ x ∈ H
state_after: no goals
Theorem: Real.sin_pos_of_pos_of_le_two
File: Mathlib/Data/Complex/Exponential.lean

tactic: norm_num
state_before: x : ℝ
hx0 : 0 < x
hx : x ≤ 2
⊢ 0 < 2
state_after: no goals

tactic: simpa
state_before: x : ℝ
hx0 : 0 < x
hx : x ≤ 2
⊢ x ≤ 1 * 2
state_after: no goals

tactic: norm_num
state_before: x : ℝ
hx0 : 0 < x
hx : x ≤ 2
this : x / 2 ≤ 1
⊢ 0 < 2
state_after: no goals

tactic: rwa [_root_.abs_of_nonneg (le_of_lt (half_pos hx0))]
state_before: x : ℝ
hx0 : 0 < x
hx : x ≤ 2
this : x / 2 ≤ 1
⊢ |x / 2| ≤ 1
state_after: no goals

tactic: rw [← sin_two_mul, two_mul, add_halves]
state_before: x : ℝ
hx0 : 0 < x
hx : x ≤ 2
this : x / 2 ≤ 1
⊢ 2 * sin (x / 2) * cos (x / 2) = sin x
state_after: no goals