tasksource/leandojo huggingface dataset:
Theorem: CategoryTheory.exact_comp_mono_iff
File: Mathlib/Algebra/Homology/Exact.lean

tactic: refine'
  ⟨fun hfg => ⟨zero_of_comp_mono h (by rw [Category.assoc, hfg.1]), _⟩, fun h =>
    exact_comp_mono h⟩
state_before: V : Type u
inst✝⁴ : Category V
inst✝³ : HasImages V
A B C D : V
f : A ⟶ B
g : B ⟶ C
h : C ⟶ D
inst✝² : HasZeroMorphisms V
inst✝¹ : HasEqualizers V
inst✝ : Mono h
⊢ Exact f (g ≫ h) ↔ Exact f g

tactic: rw [← (Iso.eq_comp_inv _).1 (imageToKernel_comp_mono _ _ h hfg.1)]
state_before: V : Type u
inst✝⁴ : Category V
inst✝³ : HasImages V
A B C D : V
f : A ⟶ B
g : B ⟶ C
h : C ⟶ D
inst✝² : HasZeroMorphisms V
inst✝¹ : HasEqualizers V
inst✝ : Mono h
hfg : Exact f (g ≫ h)
⊢ Epi (imageToKernel f g (_ : f ≫ g = 0))

tactic: haveI := hfg.2
state_before: V : Type u
inst✝⁴ : Category V
inst✝³ : HasImages V
A B C D : V
f : A ⟶ B
g : B ⟶ C
h : C ⟶ D
inst✝² : HasZeroMorphisms V
inst✝¹ : HasEqualizers V
inst✝ : Mono h
hfg : Exact f (g ≫ h)
⊢ Epi
    (imageToKernel f (g ≫ h) (_ : f ≫ g ≫ h = 0) ≫
      (Subobject.isoOfEq (kernelSubobject (g ≫ h)) (kernelSubobject g)
          (_ : kernelSubobject (g ≫ h) = kernelSubobject g)).hom)

tactic: infer_instance
state_before: V : Type u
inst✝⁴ : Category V
inst✝³ : HasImages V
A B C D : V
f : A ⟶ B
g : B ⟶ C
h : C ⟶ D
inst✝² : HasZeroMorphisms V
inst✝¹ : HasEqualizers V
inst✝ : Mono h
hfg : Exact f (g ≫ h)
this : Epi (imageToKernel f (g ≫ h) (_ : f ≫ g ≫ h = 0))
⊢ Epi
    (imageToKernel f (g ≫ h) (_ : f ≫ g ≫ h = 0) ≫
      (Subobject.isoOfEq (kernelSubobject (g ≫ h)) (kernelSubobject g)
          (_ : kernelSubobject (g ≫ h) = kernelSubobject g)).hom)

tactic: rw [Category.assoc, hfg.1]
state_before: V : Type u
inst✝⁴ : Category V
inst✝³ : HasImages V
A B C D : V
f : A ⟶ B
g : B ⟶ C
h : C ⟶ D
inst✝² : HasZeroMorphisms V
inst✝¹ : HasEqualizers V
inst✝ : Mono h
hfg : Exact f (g ≫ h)
⊢ (f ≫ g) ≫ h = 0
Theorem: Matrix.adjugate_zero
File: Mathlib/LinearAlgebra/Matrix/Adjugate.lean

tactic: ext (i j)
state_before: m : Type u
n : Type v
α : Type w
inst✝⁵ : DecidableEq n
inst✝⁴ : Fintype n
inst✝³ : DecidableEq m
inst✝² : Fintype m
inst✝¹ : CommRing α
inst✝ : Nontrivial n
⊢ adjugate 0 = 0

tactic: obtain ⟨j', hj'⟩ : ∃ j', j' ≠ j := exists_ne j
state_before: case a.h
m : Type u
n : Type v
α : Type w
inst✝⁵ : DecidableEq n
inst✝⁴ : Fintype n
inst✝³ : DecidableEq m
inst✝² : Fintype m
inst✝¹ : CommRing α
inst✝ : Nontrivial n
i j : n
⊢ adjugate 0 i j = OfNat.ofNat 0 i j

