1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.Measure.measure_eq_right_of_subset_of_measure_add_eq
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [add_comm] at h'' h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
h : (μ + ν) t ≠ ⊤
h' : s ⊆ t
h'' : (μ + ν) s = (μ + ν) t
⊢ ν s = ν t
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
h : (ν + μ) t ≠ ⊤
h' : s ⊆ t
h'' : (ν + μ) s = (ν + μ) t
⊢ ν s = ν t

tactic: exact measure_eq_left_of_subset_of_measure_add_eq h h' h''
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
h : (ν + μ) t ≠ ⊤
h' : s ⊆ t
h'' : (ν + μ) s = (ν + μ) t
⊢ ν s = ν t
state_after: no goals
Theorem: MeasureTheory.withDensity_congr_ae
File: Mathlib/MeasureTheory/Measure/WithDensity.lean

tactic: refine Measure.ext fun s hs => ?_
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ≥0∞
h : f =ᶠ[ae μ] g
⊢ μ.withDensity f = μ.withDensity g
state_after: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ≥0∞
h : f =ᶠ[ae μ] g
s : Set α
hs : MeasurableSet s
⊢ (μ.withDensity f) s = (μ.withDensity g) s

tactic: rw [withDensity_apply _ hs, withDensity_apply _ hs]
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ≥0∞
h : f =ᶠ[ae μ] g
s : Set α
hs : MeasurableSet s
⊢ (μ.withDensity f) s = (μ.withDensity g) s
state_after: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ≥0∞
h : f =ᶠ[ae μ] g
s : Set α
hs : MeasurableSet s
⊢ ∫⁻ (a : α) in s, f a ∂μ = ∫⁻ (a : α) in s, g a ∂μ

tactic: exact lintegral_congr_ae (ae_restrict_of_ae h)
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ≥0∞
h : f =ᶠ[ae μ] g
s : Set α
hs : MeasurableSet s
⊢ ∫⁻ (a : α) in s, f a ∂μ = ∫⁻ (a : α) in s, g a ∂μ
state_after: no goals
Theorem: RatFunc.intDegree_neg
File: Mathlib/FieldTheory/RatFunc/Degree.lean

tactic: by_cases hx : x = 0
state_before: K : Type u
inst✝ : Field K
x : RatFunc K
⊢ (-x).intDegree = x.intDegree
state_after: case pos
K : Type u
inst✝ : Field K
x : RatFunc K
hx : x = 0
⊢ (-x).intDegree = x.intDegree

case neg
K : Type u
inst✝ : Field K
x : RatFunc K
hx : ¬x = 0
⊢ (-x).intDegree = x.intDegree

tactic: rw [hx, neg_zero]
state_before: case pos
K : Type u
inst✝ : Field K
x : RatFunc K
hx : x = 0
⊢ (-x).intDegree = x.intDegree
state_after: no goals

tactic: rw [intDegree, intDegree, ← natDegree_neg x.num]
state_before: case neg
K : Type u
inst✝ : Field K
x : RatFunc K
hx : ¬x = 0
⊢ (-x).intDegree = x.intDegree
state_after: case neg
K : Type u
inst✝ : Field K
x : RatFunc K
hx : ¬x = 0
⊢ ↑(-x).num.natDegree - ↑(-x).denom.natDegree = ↑(-x.num).natDegree - ↑x.denom.natDegree

tactic: exact
  natDegree_sub_eq_of_prod_eq (num_ne_zero (neg_ne_zero.mpr hx)) (denom_ne_zero (-x))
    (neg_ne_zero.mpr (num_ne_zero hx)) (denom_ne_zero x) (num_denom_neg x)
state_before: case neg
K : Type u
inst✝ : Field K
x : RatFunc K
hx : ¬x = 0
⊢ ↑(-x).num.natDegree - ↑(-x).denom.natDegree = ↑(-x.num).natDegree - ↑x.denom.natDegree
state_after: no goals
Theorem: CategoryTheory.Injective.injective_of_adjoint
File: Mathlib/CategoryTheory/Preadditive/Injective.lean

