1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: List.drop_take_succ_eq_cons_getElem
File: Mathlib/Data/List/Join.lean

tactic: induction' L with head tail ih generalizing i
state_before: α : Type u_1
β : Type u_2
L : List α
i : ℕ
h : i < L.length
⊢ drop i (take (i + 1) L) = [L[i]]
state_after: case nil
α : Type u_1
β : Type u_2
i : ℕ
h : i < [].length
⊢ drop i (take (i + 1) []) = [[][i]]

case cons
α : Type u_1
β : Type u_2
head : α
tail : List α
ih : ∀ (i : ℕ) (h : i < tail.length), drop i (take (i + 1) tail) = [tail[i]]
i : ℕ
h : i < (head :: tail).length
⊢ drop i (take (i + 1) (head :: tail)) = [(head :: tail)[i]]

tactic: rcases i with _ | i
state_before: case cons
α : Type u_1
β : Type u_2
head : α
tail : List α
ih : ∀ (i : ℕ) (h : i < tail.length), drop i (take (i + 1) tail) = [tail[i]]
i : ℕ
h : i < (head :: tail).length
⊢ drop i (take (i + 1) (head :: tail)) = [(head :: tail)[i]]
state_after: case cons.zero
α : Type u_1
β : Type u_2
head : α
tail : List α
ih : ∀ (i : ℕ) (h : i < tail.length), drop i (take (i + 1) tail) = [tail[i]]
h : 0 < (head :: tail).length
⊢ drop 0 (take (0 + 1) (head :: tail)) = [(head :: tail)[0]]

case cons.succ
α : Type u_1
β : Type u_2
head : α
tail : List α
ih : ∀ (i : ℕ) (h : i < tail.length), drop i (take (i + 1) tail) = [tail[i]]
i : ℕ
h : i + 1 < (head :: tail).length
⊢ drop (i + 1) (take (i + 1 + 1) (head :: tail)) = [(head :: tail)[i + 1]]

tactic: exact (Nat.not_succ_le_zero i h).elim
state_before: case nil
α : Type u_1
β : Type u_2
i : ℕ
h : i < [].length
⊢ drop i (take (i + 1) []) = [[][i]]
state_after: no goals

tactic: simp
state_before: case cons.zero
α : Type u_1
β : Type u_2
head : α
tail : List α
ih : ∀ (i : ℕ) (h : i < tail.length), drop i (take (i + 1) tail) = [tail[i]]
h : 0 < (head :: tail).length
⊢ drop 0 (take (0 + 1) (head :: tail)) = [(head :: tail)[0]]
state_after: no goals

tactic: simpa using ih _ (by simpa using h)
state_before: case cons.succ
α : Type u_1
β : Type u_2
head : α
tail : List α
ih : ∀ (i : ℕ) (h : i < tail.length), drop i (take (i + 1) tail) = [tail[i]]
i : ℕ
h : i + 1 < (head :: tail).length
⊢ drop (i + 1) (take (i + 1 + 1) (head :: tail)) = [(head :: tail)[i + 1]]
state_after: no goals

tactic: simpa using h
state_before: α : Type u_1
β : Type u_2
head : α
tail : List α
ih : ∀ (i : ℕ) (h : i < tail.length), drop i (take (i + 1) tail) = [tail[i]]
i : ℕ
h : i + 1 < (head :: tail).length
⊢ i < tail.length
state_after: no goals
Theorem: ENNReal.hasSum_iff_tendsto_nat
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: refine ⟨HasSum.tendsto_sum_nat, fun h => ?_⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r✝ p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : ℕ → ℝ≥0∞
r : ℝ≥0∞
⊢ HasSum f r ↔ Tendsto (fun n => ∑ i ∈ Finset.range n, f i) atTop (𝓝 r)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r✝ p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : ℕ → ℝ≥0∞
r : ℝ≥0∞
h : Tendsto (fun n => ∑ i ∈ Finset.range n, f i) atTop (𝓝 r)
⊢ HasSum f r

