1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ProbabilityTheory.kernel.density_mono_set
File: Mathlib/Probability/Kernel/Disintegration/Density.lean

tactic: refine limsup_le_limsup ?_ ?_ ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
a : α
x : γ
s s' : Set β
h : s ⊆ s'
⊢ density κ ν a x s ≤ density κ ν a x s'
state_after: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
a : α
x : γ
s s' : Set β
h : s ⊆ s'
⊢ (fun n => densityProcess κ ν n a x s) ≤ᶠ[atTop] fun n => densityProcess κ ν n a x s'

case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
a : α
x : γ
s s' : Set β
h : s ⊆ s'
⊢ IsCoboundedUnder (fun x x_1 => x ≤ x_1) atTop fun n => densityProcess κ ν n a x s

case refine_3
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
a : α
x : γ
s s' : Set β
h : s ⊆ s'
⊢ IsBoundedUnder (fun x x_1 => x ≤ x_1) atTop fun n => densityProcess κ ν n a x s'

tactic: exact eventually_of_forall (fun n ↦ densityProcess_mono_set hκν n a x h)
state_before: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
a : α
x : γ
s s' : Set β
h : s ⊆ s'
⊢ (fun n => densityProcess κ ν n a x s) ≤ᶠ[atTop] fun n => densityProcess κ ν n a x s'
state_after: no goals

tactic: exact isCoboundedUnder_le_of_le atTop (fun i ↦ densityProcess_nonneg _ _ _ _ _ _)
state_before: case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
a : α
x : γ
s s' : Set β
h : s ⊆ s'
⊢ IsCoboundedUnder (fun x x_1 => x ≤ x_1) atTop fun n => densityProcess κ ν n a x s
state_after: no goals

tactic: exact isBoundedUnder_of ⟨1, fun n ↦ densityProcess_le_one hκν _ _ _ _⟩
state_before: case refine_3
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
a : α
x : γ
s s' : Set β
h : s ⊆ s'
⊢ IsBoundedUnder (fun x x_1 => x ≤ x_1) atTop fun n => densityProcess κ ν n a x s'
state_after: no goals
Theorem: TopologicalSpace.Closeds.coe_sSup
File: Mathlib/Topology/Sets/Closeds.lean

tactic: rfl
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Closeds α)
⊢ ↑(sSup S) = closure (⋃₀ (SetLike.coe '' S))
state_after: no goals
Theorem: CategoryTheory.Limits.CompleteLattice.prod_eq_inf
File: Mathlib/CategoryTheory/Limits/Lattice.lean

tactic: rw [finite_limit_eq_finset_univ_inf (pair.{u} x y)]
state_before: α : Type u
J : Type w
inst✝³ : SmallCategory J
inst✝² : FinCategory J
inst✝¹ : SemilatticeInf α
inst✝ : OrderTop α
x y : α
⊢ limit (pair x y) = Finset.univ.inf (pair x y).obj
state_after: no goals

tactic: rw [inf_top_eq]
state_before: α : Type u
J : Type w
inst✝³ : SmallCategory J
inst✝² : FinCategory J
inst✝¹ : SemilatticeInf α
inst✝ : OrderTop α
x y : α
⊢ x ⊓ (y ⊓ ⊤) = x ⊓ y
state_after: no goals
Theorem: Nat.fib_coprime_fib_succ
File: Mathlib/Data/Nat/Fib/Basic.lean

tactic: induction' n with n ih
state_before: n : ℕ
⊢ (fib n).Coprime (fib (n + 1))
state_after: case zero

⊢ (fib 0).Coprime (fib (0 + 1))

case succ
n : ℕ
ih : (fib n).Coprime (fib (n + 1))
⊢ (fib (n + 1)).Coprime (fib (n + 1 + 1))

tactic: simp
state_before: case zero

⊢ (fib 0).Coprime (fib (0 + 1))
state_after: no goals

tactic: rw [fib_add_two]
state_before: case succ
n : ℕ
ih : (fib n).Coprime (fib (n + 1))
⊢ (fib (n + 1)).Coprime (fib (n + 1 + 1))
state_after: case succ
n : ℕ
ih : (fib n).Coprime (fib (n + 1))
⊢ (fib (n + 1)).Coprime (fib n + fib (n + 1))