tactic: apply det_eq_zero_of_column_eq_zero j'
state_before: case a.h.intro
m : Type u
n : Type v
α : Type w
inst✝⁵ : DecidableEq n
inst✝⁴ : Fintype n
inst✝³ : DecidableEq m
inst✝² : Fintype m
inst✝¹ : CommRing α
inst✝ : Nontrivial n
i j j' : n
hj' : j' ≠ j
⊢ adjugate 0 i j = OfNat.ofNat 0 i j

tactic: intro j''
state_before: case a.h.intro
m : Type u
n : Type v
α : Type w
inst✝⁵ : DecidableEq n
inst✝⁴ : Fintype n
inst✝³ : DecidableEq m
inst✝² : Fintype m
inst✝¹ : CommRing α
inst✝ : Nontrivial n
i j j' : n
hj' : j' ≠ j
⊢ ∀ (i_1 : n), updateColumn 0ᵀ j (Pi.single i 1) i_1 j' = 0

tactic: simp [updateColumn_ne hj']
state_before: case a.h.intro
m : Type u
n : Type v
α : Type w
inst✝⁵ : DecidableEq n
inst✝⁴ : Fintype n
inst✝³ : DecidableEq m
inst✝² : Fintype m
inst✝¹ : CommRing α
inst✝ : Nontrivial n
i j j' : n
hj' : j' ≠ j
j'' : n
⊢ updateColumn 0ᵀ j (Pi.single i 1) j'' j' = 0
Theorem: Int.nonneg_of_neg_nonpos
File: Std/Data/Int/Lemmas.lean

tactic: rwa [Int.neg_zero]
state_before: a : Int
h : -a ≤ 0
⊢ -a ≤ -0
Theorem: Finset.image_image₂_distrib_left
File: Mathlib/Data/Finset/NAry.lean

tactic: push_cast
state_before: α : Type u_3
α' : Type u_5
β : Type u_4
β' : Type ?u.81339
γ : Type u_2
γ' : Type ?u.81345
δ : Type u_1
δ' : Type ?u.81351
ε : Type ?u.81354
ε' : Type ?u.81357
ζ : Type ?u.81360
ζ' : Type ?u.81363
ν : Type ?u.81366
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' : α → α'
h_distrib : ∀ (a : α) (b : β), g (f a b) = f' (g' a) b
⊢ ↑(image g (image₂ f s t)) = ↑(image₂ f' (image g' s) t)

tactic: exact image_image2_distrib_left h_distrib
state_before: α : Type u_3
α' : Type u_5
β : Type u_4
β' : Type ?u.81339
γ : Type u_2
γ' : Type ?u.81345
δ : Type u_1
δ' : Type ?u.81351
ε : Type ?u.81354
ε' : Type ?u.81357
ζ : Type ?u.81360
ζ' : Type ?u.81363
ν : Type ?u.81366
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' : α → α'
h_distrib : ∀ (a : α) (b : β), g (f a b) = f' (g' a) b
⊢ g '' image2 f ↑s ↑t = image2 f' (g' '' ↑s) ↑t
Theorem: CategoryTheory.Limits.Cocone.ofCofork_ι
File: Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean

tactic: aesop
state_before: C : Type u
inst✝ : Category C
X Y : C
f g : X ⟶ Y
F : WalkingParallelPair ⥤ C
t : Cofork (F.map left) (F.map right)
j : WalkingParallelPair
⊢ F.obj j = (parallelPair (F.map left) (F.map right)).obj j
Theorem: MeasureTheory.Measure.sum_bool
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [sum_fintype, Fintype.sum_bool]
state_before: α : Type u_1
β : Type ?u.343849
γ : Type ?u.343852
δ : Type ?u.343855
ι : Type ?u.343858
R : Type ?u.343861
R' : Type ?u.343864
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f : Bool → Measure α
⊢ sum f = f true + f false
Theorem: MeasureTheory.snorm'_measure_zero_of_neg
File: Mathlib/MeasureTheory/Function/LpSeminorm.lean

