tasksource/leandojo huggingface dataset:
Theorem: Multiset.powersetLenAux_zero
File: Mathlib/Data/Multiset/Powerset.lean

tactic: simp [powersetLenAux_eq_map_coe]
state_before: α : Type u_1
l : List α
⊢ powersetLenAux 0 l = [0]
Theorem: Int.toNat_add_toNat_neg_eq_nnnorm
File: Mathlib/Analysis/NormedSpace/Int.lean

tactic: rw [← Nat.cast_add, toNat_add_toNat_neg_eq_natAbs, NNReal.coe_natAbs]
state_before: n : ℤ
⊢ ↑(toNat n) + ↑(toNat (-n)) = ‖n‖₊
Theorem: IsTorsion.of_surjective
File: Mathlib/GroupTheory/Torsion.lean

tactic: obtain ⟨g, hg⟩ := hf h
state_before: G : Type u_1
H : Type u_2
inst✝¹ : Group G
N : Subgroup G
inst✝ : Group H
f : G →* H
hf : Function.Surjective ↑f
tG : IsTorsion G
h : H
⊢ IsOfFinOrder h

tactic: rw [← hg]
state_before: case intro
G : Type u_1
H : Type u_2
inst✝¹ : Group G
N : Subgroup G
inst✝ : Group H
f : G →* H
hf : Function.Surjective ↑f
tG : IsTorsion G
h : H
g : G
hg : ↑f g = h
⊢ IsOfFinOrder h

tactic: exact f.isOfFinOrder (tG g)
state_before: case intro
G : Type u_1
H : Type u_2
inst✝¹ : Group G
N : Subgroup G
inst✝ : Group H
f : G →* H
hf : Function.Surjective ↑f
tG : IsTorsion G
h : H
g : G
hg : ↑f g = h
⊢ IsOfFinOrder (↑f g)
Theorem: div_lt_iff_lt_mul
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [← mul_lt_mul_iff_right c, div_eq_mul_inv, inv_mul_cancel_right]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LT α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
a b c d : α
⊢ a / c < b ↔ a < b * c
Theorem: Mon_.one_associator
File: Mathlib/CategoryTheory/Monoidal/Mon_.lean

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : MonoidalCategory C
M N P : Mon_ C
⊢ ((λ_ (𝟙_ C)).inv ≫ ((λ_ (𝟙_ C)).inv ≫ (M.one ⊗ N.one) ⊗ P.one)) ≫ (α_ M.X N.X P.X).hom =
    (λ_ (𝟙_ C)).inv ≫ (M.one ⊗ (λ_ (𝟙_ C)).inv ≫ (N.one ⊗ P.one))

tactic: slice_lhs 1 3 => rw [← Category.id_comp P.one, tensor_comp]
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : MonoidalCategory C
M N P : Mon_ C
⊢ ((λ_ (𝟙_ C)).inv ≫ (M.one ⊗ N.one) ⊗ P.one) ≫ (α_ M.X N.X P.X).hom = M.one ⊗ (λ_ (𝟙_ C)).inv ≫ (N.one ⊗ P.one)

tactic: slice_lhs 2 3 => rw [associator_naturality]
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : MonoidalCategory C
M N P : Mon_ C
⊢ (((λ_ (𝟙_ C)).inv ⊗ 𝟙 (𝟙_ C)) ≫ ((M.one ⊗ N.one) ⊗ P.one)) ≫ (α_ M.X N.X P.X).hom =
    M.one ⊗ (λ_ (𝟙_ C)).inv ≫ (N.one ⊗ P.one)

