tasksource/leandojo huggingface dataset:
Theorem: bernsteinPolynomial.eval_at_1
File: Mathlib/RingTheory/Polynomial/Bernstein.lean

tactic: rw [bernsteinPolynomial]
state_before: R : Type u_1
inst✝ : CommRing R
n ν : ℕ
⊢ Polynomial.eval 1 (bernsteinPolynomial R n ν) = if ν = n then 1 else 0

tactic: split_ifs with h
state_before: R : Type u_1
inst✝ : CommRing R
n ν : ℕ
⊢ Polynomial.eval 1 (↑(choose n ν) * X ^ ν * (1 - X) ^ (n - ν)) = if ν = n then 1 else 0

tactic: subst h
state_before: case inl
R : Type u_1
inst✝ : CommRing R
n ν : ℕ
h : ν = n
⊢ Polynomial.eval 1 (↑(choose n ν) * X ^ ν * (1 - X) ^ (n - ν)) = 1

tactic: simp
state_before: case inl
R : Type u_1
inst✝ : CommRing R
ν : ℕ
⊢ Polynomial.eval 1 (↑(choose ν ν) * X ^ ν * (1 - X) ^ (ν - ν)) = 1

tactic: obtain w | w := (n - ν).eq_zero_or_pos
state_before: case inr
R : Type u_1
inst✝ : CommRing R
n ν : ℕ
h : ¬ν = n
⊢ Polynomial.eval 1 (↑(choose n ν) * X ^ ν * (1 - X) ^ (n - ν)) = 0

tactic: simp [Nat.choose_eq_zero_of_lt ((tsub_eq_zero_iff_le.mp w).lt_of_ne (Ne.symm h))]
state_before: case inr.inl
R : Type u_1
inst✝ : CommRing R
n ν : ℕ
h : ¬ν = n
w : n - ν = 0
⊢ Polynomial.eval 1 (↑(choose n ν) * X ^ ν * (1 - X) ^ (n - ν)) = 0

tactic: simp [zero_pow w]
state_before: case inr.inr
R : Type u_1
inst✝ : CommRing R
n ν : ℕ
h : ¬ν = n
w : n - ν > 0
⊢ Polynomial.eval 1 (↑(choose n ν) * X ^ ν * (1 - X) ^ (n - ν)) = 0
Theorem: String.prev_of_valid
File: Std/Data/String/Lemmas.lean

