tasksource/leandojo huggingface dataset:
Theorem: CategoryTheory.Equivalence.invFunIdAssoc_hom_app
File: Mathlib/CategoryTheory/Equivalence.lean

tactic: dsimp [invFunIdAssoc]
state_before: C : Type u₁
inst✝² : Category C
D : Type u₂
inst✝¹ : Category D
E : Type u₃
inst✝ : Category E
e : C ≌ D
F : D ⥤ E
X : D
⊢ (invFunIdAssoc e F).hom.app X = F.map ((counit e).app X)

tactic: aesop_cat
state_before: C : Type u₁
inst✝² : Category C
D : Type u₂
inst✝¹ : Category D
E : Type u₃
inst✝ : Category E
e : C ≌ D
F : D ⥤ E
X : D
⊢ 𝟙 (F.obj (e.functor.obj (e.inverse.obj X))) ≫ F.map (e.counitIso.hom.app X) ≫ 𝟙 (F.obj X) = F.map ((counit e).app X)
Theorem: Monovary.sum_comp_perm_smul_eq_sum_smul_iff
File: Mathlib/Algebra/Order/Rearrangement.lean

tactic: simp [(hfg.monovaryOn _).sum_comp_perm_smul_eq_sum_smul_iff fun _ _ ↦ mem_univ _]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : LinearOrderedRing α
inst✝³ : LinearOrderedAddCommGroup β
inst✝² : Module α β
inst✝¹ : OrderedSMul α β
s : Finset ι
σ : Perm ι
f : ι → α
g : ι → β
inst✝ : Fintype ι
hfg : Monovary f g
⊢ ∑ i : ι, f (↑σ i) • g i = ∑ i : ι, f i • g i ↔ Monovary (f ∘ ↑σ) g
Theorem: CategoryTheory.Equivalence.cancel_unitInv_right
File: Mathlib/CategoryTheory/Equivalence.lean

tactic: simp only [cancel_mono]
state_before: C : Type u₁
inst✝² : Category C
D : Type u₂
inst✝¹ : Category D
E : Type u₃
inst✝ : Category E
e : C ≌ D
X Y : C
f f' : X ⟶ e.inverse.obj (e.functor.obj Y)
⊢ f ≫ (unitInv e).app Y = f' ≫ (unitInv e).app Y ↔ f = f'
Theorem: Finset.diag_singleton
File: Mathlib/Data/Finset/Prod.lean

tactic: rw [← product_sdiff_offDiag, offDiag_singleton, sdiff_empty, singleton_product_singleton]
state_before: α : Type u_1
β : Type ?u.128187
γ : Type ?u.128190
inst✝ : DecidableEq α
s t : Finset α
x : α × α
a : α
⊢ diag {a} = {(a, a)}
Theorem: Polynomial.coe_mul
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: simp only [coeff_coe, PowerSeries.coeff_mul, coeff_mul]
state_before: σ : Type ?u.4310929
R : Type u_1
inst✝ : CommSemiring R
φ ψ : R[X]
n : ℕ
⊢ ↑(PowerSeries.coeff R n) ↑(φ * ψ) = ↑(PowerSeries.coeff R n) (↑φ * ↑ψ)
Theorem: Submodule.adjoint_subtypeL
File: Mathlib/Analysis/InnerProductSpace/Adjoint.lean