tactic: simp only [coprime_add_self_right]
state_before: case succ
n : ℕ
ih : (fib n).Coprime (fib (n + 1))
⊢ (fib (n + 1)).Coprime (fib n + fib (n + 1))
state_after: case succ
n : ℕ
ih : (fib n).Coprime (fib (n + 1))
⊢ (fib (n + 1)).Coprime (fib n)

tactic: simp [Coprime, ih.symm]
state_before: case succ
n : ℕ
ih : (fib n).Coprime (fib (n + 1))
⊢ (fib (n + 1)).Coprime (fib n)
state_after: no goals
Theorem: Orientation.oangle_sign_sub_left_swap
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

tactic: rw [oangle_sign_sub_left_eq_neg, o.oangle_rev y x, Real.Angle.sign_neg]
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x y : V
⊢ (o.oangle (x - y) x).sign = (o.oangle x y).sign
state_after: no goals
Theorem: mem_own_leftCoset
File: Mathlib/GroupTheory/Coset.lean

tactic: simpa
state_before: α : Type u_1
inst✝ : Monoid α
s : Submonoid α
a : α
this : a * 1 ∈ a • ↑s
⊢ a ∈ a • ↑s
state_after: no goals
Theorem: MeasureTheory.setIntegral_nonpos_le
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

tactic: rw [← integral_indicator hs, ←
  integral_indicator (hf.measurableSet_le stronglyMeasurable_const)]
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝ : MeasurableSpace X
μ : Measure X
f : X → ℝ
s✝ s : Set X
hs : MeasurableSet s
hf : StronglyMeasurable f
hfi : Integrable f μ
⊢ ∫ (x : X) in {y | f y ≤ 0}, f x ∂μ ≤ ∫ (x : X) in s, f x ∂μ
state_after: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝ : MeasurableSpace X
μ : Measure X
f : X → ℝ
s✝ s : Set X
hs : MeasurableSet s
hf : StronglyMeasurable f
hfi : Integrable f μ
⊢ ∫ (x : X), {a | f a ≤ 0}.indicator f x ∂μ ≤ ∫ (x : X), s.indicator f x ∂μ

tactic: exact
  integral_mono (hfi.indicator (hf.measurableSet_le stronglyMeasurable_const))
    (hfi.indicator hs) (indicator_nonpos_le_indicator s f)
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝ : MeasurableSpace X
μ : Measure X
f : X → ℝ
s✝ s : Set X
hs : MeasurableSet s
hf : StronglyMeasurable f
hfi : Integrable f μ
⊢ ∫ (x : X), {a | f a ≤ 0}.indicator f x ∂μ ≤ ∫ (x : X), s.indicator f x ∂μ
state_after: no goals
Theorem: CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.familyOfElements_isCompatible
File: Mathlib/CategoryTheory/Sites/CoversTop.lean

tactic: intro Y₁ Y₂ Z g₁ g₂ f₁ f₂ ⟨i₁, ⟨φ₁⟩⟩ ⟨i₂, ⟨φ₂⟩⟩ _
state_before: C : Type u
inst✝¹ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝ : Category.{v', u'} A
F : Cᵒᵖ ⥤ Type w
I : Type u_1
Y : I → C
x : FamilyOfElementsOnObjects F Y
hx : x.IsCompatible
X : C
⊢ (x.familyOfElements X).Compatible
state_after: C : Type u
inst✝¹ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝ : Category.{v', u'} A
F : Cᵒᵖ ⥤ Type w
I : Type u_1
Y : I → C
x : FamilyOfElementsOnObjects F Y
hx : x.IsCompatible
X Y₁ Y₂ Z : C
g₁ : Z ⟶ Y₁
g₂ : Z ⟶ Y₂
f₁ : Y₁ ⟶ X
f₂ : Y₂ ⟶ X
i₁ : I
φ₁ : Y₁ ⟶ Y i₁
i₂ : I
φ₂ : Y₂ ⟶ Y i₂
a✝ : g₁ ≫ f₁ = g₂ ≫ f₂
⊢ F.map g₁.op (x.familyOfElements X f₁ ⋯) = F.map g₂.op (x.familyOfElements X f₂ ⋯)

tactic: simpa [hx.familyOfElements_apply f₁ i₁ φ₁,
  hx.familyOfElements_apply f₂ i₂ φ₂] using hx Z i₁ i₂ (g₁ ≫ φ₁) (g₂ ≫ φ₂)
