1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.ShortComplex.exact_of_g_is_cokernel
File: Mathlib/Algebra/Homology/ShortComplex/Exact.lean

tactic: rw [exact_iff_mono_fromOpcycles]
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.64470, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsColimit (CokernelCofork.ofπ S.g ⋯)
inst✝ : S.HasHomology
⊢ S.Exact
state_after: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.64470, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsColimit (CokernelCofork.ofπ S.g ⋯)
inst✝ : S.HasHomology
⊢ Mono S.fromOpcycles

tactic: have : IsSplitMono S.fromOpcycles :=
  ⟨⟨{ retraction := hS.desc (CokernelCofork.ofπ S.pOpcycles S.f_pOpcycles)
      id := by
        rw [← cancel_epi S.pOpcycles, p_fromOpcycles_assoc, comp_id]
        exact Cofork.IsColimit.π_desc hS }⟩⟩
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.64470, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsColimit (CokernelCofork.ofπ S.g ⋯)
inst✝ : S.HasHomology
⊢ Mono S.fromOpcycles
state_after: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.64470, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsColimit (CokernelCofork.ofπ S.g ⋯)
inst✝ : S.HasHomology
this : IsSplitMono S.fromOpcycles
⊢ Mono S.fromOpcycles

tactic: infer_instance
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.64470, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsColimit (CokernelCofork.ofπ S.g ⋯)
inst✝ : S.HasHomology
this : IsSplitMono S.fromOpcycles
⊢ Mono S.fromOpcycles
state_after: no goals

tactic: rw [← cancel_epi S.pOpcycles, p_fromOpcycles_assoc, comp_id]
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.64470, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsColimit (CokernelCofork.ofπ S.g ⋯)
inst✝ : S.HasHomology
⊢ S.fromOpcycles ≫ hS.desc (CokernelCofork.ofπ S.pOpcycles ⋯) = 𝟙 S.opcycles
state_after: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.64470, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsColimit (CokernelCofork.ofπ S.g ⋯)
inst✝ : S.HasHomology
⊢ S.g ≫ hS.desc (CokernelCofork.ofπ S.pOpcycles ⋯) = S.pOpcycles

tactic: exact Cofork.IsColimit.π_desc hS
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.64470, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsColimit (CokernelCofork.ofπ S.g ⋯)
inst✝ : S.HasHomology
⊢ S.g ≫ hS.desc (CokernelCofork.ofπ S.pOpcycles ⋯) = S.pOpcycles
state_after: no goals
Theorem: Multiset.rel_map_left
File: Mathlib/Data/Multiset/Basic.lean

tactic: simp
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r : α → β → Prop
p : γ → δ → Prop
s : Multiset γ
f : γ → α
⊢ ∀ {t : Multiset β}, Rel r (map f 0) t ↔ Rel (fun a b => r (f a) b) 0 t
state_after: no goals

tactic: simp (config := { contextual := true }) [rel_cons_left]
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r : α → β → Prop
p : γ → δ → Prop
s : Multiset γ
f : γ → α
⊢ ∀ (a : γ) (s : Multiset γ),
    (∀ {t : Multiset β}, Rel r (map f s) t ↔ Rel (fun a b => r (f a) b) s t) →
      ∀ {t : Multiset β}, Rel r (map f (a ::ₘ s)) t ↔ Rel (fun a b => r (f a) b) (a ::ₘ s) t
state_after: no goals
Theorem: Nat.multinomial_empty
File: Mathlib/Data/Nat/Choose/Multinomial.lean

tactic: simp [multinomial]
state_before: α : Type u_1
s : Finset α
f : α → ℕ
a b : α
n : ℕ
⊢ multinomial ∅ f = 1
state_after: no goals
Theorem: Module.eq_zero_of_zero_eq_one
File: Mathlib/Algebra/Module/Defs.lean

tactic: rw [← one_smul R x, ← zero_eq_one, zero_smul]
state_before: α : Type u_1
R : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
r s : R
x y : M
zero_eq_one : 0 = 1
⊢ x = 0
state_after: no goals
Theorem: MvPolynomial.coeff_weightedHomogeneousComponent
File: Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean

tactic: convert rfl
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
σ : Type u_3
inst✝¹ : AddCommMonoid M
w : σ → M
n : M
φ ψ : MvPolynomial σ R
inst✝ : DecidableEq M
d : σ →₀ ℕ
this : DecidableEq M := Classical.decEq M
⊢ (if (weightedDegree w) d = n then φ d else 0) = if (weightedDegree w) d = n then coeff d φ else 0
state_after: no goals
Theorem: GeneralizedContinuedFraction.convergents_succ
File: Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean

tactic: rw [of_convergents_eq_convergents', convergents'_succ, of_convergents_eq_convergents']
state_before: K : Type u_1
v : K
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
n : ℕ
⊢ (of v).convergents (n + 1) = ↑⌊v⌋ + 1 / (of (Int.fract v)⁻¹).convergents n
state_after: no goals
Theorem: Polynomial.intCast_coeff_zero
File: Mathlib/Algebra/Polynomial/Coeff.lean

tactic: cases i <;> simp
state_before: R✝ : Type u
S : Type v
a b : R✝
n m : ℕ
inst✝¹ : Semiring R✝
p q r : R✝[X]
i : ℤ
R : Type u_1
inst✝ : Ring R
⊢ (↑i).coeff 0 = ↑i
state_after: no goals
Theorem: Orientation.oangle_add_oangle_rev
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

tactic: simp [o.oangle_rev y x]
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 + o.oangle y x = 0
state_after: no goals
Theorem: PowerSeries.order_mul
File: Mathlib/RingTheory/PowerSeries/Order.lean

tactic: classical
simp_rw [order_eq_multiplicity_X]
exact multiplicity.mul X_prime
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
φ ψ : R⟦X⟧
⊢ (φ * ψ).order = φ.order + ψ.order
state_after: no goals

tactic: simp_rw [order_eq_multiplicity_X]
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
φ ψ : R⟦X⟧
⊢ (φ * ψ).order = φ.order + ψ.order
state_after: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
φ ψ : R⟦X⟧
⊢ multiplicity X (φ * ψ) = multiplicity X φ + multiplicity X ψ

tactic: exact multiplicity.mul X_prime
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
φ ψ : R⟦X⟧
⊢ multiplicity X (φ * ψ) = multiplicity X φ + multiplicity X ψ
state_after: no goals
Theorem: RingHom.FinitePresentation.of_comp_finiteType
File: Mathlib/RingTheory/FinitePresentation.lean

tactic: simp [Algebra.smul_def, mul_assoc]
state_before: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
f : A →+* B
g : B →+* C
hg : (g.comp f).FinitePresentation
hf : f.FiniteType
ins1 : Algebra A B := f.toAlgebra
ins2 : Algebra B C := g.toAlgebra
ins3 : Algebra A C := (g.comp f).toAlgebra
a : A
b : B
c : C
⊢ (a • b) • c = a • b • c
state_after: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
f : A →+* B
g : B →+* C
hg : (g.comp f).FinitePresentation
hf : f.FiniteType
ins1 : Algebra A B := f.toAlgebra
ins2 : Algebra B C := g.toAlgebra
ins3 : Algebra A C := (g.comp f).toAlgebra
a : A
b : B
c : C
⊢ (algebraMap B C) ((algebraMap A B) a) * ((algebraMap B C) b * c) = (algebraMap A C) a * ((algebraMap B C) b * c)

tactic: rfl
state_before: A : Type u_1
B : Type u_2
C : Type u_3
inst✝² : CommRing A
inst✝¹ : CommRing B
inst✝ : CommRing C
f : A →+* B
g : B →+* C
hg : (g.comp f).FinitePresentation
hf : f.FiniteType
ins1 : Algebra A B := f.toAlgebra
ins2 : Algebra B C := g.toAlgebra
ins3 : Algebra A C := (g.comp f).toAlgebra
a : A
b : B
c : C
⊢ (algebraMap B C) ((algebraMap A B) a) * ((algebraMap B C) b * c) = (algebraMap A C) a * ((algebraMap B C) b * c)
state_after: no goals
Theorem: Prod.snd_natCast
File: Mathlib/Data/Nat/Cast/Prod.lean

tactic: induction n <;> simp [*]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : AddMonoidWithOne α
inst✝ : AddMonoidWithOne β
n : ℕ
⊢ (↑n).2 = ↑n
state_after: no goals
Theorem: Valuation.map_add'
File: Mathlib/RingTheory/Valuation/Basic.lean

tactic: intro x y
state_before: K : Type u_1
F : Type u_2
R : Type u_3
inst✝⁴ : DivisionRing K
Γ₀ : Type u_4
Γ'₀ : Type u_5
Γ''₀ : Type u_6
inst✝³ : LinearOrderedCommMonoidWithZero Γ''₀
inst✝² : Ring R
inst✝¹ : LinearOrderedCommMonoidWithZero Γ₀
inst✝ : LinearOrderedCommMonoidWithZero Γ'₀
v : Valuation R Γ₀
x y z : R
⊢ ∀ (x y : R), v (x + y) ≤ v x ∨ v (x + y) ≤ v y
state_after: K : Type u_1
F : Type u_2
R : Type u_3
inst✝⁴ : DivisionRing K
Γ₀ : Type u_4
Γ'₀ : Type u_5
Γ''₀ : Type u_6
inst✝³ : LinearOrderedCommMonoidWithZero Γ''₀
inst✝² : Ring R
inst✝¹ : LinearOrderedCommMonoidWithZero Γ₀
inst✝ : LinearOrderedCommMonoidWithZero Γ'₀
v : Valuation R Γ₀
x✝ y✝ z x y : R
⊢ v (x + y) ≤ v x ∨ v (x + y) ≤ v y

tactic: rw [← le_max_iff, ← ge_iff_le]
state_before: K : Type u_1
F : Type u_2
R : Type u_3
inst✝⁴ : DivisionRing K
Γ₀ : Type u_4
Γ'₀ : Type u_5
Γ''₀ : Type u_6
inst✝³ : LinearOrderedCommMonoidWithZero Γ''₀
inst✝² : Ring R
inst✝¹ : LinearOrderedCommMonoidWithZero Γ₀
inst✝ : LinearOrderedCommMonoidWithZero Γ'₀
v : Valuation R Γ₀
x✝ y✝ z x y : R
⊢ v (x + y) ≤ v x ∨ v (x + y) ≤ v y
state_after: K : Type u_1
F : Type u_2
R : Type u_3
inst✝⁴ : DivisionRing K
Γ₀ : Type u_4
Γ'₀ : Type u_5
Γ''₀ : Type u_6
inst✝³ : LinearOrderedCommMonoidWithZero Γ''₀
inst✝² : Ring R
inst✝¹ : LinearOrderedCommMonoidWithZero Γ₀
inst✝ : LinearOrderedCommMonoidWithZero Γ'₀
v : Valuation R Γ₀
x✝ y✝ z x y : R
⊢ max (v x) (v y) ≥ v (x + y)

tactic: apply map_add
state_before: K : Type u_1
F : Type u_2
R : Type u_3
inst✝⁴ : DivisionRing K
Γ₀ : Type u_4
Γ'₀ : Type u_5
Γ''₀ : Type u_6
inst✝³ : LinearOrderedCommMonoidWithZero Γ''₀
inst✝² : Ring R
inst✝¹ : LinearOrderedCommMonoidWithZero Γ₀
inst✝ : LinearOrderedCommMonoidWithZero Γ'₀
v : Valuation R Γ₀
x✝ y✝ z x y : R
⊢ max (v x) (v y) ≥ v (x + y)
state_after: no goals
Theorem: AddMonoidAlgebra.of'_modOf
File: Mathlib/Algebra/MonoidAlgebra/Division.lean

tactic: simpa only [one_mul] using mul_of'_modOf (1 : k[G]) g
state_before: k : Type u_1
G : Type u_2
inst✝¹ : Semiring k
inst✝ : AddCancelCommMonoid G
g : G
⊢ of' k G g %ᵒᶠ g = 0
state_after: no goals
Theorem: IsSubmonoid.preimage
File: Mathlib/Deprecated/Submonoid.lean

tactic: (rw [IsMonoidHom.map_one hf]; exact hs.one_mem)
state_before: M : Type u_1
inst✝² : Monoid M
s✝ : Set M
A : Type u_2
inst✝¹ : AddMonoid A
t : Set A
N : Type u_3
inst✝ : Monoid N
f : M → N
hf : IsMonoidHom f
s : Set N
hs : IsSubmonoid s
⊢ f 1 ∈ s
state_after: no goals

tactic: rw [IsMonoidHom.map_one hf]
state_before: M : Type u_1
inst✝² : Monoid M
s✝ : Set M
A : Type u_2
inst✝¹ : AddMonoid A
t : Set A
N : Type u_3
inst✝ : Monoid N
f : M → N
hf : IsMonoidHom f
s : Set N
hs : IsSubmonoid s
⊢ f 1 ∈ s
state_after: M : Type u_1
inst✝² : Monoid M
s✝ : Set M
A : Type u_2
inst✝¹ : AddMonoid A
t : Set A
N : Type u_3
inst✝ : Monoid N
f : M → N
hf : IsMonoidHom f
s : Set N
hs : IsSubmonoid s
⊢ 1 ∈ s

tactic: exact hs.one_mem
state_before: M : Type u_1
inst✝² : Monoid M
s✝ : Set M
A : Type u_2
inst✝¹ : AddMonoid A
t : Set A
N : Type u_3
inst✝ : Monoid N
f : M → N
hf : IsMonoidHom f
s : Set N
hs : IsSubmonoid s
⊢ 1 ∈ s
state_after: no goals

tactic: (rw [IsMonoidHom.map_mul' hf]; exact hs.mul_mem ha hb)
state_before: M : Type u_1
inst✝² : Monoid M
s✝ : Set M
A : Type u_2
inst✝¹ : AddMonoid A
t : Set A
N : Type u_3
inst✝ : Monoid N
f : M → N
hf : IsMonoidHom f
s : Set N
hs : IsSubmonoid s
a b : M
ha : f a ∈ s
hb : f b ∈ s
⊢ f (a * b) ∈ s
state_after: no goals

tactic: rw [IsMonoidHom.map_mul' hf]
state_before: M : Type u_1
inst✝² : Monoid M
s✝ : Set M
A : Type u_2
inst✝¹ : AddMonoid A
t : Set A
N : Type u_3
inst✝ : Monoid N
f : M → N
hf : IsMonoidHom f
s : Set N
hs : IsSubmonoid s
a b : M
ha : f a ∈ s
hb : f b ∈ s
⊢ f (a * b) ∈ s
state_after: M : Type u_1
inst✝² : Monoid M
s✝ : Set M
A : Type u_2
inst✝¹ : AddMonoid A
t : Set A
N : Type u_3
inst✝ : Monoid N
f : M → N
hf : IsMonoidHom f
s : Set N
hs : IsSubmonoid s
a b : M
ha : f a ∈ s
hb : f b ∈ s
⊢ f a * f b ∈ s

tactic: exact hs.mul_mem ha hb
state_before: M : Type u_1
inst✝² : Monoid M
s✝ : Set M
A : Type u_2
inst✝¹ : AddMonoid A
t : Set A
N : Type u_3
inst✝ : Monoid N
f : M → N
hf : IsMonoidHom f
s : Set N
hs : IsSubmonoid s
a b : M
ha : f a ∈ s
hb : f b ∈ s
⊢ f a * f b ∈ s
state_after: no goals
Theorem: zeta_eq_tsum_one_div_nat_cpow
File: Mathlib/NumberTheory/LSeries/RiemannZeta.lean

tactic: simpa only [QuotientAddGroup.mk_zero, cosZeta_zero, mul_zero, zero_mul, Real.cos_zero,
  ofReal_one] using (hasSum_nat_cosZeta 0 hs).tsum_eq.symm
state_before: s : ℂ
hs : 1 < s.re
⊢ riemannZeta s = ∑' (n : ℕ), 1 / ↑n ^ s
state_after: no goals
Theorem: CategoryTheory.GrothendieckTopology.top_covers
File: Mathlib/CategoryTheory/Sites/Grothendieck.lean

tactic: simp [covers_iff]
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : C
S✝ R : Sieve X
J : GrothendieckTopology C
S : Sieve X
f : Y ⟶ X
⊢ ⊤.Covers S f
state_after: no goals
Theorem: Disjoint.of_preimage
File: Mathlib/Data/Set/Image.lean

tactic: rw [disjoint_iff_inter_eq_empty, ← image_preimage_eq (_ ∩ _) hf, preimage_inter, h.inter_eq,
  image_empty]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β
s✝ t✝ : Set α
hf : Surjective f
s t : Set β
h : Disjoint (f ⁻¹' s) (f ⁻¹' t)
⊢ Disjoint s t
state_after: no goals
Theorem: MeasureTheory.AEStronglyMeasurable.integral_kernel_condKernel
File: Mathlib/Probability/Kernel/Disintegration/Integral.lean

tactic: rw [← kernel.compProd_fst_condKernel κ] at hf
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁶ : MeasurableSpace Ω
inst✝⁵ : StandardBorelSpace Ω
inst✝⁴ : Nonempty Ω
inst✝³ : CountableOrCountablyGenerated α β
κ : ↥(kernel α (β × Ω))
inst✝² : IsFiniteKernel κ
E : Type u_4
f : β × Ω → E
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
a : α
hf : AEStronglyMeasurable f (κ a)
⊢ AEStronglyMeasurable (fun x => ∫ (y : Ω), f (x, y) ∂(kernel.condKernel κ) (a, x)) ((kernel.fst κ) a)
state_after: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁶ : MeasurableSpace Ω
inst✝⁵ : StandardBorelSpace Ω
inst✝⁴ : Nonempty Ω
inst✝³ : CountableOrCountablyGenerated α β
κ : ↥(kernel α (β × Ω))
inst✝² : IsFiniteKernel κ
E : Type u_4
f : β × Ω → E
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
a : α
hf : AEStronglyMeasurable f ((kernel.fst κ ⊗ₖ kernel.condKernel κ) a)
⊢ AEStronglyMeasurable (fun x => ∫ (y : Ω), f (x, y) ∂(kernel.condKernel κ) (a, x)) ((kernel.fst κ) a)

tactic: exact AEStronglyMeasurable.integral_kernel_compProd hf
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁶ : MeasurableSpace Ω
inst✝⁵ : StandardBorelSpace Ω
inst✝⁴ : Nonempty Ω
inst✝³ : CountableOrCountablyGenerated α β
κ : ↥(kernel α (β × Ω))
inst✝² : IsFiniteKernel κ
E : Type u_4
f : β × Ω → E
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
a : α
hf : AEStronglyMeasurable f ((kernel.fst κ ⊗ₖ kernel.condKernel κ) a)
⊢ AEStronglyMeasurable (fun x => ∫ (y : Ω), f (x, y) ∂(kernel.condKernel κ) (a, x)) ((kernel.fst κ) a)
state_after: no goals
Theorem: ProjectiveSpectrum.union_zeroLocus
File: Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean

tactic: rw [zeroLocus_inf]
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
s s' : Set A
⊢ zeroLocus 𝒜 s ∪ zeroLocus 𝒜 s' = zeroLocus 𝒜 ↑(Ideal.span s ⊓ Ideal.span s')
state_after: R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
s s' : Set A
⊢ zeroLocus 𝒜 s ∪ zeroLocus 𝒜 s' = zeroLocus 𝒜 ↑(Ideal.span s) ∪ zeroLocus 𝒜 ↑(Ideal.span s')

tactic: simp
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
s s' : Set A
⊢ zeroLocus 𝒜 s ∪ zeroLocus 𝒜 s' = zeroLocus 𝒜 ↑(Ideal.span s) ∪ zeroLocus 𝒜 ↑(Ideal.span s')
state_after: no goals
Theorem: HomologicalComplex.biprodXIso_hom_snd
File: Mathlib/Algebra/Homology/HomologicalComplexBiprod.lean

tactic: simp [biprodXIso]
state_before: C : Type u_1
ι : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Preadditive C
c : ComplexShape ι
K L : HomologicalComplex C c
inst✝ : ∀ (i : ι), HasBinaryBiproduct (K.X i) (L.X i)
i : ι
⊢ (K.biprodXIso L i).hom ≫ biprod.snd = biprod.snd.f i
state_after: no goals
Theorem: HomologicalComplex.Hom.isoOfComponents_app
File: Mathlib/Algebra/Homology/HomologicalComplex.lean

tactic: ext
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C C₁ C₂ C₃ : HomologicalComplex V c
f : (i : ι) → C₁.X i ≅ C₂.X i
hf : ∀ (i j : ι), c.Rel i j → (f i).hom ≫ C₂.d i j = C₁.d i j ≫ (f j).hom
i : ι
⊢ isoApp (isoOfComponents f hf) i = f i
state_after: case w
ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C C₁ C₂ C₃ : HomologicalComplex V c
f : (i : ι) → C₁.X i ≅ C₂.X i
hf : ∀ (i j : ι), c.Rel i j → (f i).hom ≫ C₂.d i j = C₁.d i j ≫ (f j).hom
i : ι
⊢ (isoApp (isoOfComponents f hf) i).hom = (f i).hom

tactic: simp
state_before: case w
ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C C₁ C₂ C₃ : HomologicalComplex V c
f : (i : ι) → C₁.X i ≅ C₂.X i
hf : ∀ (i j : ι), c.Rel i j → (f i).hom ≫ C₂.d i j = C₁.d i j ≫ (f j).hom
i : ι
⊢ (isoApp (isoOfComponents f hf) i).hom = (f i).hom
state_after: no goals
Theorem: IsCompact.div_closedBall_one
File: Mathlib/Analysis/Normed/Group/Pointwise.lean

tactic: simp [div_eq_mul_inv, hs.mul_closedBall_one hδ]
state_before: E : Type u_1
inst✝ : SeminormedCommGroup E
ε δ : ℝ
s t : Set E
x y : E
hs : IsCompact s
hδ : 0 ≤ δ
⊢ s / closedBall 1 δ = cthickening δ s
state_after: no goals
Theorem: CategoryTheory.ShortComplex.rightHomologyMap_op
File: Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean

tactic: dsimp [leftHomologyOpIso, LeftHomologyData.leftHomologyIso, leftHomologyMap,
  rightHomologyMap]
state_before: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
φ : S₁ ⟶ S₂
inst✝¹ : S₁.HasRightHomology
inst✝ : S₂.HasRightHomology
⊢ (rightHomologyMap φ).op = S₂.leftHomologyOpIso.inv ≫ leftHomologyMap (opMap φ) ≫ S₁.leftHomologyOpIso.hom
state_after: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
φ : S₁ ⟶ S₂
inst✝¹ : S₁.HasRightHomology
inst✝ : S₂.HasRightHomology
⊢ (rightHomologyMap' φ S₁.rightHomologyData S₂.rightHomologyData).op =
    leftHomologyMap' (𝟙 S₂.op) S₂.rightHomologyData.op S₂.op.leftHomologyData ≫
      leftHomologyMap' (opMap φ) S₂.op.leftHomologyData S₁.op.leftHomologyData ≫
        leftHomologyMap' (𝟙 S₁.op) S₁.op.leftHomologyData S₁.rightHomologyData.op

tactic: simp only [← leftHomologyMap'_comp, comp_id, id_comp, rightHomologyMap'_op]
state_before: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
φ : S₁ ⟶ S₂
inst✝¹ : S₁.HasRightHomology
inst✝ : S₂.HasRightHomology
⊢ (rightHomologyMap' φ S₁.rightHomologyData S₂.rightHomologyData).op =
    leftHomologyMap' (𝟙 S₂.op) S₂.rightHomologyData.op S₂.op.leftHomologyData ≫
      leftHomologyMap' (opMap φ) S₂.op.leftHomologyData S₁.op.leftHomologyData ≫
        leftHomologyMap' (𝟙 S₁.op) S₁.op.leftHomologyData S₁.rightHomologyData.op
state_after: no goals
Theorem: CategoryTheory.Iso.map_hom_inv_id_app
File: Mathlib/CategoryTheory/Functor/Category.lean

tactic: simp [← NatTrans.comp_app, ← Functor.map_comp]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F✝ G H I : C ⥤ D
X Y : C
e : X ≅ Y
F : C ⥤ D ⥤ E
Z : D
⊢ (F.map e.hom).app Z ≫ (F.map e.inv).app Z = 𝟙 ((F.obj X).obj Z)
state_after: no goals
Theorem: CategoryTheory.Limits.Fork.condition
File: Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean

tactic: rw [← t.app_one_eq_ι_comp_left, ← t.app_one_eq_ι_comp_right]
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : C
f g : X ⟶ Y
t : Fork f g
⊢ t.ι ≫ f = t.ι ≫ g
state_after: no goals
Theorem: Polynomial.isNilpotent_monomial_iff
File: Mathlib/RingTheory/Polynomial/Nilpotent.lean

tactic: simp
state_before: R : Type u_1
r : R
inst✝ : Semiring R
P : R[X]
n k : ℕ
⊢ (monomial n) r ^ k = 0 ↔ r ^ k = 0
state_after: no goals
Theorem: IsConnected.iUnion_of_chain
File: Mathlib/Topology/Connected/Basic.lean

tactic: rw [inter_comm]
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝⁴ : TopologicalSpace α
s✝ t u v : Set α
inst✝³ : LinearOrder β
inst✝² : SuccOrder β
inst✝¹ : IsSuccArchimedean β
inst✝ : Nonempty β
s : β → Set α
H : ∀ (n : β), IsConnected (s n)
K : ∀ (n : β), (s n ∩ s (succ n)).Nonempty
i✝ j i : β
x✝ : i ∈ Ico j i✝
⊢ (s (succ i) ∩ s i).Nonempty
state_after: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝⁴ : TopologicalSpace α
s✝ t u v : Set α
inst✝³ : LinearOrder β
inst✝² : SuccOrder β
inst✝¹ : IsSuccArchimedean β
inst✝ : Nonempty β
s : β → Set α
H : ∀ (n : β), IsConnected (s n)
K : ∀ (n : β), (s n ∩ s (succ n)).Nonempty
i✝ j i : β
x✝ : i ∈ Ico j i✝
⊢ (s i ∩ s (succ i)).Nonempty

tactic: exact K i
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝⁴ : TopologicalSpace α
s✝ t u v : Set α
inst✝³ : LinearOrder β
inst✝² : SuccOrder β
inst✝¹ : IsSuccArchimedean β
inst✝ : Nonempty β
s : β → Set α
H : ∀ (n : β), IsConnected (s n)
K : ∀ (n : β), (s n ∩ s (succ n)).Nonempty
i✝ j i : β
x✝ : i ∈ Ico j i✝
⊢ (s i ∩ s (succ i)).Nonempty
state_after: no goals
Theorem: Primrec.fin_app
File: Mathlib/Computability/Primrec.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
σ : Type u_4
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
n : ℕ
x✝ : (Fin n → σ) × Fin n
v : Fin n → σ
i : Fin n
⊢ (Vector.ofFn (v, i).1).get (v, i).2 = id (v, i).1 (v, i).2
state_after: no goals
Theorem: MeasureTheory.IsSetAlgebra.biInter_mem
File: Mathlib/MeasureTheory/SetAlgebra.lean

tactic: by_cases h : S = ∅
state_before: α : Type u_1
𝒜 : Set (Set α)
s✝ t : Set α
ι : Type u_2
h𝒜 : IsSetAlgebra 𝒜
s : ι → Set α
S : Finset ι
hs : ∀ i ∈ S, s i ∈ 𝒜
⊢ ⋂ i ∈ S, s i ∈ 𝒜
state_after: case pos
α : Type u_1
𝒜 : Set (Set α)
s✝ t : Set α
ι : Type u_2
h𝒜 : IsSetAlgebra 𝒜
s : ι → Set α
S : Finset ι
hs : ∀ i ∈ S, s i ∈ 𝒜
h : S = ∅
⊢ ⋂ i ∈ S, s i ∈ 𝒜

case neg
α : Type u_1
𝒜 : Set (Set α)
s✝ t : Set α
ι : Type u_2
h𝒜 : IsSetAlgebra 𝒜
s : ι → Set α
S : Finset ι
hs : ∀ i ∈ S, s i ∈ 𝒜
h : ¬S = ∅
⊢ ⋂ i ∈ S, s i ∈ 𝒜

tactic: rw [h, ← Finset.set_biInter_coe, Finset.coe_empty, biInter_empty]
state_before: case pos
α : Type u_1
𝒜 : Set (Set α)
s✝ t : Set α
ι : Type u_2
h𝒜 : IsSetAlgebra 𝒜
s : ι → Set α
S : Finset ι
hs : ∀ i ∈ S, s i ∈ 𝒜
h : S = ∅
⊢ ⋂ i ∈ S, s i ∈ 𝒜
state_after: case pos
α : Type u_1
𝒜 : Set (Set α)
s✝ t : Set α
ι : Type u_2
h𝒜 : IsSetAlgebra 𝒜
s : ι → Set α
S : Finset ι
hs : ∀ i ∈ S, s i ∈ 𝒜
h : S = ∅
⊢ univ ∈ 𝒜

tactic: exact h𝒜.univ_mem
state_before: case pos
α : Type u_1
𝒜 : Set (Set α)
s✝ t : Set α
ι : Type u_2
h𝒜 : IsSetAlgebra 𝒜
s : ι → Set α
S : Finset ι
hs : ∀ i ∈ S, s i ∈ 𝒜
h : S = ∅
⊢ univ ∈ 𝒜
state_after: no goals

tactic: rw [← ne_eq, ← Finset.nonempty_iff_ne_empty] at h
state_before: case neg
α : Type u_1
𝒜 : Set (Set α)
s✝ t : Set α
ι : Type u_2
h𝒜 : IsSetAlgebra 𝒜
s : ι → Set α
S : Finset ι
hs : ∀ i ∈ S, s i ∈ 𝒜
h : ¬S = ∅
⊢ ⋂ i ∈ S, s i ∈ 𝒜
state_after: case neg
α : Type u_1
𝒜 : Set (Set α)
s✝ t : Set α
ι : Type u_2
h𝒜 : IsSetAlgebra 𝒜
s : ι → Set α
S : Finset ι
hs : ∀ i ∈ S, s i ∈ 𝒜
h : S.Nonempty
⊢ ⋂ i ∈ S, s i ∈ 𝒜

tactic: exact h𝒜.isSetRing.biInter_mem S h hs
state_before: case neg
α : Type u_1
𝒜 : Set (Set α)
s✝ t : Set α
ι : Type u_2
h𝒜 : IsSetAlgebra 𝒜
s : ι → Set α
S : Finset ι
hs : ∀ i ∈ S, s i ∈ 𝒜
h : S.Nonempty
⊢ ⋂ i ∈ S, s i ∈ 𝒜
state_after: no goals
Theorem: List.dropLast_prefix
File: Mathlib/Data/List/Infix.lean

tactic: rw [dropLast, List.append_nil]
state_before: α : Type u_1
β : Type u_2
l l₁ l₂ l₃ : List α
a b : α
m n : ℕ
⊢ [].dropLast ++ [] = []
state_after: no goals