tactic: symm
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.852407
G : Type ?u.852410
inst✝¹⁰ : IsROrC 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : InnerProductSpace 𝕜 E
inst✝⁵ : InnerProductSpace 𝕜 F
inst✝⁴ : InnerProductSpace 𝕜 G
inst✝³ : CompleteSpace E
inst✝² : CompleteSpace G
inst✝¹ : CompleteSpace F
U : Submodule 𝕜 E
inst✝ : CompleteSpace { x // x ∈ U }
⊢ ↑adjoint (Submodule.subtypeL U) = orthogonalProjection U

tactic: rw [eq_adjoint_iff]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.852407
G : Type ?u.852410
inst✝¹⁰ : IsROrC 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : InnerProductSpace 𝕜 E
inst✝⁵ : InnerProductSpace 𝕜 F
inst✝⁴ : InnerProductSpace 𝕜 G
inst✝³ : CompleteSpace E
inst✝² : CompleteSpace G
inst✝¹ : CompleteSpace F
U : Submodule 𝕜 E
inst✝ : CompleteSpace { x // x ∈ U }
⊢ orthogonalProjection U = ↑adjoint (Submodule.subtypeL U)

tactic: intro x u
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.852407
G : Type ?u.852410
inst✝¹⁰ : IsROrC 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : InnerProductSpace 𝕜 E
inst✝⁵ : InnerProductSpace 𝕜 F
inst✝⁴ : InnerProductSpace 𝕜 G
inst✝³ : CompleteSpace E
inst✝² : CompleteSpace G
inst✝¹ : CompleteSpace F
U : Submodule 𝕜 E
inst✝ : CompleteSpace { x // x ∈ U }
⊢ ∀ (x : E) (y : (fun x => { x // x ∈ U }) x),
    inner (↑(orthogonalProjection U) x) y = inner x (↑(Submodule.subtypeL U) y)

tactic: rw [U.coe_inner, inner_orthogonalProjection_left_eq_right,
  orthogonalProjection_mem_subspace_eq_self]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.852407
G : Type ?u.852410
inst✝¹⁰ : IsROrC 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : InnerProductSpace 𝕜 E
inst✝⁵ : InnerProductSpace 𝕜 F
inst✝⁴ : InnerProductSpace 𝕜 G
inst✝³ : CompleteSpace E
inst✝² : CompleteSpace G
inst✝¹ : CompleteSpace F
U : Submodule 𝕜 E
inst✝ : CompleteSpace { x // x ∈ U }
x : E
u : { x // x ∈ U }
⊢ inner (↑(orthogonalProjection U) x) u = inner x (↑(Submodule.subtypeL U) u)

tactic: rfl
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.852407
G : Type ?u.852410
inst✝¹⁰ : IsROrC 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : InnerProductSpace 𝕜 E
inst✝⁵ : InnerProductSpace 𝕜 F
inst✝⁴ : InnerProductSpace 𝕜 G
inst✝³ : CompleteSpace E
inst✝² : CompleteSpace G
inst✝¹ : CompleteSpace F
U : Submodule 𝕜 E
inst✝ : CompleteSpace { x // x ∈ U }
x : E
u : { x // x ∈ U }
⊢ inner x ↑u = inner x (↑(Submodule.subtypeL U) u)
Theorem: Subgroup.dvd_index_map
File: Mathlib/GroupTheory/Index.lean

tactic: rw [index_map, sup_of_le_left hf]
state_before: G : Type u_2
inst✝¹ : Group G
H K L : Subgroup G
G' : Type u_1
inst✝ : Group G'
f : G →* G'
hf : MonoidHom.ker f ≤ H
⊢ index H ∣ index (map f H)

tactic: apply dvd_mul_right
state_before: G : Type u_2
inst✝¹ : Group G
H K L : Subgroup G
G' : Type u_1
inst✝ : Group G'
f : G →* G'
hf : MonoidHom.ker f ≤ H
⊢ index H ∣ index H * index (MonoidHom.range f)
Theorem: TensorAlgebra.ι_range_disjoint_one
File: Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean

tactic: rw [Submodule.disjoint_def]
state_before: R : Type u_1
inst✝² : CommSemiring R
M : Type u_2
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
⊢ Disjoint (LinearMap.range (ι R)) 1

tactic: rintro _ ⟨x, hx⟩ ⟨r, rfl⟩
state_before: R : Type u_1
inst✝² : CommSemiring R
M : Type u_2
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
⊢ ∀ (x : TensorAlgebra R M), x ∈ LinearMap.range (ι R) → x ∈ 1 → x = 0

tactic: rw [Algebra.linearMap_apply, ι_eq_algebraMap_iff] at hx
state_before: case intro.intro
R : Type u_1
inst✝² : CommSemiring R
M : Type u_2
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
x : M
r : R
hx : ↑(ι R) x = ↑(Algebra.linearMap R (TensorAlgebra R M)) r
⊢ ↑(Algebra.linearMap R (TensorAlgebra R M)) r = 0

tactic: rw [hx.2, map_zero]
state_before: case intro.intro
R : Type u_1
inst✝² : CommSemiring R
M : Type u_2
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
x : M
r : R
hx : x = 0 ∧ r = 0
⊢ ↑(Algebra.linearMap R (TensorAlgebra R M)) r = 0
Theorem: Real.sqrt_lt
File: Mathlib/Data/Real/Sqrt.lean

tactic: rw [← sqrt_lt_sqrt_iff hx, sqrt_sq hy]
state_before: x y : ℝ
hx : 0 ≤ x
hy : 0 ≤ y
⊢ sqrt x < y ↔ x < y ^ 2
Theorem: StarSubalgebra.gc
File: Mathlib/Algebra/Star/Subalgebra.lean

tactic: intro s S
state_before: F : Type ?u.459241
R : Type u_2
A : Type u_1
B : Type ?u.459250
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
inst✝⁵ : StarRing A
inst✝⁴ : StarModule R A
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : StarRing B
inst✝ : StarModule R B
⊢ GaloisConnection (adjoin R) SetLike.coe

tactic: rw [← toSubalgebra_le_iff, adjoin_toSubalgebra, Algebra.adjoin_le_iff, coe_toSubalgebra]
state_before: F : Type ?u.459241
R : Type u_2
A : Type u_1
B : Type ?u.459250
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
inst✝⁵ : StarRing A
inst✝⁴ : StarModule R A
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : StarRing B
inst✝ : StarModule R B
s : Set A
S : StarSubalgebra R A
⊢ adjoin R s ≤ S ↔ s ≤ ↑S

tactic: exact
  ⟨fun h => (Set.subset_union_left s _).trans h, fun h =>
    Set.union_subset h fun x hx => star_star x ▸ star_mem (show star x ∈ S from h hx)⟩
state_before: F : Type ?u.459241
R : Type u_2
A : Type u_1
B : Type ?u.459250
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
inst✝⁵ : StarRing A
inst✝⁴ : StarModule R A
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : StarRing B
inst✝ : StarModule R B
s : Set A
S : StarSubalgebra R A
⊢ s ∪ star s ⊆ ↑S ↔ s ≤ ↑S
Theorem: Zsqrtd.ofInt_eq_coe
File: Mathlib/NumberTheory/Zsqrtd/Basic.lean

tactic: simp [ext, ofInt_re, ofInt_im]
state_before: d n : ℤ
⊢ ofInt n = ↑n
Theorem: Real.sqrt_eq_iff_sq_eq
File: Mathlib/Data/Real/Sqrt.lean

tactic: rw [sq, sqrt_eq_iff_mul_self_eq hx hy]
state_before: x y : ℝ
hx : 0 ≤ x
hy : 0 ≤ y
⊢ sqrt x = y ↔ y ^ 2 = x
Theorem: fderivWithin_of_mem_nhds
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

tactic: simp only [fderiv, fderivWithin, HasFDerivAt, HasFDerivWithinAt, nhdsWithin_eq_nhds.2 h]
state_before: 𝕜 : Type u_3
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_2
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.342661
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.342756
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
h : s ∈ 𝓝 x
⊢ fderivWithin 𝕜 f s x = fderiv 𝕜 f x
Theorem: Bool.decide_iff
File: Mathlib/Init/Data/Bool/Lemmas.lean

tactic: simp
state_before: p : Prop
d : Decidable p
⊢ decide p = true ↔ p
Theorem: Polynomial.trinomial_natTrailingDegree
File: Mathlib/Data/Polynomial/UnitTrinomial.lean

tactic: refine'
  natTrailingDegree_eq_of_trailingDegree_eq_some
    ((Finset.le_inf fun i h => _).antisymm <|
        le_trailingDegree_of_ne_zero <| by rwa [trinomial_trailing_coeff' hkm hmn]).symm
state_before: R : Type u_1
inst✝ : Semiring R
k m n : ℕ
u v w : R
hkm : k < m
hmn : m < n
hu : u ≠ 0
⊢ natTrailingDegree (trinomial k m n u v w) = k

tactic: replace h := support_trinomial' k m n u v w h
state_before: R : Type u_1
inst✝ : Semiring R
k m n : ℕ
u v w : R
hkm : k < m
hmn : m < n
hu : u ≠ 0
i : ℕ
h : i ∈ support (trinomial k m n u v w)
⊢ ↑k ≤ ↑i

tactic: rw [mem_insert, mem_insert, mem_singleton] at h
state_before: R : Type u_1
inst✝ : Semiring R
k m n : ℕ
u v w : R
hkm : k < m
hmn : m < n
hu : u ≠ 0
i : ℕ
h : i ∈ {k, m, n}
⊢ ↑k ≤ ↑i

tactic: rcases h with (rfl | rfl | rfl)
state_before: R : Type u_1
inst✝ : Semiring R
k m n : ℕ
u v w : R
hkm : k < m
hmn : m < n
hu : u ≠ 0
i : ℕ
h : i = k ∨ i = m ∨ i = n
⊢ ↑k ≤ ↑i

tactic: rwa [trinomial_trailing_coeff' hkm hmn]
state_before: R : Type u_1
inst✝ : Semiring R
k m n : ℕ
u v w : R
hkm : k < m
hmn : m < n
hu : u ≠ 0
⊢ coeff (trinomial k m n u v w) k ≠ 0

tactic: exact le_rfl
state_before: case inl
R : Type u_1
inst✝ : Semiring R
m n : ℕ
u v w : R
hmn : m < n
hu : u ≠ 0
i : ℕ
hkm : i < m
⊢ ↑i ≤ ↑i

tactic: exact WithTop.coe_le_coe.mpr hkm.le
state_before: case inr.inl
R : Type u_1
inst✝ : Semiring R
k n : ℕ
u v w : R
hu : u ≠ 0
i : ℕ
hkm : k < i
hmn : i < n
⊢ ↑k ≤ ↑i

tactic: exact WithTop.coe_le_coe.mpr (hkm.trans hmn).le
state_before: case inr.inr
R : Type u_1
inst✝ : Semiring R
k m : ℕ
u v w : R
hkm : k < m
hu : u ≠ 0
i : ℕ
hmn : m < i
⊢ ↑k ≤ ↑i
Theorem: AlgebraicIndependent.mono
File: Mathlib/RingTheory/AlgebraicIndependent.lean

tactic: simpa [Function.comp] using hx.comp (inclusion h) (inclusion_injective h)
state_before: ι : Type ?u.534033
ι' : Type ?u.534036
R : Type u_2
K : Type ?u.534042
A : Type u_1
A' : Type ?u.534048
A'' : Type ?u.534051
V : Type u
V' : Type ?u.534056
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
t s : Set A
h : t ⊆ s
hx : AlgebraicIndependent R Subtype.val
⊢ AlgebraicIndependent R Subtype.val
Theorem: StructureGroupoid.LocalInvariantProp.liftPropOn_of_liftProp
File: Mathlib/Geometry/Manifold/LocalInvariantProperties.lean

tactic: rw [← liftPropOn_univ] at h
state_before: H : Type u_1
M : Type u_2
H' : Type u_3
M' : Type u_4
X : Type ?u.52502
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
e e' : LocalHomeomorph M H
f f' : LocalHomeomorph M' H'
P : (H → H') → Set H → H → Prop
g g' : M → M'
s t : Set M
x : M
Q : (H → H) → Set H → H → Prop
hG : LocalInvariantProp G G' P
mono : ∀ ⦃s : Set H⦄ ⦃x : H⦄ ⦃t : Set H⦄ ⦃f : H → H'⦄, t ⊆ s → P f s x → P f t x
h : LiftProp P g
⊢ LiftPropOn P g s

tactic: exact liftPropOn_mono mono h (subset_univ _)
state_before: H : Type u_1
M : Type u_2
H' : Type u_3
M' : Type u_4
X : Type ?u.52502
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
e e' : LocalHomeomorph M H
f f' : LocalHomeomorph M' H'
P : (H → H') → Set H → H → Prop
g g' : M → M'
s t : Set M
x : M
Q : (H → H) → Set H → H → Prop
hG : LocalInvariantProp G G' P
mono : ∀ ⦃s : Set H⦄ ⦃x : H⦄ ⦃t : Set H⦄ ⦃f : H → H'⦄, t ⊆ s → P f s x → P f t x
h : LiftPropOn P g univ
⊢ LiftPropOn P g s
Theorem: Memℓp.neg
File: Mathlib/Analysis/NormedSpace/lpSpace.lean

tactic: rcases p.trichotomy with (rfl | rfl | hp)
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : (i : α) → E i
hf : Memℓp f p
⊢ Memℓp (-f) p

tactic: apply memℓp_zero
state_before: case inl
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : (i : α) → E i
hf : Memℓp f 0
⊢ Memℓp (-f) 0

tactic: simp [hf.finite_dsupport]
state_before: case inl.hf
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : (i : α) → E i
hf : Memℓp f 0
⊢ Set.Finite {i | (-f) i ≠ 0}

tactic: apply memℓp_infty
state_before: case inr.inl
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : (i : α) → E i
hf : Memℓp f ⊤
⊢ Memℓp (-f) ⊤

tactic: simpa using hf.bddAbove
state_before: case inr.inl.hf
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : (i : α) → E i
hf : Memℓp f ⊤
⊢ BddAbove (Set.range fun i => ‖(-f) i‖)

tactic: apply memℓp_gen
state_before: case inr.inr
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : (i : α) → E i
hf : Memℓp f p
hp : 0 < ENNReal.toReal p
⊢ Memℓp (-f) p

tactic: simpa using hf.summable hp
state_before: case inr.inr.hf
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : (i : α) → E i
hf : Memℓp f p
hp : 0 < ENNReal.toReal p
⊢ Summable fun i => ‖(-f) i‖ ^ ENNReal.toReal p
Theorem: MeasurableEmbedding.measurableSet_image
File: Mathlib/MeasureTheory/MeasurableSpace.lean

tactic: simpa only [hf.injective.preimage_image] using hf.measurable h
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.379194
δ : Type ?u.379197
δ' : Type ?u.379200
ι : Sort uι
s✝ t u : Set α
mα : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
f : α → β
g : β → γ
hf : MeasurableEmbedding f
s : Set α
h : MeasurableSet (f '' s)
⊢ MeasurableSet s
Theorem: UniformOnFun.inf_eq
File: Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean

tactic: rw [inf_eq_iInf, inf_eq_iInf, UniformOnFun.iInf_eq]
state_before: α : Type u_2
β : Type ?u.74859
γ : Type u_1
ι : Type ?u.74865
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
u₁ u₂ : UniformSpace γ
⊢ uniformSpace α γ 𝔖 = uniformSpace α γ 𝔖 ⊓ uniformSpace α γ 𝔖

tactic: refine' iInf_congr fun i => _
state_before: α : Type u_2
β : Type ?u.74859
γ : Type u_1
ι : Type ?u.74865
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
u₁ u₂ : UniformSpace γ
⊢ (⨅ (i : Bool), uniformSpace α γ 𝔖) = ⨅ (b : Bool), bif b then uniformSpace α γ 𝔖 else uniformSpace α γ 𝔖

tactic: cases i <;> rfl
state_before: α : Type u_2
β : Type ?u.74859
γ : Type u_1
ι : Type ?u.74865
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
u₁ u₂ : UniformSpace γ
i : Bool
⊢ uniformSpace α γ 𝔖 = bif i then uniformSpace α γ 𝔖 else uniformSpace α γ 𝔖
Theorem: Int.isUnit_add_isUnit_eq_isUnit_add_isUnit
File: Mathlib/Data/Int/Units.lean

tactic: rw [isUnit_iff] at ha hb hc hd
state_before: a b c d : ℤ
ha : IsUnit a
hb : IsUnit b
hc : IsUnit c
hd : IsUnit d
⊢ a + b = c + d ↔ a = c ∧ b = d ∨ a = d ∧ b = c

tactic: cases ha <;> cases hb <;> cases hc <;> cases hd <;>
    subst a <;> subst b <;> subst c <;> subst d <;>
  simp
state_before: a b c d : ℤ
ha : a = 1 ∨ a = -1
hb : b = 1 ∨ b = -1
hc : c = 1 ∨ c = -1
hd : d = 1 ∨ d = -1
⊢ a + b = c + d ↔ a = c ∧ b = d ∨ a = d ∧ b = c
Theorem: Set.iUnion_Ioo_left
File: Mathlib/Data/Set/Intervals/Disjoint.lean

tactic: simp only [← Ioi_inter_Iio, ← iUnion_inter, iUnion_Ioi, univ_inter]
state_before: ι : Sort u
α : Type v
β : Type w
inst✝¹ : Preorder α
a b✝ c : α
inst✝ : NoMinOrder α
b : α
⊢ (⋃ (a : α), Ioo a b) = Iio b
Theorem: Real.Angle.sign_antiperiodic
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: rw [sign, sign, sin_add_pi, Left.sign_neg]
state_before: θ : Angle
⊢ sign (θ + ↑π) = -sign θ
Theorem: MeasureTheory.Lp.toLp_coeFn
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: cases f
state_before: α : Type u_1
E : Type u_2
F : Type ?u.364114
G : Type ?u.364117
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : { x // x ∈ Lp E p }
hf : Memℒp (↑↑f) p
⊢ Memℒp.toLp (↑↑f) hf = f

tactic: simp [Memℒp.toLp]
state_before: case mk
α : Type u_1
E : Type u_2
F : Type ?u.364114
G : Type ?u.364117
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
val✝ : α →ₘ[μ] E
property✝ : val✝ ∈ Lp E p
hf : Memℒp (↑↑{ val := val✝, property := property✝ }) p
⊢ Memℒp.toLp (↑↑{ val := val✝, property := property✝ }) hf = { val := val✝, property := property✝ }
Theorem: Nat.not_eq_zero_of_lt
File: src/lean/Init/Data/Nat/Basic.lean

tactic: cases a
state_before: b a : Nat
h : b < a
⊢ a ≠ 0

tactic: exact absurd h (Nat.not_lt_zero _)
state_before: case zero
b : Nat
h : b < zero
⊢ zero ≠ 0

case succ
b n✝ : Nat
h : b < succ n✝
⊢ succ n✝ ≠ 0

tactic: apply Nat.noConfusion
state_before: case succ
b n✝ : Nat
h : b < succ n✝
⊢ succ n✝ ≠ 0
Theorem: Polynomial.map_div
File: Mathlib/Data/Polynomial/FieldDivision.lean

tactic: if hq0 : q = 0 then simp [hq0]
else
  rw [div_def, div_def, Polynomial.map_mul, map_divByMonic f (monic_mul_leadingCoeff_inv hq0),
    Polynomial.map_mul, map_C, leadingCoeff_map, map_inv₀]
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝¹ : Field R
p q : R[X]
inst✝ : Field k
f : R →+* k
⊢ map f (p / q) = map f p / map f q

tactic: simp [hq0]
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝¹ : Field R
p q : R[X]
inst✝ : Field k
f : R →+* k
hq0 : q = 0
⊢ map f (p / q) = map f p / map f q

tactic: rw [div_def, div_def, Polynomial.map_mul, map_divByMonic f (monic_mul_leadingCoeff_inv hq0),
  Polynomial.map_mul, map_C, leadingCoeff_map, map_inv₀]
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝¹ : Field R
p q : R[X]
inst✝ : Field k
f : R →+* k
hq0 : ¬q = 0
⊢ map f (p / q) = map f p / map f q
Theorem: Asymptotics.superpolynomialDecay_iff_isLittleO
File: Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean

tactic: refine' ⟨fun h z => _, fun h => (superpolynomialDecay_iff_isBigO f hk).2 fun z => (h z).isBigO⟩
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝¹ : NormedLinearOrderedField β
inst✝ : OrderTopology β
hk : Tendsto k l atTop
⊢ SuperpolynomialDecay l k f ↔ ∀ (z : ℤ), f =o[l] fun a => k a ^ z

tactic: have hk0 : ∀ᶠ x in l, k x ≠ 0 := hk.eventually_ne_atTop 0
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝¹ : NormedLinearOrderedField β
inst✝ : OrderTopology β
hk : Tendsto k l atTop
h : SuperpolynomialDecay l k f
z : ℤ
⊢ f =o[l] fun a => k a ^ z

tactic: have : (fun _ : α => (1 : β)) =o[l] k :=
  isLittleO_of_tendsto' (hk0.mono fun x hkx hkx' => absurd hkx' hkx)
    (by simpa using hk.inv_tendsto_atTop)
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝¹ : NormedLinearOrderedField β
inst✝ : OrderTopology β
hk : Tendsto k l atTop
h : SuperpolynomialDecay l k f
z : ℤ
hk0 : ∀ᶠ (x : α) in l, k x ≠ 0
⊢ f =o[l] fun a => k a ^ z

tactic: have : f =o[l] fun x : α => k x * k x ^ (z - 1) := by
  simpa using this.mul_isBigO ((superpolynomialDecay_iff_isBigO f hk).1 h <| z - 1)
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝¹ : NormedLinearOrderedField β
inst✝ : OrderTopology β
hk : Tendsto k l atTop
h : SuperpolynomialDecay l k f
z : ℤ
hk0 : ∀ᶠ (x : α) in l, k x ≠ 0
this : (fun x => 1) =o[l] k
⊢ f =o[l] fun a => k a ^ z

tactic: refine' this.trans_isBigO (IsBigO.of_bound 1 (hk0.mono fun x hkx => le_of_eq _))
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝¹ : NormedLinearOrderedField β
inst✝ : OrderTopology β
hk : Tendsto k l atTop
h : SuperpolynomialDecay l k f
z : ℤ
hk0 : ∀ᶠ (x : α) in l, k x ≠ 0
this✝ : (fun x => 1) =o[l] k
this : f =o[l] fun x => k x * k x ^ (z - 1)
⊢ f =o[l] fun a => k a ^ z

tactic: rw [one_mul, zpow_sub_one₀ hkx, mul_comm (k x), mul_assoc, inv_mul_cancel hkx, mul_one]
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝¹ : NormedLinearOrderedField β
inst✝ : OrderTopology β
hk : Tendsto k l atTop
h : SuperpolynomialDecay l k f
z : ℤ
hk0 : ∀ᶠ (x : α) in l, k x ≠ 0
this✝ : (fun x => 1) =o[l] k
this : f =o[l] fun x => k x * k x ^ (z - 1)
x : α
hkx : k x ≠ 0
⊢ ‖k x * k x ^ (z - 1)‖ = 1 * ‖k x ^ z‖

tactic: simpa using hk.inv_tendsto_atTop
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝¹ : NormedLinearOrderedField β
inst✝ : OrderTopology β
hk : Tendsto k l atTop
h : SuperpolynomialDecay l k f
z : ℤ
hk0 : ∀ᶠ (x : α) in l, k x ≠ 0
⊢ Tendsto (fun x => 1 / k x) l (𝓝 0)

tactic: simpa using this.mul_isBigO ((superpolynomialDecay_iff_isBigO f hk).1 h <| z - 1)
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝¹ : NormedLinearOrderedField β
inst✝ : OrderTopology β
hk : Tendsto k l atTop
h : SuperpolynomialDecay l k f
z : ℤ
hk0 : ∀ᶠ (x : α) in l, k x ≠ 0
this : (fun x => 1) =o[l] k
⊢ f =o[l] fun x => k x * k x ^ (z - 1)
Theorem: Bitvec.decide_addLsb_mod_two
File: Mathlib/Data/Bitvec/Lemmas.lean

tactic: cases b <;>
    simp only [Bool.decide_iff, Nat.add_mul_mod_self_left, addLsb, ← two_mul, add_comm,
      Bool.decide_False, Nat.mul_mod_right, zero_add, cond, zero_ne_one]
state_before: x : ℕ
b : Bool
⊢ decide (addLsb x b % 2 = 1) = b
Theorem: norm_iteratedFDeriv_clm_apply
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: simp only [← iteratedFDerivWithin_univ]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.4372273
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
f : E → F →L[𝕜] G
g : E → F
N : ℕ∞
n : ℕ
hf : ContDiff 𝕜 N f
hg : ContDiff 𝕜 N g
x : E
hn : ↑n ≤ N
⊢ ‖iteratedFDeriv 𝕜 n (fun y => ↑(f y) (g y)) x‖ ≤
    ∑ i in Finset.range (n + 1), ↑(Nat.choose n i) * ‖iteratedFDeriv 𝕜 i f x‖ * ‖iteratedFDeriv 𝕜 (n - i) g x‖

tactic: exact norm_iteratedFDerivWithin_clm_apply hf.contDiffOn hg.contDiffOn uniqueDiffOn_univ
  (Set.mem_univ x) hn
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.4372273
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
f : E → F →L[𝕜] G
g : E → F
N : ℕ∞
n : ℕ
hf : ContDiff 𝕜 N f
hg : ContDiff 𝕜 N g
x : E
hn : ↑n ≤ N
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(f y) (g y)) univ x‖ ≤
    ∑ x_1 in Finset.range (n + 1),
      ↑(Nat.choose n x_1) * ‖iteratedFDerivWithin 𝕜 x_1 f univ x‖ * ‖iteratedFDerivWithin 𝕜 (n - x_1) g univ x‖