state_before: C : Type u
inst✝¹ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝ : Category.{v', u'} A
F : Cᵒᵖ ⥤ Type w
I : Type u_1
Y : I → C
x : FamilyOfElementsOnObjects F Y
hx : x.IsCompatible
X Y₁ Y₂ Z : C
g₁ : Z ⟶ Y₁
g₂ : Z ⟶ Y₂
f₁ : Y₁ ⟶ X
f₂ : Y₂ ⟶ X
i₁ : I
φ₁ : Y₁ ⟶ Y i₁
i₂ : I
φ₂ : Y₂ ⟶ Y i₂
a✝ : g₁ ≫ f₁ = g₂ ≫ f₂
⊢ F.map g₁.op (x.familyOfElements X f₁ ⋯) = F.map g₂.op (x.familyOfElements X f₂ ⋯)
state_after: no goals
Theorem: ENNReal.ofReal_le_ofReal
File: Mathlib/Data/ENNReal/Real.lean

tactic: simp [ENNReal.ofReal, Real.toNNReal_le_toNNReal h]
state_before: a b c d : ℝ≥0∞
r p✝ q✝ : ℝ≥0
p q : ℝ
h : p ≤ q
⊢ ENNReal.ofReal p ≤ ENNReal.ofReal q
state_after: no goals
Theorem: Polynomial.degree_X_add_C
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: have : degree (C a) < degree (X : R[X]) :=
  calc
    degree (C a) ≤ 0 := degree_C_le
    _ < 1 := WithBot.coe_lt_coe.mpr zero_lt_one
    _ = degree X := degree_X.symm
state_before: R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝¹ : Nontrivial R
inst✝ : Semiring R
a : R
⊢ (X + C a).degree = 1
state_after: R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝¹ : Nontrivial R
inst✝ : Semiring R
a : R
this : (C a).degree < X.degree
⊢ (X + C a).degree = 1

tactic: rw [degree_add_eq_left_of_degree_lt this, degree_X]
state_before: R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝¹ : Nontrivial R
inst✝ : Semiring R
a : R
this : (C a).degree < X.degree
⊢ (X + C a).degree = 1
state_after: no goals
Theorem: Part.div_get_eq
File: Mathlib/Data/Part.lean

tactic: simp [div_def]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Div α
a b : Part α
hab : (a / b).Dom
⊢ (a / b).get hab = a.get ⋯ / b.get ⋯
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Div α
a b : Part α
hab : (a / b).Dom
⊢ (a.bind fun y => map (fun x => y / x) b).get ⋯ = a.get ⋯ / b.get ⋯

tactic: aesop
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Div α
a b : Part α
hab : (a / b).Dom
⊢ (a.bind fun y => map (fun x => y / x) b).get ⋯ = a.get ⋯ / b.get ⋯
state_after: no goals
Theorem: PNat.one_add_natPred
File: Mathlib/Data/PNat/Basic.lean

tactic: rw [natPred, add_tsub_cancel_iff_le.mpr <| show 1 ≤ (n : ℕ) from n.2]
state_before: n : ℕ+
⊢ 1 + n.natPred = ↑n
state_after: no goals
Theorem: rothNumberNat_isLittleO_id
File: Mathlib/Combinatorics/Additive/Corner/Roth.lean

tactic: simp only [isLittleO_iff, eventually_atTop, RCLike.norm_natCast]
state_before: G : Type u_1
inst✝¹ : AddCommGroup G
inst✝ : Fintype G
A B : Finset (G × G)
a b c d x y : G
n : ℕ
ε : ℝ
⊢ (fun N => ↑(rothNumberNat N)) =o[atTop] fun N => ↑N
state_after: G : Type u_1
inst✝¹ : AddCommGroup G
inst✝ : Fintype G
A B : Finset (G × G)
a b c d x y : G
n : ℕ
ε : ℝ
⊢ ∀ ⦃c : ℝ⦄, 0 < c → ∃ a, ∀ b ≥ a, ↑(rothNumberNat b) ≤ c * ↑b

tactic: refine fun ε hε ↦ ⟨cornersTheoremBound (ε / 3), fun n hn ↦ ?_⟩
state_before: G : Type u_1
inst✝¹ : AddCommGroup G
inst✝ : Fintype G
A B : Finset (G × G)
a b c d x y : G
n : ℕ
ε : ℝ
⊢ ∀ ⦃c : ℝ⦄, 0 < c → ∃ a, ∀ b ≥ a, ↑(rothNumberNat b) ≤ c * ↑b
state_after: G : Type u_1
inst✝¹ : AddCommGroup G
inst✝ : Fintype G
A B : Finset (G × G)
a b c d x y : G
n✝ : ℕ
ε✝ ε : ℝ
hε : 0 < ε
n : ℕ
hn : n ≥ cornersTheoremBound (ε / 3)
⊢ ↑(rothNumberNat n) ≤ ε * ↑n