tactic: simp [snorm', hq_neg]
state_before: α : Type u_1
E : Type ?u.949646
F : Type u_2
G : Type ?u.949652
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : MeasurableSpace α
f : α → F
hq_neg : q < 0
⊢ snorm' f q 0 = ⊤
Theorem: MeasureTheory.Measure.restrict_toMeasurable_of_cover
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simp only [restrict_apply ht, inter_comm t, measure_toMeasurable_inter_of_cover ht hv h'v]
state_before: α : Type u_1
β : Type ?u.754301
γ : Type ?u.754304
δ : Type ?u.754307
ι : Type ?u.754310
R : Type ?u.754313
R' : Type ?u.754316
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
v : ℕ → Set α
hv : s ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (s ∩ v n) ≠ ⊤
t : Set α
ht : MeasurableSet t
⊢ ↑↑(restrict μ (toMeasurable μ s)) t = ↑↑(restrict μ s) t
Theorem: Equiv.uniformEmbedding
File: Mathlib/Topology/UniformSpace/UniformEmbedding.lean

tactic: rwa [← Equiv.prodCongr_apply, ← map_equiv_symm]
state_before: α✝ : Type u
β✝ : Type v
γ : Type w
inst✝⁴ : UniformSpace α✝
inst✝³ : UniformSpace β✝
inst✝² : UniformSpace γ
α : Type u_1
β : Type u_2
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
f : α ≃ β
h₁ : UniformContinuous ↑f
h₂ : UniformContinuous ↑f.symm
⊢ comap (Prod.map ↑f ↑f) (𝓤 β) ≤ 𝓤 α
Theorem: of_boolalg_symm_diff_aux
File: Mathlib/Algebra/Ring/BooleanRing.lean

tactic: ring
state_before: α : Type u_1
β : Type ?u.35972
γ : Type ?u.35975
inst✝² : BooleanRing α
inst✝¹ : BooleanRing β
inst✝ : BooleanRing γ
a b : α
⊢ (a + b + a * b) * (1 + a * b) = a + b + (a * b + a * b * (a * b)) + (a * (b * b) + a * a * b)

tactic: simp only [mul_self, add_self, add_zero]
state_before: α : Type u_1
β : Type ?u.35972
γ : Type ?u.35975
inst✝² : BooleanRing α
inst✝¹ : BooleanRing β
inst✝ : BooleanRing γ
a b : α
⊢ a + b + (a * b + a * b * (a * b)) + (a * (b * b) + a * a * b) = a + b
Theorem: Int.add_left_neg
File: Std/Data/Int/Lemmas.lean

tactic: simp
state_before: m : Nat
⊢ -↑(succ m) + ↑(succ m) = 0

tactic: simp
state_before: m : Nat
⊢ - -[m+1] + -[m+1] = 0
Theorem: Associates.reducible_not_mem_factorSet
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: rwa [dif_neg hp] at h
state_before: α : Type u_1
inst✝ : CancelCommMonoidWithZero α
dec_irr : (p : Associates α) → Decidable (Irreducible p)
p : Associates α
hp : ¬Irreducible p
s : FactorSet α
h : if hp : Irreducible p then BfactorSetMem { val := p, property := hp } s else False
⊢ False
Theorem: MeasureTheory.IsFundamentalDomain.set_integral_eq_tsum'
File: Mathlib/MeasureTheory/Group/FundamentalDomain.lean

tactic: simp only [smul_set_inter, inv_smul_smul]
state_before: G : Type u_1
H : Type ?u.390629
α : Type u_2
β : Type ?u.390635
E : Type u_3
inst✝¹² : Group G
inst✝¹¹ : Group H
inst✝¹⁰ : MulAction G α
inst✝⁹ : MeasurableSpace α
inst✝⁸ : MulAction H β
inst✝⁷ : MeasurableSpace β
inst✝⁶ : NormedAddCommGroup E
s t✝ : Set α
μ : Measure α
inst✝⁵ : MeasurableSpace G
inst✝⁴ : MeasurableSMul G α
inst✝³ : SMulInvariantMeasure G α μ
inst✝² : Countable G
ν : Measure α
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
h : IsFundamentalDomain G s
f : α → E
t : Set α
hf : IntegrableOn f t
⊢ (∑' (g : G), ∫ (x : α) in t ∩ g⁻¹ • s, f x ∂μ) = ∑' (g : G), ∫ (x : α) in g⁻¹ • (g • t ∩ s), f x ∂μ
Theorem: measurable_derivWithin_Ioi
File: Mathlib/Analysis/Calculus/FDerivMeasurable.lean

tactic: simpa [derivWithin_Ioi_eq_Ici] using measurable_derivWithin_Ici f
state_before: F : Type u_1
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
f : ℝ → F
K : Set F
inst✝² : CompleteSpace F
inst✝¹ : MeasurableSpace F
inst✝ : BorelSpace F
⊢ Measurable fun x => derivWithin f (Ioi x) x
Theorem: PGame.moveLeft_neg'
File: Mathlib/SetTheory/Game/PGame.lean

tactic: cases x
state_before: x : PGame
i : LeftMoves (-x)
⊢ moveLeft (-x) i = -moveRight x (↑toLeftMovesNeg.symm i)

tactic: rfl
state_before: case mk
α✝ β✝ : Type u_1
a✝¹ : α✝ → PGame
a✝ : β✝ → PGame
i : LeftMoves (-mk α✝ β✝ a✝¹ a✝)
⊢ moveLeft (-mk α✝ β✝ a✝¹ a✝) i = -moveRight (mk α✝ β✝ a✝¹ a✝) (↑toLeftMovesNeg.symm i)
Theorem: CategoryTheory.MonoidalOfChosenFiniteProducts.rightUnitor_naturality
File: Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean

tactic: dsimp [tensorHom]
state_before: C : Type u
inst✝ : Category C
X Y : C
𝒯 : LimitCone (Functor.empty C)
ℬ : (X Y : C) → LimitCone (pair X Y)
X₁ X₂ : C
f : X₁ ⟶ X₂
⊢ tensorHom ℬ f (𝟙 𝒯.cone.pt) ≫ (BinaryFan.rightUnitor 𝒯.isLimit (ℬ X₂ 𝒯.cone.pt).isLimit).hom =
    (BinaryFan.rightUnitor 𝒯.isLimit (ℬ X₁ 𝒯.cone.pt).isLimit).hom ≫ f

tactic: simp
state_before: C : Type u
inst✝ : Category C
X Y : C
𝒯 : LimitCone (Functor.empty C)
ℬ : (X Y : C) → LimitCone (pair X Y)
X₁ X₂ : C
f : X₁ ⟶ X₂
⊢ IsLimit.lift (ℬ X₂ 𝒯.cone.pt).isLimit
        (BinaryFan.mk (BinaryFan.fst (ℬ X₁ 𝒯.cone.pt).cone ≫ f) (BinaryFan.snd (ℬ X₁ 𝒯.cone.pt).cone ≫ 𝟙 𝒯.cone.pt)) ≫
      BinaryFan.fst (ℬ X₂ 𝒯.cone.pt).cone =
    BinaryFan.fst (ℬ X₁ 𝒯.cone.pt).cone ≫ f
Theorem: intervalIntegral.integral_interval_add_interval_comm
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: rw [← integral_add_adjacent_intervals hac hcd, add_assoc, add_left_comm,
  integral_add_adjacent_intervals hac (hac.symm.trans hab), add_comm]
state_before: ι : Type ?u.15847423
𝕜 : Type ?u.15847426
E : Type u_1
F : Type ?u.15847432
A : Type ?u.15847435
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c d : ℝ
f g : ℝ → E
μ : MeasureTheory.Measure ℝ
hab : IntervalIntegrable f μ a b
hcd : IntervalIntegrable f μ c d
hac : IntervalIntegrable f μ a c
⊢ ((∫ (x : ℝ) in a..b, f x ∂μ) + ∫ (x : ℝ) in c..d, f x ∂μ) = (∫ (x : ℝ) in a..d, f x ∂μ) + ∫ (x : ℝ) in c..b, f x ∂μ
Theorem: Order.not_isSuccLimit_iff
File: Mathlib/Order/SuccPred/Limit.lean

tactic: rw [not_isSuccLimit_iff_exists_covby]
state_before: α : Type u_1
inst✝¹ : PartialOrder α
inst✝ : SuccOrder α
a b : α
C : α → Sort ?u.4246
⊢ ¬IsSuccLimit a ↔ ∃ b, ¬IsMax b ∧ succ b = a

tactic: refine' exists_congr fun b => ⟨fun hba => ⟨hba.lt.not_isMax, (Covby.succ_eq hba)⟩, _⟩
state_before: α : Type u_1
inst✝¹ : PartialOrder α
inst✝ : SuccOrder α
a b : α
C : α → Sort ?u.4246
⊢ (∃ b, b ⋖ a) ↔ ∃ b, ¬IsMax b ∧ succ b = a

tactic: rintro ⟨h, rfl⟩
state_before: α : Type u_1
inst✝¹ : PartialOrder α
inst✝ : SuccOrder α
a b✝ : α
C : α → Sort ?u.4246
b : α
⊢ ¬IsMax b ∧ succ b = a → b ⋖ a

tactic: exact covby_succ_of_not_isMax h
state_before: case intro
α : Type u_1
inst✝¹ : PartialOrder α
inst✝ : SuccOrder α
b✝ : α
C : α → Sort ?u.4246
b : α
h : ¬IsMax b
⊢ b ⋖ succ b
Theorem: CategoryTheory.Equivalence.invFunIdAssoc_inv_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).inv.app X = F.map ((counitInv 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 X) ≫ F.map (e.counitIso.inv.app X)) ≫ 𝟙 (F.obj (e.functor.obj (e.inverse.obj X))) =
    F.map ((counitInv e).app X)
Theorem: FormalMultilinearSeries.constFormalMultilinearSeries_radius
File: Mathlib/Analysis/Analytic/Basic.lean

tactic: simp [constFormalMultilinearSeries]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.103270
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0
v : F
⊢ ∀ (m : ℕ), constFormalMultilinearSeries 𝕜 E v (m + 1) = 0
Theorem: MeasureTheory.OuterMeasure.boundedBy_eq
File: Mathlib/MeasureTheory/Measure/OuterMeasure.lean

tactic: rw [boundedBy_eq_ofFunction m_empty, ofFunction_eq s m_mono m_subadd]
state_before: α : Type u_1
m : Set α → ℝ≥0∞
s : Set α
m_empty : m ∅ = 0
m_mono : ∀ ⦃t : Set α⦄, s ⊆ t → m s ≤ m t
m_subadd : ∀ (s : ℕ → Set α), m (⋃ (i : ℕ), s i) ≤ ∑' (i : ℕ), m (s i)
⊢ ↑(boundedBy m) s = m s
Theorem: MvPolynomial.IsHomogeneous.totalDegree
File: Mathlib/RingTheory/MvPolynomial/Homogeneous.lean

tactic: rw [totalDegree]
state_before: σ : Type u_1
τ : Type ?u.163982
R : Type u_2
S : Type ?u.163988
inst✝ : CommSemiring R
φ ψ : MvPolynomial σ R
m n : ℕ
hφ : IsHomogeneous φ n
h : φ ≠ 0
⊢ MvPolynomial.totalDegree φ = n

tactic: apply le_antisymm
state_before: σ : Type u_1
τ : Type ?u.163982
R : Type u_2
S : Type ?u.163988
inst✝ : CommSemiring R
φ ψ : MvPolynomial σ R
m n : ℕ
hφ : IsHomogeneous φ n
h : φ ≠ 0
⊢ (Finset.sup (support φ) fun s => Finsupp.sum s fun x e => e) = n

tactic: apply Finset.sup_le
state_before: case a
σ : Type u_1
τ : Type ?u.163982
R : Type u_2
S : Type ?u.163988
inst✝ : CommSemiring R
φ ψ : MvPolynomial σ R
m n : ℕ
hφ : IsHomogeneous φ n
h : φ ≠ 0
⊢ (Finset.sup (support φ) fun s => Finsupp.sum s fun x e => e) ≤ n

tactic: intro d hd
state_before: case a.a
σ : Type u_1
τ : Type ?u.163982
R : Type u_2
S : Type ?u.163988
inst✝ : CommSemiring R
φ ψ : MvPolynomial σ R
m n : ℕ
hφ : IsHomogeneous φ n
h : φ ≠ 0
⊢ ∀ (b : σ →₀ ℕ), b ∈ support φ → (Finsupp.sum b fun x e => e) ≤ n

tactic: rw [mem_support_iff] at hd
state_before: case a.a
σ : Type u_1
τ : Type ?u.163982
R : Type u_2
S : Type ?u.163988
inst✝ : CommSemiring R
φ ψ : MvPolynomial σ R
m n : ℕ
hφ : IsHomogeneous φ n
h : φ ≠ 0
d : σ →₀ ℕ
hd : d ∈ support φ
⊢ (Finsupp.sum d fun x e => e) ≤ n

tactic: rw [Finsupp.sum, hφ hd]
state_before: case a.a
σ : Type u_1
τ : Type ?u.163982
R : Type u_2
S : Type ?u.163988
inst✝ : CommSemiring R
φ ψ : MvPolynomial σ R
m n : ℕ
hφ : IsHomogeneous φ n
h : φ ≠ 0
d : σ →₀ ℕ
hd : coeff d φ ≠ 0
⊢ (Finsupp.sum d fun x e => e) ≤ n

tactic: obtain ⟨d, hd⟩ : ∃ d, coeff d φ ≠ 0 := exists_coeff_ne_zero h
state_before: case a
σ : Type u_1
τ : Type ?u.163982
R : Type u_2
S : Type ?u.163988
inst✝ : CommSemiring R
φ ψ : MvPolynomial σ R
m n : ℕ
hφ : IsHomogeneous φ n
h : φ ≠ 0
⊢ n ≤ Finset.sup (support φ) fun s => Finsupp.sum s fun x e => e

tactic: simp only [← hφ hd, Finsupp.sum]
state_before: case a.intro
σ : Type u_1
τ : Type ?u.163982
R : Type u_2
S : Type ?u.163988
inst✝ : CommSemiring R
φ ψ : MvPolynomial σ R
m n : ℕ
hφ : IsHomogeneous φ n
h : φ ≠ 0
d : σ →₀ ℕ
hd : coeff d φ ≠ 0
⊢ n ≤ Finset.sup (support φ) fun s => Finsupp.sum s fun x e => e

tactic: replace hd := Finsupp.mem_support_iff.mpr hd
state_before: case a.intro
σ : Type u_1
τ : Type ?u.163982
R : Type u_2
S : Type ?u.163988
inst✝ : CommSemiring R
φ ψ : MvPolynomial σ R
m n : ℕ
hφ : IsHomogeneous φ n
h : φ ≠ 0
d : σ →₀ ℕ
hd : coeff d φ ≠ 0
⊢ ∑ x in d.support, ↑d x ≤ Finset.sup (support φ) fun s => ∑ x in s.support, ↑s x

tactic: exact Finset.le_sup (f := fun s ↦ ∑ x in s.support, (⇑s) x) hd
state_before: case a.intro
σ : Type u_1
τ : Type ?u.163982
R : Type u_2
S : Type ?u.163988
inst✝ : CommSemiring R
φ ψ : MvPolynomial σ R
m n : ℕ
hφ : IsHomogeneous φ n
h : φ ≠ 0
d : σ →₀ ℕ
hd : d ∈ φ.support
⊢ ∑ x in d.support, ↑d x ≤ Finset.sup (support φ) fun s => ∑ x in s.support, ↑s x
Theorem: MeasureTheory.ae_restrict_iff
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simp only [ae_iff, ← compl_setOf, Measure.restrict_apply hp.compl]
state_before: α : Type u_1
β : Type ?u.567121
γ : Type ?u.567124
δ : Type ?u.567127
ι : Type ?u.567130
R : Type ?u.567133
R' : Type ?u.567136
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hp : MeasurableSet {x | p x}
⊢ (∀ᵐ (x : α) ∂Measure.restrict μ s, p x) ↔ ∀ᵐ (x : α) ∂μ, x ∈ s → p x

tactic: rw [iff_iff_eq]
state_before: α : Type u_1
β : Type ?u.567121
γ : Type ?u.567124
δ : Type ?u.567127
ι : Type ?u.567130
R : Type ?u.567133
R' : Type ?u.567136
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hp : MeasurableSet {x | p x}
⊢ ↑↑μ ({x | p x}ᶜ ∩ s) = 0 ↔ ↑↑μ ({x | x ∈ s → p x}ᶜ) = 0

tactic: congr with x
state_before: α : Type u_1
β : Type ?u.567121
γ : Type ?u.567124
δ : Type ?u.567127
ι : Type ?u.567130
R : Type ?u.567133
R' : Type ?u.567136
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hp : MeasurableSet {x | p x}
⊢ (↑↑μ ({x | p x}ᶜ ∩ s) = 0) = (↑↑μ ({x | x ∈ s → p x}ᶜ) = 0)

tactic: simp [and_comm]
state_before: case e_a.e_a.h
α : Type u_1
β : Type ?u.567121
γ : Type ?u.567124
δ : Type ?u.567127
ι : Type ?u.567130
R : Type ?u.567133
R' : Type ?u.567136
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hp : MeasurableSet {x | p x}
x : α
⊢ x ∈ {x | p x}ᶜ ∩ s ↔ x ∈ {x | x ∈ s → p x}ᶜ
Theorem: MeasureTheory.OuterMeasure.toMeasure_top
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [OuterMeasure.top_caratheodory]
state_before: α : Type ?u.157549
β : Type ?u.157552
γ : Type ?u.157555
δ : Type ?u.157558
ι : Type ?u.157561
R : Type ?u.157564
R' : Type ?u.157567
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : MeasurableSpace α
⊢ inst✝ ≤ OuterMeasure.caratheodory ⊤

tactic: exact le_top
state_before: α : Type ?u.157549
β : Type ?u.157552
γ : Type ?u.157555
δ : Type ?u.157558
ι : Type ?u.157561
R : Type ?u.157564
R' : Type ?u.157567
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : MeasurableSpace α
⊢ inst✝ ≤ ⊤

tactic: cases' s.eq_empty_or_nonempty with h h <;>
  simp [h, toMeasure_apply ⊤ _ hs, OuterMeasure.top_apply]
state_before: α : Type u_1
β : Type ?u.157552
γ : Type ?u.157555
δ : Type ?u.157558
ι : Type ?u.157561
R : Type ?u.157564
R' : Type ?u.157567
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : MeasurableSpace α
s : Set α
hs : MeasurableSet s
⊢ ↑↑⊤ s ≤ ↑↑(OuterMeasure.toMeasure ⊤ (_ : inst✝ ≤ OuterMeasure.caratheodory ⊤)) s
Theorem: add_le_mul_two_add
File: Mathlib/Algebra/Order/Ring/Defs.lean

tactic: rw [mul_add, mul_two, add_assoc]
state_before: α : Type u
β : Type ?u.14756
inst✝ : OrderedSemiring α
a b c d : α
a2 : 2 ≤ a
b0 : 0 ≤ b
⊢ a + (a + a * b) ≤ a * (2 + b)
Theorem: MeasureTheory.norm_setToFun_le
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: rw [setToFun_eq hT hf]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.1695148
G : Type ?u.1695151
𝕜 : Type ?u.1695154
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f g : α → E
hT : DominatedFinMeasAdditive μ T C
hf : Integrable f
hC : 0 ≤ C
⊢ ‖setToFun μ T hT f‖ ≤ C * ‖Integrable.toL1 f hf‖

tactic: exact L1.norm_setToL1_le_mul_norm hT hC _
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.1695148
G : Type ?u.1695151
𝕜 : Type ?u.1695154
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f g : α → E
hT : DominatedFinMeasAdditive μ T C
hf : Integrable f
hC : 0 ≤ C
⊢ ‖↑(L1.setToL1 hT) (Integrable.toL1 f hf)‖ ≤ C * ‖Integrable.toL1 f hf‖
Theorem: mersenne_pos
File: Mathlib/NumberTheory/LucasLehmer.lean

tactic: dsimp [mersenne]
state_before: p : ℕ
h : 0 < p
⊢ 0 < mersenne p

tactic: calc
  0 < 2 ^ 1 - 1 := by norm_num
  _ ≤ 2 ^ p - 1 := Nat.sub_le_sub_right (Nat.pow_le_pow_of_le_right (Nat.succ_pos 1) h) 1
state_before: p : ℕ
h : 0 < p
⊢ 0 < 2 ^ p - 1

tactic: norm_num
state_before: p : ℕ
h : 0 < p
⊢ 0 < 2 ^ 1 - 1
Theorem: convexHull_exists_dist_ge2
File: Mathlib/Analysis/Convex/Normed.lean

tactic: rcases convexHull_exists_dist_ge hx y with ⟨x', hx', Hx'⟩
state_before: ι : Type ?u.36641
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s✝ t✝ s t : Set E
x y : E
hx : x ∈ ↑(convexHull ℝ).toOrderHom s
hy : y ∈ ↑(convexHull ℝ).toOrderHom t
⊢ ∃ x', x' ∈ s ∧ ∃ y', y' ∈ t ∧ dist x y ≤ dist x' y'

tactic: rcases convexHull_exists_dist_ge hy x' with ⟨y', hy', Hy'⟩
state_before: case intro.intro
ι : Type ?u.36641
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s✝ t✝ s t : Set E
x y : E
hx : x ∈ ↑(convexHull ℝ).toOrderHom s
hy : y ∈ ↑(convexHull ℝ).toOrderHom t
x' : E
hx' : x' ∈ s
Hx' : dist x y ≤ dist x' y
⊢ ∃ x', x' ∈ s ∧ ∃ y', y' ∈ t ∧ dist x y ≤ dist x' y'

tactic: use x', hx', y', hy'
state_before: case intro.intro.intro.intro
ι : Type ?u.36641
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s✝ t✝ s t : Set E
x y : E
hx : x ∈ ↑(convexHull ℝ).toOrderHom s
hy : y ∈ ↑(convexHull ℝ).toOrderHom t
x' : E
hx' : x' ∈ s
Hx' : dist x y ≤ dist x' y
y' : E
hy' : y' ∈ t
Hy' : dist y x' ≤ dist y' x'
⊢ ∃ x', x' ∈ s ∧ ∃ y', y' ∈ t ∧ dist x y ≤ dist x' y'

tactic: exact le_trans Hx' (dist_comm y x' ▸ dist_comm y' x' ▸ Hy')
state_before: case intro.intro.intro.intro
ι : Type ?u.36641
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s✝ t✝ s t : Set E
x y : E
hx : x ∈ ↑(convexHull ℝ).toOrderHom s
hy : y ∈ ↑(convexHull ℝ).toOrderHom t
x' : E
hx' : x' ∈ s
Hx' : dist x y ≤ dist x' y
y' : E
hy' : y' ∈ t
Hy' : dist y x' ≤ dist y' x'
⊢ dist x y ≤ dist x' y'