tactic: simp
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
L : C ⥤ D
R : D ⥤ C
inst✝¹ : L.PreservesMonomorphisms
adj : L ⊣ R
J : D
inst✝ : Injective J
A x✝ : C
g : A ⟶ R.obj J
f : A ⟶ x✝
im : Mono f
⊢ (adj.homEquiv A J).symm (f ≫ (adj.homEquiv x✝ J) (factorThru ((adj.homEquiv A J).symm g) (L.map f))) =
    (adj.homEquiv A J).symm g
state_after: no goals
Theorem: MeasureTheory.Measure.mapₗ_congr
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: ext1 s hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f g : α → β
hf : Measurable f
hg : Measurable g
h : f =ᶠ[ae μ] g
⊢ (mapₗ f) μ = (mapₗ g) μ
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f g : α → β
hf : Measurable f
hg : Measurable g
h : f =ᶠ[ae μ] g
s : Set β
hs : MeasurableSet s
⊢ ((mapₗ f) μ) s = ((mapₗ g) μ) s

tactic: simpa only [mapₗ, hf, hg, hs, dif_pos, liftLinear_apply, OuterMeasure.map_apply]
  using measure_congr (h.preimage s)
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f g : α → β
hf : Measurable f
hg : Measurable g
h : f =ᶠ[ae μ] g
s : Set β
hs : MeasurableSet s
⊢ ((mapₗ f) μ) s = ((mapₗ g) μ) s
state_after: no goals
Theorem: CategoryTheory.PreGaloisCategory.AutGalois.π_surjective
File: Mathlib/CategoryTheory/Galois/Prorepresentability.lean

tactic: have (i : PointedGaloisObject F) : Finite ((autGaloisSystem F ⋙ forget _).obj i) :=
  inferInstanceAs <| Finite (Aut (i.obj))
state_before: C : Type u₁
inst✝² : Category.{u₂, u₁} C
inst✝¹ : GaloisCategory C
F : C ⥤ FintypeCat
inst✝ : FiberFunctor F
A : PointedGaloisObject F
σ : Aut A.obj
⊢ ∃ a, (π F A) a = σ
state_after: C : Type u₁
inst✝² : Category.{u₂, u₁} C
inst✝¹ : GaloisCategory C
F : C ⥤ FintypeCat
inst✝ : FiberFunctor F
A : PointedGaloisObject F
σ : Aut A.obj
this : ∀ (i : PointedGaloisObject F), Finite ((autGaloisSystem F ⋙ forget Grp).obj i)
⊢ ∃ a, (π F A) a = σ

tactic: exact eval_section_surjective_of_surjective
  (autGaloisSystem F ⋙ forget _) (autGaloisSystem_map_surjective F) A σ
state_before: C : Type u₁
inst✝² : Category.{u₂, u₁} C
inst✝¹ : GaloisCategory C
F : C ⥤ FintypeCat
inst✝ : FiberFunctor F
A : PointedGaloisObject F
σ : Aut A.obj
this : ∀ (i : PointedGaloisObject F), Finite ((autGaloisSystem F ⋙ forget Grp).obj i)
⊢ ∃ a, (π F A) a = σ
state_after: no goals
Theorem: CategoryTheory.Limits.PreservesPullback.iso_hom_fst
File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean

tactic: simp [PreservesPullback.iso]
state_before: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
G : C ⥤ D
W X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
h : W ⟶ X
k : W ⟶ Y
comm : h ≫ f = k ≫ g
inst✝² : PreservesLimit (cospan f g) G
inst✝¹ : HasPullback f g
inst✝ : HasPullback (G.map f) (G.map g)
⊢ (iso G f g).hom ≫ pullback.fst = G.map pullback.fst
state_after: no goals
Theorem: SimpleGraph.card_commonNeighbors_le_degree_left
File: Mathlib/Combinatorics/SimpleGraph/Finite.lean

tactic: rw [← card_neighborSet_eq_degree]
state_before: V : Type u_1
G : SimpleGraph V
e : Sym2 V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
v w : V
⊢ Fintype.card ↑(G.commonNeighbors v w) ≤ G.degree v
state_after: V : Type u_1
G : SimpleGraph V
e : Sym2 V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
v w : V
⊢ Fintype.card ↑(G.commonNeighbors v w) ≤ Fintype.card ↑(G.neighborSet v)

