tasksource/leandojo huggingface dataset:
Theorem: CategoryTheory.Abelian.epi_of_cokernel_π_eq_zero
File: Mathlib/CategoryTheory/Abelian/Basic.lean

tactic: apply NormalMonoCategory.epi_of_zero_cokernel _ (cokernel f)
state_before: C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
P Q : C
f : P ⟶ Q
h : cokernel.π f = 0
⊢ Epi f

tactic: simp_rw [← h]
state_before: C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
P Q : C
f : P ⟶ Q
h : cokernel.π f = 0
⊢ IsColimit (CokernelCofork.ofπ 0 (_ : f ≫ 0 = 0))

tactic: exact IsColimit.ofIsoColimit (colimit.isColimit (parallelPair f 0)) (isoOfπ _)
state_before: C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
P Q : C
f : P ⟶ Q
h : cokernel.π f = 0
⊢ IsColimit (CokernelCofork.ofπ (cokernel.π f) (_ : f ≫ cokernel.π f = 0))
Theorem: MvPolynomial.aevalTower_id
File: Mathlib/Data/MvPolynomial/Basic.lean

tactic: ext
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝⁷ : CommSemiring R
inst✝⁶ : CommSemiring S₁
p q : MvPolynomial σ R
S : Type u_2
A : Type ?u.5316365
B : Type ?u.5316368
inst✝⁵ : CommSemiring S
inst✝⁴ : CommSemiring A
inst✝³ : CommSemiring B
inst✝² : Algebra S R
inst✝¹ : Algebra S A
inst✝ : Algebra S B
g : R →ₐ[S] A
y : σ → A
⊢ aevalTower (AlgHom.id S S) = aeval

tactic: simp only [aevalTower_X, aeval_X]
state_before: case h.hf
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝⁷ : CommSemiring R
inst✝⁶ : CommSemiring S₁
p q : MvPolynomial σ R
S : Type u_2
A : Type ?u.5316365
B : Type ?u.5316368
inst✝⁵ : CommSemiring S
inst✝⁴ : CommSemiring A
inst✝³ : CommSemiring B
inst✝² : Algebra S R
inst✝¹ : Algebra S A
inst✝ : Algebra S B
g : R →ₐ[S] A
y : σ → A
x✝ : σ → S
i✝ : σ
⊢ ↑(aevalTower (AlgHom.id S S) x✝) (X i✝) = ↑(aeval x✝) (X i✝)
Theorem: Matrix.Represents.add
File: Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean

tactic: delta Matrix.Represents at h h'⊢
state_before: ι : Type u_1
inst✝⁴ : Fintype ι
M : Type u_3
inst✝³ : AddCommGroup M
R : Type u_2
inst✝² : CommRing R
inst✝¹ : Module R M
I : Ideal R
b : ι → M
hb : Submodule.span R (Set.range b) = ⊤
inst✝ : DecidableEq ι
A A' : Matrix ι ι R
f f' : Module.End R M
h : Represents b A f
h' : Represents b A' f'
⊢ Represents b (A + A') (f + f')