tactic: obtain ⟨A, hs₁, hs₂, hs₃⟩ := rothNumberNat_spec n
state_before: G : Type u_1
inst✝¹ : AddCommGroup G
inst✝ : Fintype G
A B : Finset (G × G)
a b c d x y : G
n✝ : ℕ
ε✝ ε : ℝ
hε : 0 < ε
n : ℕ
hn : n ≥ cornersTheoremBound (ε / 3)
⊢ ↑(rothNumberNat n) ≤ ε * ↑n
state_after: case intro.intro.intro
G : Type u_1
inst✝¹ : AddCommGroup G
inst✝ : Fintype G
A✝ B : Finset (G × G)
a b c d x y : G
n✝ : ℕ
ε✝ ε : ℝ
hε : 0 < ε
n : ℕ
hn : n ≥ cornersTheoremBound (ε / 3)
A : Finset ℕ
hs₁ : A ⊆ range n
hs₂ : A.card = rothNumberNat n
hs₃ : ThreeAPFree ↑A
⊢ ↑(rothNumberNat n) ≤ ε * ↑n

tactic: rw [← hs₂, ← not_lt]
state_before: case intro.intro.intro
G : Type u_1
inst✝¹ : AddCommGroup G
inst✝ : Fintype G
A✝ B : Finset (G × G)
a b c d x y : G
n✝ : ℕ
ε✝ ε : ℝ
hε : 0 < ε
n : ℕ
hn : n ≥ cornersTheoremBound (ε / 3)
A : Finset ℕ
hs₁ : A ⊆ range n
hs₂ : A.card = rothNumberNat n
hs₃ : ThreeAPFree ↑A
⊢ ↑(rothNumberNat n) ≤ ε * ↑n
state_after: case intro.intro.intro
G : Type u_1
inst✝¹ : AddCommGroup G
inst✝ : Fintype G
A✝ B : Finset (G × G)
a b c d x y : G
n✝ : ℕ
ε✝ ε : ℝ
hε : 0 < ε
n : ℕ
hn : n ≥ cornersTheoremBound (ε / 3)
A : Finset ℕ
hs₁ : A ⊆ range n
hs₂ : A.card = rothNumberNat n
hs₃ : ThreeAPFree ↑A
⊢ ¬ε * ↑n < ↑A.card

tactic: exact fun hδn ↦ roth_3ap_theorem_nat ε hε hn _ hs₁ hδn.le hs₃
state_before: case intro.intro.intro
G : Type u_1
inst✝¹ : AddCommGroup G
inst✝ : Fintype G
A✝ B : Finset (G × G)
a b c d x y : G
n✝ : ℕ
ε✝ ε : ℝ
hε : 0 < ε
n : ℕ
hn : n ≥ cornersTheoremBound (ε / 3)
A : Finset ℕ
hs₁ : A ⊆ range n
hs₂ : A.card = rothNumberNat n
hs₃ : ThreeAPFree ↑A
⊢ ¬ε * ↑n < ↑A.card
state_after: no goals
Theorem: Real.le_toNNReal_iff_coe_le
File: Mathlib/Data/NNReal/Basic.lean

tactic: rw [← NNReal.coe_le_coe, Real.coe_toNNReal p hp]
state_before: r : ℝ≥0
p : ℝ
hp : 0 ≤ p
⊢ r ≤ p.toNNReal ↔ ↑r ≤ p
state_after: no goals
Theorem: MvPolynomial.NewtonIdentities.esymm_mul_psum_to_weight
File: Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean

tactic: rw [← sum_congr rfl (fun a ha ↦ esymm_mul_psum_summand_to_weight σ R k a (mem_filter.mp ha).left),
  sum_filter_pairs_eq_sum_filter_antidiagonal_powersetCard_sum σ R k]