tactic: slice_rhs 1 2 => rw [← Category.id_comp M.one, tensor_comp]
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : MonoidalCategory C
M N P : Mon_ C
⊢ ((λ_ (𝟙_ C)).inv ⊗ 𝟙 (𝟙_ C)) ≫ (α_ tensorUnit' (𝟙_ C) (𝟙_ C)).hom ≫ (M.one ⊗ N.one ⊗ P.one) =
    M.one ⊗ (λ_ (𝟙_ C)).inv ≫ (N.one ⊗ P.one)

tactic: slice_lhs 1 2 => rw [← leftUnitor_tensor_inv]
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : MonoidalCategory C
M N P : Mon_ C
⊢ ((λ_ (𝟙_ C)).inv ⊗ 𝟙 (𝟙_ C)) ≫ (α_ tensorUnit' (𝟙_ C) (𝟙_ C)).hom ≫ (M.one ⊗ N.one ⊗ P.one) =
    (𝟙 (𝟙_ C) ⊗ (λ_ (𝟙_ C)).inv) ≫ (M.one ⊗ N.one ⊗ P.one)

tactic: rw [← cancel_epi (λ_ (𝟙_ C)).inv]
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : MonoidalCategory C
M N P : Mon_ C
⊢ (λ_ (tensorUnit' ⊗ 𝟙_ C)).inv ≫ (M.one ⊗ N.one ⊗ P.one) = (𝟙 (𝟙_ C) ⊗ (λ_ (𝟙_ C)).inv) ≫ (M.one ⊗ N.one ⊗ P.one)

tactic: slice_lhs 1 2 => rw [leftUnitor_inv_naturality]
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : MonoidalCategory C
M N P : Mon_ C
⊢ (λ_ (𝟙_ C)).inv ≫ (λ_ (tensorUnit' ⊗ 𝟙_ C)).inv ≫ (M.one ⊗ N.one ⊗ P.one) =
    (λ_ (𝟙_ C)).inv ≫ (𝟙 (𝟙_ C) ⊗ (λ_ (𝟙_ C)).inv) ≫ (M.one ⊗ N.one ⊗ P.one)

tactic: simp only [Category.assoc]
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : MonoidalCategory C
M N P : Mon_ C
⊢ ((λ_ (𝟙_ C)).inv ≫ (𝟙 tensorUnit' ⊗ (λ_ (𝟙_ C)).inv)) ≫ (M.one ⊗ N.one ⊗ P.one) =
    (λ_ (𝟙_ C)).inv ≫ (𝟙 (𝟙_ C) ⊗ (λ_ (𝟙_ C)).inv) ≫ (M.one ⊗ N.one ⊗ P.one)
Theorem: InnerProductSpace.Core.inner_sub_left
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: simp [sub_eq_add_neg, inner_add_left, inner_neg_left]
state_before: 𝕜 : Type u_1
E : Type ?u.600971
F : Type u_2
inst✝² : IsROrC 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y z : F
⊢ inner (x - y) z = inner x z - inner y z
Theorem: ProbabilityTheory.finite_of_condCount_ne_zero
File: Mathlib/Probability/CondCount.lean

tactic: by_contra hs'
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
s t : Set Ω
h : ↑↑(condCount s) t ≠ 0
⊢ Set.Finite s

tactic: simp [condCount, cond, Measure.count_apply_infinite hs'] at h
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
s t : Set Ω
h : ↑↑(condCount s) t ≠ 0
hs' : ¬Set.Finite s
⊢ False
Theorem: CategoryTheory.Presieve.isSheafFor_subsieve
File: Mathlib/CategoryTheory/Sites/SheafOfTypes.lean

tactic: simpa using trans (𝟙 _)
state_before: C : Type u₁
inst✝ : Category C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S✝ : Sieve X
R✝ : Presieve X
J J₂ : GrothendieckTopology C
P : Cᵒᵖ ⥤ Type w
S : Sieve X
R : Presieve X
h : S.arrows ≤ R
trans : ∀ ⦃Y : C⦄ (f : Y ⟶ X), IsSheafFor P (Sieve.pullback f S).arrows
⊢ IsSheafFor P S.arrows
Theorem: mem_sphere_iff_norm'
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: simp [dist_eq_norm_div]
state_before: 𝓕 : Type ?u.102643
𝕜 : Type ?u.102646
α : Type ?u.102649
ι : Type ?u.102652
κ : Type ?u.102655
E : Type u_1
F : Type ?u.102661
G : Type ?u.102664
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
⊢ b ∈ sphere a r ↔ ‖b / a‖ = r
Theorem: himp_compl_comm
File: Mathlib/Order/Heyting/Basic.lean

tactic: simp_rw [← himp_bot, himp_left_comm]
state_before: ι : Type ?u.156422
α : Type u_1
β : Type ?u.156428
inst✝ : HeytingAlgebra α
a✝ b✝ c a b : α
⊢ a ⇨ bᶜ = b ⇨ aᶜ
Theorem: CategoryTheory.NonPreadditiveAbelian.neg_sub'
File: Mathlib/CategoryTheory/Abelian/NonPreadditive.lean

tactic: rw [neg_def, neg_def]
state_before: C : Type u
inst✝¹ : Category C
inst✝ : NonPreadditiveAbelian C
X Y : C
a b : X ⟶ Y
⊢ -(a - b) = -a + b

tactic: conv_lhs => rw [← sub_self (0 : X ⟶ Y)]
state_before: C : Type u
inst✝¹ : Category C
inst✝ : NonPreadditiveAbelian C
X Y : C
a b : X ⟶ Y
⊢ 0 - (a - b) = 0 - a + b

tactic: rw [sub_sub_sub, add_def, neg_def]
state_before: C : Type u
inst✝¹ : Category C
inst✝ : NonPreadditiveAbelian C
X Y : C
a b : X ⟶ Y
⊢ 0 - 0 - (a - b) = 0 - a + b
Theorem: Filter.prod_inf
File: Mathlib/Order/Filter/Prod.lean

tactic: rw [prod_inf_prod, inf_idem]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.42847
δ : Type ?u.42850
ι : Sort ?u.42853
s : Set α
t : Set β
f✝ : Filter α
g : Filter β
f : Filter α
g₁ g₂ : Filter β
⊢ f ×ˢ (g₁ ⊓ g₂) = f ×ˢ g₁ ⊓ f ×ˢ g₂
Theorem: Real.sign_eq_zero_iff
File: Mathlib/Data/Real/Sign.lean

tactic: refine' ⟨fun h => _, fun h => h.symm ▸ sign_zero⟩
state_before: r : ℝ
⊢ sign r = 0 ↔ r = 0

tactic: obtain hn | rfl | hp := lt_trichotomy r (0 : ℝ)
state_before: r : ℝ
h : sign r = 0
⊢ r = 0

tactic: rw [sign_of_neg hn, neg_eq_zero] at h
state_before: case inl
r : ℝ
h : sign r = 0
hn : r < 0
⊢ r = 0

tactic: exact (one_ne_zero h).elim
state_before: case inl
r : ℝ
h : 1 = 0
hn : r < 0
⊢ r = 0

tactic: rfl
state_before: case inr.inl
h : sign 0 = 0
⊢ 0 = 0

tactic: rw [sign_of_pos hp] at h
state_before: case inr.inr
r : ℝ
h : sign r = 0
hp : 0 < r
⊢ r = 0

tactic: exact (one_ne_zero h).elim
state_before: case inr.inr
r : ℝ
h : 1 = 0
hp : 0 < r
⊢ r = 0
Theorem: zero_isRadical_iff
File: Mathlib/RingTheory/Nilpotent.lean

tactic: simp_rw [isReduced_iff, IsNilpotent, exists_imp, ← zero_dvd_iff]
state_before: R S : Type u
x y : R
inst✝ : MonoidWithZero R
⊢ IsRadical 0 ↔ IsReduced R

tactic: exact forall_swap
state_before: R S : Type u
x y : R
inst✝ : MonoidWithZero R
⊢ IsRadical 0 ↔ ∀ (x : R) (x_1 : ℕ), 0 ∣ x ^ x_1 → 0 ∣ x
Theorem: Ideal.dvdNotUnit_iff_lt
File: Mathlib/RingTheory/DedekindDomain/Ideal.lean

tactic: rw [← hmul, h, mul_one]
state_before: R : Type ?u.770953
A : Type u_1
K : Type ?u.770959
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : Ideal A
x✝ : DvdNotUnit I J
hI : I ≠ 0
H : Ideal A
hunit : ¬IsUnit H
hmul : J = I * H
h : J = I
⊢ I * H = I * 1
Theorem: CategoryTheory.unit_transferNatTrans
File: Mathlib/CategoryTheory/Adjunction/Mates.lean

tactic: dsimp [transferNatTrans]
state_before: C : Type u₁
D : Type u₂
inst✝³ : Category C
inst✝² : Category D
E : Type u₃
F : Type u₄
inst✝¹ : Category E
inst✝ : Category F
G : C ⥤ E
H : D ⥤ F
L₁ : C ⥤ D
R₁ : D ⥤ C
L₂ : E ⥤ F
R₂ : F ⥤ E
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
f : G ⋙ L₂ ⟶ L₁ ⋙ H
X : C
⊢ G.map (adj₁.unit.app X) ≫ (↑(transferNatTrans adj₁ adj₂) f).app (L₁.obj X) =
    adj₂.unit.app (G.obj ((𝟭 C).obj X)) ≫ R₂.map (f.app ((𝟭 C).obj X))

tactic: rw [← adj₂.unit_naturality_assoc, ← R₂.map_comp, ← Functor.comp_map G L₂, f.naturality_assoc,
  Functor.comp_map, ← H.map_comp]
state_before: C : Type u₁
D : Type u₂
inst✝³ : Category C
inst✝² : Category D
E : Type u₃
F : Type u₄
inst✝¹ : Category E
inst✝ : Category F
G : C ⥤ E
H : D ⥤ F
L₁ : C ⥤ D
R₁ : D ⥤ C
L₂ : E ⥤ F
R₂ : F ⥤ E
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
f : G ⋙ L₂ ⟶ L₁ ⋙ H
X : C
⊢ G.map (adj₁.unit.app X) ≫
      adj₂.unit.app (G.obj (R₁.obj (L₁.obj X))) ≫
        R₂.map (f.app (R₁.obj (L₁.obj X)) ≫ H.map (adj₁.counit.app (L₁.obj X))) =
    adj₂.unit.app (G.obj X) ≫ R₂.map (f.app X)

tactic: dsimp
state_before: C : Type u₁
D : Type u₂
inst✝³ : Category C
inst✝² : Category D
E : Type u₃
F : Type u₄
inst✝¹ : Category E
inst✝ : Category F
G : C ⥤ E
H : D ⥤ F
L₁ : C ⥤ D
R₁ : D ⥤ C
L₂ : E ⥤ F
R₂ : F ⥤ E
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
f : G ⋙ L₂ ⟶ L₁ ⋙ H
X : C
⊢ adj₂.unit.app (G.obj X) ≫ R₂.map (f.app X ≫ H.map (L₁.map (adj₁.unit.app X) ≫ adj₁.counit.app (L₁.obj X))) =
    adj₂.unit.app (G.obj X) ≫ R₂.map (f.app X)

tactic: simp
state_before: C : Type u₁
D : Type u₂
inst✝³ : Category C
inst✝² : Category D
E : Type u₃
F : Type u₄
inst✝¹ : Category E
inst✝ : Category F
G : C ⥤ E
H : D ⥤ F
L₁ : C ⥤ D
R₁ : D ⥤ C
L₂ : E ⥤ F
R₂ : F ⥤ E
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
f : G ⋙ L₂ ⟶ L₁ ⋙ H
X : C
⊢ adj₂.unit.app (G.obj X) ≫ R₂.map (f.app X ≫ H.map (L₁.map (adj₁.unit.app X) ≫ adj₁.counit.app (L₁.obj X))) =
    adj₂.unit.app (G.obj X) ≫ R₂.map (f.app X)
Theorem: MeasureTheory.lintegral_lintegral_mul
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: simp [lintegral_const_mul'' _ hg, lintegral_mul_const'' _ hf]
state_before: α : Type u_2
β✝ : Type ?u.947084
γ : Type ?u.947087
δ : Type ?u.947090
m : MeasurableSpace α
μ ν✝ : Measure α
β : Type u_1
inst✝ : MeasurableSpace β
ν : Measure β
f : α → ℝ≥0∞
g : β → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
⊢ (∫⁻ (x : α), ∫⁻ (y : β), f x * g y ∂ν ∂μ) = (∫⁻ (x : α), f x ∂μ) * ∫⁻ (y : β), g y ∂ν
Theorem: Wbtw.angle₃₁₂_eq_zero_of_ne
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean

tactic: rw [← h.angle₂₁₃_eq_zero_of_ne hp₂p₁, angle_comm]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : Wbtw ℝ p₁ p₂ p₃
hp₂p₁ : p₂ ≠ p₁
⊢ ∠ p₃ p₁ p₂ = 0
Theorem: Real.Lp_add_le
File: Mathlib/Analysis/MeanInequalities.lean

tactic: have :=
  NNReal.coe_le_coe.2
    (NNReal.Lp_add_le s (fun i => ⟨_, abs_nonneg (f i)⟩) (fun i => ⟨_, abs_nonneg (g i)⟩) hp)
state_before: ι : Type u
s : Finset ι
f g : ι → ℝ
p q : ℝ
hp : 1 ≤ p
⊢ (∑ i in s, abs (f i + g i) ^ p) ^ (1 / p) ≤ (∑ i in s, abs (f i) ^ p) ^ (1 / p) + (∑ i in s, abs (g i) ^ p) ^ (1 / p)

tactic: push_cast at this
state_before: ι : Type u
s : Finset ι
f g : ι → ℝ
p q : ℝ
hp : 1 ≤ p
this :
  ↑((∑ i in s,
          ((fun i => { val := abs (f i), property := (_ : 0 ≤ abs (f i)) }) i +
              (fun i => { val := abs (g i), property := (_ : 0 ≤ abs (g i)) }) i) ^
            p) ^
        (1 / p)) ≤
    ↑((∑ i in s, (fun i => { val := abs (f i), property := (_ : 0 ≤ abs (f i)) }) i ^ p) ^ (1 / p) +
        (∑ i in s, (fun i => { val := abs (g i), property := (_ : 0 ≤ abs (g i)) }) i ^ p) ^ (1 / p))
⊢ (∑ i in s, abs (f i + g i) ^ p) ^ (1 / p) ≤ (∑ i in s, abs (f i) ^ p) ^ (1 / p) + (∑ i in s, abs (g i) ^ p) ^ (1 / p)

tactic: refine' le_trans (rpow_le_rpow _ (sum_le_sum fun i _ => _) _) this <;>
  simp [sum_nonneg, rpow_nonneg_of_nonneg, abs_nonneg, le_trans zero_le_one hp, abs_add,
    rpow_le_rpow]
state_before: ι : Type u
s : Finset ι
f g : ι → ℝ
p q : ℝ
hp : 1 ≤ p
this :
  (∑ x in s, (abs (f x) + abs (g x)) ^ p) ^ (1 / p) ≤
    (∑ x in s, abs (f x) ^ p) ^ (1 / p) + (∑ x in s, abs (g x) ^ p) ^ (1 / p)
⊢ (∑ i in s, abs (f i + g i) ^ p) ^ (1 / p) ≤ (∑ i in s, abs (f i) ^ p) ^ (1 / p) + (∑ i in s, abs (g i) ^ p) ^ (1 / p)
Theorem: CategoryTheory.Limits.Concrete.widePullback_ext
File: Mathlib/CategoryTheory/Limits/ConcreteCategory.lean

tactic: apply Concrete.limit_ext
state_before: C : Type u
inst✝⁵ : Category C
inst✝⁴ : ConcreteCategory C
J : Type w
inst✝³ : SmallCategory J
F : J ⥤ C
inst✝² : PreservesLimit F (forget C)
B : C
ι : Type w
X : ι → C
f : (j : ι) → X j ⟶ B
inst✝¹ : HasWidePullback B X f
inst✝ : PreservesLimit (wideCospan B X f) (forget C)
x y : (forget C).obj (widePullback B X f)
h₀ : (forget C).map (base f) x = (forget C).map (base f) y
h : ∀ (j : ι), (forget C).map (π f j) x = (forget C).map (π f j) y
⊢ x = y

tactic: rintro (_ | j)
state_before: case a
C : Type u
inst✝⁵ : Category C
inst✝⁴ : ConcreteCategory C
J : Type w
inst✝³ : SmallCategory J
F : J ⥤ C
inst✝² : PreservesLimit F (forget C)
B : C
ι : Type w
X : ι → C
f : (j : ι) → X j ⟶ B
inst✝¹ : HasWidePullback B X f
inst✝ : PreservesLimit (wideCospan B X f) (forget C)
x y : (forget C).obj (widePullback B X f)
h₀ : (forget C).map (base f) x = (forget C).map (base f) y
h : ∀ (j : ι), (forget C).map (π f j) x = (forget C).map (π f j) y
⊢ ∀ (j : WidePullbackShape ι),
    (forget C).map (limit.π (wideCospan B X f) j) x = (forget C).map (limit.π (wideCospan B X f) j) y

tactic: exact h₀
state_before: case a.none
C : Type u
inst✝⁵ : Category C
inst✝⁴ : ConcreteCategory C
J : Type w
inst✝³ : SmallCategory J
F : J ⥤ C
inst✝² : PreservesLimit F (forget C)
B : C
ι : Type w
X : ι → C
f : (j : ι) → X j ⟶ B
inst✝¹ : HasWidePullback B X f
inst✝ : PreservesLimit (wideCospan B X f) (forget C)
x y : (forget C).obj (widePullback B X f)
h₀ : (forget C).map (base f) x = (forget C).map (base f) y
h : ∀ (j : ι), (forget C).map (π f j) x = (forget C).map (π f j) y
⊢ (forget C).map (limit.π (wideCospan B X f) none) x = (forget C).map (limit.π (wideCospan B X f) none) y

tactic: apply h
state_before: case a.some
C : Type u
inst✝⁵ : Category C
inst✝⁴ : ConcreteCategory C
J : Type w
inst✝³ : SmallCategory J
F : J ⥤ C
inst✝² : PreservesLimit F (forget C)
B : C
ι : Type w
X : ι → C
f : (j : ι) → X j ⟶ B
inst✝¹ : HasWidePullback B X f
inst✝ : PreservesLimit (wideCospan B X f) (forget C)
x y : (forget C).obj (widePullback B X f)
h₀ : (forget C).map (base f) x = (forget C).map (base f) y
h : ∀ (j : ι), (forget C).map (π f j) x = (forget C).map (π f j) y
j : ι
⊢ (forget C).map (limit.π (wideCospan B X f) (some j)) x = (forget C).map (limit.π (wideCospan B X f) (some j)) y
Theorem: ZMod.χ₄_nat_one_mod_four
File: Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean

tactic: rw [χ₄_nat_mod_four, hn]
state_before: n : ℕ
hn : n % 4 = 1
⊢ ↑χ₄ ↑n = 1

tactic: rfl
state_before: n : ℕ
hn : n % 4 = 1
⊢ ↑χ₄ ↑1 = 1
Theorem: nndist_dist
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: rw [dist_nndist, Real.toNNReal_coe]
state_before: α : Type u
β : Type v
X : Type ?u.23278
ι : Type ?u.23281
inst✝ : PseudoMetricSpace α
x y : α
⊢ nndist x y = Real.toNNReal (dist x y)
Theorem: RatFunc.map_apply_div_ne_zero
File: Mathlib/FieldTheory/RatFunc.lean

tactic: have hq' : φ q ≠ 0 := nonZeroDivisors.ne_zero (hφ (mem_nonZeroDivisors_iff_ne_zero.mpr hq))
state_before: K : Type u
inst✝⁴ : CommRing K
inst✝³ : IsDomain K
R : Type u_1
F : Type u_2
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : MonoidHomClass F K[X] R[X]
φ : F
hφ : K[X]⁰ ≤ Submonoid.comap φ R[X]⁰
p q : K[X]
hq : q ≠ 0
⊢ ↑(map φ hφ) (↑(algebraMap K[X] (RatFunc K)) p / ↑(algebraMap K[X] (RatFunc K)) q) =
    ↑(algebraMap ((fun x => R[X]) p) (RatFunc R)) (↑φ p) / ↑(algebraMap ((fun x => R[X]) q) (RatFunc R)) (↑φ q)

tactic: simp only [← mk_eq_div, mk_eq_localization_mk _ hq, map_apply_ofFractionRing_mk,
  mk_eq_localization_mk _ hq']
state_before: K : Type u
inst✝⁴ : CommRing K
inst✝³ : IsDomain K
R : Type u_1
F : Type u_2
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : MonoidHomClass F K[X] R[X]
φ : F
hφ : K[X]⁰ ≤ Submonoid.comap φ R[X]⁰
p q : K[X]
hq : q ≠ 0
hq' : ↑φ q ≠ 0
⊢ ↑(map φ hφ) (↑(algebraMap K[X] (RatFunc K)) p / ↑(algebraMap K[X] (RatFunc K)) q) =
    ↑(algebraMap ((fun x => R[X]) p) (RatFunc R)) (↑φ p) / ↑(algebraMap ((fun x => R[X]) q) (RatFunc R)) (↑φ q)
Theorem: ENNReal.lt_rpow_one_div_iff
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: nth_rw 1 [← rpow_one x]
state_before: x y : ℝ≥0∞
z : ℝ
hz : 0 < z
⊢ x < y ^ (1 / z) ↔ x ^ z < y

tactic: nth_rw 1 [← @_root_.mul_inv_cancel _ _ z (ne_of_lt hz).symm]
state_before: x y : ℝ≥0∞
z : ℝ
hz : 0 < z
⊢ x ^ 1 < y ^ (1 / z) ↔ x ^ z < y

tactic: rw [rpow_mul, ← one_div, @rpow_lt_rpow_iff _ _ (1 / z) (by simp [hz])]
state_before: x y : ℝ≥0∞
z : ℝ
hz : 0 < z
⊢ x ^ (z * z⁻¹) < y ^ (1 / z) ↔ x ^ z < y

tactic: simp [hz]
state_before: x y : ℝ≥0∞
z : ℝ
hz : 0 < z
⊢ 0 < 1 / z
Theorem: Asymptotics.isBigO_map
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp only [IsBigO_def, isBigOWith_map]
state_before: α : Type u_2
β : Type u_1
E : Type u_3
F : Type u_4
G : Type ?u.70658
E' : Type ?u.70661
F' : Type ?u.70664
G' : Type ?u.70667
E'' : Type ?u.70670
F'' : Type ?u.70673
G'' : Type ?u.70676
R : Type ?u.70679
R' : Type ?u.70682
𝕜 : Type ?u.70685
𝕜' : Type ?u.70688
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✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
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 α
k : β → α
l : Filter β
⊢ f =O[map k l] g ↔ (f ∘ k) =O[l] (g ∘ k)
Theorem: LieSubmodule.ucs_eq_self_of_normalizer_eq_self
File: Mathlib/Algebra/Lie/Nilpotent.lean

tactic: induction' k with k ih
state_before: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
k✝ : ℕ
N N₁ N₂ : LieSubmodule R L M
h : normalizer N₁ = N₁
k : ℕ
⊢ ucs k N₁ = N₁

tactic: simp
state_before: case zero
R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
k : ℕ
N N₁ N₂ : LieSubmodule R L M
h : normalizer N₁ = N₁
⊢ ucs Nat.zero N₁ = N₁

tactic: rwa [ucs_succ, ih]
state_before: case succ
R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
k✝ : ℕ
N N₁ N₂ : LieSubmodule R L M
h : normalizer N₁ = N₁
k : ℕ
ih : ucs k N₁ = N₁
⊢ ucs (Nat.succ k) N₁ = N₁
Theorem: Fin.castLT_castSucc
File: Mathlib/Data/Fin/Basic.lean

tactic: cases a
state_before: n✝ m n : ℕ
a : Fin n
h : ↑a < n
⊢ castLT (↑castSucc a) h = a

tactic: rfl
state_before: case mk
n✝ m n val✝ : ℕ
isLt✝ : val✝ < n
h : ↑{ val := val✝, isLt := isLt✝ } < n
⊢ castLT (↑castSucc { val := val✝, isLt := isLt✝ }) h = { val := val✝, isLt := isLt✝ }
Theorem: Multiset.cons_inter_distrib
File: Mathlib/Data/Multiset/Basic.lean

tactic: simp
state_before: α : Type u_1
β : Type ?u.190523
γ : Type ?u.190526
inst✝ : DecidableEq α
s✝ t✝ u : Multiset α
a✝ b a : α
s t : Multiset α
⊢ a ::ₘ s ∩ t = (a ::ₘ s) ∩ (a ::ₘ t)
Theorem: NNReal.nndist_zero_eq_val
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: simp only [NNReal.nndist_eq, max_eq_right, tsub_zero, zero_tsub, zero_le']
state_before: α : Type u
β : Type v
X : Type ?u.239049
ι : Type ?u.239052
inst✝ : PseudoMetricSpace α
z : ℝ≥0
⊢ nndist 0 z = z
Theorem: Finsupp.total_surjective
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: intro x
state_before: α : Type u_1
M : Type u_2
N : Type ?u.325806
P : Type ?u.325809
R : Type u_3
S : Type ?u.325815
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.325907
M' : Type ?u.325910
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M'
inst✝² : AddCommMonoid M
inst✝¹ : Module R M'
inst✝ : Module R M
v : α → M
v' : α' → M'
h : Function.Surjective v
⊢ Function.Surjective ↑(Finsupp.total α M R v)

tactic: obtain ⟨y, hy⟩ := h x
state_before: α : Type u_1
M : Type u_2
N : Type ?u.325806
P : Type ?u.325809
R : Type u_3
S : Type ?u.325815
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.325907
M' : Type ?u.325910
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M'
inst✝² : AddCommMonoid M
inst✝¹ : Module R M'
inst✝ : Module R M
v : α → M
v' : α' → M'
h : Function.Surjective v
x : M
⊢ ∃ a, ↑(Finsupp.total α M R v) a = x

tactic: exact ⟨Finsupp.single y 1, by simp [hy]⟩
state_before: case intro
α : Type u_1
M : Type u_2
N : Type ?u.325806
P : Type ?u.325809
R : Type u_3
S : Type ?u.325815
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.325907
M' : Type ?u.325910
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M'
inst✝² : AddCommMonoid M
inst✝¹ : Module R M'
inst✝ : Module R M
v : α → M
v' : α' → M'
h : Function.Surjective v
x : M
y : α
hy : v y = x
⊢ ∃ a, ↑(Finsupp.total α M R v) a = x

tactic: simp [hy]
state_before: α : Type u_1
M : Type u_2
N : Type ?u.325806
P : Type ?u.325809
R : Type u_3
S : Type ?u.325815
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.325907
M' : Type ?u.325910
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M'
inst✝² : AddCommMonoid M
inst✝¹ : Module R M'
inst✝ : Module R M
v : α → M
v' : α' → M'
h : Function.Surjective v
x : M
y : α
hy : v y = x
⊢ ↑(Finsupp.total α M R v) (single y 1) = x
Theorem: EMetric.infEdist_lt_iff
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: simp_rw [infEdist, iInf_lt_iff, exists_prop]
state_before: ι : Sort ?u.4012
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t : Set α
Φ : α → β
r : ℝ≥0∞
⊢ infEdist x s < r ↔ ∃ y, y ∈ s ∧ edist x y < r