tasksource/leandojo huggingface dataset:
Theorem: LieIdeal.comap_mono
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: rw [← SetLike.coe_subset_coe] at h⊢
state_before: R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I I₂ : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : J₁ ≤ J₂
⊢ comap f J₁ ≤ comap f J₂

tactic: dsimp only [SetLike.coe]
state_before: R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I I₂ : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : ↑J₁ ⊆ ↑J₂
⊢ ↑(comap f J₁) ⊆ ↑(comap f J₂)

tactic: exact Set.preimage_mono h
state_before: R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I I₂ : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : ↑J₁ ⊆ ↑J₂
⊢ (↑(comap f J₁)).toAddSubmonoid.toAddSubsemigroup.carrier ⊆ (↑(comap f J₂)).toAddSubmonoid.toAddSubsemigroup.carrier
Theorem: AffineSubspace.direction_mk'
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: ext v
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p : P
direction : Submodule k V
⊢ AffineSubspace.direction (mk' p direction) = direction

tactic: rw [mem_direction_iff_eq_vsub (mk'_nonempty _ _)]
state_before: case h
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p : P
direction : Submodule k V
v : V
⊢ v ∈ AffineSubspace.direction (mk' p direction) ↔ v ∈ direction

tactic: constructor
state_before: case h
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p : P
direction : Submodule k V
v : V
⊢ (∃ p1, p1 ∈ mk' p direction ∧ ∃ p2, p2 ∈ mk' p direction ∧ v = p1 -ᵥ p2) ↔ v ∈ direction

tactic: rintro ⟨p1, ⟨v1, hv1, hp1⟩, p2, ⟨v2, hv2, hp2⟩, hv⟩
state_before: case h.mp
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p : P
direction : Submodule k V
v : V
⊢ (∃ p1, p1 ∈ mk' p direction ∧ ∃ p2, p2 ∈ mk' p direction ∧ v = p1 -ᵥ p2) → v ∈ direction

tactic: rw [hv, hp1, hp2, vadd_vsub_vadd_cancel_right]
state_before: case h.mp.intro.intro.intro.intro.intro.intro.intro.intro
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p : P
direction : Submodule k V
v : V
p1 : P
v1 : V
hv1 : v1 ∈ direction
hp1 : p1 = v1 +ᵥ p
p2 : P
hv : v = p1 -ᵥ p2
v2 : V
hv2 : v2 ∈ direction
hp2 : p2 = v2 +ᵥ p
⊢ v ∈ direction

tactic: exact direction.sub_mem hv1 hv2
state_before: case h.mp.intro.intro.intro.intro.intro.intro.intro.intro
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p : P
direction : Submodule k V
v : V
p1 : P
v1 : V
hv1 : v1 ∈ direction
hp1 : p1 = v1 +ᵥ p
p2 : P
hv : v = p1 -ᵥ p2
v2 : V
hv2 : v2 ∈ direction
hp2 : p2 = v2 +ᵥ p
⊢ v1 - v2 ∈ direction

tactic: exact fun hv => ⟨v +ᵥ p, vadd_mem_mk' _ hv, p, self_mem_mk' _ _, (vadd_vsub _ _).symm⟩
state_before: case h.mpr
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p : P
direction : Submodule k V
v : V
⊢ v ∈ direction → ∃ p1, p1 ∈ mk' p direction ∧ ∃ p2, p2 ∈ mk' p direction ∧ v = p1 -ᵥ p2
Theorem: Finset.image_image₂_antidistrib
File: Mathlib/Data/Finset/NAry.lean

tactic: rw [image₂_swap f]
state_before: α : Type u_3
α' : Type u_6
β : Type u_4
β' : Type u_5
γ : Type u_2
γ' : Type ?u.91719
δ : Type u_1
δ' : Type ?u.91725
ε : Type ?u.91728
ε' : Type ?u.91731
ζ : Type ?u.91734
ζ' : Type ?u.91737
ν : Type ?u.91740
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f'✝ : α → β → γ
g✝ g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
g : γ → δ
f' : β' → α' → δ
g₁ : β → β'
g₂ : α → α'
h_antidistrib : ∀ (a : α) (b : β), g (f a b) = f' (g₁ b) (g₂ a)
⊢ image g (image₂ f s t) = image₂ f' (image g₁ t) (image g₂ s)

tactic: exact image_image₂_distrib fun _ _ => h_antidistrib _ _
state_before: α : Type u_3
α' : Type u_6
β : Type u_4
β' : Type u_5
γ : Type u_2
γ' : Type ?u.91719
δ : Type u_1
δ' : Type ?u.91725
ε : Type ?u.91728
ε' : Type ?u.91731
ζ : Type ?u.91734
ζ' : Type ?u.91737
ν : Type ?u.91740
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f'✝ : α → β → γ
g✝ g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
g : γ → δ
f' : β' → α' → δ
g₁ : β → β'
g₂ : α → α'
h_antidistrib : ∀ (a : α) (b : β), g (f a b) = f' (g₁ b) (g₂ a)
⊢ image g (image₂ (fun a b => f b a) t s) = image₂ f' (image g₁ t) (image g₂ s)
Theorem: Polynomial.coeff_zero_prod
File: Mathlib/Algebra/Polynomial/BigOperators.lean

tactic: simpa using coeff_zero_multiset_prod (s.1.map f)
state_before: R : Type u
ι : Type w
s : Finset ι
inst✝ : CommSemiring R
f : ι → R[X]
t : Multiset R[X]
⊢ coeff (∏ i in s, f i) 0 = ∏ i in s, coeff (f i) 0
Theorem: ZMod.natAbs_valMinAbs_le
File: Mathlib/Data/ZMod/Basic.lean

tactic: rw [Nat.le_div_two_iff_mul_two_le]
state_before: n : ℕ
inst✝ : NeZero n
x : ZMod n
⊢ Int.natAbs (valMinAbs x) ≤ n / 2

tactic: cases' x.valMinAbs.natAbs_eq with h h
state_before: n : ℕ
inst✝ : NeZero n
x : ZMod n
⊢ ↑(Int.natAbs (valMinAbs x)) * 2 ≤ ↑n

tactic: rw [← h]
state_before: case inl
n : ℕ
inst✝ : NeZero n
x : ZMod n
h : valMinAbs x = ↑(Int.natAbs (valMinAbs x))
⊢ ↑(Int.natAbs (valMinAbs x)) * 2 ≤ ↑n

tactic: exact x.valMinAbs_mem_Ioc.2
state_before: case inl
n : ℕ
inst✝ : NeZero n
x : ZMod n
h : valMinAbs x = ↑(Int.natAbs (valMinAbs x))
⊢ valMinAbs x * 2 ≤ ↑n

tactic: rw [← neg_le_neg_iff, ← neg_mul, ← h]
state_before: case inr
n : ℕ
inst✝ : NeZero n
x : ZMod n
h : valMinAbs x = -↑(Int.natAbs (valMinAbs x))
⊢ ↑(Int.natAbs (valMinAbs x)) * 2 ≤ ↑n

tactic: exact x.valMinAbs_mem_Ioc.1.le
state_before: case inr
n : ℕ
inst✝ : NeZero n
x : ZMod n
h : valMinAbs x = -↑(Int.natAbs (valMinAbs x))
⊢ -↑n ≤ valMinAbs x * 2
Theorem: differentiable_euclidean
File: Mathlib/Analysis/InnerProductSpace/Calculus.lean

tactic: rw [← (EuclideanSpace.equiv ι 𝕜).comp_differentiable_iff, differentiable_pi]
state_before: 𝕜 : Type u_1
ι : Type u_3
H : Type u_2
inst✝³ : IsROrC 𝕜
inst✝² : NormedAddCommGroup H
inst✝¹ : NormedSpace 𝕜 H
inst✝ : Fintype ι
f : H → EuclideanSpace 𝕜 ι
f' : H →L[𝕜] EuclideanSpace 𝕜 ι
t : Set H
y : H
⊢ Differentiable 𝕜 f ↔ ∀ (i : ι), Differentiable 𝕜 fun x => f x i

tactic: rfl
state_before: 𝕜 : Type u_1
ι : Type u_3
H : Type u_2
inst✝³ : IsROrC 𝕜
inst✝² : NormedAddCommGroup H
inst✝¹ : NormedSpace 𝕜 H
inst✝ : Fintype ι
f : H → EuclideanSpace 𝕜 ι
f' : H →L[𝕜] EuclideanSpace 𝕜 ι
t : Set H
y : H
⊢ (∀ (i : ι), Differentiable 𝕜 fun x => (↑(EuclideanSpace.equiv ι 𝕜) ∘ f) x i) ↔
    ∀ (i : ι), Differentiable 𝕜 fun x => f x i
Theorem: Complex.closure_setOf_im_lt
File: Mathlib/Analysis/Complex/ReImTopology.lean

tactic: simpa only [closure_Iio] using closure_preimage_im (Iio a)
state_before: a : ℝ
⊢ closure {z | z.im < a} = {z | z.im ≤ a}
Theorem: MeasureTheory.ae_restrict_union_eq
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simp [union_eq_iUnion, iSup_bool_eq]
state_before: α : Type u_1
β : Type ?u.555132
γ : Type ?u.555135
δ : Type ?u.555138
ι : Type ?u.555141
R : Type ?u.555144
R' : Type ?u.555147
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
⊢ ae (Measure.restrict μ (s ∪ t)) = ae (Measure.restrict μ s) ⊔ ae (Measure.restrict μ t)
Theorem: FractionalIdeal.canonicalEquiv_self
File: Mathlib/RingTheory/FractionalIdeal.lean

tactic: rw [← canonicalEquiv_trans_canonicalEquiv S P P]
state_before: R : Type u_2
inst✝⁶ : CommRing R
S : Submonoid R
P : Type u_1
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
P' : Type ?u.1037421
inst✝³ : CommRing P'
inst✝² : Algebra R P'
loc' : IsLocalization S P'
P'' : Type ?u.1037874
inst✝¹ : CommRing P''
inst✝ : Algebra R P''
loc'' : IsLocalization S P''
I J : FractionalIdeal S P
g : P →ₐ[R] P'
⊢ canonicalEquiv S P P = RingEquiv.refl (FractionalIdeal S P)

tactic: convert(canonicalEquiv S P P).symm_trans_self
state_before: R : Type u_2
inst✝⁶ : CommRing R
S : Submonoid R
P : Type u_1
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
P' : Type ?u.1037421
inst✝³ : CommRing P'
inst✝² : Algebra R P'
loc' : IsLocalization S P'
P'' : Type ?u.1037874
inst✝¹ : CommRing P''
inst✝ : Algebra R P''
loc'' : IsLocalization S P''
I J : FractionalIdeal S P
g : P →ₐ[R] P'
⊢ RingEquiv.trans (canonicalEquiv S P P) (canonicalEquiv S P P) = RingEquiv.refl (FractionalIdeal S P)

tactic: exact (canonicalEquiv_symm S P P).symm
state_before: case h.e'_2.h.e'_10
R : Type u_2
inst✝⁶ : CommRing R
S : Submonoid R
P : Type u_1
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
P' : Type ?u.1037421
inst✝³ : CommRing P'
inst✝² : Algebra R P'
loc' : IsLocalization S P'
P'' : Type ?u.1037874
inst✝¹ : CommRing P''
inst✝ : Algebra R P''
loc'' : IsLocalization S P''
I J : FractionalIdeal S P
g : P →ₐ[R] P'
⊢ canonicalEquiv S P P = RingEquiv.symm (canonicalEquiv S P P)
Theorem: Bundle.Trivial.trivialization.coordChangeL
File: Mathlib/Topology/VectorBundle/Constructions.lean

tactic: ext v
state_before: 𝕜 : Type u_2
B : Type u_3
F : Type u_1
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : TopologicalSpace B
b : B
⊢ Trivialization.coordChangeL 𝕜 (trivialization B F) (trivialization B F) b = ContinuousLinearEquiv.refl 𝕜 F

tactic: rw [Trivialization.coordChangeL_apply']
state_before: case h.h
𝕜 : Type u_2
B : Type u_3
F : Type u_1
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : TopologicalSpace B
b : B
v : F
⊢ ↑(Trivialization.coordChangeL 𝕜 (trivialization B F) (trivialization B F) b) v = ↑(ContinuousLinearEquiv.refl 𝕜 F) v

tactic: exacts [rfl, ⟨mem_univ _, mem_univ _⟩]
state_before: case h.h
𝕜 : Type u_2
B : Type u_3
F : Type u_1
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : TopologicalSpace B
b : B
v : F
⊢ (↑(trivialization B F) (↑(LocalHomeomorph.symm (trivialization B F).toLocalHomeomorph) (b, v))).snd =
    ↑(ContinuousLinearEquiv.refl 𝕜 F) v

case h.h.hb
𝕜 : Type u_2
B : Type u_3
F : Type u_1
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : TopologicalSpace B
b : B
v : F
⊢ b ∈ (trivialization B F).baseSet ∩ (trivialization B F).baseSet
Theorem: Pi.disjoint_iff
File: Mathlib/Order/PropInstances.lean

tactic: constructor
state_before: ι : Type u_2
α' : ι → Type u_1
inst✝¹ : (i : ι) → PartialOrder (α' i)
inst✝ : (i : ι) → OrderBot (α' i)
f g : (i : ι) → α' i
⊢ Disjoint f g ↔ ∀ (i : ι), Disjoint (f i) (g i)

tactic: intro h i x hf hg
state_before: case mp
ι : Type u_2
α' : ι → Type u_1
inst✝¹ : (i : ι) → PartialOrder (α' i)
inst✝ : (i : ι) → OrderBot (α' i)
f g : (i : ι) → α' i
⊢ Disjoint f g → ∀ (i : ι), Disjoint (f i) (g i)

tactic: refine' (update_le_iff.mp <| h (update_le_iff.mpr ⟨hf, fun _ _ => _⟩)
  (update_le_iff.mpr ⟨hg, fun _ _ => _⟩)).1
state_before: case mp
ι : Type u_2
α' : ι → Type u_1
inst✝¹ : (i : ι) → PartialOrder (α' i)
inst✝ : (i : ι) → OrderBot (α' i)
f g : (i : ι) → α' i
h : Disjoint f g
i : ι
x : α' i
hf : x ≤ f i
hg : x ≤ g i
⊢ x ≤ ⊥

tactic: exact bot_le
state_before: case mp.refine'_1
ι : Type u_2
α' : ι → Type u_1
inst✝¹ : (i : ι) → PartialOrder (α' i)
inst✝ : (i : ι) → OrderBot (α' i)
f g : (i : ι) → α' i
h : Disjoint f g
i : ι
x : α' i
hf : x ≤ f i
hg : x ≤ g i
x✝¹ : ι
x✝ : x✝¹ ≠ i
⊢ ?mp.refine'_2 x✝¹ ≤ f x✝¹

tactic: exact bot_le
state_before: case mp.refine'_3
ι : Type u_2
α' : ι → Type u_1
inst✝¹ : (i : ι) → PartialOrder (α' i)
inst✝ : (i : ι) → OrderBot (α' i)
f g : (i : ι) → α' i
h : Disjoint f g
i : ι
x : α' i
hf : x ≤ f i
hg : x ≤ g i
x✝¹ : ι
x✝ : x✝¹ ≠ i
⊢ ⊥ ≤ g x✝¹

tactic: intro h x hf hg i
state_before: case mpr
ι : Type u_2
α' : ι → Type u_1
inst✝¹ : (i : ι) → PartialOrder (α' i)
inst✝ : (i : ι) → OrderBot (α' i)
f g : (i : ι) → α' i
⊢ (∀ (i : ι), Disjoint (f i) (g i)) → Disjoint f g

tactic: apply h i (hf i) (hg i)
state_before: case mpr
ι : Type u_2
α' : ι → Type u_1
inst✝¹ : (i : ι) → PartialOrder (α' i)
inst✝ : (i : ι) → OrderBot (α' i)
f g : (i : ι) → α' i
h : ∀ (i : ι), Disjoint (f i) (g i)
x : (i : ι) → α' i
hf : x ≤ f
hg : x ≤ g
i : ι
⊢ x i ≤ ⊥ i
Theorem: Doset.eq
File: Mathlib/GroupTheory/DoubleCoset.lean

tactic: rw [Quotient.eq'']
state_before: G : Type u_1
inst✝¹ : Group G
α : Type ?u.26004
inst✝ : Mul α
J : Subgroup G
g : G
H K : Subgroup G
a b : G
⊢ mk H K a = mk H K b ↔ ∃ h, h ∈ H ∧ ∃ k, k ∈ K ∧ b = h * a * k

tactic: apply rel_iff
state_before: G : Type u_1
inst✝¹ : Group G
α : Type ?u.26004
inst✝ : Mul α
J : Subgroup G
g : G
H K : Subgroup G
a b : G
⊢ Setoid.r a b ↔ ∃ h, h ∈ H ∧ ∃ k, k ∈ K ∧ b = h * a * k
Theorem: Multiset.finite_toSet_toFinset
File: Mathlib/Data/Set/Finite.lean

tactic: ext x
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
inst✝ : DecidableEq α
s : Multiset α
⊢ Finite.toFinset (_ : Set.Finite {x | x ∈ s}) = toFinset s

tactic: simp
state_before: case a
α : Type u
β : Type v
ι : Sort w
γ : Type x
inst✝ : DecidableEq α
s : Multiset α
x : α
⊢ x ∈ Finite.toFinset (_ : Set.Finite {x | x ∈ s}) ↔ x ∈ toFinset s
Theorem: Submodule.one_le
File: Mathlib/Algebra/Algebra/Operations.lean

tactic: simp only [one_eq_span, span_le, Set.singleton_subset_iff, SetLike.mem_coe]
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M N P Q : Submodule R A
m n : A
⊢ 1 ≤ P ↔ 1 ∈ P
Theorem: Ordinal.derivFamily_isNormal
File: Mathlib/SetTheory/Ordinal/FixedPoint.lean

tactic: rw [derivFamily_succ, ← succ_le_iff]
state_before: ι : Type u
f✝ : ι → Ordinal → Ordinal
f : ι → Ordinal → Ordinal
o : Ordinal
⊢ derivFamily f o < derivFamily f (succ o)

tactic: apply le_nfpFamily
state_before: ι : Type u
f✝ : ι → Ordinal → Ordinal
f : ι → Ordinal → Ordinal
o : Ordinal
⊢ succ (derivFamily f o) ≤ nfpFamily f (succ (derivFamily f o))

tactic: rw [derivFamily_limit _ l, bsup_le_iff]
state_before: ι : Type u
f✝ : ι → Ordinal → Ordinal
f : ι → Ordinal → Ordinal
o : Ordinal
l : IsLimit o
a : Ordinal
⊢ derivFamily f o ≤ a ↔ ∀ (b : Ordinal), b < o → derivFamily f b ≤ a
Theorem: Polynomial.derivative_nat_cast_mul
File: Mathlib/Data/Polynomial/Derivative.lean

tactic: simp
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n✝ : ℕ
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ ↑derivative (↑n * f) = ↑n * ↑derivative f
Theorem: uniformity_eq_comap_inv_mul_nhds_one
File: Mathlib/Topology/Algebra/UniformGroup.lean

tactic: rw [← comap_uniformity_mulOpposite, uniformity_eq_comap_nhds_one, ← op_one, ← comap_unop_nhds,
  comap_comap, comap_comap]
state_before: α : Type u_1
β : Type ?u.167207
inst✝² : UniformSpace α
inst✝¹ : Group α
inst✝ : UniformGroup α
⊢ 𝓤 α = comap (fun x => x.fst⁻¹ * x.snd) (𝓝 1)
Theorem: QuadraticForm.polar_smul
File: Mathlib/LinearAlgebra/QuadraticForm/Basic.lean

tactic: simp only [polar, Pi.smul_apply, smul_sub]
state_before: S : Type u_1
R : Type u_2
R₁ : Type ?u.3579
M : Type u_3
inst✝⁴ : Ring R
inst✝³ : CommRing R₁
inst✝² : AddCommGroup M
inst✝¹ : Monoid S
inst✝ : DistribMulAction S R
f : M → R
s : S
x y : M
⊢ polar (s • f) x y = s • polar f x y
Theorem: MeasureTheory.FiniteMeasure.normalize_testAgainstNN
File: Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean

tactic: simp [μ.testAgainstNN_eq_mass_mul, inv_mul_cancel_left₀ <| μ.mass_nonzero_iff.mpr nonzero]
state_before: Ω : Type u_1
inst✝¹ : Nonempty Ω
m0 : MeasurableSpace Ω
μ : FiniteMeasure Ω
inst✝ : TopologicalSpace Ω
nonzero : μ ≠ 0
f : Ω →ᵇ ℝ≥0
⊢ testAgainstNN (ProbabilityMeasure.toFiniteMeasure (normalize μ)) f = (mass μ)⁻¹ * testAgainstNN μ f
Theorem: Complex.sin_add_mul_I
File: Mathlib/Data/Complex/Exponential.lean

tactic: rw [sin_add, cos_mul_I, sin_mul_I, mul_assoc]
state_before: x✝ y✝ x y : ℂ
⊢ sin (x + y * I) = sin x * cosh y + cos x * sinh y * I
Theorem: Int.fract_int_add
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [add_comm, fract_add_int]
state_before: F : Type ?u.148716
α : Type u_1
β : Type ?u.148722
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ : α
m : ℤ
a : α
⊢ fract (↑m + a) = fract a
Theorem: Rat.add_num_den
File: Mathlib/Data/Rat/Lemmas.lean

tactic: have hqd : (q.den : ℤ) ≠ 0 := Int.coe_nat_ne_zero_iff_pos.2 q.den_pos
state_before: q r : ℚ
⊢ q + r = (q.num * ↑r.den + ↑q.den * r.num) /. (↑q.den * ↑r.den)

tactic: have hrd : (r.den : ℤ) ≠ 0 := Int.coe_nat_ne_zero_iff_pos.2 r.den_pos
state_before: q r : ℚ
hqd : ↑q.den ≠ 0
⊢ q + r = (q.num * ↑r.den + ↑q.den * r.num) /. (↑q.den * ↑r.den)

tactic: conv_lhs => rw [← @num_den q, ← @num_den r, Rat.add_def'' hqd hrd]
state_before: q r : ℚ
hqd : ↑q.den ≠ 0
hrd : ↑r.den ≠ 0
⊢ q + r = (q.num * ↑r.den + ↑q.den * r.num) /. (↑q.den * ↑r.den)

tactic: rw [mul_comm r.num q.den]
state_before: q r : ℚ
hqd : ↑q.den ≠ 0
hrd : ↑r.den ≠ 0
⊢ (q.num * ↑r.den + r.num * ↑q.den) /. (↑q.den * ↑r.den) = (q.num * ↑r.den + ↑q.den * r.num) /. (↑q.den * ↑r.den)
Theorem: MeasureTheory.lintegral_eq_zero_iff'
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: simp [lintegral_zero, zero_ne_top]
state_before: α : Type u_1
β : Type ?u.971808
γ : Type ?u.971811
δ : Type ?u.971814
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
hf : AEMeasurable f
⊢ (∫⁻ (x : α), 0 ∂μ) ≠ ⊤
Theorem: Erased.map_out
File: Mathlib/Data/Erased.lean

tactic: simp [map]
state_before: α : Sort u_1
β : Sort u_2
f : α → β
a : Erased α
⊢ out (map f a) = f (out a)
Theorem: Nat.mod_two_add_add_odd_mod_two
File: Mathlib/Data/Nat/Parity.lean

tactic: rw [even_iff.1 hm, odd_iff.1 (hm.add_odd hn)]
state_before: m✝ n✝ m n : ℕ
hn : Odd n
hm : Even m
⊢ m % 2 + (m + n) % 2 = 1

tactic: rw [odd_iff.1 hm, even_iff.1 (hm.add_odd hn)]
state_before: m✝ n✝ m n : ℕ
hn : Odd n
hm : Odd m
⊢ m % 2 + (m + n) % 2 = 1
Theorem: integral_sin_pow_odd
File: Mathlib/Analysis/SpecialFunctions/Integrals.lean

tactic: induction' n with k ih
state_before: a b : ℝ
n : ℕ
⊢ (∫ (x : ℝ) in 0 ..π, sin x ^ (2 * n + 1)) = 2 * ∏ i in Finset.range n, (2 * ↑i + 2) / (2 * ↑i + 3)

tactic: rw [prod_range_succ_comm, mul_left_comm, ← ih, mul_succ, integral_sin_pow]
state_before: case succ
a b : ℝ
n k : ℕ
ih : (∫ (x : ℝ) in 0 ..π, sin x ^ (2 * k + 1)) = 2 * ∏ i in Finset.range k, (2 * ↑i + 2) / (2 * ↑i + 3)
⊢ (∫ (x : ℝ) in 0 ..π, sin x ^ (2 * succ k + 1)) = 2 * ∏ i in Finset.range (succ k), (2 * ↑i + 2) / (2 * ↑i + 3)

tactic: norm_cast
state_before: case succ
a b : ℝ
n k : ℕ
ih : (∫ (x : ℝ) in 0 ..π, sin x ^ (2 * k + 1)) = 2 * ∏ i in Finset.range k, (2 * ↑i + 2) / (2 * ↑i + 3)
⊢ ((sin 0 ^ (2 * k + 1 + 1) * cos 0 - sin π ^ (2 * k + 1 + 1) * cos π) / (↑(2 * k + 1) + 2) +
      (↑(2 * k + 1) + 1) / (↑(2 * k + 1) + 2) * ∫ (x : ℝ) in 0 ..π, sin x ^ (2 * k + 1)) =
    (2 * ↑k + 2) / (2 * ↑k + 3) * ∫ (x : ℝ) in 0 ..π, sin x ^ (2 * k + 1)

tactic: simp [-cast_add, field_simps]
state_before: case succ
a b : ℝ
n k : ℕ
ih : (∫ (x : ℝ) in 0 ..π, sin x ^ (2 * k + 1)) = 2 * ∏ i in Finset.range k, (2 * ↑i + 2) / (2 * ↑i + 3)
⊢ ((sin 0 ^ (2 * k + 1 + 1) * cos 0 - sin π ^ (2 * k + 1 + 1) * cos π) / ↑(2 * k + 1 + 2) +
      ↑(2 * k + 1 + 1) / ↑(2 * k + 1 + 2) * ∫ (x : ℝ) in 0 ..π, sin x ^ (2 * k + 1)) =
    ↑(2 * k + 2) / ↑(2 * k + 3) * ∫ (x : ℝ) in 0 ..π, sin x ^ (2 * k + 1)

tactic: norm_num
state_before: case zero
a b : ℝ
n : ℕ
⊢ (∫ (x : ℝ) in 0 ..π, sin x ^ (2 * zero + 1)) = 2 * ∏ i in Finset.range zero, (2 * ↑i + 2) / (2 * ↑i + 3)
Theorem: AddCommGroupCat.Colimits.cocone_naturality_components
File: Mathlib/Algebra/Category/GroupCat/Colimits.lean

tactic: rw [← cocone_naturality F f]
state_before: J : Type v
inst✝ : SmallCategory J
F : J ⥤ AddCommGroupCat
j j' : J
f : j ⟶ j'
x : ↑(F.obj j)
⊢ ↑(coconeMorphism F j') (↑(F.map f) x) = ↑(coconeMorphism F j) x

tactic: rfl
state_before: J : Type v
inst✝ : SmallCategory J
F : J ⥤ AddCommGroupCat
j j' : J
f : j ⟶ j'
x : ↑(F.obj j)
⊢ ↑(coconeMorphism F j') (↑(F.map f) x) = ↑(F.map f ≫ coconeMorphism F j') x
Theorem: Seminorm.smul_le_smul
File: Mathlib/Analysis/Seminorm.lean

tactic: simp_rw [le_def]
state_before: R : Type ?u.474477
R' : Type ?u.474480
𝕜 : Type u_1
𝕜₂ : Type ?u.474486
𝕜₃ : Type ?u.474489
𝕝 : Type ?u.474492
E : Type u_2
E₂ : Type ?u.474498
E₃ : Type ?u.474501
F : Type ?u.474504
G : Type ?u.474507
ι : Type ?u.474510
inst✝¹⁸ : SeminormedRing 𝕜
inst✝¹⁷ : SeminormedRing 𝕜₂
inst✝¹⁶ : SeminormedRing 𝕜₃
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹⁵ : RingHomIsometric σ₁₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
inst✝¹⁴ : RingHomIsometric σ₂₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝¹³ : RingHomIsometric σ₁₃
inst✝¹² : AddCommGroup E
inst✝¹¹ : AddCommGroup E₂
inst✝¹⁰ : AddCommGroup E₃
inst✝⁹ : AddCommGroup F
inst✝⁸ : AddCommGroup G
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module 𝕜₂ E₂
inst✝⁵ : Module 𝕜₃ E₃
inst✝⁴ : Module 𝕜 F
inst✝³ : Module 𝕜 G
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
p q : Seminorm 𝕜 E
a b : ℝ≥0
hpq : p ≤ q
hab : a ≤ b
⊢ a • p ≤ b • q

tactic: intro x
state_before: R : Type ?u.474477
R' : Type ?u.474480
𝕜 : Type u_1
𝕜₂ : Type ?u.474486
𝕜₃ : Type ?u.474489
𝕝 : Type ?u.474492
E : Type u_2
E₂ : Type ?u.474498
E₃ : Type ?u.474501
F : Type ?u.474504
G : Type ?u.474507
ι : Type ?u.474510
inst✝¹⁸ : SeminormedRing 𝕜
inst✝¹⁷ : SeminormedRing 𝕜₂
inst✝¹⁶ : SeminormedRing 𝕜₃
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹⁵ : RingHomIsometric σ₁₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
inst✝¹⁴ : RingHomIsometric σ₂₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝¹³ : RingHomIsometric σ₁₃
inst✝¹² : AddCommGroup E
inst✝¹¹ : AddCommGroup E₂
inst✝¹⁰ : AddCommGroup E₃
inst✝⁹ : AddCommGroup F
inst✝⁸ : AddCommGroup G
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module 𝕜₂ E₂
inst✝⁵ : Module 𝕜₃ E₃
inst✝⁴ : Module 𝕜 F
inst✝³ : Module 𝕜 G
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
p q : Seminorm 𝕜 E
a b : ℝ≥0
hpq : p ≤ q
hab : a ≤ b
⊢ ∀ (x : E), ↑(a • p) x ≤ ↑(b • q) x

tactic: exact mul_le_mul hab (hpq x) (map_nonneg p x) (NNReal.coe_nonneg b)
state_before: R : Type ?u.474477
R' : Type ?u.474480
𝕜 : Type u_1
𝕜₂ : Type ?u.474486
𝕜₃ : Type ?u.474489
𝕝 : Type ?u.474492
E : Type u_2
E₂ : Type ?u.474498
E₃ : Type ?u.474501
F : Type ?u.474504
G : Type ?u.474507
ι : Type ?u.474510
inst✝¹⁸ : SeminormedRing 𝕜
inst✝¹⁷ : SeminormedRing 𝕜₂
inst✝¹⁶ : SeminormedRing 𝕜₃
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹⁵ : RingHomIsometric σ₁₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
inst✝¹⁴ : RingHomIsometric σ₂₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝¹³ : RingHomIsometric σ₁₃
inst✝¹² : AddCommGroup E
inst✝¹¹ : AddCommGroup E₂
inst✝¹⁰ : AddCommGroup E₃
inst✝⁹ : AddCommGroup F
inst✝⁸ : AddCommGroup G
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module 𝕜₂ E₂
inst✝⁵ : Module 𝕜₃ E₃
inst✝⁴ : Module 𝕜 F
inst✝³ : Module 𝕜 G
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
p q : Seminorm 𝕜 E
a b : ℝ≥0
hpq : p ≤ q
hab : a ≤ b
x : E
⊢ ↑(a • p) x ≤ ↑(b • q) x