state_before: σ : Type u_1
inst✝² : Fintype σ
inst✝¹ : DecidableEq σ
R : Type u_2
inst✝ : CommRing R
k : ℕ
⊢ ∑ a ∈ filter (fun a => a.1 < k) (antidiagonal k), (-1) ^ a.1 * esymm σ R a.1 * psum σ R a.2 =
    ∑ t ∈ filter (fun t => t.1.card < k) (MvPolynomial.NewtonIdentities.pairs σ k),
      MvPolynomial.NewtonIdentities.weight σ R k t
state_after: no goals
Theorem: CategoryTheory.GradedObject.ιMapObjOrZero_mapMap
File: Mathlib/CategoryTheory/GradedObject.lean

tactic: by_cases h : p i = j
state_before: I : Type u_1
J : Type u_2
K : Type u_3
C : Type u_4
inst✝⁵ : Category.{u_5, u_4} C
X Y Z : GradedObject I C
φ : X ⟶ Y
e : X ≅ Y
ψ : Y ⟶ Z
p : I → J
j✝ : J
inst✝⁴ : X.HasMap p
inst✝³ : Y.HasMap p
inst✝² : Z.HasMap p
q : J → K
r : I → K
hpqr : ∀ (i : I), q (p i) = r i
inst✝¹ : HasZeroMorphisms C
inst✝ : DecidableEq J
i : I
j : J
⊢ X.ιMapObjOrZero p i j ≫ mapMap φ p j = φ i ≫ Y.ιMapObjOrZero p i j
state_after: case pos
I : Type u_1
J : Type u_2
K : Type u_3
C : Type u_4
inst✝⁵ : Category.{u_5, u_4} C
X Y Z : GradedObject I C
φ : X ⟶ Y
e : X ≅ Y
ψ : Y ⟶ Z
p : I → J
j✝ : J
inst✝⁴ : X.HasMap p
inst✝³ : Y.HasMap p
inst✝² : Z.HasMap p
q : J → K
r : I → K
hpqr : ∀ (i : I), q (p i) = r i
inst✝¹ : HasZeroMorphisms C
inst✝ : DecidableEq J
i : I
j : J
h : p i = j
⊢ X.ιMapObjOrZero p i j ≫ mapMap φ p j = φ i ≫ Y.ιMapObjOrZero p i j

case neg
I : Type u_1
J : Type u_2
K : Type u_3
C : Type u_4
inst✝⁵ : Category.{u_5, u_4} C
X Y Z : GradedObject I C
φ : X ⟶ Y
e : X ≅ Y
ψ : Y ⟶ Z
p : I → J
j✝ : J
inst✝⁴ : X.HasMap p
inst✝³ : Y.HasMap p
inst✝² : Z.HasMap p
q : J → K
r : I → K
hpqr : ∀ (i : I), q (p i) = r i
inst✝¹ : HasZeroMorphisms C
inst✝ : DecidableEq J
i : I
j : J
h : ¬p i = j
⊢ X.ιMapObjOrZero p i j ≫ mapMap φ p j = φ i ≫ Y.ιMapObjOrZero p i j

tactic: simp only [ιMapObjOrZero_eq _ _ _ _ h, ι_mapMap]
state_before: case pos
I : Type u_1
J : Type u_2
K : Type u_3
C : Type u_4
inst✝⁵ : Category.{u_5, u_4} C
X Y Z : GradedObject I C
φ : X ⟶ Y
e : X ≅ Y
ψ : Y ⟶ Z
p : I → J
j✝ : J
inst✝⁴ : X.HasMap p
inst✝³ : Y.HasMap p
inst✝² : Z.HasMap p
q : J → K
r : I → K
hpqr : ∀ (i : I), q (p i) = r i
inst✝¹ : HasZeroMorphisms C
inst✝ : DecidableEq J
i : I
j : J
h : p i = j
⊢ X.ιMapObjOrZero p i j ≫ mapMap φ p j = φ i ≫ Y.ιMapObjOrZero p i j
state_after: no goals

tactic: simp only [ιMapObjOrZero_eq_zero _ _ _ _ h, zero_comp, comp_zero]
state_before: case neg
I : Type u_1
J : Type u_2
K : Type u_3
C : Type u_4
inst✝⁵ : Category.{u_5, u_4} C
X Y Z : GradedObject I C
φ : X ⟶ Y
e : X ≅ Y
ψ : Y ⟶ Z
p : I → J
j✝ : J
inst✝⁴ : X.HasMap p
inst✝³ : Y.HasMap p
inst✝² : Z.HasMap p
q : J → K
r : I → K
hpqr : ∀ (i : I), q (p i) = r i
inst✝¹ : HasZeroMorphisms C
inst✝ : DecidableEq J
i : I
j : J
h : ¬p i = j
⊢ X.ιMapObjOrZero p i j ≫ mapMap φ p j = φ i ≫ Y.ιMapObjOrZero p i j
state_after: no goals
Theorem: Seminorm.ball_finset_sup'
File: Mathlib/Analysis/Seminorm.lean