tactic: exact Set.card_le_card Set.inter_subset_left
state_before: V : Type u_1
G : SimpleGraph V
e : Sym2 V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
v w : V
⊢ Fintype.card ↑(G.commonNeighbors v w) ≤ Fintype.card ↑(G.neighborSet v)
state_after: no goals
Theorem: Nat.mem_primeFactors_of_ne_zero
File: Mathlib/Data/Nat/PrimeFin.lean

tactic: simp [hn]
state_before: a b k m n p : ℕ
hn : n ≠ 0
⊢ p ∈ n.primeFactors ↔ Prime p ∧ p ∣ n
state_after: no goals
Theorem: CategoryTheory.Limits.kernelSubobjectIso_comp_kernel_map
File: Mathlib/CategoryTheory/Subobject/Limits.lean

tactic: simp [← Iso.comp_inv_eq, kernel_map_comp_kernelSubobjectIso_inv]
state_before: C : Type u
inst✝³ : Category.{v, u} C
X Y Z : C
inst✝² : HasZeroMorphisms C
f : X ⟶ Y
inst✝¹ : HasKernel f
X' Y' : C
f' : X' ⟶ Y'
inst✝ : HasKernel f'
sq : Arrow.mk f ⟶ Arrow.mk f'
⊢ (kernelSubobjectIso f).hom ≫ kernel.map f f' sq.left sq.right ⋯ = kernelSubobjectMap sq ≫ (kernelSubobjectIso f').hom
state_after: no goals
Theorem: MeasureTheory.Measure.integral_comp_inv_mul_right
File: Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean

tactic: simpa only [mul_comm] using integral_comp_inv_mul_left g a
state_before: E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : MeasurableSpace E
inst✝⁴ : BorelSpace E
inst✝³ : FiniteDimensional ℝ E
μ : Measure E
inst✝² : μ.IsAddHaarMeasure
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
g : ℝ → F
a : ℝ
⊢ ∫ (x : ℝ), g (x * a⁻¹) = |a| • ∫ (y : ℝ), g y
state_after: no goals
Theorem: Nat.even_mul
File: Mathlib/Algebra/Group/Nat.lean

tactic: cases' mod_two_eq_zero_or_one m with h₁ h₁ <;> cases' mod_two_eq_zero_or_one n with h₂ h₂ <;>
  simp [even_iff, h₁, h₂, Nat.mul_mod]
state_before: m n : ℕ
⊢ Even (m * n) ↔ Even m ∨ Even n
state_after: no goals
Theorem: Ideal.finrank_quotient_eq_sum
File: Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean

tactic: rw [LinearEquiv.finrank_eq <| quotientEquivDirectSum F b hI, FiniteDimensional.finrank_directSum]
state_before: ι✝ : Type u_1
R : Type u_2
S : Type u_3
inst✝¹⁴ : CommRing R
inst✝¹³ : CommRing S
inst✝¹² : Algebra R S
inst✝¹¹ : IsDomain R
inst✝¹⁰ : IsPrincipalIdealRing R
inst✝⁹ : IsDomain S
inst✝⁸ : Finite ι✝
F : Type u_4
inst✝⁷ : CommRing F
inst✝⁶ : Algebra F R
inst✝⁵ : Algebra F S
inst✝⁴ : IsScalarTower F R S
b✝ : Basis ι✝ R S
I : Ideal S
hI : I ≠ ⊥
ι : Type u_5
inst✝³ : Fintype ι
b : Basis ι R S
inst✝² : Nontrivial F
inst✝¹ : ∀ (i : ι), Module.Free F (R ⧸ span {smithCoeffs b I hI i})
inst✝ : ∀ (i : ι), Module.Finite F (R ⧸ span {smithCoeffs b I hI i})
⊢ FiniteDimensional.finrank F (S ⧸ I) = ∑ i : ι, FiniteDimensional.finrank F (R ⧸ span {smithCoeffs b I hI i})
state_after: no goals
Theorem: Subgroup.fg_iff_add_fg
File: Mathlib/GroupTheory/Finiteness.lean