tactic: rw [map_add, map_add, h, h']
state_before: ι : Type u_1
inst✝⁴ : Fintype ι
M : Type u_3
inst✝³ : AddCommGroup M
R : Type u_2
inst✝² : CommRing R
inst✝¹ : Module R M
I : Ideal R
b : ι → M
hb : Submodule.span R (Set.range b) = ⊤
inst✝ : DecidableEq ι
A A' : Matrix ι ι R
f f' : Module.End R M
h : ↑(PiToModule.fromMatrix R b) A = ↑(PiToModule.fromEnd R b) f
h' : ↑(PiToModule.fromMatrix R b) A' = ↑(PiToModule.fromEnd R b) f'
⊢ ↑(PiToModule.fromMatrix R b) (A + A') = ↑(PiToModule.fromEnd R b) (f + f')
Theorem: DiscreteQuotient.eq_of_forall_proj_eq
File: Mathlib/Topology/DiscreteQuotient.lean

tactic: rw [← mem_singleton_iff, ← connectedComponent_eq_singleton, connectedComponent_eq_iInter_clopen,
  mem_iInter]
state_before: α : Type ?u.36994
X : Type u_1
Y : Type ?u.37000
Z : Type ?u.37003
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
S : DiscreteQuotient X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
disc : TotallyDisconnectedSpace X
x y : X
h : ∀ (Q : DiscreteQuotient X), proj Q x = proj Q y
⊢ x = y

tactic: rintro ⟨U, hU1, hU2⟩
state_before: α : Type ?u.36994
X : Type u_1
Y : Type ?u.37000
Z : Type ?u.37003
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
S : DiscreteQuotient X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
disc : TotallyDisconnectedSpace X
x y : X
h : ∀ (Q : DiscreteQuotient X), proj Q x = proj Q y
⊢ ∀ (i : { Z // IsClopen Z ∧ y ∈ Z }), x ∈ ↑i

tactic: exact (Quotient.exact' (h (ofClopen hU1))).mpr hU2
state_before: case mk.intro
α : Type ?u.36994
X : Type u_1
Y : Type ?u.37000
Z : Type ?u.37003
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Z
S : DiscreteQuotient X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
disc : TotallyDisconnectedSpace X
x y : X
h : ∀ (Q : DiscreteQuotient X), proj Q x = proj Q y
U : Set X
hU1 : IsClopen U
hU2 : y ∈ U
⊢ x ∈ ↑{ val := U, property := (_ : IsClopen U ∧ y ∈ U) }
Theorem: BoundedContinuousFunction.dist_set_exists
File: Mathlib/Topology/ContinuousFunction/Bounded.lean

tactic: rcases f.bounded_range.union g.bounded_range with ⟨C, hC⟩
state_before: F : Type ?u.274313
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : PseudoMetricSpace β
inst✝ : PseudoMetricSpace γ
f g : α →ᵇ β
x : α
C : ℝ
⊢ ∃ C, 0 ≤ C ∧ ∀ (x : α), dist (↑f x) (↑g x) ≤ C

tactic: refine' ⟨max 0 C, le_max_left _ _, fun x => (hC _ _ _ _).trans (le_max_right _ _)⟩
  <;> [left; right]
  <;> apply mem_range_self
state_before: case intro
F : Type ?u.274313
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : PseudoMetricSpace β
inst✝ : PseudoMetricSpace γ
f g : α →ᵇ β
x : α
C✝ C : ℝ
hC : ∀ (x : β), x ∈ range ↑f ∪ range ↑g → ∀ (y : β), y ∈ range ↑f ∪ range ↑g → dist x y ≤ C
⊢ ∃ C, 0 ≤ C ∧ ∀ (x : α), dist (↑f x) (↑g x) ≤ C
Theorem: Set.OrdConnected.image_coe_nnreal_ennreal
File: Mathlib/Data/Real/ENNReal.lean

tactic: refine' ⟨ball_image_iff.2 fun x hx => ball_image_iff.2 fun y hy z hz => _⟩
state_before: α : Type ?u.871449
β : Type ?u.871452
s : Set ℝ
t : Set ℝ≥0
u : Set ℝ≥0∞
h : OrdConnected t
⊢ OrdConnected (ENNReal.some '' t)

tactic: rcases ENNReal.le_coe_iff.1 hz.2 with ⟨z, rfl, -⟩
state_before: α : Type ?u.871449
β : Type ?u.871452
s : Set ℝ
t : Set ℝ≥0
u : Set ℝ≥0∞
h : OrdConnected t
x : ℝ≥0
hx : x ∈ t
y : ℝ≥0
hy : y ∈ t
z : ℝ≥0∞
hz : z ∈ Icc ↑x ↑y
⊢ z ∈ ENNReal.some '' t

tactic: exact mem_image_of_mem _ (h.out hx hy ⟨ENNReal.coe_le_coe.1 hz.1, ENNReal.coe_le_coe.1 hz.2⟩)
state_before: case intro.intro
α : Type ?u.871449
β : Type ?u.871452
s : Set ℝ
t : Set ℝ≥0
u : Set ℝ≥0∞
h : OrdConnected t
x : ℝ≥0
hx : x ∈ t
y : ℝ≥0
hy : y ∈ t
z : ℝ≥0
hz : ↑z ∈ Icc ↑x ↑y
⊢ ↑z ∈ ENNReal.some '' t
Theorem: LocalHomeomorph.isBigOWith_congr
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: have := e.continuousAt (e.map_target hb)
state_before: α : Type u_1
β : Type u_2
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
E : Type u_3
inst✝¹ : Norm E
F : Type u_4
inst✝ : Norm F
e : LocalHomeomorph α β
b : β
hb : b ∈ e.target
f : β → E
g : β → F
C : ℝ
h : IsBigOWith C (𝓝 b) f g
⊢ Tendsto (↑e) (𝓝 (↑(LocalHomeomorph.symm e) b)) (𝓝 b)

tactic: rwa [ContinuousAt, e.rightInvOn hb] at this
state_before: α : Type u_1
β : Type u_2
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
E : Type u_3
inst✝¹ : Norm E
F : Type u_4
inst✝ : Norm F
e : LocalHomeomorph α β
b : β
hb : b ∈ e.target
f : β → E
g : β → F
C : ℝ
h : IsBigOWith C (𝓝 b) f g
this : ContinuousAt (↑e) (↑(LocalHomeomorph.symm e) b)
⊢ Tendsto (↑e) (𝓝 (↑(LocalHomeomorph.symm e) b)) (𝓝 b)
Theorem: measurable_to_countable
File: Mathlib/MeasureTheory/MeasurableSpace.lean

tactic: rw [← biUnion_preimage_singleton]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.48063
δ : Type ?u.48066
δ' : Type ?u.48069
ι : Sort uι
s✝ t u : Set α
inst✝² : MeasurableSpace α
inst✝¹ : Countable α
inst✝ : MeasurableSpace β
f : β → α
h : ∀ (y : β), MeasurableSet (f ⁻¹' {f y})
s : Set α
x✝ : MeasurableSet s
⊢ MeasurableSet (f ⁻¹' s)

tactic: refine' MeasurableSet.iUnion fun y => MeasurableSet.iUnion fun hy => _
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.48063
δ : Type ?u.48066
δ' : Type ?u.48069
ι : Sort uι
s✝ t u : Set α
inst✝² : MeasurableSpace α
inst✝¹ : Countable α
inst✝ : MeasurableSpace β
f : β → α
h : ∀ (y : β), MeasurableSet (f ⁻¹' {f y})
s : Set α
x✝ : MeasurableSet s
⊢ MeasurableSet (⋃ (y : α) (_ : y ∈ s), f ⁻¹' {y})

tactic: by_cases hyf : y ∈ range f
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.48063
δ : Type ?u.48066
δ' : Type ?u.48069
ι : Sort uι
s✝ t u : Set α
inst✝² : MeasurableSpace α
inst✝¹ : Countable α
inst✝ : MeasurableSpace β
f : β → α
h : ∀ (y : β), MeasurableSet (f ⁻¹' {f y})
s : Set α
x✝ : MeasurableSet s
y : α
hy : y ∈ s
⊢ MeasurableSet (f ⁻¹' {y})

tactic: rcases hyf with ⟨y, rfl⟩
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type ?u.48063
δ : Type ?u.48066
δ' : Type ?u.48069
ι : Sort uι
s✝ t u : Set α
inst✝² : MeasurableSpace α
inst✝¹ : Countable α
inst✝ : MeasurableSpace β
f : β → α
h : ∀ (y : β), MeasurableSet (f ⁻¹' {f y})
s : Set α
x✝ : MeasurableSet s
y : α
hy : y ∈ s
hyf : y ∈ range f
⊢ MeasurableSet (f ⁻¹' {y})

tactic: apply h
state_before: case pos.intro
α : Type u_1
β : Type u_2
γ : Type ?u.48063
δ : Type ?u.48066
δ' : Type ?u.48069
ι : Sort uι
s✝ t u : Set α
inst✝² : MeasurableSpace α
inst✝¹ : Countable α
inst✝ : MeasurableSpace β
f : β → α
h : ∀ (y : β), MeasurableSet (f ⁻¹' {f y})
s : Set α
x✝ : MeasurableSet s
y : β
hy : f y ∈ s
⊢ MeasurableSet (f ⁻¹' {f y})

tactic: simp only [preimage_singleton_eq_empty.2 hyf, MeasurableSet.empty]
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type ?u.48063
δ : Type ?u.48066
δ' : Type ?u.48069
ι : Sort uι
s✝ t u : Set α
inst✝² : MeasurableSpace α
inst✝¹ : Countable α
inst✝ : MeasurableSpace β
f : β → α
h : ∀ (y : β), MeasurableSet (f ⁻¹' {f y})
s : Set α
x✝ : MeasurableSet s
y : α
hy : y ∈ s
hyf : ¬y ∈ range f
⊢ MeasurableSet (f ⁻¹' {y})
Theorem: CategoryTheory.Presieve.FamilyOfElements.Compatible.compPresheafMap
File: Mathlib/CategoryTheory/Sites/SheafOfTypes.lean

tactic: intro Z₁ Z₂ W g₁ g₂ f₁ f₂ h₁ h₂ eq
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
f : P ⟶ Q
x : FamilyOfElements P R
h : Compatible x
⊢ Compatible (FamilyOfElements.compPresheafMap f x)

tactic: unfold FamilyOfElements.compPresheafMap
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
f : P ⟶ Q
x : FamilyOfElements P R
h : Compatible x
Z₁ Z₂ W : C
g₁ : W ⟶ Z₁
g₂ : W ⟶ Z₂
f₁ : Z₁ ⟶ X
f₂ : Z₂ ⟶ X
h₁ : R f₁
h₂ : R f₂
eq : g₁ ≫ f₁ = g₂ ≫ f₂
⊢ Q.map g₁.op (FamilyOfElements.compPresheafMap f x f₁ h₁) = Q.map g₂.op (FamilyOfElements.compPresheafMap f x f₂ h₂)

tactic: rwa [← FunctorToTypes.naturality, ← FunctorToTypes.naturality, h]
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
f : P ⟶ Q
x : FamilyOfElements P R
h : Compatible x
Z₁ Z₂ W : C
g₁ : W ⟶ Z₁
g₂ : W ⟶ Z₂
f₁ : Z₁ ⟶ X
f₂ : Z₂ ⟶ X
h₁ : R f₁
h₂ : R f₂
eq : g₁ ≫ f₁ = g₂ ≫ f₂
⊢ Q.map g₁.op (f.app Z₁.op (x f₁ h₁)) = Q.map g₂.op (f.app Z₂.op (x f₂ h₂))
Theorem: Polynomial.poly_binom_aux3
File: Mathlib/Data/Polynomial/Identities.lean

tactic: rw [poly_binom_aux2]
state_before: R : Type u
S : Type v
T : Type w
ι : Type x
k : Type y
A : Type z
a b : R
m n : ℕ
inst✝ : CommRing R
f : R[X]
x y : R
⊢ eval (x + y) f =
    ((sum f fun e a => a * x ^ e) + sum f fun e a => a * ↑e * x ^ (e - 1) * y) +
      sum f fun e a => a * ↑(Polynomial.polyBinomAux1 x y e a) * y ^ 2

tactic: simp [left_distrib, sum_add, mul_assoc]
state_before: R : Type u
S : Type v
T : Type w
ι : Type x
k : Type y
A : Type z
a b : R
m n : ℕ
inst✝ : CommRing R
f : R[X]
x y : R
⊢ (sum f fun e a => a * (x ^ e + ↑e * x ^ (e - 1) * y + ↑(Polynomial.polyBinomAux1 x y e a) * y ^ 2)) =
    ((sum f fun e a => a * x ^ e) + sum f fun e a => a * ↑e * x ^ (e - 1) * y) +
      sum f fun e a => a * ↑(Polynomial.polyBinomAux1 x y e a) * y ^ 2
Theorem: Convex.sum_mem
File: Mathlib/Analysis/Convex/Combination.lean

tactic: simpa only [h₁, centerMass, inv_one, one_smul] using
  hs.centerMass_mem h₀ (h₁.symm ▸ zero_lt_one) hz
state_before: R : Type u_1
E : Type u_2
F : Type ?u.95122
ι : Type u_3
ι' : Type ?u.95128
α : Type ?u.95131
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s : Set E
i j : ι
c : R
t : Finset ι
w : ι → R
z : ι → E
hs : Convex R s
h₀ : ∀ (i : ι), i ∈ t → 0 ≤ w i
h₁ : ∑ i in t, w i = 1
hz : ∀ (i : ι), i ∈ t → z i ∈ s
⊢ ∑ i in t, w i • z i ∈ s
Theorem: TensorProduct.lift_compr₂
File: Mathlib/LinearAlgebra/TensorProduct.lean

tactic: simp
state_before: R : Type u_1
inst✝¹⁴ : CommSemiring R
R' : Type ?u.615482
inst✝¹³ : Monoid R'
R'' : Type ?u.615488
inst✝¹² : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_2
Q : Type u_3
S : Type ?u.615506
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid N
inst✝⁹ : AddCommMonoid P
inst✝⁸ : AddCommMonoid Q
inst✝⁷ : AddCommMonoid S
inst✝⁶ : Module R M
inst✝⁵ : Module R N
inst✝⁴ : Module R P
inst✝³ : Module R Q
inst✝² : Module R S
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
f : M →ₗ[R] N →ₗ[R] P
g : P →ₗ[R] Q
x✝¹ : M
x✝ : N
⊢ ↑(LinearMap.comp g (lift f)) (x✝¹ ⊗ₜ[R] x✝) = ↑(↑(LinearMap.compr₂ f g) x✝¹) x✝
Theorem: LieIdeal.homOfLe_injective
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: simp only [homOfLe_apply, imp_self, Subtype.mk_eq_mk, SetLike.coe_eq_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 : LieIdeal R L
J : LieIdeal R L'
I₁ I₂ : LieIdeal R L
h : I₁ ≤ I₂
x y : { x // x ∈ ↑I₁ }
⊢ ↑(homOfLe h) x = ↑(homOfLe h) y → x = y
Theorem: tsub_add_eq_tsub_tsub_swap
File: Mathlib/Algebra/Order/Sub/Defs.lean

tactic: rw [add_comm]
state_before: α : Type u_1
β : Type ?u.33253
inst✝³ : PartialOrder α
inst✝² : AddCommSemigroup α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a✝ b✝ c✝ d a b c : α
⊢ a - (b + c) = a - c - b

tactic: apply tsub_add_eq_tsub_tsub
state_before: α : Type u_1
β : Type ?u.33253
inst✝³ : PartialOrder α
inst✝² : AddCommSemigroup α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a✝ b✝ c✝ d a b c : α
⊢ a - (c + b) = a - c - b
Theorem: MeasureTheory.withDensity_zero
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: ext1 s hs
state_before: α : Type u_1
β : Type ?u.1763446
γ : Type ?u.1763449
δ : Type ?u.1763452
m : MeasurableSpace α
μ ν : Measure α
⊢ withDensity μ 0 = 0

tactic: simp [withDensity_apply _ hs]
state_before: case h
α : Type u_1
β : Type ?u.1763446
γ : Type ?u.1763449
δ : Type ?u.1763452
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
⊢ ↑↑(withDensity μ 0) s = ↑↑0 s
Theorem: LazyList.forall_mem_cons
File: Mathlib/Data/LazyList/Basic.lean

tactic: simp only [Membership.mem, LazyList.Mem, or_imp, forall_and, forall_eq]
state_before: α : Type u_1
p : α → Prop
a : α
l : Thunk (LazyList α)
⊢ (∀ (x : α), x ∈ cons a l → p x) ↔ p a ∧ ∀ (x : α), x ∈ Thunk.get l → p x
Theorem: Sym.card_sym_eq_multichoose
File: Mathlib/Data/Sym/Card.lean

tactic: rw [← card_sym_fin_eq_multichoose]
state_before: α✝ : Type ?u.22617
β : Type ?u.22620
n : ℕ
α : Type u_1
k : ℕ
inst✝¹ : Fintype α
inst✝ : Fintype (Sym α k)
⊢ Fintype.card (Sym α k) = multichoose (Fintype.card α) k

tactic: exact card_congr (equivCongr (equivFin α))
state_before: α✝ : Type ?u.22617
β : Type ?u.22620
n : ℕ
α : Type u_1
k : ℕ
inst✝¹ : Fintype α
inst✝ : Fintype (Sym α k)
⊢ Fintype.card (Sym α k) = Fintype.card (Sym (Fin (Fintype.card α)) k)
Theorem: wbtw_swap_right_iff
File: Mathlib/Analysis/Convex/Between.lean

tactic: rw [wbtw_comm, wbtw_comm (z := y), eq_comm]
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.205544
P : Type u_3
P' : Type ?u.205550
inst✝⁷ : OrderedRing R
inst✝⁶ : AddCommGroup V
inst✝⁵ : Module R V
inst✝⁴ : AddTorsor V P
inst✝³ : AddCommGroup V'
inst✝² : Module R V'
inst✝¹ : AddTorsor V' P'
inst✝ : NoZeroSMulDivisors R V
x y z : P
⊢ Wbtw R x y z ∧ Wbtw R x z y ↔ y = z

tactic: exact wbtw_swap_left_iff R x
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.205544
P : Type u_3
P' : Type ?u.205550
inst✝⁷ : OrderedRing R
inst✝⁶ : AddCommGroup V
inst✝⁵ : Module R V
inst✝⁴ : AddTorsor V P
inst✝³ : AddCommGroup V'
inst✝² : Module R V'
inst✝¹ : AddTorsor V' P'
inst✝ : NoZeroSMulDivisors R V
x y z : P
⊢ Wbtw R z y x ∧ Wbtw R y z x ↔ z = y
Theorem: MeasureTheory.continuous_integral
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: simp only [integral, L1.integral]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.953991
𝕜 : Type ?u.953994
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : CompleteSpace E
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : SMulCommClass ℝ 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
f g : α → E
m : MeasurableSpace α
μ : Measure α
⊢ Continuous fun f => ∫ (a : α), ↑↑f a ∂μ

tactic: exact continuous_setToFun (dominatedFinMeasAdditive_weightedSMul μ)
state_before: α : Type u_1
E : Type u_2
F : Type ?u.953991
𝕜 : Type ?u.953994
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : CompleteSpace E
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : SMulCommClass ℝ 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
f g : α → E
m : MeasurableSpace α
μ : Measure α
⊢ Continuous fun f =>
    if hf : Integrable fun a => ↑↑f a then ↑L1.integralCLM (Integrable.toL1 (fun a => ↑↑f a) hf) else 0
Theorem: MeasureTheory.mem_ae_map_iff
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simp only [mem_ae_iff, map_apply_of_aemeasurable hf hs.compl, preimage_compl]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.549927
δ : Type ?u.549930
ι : Type ?u.549933
R : Type ?u.549936
R' : Type ?u.549939
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f : α → β
hf : AEMeasurable f
s : Set β
hs : MeasurableSet s
⊢ s ∈ ae (Measure.map f μ) ↔ f ⁻¹' s ∈ ae μ
Theorem: FermatPsp.b_id_helper
File: Mathlib/NumberTheory/FermatPsp.lean

tactic: rw [Nat.le_div_iff_mul_le (Nat.zero_lt_succ _)]
state_before: a b : ℕ
ha : 2 ≤ a
hb : 2 < b
⊢ 2 ≤ (a ^ b + 1) / (a + 1)

tactic: apply Nat.succ_le_succ
state_before: a b : ℕ
ha : 2 ≤ a
hb : 2 < b
⊢ 2 * Nat.succ a ≤ a ^ b + 1

tactic: calc
  2 * a + 1 ≤ a ^ 2 * a := by nlinarith
  _ = a ^ 3 := by rw [pow_succ' a 2]
  _ ≤ a ^ b := pow_le_pow (Nat.le_of_succ_le ha) hb
state_before: case a
a b : ℕ
ha : 2 ≤ a
hb : 2 < b
⊢ Nat.mul 2 a + 1 ≤ a ^ b

tactic: nlinarith
state_before: a b : ℕ
ha : 2 ≤ a
hb : 2 < b
⊢ 2 * a + 1 ≤ a ^ 2 * a

tactic: rw [pow_succ' a 2]
state_before: a b : ℕ
ha : 2 ≤ a
hb : 2 < b
⊢ a ^ 2 * a = a ^ 3
Theorem: Multiset.card_pair
File: Mathlib/Data/Multiset/Basic.lean

tactic: rw [insert_eq_cons, card_cons, card_singleton]
state_before: α : Type u_1
β : Type ?u.59927
γ : Type ?u.59930
a b : α
⊢ ↑card {a, b} = 2
Theorem: IsCompactOperator.comp_clm
File: Mathlib/Analysis/NormedSpace/CompactOperator.lean

tactic: have := g.continuous.tendsto 0
state_before: R₁ : Type u_4
R₂ : Type u_2
R₃ : Type ?u.166093
inst✝⁹ : Semiring R₁
inst✝⁸ : Semiring R₂
inst✝⁷ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
M₁ : Type u_5
M₂ : Type u_1
M₃ : Type u_3
inst✝⁶ : TopologicalSpace M₁
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : TopologicalSpace M₃
inst✝³ : AddCommMonoid M₁
inst✝² : Module R₁ M₁
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
f : M₂ → M₃
hf : IsCompactOperator f
g : M₁ →SL[σ₁₂] M₂
⊢ IsCompactOperator (f ∘ ↑g)

tactic: rw [map_zero] at this
state_before: R₁ : Type u_4
R₂ : Type u_2
R₃ : Type ?u.166093
inst✝⁹ : Semiring R₁
inst✝⁸ : Semiring R₂
inst✝⁷ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
M₁ : Type u_5
M₂ : Type u_1
M₃ : Type u_3
inst✝⁶ : TopologicalSpace M₁
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : TopologicalSpace M₃
inst✝³ : AddCommMonoid M₁
inst✝² : Module R₁ M₁
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
f : M₂ → M₃
hf : IsCompactOperator f
g : M₁ →SL[σ₁₂] M₂
this : Tendsto (↑g) (𝓝 0) (𝓝 (↑g 0))
⊢ IsCompactOperator (f ∘ ↑g)

tactic: rcases hf with ⟨K, hK, hKf⟩
state_before: R₁ : Type u_4
R₂ : Type u_2
R₃ : Type ?u.166093
inst✝⁹ : Semiring R₁
inst✝⁸ : Semiring R₂
inst✝⁷ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
M₁ : Type u_5
M₂ : Type u_1
M₃ : Type u_3
inst✝⁶ : TopologicalSpace M₁
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : TopologicalSpace M₃
inst✝³ : AddCommMonoid M₁
inst✝² : Module R₁ M₁
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
f : M₂ → M₃
hf : IsCompactOperator f
g : M₁ →SL[σ₁₂] M₂
this : Tendsto (↑g) (𝓝 0) (𝓝 0)
⊢ IsCompactOperator (f ∘ ↑g)

tactic: exact ⟨K, hK, this hKf⟩
state_before: case intro.intro
R₁ : Type u_4
R₂ : Type u_2
R₃ : Type ?u.166093
inst✝⁹ : Semiring R₁
inst✝⁸ : Semiring R₂
inst✝⁷ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
M₁ : Type u_5
M₂ : Type u_1
M₃ : Type u_3
inst✝⁶ : TopologicalSpace M₁
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : TopologicalSpace M₃
inst✝³ : AddCommMonoid M₁
inst✝² : Module R₁ M₁
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
f : M₂ → M₃
g : M₁ →SL[σ₁₂] M₂
this : Tendsto (↑g) (𝓝 0) (𝓝 0)
K : Set M₃
hK : IsCompact K
hKf : f ⁻¹' K ∈ 𝓝 0
⊢ IsCompactOperator (f ∘ ↑g)
Theorem: Metric.mem_closedBall_comm
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: rw [mem_closedBall', mem_closedBall]
state_before: α : Type u
β : Type v
X : Type ?u.38777
ι : Type ?u.38780
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
⊢ x ∈ closedBall y ε ↔ y ∈ closedBall x ε
Theorem: discrete_of_t1_of_finite
File: Mathlib/Topology/Separation.lean

tactic: apply singletons_open_iff_discrete.mp
state_before: α : Type u
β : Type v
inst✝³ : TopologicalSpace α
X : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : Finite X
⊢ DiscreteTopology X

tactic: intro x
state_before: α : Type u
β : Type v
inst✝³ : TopologicalSpace α
X : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : Finite X
⊢ ∀ (a : X), IsOpen {a}

tactic: rw [← isClosed_compl_iff]
state_before: α : Type u
β : Type v
inst✝³ : TopologicalSpace α
X : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : Finite X
x : X
⊢ IsOpen {x}

tactic: exact (Set.toFinite _).isClosed
state_before: α : Type u
β : Type v
inst✝³ : TopologicalSpace α
X : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : Finite X
x : X
⊢ IsClosed ({x}ᶜ)
Theorem: Int.cast_eq_zero
File: Mathlib/Data/Int/CharZero.lean

tactic: cases n
state_before: α : Type u_1
inst✝¹ : AddGroupWithOne α
inst✝ : CharZero α
n : ℤ
h : ↑n = 0
⊢ n = 0

tactic: erw [Int.cast_ofNat] at h
state_before: case ofNat
α : Type u_1
inst✝¹ : AddGroupWithOne α
inst✝ : CharZero α
a✝ : ℕ
h : ↑(ofNat a✝) = 0
⊢ ofNat a✝ = 0

tactic: exact congr_arg _ (Nat.cast_eq_zero.1 h)
state_before: case ofNat
α : Type u_1
inst✝¹ : AddGroupWithOne α
inst✝ : CharZero α
a✝ : ℕ
h : ↑a✝ = 0
⊢ ofNat a✝ = 0

tactic: rw [cast_negSucc, neg_eq_zero, Nat.cast_eq_zero] at h
state_before: case negSucc
α : Type u_1
inst✝¹ : AddGroupWithOne α
inst✝ : CharZero α
a✝ : ℕ
h : ↑-[a✝+1] = 0
⊢ -[a✝+1] = 0

tactic: contradiction
state_before: case negSucc
α : Type u_1
inst✝¹ : AddGroupWithOne α
inst✝ : CharZero α
a✝ : ℕ
h : a✝ + 1 = 0
⊢ -[a✝+1] = 0

tactic: rw [h, cast_zero]
state_before: α : Type u_1
inst✝¹ : AddGroupWithOne α
inst✝ : CharZero α
n : ℤ
h : n = 0
⊢ ↑n = 0
Theorem: Set.mk_preimage_prod_left_eq_if
File: Mathlib/Data/Set/Prod.lean

tactic: split_ifs with h <;> simp [h]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.27643
δ : Type ?u.27646
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
inst✝ : DecidablePred fun x => x ∈ t
⊢ (fun a => (a, b)) ⁻¹' s ×ˢ t = if b ∈ t then s else ∅
Theorem: Option.map₂_map_right
File: Mathlib/Data/Option/NAry.lean

tactic: cases b <;> rfl
state_before: α : Type u_2
β : Type u_4
γ : Type u_3
f✝ : α → β → γ
a : Option α
b : Option β
c : Option γ
δ : Type u_1
f : α → γ → δ
g : β → γ
⊢ map₂ f a (Option.map g b) = map₂ (fun a b => f a (g b)) a b