tactic: induction H using Finset.Nonempty.cons_induction with
| singleton => simp
| cons _ _ _ hs ih =>
  rw [Finset.sup'_cons hs, Finset.inf'_cons hs, ball_sup]
  simp only [inf_eq_inter, ih]
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
H : s.Nonempty
e : E
r : ℝ
⊢ (s.sup' H p).ball e r = s.inf' H fun i => (p i).ball e r
state_after: no goals

tactic: simp
state_before: case singleton
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
e : E
r : ℝ
a✝ : ι
⊢ ({a✝}.sup' ⋯ p).ball e r = {a✝}.inf' ⋯ fun i => (p i).ball e r
state_after: no goals

tactic: rw [Finset.sup'_cons hs, Finset.inf'_cons hs, ball_sup]
state_before: case cons
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
e : E
r : ℝ
a✝ : ι
s✝ : Finset ι
h✝ : a✝ ∉ s✝
hs : s✝.Nonempty
ih : (s✝.sup' hs p).ball e r = s✝.inf' hs fun i => (p i).ball e r
⊢ ((Finset.cons a✝ s✝ h✝).sup' ⋯ p).ball e r = (Finset.cons a✝ s✝ h✝).inf' ⋯ fun i => (p i).ball e r
state_after: case cons
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
e : E
r : ℝ
a✝ : ι
s✝ : Finset ι
h✝ : a✝ ∉ s✝
hs : s✝.Nonempty
ih : (s✝.sup' hs p).ball e r = s✝.inf' hs fun i => (p i).ball e r
⊢ (p a✝).ball e r ∩ (s✝.sup' hs p).ball e r = (p a✝).ball e r ⊓ s✝.inf' hs fun i => (p i).ball e r

tactic: simp only [inf_eq_inter, ih]
state_before: case cons
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
e : E
r : ℝ
a✝ : ι
s✝ : Finset ι
h✝ : a✝ ∉ s✝
hs : s✝.Nonempty
ih : (s✝.sup' hs p).ball e r = s✝.inf' hs fun i => (p i).ball e r
⊢ (p a✝).ball e r ∩ (s✝.sup' hs p).ball e r = (p a✝).ball e r ⊓ s✝.inf' hs fun i => (p i).ball e r
state_after: no goals
Theorem: Basis.toMatrix_mul_toMatrix_flip
File: Mathlib/LinearAlgebra/Matrix/Basis.lean

tactic: rw [Basis.toMatrix_mul_toMatrix, Basis.toMatrix_self]
state_before: ι : Type u_1
ι' : Type u_2
κ : Type u_3
κ' : Type u_4
R : Type u_5
M : Type u_6
inst✝⁹ : CommSemiring R
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
R₂ : Type u_7
M₂ : Type u_8
inst✝⁶ : CommRing R₂
inst✝⁵ : AddCommGroup M₂
inst✝⁴ : Module R₂ M₂
e : Basis ι R M
v : ι' → M
i : ι
j : ι'
N : Type u_9
inst✝³ : AddCommMonoid N
inst✝² : Module R N
b : Basis ι R M
b' : Basis ι' R M
c : Basis κ R N
c' : Basis κ' R N
f : M →ₗ[R] N
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι'
⊢ b.toMatrix ⇑b' * b'.toMatrix ⇑b = 1
state_after: no goals
Theorem: Set.toFinset_off_diag
File: Mathlib/Data/Fintype/Prod.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s✝ t s : Set α
inst✝² : DecidableEq α
inst✝¹ : Fintype ↑s
inst✝ : Fintype ↑s.offDiag
⊢ ∀ (a : α × α), a ∈ s.offDiag.toFinset ↔ a ∈ s.toFinset.offDiag
state_after: no goals
Theorem: Basis.flag_mono
File: Mathlib/LinearAlgebra/Basis/Flag.lean

tactic: rw [flag_succ]
state_before: R : Type u_1
M : Type u_2
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
n : ℕ
b : Basis (Fin n) R M
k : Fin n
⊢ b.flag k.castSucc ≤ b.flag k.succ
state_after: R : Type u_1
M : Type u_2
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
n : ℕ
b : Basis (Fin n) R M
k : Fin n
⊢ b.flag k.castSucc ≤ span R {b k} ⊔ b.flag k.castSucc

tactic: exact le_sup_right
state_before: R : Type u_1
M : Type u_2
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
n : ℕ
b : Basis (Fin n) R M
k : Fin n
⊢ b.flag k.castSucc ≤ span R {b k} ⊔ b.flag k.castSucc
state_after: no goals
Theorem: EuclideanGeometry.cos_angle_mul_dist_of_angle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean

tactic: rw [angle, ← inner_eq_zero_iff_angle_eq_pi_div_two, real_inner_comm, ← neg_eq_zero, ←
  inner_neg_left, neg_vsub_eq_vsub_rev] at h
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : ∠ p₁ p₂ p₃ = π / 2
⊢ Real.cos (∠ p₂ p₃ p₁) * dist p₁ p₃ = dist p₃ p₂
state_after: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : ⟪p₂ -ᵥ p₃, p₁ -ᵥ p₂⟫_ℝ = 0
⊢ Real.cos (∠ p₂ p₃ p₁) * dist p₁ p₃ = dist p₃ p₂

tactic: rw [angle, dist_eq_norm_vsub' V p₃ p₂, dist_eq_norm_vsub V p₁ p₃, ← vsub_add_vsub_cancel p₁ p₂ p₃,
  add_comm, cos_angle_add_mul_norm_of_inner_eq_zero h]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : ⟪p₂ -ᵥ p₃, p₁ -ᵥ p₂⟫_ℝ = 0
⊢ Real.cos (∠ p₂ p₃ p₁) * dist p₁ p₃ = dist p₃ p₂
state_after: no goals
Theorem: Finset.Icc_subset_Ici_self
File: Mathlib/Order/Interval/Finset/Basic.lean

tactic: simpa [← coe_subset] using Set.Icc_subset_Ici_self
state_before: ι : Type u_1
α : Type u_2
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrder α
a a₁ a₂ b b₁ b₂ c x : α
inst✝ : LocallyFiniteOrderTop α
⊢ Icc a b ⊆ Ici a
state_after: no goals
Theorem: RCLike.div_re_ofReal
File: Mathlib/Analysis/RCLike/Basic.lean

tactic: rw [div_eq_inv_mul, div_eq_inv_mul, ← ofReal_inv, re_ofReal_mul]
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z✝ z : K
r : ℝ
⊢ re (z / ↑r) = re z / r
state_after: no goals
Theorem: CategoryTheory.IsPushout.inr_isoPushout_inv
File: Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean

tactic: dsimp [isoPushout, cocone, CommSq.cocone]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
Z X Y P : C
f : Z ⟶ X
g : Z ⟶ Y
inl : X ⟶ P
inr : Y ⟶ P
h : IsPushout f g inl inr
inst✝ : HasPushout f g
⊢ pushout.inr ≫ h.isoPushout.inv = inr
state_after: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
Z X Y P : C
f : Z ⟶ X
g : Z ⟶ Y
inl : X ⟶ P
inr : Y ⟶ P
h : IsPushout f g inl inr
inst✝ : HasPushout f g
⊢ pushout.inr ≫ (colimit.isoColimitCocone { cocone := PushoutCocone.mk inl inr ⋯, isColimit := h.isColimit }).hom = inr

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
Z X Y P : C
f : Z ⟶ X
g : Z ⟶ Y
inl : X ⟶ P
inr : Y ⟶ P
h : IsPushout f g inl inr
inst✝ : HasPushout f g
⊢ pushout.inr ≫ (colimit.isoColimitCocone { cocone := PushoutCocone.mk inl inr ⋯, isColimit := h.isColimit }).hom = inr
state_after: no goals
Theorem: AEMeasurable.mul_iff_right
File: Mathlib/MeasureTheory/Group/Arithmetic.lean

tactic: simp only [mul_inv_cancel_comm]
state_before: α : Type u_1
G : Type u_2
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableSpace α
inst✝² : CommGroup G
inst✝¹ : MeasurableMul₂ G
inst✝ : MeasurableInv G
μ : Measure α
f g : α → G
hf : AEMeasurable f μ
h : AEMeasurable (f * g) μ
⊢ g = f * g * f⁻¹
state_after: no goals