1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: AddLECancellable.lt_tsub_of_add_lt_left
File: Mathlib/Algebra/Order/Sub/Defs.lean

tactic: rwa [add_comm]
state_before: α : Type u_1
β : Type u_2
inst✝³ : PartialOrder α
inst✝² : AddCommSemigroup α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
ha : AddLECancellable a
h : a + c < b
⊢ c + a < b
state_after: no goals
Theorem: rank_real_of_complex
File: Mathlib/Data/Complex/FiniteDimensional.lean

tactic: rw [← lift_rank_mul_lift_rank ℝ ℂ E, Complex.rank_real_complex']
state_before: E : Type u_1
inst✝¹ : AddCommGroup E
inst✝ : Module ℂ E
⊢ Cardinal.lift.{?u.4397, u_1} (Module.rank ℝ E) = Cardinal.lift.{?u.4397, u_1} (2 * Module.rank ℂ E)
state_after: E : Type u_1
inst✝¹ : AddCommGroup E
inst✝ : Module ℂ E
⊢ 2 * Cardinal.lift.{0, u_1} (Module.rank ℂ E) = Cardinal.lift.{0, u_1} (2 * Module.rank ℂ E)

tactic: simp only [Cardinal.lift_id']
state_before: E : Type u_1
inst✝¹ : AddCommGroup E
inst✝ : Module ℂ E
⊢ 2 * Cardinal.lift.{0, u_1} (Module.rank ℂ E) = Cardinal.lift.{0, u_1} (2 * Module.rank ℂ E)
state_after: no goals
Theorem: Nat.ModEq.pow_totient
File: Mathlib/FieldTheory/Finite/Basic.lean

tactic: rw [← ZMod.eq_iff_modEq_nat]
state_before: K : Type u_1
R : Type u_2
x n : ℕ
h : x.Coprime n
⊢ x ^ φ n ≡ 1 [MOD n]
state_after: K : Type u_1
R : Type u_2
x n : ℕ
h : x.Coprime n
⊢ ↑(x ^ φ n) = ↑1

tactic: let x' : Units (ZMod n) := ZMod.unitOfCoprime _ h
state_before: K : Type u_1
R : Type u_2
x n : ℕ
h : x.Coprime n
⊢ ↑(x ^ φ n) = ↑1
state_after: K : Type u_1
R : Type u_2
x n : ℕ
h : x.Coprime n
x' : (ZMod n)ˣ := unitOfCoprime x h
⊢ ↑(x ^ φ n) = ↑1

tactic: have := ZMod.pow_totient x'
state_before: K : Type u_1
R : Type u_2
x n : ℕ
h : x.Coprime n
x' : (ZMod n)ˣ := unitOfCoprime x h
⊢ ↑(x ^ φ n) = ↑1
state_after: K : Type u_1
R : Type u_2
x n : ℕ
h : x.Coprime n
x' : (ZMod n)ˣ := unitOfCoprime x h
this : x' ^ φ n = 1
⊢ ↑(x ^ φ n) = ↑1

tactic: apply_fun ((fun (x : Units (ZMod n)) => (x : ZMod n)) : Units (ZMod n) → ZMod n) at this
state_before: K : Type u_1
R : Type u_2
x n : ℕ
h : x.Coprime n
x' : (ZMod n)ˣ := unitOfCoprime x h
this : x' ^ φ n = 1
⊢ ↑(x ^ φ n) = ↑1
state_after: K : Type u_1
R : Type u_2
x n : ℕ
h : x.Coprime n
x' : (ZMod n)ˣ := unitOfCoprime x h
this : ↑(x' ^ φ n) = ↑1
⊢ ↑(x ^ φ n) = ↑1

tactic: simpa only [Nat.succ_eq_add_one, Nat.cast_pow, Units.val_one, Nat.cast_one,
  coe_unitOfCoprime, Units.val_pow_eq_pow_val]
state_before: K : Type u_1
R : Type u_2
x n : ℕ
h : x.Coprime n
x' : (ZMod n)ˣ := unitOfCoprime x h
this : ↑(x' ^ φ n) = ↑1
⊢ ↑(x ^ φ n) = ↑1
state_after: no goals
Theorem: WeierstrassCurve.baseChange_φ
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean

tactic: rw [← map_φ, map_baseChange]
state_before: R : Type r
S : Type s
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing S
W : WeierstrassCurve R
inst✝⁸ : Algebra R S
A : Type u
inst✝⁷ : CommRing A
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra S A
inst✝⁴ : IsScalarTower R S A
B : Type v
inst✝³ : CommRing B
inst✝² : Algebra R B
inst✝¹ : Algebra S B
inst✝ : IsScalarTower R S B
f : A →ₐ[S] B
n : ℤ
⊢ (W.baseChange B).φ n = Polynomial.map (mapRingHom ↑f) ((W.baseChange A).φ n)
state_after: no goals
Theorem: ZMod.χ₈'_int_eq_χ₄_mul_χ₈
File: Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean

tactic: rw [← @cast_intCast 8 (ZMod 4) _ 4 _ (by omega) a]
state_before: a : ℤ
⊢ χ₈' ↑a = χ₄ ↑a * χ₈ ↑a
state_after: a : ℤ
⊢ χ₈' ↑a = χ₄ (↑a).cast * χ₈ ↑a

tactic: exact χ₈'_eq_χ₄_mul_χ₈ a
state_before: a : ℤ
⊢ χ₈' ↑a = χ₄ (↑a).cast * χ₈ ↑a
state_after: no goals

tactic: omega
state_before: a : ℤ
⊢ 4 ∣ 8
state_after: no goals
Theorem: HomogeneousLocalization.mk_eq_zero_of_den
File: Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean

tactic: have := subsingleton 𝒜 (h ▸ f.den_mem)
state_before: ι : Type u_1
R : Type u_2
A : Type u_3
inst✝⁵ : AddCommMonoid ι
inst✝⁴ : DecidableEq ι
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ι → Submodule R A
inst✝ : GradedAlgebra 𝒜
x : Submonoid A
f : NumDenSameDeg 𝒜 x
h : f.den = 0
⊢ mk f = 0
state_after: ι : Type u_1
R : Type u_2
A : Type u_3
inst✝⁵ : AddCommMonoid ι
inst✝⁴ : DecidableEq ι
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ι → Submodule R A
inst✝ : GradedAlgebra 𝒜
x : Submonoid A
f : NumDenSameDeg 𝒜 x
h : f.den = 0
this : Subsingleton (HomogeneousLocalization 𝒜 x)
⊢ mk f = 0

tactic: exact Subsingleton.elim _ _
state_before: ι : Type u_1
R : Type u_2
A : Type u_3
inst✝⁵ : AddCommMonoid ι
inst✝⁴ : DecidableEq ι
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ι → Submodule R A
inst✝ : GradedAlgebra 𝒜
x : Submonoid A
f : NumDenSameDeg 𝒜 x
h : f.den = 0
this : Subsingleton (HomogeneousLocalization 𝒜 x)
⊢ mk f = 0
state_after: no goals
Theorem: CategoryTheory.ProjectiveResolution.ofComplex_d_1_0
File: Mathlib/CategoryTheory/Abelian/ProjectiveResolution.lean

tactic: simp [ofComplex]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Abelian C
inst✝¹ : HasProjectiveResolutions C
inst✝ : EnoughProjectives C
Z : C
⊢ (ofComplex Z).d 1 0 = d (Projective.π Z)
state_after: no goals
Theorem: Finset.biUnion_nonempty
File: Mathlib/Data/Finset/Union.lean

tactic: simp only [Finset.Nonempty, mem_biUnion]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s s₁ s₂ : Finset α
t t₁ t₂ : α → Finset β
inst✝ : DecidableEq β
⊢ (s.biUnion t).Nonempty ↔ ∃ x ∈ s, (t x).Nonempty
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
s s₁ s₂ : Finset α
t t₁ t₂ : α → Finset β
inst✝ : DecidableEq β
⊢ (∃ x, ∃ a ∈ s, x ∈ t a) ↔ ∃ x ∈ s, ∃ x_1, x_1 ∈ t x

tactic: rw [exists_swap]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s s₁ s₂ : Finset α
t t₁ t₂ : α → Finset β
inst✝ : DecidableEq β
⊢ (∃ x, ∃ a ∈ s, x ∈ t a) ↔ ∃ x ∈ s, ∃ x_1, x_1 ∈ t x
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
s s₁ s₂ : Finset α
t t₁ t₂ : α → Finset β
inst✝ : DecidableEq β
⊢ (∃ y x, y ∈ s ∧ x ∈ t y) ↔ ∃ x ∈ s, ∃ x_1, x_1 ∈ t x

tactic: simp [exists_and_left]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s s₁ s₂ : Finset α
t t₁ t₂ : α → Finset β
inst✝ : DecidableEq β
⊢ (∃ y x, y ∈ s ∧ x ∈ t y) ↔ ∃ x ∈ s, ∃ x_1, x_1 ∈ t x
state_after: no goals
Theorem: AddSubmonoid.one_eq_closure
File: Mathlib/Algebra/Group/Submonoid/Pointwise.lean

tactic: rw [closure_singleton_eq, one_eq_mrange]
state_before: α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝² : Monoid M
inst✝¹ : AddMonoid A
inst✝ : AddMonoidWithOne R
⊢ 1 = closure {1}
state_after: α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝² : Monoid M
inst✝¹ : AddMonoid A
inst✝ : AddMonoidWithOne R
⊢ AddMonoidHom.mrange (Nat.castAddMonoidHom R) = AddMonoidHom.mrange ((multiplesHom R) 1)

tactic: congr 1
state_before: α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝² : Monoid M
inst✝¹ : AddMonoid A
inst✝ : AddMonoidWithOne R
⊢ AddMonoidHom.mrange (Nat.castAddMonoidHom R) = AddMonoidHom.mrange ((multiplesHom R) 1)
state_after: case e_f
α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝² : Monoid M
inst✝¹ : AddMonoid A
inst✝ : AddMonoidWithOne R
⊢ Nat.castAddMonoidHom R = (multiplesHom R) 1

tactic: ext
state_before: case e_f
α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝² : Monoid M
inst✝¹ : AddMonoid A
inst✝ : AddMonoidWithOne R
⊢ Nat.castAddMonoidHom R = (multiplesHom R) 1
state_after: case e_f.a
α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝² : Monoid M
inst✝¹ : AddMonoid A
inst✝ : AddMonoidWithOne R
⊢ (Nat.castAddMonoidHom R) 1 = ((multiplesHom R) 1) 1

tactic: simp
state_before: case e_f.a
α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝² : Monoid M
inst✝¹ : AddMonoid A
inst✝ : AddMonoidWithOne R
⊢ (Nat.castAddMonoidHom R) 1 = ((multiplesHom R) 1) 1
state_after: no goals
Theorem: Cardinal.range_natCast
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: simp only [mem_Iio, mem_range, eq_comm, lt_aleph0]
state_before: α β : Type u
x : Cardinal.{u_1}
⊢ x ∈ range Nat.cast ↔ x ∈ Iio ℵ₀
state_after: no goals
Theorem: Monoid.CoprodI.lift_mrange_le
File: Mathlib/GroupTheory/CoprodI.lean

tactic: simp [mrange_eq_iSup]
state_before: ι : Type u_1
M : ι → Type u_2
inst✝² : (i : ι) → Monoid (M i)
N✝ : Type u_3
inst✝¹ : Monoid N✝
N : Type u_4
inst✝ : Monoid N
f : (i : ι) → M i →* N
s : Submonoid N
⊢ MonoidHom.mrange (lift f) ≤ s ↔ ∀ (i : ι), MonoidHom.mrange (f i) ≤ s
state_after: no goals
Theorem: WeierstrassCurve.map_c₆
File: Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean

tactic: simp only [c₆, map_b₂, map_b₄, map_b₆]
state_before: R : Type u
inst✝¹ : CommRing R
W : WeierstrassCurve R
A : Type v
inst✝ : CommRing A
φ : R →+* A
⊢ (W.map φ).c₆ = φ W.c₆
state_after: R : Type u
inst✝¹ : CommRing R
W : WeierstrassCurve R
A : Type v
inst✝ : CommRing A
φ : R →+* A
⊢ -φ W.b₂ ^ 3 + 36 * φ W.b₂ * φ W.b₄ - 216 * φ W.b₆ = φ (-W.b₂ ^ 3 + 36 * W.b₂ * W.b₄ - 216 * W.b₆)

tactic: map_simp
state_before: R : Type u
inst✝¹ : CommRing R
W : WeierstrassCurve R
A : Type v
inst✝ : CommRing A
φ : R →+* A
⊢ -φ W.b₂ ^ 3 + 36 * φ W.b₂ * φ W.b₄ - 216 * φ W.b₆ = φ (-W.b₂ ^ 3 + 36 * W.b₂ * W.b₄ - 216 * W.b₆)
state_after: no goals
Theorem: CategoryTheory.FreeBicategory.normalizeAux_nil_comp
File: Mathlib/CategoryTheory/Bicategory/Coherence.lean

tactic: induction g generalizing a with
| id => rfl
| of => rfl
| comp g _ ihf ihg => erw [ihg (f.comp g), ihf f, ihg g, comp_assoc]
state_before: B : Type u
inst✝ : Quiver B
a b c : B
f : Hom a b
g : Hom b c
⊢ normalizeAux nil (f.comp g) = (normalizeAux nil f).comp (normalizeAux nil g)
state_after: no goals

tactic: rfl
state_before: case id
B : Type u
inst✝ : Quiver B
b c a✝ a : B
f : Hom a a✝
⊢ normalizeAux nil (f.comp (Hom.id a✝)) = (normalizeAux nil f).comp (normalizeAux nil (Hom.id a✝))
state_after: no goals

tactic: rfl
state_before: case of
B : Type u
inst✝ : Quiver B
b c a✝ b✝ : B
f✝ : a✝ ⟶ b✝
a : B
f : Hom a a✝
⊢ normalizeAux nil (f.comp (Hom.of f✝)) = (normalizeAux nil f).comp (normalizeAux nil (Hom.of f✝))
state_after: no goals

tactic: erw [ihg (f.comp g), ihf f, ihg g, comp_assoc]
state_before: case comp
B : Type u
inst✝ : Quiver B
b c a✝ b✝ c✝ : B
g : Hom a✝ b✝
g✝ : Hom b✝ c✝
ihf : ∀ {a : B} (f : Hom a a✝), normalizeAux nil (f.comp g) = (normalizeAux nil f).comp (normalizeAux nil g)
ihg : ∀ {a : B} (f : Hom a b✝), normalizeAux nil (f.comp g✝) = (normalizeAux nil f).comp (normalizeAux nil g✝)
a : B
f : Hom a a✝
⊢ normalizeAux nil (f.comp (g.comp g✝)) = (normalizeAux nil f).comp (normalizeAux nil (g.comp g✝))
state_after: no goals
Theorem: Nat.sub_add_sub_cancel
File: Mathlib/Data/Nat/Defs.lean

tactic: omega
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
hab : b ≤ a
hcb : c ≤ b
⊢ a - b + (b - c) = a - c
state_after: no goals
Theorem: HurwitzKernelBounds.f_le_g_nat
File: Mathlib/NumberTheory/ModularForms/JacobiTheta/Bounds.lean

tactic: rw [f_nat, norm_of_nonneg (by positivity)]
state_before: k : ℕ
a t : ℝ
ha : 0 ≤ a
ht : 0 < t
n : ℕ
⊢ ‖f_nat k a t n‖ ≤ g_nat k a t n
state_after: k : ℕ
a t : ℝ
ha : 0 ≤ a
ht : 0 < t
n : ℕ
⊢ (↑n + a) ^ k * rexp (-π * (↑n + a) ^ 2 * t) ≤ g_nat k a t n

tactic: refine mul_le_mul_of_nonneg_left ?_ (by positivity)
state_before: k : ℕ
a t : ℝ
ha : 0 ≤ a
ht : 0 < t
n : ℕ
⊢ (↑n + a) ^ k * rexp (-π * (↑n + a) ^ 2 * t) ≤ g_nat k a t n
state_after: k : ℕ
a t : ℝ
ha : 0 ≤ a
ht : 0 < t
n : ℕ
⊢ rexp (-π * (↑n + a) ^ 2 * t) ≤ rexp (-π * (↑n + a ^ 2) * t)

tactic: rw [Real.exp_le_exp, mul_le_mul_right ht,
  mul_le_mul_left_of_neg (neg_lt_zero.mpr pi_pos), ← sub_nonneg]
state_before: k : ℕ
a t : ℝ
ha : 0 ≤ a
ht : 0 < t
n : ℕ
⊢ rexp (-π * (↑n + a) ^ 2 * t) ≤ rexp (-π * (↑n + a ^ 2) * t)
state_after: k : ℕ
a t : ℝ
ha : 0 ≤ a
ht : 0 < t
n : ℕ
⊢ 0 ≤ (↑n + a) ^ 2 - (↑n + a ^ 2)

tactic: have u : (n : ℝ) ≤ (n : ℝ) ^ 2 := by
  simpa only [← Nat.cast_pow, Nat.cast_le] using Nat.le_self_pow two_ne_zero _
state_before: k : ℕ
a t : ℝ
ha : 0 ≤ a
ht : 0 < t
n : ℕ
⊢ 0 ≤ (↑n + a) ^ 2 - (↑n + a ^ 2)
state_after: k : ℕ
a t : ℝ
ha : 0 ≤ a
ht : 0 < t
n : ℕ
u : ↑n ≤ ↑n ^ 2
⊢ 0 ≤ (↑n + a) ^ 2 - (↑n + a ^ 2)

tactic: convert add_nonneg (sub_nonneg.mpr u) (by positivity : 0 ≤ 2 * n * a) using 1
state_before: k : ℕ
a t : ℝ
ha : 0 ≤ a
ht : 0 < t
n : ℕ
u : ↑n ≤ ↑n ^ 2
⊢ 0 ≤ (↑n + a) ^ 2 - (↑n + a ^ 2)
state_after: case h.e'_4
k : ℕ
a t : ℝ
ha : 0 ≤ a
ht : 0 < t
n : ℕ
u : ↑n ≤ ↑n ^ 2
⊢ (↑n + a) ^ 2 - (↑n + a ^ 2) = ↑n ^ 2 - ↑n + 2 * ↑n * a

tactic: ring
state_before: case h.e'_4
k : ℕ
a t : ℝ
ha : 0 ≤ a
ht : 0 < t
n : ℕ
u : ↑n ≤ ↑n ^ 2
⊢ (↑n + a) ^ 2 - (↑n + a ^ 2) = ↑n ^ 2 - ↑n + 2 * ↑n * a
state_after: no goals

tactic: positivity
state_before: k : ℕ
a t : ℝ
ha : 0 ≤ a
ht : 0 < t
n : ℕ
⊢ 0 ≤ (↑n + a) ^ k * rexp (-π * (↑n + a) ^ 2 * t)
state_after: no goals

tactic: positivity
state_before: k : ℕ
a t : ℝ
ha : 0 ≤ a
ht : 0 < t
n : ℕ
⊢ 0 ≤ (↑n + a) ^ k
state_after: no goals

tactic: simpa only [← Nat.cast_pow, Nat.cast_le] using Nat.le_self_pow two_ne_zero _
state_before: k : ℕ
a t : ℝ
ha : 0 ≤ a
ht : 0 < t
n : ℕ
⊢ ↑n ≤ ↑n ^ 2
state_after: no goals

tactic: positivity
state_before: k : ℕ
a t : ℝ
ha : 0 ≤ a
ht : 0 < t
n : ℕ
u : ↑n ≤ ↑n ^ 2
⊢ 0 ≤ 2 * ↑n * a
state_after: no goals
Theorem: ProbabilityTheory.setLIntegral_condKernel_univ_left
File: Mathlib/Probability/Kernel/Disintegration/Integral.lean

tactic: rw [← setLIntegral_condKernel hf a MeasurableSet.univ ht]
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
inst✝¹ : CountableOrCountablyGenerated α β
κ : ↥(kernel α (β × Ω))
inst✝ : IsFiniteKernel κ
f : β × Ω → ℝ≥0∞
hf : Measurable f
a : α
t : Set Ω
ht : MeasurableSet t
⊢ ∫⁻ (b : β), ∫⁻ (ω : Ω) in t, f (b, ω) ∂(kernel.condKernel κ) (a, b) ∂(kernel.fst κ) a =
    ∫⁻ (x : β × Ω) in Set.univ ×ˢ t, f x ∂κ a
state_after: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
inst✝¹ : CountableOrCountablyGenerated α β
κ : ↥(kernel α (β × Ω))
inst✝ : IsFiniteKernel κ
f : β × Ω → ℝ≥0∞
hf : Measurable f
a : α
t : Set Ω
ht : MeasurableSet t
⊢ ∫⁻ (b : β), ∫⁻ (ω : Ω) in t, f (b, ω) ∂(kernel.condKernel κ) (a, b) ∂(kernel.fst κ) a =
    ∫⁻ (b : β) in Set.univ, ∫⁻ (ω : Ω) in t, f (b, ω) ∂(kernel.condKernel κ) (a, b) ∂(kernel.fst κ) a

tactic: simp_rw [Measure.restrict_univ]
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
inst✝¹ : CountableOrCountablyGenerated α β
κ : ↥(kernel α (β × Ω))
inst✝ : IsFiniteKernel κ
f : β × Ω → ℝ≥0∞
hf : Measurable f
a : α
t : Set Ω
ht : MeasurableSet t
⊢ ∫⁻ (b : β), ∫⁻ (ω : Ω) in t, f (b, ω) ∂(kernel.condKernel κ) (a, b) ∂(kernel.fst κ) a =
    ∫⁻ (b : β) in Set.univ, ∫⁻ (ω : Ω) in t, f (b, ω) ∂(kernel.condKernel κ) (a, b) ∂(kernel.fst κ) a
state_after: no goals
Theorem: NNReal.le_iInf_mul
File: Mathlib/Data/NNReal/Basic.lean

tactic: rw [iInf_mul]
state_before: ι : Sort u_1
f : ι → ℝ≥0
inst✝ : Nonempty ι
a : ℝ≥0
g : ι → ℝ≥0
h : ℝ≥0
H : ∀ (i : ι), a ≤ g i * h
⊢ a ≤ iInf g * h
state_after: ι : Sort u_1
f : ι → ℝ≥0
inst✝ : Nonempty ι
a : ℝ≥0
g : ι → ℝ≥0
h : ℝ≥0
H : ∀ (i : ι), a ≤ g i * h
⊢ a ≤ ⨅ i, g i * h

tactic: exact le_ciInf H
state_before: ι : Sort u_1
f : ι → ℝ≥0
inst✝ : Nonempty ι
a : ℝ≥0
g : ι → ℝ≥0
h : ℝ≥0
H : ∀ (i : ι), a ≤ g i * h
⊢ a ≤ ⨅ i, g i * h
state_after: no goals
Theorem: List.disjoint_cons_left
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: simp [singleton_disjoint]
state_before: α✝ : Type u_1
a : α✝
l₁ l₂ : List α✝
⊢ [a].Disjoint l₂ ∧ l₁.Disjoint l₂ ↔ ¬a ∈ l₂ ∧ l₁.Disjoint l₂
state_after: no goals
Theorem: Asymptotics.isLittleO_neg_right
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp only [IsLittleO_def]
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
⊢ (f =o[l] fun x => -g' x) ↔ f =o[l] g'
state_after: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
⊢ (∀ ⦃c : ℝ⦄, 0 < c → IsBigOWith c l f fun x => -g' x) ↔ ∀ ⦃c : ℝ⦄, 0 < c → IsBigOWith c l f g'

tactic: exact forall₂_congr fun _ _ => isBigOWith_neg_right
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
⊢ (∀ ⦃c : ℝ⦄, 0 < c → IsBigOWith c l f fun x => -g' x) ↔ ∀ ⦃c : ℝ⦄, 0 < c → IsBigOWith c l f g'
state_after: no goals
Theorem: LocallyLipschitz.pow_end
File: Mathlib/Topology/EMetricSpace/Lipschitz.lean

tactic: simpa only [pow_zero] using LocallyLipschitz.id
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝² : PseudoEMetricSpace α
inst✝¹ : PseudoEMetricSpace β
inst✝ : PseudoEMetricSpace γ
f✝ : α → β
f : Function.End α
h : LocallyLipschitz f
⊢ LocallyLipschitz (f ^ 0)
state_after: no goals

tactic: rw [pow_succ]
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝² : PseudoEMetricSpace α
inst✝¹ : PseudoEMetricSpace β
inst✝ : PseudoEMetricSpace γ
f✝ : α → β
f : Function.End α
h : LocallyLipschitz f
n : ℕ
⊢ LocallyLipschitz (f ^ (n + 1))
state_after: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝² : PseudoEMetricSpace α
inst✝¹ : PseudoEMetricSpace β
inst✝ : PseudoEMetricSpace γ
f✝ : α → β
f : Function.End α
h : LocallyLipschitz f
n : ℕ
⊢ LocallyLipschitz (f ^ n * f)

tactic: exact (h.pow_end n).mul_end h
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝² : PseudoEMetricSpace α
inst✝¹ : PseudoEMetricSpace β
inst✝ : PseudoEMetricSpace γ
f✝ : α → β
f : Function.End α
h : LocallyLipschitz f
n : ℕ
⊢ LocallyLipschitz (f ^ n * f)
state_after: no goals
Theorem: Finsupp.finsuppProdLEquiv_symm_apply
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: conv_rhs =>
  rw [← (finsuppProdLEquiv R).apply_symm_apply f, finsuppProdLEquiv_apply]
state_before: α✝ : Type u_1
M✝ : Type u_2
N : Type u_3
P : Type u_4
R✝ : Type u_5
S : Type u_6
inst✝¹⁰ : Semiring R✝
inst✝⁹ : Semiring S
inst✝⁸ : AddCommMonoid M✝
inst✝⁷ : Module R✝ M✝
inst✝⁶ : AddCommMonoid N
inst✝⁵ : Module R✝ N
inst✝⁴ : AddCommMonoid P
inst✝³ : Module R✝ P
α : Type u_7
β : Type u_8
R : Type u_9
M : Type u_10
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
f : α →₀ β →₀ M
xy : α × β
⊢ ((finsuppProdLEquiv R).symm f) xy = (f xy.1) xy.2
state_after: no goals
Theorem: InnerProductGeometry.tan_angle_add_mul_norm_of_inner_eq_zero
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean

tactic: rw [tan_angle_add_of_inner_eq_zero h]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, y⟫_ℝ = 0
h0 : x ≠ 0 ∨ y = 0
⊢ Real.tan (angle x (x + y)) * ‖x‖ = ‖y‖
state_after: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, y⟫_ℝ = 0
h0 : x ≠ 0 ∨ y = 0
⊢ ‖y‖ / ‖x‖ * ‖x‖ = ‖y‖

tactic: rcases h0 with (h0 | h0) <;> simp [h0]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, y⟫_ℝ = 0
h0 : x ≠ 0 ∨ y = 0
⊢ ‖y‖ / ‖x‖ * ‖x‖ = ‖y‖
state_after: no goals
Theorem: isAlgebraic_rat
File: Mathlib/RingTheory/Algebraic.lean

tactic: rw [← map_ratCast (algebraMap R A)]
state_before: R✝ : Type u
S : Type u_1
A✝ : Type v
inst✝⁹ : CommRing R✝
inst✝⁸ : CommRing S
inst✝⁷ : Ring A✝
inst✝⁶ : Algebra R✝ A✝
inst✝⁵ : Algebra R✝ S
inst✝⁴ : Algebra S A✝
inst✝³ : IsScalarTower R✝ S A✝
R : Type u
A : Type v
inst✝² : DivisionRing A
inst✝¹ : Field R
inst✝ : Algebra R A
n : ℚ
⊢ IsAlgebraic R ↑n
state_after: R✝ : Type u
S : Type u_1
A✝ : Type v
inst✝⁹ : CommRing R✝
inst✝⁸ : CommRing S
inst✝⁷ : Ring A✝
inst✝⁶ : Algebra R✝ A✝
inst✝⁵ : Algebra R✝ S
inst✝⁴ : Algebra S A✝
inst✝³ : IsScalarTower R✝ S A✝
R : Type u
A : Type v
inst✝² : DivisionRing A
inst✝¹ : Field R
inst✝ : Algebra R A
n : ℚ
⊢ IsAlgebraic R ((algebraMap R A) ↑n)

tactic: exact isAlgebraic_algebraMap (Rat.cast n)
state_before: R✝ : Type u
S : Type u_1
A✝ : Type v
inst✝⁹ : CommRing R✝
inst✝⁸ : CommRing S
inst✝⁷ : Ring A✝
inst✝⁶ : Algebra R✝ A✝
inst✝⁵ : Algebra R✝ S
inst✝⁴ : Algebra S A✝
inst✝³ : IsScalarTower R✝ S A✝
R : Type u
A : Type v
inst✝² : DivisionRing A
inst✝¹ : Field R
inst✝ : Algebra R A
n : ℚ
⊢ IsAlgebraic R ((algebraMap R A) ↑n)
state_after: no goals
Theorem: Nat.decreasingInduction_succ'
File: Mathlib/Data/Nat/Defs.lean

tactic: dsimp only [decreasingInduction]
state_before: a b c d m✝ n k : ℕ
p q : ℕ → Prop
P : ℕ → Sort u_1
h : (n : ℕ) → P (n + 1) → P n
m : ℕ
msm : m ≤ m + 1
hP : P (m + 1)
⊢ decreasingInduction h msm hP = h m hP
state_after: a b c d m✝ n k : ℕ
p q : ℕ → Prop
P : ℕ → Sort u_1
h : (n : ℕ) → P (n + 1) → P n
m : ℕ
msm : m ≤ m + 1
hP : P (m + 1)
⊢ leRecOn msm (fun {k} ih hsk => ih (h k hsk)) (fun h => h) hP = h m hP

tactic: rw [leRecOn_succ']
state_before: a b c d m✝ n k : ℕ
p q : ℕ → Prop
P : ℕ → Sort u_1
h : (n : ℕ) → P (n + 1) → P n
m : ℕ
msm : m ≤ m + 1
hP : P (m + 1)
⊢ leRecOn msm (fun {k} ih hsk => ih (h k hsk)) (fun h => h) hP = h m hP
state_after: no goals
Theorem: Set.preimage_mul_const_Icc
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp [← Ici_inter_Iic, h]
state_before: α : Type u_1
inst✝ : LinearOrderedField α
a✝ a b c : α
h : 0 < c
⊢ (fun x => x * c) ⁻¹' Icc a b = Icc (a / c) (b / c)
state_after: no goals
Theorem: uniformContinuous_sInf_rng
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: delta UniformContinuous
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
f : α → β
u₁ : UniformSpace α
u₂ : Set (UniformSpace β)
⊢ UniformContinuous f ↔ ∀ u ∈ u₂, UniformContinuous f
state_after: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
f : α → β
u₁ : UniformSpace α
u₂ : Set (UniformSpace β)
⊢ Tendsto (fun x => (f x.1, f x.2)) (𝓤 α) (𝓤 β) ↔ ∀ u ∈ u₂, Tendsto (fun x => (f x.1, f x.2)) (𝓤 α) (𝓤 β)

tactic: rw [sInf_eq_iInf', iInf_uniformity, tendsto_iInf, SetCoe.forall]
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
f : α → β
u₁ : UniformSpace α
u₂ : Set (UniformSpace β)
⊢ Tendsto (fun x => (f x.1, f x.2)) (𝓤 α) (𝓤 β) ↔ ∀ u ∈ u₂, Tendsto (fun x => (f x.1, f x.2)) (𝓤 α) (𝓤 β)
state_after: no goals