tactic: simp [prev]
state_before: cs : List Char
c : Char
cs' : List Char
⊢ prev { data := cs ++ c :: cs' } { byteIdx := utf8Len cs + csize c } = { byteIdx := utf8Len cs }

tactic: refine (if_neg (Pos.ne_of_gt add_csize_pos)).trans ?_
state_before: cs : List Char
c : Char
cs' : List Char
⊢ (if { byteIdx := utf8Len cs + csize c } = 0 then 0
    else utf8PrevAux (cs ++ c :: cs') 0 { byteIdx := utf8Len cs + csize c }) =
    { byteIdx := utf8Len cs }

tactic: rw [utf8PrevAux_of_valid] <;> simp
state_before: cs : List Char
c : Char
cs' : List Char
⊢ utf8PrevAux (cs ++ c :: cs') 0 { byteIdx := utf8Len cs + csize c } = { byteIdx := utf8Len cs }
Theorem: Fin.val_add_one
File: Mathlib/Data/Fin/Basic.lean

tactic: rcases(le_last i).eq_or_lt with (rfl | h)
state_before: n✝ m n : ℕ
i : Fin (n + 1)
⊢ ↑(i + 1) = if i = last n then 0 else ↑i + 1

tactic: simp
state_before: case inl
n✝ m n : ℕ
⊢ ↑(last n + 1) = if last n = last n then 0 else ↑(last n) + 1

tactic: simpa [h.ne] using val_add_one_of_lt h
state_before: case inr
n✝ m n : ℕ
i : Fin (n + 1)
h : i < last n
⊢ ↑(i + 1) = if i = last n then 0 else ↑i + 1
Theorem: StarSubalgebra.sInf_toSubalgebra
File: Mathlib/Algebra/Star/Subalgebra.lean

tactic: simp
state_before: F : Type ?u.678241
R : Type u_2
A : Type u_1
B : Type ?u.678250
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 (StarSubalgebra R A)
⊢ ↑(sInf S).toSubalgebra = ↑(sInf (toSubalgebra '' S))
Theorem: CategoryTheory.Bicategory.pentagon_hom_inv_inv_inv_hom
File: Mathlib/CategoryTheory/Bicategory/Basic.lean

tactic: rw [← cancel_epi (α_ f g (h ≫ i)).inv, ← cancel_mono ((α_ f g h).inv ▷ i)]
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
f : a ⟶ b
g : b ⟶ c
h : c ⟶ d
i : d ⟶ e
⊢ (α_ f g (h ≫ i)).hom ≫ f ◁ (α_ g h i).inv ≫ (α_ f (g ≫ h) i).inv = (α_ (f ≫ g) h i).inv ≫ (α_ f g h).hom ▷ i

tactic: simp
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
f : a ⟶ b
g : b ⟶ c
h : c ⟶ d
i : d ⟶ e
⊢ ((α_ f g (h ≫ i)).inv ≫ (α_ f g (h ≫ i)).hom ≫ f ◁ (α_ g h i).inv ≫ (α_ f (g ≫ h) i).inv) ≫ (α_ f g h).inv ▷ i =
    ((α_ f g (h ≫ i)).inv ≫ (α_ (f ≫ g) h i).inv ≫ (α_ f g h).hom ▷ i) ≫ (α_ f g h).inv ▷ i
Theorem: SimpleGraph.neighborSet_compl
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: ext w
state_before: ι : Sort ?u.146524
𝕜 : Type ?u.146527
V : Type u
W : Type v
X : Type w
G✝ : SimpleGraph V
G' : SimpleGraph W
a b c u v✝ w : V
e : Sym2 V
G : SimpleGraph V
v : V
⊢ neighborSet (Gᶜ) v = neighborSet G vᶜ \ {v}

tactic: simp [and_comm, eq_comm]
state_before: case h
ι : Sort ?u.146524
𝕜 : Type ?u.146527
V : Type u
W : Type v
X : Type w
G✝ : SimpleGraph V
G' : SimpleGraph W
a b c u v✝ w✝ : V
e : Sym2 V
G : SimpleGraph V
v w : V
⊢ w ∈ neighborSet (Gᶜ) v ↔ w ∈ neighborSet G vᶜ \ {v}
Theorem: Pmf.uniformOfFinset_apply_of_not_mem
File: Mathlib/Probability/ProbabilityMassFunction/Uniform.lean

tactic: simp [ha]
state_before: α : Type u_1
β : Type ?u.5033
γ : Type ?u.5036
s : Finset α
hs : Finset.Nonempty s
a : α
ha : ¬a ∈ s
⊢ ↑(uniformOfFinset s hs) a = 0
Theorem: Quiver.Path.cast_cast
File: Mathlib/Combinatorics/Quiver/Cast.lean

tactic: subst_vars
state_before: U : Type u_1
inst✝ : Quiver U
u v u' v' u'' v'' : U
p : Path u v
hu : u = u'
hv : v = v'
hu' : u' = u''
hv' : v' = v''
⊢ cast hu' hv' (cast hu hv p) = cast (_ : u = u'') (_ : v = v'') p

tactic: rfl
state_before: U : Type u_1
inst✝ : Quiver U
u'' v'' : U
p : Path u'' v''
⊢ cast (_ : u'' = u'') (_ : v'' = v'') (cast (_ : u'' = u'') (_ : v'' = v'') p) = cast (_ : u'' = u'') (_ : v'' = v'') p
Theorem: Substring.Valid.foldl
File: Std/Data/String/Lemmas.lean

tactic: simp [h.foldl, h.toString]
state_before: α : Type u_1
f : α → Char → α
init : α
x✝ : Substring
h✝ : Valid x✝
w✝² w✝¹ w✝ : List Char
h : ValidFor w✝² w✝¹ w✝ x✝
⊢ Substring.foldl f init x✝ = List.foldl f init (toString x✝).data
Theorem: summable_sum_mul_antidiagonal_of_summable_mul
File: Mathlib/Topology/Algebra/InfiniteSum/Ring.lean

tactic: rw [summable_mul_prod_iff_summable_mul_sigma_antidiagonal] at h
state_before: ι : Type ?u.27646
κ : Type ?u.27649
R : Type ?u.27652
α : Type u_1
inst✝³ : TopologicalSpace α
inst✝² : NonUnitalNonAssocSemiring α
f g : ℕ → α
inst✝¹ : T3Space α
inst✝ : TopologicalSemiring α
h : Summable fun x => f x.fst * g x.snd
⊢ Summable fun n => ∑ kl in Nat.antidiagonal n, f kl.fst * g kl.snd

tactic: conv => congr; ext; rw [← Finset.sum_finset_coe, ← tsum_fintype]
state_before: ι : Type ?u.27646
κ : Type ?u.27649
R : Type ?u.27652
α : Type u_1
inst✝³ : TopologicalSpace α
inst✝² : NonUnitalNonAssocSemiring α
f g : ℕ → α
inst✝¹ : T3Space α
inst✝ : TopologicalSemiring α
h : Summable fun x => f (↑x.snd).fst * g (↑x.snd).snd
⊢ Summable fun n => ∑ kl in Nat.antidiagonal n, f kl.fst * g kl.snd

tactic: exact h.sigma' fun n => (hasSum_fintype _).summable
state_before: ι : Type ?u.27646
κ : Type ?u.27649
R : Type ?u.27652
α : Type u_1
inst✝³ : TopologicalSpace α
inst✝² : NonUnitalNonAssocSemiring α
f g : ℕ → α
inst✝¹ : T3Space α
inst✝ : TopologicalSemiring α
h : Summable fun x => f (↑x.snd).fst * g (↑x.snd).snd
⊢ Summable fun x => ∑' (b : ↑↑(Nat.antidiagonal x)), f (↑b).fst * g (↑b).snd
Theorem: Real.add_one_lt_exp_of_nonzero
File: Mathlib/Data/Complex/Exponential.lean

tactic: cases' lt_or_gt_of_ne hx with h h
state_before: x : ℝ
hx : x ≠ 0
⊢ x + 1 < exp x

tactic: exact add_one_lt_exp_of_pos h
state_before: case inr
x : ℝ
hx : x ≠ 0
h : x > 0
⊢ x + 1 < exp x

tactic: exact add_one_lt_exp_of_neg h
state_before: case inl
x : ℝ
hx : x ≠ 0
h : x < 0
⊢ x + 1 < exp x
Theorem: Module.Finite.of_surjective
File: Mathlib/RingTheory/Finiteness.lean

tactic: rw [← LinearMap.range_eq_top.2 hf, ← Submodule.map_top]
state_before: R : Type u_1
A : Type ?u.386467
B : Type ?u.386470
M : Type u_2
N : Type u_3
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
hM : Finite R M
f : M →ₗ[R] N
hf : Surjective ↑f
⊢ Submodule.FG ⊤

tactic: exact hM.1.map f
state_before: R : Type u_1
A : Type ?u.386467
B : Type ?u.386470
M : Type u_2
N : Type u_3
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
hM : Finite R M
f : M →ₗ[R] N
hf : Surjective ↑f
⊢ Submodule.FG (Submodule.map f ⊤)
Theorem: Nat.factorization_prime_le_iff_dvd
File: Mathlib/Data/Nat/Factorization/Basic.lean

tactic: rw [← factorization_le_iff_dvd hd hn]
state_before: d n : ℕ
hd : d ≠ 0
hn : n ≠ 0
⊢ (∀ (p : ℕ), Prime p → ↑(factorization d) p ≤ ↑(factorization n) p) ↔ d ∣ n

tactic: refine' ⟨fun h p => (em p.Prime).elim (h p) fun hp => _, fun h p _ => h p⟩
state_before: d n : ℕ
hd : d ≠ 0
hn : n ≠ 0
⊢ (∀ (p : ℕ), Prime p → ↑(factorization d) p ≤ ↑(factorization n) p) ↔ factorization d ≤ factorization n

tactic: simp_rw [factorization_eq_zero_of_non_prime _ hp, le_refl]
state_before: d n : ℕ
hd : d ≠ 0
hn : n ≠ 0
h : ∀ (p : ℕ), Prime p → ↑(factorization d) p ≤ ↑(factorization n) p
p : ℕ
hp : ¬Prime p
⊢ ↑(factorization d) p ≤ ↑(factorization n) p
Theorem: Basis.reindexFinsetRange_repr_self
File: Mathlib/LinearAlgebra/Basis.lean

tactic: ext ⟨bi, hbi⟩
state_before: ι : Type u_3
ι' : Type ?u.425289
R : Type u_1
R₂ : Type ?u.425295
K : Type ?u.425298
M : Type u_2
M' : Type ?u.425304
M'' : Type ?u.425307
V : Type u
V' : Type ?u.425312
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid M'
inst✝² : Module R M'
b b₁ : Basis ι R M
i✝ : ι
c : R
x : M
b' : Basis ι' R M'
e : ι ≃ ι'
inst✝¹ : Fintype ι
inst✝ : DecidableEq M
i : ι
⊢ ↑(reindexFinsetRange b).repr (↑b i) =
    Finsupp.single { val := ↑b i, property := (_ : ↑b i ∈ Finset.image (↑b) Finset.univ) } 1

tactic: rw [reindexFinsetRange, repr_reindex, Finsupp.mapDomain_equiv_apply, reindexRange_repr_self]
state_before: case h.mk
ι : Type u_3
ι' : Type ?u.425289
R : Type u_1
R₂ : Type ?u.425295
K : Type ?u.425298
M : Type u_2
M' : Type ?u.425304
M'' : Type ?u.425307
V : Type u
V' : Type ?u.425312
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid M'
inst✝² : Module R M'
b b₁ : Basis ι R M
i✝ : ι
c : R
x : M
b' : Basis ι' R M'
e : ι ≃ ι'
inst✝¹ : Fintype ι
inst✝ : DecidableEq M
i : ι
bi : M
hbi : bi ∈ Finset.image (↑b) Finset.univ
⊢ ↑(↑(reindexFinsetRange b).repr (↑b i)) { val := bi, property := hbi } =
    ↑(Finsupp.single { val := ↑b i, property := (_ : ↑b i ∈ Finset.image (↑b) Finset.univ) } 1)
      { val := bi, property := hbi }

tactic: simp [Finsupp.single_apply]
state_before: case h.mk
ι : Type u_3
ι' : Type ?u.425289
R : Type u_1
R₂ : Type ?u.425295
K : Type ?u.425298
M : Type u_2
M' : Type ?u.425304
M'' : Type ?u.425307
V : Type u
V' : Type ?u.425312
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid M'
inst✝² : Module R M'
b b₁ : Basis ι R M
i✝ : ι
c : R
x : M
b' : Basis ι' R M'
e : ι ≃ ι'
inst✝¹ : Fintype ι
inst✝ : DecidableEq M
i : ι
bi : M
hbi : bi ∈ Finset.image (↑b) Finset.univ
⊢ ↑(Finsupp.single { val := ↑b i, property := (_ : ↑b i ∈ range ↑b) } 1)
      (↑(Equiv.subtypeEquiv (Equiv.refl M) (_ : ∀ (a : M), a ∈ range ↑b ↔ a ∈ Finset.image (↑b) Finset.univ)).symm
        { val := bi, property := hbi }) =
    ↑(Finsupp.single { val := ↑b i, property := (_ : ↑b i ∈ Finset.image (↑b) Finset.univ) } 1)
      { val := bi, property := hbi }
Theorem: TopologicalSemiring.continuousNeg_of_mul
File: Mathlib/Topology/Algebra/Ring/Basic.lean

tactic: simpa using (continuous_const.mul continuous_id : Continuous fun x : α => -1 * x)
state_before: α : Type u_1
inst✝² : TopologicalSpace α
inst✝¹ : NonAssocRing α
inst✝ : ContinuousMul α
⊢ Continuous fun a => -a
Theorem: BoxIntegral.integralSum_biUnion_partition
File: Mathlib/Analysis/BoxIntegral/Basic.lean

tactic: refine' (π.sum_biUnion_boxes _ _).trans (sum_congr rfl fun J hJ => _)
state_before: ι : Type u
E : Type v
F : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
I J : Box ι
π✝ : TaggedPrepartition I
f : (ι → ℝ) → E
vol : ι →ᵇᵃ[⊤] E →L[ℝ] F
π : TaggedPrepartition I
πi : (J : Box ι) → Prepartition J
hπi : ∀ (J : Box ι), J ∈ π → Prepartition.IsPartition (πi J)
⊢ integralSum f vol (biUnionPrepartition π πi) = integralSum f vol π

tactic: calc
  (∑ J' in (πi J).boxes, vol J' (f (π.tag <| π.toPrepartition.biUnionIndex πi J'))) =
      ∑ J' in (πi J).boxes, vol J' (f (π.tag J)) :=
    sum_congr rfl fun J' hJ' => by rw [Prepartition.biUnionIndex_of_mem _ hJ hJ']
  _ = vol J (f (π.tag J)) :=
    (vol.map ⟨⟨fun g : E →L[ℝ] F => g (f (π.tag J)), rfl⟩, fun _ _ => rfl⟩).sum_partition_boxes
      le_top (hπi J hJ)
state_before: ι : Type u
E : Type v
F : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
I J✝ : Box ι
π✝ : TaggedPrepartition I
f : (ι → ℝ) → E
vol : ι →ᵇᵃ[⊤] E →L[ℝ] F
π : TaggedPrepartition I
πi : (J : Box ι) → Prepartition J
hπi : ∀ (J : Box ι), J ∈ π → Prepartition.IsPartition (πi J)
J : Box ι
hJ : J ∈ π.boxes
⊢ ∑ J' in (πi J).boxes, ↑(↑vol J') (f (tag (biUnionPrepartition π πi) J')) = ↑(↑vol J) (f (tag π J))

tactic: rw [Prepartition.biUnionIndex_of_mem _ hJ hJ']
state_before: ι : Type u
E : Type v
F : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
I J✝ : Box ι
π✝ : TaggedPrepartition I
f : (ι → ℝ) → E
vol : ι →ᵇᵃ[⊤] E →L[ℝ] F
π : TaggedPrepartition I
πi : (J : Box ι) → Prepartition J
hπi : ∀ (J : Box ι), J ∈ π → Prepartition.IsPartition (πi J)
J : Box ι
hJ : J ∈ π.boxes
J' : Box ι
hJ' : J' ∈ (πi J).boxes
⊢ ↑(↑vol J') (f (tag π (Prepartition.biUnionIndex π.toPrepartition πi J'))) = ↑(↑vol J') (f (tag π J))
Theorem: contDiff_zero_fun
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: rw [iteratedFDeriv_zero_fun]
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.21033
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
m : ℕ
x✝ : ↑m ≤ n
⊢ Differentiable 𝕜 (iteratedFDeriv 𝕜 m fun x => 0)

tactic: exact differentiable_const (0 : E[×m]→L[𝕜] F)
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.21033
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
m : ℕ
x✝ : ↑m ≤ n
⊢ Differentiable 𝕜 0
Theorem: OrderBot.ext_bot
File: Mathlib/Order/BoundedOrder.lean

tactic: cases PartialOrder.ext H
state_before: α✝ : Type u
β : Type v
γ : Type ?u.25129
δ : Type ?u.25132
α : Type u_1
hA : PartialOrder α
A : OrderBot α
hB : PartialOrder α
B : OrderBot α
H : ∀ (x y : α), x ≤ y ↔ x ≤ y
⊢ ⊥ = ⊥

tactic: apply bot_unique
state_before: case refl
α✝ : Type u
β : Type v
γ : Type ?u.25129
δ : Type ?u.25132
α : Type u_1
hA : PartialOrder α
A B : OrderBot α
H : ∀ (x y : α), x ≤ y ↔ x ≤ y
⊢ ⊥ = ⊥

tactic: exact @bot_le _ _ A _
state_before: case refl.h
α✝ : Type u
β : Type v
γ : Type ?u.25129
δ : Type ?u.25132
α : Type u_1
hA : PartialOrder α
A B : OrderBot α
H : ∀ (x y : α), x ≤ y ↔ x ≤ y
⊢ ⊥ ≤ ⊥
Theorem: Int.emod_add_ediv
File: Std/Data/Int/DivMod.lean

tactic: show (m % succ n + -↑(succ n) * -↑(m / succ n) : Int) = m
state_before: m n : Nat
⊢ ofNat m % -[n+1] + -[n+1] * (ofNat m / -[n+1]) = ofNat m

tactic: rw [Int.neg_mul_neg]
state_before: m n : Nat
⊢ ↑m % ↑(succ n) + -↑(succ n) * -↑(m / succ n) = ↑m

tactic: exact congrArg ofNat <| Nat.mod_add_div ..
state_before: m n : Nat
⊢ ↑m % ↑(succ n) + ↑(succ n) * ↑(m / succ n) = ↑m

tactic: rw [emod_zero]
state_before: a✝ : Nat
⊢ -[a✝+1] % 0 + 0 * (-[a✝+1] / 0) = -[a✝+1]

tactic: rfl
state_before: a✝ : Nat
⊢ -[a✝+1] + 0 * (-[a✝+1] / 0) = -[a✝+1]

tactic: rw [← ofNat_emod, ← ofNat_ediv, ← Int.sub_sub, negSucc_eq, Int.sub_sub n,
  ← Int.neg_neg (_-_), Int.neg_sub, Int.sub_sub_self, Int.add_right_comm]
state_before: x✝¹ x✝ : Int
m n : Nat
⊢ ↑n - (↑m % ↑n + 1) - (↑n * (↑m / ↑n) + ↑n) = -[m+1]

tactic: exact congrArg (fun x => -(ofNat x + 1)) (Nat.mod_add_div ..)
state_before: x✝¹ x✝ : Int
m n : Nat
⊢ -(↑(m % n) + ↑n * ↑(m / n) + 1) = -(↑m + 1)
Theorem: intervalIntegral.integral_deriv_eq_sub'
File: Mathlib/MeasureTheory/Integral/FundThmCalculus.lean

tactic: rw [← hderiv, integral_deriv_eq_sub hdiff]
state_before: ι : Type ?u.1862127
𝕜 : Type ?u.1862130
E : Type u_1
F : Type ?u.1862136
A : Type ?u.1862139
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝¹ : ℝ → E
g' g φ : ℝ → ℝ
f✝ f' : ℝ → E
a b : ℝ
f : ℝ → E
hderiv : deriv f = f'
hdiff : ∀ (x : ℝ), x ∈ [[a, b]] → DifferentiableAt ℝ f x
hcont : ContinuousOn f' [[a, b]]
⊢ (∫ (y : ℝ) in a..b, f' y) = f b - f a

tactic: rw [hderiv]
state_before: ι : Type ?u.1862127
𝕜 : Type ?u.1862130
E : Type u_1
F : Type ?u.1862136
A : Type ?u.1862139
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝¹ : ℝ → E
g' g φ : ℝ → ℝ
f✝ f' : ℝ → E
a b : ℝ
f : ℝ → E
hderiv : deriv f = f'
hdiff : ∀ (x : ℝ), x ∈ [[a, b]] → DifferentiableAt ℝ f x
hcont : ContinuousOn f' [[a, b]]
⊢ IntervalIntegrable (deriv f) volume a b

tactic: exact hcont.intervalIntegrable
state_before: ι : Type ?u.1862127
𝕜 : Type ?u.1862130
E : Type u_1
F : Type ?u.1862136
A : Type ?u.1862139
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝¹ : ℝ → E
g' g φ : ℝ → ℝ
f✝ f' : ℝ → E
a b : ℝ
f : ℝ → E
hderiv : deriv f = f'
hdiff : ∀ (x : ℝ), x ∈ [[a, b]] → DifferentiableAt ℝ f x
hcont : ContinuousOn f' [[a, b]]
⊢ IntervalIntegrable f' volume a b
Theorem: Equiv.permCongr_trans
File: Mathlib/Logic/Equiv/Defs.lean

tactic: ext
state_before: α : Sort u
β : Sort v
γ : Sort w
α' : Type u_1
β' : Type u_2
e : α' ≃ β'
p p' : Perm α'
⊢ (↑(permCongr e) p).trans (↑(permCongr e) p') = ↑(permCongr e) (p.trans p')

tactic: simp only [trans_apply, comp_apply, permCongr_apply, symm_apply_apply]
state_before: case H
α : Sort u
β : Sort v
γ : Sort w
α' : Type u_1
β' : Type u_2
e : α' ≃ β'
p p' : Perm α'
x✝ : β'
⊢ ↑((↑(permCongr e) p).trans (↑(permCongr e) p')) x✝ = ↑(↑(permCongr e) (p.trans p')) x✝
Theorem: AffineMap.homothety_add
File: Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean

tactic: simp only [homothety_def, add_smul, vadd_vadd]
state_before: R : Type ?u.819565
k : Type u_3
V1 : Type u_1
P1 : Type u_2
V2 : Type ?u.819577
inst✝⁵ : CommRing k
inst✝⁴ : AddCommGroup V1
inst✝³ : AffineSpace V1 P1
inst✝² : AddCommGroup V2
inst✝¹ : Module k V1
inst✝ : Module k V2
c : P1
r₁ r₂ : k
⊢ homothety c (r₁ + r₂) = r₁ • (id k P1 -ᵥ const k P1 c) +ᵥ homothety c r₂
Theorem: MeasureTheory.LocallyIntegrable.aestronglyMeasurable
File: Mathlib/MeasureTheory/Function/LocallyIntegrable.lean

tactic: simpa only [restrict_univ] using (locallyIntegrableOn_univ.mpr hf).aestronglyMeasurable
state_before: X : Type u_1
Y : Type ?u.127720
E : Type u_2
R : Type ?u.127726
inst✝⁵ : MeasurableSpace X
inst✝⁴ : TopologicalSpace X
inst✝³ : MeasurableSpace Y
inst✝² : TopologicalSpace Y
inst✝¹ : NormedAddCommGroup E
f : X → E
μ : Measure X
s : Set X
inst✝ : SecondCountableTopology X
hf : LocallyIntegrable f
⊢ AEStronglyMeasurable f μ
Theorem: Complex.dist_le_div_mul_dist_of_mapsTo_ball
File: Mathlib/Analysis/Complex/Schwarz.lean

tactic: rcases eq_or_ne z c with (rfl | hne)
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R R₁ R₂ : ℝ
f : ℂ → E
c z z₀ : ℂ
hd : DifferentiableOn ℂ f (ball c R₁)
h_maps : MapsTo f (ball c R₁) (ball (f c) R₂)
hz : z ∈ ball c R₁
⊢ dist (f z) (f c) ≤ R₂ / R₁ * dist z c

tactic: simpa only [dslope_of_ne _ hne, slope_def_module, norm_smul, norm_inv, ← div_eq_inv_mul, ←
  dist_eq_norm, div_le_iff (dist_pos.2 hne)] using norm_dslope_le_div_of_mapsTo_ball hd h_maps hz
state_before: case inr
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R R₁ R₂ : ℝ
f : ℂ → E
c z z₀ : ℂ
hd : DifferentiableOn ℂ f (ball c R₁)
h_maps : MapsTo f (ball c R₁) (ball (f c) R₂)
hz : z ∈ ball c R₁
hne : z ≠ c
⊢ dist (f z) (f c) ≤ R₂ / R₁ * dist z c

tactic: simp only [dist_self, mul_zero, le_rfl]
state_before: case inl
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R R₁ R₂ : ℝ
f : ℂ → E
z z₀ : ℂ
hd : DifferentiableOn ℂ f (ball z R₁)
h_maps : MapsTo f (ball z R₁) (ball (f z) R₂)
hz : z ∈ ball z R₁
⊢ dist (f z) (f z) ≤ R₂ / R₁ * dist z z
Theorem: segment_subset_closure_openSegment
File: Mathlib/Analysis/Convex/Topology.lean

tactic: rw [segment_eq_image, openSegment_eq_image, ← closure_Ioo (zero_ne_one' 𝕜)]
state_before: ι : Type ?u.6034
𝕜 : Type u_2
E : Type u_1
inst✝⁸ : LinearOrderedRing 𝕜
inst✝⁷ : DenselyOrdered 𝕜
inst✝⁶ : TopologicalSpace 𝕜
inst✝⁵ : OrderTopology 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : TopologicalSpace E
inst✝² : ContinuousAdd E
inst✝¹ : Module 𝕜 E
inst✝ : ContinuousSMul 𝕜 E
x y : E
⊢ [x-[𝕜]y] ⊆ closure (openSegment 𝕜 x y)

tactic: exact image_closure_subset_closure_image (by continuity)
state_before: ι : Type ?u.6034
𝕜 : Type u_2
E : Type u_1
inst✝⁸ : LinearOrderedRing 𝕜
inst✝⁷ : DenselyOrdered 𝕜
inst✝⁶ : TopologicalSpace 𝕜
inst✝⁵ : OrderTopology 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : TopologicalSpace E
inst✝² : ContinuousAdd E
inst✝¹ : Module 𝕜 E
inst✝ : ContinuousSMul 𝕜 E
x y : E
⊢ (fun θ => (1 - θ) • x + θ • y) '' closure (Ioo 0 1) ⊆ closure ((fun θ => (1 - θ) • x + θ • y) '' Ioo 0 1)

tactic: continuity
state_before: ι : Type ?u.6034
𝕜 : Type u_2
E : Type u_1
inst✝⁸ : LinearOrderedRing 𝕜
inst✝⁷ : DenselyOrdered 𝕜
inst✝⁶ : TopologicalSpace 𝕜
inst✝⁵ : OrderTopology 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : TopologicalSpace E
inst✝² : ContinuousAdd E
inst✝¹ : Module 𝕜 E
inst✝ : ContinuousSMul 𝕜 E
x y : E
⊢ Continuous fun θ => (1 - θ) • x + θ • y
Theorem: tendsto_rpow_mul_exp_neg_mul_atTop_nhds_0
File: Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean

tactic: refine' (tendsto_exp_mul_div_rpow_atTop s b hb).inv_tendsto_atTop.congr' _
state_before: s b : ℝ
hb : 0 < b
⊢ Tendsto (fun x => x ^ s * exp (-b * x)) atTop (𝓝 0)

tactic: filter_upwards with x using by simp [exp_neg, inv_div, div_eq_mul_inv _ (exp _)]
state_before: s b : ℝ
hb : 0 < b
⊢ (fun x => exp (b * x) / x ^ s)⁻¹ =ᶠ[atTop] fun x => x ^ s * exp (-b * x)

tactic: simp [exp_neg, inv_div, div_eq_mul_inv _ (exp _)]
state_before: s b : ℝ
hb : 0 < b
x : ℝ
⊢ (fun x => exp (b * x) / x ^ s)⁻¹ x = x ^ s * exp (-b * x)
Theorem: Mathlib.Tactic.Ring.coeff_one
File: Mathlib/Tactic/Ring/Basic.lean

tactic: simp
state_before: u : Lean.Level
R : Type ?u.271811
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝ : CommSemiring R
k : ℕ
⊢ Nat.rawCast k = Nat.rawCast 1 * k