tactic: exact (Subgroup.toSubmonoid P).fg_iff_add_fg
state_before: M : Type u_1
N : Type u_2
inst✝³ : Monoid M
inst✝² : AddMonoid N
G : Type u_3
H : Type u_4
inst✝¹ : Group G
inst✝ : AddGroup H
P : Subgroup G
⊢ P.FG ↔ (toAddSubgroup P).FG
state_after: no goals
Theorem: ZMod.addOrderOf_coe'
File: Mathlib/Data/ZMod/Basic.lean

tactic: rw [← Nat.smul_one_eq_cast, addOrderOf_nsmul' _ a0, ZMod.addOrderOf_one]
state_before: a n : ℕ
a0 : a ≠ 0
⊢ addOrderOf ↑a = n / n.gcd a
state_after: no goals
Theorem: IsCompact.exists_infEdist_eq_edist
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: have A : Continuous fun y => edist x y := continuous_const.edist continuous_id
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x✝ y : α
s t : Set α
Φ : α → β
hs : IsCompact s
hne : s.Nonempty
x : α
⊢ ∃ y ∈ s, infEdist x s = edist x y
state_after: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x✝ y : α
s t : Set α
Φ : α → β
hs : IsCompact s
hne : s.Nonempty
x : α
A : Continuous fun y => edist x y
⊢ ∃ y ∈ s, infEdist x s = edist x y

tactic: obtain ⟨y, ys, hy⟩ := hs.exists_isMinOn hne A.continuousOn
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x✝ y : α
s t : Set α
Φ : α → β
hs : IsCompact s
hne : s.Nonempty
x : α
A : Continuous fun y => edist x y
⊢ ∃ y ∈ s, infEdist x s = edist x y
state_after: case intro.intro
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x✝ y✝ : α
s t : Set α
Φ : α → β
hs : IsCompact s
hne : s.Nonempty
x : α
A : Continuous fun y => edist x y
y : α
ys : y ∈ s
hy : IsMinOn (fun y => edist x y) s y
⊢ ∃ y ∈ s, infEdist x s = edist x y

tactic: exact ⟨y, ys, le_antisymm (infEdist_le_edist_of_mem ys) (by rwa [le_infEdist])⟩
state_before: case intro.intro
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x✝ y✝ : α
s t : Set α
Φ : α → β
hs : IsCompact s
hne : s.Nonempty
x : α
A : Continuous fun y => edist x y
y : α
ys : y ∈ s
hy : IsMinOn (fun y => edist x y) s y
⊢ ∃ y ∈ s, infEdist x s = edist x y
state_after: no goals

tactic: rwa [le_infEdist]
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x✝ y✝ : α
s t : Set α
Φ : α → β
hs : IsCompact s
hne : s.Nonempty
x : α
A : Continuous fun y => edist x y
y : α
ys : y ∈ s
hy : IsMinOn (fun y => edist x y) s y
⊢ edist x y ≤ infEdist x s
state_after: no goals
Theorem: Metric.cthickening_subset_iUnion_closedBall_of_lt
File: Mathlib/Topology/MetricSpace/Thickening.lean

tactic: refine (cthickening_subset_thickening' hδ₀ hδδ' E).trans fun x hx => ?_
state_before: ι : Sort u_1
α✝ : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α✝
δ✝ ε : ℝ
s t : Set α✝
x : α✝
α : Type u_2
inst✝ : PseudoMetricSpace α
E : Set α
δ δ' : ℝ
hδ₀ : 0 < δ'
hδδ' : δ < δ'
⊢ cthickening δ E ⊆ ⋃ x ∈ E, closedBall x δ'
state_after: ι : Sort u_1
α✝ : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α✝
δ✝ ε : ℝ
s t : Set α✝
x✝ : α✝
α : Type u_2
inst✝ : PseudoMetricSpace α
E : Set α
δ δ' : ℝ
hδ₀ : 0 < δ'
hδδ' : δ < δ'
x : α
hx : x ∈ thickening δ' E
⊢ x ∈ ⋃ x ∈ E, closedBall x δ'

tactic: obtain ⟨y, hy₁, hy₂⟩ := mem_thickening_iff.mp hx
state_before: ι : Sort u_1
α✝ : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α✝
δ✝ ε : ℝ
s t : Set α✝
x✝ : α✝
α : Type u_2
inst✝ : PseudoMetricSpace α
E : Set α
δ δ' : ℝ
hδ₀ : 0 < δ'
hδδ' : δ < δ'
x : α
hx : x ∈ thickening δ' E
⊢ x ∈ ⋃ x ∈ E, closedBall x δ'
state_after: case intro.intro
ι : Sort u_1
α✝ : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α✝
δ✝ ε : ℝ
s t : Set α✝
x✝ : α✝
α : Type u_2
inst✝ : PseudoMetricSpace α
E : Set α
δ δ' : ℝ
hδ₀ : 0 < δ'
hδδ' : δ < δ'
x : α
hx : x ∈ thickening δ' E
y : α
hy₁ : y ∈ E
hy₂ : dist x y < δ'
⊢ x ∈ ⋃ x ∈ E, closedBall x δ'

tactic: exact mem_iUnion₂.mpr ⟨y, hy₁, hy₂.le⟩
state_before: case intro.intro
ι : Sort u_1
α✝ : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α✝
δ✝ ε : ℝ
s t : Set α✝
x✝ : α✝
α : Type u_2
inst✝ : PseudoMetricSpace α
E : Set α
δ δ' : ℝ
hδ₀ : 0 < δ'
hδδ' : δ < δ'
x : α
hx : x ∈ thickening δ' E
y : α
hy₁ : y ∈ E
hy₂ : dist x y < δ'
⊢ x ∈ ⋃ x ∈ E, closedBall x δ'
state_after: no goals
Theorem: List.suffix_of_suffix_length_le
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: simp [ll]
state_before: α✝ : Type u_1
l₁ l₃ l₂ : List α✝
h₁ : l₁ <:+ l₃
h₂ : l₂ <:+ l₃
ll : l₁.length ≤ l₂.length
⊢ l₁.reverse.length ≤ l₂.reverse.length
state_after: no goals
Theorem: cluster_point_of_Lindelof
File: Mathlib/Topology/Compactness/Lindelof.lean

tactic: simpa using isLindelof_univ (show f ≤ 𝓟 univ by simp)
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
s t : Set X
inst✝² : LindelofSpace X
f : Filter X
inst✝¹ : f.NeBot
inst✝ : CountableInterFilter f
⊢ ∃ x, ClusterPt x f
state_after: no goals

tactic: simp
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝⁴ : TopologicalSpace X
inst✝³ : TopologicalSpace Y
s t : Set X
inst✝² : LindelofSpace X
f : Filter X
inst✝¹ : f.NeBot
inst✝ : CountableInterFilter f
⊢ f ≤ 𝓟 univ
state_after: no goals
Theorem: CategoryTheory.ProjectiveResolution.isoLeftDerivedObj_inv_naturality
File: Mathlib/CategoryTheory/Abelian/LeftDerived.lean

tactic: rw [← cancel_mono (Q.isoLeftDerivedObj F n).hom, assoc, assoc,
  ProjectiveResolution.isoLeftDerivedObj_hom_naturality f P Q φ comm F n,
  Iso.inv_hom_id_assoc, Iso.inv_hom_id, comp_id]
state_before: C : Type u
inst✝⁵ : Category.{v, u} C
D : Type u_1
inst✝⁴ : Category.{u_2, u_1} D
inst✝³ : Abelian C
inst✝² : HasProjectiveResolutions C
inst✝¹ : Abelian D
X Y : C
f : X ⟶ Y
P : ProjectiveResolution X
Q : ProjectiveResolution Y
φ : P.complex ⟶ Q.complex
comm : φ.f 0 ≫ Q.π.f 0 = P.π.f 0 ≫ f
F : C ⥤ D
inst✝ : F.Additive
n : ℕ
⊢ (P.isoLeftDerivedObj F n).inv ≫ (F.leftDerived n).map f =
    (F.mapHomologicalComplex (ComplexShape.down ℕ) ⋙ HomologicalComplex.homologyFunctor D (ComplexShape.down ℕ) n).map
        φ ≫
      (Q.isoLeftDerivedObj F n).inv
state_after: no goals
Theorem: Ideal.map_of_equiv
File: Mathlib/RingTheory/Ideal/Maps.lean

tactic: rw [← RingEquiv.toRingHom_eq_coe, ← RingEquiv.toRingHom_eq_coe, map_map,
  RingEquiv.toRingHom_eq_coe, RingEquiv.toRingHom_eq_coe, RingEquiv.symm_comp, map_id]
state_before: R : Type u
S : Type v
F : Type u_1
inst✝³ : Semiring R
inst✝² : Semiring S
inst✝¹ : FunLike F R S
rc : RingHomClass F R S
f✝ : F
I✝ J : Ideal R
K L : Ideal S
G : Type u_2
inst✝ : FunLike G S R
rcg : RingHomClass G S R
ι : Sort u_3
I : Ideal R
f : R ≃+* S
⊢ map (↑f.symm) (map (↑f) I) = I
state_after: no goals
Theorem: Submonoid.mem_sSup_of_directedOn
File: Mathlib/Algebra/Group/Submonoid/Membership.lean

tactic: haveI : Nonempty S := Sne.to_subtype
state_before: M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : MulOneClass M
S : Set (Submonoid M)
Sne : S.Nonempty
hS : DirectedOn (fun x x_1 => x ≤ x_1) S
x : M
⊢ x ∈ sSup S ↔ ∃ s ∈ S, x ∈ s
state_after: M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : MulOneClass M
S : Set (Submonoid M)
Sne : S.Nonempty
hS : DirectedOn (fun x x_1 => x ≤ x_1) S
x : M
this : Nonempty ↑S
⊢ x ∈ sSup S ↔ ∃ s ∈ S, x ∈ s

tactic: simp [sSup_eq_iSup', mem_iSup_of_directed hS.directed_val, SetCoe.exists, Subtype.coe_mk]
state_before: M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : MulOneClass M
S : Set (Submonoid M)
Sne : S.Nonempty
hS : DirectedOn (fun x x_1 => x ≤ x_1) S
x : M
this : Nonempty ↑S
⊢ x ∈ sSup S ↔ ∃ s ∈ S, x ∈ s
state_after: no goals
Theorem: Traversable.naturality_pf
File: Mathlib/Control/Traversable/Lemmas.lean

tactic: ext
state_before: t : Type u → Type u
inst✝⁵ : Traversable t
inst✝⁴ : LawfulTraversable t
F G : Type u → Type u
inst✝³ : Applicative F
inst✝² : LawfulApplicative F
inst✝¹ : Applicative G
inst✝ : LawfulApplicative G
α β γ : Type u
g : α → F β
h : β → G γ
f✝ : β → γ
x : t β
η : ApplicativeTransformation F G
f : α → F β
⊢ traverse ((fun {α} => η.app α) ∘ f) = (fun {α} => η.app α) ∘ traverse f
state_after: case h
t : Type u → Type u
inst✝⁵ : Traversable t
inst✝⁴ : LawfulTraversable t
F G : Type u → Type u
inst✝³ : Applicative F
inst✝² : LawfulApplicative F
inst✝¹ : Applicative G
inst✝ : LawfulApplicative G
α β γ : Type u
g : α → F β
h : β → G γ
f✝ : β → γ
x : t β
η : ApplicativeTransformation F G
f : α → F β
x✝ : t α
⊢ traverse ((fun {α} => η.app α) ∘ f) x✝ = ((fun {α} => η.app α) ∘ traverse f) x✝

tactic: rw [comp_apply, naturality]
state_before: case h
t : Type u → Type u
inst✝⁵ : Traversable t
inst✝⁴ : LawfulTraversable t
F G : Type u → Type u
inst✝³ : Applicative F
inst✝² : LawfulApplicative F
inst✝¹ : Applicative G
inst✝ : LawfulApplicative G
α β γ : Type u
g : α → F β
h : β → G γ
f✝ : β → γ
x : t β
η : ApplicativeTransformation F G
f : α → F β
x✝ : t α
⊢ traverse ((fun {α} => η.app α) ∘ f) x✝ = ((fun {α} => η.app α) ∘ traverse f) x✝
state_after: no goals
Theorem: MeasureTheory.exists_measure_pos_of_not_measure_iUnion_null
File: Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean

tactic: contrapose! hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
inst✝¹ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
hs : μ (⋃ n, s n) ≠ 0
⊢ ∃ n, 0 < μ (s n)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
inst✝¹ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
hs : ∀ (n : ι), μ (s n) ≤ 0
⊢ μ (⋃ n, s n) = 0

tactic: exact measure_iUnion_null fun n => nonpos_iff_eq_zero.1 (hs n)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
inst✝¹ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
hs : ∀ (n : ι), μ (s n) ≤ 0
⊢ μ (⋃ n, s n) = 0
state_after: no goals
Theorem: Associates.reducible_not_mem_factorSet
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: rwa [← factorSetMem_eq_mem, FactorSetMem, dif_neg hp] at h
state_before: α : Type u_1
inst✝ : CancelCommMonoidWithZero α
p : Associates α
hp : ¬Irreducible p
s : FactorSet α
h : p ∈ s
⊢ False
state_after: no goals
Theorem: Ordinal.type_def'
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: cases w
state_before: α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
w : WellOrder
⊢ ⟦w⟧ = type w.r
state_after: case mk
α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
α✝ : Type u_3
r✝ : α✝ → α✝ → Prop
wo✝ : IsWellOrder α✝ r✝
⊢ ⟦{ α := α✝, r := r✝, wo := wo✝ }⟧ = type { α := α✝, r := r✝, wo := wo✝ }.r

tactic: rfl
state_before: case mk
α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
α✝ : Type u_3
r✝ : α✝ → α✝ → Prop
wo✝ : IsWellOrder α✝ r✝
⊢ ⟦{ α := α✝, r := r✝, wo := wo✝ }⟧ = type { α := α✝, r := r✝, wo := wo✝ }.r
state_after: no goals
Theorem: PNat.factorMultiset_one
File: Mathlib/Data/PNat/Factors.lean

tactic: simp [factorMultiset, PrimeMultiset.ofNatList, PrimeMultiset.ofNatMultiset]
state_before: ⊢ factorMultiset 1 = 0
state_after: no goals
Theorem: Seminorm.closedBall_smul_ball
File: Mathlib/Analysis/Seminorm.lean

tactic: simp only [smul_subset_iff, mem_ball_zero, mem_closedBall_zero_iff, map_smul_eq_mul]
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✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ : ℝ
hr₁ : r₁ ≠ 0
r₂ : ℝ
⊢ Metric.closedBall 0 r₁ • p.ball 0 r₂ ⊆ p.ball 0 (r₁ * r₂)
state_after: 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✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ : ℝ
hr₁ : r₁ ≠ 0
r₂ : ℝ
⊢ ∀ (a : 𝕜), ‖a‖ ≤ r₁ → ∀ (b : E), p b < r₂ → ‖a‖ * p b < r₁ * r₂

tactic: refine fun a ha b hb ↦ mul_lt_mul' ha hb (apply_nonneg _ _) ?_
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✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ : ℝ
hr₁ : r₁ ≠ 0
r₂ : ℝ
⊢ ∀ (a : 𝕜), ‖a‖ ≤ r₁ → ∀ (b : E), p b < r₂ → ‖a‖ * p b < r₁ * r₂
state_after: 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✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ : ℝ
hr₁ : r₁ ≠ 0
r₂ : ℝ
a : 𝕜
ha : ‖a‖ ≤ r₁
b : E
hb : p b < r₂
⊢ 0 < r₁

tactic: exact hr₁.lt_or_lt.resolve_left <| ((norm_nonneg a).trans ha).not_lt
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✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ : ℝ
hr₁ : r₁ ≠ 0
r₂ : ℝ
a : 𝕜
ha : ‖a‖ ≤ r₁
b : E
hb : p b < r₂
⊢ 0 < r₁
state_after: no goals