tactic: rw [← iSup_eq_of_tendsto _ h, ← ENNReal.tsum_eq_iSup_nat]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r✝ p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : ℕ → ℝ≥0∞
r : ℝ≥0∞
h : Tendsto (fun n => ∑ i ∈ Finset.range n, f i) atTop (𝓝 r)
⊢ HasSum f r
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r✝ p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : ℕ → ℝ≥0∞
r : ℝ≥0∞
h : Tendsto (fun n => ∑ i ∈ Finset.range n, f i) atTop (𝓝 r)
⊢ HasSum f (∑' (i : ℕ), f i)

α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r✝ p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : ℕ → ℝ≥0∞
r : ℝ≥0∞
h : Tendsto (fun n => ∑ i ∈ Finset.range n, f i) atTop (𝓝 r)
⊢ Monotone fun n => ∑ i ∈ Finset.range n, f i

tactic: exact ENNReal.summable.hasSum
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r✝ p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : ℕ → ℝ≥0∞
r : ℝ≥0∞
h : Tendsto (fun n => ∑ i ∈ Finset.range n, f i) atTop (𝓝 r)
⊢ HasSum f (∑' (i : ℕ), f i)
state_after: no goals

tactic: exact fun s t hst => Finset.sum_le_sum_of_subset (Finset.range_subset.2 hst)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r✝ p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : ℕ → ℝ≥0∞
r : ℝ≥0∞
h : Tendsto (fun n => ∑ i ∈ Finset.range n, f i) atTop (𝓝 r)
⊢ Monotone fun n => ∑ i ∈ Finset.range n, f i
state_after: no goals
Theorem: PartialHomeomorph.contDiffOn_univUnitBall_symm
File: Mathlib/Analysis/InnerProductSpace/Calculus.lean

tactic: apply ContDiffAt.contDiffWithinAt
state_before: n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
y : E
hy : y ∈ ball 0 1
⊢ ContDiffWithinAt ℝ n (↑univUnitBall.symm) (ball 0 1) y
state_after: case h
n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
y : E
hy : y ∈ ball 0 1
⊢ ContDiffAt ℝ n (↑univUnitBall.symm) y

tactic: suffices ContDiffAt ℝ n (fun y : E => (√(1 - ‖y‖ ^ 2 : ℝ))⁻¹) y from this.smul contDiffAt_id
state_before: case h
n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
y : E
hy : y ∈ ball 0 1
⊢ ContDiffAt ℝ n (↑univUnitBall.symm) y
state_after: case h
n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
y : E
hy : y ∈ ball 0 1
⊢ ContDiffAt ℝ n (fun y => (√(1 - ‖y‖ ^ 2))⁻¹) y

tactic: have h : (0 : ℝ) < (1 : ℝ) - ‖(y : E)‖ ^ 2 := by
  rwa [mem_ball_zero_iff, ← _root_.abs_one, ← abs_norm, ← sq_lt_sq, one_pow, ← sub_pos] at hy
state_before: case h
n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
y : E
hy : y ∈ ball 0 1
⊢ ContDiffAt ℝ n (fun y => (√(1 - ‖y‖ ^ 2))⁻¹) y
state_after: case h
n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
y : E
hy : y ∈ ball 0 1
h : 0 < 1 - ‖y‖ ^ 2
⊢ ContDiffAt ℝ n (fun y => (√(1 - ‖y‖ ^ 2))⁻¹) y

tactic: refine ContDiffAt.inv ?_ (Real.sqrt_ne_zero'.mpr h)
state_before: case h
n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
y : E
hy : y ∈ ball 0 1
h : 0 < 1 - ‖y‖ ^ 2
⊢ ContDiffAt ℝ n (fun y => (√(1 - ‖y‖ ^ 2))⁻¹) y
state_after: case h
n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
y : E
hy : y ∈ ball 0 1
h : 0 < 1 - ‖y‖ ^ 2
⊢ ContDiffAt ℝ n (fun y => √(1 - ‖y‖ ^ 2)) y

tactic: refine (contDiffAt_sqrt h.ne').comp y ?_
state_before: case h
n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
y : E
hy : y ∈ ball 0 1
h : 0 < 1 - ‖y‖ ^ 2
⊢ ContDiffAt ℝ n (fun y => √(1 - ‖y‖ ^ 2)) y
state_after: case h
n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
y : E
hy : y ∈ ball 0 1
h : 0 < 1 - ‖y‖ ^ 2
⊢ ContDiffAt ℝ n (fun y => 1 - ‖y‖ ^ 2) y

tactic: exact contDiffAt_const.sub (contDiff_norm_sq ℝ).contDiffAt
state_before: case h
n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
y : E
hy : y ∈ ball 0 1
h : 0 < 1 - ‖y‖ ^ 2
⊢ ContDiffAt ℝ n (fun y => 1 - ‖y‖ ^ 2) y
state_after: no goals

tactic: rwa [mem_ball_zero_iff, ← _root_.abs_one, ← abs_norm, ← sq_lt_sq, one_pow, ← sub_pos] at hy
state_before: n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
y : E
hy : y ∈ ball 0 1
⊢ 0 < 1 - ‖y‖ ^ 2
state_after: no goals
Theorem: Polynomial.content_monomial
File: Mathlib/RingTheory/Polynomial/Content.lean

tactic: rw [← C_mul_X_pow_eq_monomial, content_C_mul, content_X_pow, mul_one]
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
r : R
k : ℕ
⊢ ((monomial k) r).content = normalize r
state_after: no goals
Theorem: Comon_.tensorObj_comul'
File: Mathlib/CategoryTheory/Monoidal/Comon_.lean

tactic: rfl
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
M : Comon_ C
inst✝ : BraidedCategory C
A B : Comon_ C
⊢ (A ⊗ B).comul =
    (A.comul ⊗ B.comul) ≫ (tensor_μ Cᵒᵖ ({ unop := A.X }, { unop := B.X }) ({ unop := A.X }, { unop := B.X })).unop
state_after: no goals
Theorem: CategoryTheory.isIso_of_op
File: Mathlib/CategoryTheory/Opposites.lean

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X Y : C
f : X ⟶ Y
inst✝ : IsIso f.op
⊢ (f ≫ (inv f.op).unop).op = (𝟙 X).op
state_after: no goals

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X Y : C
f : X ⟶ Y
inst✝ : IsIso f.op
⊢ ((inv f.op).unop ≫ f).op = (𝟙 Y).op
state_after: no goals
Theorem: Fin.predAbove_castPred_of_le
File: Mathlib/Data/Fin/Basic.lean

tactic: rw [predAbove_of_le_castSucc _ _ (castSucc_castPred _ _ ▸ h)]
state_before: n m : ℕ
p i : Fin (n + 1)
h : i ≤ p
hp : p ≠ last n
hi : optParam (i ≠ last n) ⋯
⊢ (p.castPred hp).predAbove i = i.castPred hi
state_after: no goals
Theorem: Dilation.dist_eq
File: Mathlib/Topology/MetricSpace/Dilation.lean

tactic: simp only [dist_nndist, nndist_eq, NNReal.coe_mul]
state_before: α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
F✝ : Type u_4
G : Type u_5
inst✝⁶ : PseudoEMetricSpace α✝
inst✝⁵ : PseudoEMetricSpace β✝
inst✝⁴ : FunLike F✝ α✝ β✝
α : Type u_6
β : Type u_7
F : Type u_8
inst✝³ : PseudoMetricSpace α
inst✝² : PseudoMetricSpace β
inst✝¹ : FunLike F α β
inst✝ : DilationClass F α β
f : F
x y : α
⊢ dist (f x) (f y) = ↑(ratio f) * dist x y
state_after: no goals
Theorem: Int.gcd_ne_one_iff_gcd_mul_right_ne_one
File: Mathlib/RingTheory/Int/Basic.lean

tactic: simp only [gcd_eq_one_iff_coprime, ← not_and_or, not_iff_not, IsCoprime.mul_right_iff]
state_before: a : ℤ
m n : ℕ
⊢ a.gcd (↑m * ↑n) ≠ 1 ↔ a.gcd ↑m ≠ 1 ∨ a.gcd ↑n ≠ 1
state_after: no goals
Theorem: DiscreteValuationRing.irreducible_iff_uniformizer
File: Mathlib/RingTheory/DiscreteValuationRing/Basic.lean

tactic: rwa [h, span_singleton_eq_bot]
state_before: R : Type u
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
ϖ : R
h : maximalIdeal R = span {ϖ}
e : ϖ = 0
⊢ maximalIdeal R = ⊥
state_after: no goals
Theorem: Orientation.sin_oangle_sub_right_of_oangle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean

tactic: have hs : (o.oangle y (y - x)).sign = 1 := by
  rw [oangle_sign_sub_right_swap, h, Real.Angle.sign_coe_pi_div_two]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : o.oangle x y = ↑(π / 2)
⊢ (o.oangle y (y - x)).sin = ‖x‖ / ‖y - x‖
state_after: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : o.oangle x y = ↑(π / 2)
hs : (o.oangle y (y - x)).sign = 1
⊢ (o.oangle y (y - x)).sin = ‖x‖ / ‖y - x‖

tactic: rw [o.oangle_eq_angle_of_sign_eq_one hs, Real.Angle.sin_coe,
  InnerProductGeometry.sin_angle_sub_of_inner_eq_zero
    (o.inner_rev_eq_zero_of_oangle_eq_pi_div_two h)
    (Or.inl (o.right_ne_zero_of_oangle_eq_pi_div_two h))]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : o.oangle x y = ↑(π / 2)
hs : (o.oangle y (y - x)).sign = 1
⊢ (o.oangle y (y - x)).sin = ‖x‖ / ‖y - x‖
state_after: no goals

tactic: rw [oangle_sign_sub_right_swap, h, Real.Angle.sign_coe_pi_div_two]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : o.oangle x y = ↑(π / 2)
⊢ (o.oangle y (y - x)).sign = 1
state_after: no goals
Theorem: PowerBasis.degree_minpoly
File: Mathlib/RingTheory/PowerBasis.lean

tactic: rw [← minpolyGen_eq, degree_minpolyGen]
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : Ring S
inst✝⁷ : Algebra R S
A : Type u_4
B : Type u_5
inst✝⁶ : CommRing A
inst✝⁵ : CommRing B
inst✝⁴ : IsDomain B
inst✝³ : Algebra A B
K : Type u_6
inst✝² : Field K
inst✝¹ : Algebra A S
inst✝ : Nontrivial A
pb : PowerBasis A S
⊢ (minpoly A pb.gen).degree = ↑pb.dim
state_after: no goals
Theorem: MeasureTheory.AEEqFun.compMeasurable_toGerm
File: Mathlib/MeasureTheory/Function/AEEqFun.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹⁰ : MeasurableSpace α
μ ν : Measure α
inst✝⁹ : TopologicalSpace β
inst✝⁸ : TopologicalSpace γ
inst✝⁷ : TopologicalSpace δ
inst✝⁶ : MeasurableSpace β
inst✝⁵ : BorelSpace β
inst✝⁴ : PseudoMetrizableSpace β
inst✝³ : PseudoMetrizableSpace γ
inst✝² : SecondCountableTopology γ
inst✝¹ : MeasurableSpace γ
inst✝ : OpensMeasurableSpace γ
g : β → γ
hg : Measurable g
f✝ : α →ₘ[μ] β
f : α → β
x✝ : AEStronglyMeasurable f μ
⊢ (compMeasurable g hg (mk f x✝)).toGerm = Germ.map g (mk f x✝).toGerm
state_after: no goals
Theorem: CategoryTheory.Limits.isIso_ι_of_isInitial
File: Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean

tactic: refine ⟨?_, by ext; simp⟩
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
J : Type u
inst✝² : Category.{v, u} J
j : J
I : IsInitial j
F : J ⥤ C
inst✝¹ : HasColimit F
inst✝ : ∀ (i j : J) (f : i ⟶ j), IsIso (F.map f)
⊢ colimit.ι F j ≫ colimit.desc F (coconeOfDiagramInitial I F) = 𝟙 (F.obj j) ∧
    colimit.desc F (coconeOfDiagramInitial I F) ≫ colimit.ι F j = 𝟙 (colimit F)
state_after: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
J : Type u
inst✝² : Category.{v, u} J
j : J
I : IsInitial j
F : J ⥤ C
inst✝¹ : HasColimit F
inst✝ : ∀ (i j : J) (f : i ⟶ j), IsIso (F.map f)
⊢ colimit.ι F j ≫ colimit.desc F (coconeOfDiagramInitial I F) = 𝟙 (F.obj j)

tactic: simp only [colimit.ι_desc, coconeOfDiagramInitial_pt, coconeOfDiagramInitial_ι_app,
Functor.const_obj_obj, IsInitial.to_self, Functor.map_id]
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
J : Type u
inst✝² : Category.{v, u} J
j : J
I : IsInitial j
F : J ⥤ C
inst✝¹ : HasColimit F
inst✝ : ∀ (i j : J) (f : i ⟶ j), IsIso (F.map f)
⊢ colimit.ι F j ≫ colimit.desc F (coconeOfDiagramInitial I F) = 𝟙 (F.obj j)
state_after: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
J : Type u
inst✝² : Category.{v, u} J
j : J
I : IsInitial j
F : J ⥤ C
inst✝¹ : HasColimit F
inst✝ : ∀ (i j : J) (f : i ⟶ j), IsIso (F.map f)
⊢ inv (𝟙 (F.obj j)) = 𝟙 (F.obj j)

tactic: dsimp [inv]
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
J : Type u
inst✝² : Category.{v, u} J
j : J
I : IsInitial j
F : J ⥤ C
inst✝¹ : HasColimit F
inst✝ : ∀ (i j : J) (f : i ⟶ j), IsIso (F.map f)
⊢ inv (𝟙 (F.obj j)) = 𝟙 (F.obj j)
state_after: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
J : Type u
inst✝² : Category.{v, u} J
j : J
I : IsInitial j
F : J ⥤ C
inst✝¹ : HasColimit F
inst✝ : ∀ (i j : J) (f : i ⟶ j), IsIso (F.map f)
⊢ Classical.choose ⋯ = 𝟙 (F.obj j)

tactic: apply @Classical.choose_spec _ (fun x => x = 𝟙 F.obj j) _
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
J : Type u
inst✝² : Category.{v, u} J
j : J
I : IsInitial j
F : J ⥤ C
inst✝¹ : HasColimit F
inst✝ : ∀ (i j : J) (f : i ⟶ j), IsIso (F.map f)
⊢ Classical.choose ⋯ = 𝟙 (F.obj j)
state_after: no goals

tactic: ext
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
J : Type u
inst✝² : Category.{v, u} J
j : J
I : IsInitial j
F : J ⥤ C
inst✝¹ : HasColimit F
inst✝ : ∀ (i j : J) (f : i ⟶ j), IsIso (F.map f)
⊢ colimit.desc F (coconeOfDiagramInitial I F) ≫ colimit.ι F j = 𝟙 (colimit F)
state_after: case w
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
J : Type u
inst✝² : Category.{v, u} J
j : J
I : IsInitial j
F : J ⥤ C
inst✝¹ : HasColimit F
inst✝ : ∀ (i j : J) (f : i ⟶ j), IsIso (F.map f)
j✝ : J
⊢ colimit.ι F j✝ ≫ colimit.desc F (coconeOfDiagramInitial I F) ≫ colimit.ι F j = colimit.ι F j✝ ≫ 𝟙 (colimit F)

tactic: simp
state_before: case w
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
J : Type u
inst✝² : Category.{v, u} J
j : J
I : IsInitial j
F : J ⥤ C
inst✝¹ : HasColimit F
inst✝ : ∀ (i j : J) (f : i ⟶ j), IsIso (F.map f)
j✝ : J
⊢ colimit.ι F j✝ ≫ colimit.desc F (coconeOfDiagramInitial I F) ≫ colimit.ι F j = colimit.ι F j✝ ≫ 𝟙 (colimit F)
state_after: no goals
Theorem: orthogonalProjection_add_orthogonalProjection_orthogonal
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: simp
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K
w : E
⊢ ↑((orthogonalProjection K) w) + ↑((orthogonalProjection Kᗮ) w) = w
state_after: no goals
Theorem: Measurable.sub_stronglyMeasurable
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: rw [sub_eq_add_neg]
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁸ : Countable ι
f✝ g✝ : α✝ → β
mα : MeasurableSpace α✝
inst✝⁷ : TopologicalSpace β
α : Type u_5
E : Type u_6
x✝ : MeasurableSpace α
inst✝⁶ : AddCommGroup E
inst✝⁵ : TopologicalSpace E
inst✝⁴ : MeasurableSpace E
inst✝³ : BorelSpace E
inst✝² : ContinuousAdd E
inst✝¹ : ContinuousNeg E
inst✝ : PseudoMetrizableSpace E
g f : α → E
hg : Measurable g
hf : StronglyMeasurable f
⊢ Measurable (g - f)
state_after: α✝ : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁸ : Countable ι
f✝ g✝ : α✝ → β
mα : MeasurableSpace α✝
inst✝⁷ : TopologicalSpace β
α : Type u_5
E : Type u_6
x✝ : MeasurableSpace α
inst✝⁶ : AddCommGroup E
inst✝⁵ : TopologicalSpace E
inst✝⁴ : MeasurableSpace E
inst✝³ : BorelSpace E
inst✝² : ContinuousAdd E
inst✝¹ : ContinuousNeg E
inst✝ : PseudoMetrizableSpace E
g f : α → E
hg : Measurable g
hf : StronglyMeasurable f
⊢ Measurable (g + -f)

tactic: exact hg.add_stronglyMeasurable hf.neg
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁸ : Countable ι
f✝ g✝ : α✝ → β
mα : MeasurableSpace α✝
inst✝⁷ : TopologicalSpace β
α : Type u_5
E : Type u_6
x✝ : MeasurableSpace α
inst✝⁶ : AddCommGroup E
inst✝⁵ : TopologicalSpace E
inst✝⁴ : MeasurableSpace E
inst✝³ : BorelSpace E
inst✝² : ContinuousAdd E
inst✝¹ : ContinuousNeg E
inst✝ : PseudoMetrizableSpace E
g f : α → E
hg : Measurable g
hf : StronglyMeasurable f
⊢ Measurable (g + -f)
state_after: no goals
Theorem: List.Sublist.drop
File: Mathlib/Data/List/Infix.lean

tactic: rw [← drop_tail, ← drop_tail]
state_before: α : Type u_1
β : Type u_2
l l₁ l₂ l₃ : List α
a b : α
m n✝ : ℕ
x✝¹ x✝ : List α
h : x✝¹ <+ x✝
n : ℕ
⊢ drop (n + 1) x✝¹ <+ drop (n + 1) x✝
state_after: α : Type u_1
β : Type u_2
l l₁ l₂ l₃ : List α
a b : α
m n✝ : ℕ
x✝¹ x✝ : List α
h : x✝¹ <+ x✝
n : ℕ
⊢ drop n x✝¹.tail <+ drop n x✝.tail

tactic: exact h.tail.drop n
state_before: α : Type u_1
β : Type u_2
l l₁ l₂ l₃ : List α
a b : α
m n✝ : ℕ
x✝¹ x✝ : List α
h : x✝¹ <+ x✝
n : ℕ
⊢ drop n x✝¹.tail <+ drop n x✝.tail
state_after: no goals
Theorem: MulAction.stabilizer_finset_univ
File: Mathlib/Algebra/Pointwise/Stabilizer.lean

tactic: ext
state_before: G : Type u_1
H : Type u_2
α : Type u_3
inst✝⁴ : Group G
inst✝³ : Group H
inst✝² : MulAction G α
a : G
inst✝¹ : DecidableEq α
inst✝ : Fintype α
⊢ stabilizer G Finset.univ = ⊤
state_after: case h
G : Type u_1
H : Type u_2
α : Type u_3
inst✝⁴ : Group G
inst✝³ : Group H
inst✝² : MulAction G α
a : G
inst✝¹ : DecidableEq α
inst✝ : Fintype α
x✝ : G
⊢ x✝ ∈ stabilizer G Finset.univ ↔ x✝ ∈ ⊤

tactic: simp
state_before: case h
G : Type u_1
H : Type u_2
α : Type u_3
inst✝⁴ : Group G
inst✝³ : Group H
inst✝² : MulAction G α
a : G
inst✝¹ : DecidableEq α
inst✝ : Fintype α
x✝ : G
⊢ x✝ ∈ stabilizer G Finset.univ ↔ x✝ ∈ ⊤
state_after: no goals
Theorem: Uniform.tendsto_nhds_left
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: rw [nhds_eq_comap_uniformity', tendsto_comap_iff]
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
f : Filter β
u : β → α
a : α
⊢ Tendsto u f (𝓝 a) ↔ Tendsto (fun x => (u x, a)) f (𝓤 α)
state_after: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
f : Filter β
u : β → α
a : α
⊢ Tendsto ((fun y => (y, a)) ∘ u) f (𝓤 α) ↔ Tendsto (fun x => (u x, a)) f (𝓤 α)

tactic: rfl
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
f : Filter β
u : β → α
a : α
⊢ Tendsto ((fun y => (y, a)) ∘ u) f (𝓤 α) ↔ Tendsto (fun x => (u x, a)) f (𝓤 α)
state_after: no goals
Theorem: LSeries.term_add_apply
File: Mathlib/NumberTheory/LSeries/Linearity.lean

tactic: rw [term_add, Pi.add_apply]
state_before: f g : ℕ → ℂ
s : ℂ
n : ℕ
⊢ term (f + g) s n = term f s n + term g s n
state_after: no goals
Theorem: Filter.tendsto_atTop'
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: simp only [tendsto_def, mem_atTop_sets, mem_preimage]
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝¹ : Nonempty α
inst✝ : SemilatticeSup α
f : α → β
l : Filter β
⊢ Tendsto f atTop l ↔ ∀ s ∈ l, ∃ a, ∀ b ≥ a, f b ∈ s
state_after: no goals
Theorem: mul_pow_le_nat_floor_pow
File: Mathlib/Analysis/SpecificLimits/FloorPow.lean

tactic: have cpos : 0 < c := zero_lt_one.trans hc
state_before: c : ℝ
hc : 1 < c
i : ℕ
⊢ (1 - c⁻¹) * c ^ i ≤ ↑⌊c ^ i⌋₊
state_after: c : ℝ
hc : 1 < c
i : ℕ
cpos : 0 < c
⊢ (1 - c⁻¹) * c ^ i ≤ ↑⌊c ^ i⌋₊

tactic: rcases eq_or_ne i 0 with (rfl | hi)
state_before: c : ℝ
hc : 1 < c
i : ℕ
cpos : 0 < c
⊢ (1 - c⁻¹) * c ^ i ≤ ↑⌊c ^ i⌋₊
state_after: case inl
c : ℝ
hc : 1 < c
cpos : 0 < c
⊢ (1 - c⁻¹) * c ^ 0 ≤ ↑⌊c ^ 0⌋₊

case inr
c : ℝ
hc : 1 < c
i : ℕ
cpos : 0 < c
hi : i ≠ 0
⊢ (1 - c⁻¹) * c ^ i ≤ ↑⌊c ^ i⌋₊

tactic: calc
  (1 - c⁻¹) * c ^ i = c ^ i - c ^ i * c⁻¹ := by ring
  _ ≤ c ^ i - 1 := by
    gcongr
    simpa only [← div_eq_mul_inv, one_le_div cpos, pow_one] using le_self_pow hc.le hi
  _ ≤ ⌊c ^ i⌋₊ := (Nat.sub_one_lt_floor _).le
state_before: case inr
c : ℝ
hc : 1 < c
i : ℕ
cpos : 0 < c
hi : i ≠ 0
⊢ (1 - c⁻¹) * c ^ i ≤ ↑⌊c ^ i⌋₊
state_after: no goals

tactic: simp only [pow_zero, Nat.floor_one, Nat.cast_one, mul_one, sub_le_self_iff, inv_nonneg, cpos.le]
state_before: case inl
c : ℝ
hc : 1 < c
cpos : 0 < c
⊢ (1 - c⁻¹) * c ^ 0 ≤ ↑⌊c ^ 0⌋₊
state_after: no goals

tactic: ring
state_before: c : ℝ
hc : 1 < c
i : ℕ
cpos : 0 < c
hi : i ≠ 0
⊢ (1 - c⁻¹) * c ^ i = c ^ i - c ^ i * c⁻¹
state_after: no goals

tactic: gcongr
state_before: c : ℝ
hc : 1 < c
i : ℕ
cpos : 0 < c
hi : i ≠ 0
⊢ c ^ i - c ^ i * c⁻¹ ≤ c ^ i - 1
state_after: case h
c : ℝ
hc : 1 < c
i : ℕ
cpos : 0 < c
hi : i ≠ 0
⊢ 1 ≤ c ^ i * c⁻¹

tactic: simpa only [← div_eq_mul_inv, one_le_div cpos, pow_one] using le_self_pow hc.le hi
state_before: case h
c : ℝ
hc : 1 < c
i : ℕ
cpos : 0 < c
hi : i ≠ 0
⊢ 1 ≤ c ^ i * c⁻¹
state_after: no goals
Theorem: Set.Ici_diff_Ici
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: rw [diff_eq, compl_Ici, Ici_inter_Iio]
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
⊢ Ici a \ Ici b = Ico a b
state_after: no goals
Theorem: FirstOrder.Language.BoundedFormula.realize_ex
File: Mathlib/ModelTheory/Semantics.lean

tactic: rw [BoundedFormula.ex, realize_not, realize_all, not_forall]
state_before: L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
n l : ℕ
φ ψ : L.BoundedFormula α l
θ : L.BoundedFormula α l.succ
v : α → M
xs : Fin l → M
⊢ (∃'θ).Realize v xs ↔ ∃ a, θ.Realize v (snoc xs a)
state_after: L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
n l : ℕ
φ ψ : L.BoundedFormula α l
θ : L.BoundedFormula α l.succ
v : α → M
xs : Fin l → M
⊢ (∃ x, ¬(∼θ).Realize v (snoc xs x)) ↔ ∃ a, θ.Realize v (snoc xs a)

tactic: simp_rw [realize_not, Classical.not_not]
state_before: L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
n l : ℕ
φ ψ : L.BoundedFormula α l
θ : L.BoundedFormula α l.succ
v : α → M
xs : Fin l → M
⊢ (∃ x, ¬(∼θ).Realize v (snoc xs x)) ↔ ∃ a, θ.Realize v (snoc xs a)
state_after: no goals
Theorem: Filter.nhds_pure
File: Mathlib/Topology/Filter.lean

tactic: rw [← principal_singleton, nhds_principal, principal_singleton, Iic_pure]
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
X : Type u_4
Y : Type u_5
x : α
⊢ 𝓝 (pure x) = 𝓟 {⊥, pure x}
state_after: no goals