1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: AlgebraicTopology.DoldKan.HigherFacesVanish.inclusionOfMooreComplexMap
File: Mathlib/AlgebraicTopology/DoldKan/Normalized.lean

tactic: dsimp [AlgebraicTopology.inclusionOfMooreComplexMap, NormalizedMooreComplex.objX]
state_before: A : Type u_1
inst✝¹ : Category.{u_2, u_1} A
inst✝ : Abelian A
X : SimplicialObject A
n : ℕ
j : Fin (n + 1)
x✝ : n + 1 ≤ ↑j + (n + 1)
⊢ (AlgebraicTopology.inclusionOfMooreComplexMap X).f (n + 1) ≫ X.δ j.succ = 0
state_after: A : Type u_1
inst✝¹ : Category.{u_2, u_1} A
inst✝ : Abelian A
X : SimplicialObject A
n : ℕ
j : Fin (n + 1)
x✝ : n + 1 ≤ ↑j + (n + 1)
⊢ (Finset.univ.inf fun k => kernelSubobject (X.δ k.succ)).arrow ≫ X.δ j.succ = 0

tactic: rw [← factorThru_arrow _ _ (finset_inf_arrow_factors Finset.univ _ j
  (by simp only [Finset.mem_univ])), assoc, kernelSubobject_arrow_comp, comp_zero]
state_before: A : Type u_1
inst✝¹ : Category.{u_2, u_1} A
inst✝ : Abelian A
X : SimplicialObject A
n : ℕ
j : Fin (n + 1)
x✝ : n + 1 ≤ ↑j + (n + 1)
⊢ (Finset.univ.inf fun k => kernelSubobject (X.δ k.succ)).arrow ≫ X.δ j.succ = 0
state_after: no goals

tactic: simp only [Finset.mem_univ]
state_before: A : Type u_1
inst✝¹ : Category.{u_2, u_1} A
inst✝ : Abelian A
X : SimplicialObject A
n : ℕ
j : Fin (n + 1)
x✝ : n + 1 ≤ ↑j + (n + 1)
⊢ j ∈ Finset.univ
state_after: no goals
Theorem: Relation.flip_comp
File: Mathlib/Logic/Relation.lean

tactic: funext c a
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → β → Prop
p : β → γ → Prop
q : γ → δ → Prop
⊢ flip (r ∘r p) = flip p ∘r flip r
state_after: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → β → Prop
p : β → γ → Prop
q : γ → δ → Prop
c : γ
a : α
⊢ flip (r ∘r p) c a = (flip p ∘r flip r) c a

tactic: apply propext
state_before: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → β → Prop
p : β → γ → Prop
q : γ → δ → Prop
c : γ
a : α
⊢ flip (r ∘r p) c a = (flip p ∘r flip r) c a
state_after: case h.h.a
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → β → Prop
p : β → γ → Prop
q : γ → δ → Prop
c : γ
a : α
⊢ flip (r ∘r p) c a ↔ (flip p ∘r flip r) c a

tactic: constructor
state_before: case h.h.a
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → β → Prop
p : β → γ → Prop
q : γ → δ → Prop
c : γ
a : α
⊢ flip (r ∘r p) c a ↔ (flip p ∘r flip r) c a
state_after: case h.h.a.mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → β → Prop
p : β → γ → Prop
q : γ → δ → Prop
c : γ
a : α
⊢ flip (r ∘r p) c a → (flip p ∘r flip r) c a

case h.h.a.mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → β → Prop
p : β → γ → Prop
q : γ → δ → Prop
c : γ
a : α
⊢ (flip p ∘r flip r) c a → flip (r ∘r p) c a

tactic: exact fun ⟨b, hab, hbc⟩ ↦ ⟨b, hbc, hab⟩
state_before: case h.h.a.mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → β → Prop
p : β → γ → Prop
q : γ → δ → Prop
c : γ
a : α
⊢ flip (r ∘r p) c a → (flip p ∘r flip r) c a
state_after: no goals

tactic: exact fun ⟨b, hbc, hab⟩ ↦ ⟨b, hab, hbc⟩
state_before: case h.h.a.mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → β → Prop
p : β → γ → Prop
q : γ → δ → Prop
c : γ
a : α
⊢ (flip p ∘r flip r) c a → flip (r ∘r p) c a
state_after: no goals
Theorem: Nat.exists_factorization_lt_of_lt
File: Mathlib/Data/Nat/Factorization/Basic.lean

tactic: have hb : b ≠ 0 := (ha.bot_lt.trans hab).ne'
state_before: a✝ b✝ m n p a b : ℕ
ha : a ≠ 0
hab : a < b
⊢ ∃ p, a.factorization p < b.factorization p
state_after: a✝ b✝ m n p a b : ℕ
ha : a ≠ 0
hab : a < b
hb : b ≠ 0
⊢ ∃ p, a.factorization p < b.factorization p

tactic: contrapose! hab
state_before: a✝ b✝ m n p a b : ℕ
ha : a ≠ 0
hab : a < b
hb : b ≠ 0
⊢ ∃ p, a.factorization p < b.factorization p
state_after: a✝ b✝ m n p a b : ℕ
ha : a ≠ 0
hb : b ≠ 0
hab : ∀ (p : ℕ), b.factorization p ≤ a.factorization p
⊢ b ≤ a

tactic: rw [← Finsupp.le_def, factorization_le_iff_dvd hb ha] at hab
state_before: a✝ b✝ m n p a b : ℕ
ha : a ≠ 0
hb : b ≠ 0
hab : ∀ (p : ℕ), b.factorization p ≤ a.factorization p
⊢ b ≤ a
state_after: a✝ b✝ m n p a b : ℕ
ha : a ≠ 0
hb : b ≠ 0
hab : b ∣ a
⊢ b ≤ a

tactic: exact le_of_dvd ha.bot_lt hab
state_before: a✝ b✝ m n p a b : ℕ
ha : a ≠ 0
hb : b ≠ 0
hab : b ∣ a
⊢ b ≤ a
state_after: no goals
Theorem: essSup_comp_le_essSup_map_measure
File: Mathlib/MeasureTheory/Function/EssSup.lean

tactic: refine limsSup_le_limsSup_of_le ?_
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
γ : Type u_3
mγ : MeasurableSpace γ
f : α → γ
g : γ → β
hf : AEMeasurable f μ
⊢ essSup (g ∘ f) μ ≤ essSup g (Measure.map f μ)
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
γ : Type u_3
mγ : MeasurableSpace γ
f : α → γ
g : γ → β
hf : AEMeasurable f μ
⊢ map (g ∘ f) (ae μ) ≤ map g (ae (Measure.map f μ))

tactic: rw [← Filter.map_map]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
γ : Type u_3
mγ : MeasurableSpace γ
f : α → γ
g : γ → β
hf : AEMeasurable f μ
⊢ map (g ∘ f) (ae μ) ≤ map g (ae (Measure.map f μ))
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
γ : Type u_3
mγ : MeasurableSpace γ
f : α → γ
g : γ → β
hf : AEMeasurable f μ
⊢ map g (map f (ae μ)) ≤ map g (ae (Measure.map f μ))

tactic: exact Filter.map_mono (Measure.tendsto_ae_map hf)
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
γ : Type u_3
mγ : MeasurableSpace γ
f : α → γ
g : γ → β
hf : AEMeasurable f μ
⊢ map g (map f (ae μ)) ≤ map g (ae (Measure.map f μ))
state_after: no goals
Theorem: AhlswedeZhang.infSum_compls_add_supSum
File: Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean

tactic: unfold infSum supSum
state_before: α : Type u_1
inst✝² : Fintype α
inst✝¹ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s : Finset α
inst✝ : Nonempty α
𝒜 : Finset (Finset α)
⊢ infSum 𝒜ᶜˢ + supSum 𝒜 = ↑(card α) * ∑ k ∈ range (card α), (↑k)⁻¹ + 1
state_after: α : Type u_1
inst✝² : Fintype α
inst✝¹ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s : Finset α
inst✝ : Nonempty α
𝒜 : Finset (Finset α)
⊢ ∑ s : Finset α, ↑(𝒜ᶜˢ.truncatedInf s).card / (↑s.card * ↑((card α).choose s.card)) +
      ∑ s : Finset α, ↑(𝒜.truncatedSup s).card / ((↑(card α) - ↑s.card) * ↑((card α).choose s.card)) =
    ↑(card α) * ∑ k ∈ range (card α), (↑k)⁻¹ + 1

tactic: rw [← @map_univ_of_surjective (Finset α) _ _ _ ⟨compl, compl_injective⟩ compl_surjective, sum_map]
state_before: α : Type u_1
inst✝² : Fintype α
inst✝¹ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s : Finset α
inst✝ : Nonempty α
𝒜 : Finset (Finset α)
⊢ ∑ s : Finset α, ↑(𝒜ᶜˢ.truncatedInf s).card / (↑s.card * ↑((card α).choose s.card)) +
      ∑ s : Finset α, ↑(𝒜.truncatedSup s).card / ((↑(card α) - ↑s.card) * ↑((card α).choose s.card)) =
    ↑(card α) * ∑ k ∈ range (card α), (↑k)⁻¹ + 1
state_after: α : Type u_1
inst✝² : Fintype α
inst✝¹ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s : Finset α
inst✝ : Nonempty α
𝒜 : Finset (Finset α)
⊢ ∑ x : Finset α,
        ↑(𝒜ᶜˢ.truncatedInf ({ toFun := compl, inj' := ⋯ } x)).card /
          (↑({ toFun := compl, inj' := ⋯ } x).card * ↑((card α).choose ({ toFun := compl, inj' := ⋯ } x).card)) +
      ∑ s ∈ map { toFun := compl, inj' := ⋯ } univ,
        ↑(𝒜.truncatedSup s).card / ((↑(card α) - ↑s.card) * ↑((card α).choose s.card)) =
    ↑(card α) * ∑ k ∈ range (card α), (↑k)⁻¹ + 1

tactic: simp only [Function.Embedding.coeFn_mk, univ_map_embedding, ← compl_truncatedSup,
  ← sum_add_distrib, card_compl, cast_sub (card_le_univ _), choose_symm (card_le_univ _),
  div_add_div_same, sub_add_cancel, Fintype.sum_div_mul_card_choose_card]
state_before: α : Type u_1
inst✝² : Fintype α
inst✝¹ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s : Finset α
inst✝ : Nonempty α
𝒜 : Finset (Finset α)
⊢ ∑ x : Finset α,
        ↑(𝒜ᶜˢ.truncatedInf ({ toFun := compl, inj' := ⋯ } x)).card /
          (↑({ toFun := compl, inj' := ⋯ } x).card * ↑((card α).choose ({ toFun := compl, inj' := ⋯ } x).card)) +
      ∑ s ∈ map { toFun := compl, inj' := ⋯ } univ,
        ↑(𝒜.truncatedSup s).card / ((↑(card α) - ↑s.card) * ↑((card α).choose s.card)) =
    ↑(card α) * ∑ k ∈ range (card α), (↑k)⁻¹ + 1
state_after: no goals
Theorem: CategoryTheory.unitCompPartialBijective_natural
File: Mathlib/CategoryTheory/Adjunction/Reflective.lean

tactic: rw [← Equiv.eq_symm_apply, unitCompPartialBijective_symm_natural A h, Equiv.symm_apply_apply]
state_before: C : Type u₁
D : Type u₂
E : Type u₃
inst✝³ : Category.{v₁, u₁} C
inst✝² : Category.{v₂, u₂} D
inst✝¹ : Category.{v₃, u₃} E
i : D ⥤ C
inst✝ : Reflective i
A B B' : C
h : B ⟶ B'
hB : B ∈ i.essImage
hB' : B' ∈ i.essImage
f : A ⟶ B
⊢ (unitCompPartialBijective A hB') (f ≫ h) = (unitCompPartialBijective A hB) f ≫ h
state_after: no goals
Theorem: CategoryTheory.Equivalence.preregular_isSheaf_iff
File: Mathlib/CategoryTheory/Sites/Coherent/Equivalence.lean

tactic: refine ⟨fun hF ↦ ((e.sheafCongrPreregular A).functor.obj ⟨F, hF⟩).cond, fun hF ↦ ?_⟩
state_before: C : Type u_1
inst✝³ : Category.{u_4, u_1} C
D : Type u_2
inst✝² : Category.{u_6, u_2} D
e : C ≌ D
inst✝¹ : Preregular C
A : Type u_3
inst✝ : Category.{u_5, u_3} A
F : Cᵒᵖ ⥤ A
⊢ IsSheaf (regularTopology C) F ↔ IsSheaf (regularTopology D) (e.inverse.op ⋙ F)
state_after: C : Type u_1
inst✝³ : Category.{u_4, u_1} C
D : Type u_2
inst✝² : Category.{u_6, u_2} D
e : C ≌ D
inst✝¹ : Preregular C
A : Type u_3
inst✝ : Category.{u_5, u_3} A
F : Cᵒᵖ ⥤ A
hF : IsSheaf (regularTopology D) (e.inverse.op ⋙ F)
⊢ IsSheaf (regularTopology C) F

tactic: rw [isSheaf_of_iso_iff (P' := e.functor.op ⋙ e.inverse.op ⋙ F)]
state_before: C : Type u_1
inst✝³ : Category.{u_4, u_1} C
D : Type u_2
inst✝² : Category.{u_6, u_2} D
e : C ≌ D
inst✝¹ : Preregular C
A : Type u_3
inst✝ : Category.{u_5, u_3} A
F : Cᵒᵖ ⥤ A
hF : IsSheaf (regularTopology D) (e.inverse.op ⋙ F)
⊢ IsSheaf (regularTopology C) F
state_after: C : Type u_1
inst✝³ : Category.{u_4, u_1} C
D : Type u_2
inst✝² : Category.{u_6, u_2} D
e : C ≌ D
inst✝¹ : Preregular C
A : Type u_3
inst✝ : Category.{u_5, u_3} A
F : Cᵒᵖ ⥤ A
hF : IsSheaf (regularTopology D) (e.inverse.op ⋙ F)
⊢ IsSheaf (regularTopology C) (e.functor.op ⋙ e.inverse.op ⋙ F)

C : Type u_1
inst✝³ : Category.{u_4, u_1} C
D : Type u_2
inst✝² : Category.{u_6, u_2} D
e : C ≌ D
inst✝¹ : Preregular C
A : Type u_3
inst✝ : Category.{u_5, u_3} A
F : Cᵒᵖ ⥤ A
hF : IsSheaf (regularTopology D) (e.inverse.op ⋙ F)
⊢ F ≅ e.functor.op ⋙ e.inverse.op ⋙ F

tactic: exact (e.sheafCongrPreregular A).inverse.obj ⟨e.inverse.op ⋙ F, hF⟩ |>.cond
state_before: C : Type u_1
inst✝³ : Category.{u_4, u_1} C
D : Type u_2
inst✝² : Category.{u_6, u_2} D
e : C ≌ D
inst✝¹ : Preregular C
A : Type u_3
inst✝ : Category.{u_5, u_3} A
F : Cᵒᵖ ⥤ A
hF : IsSheaf (regularTopology D) (e.inverse.op ⋙ F)
⊢ IsSheaf (regularTopology C) (e.functor.op ⋙ e.inverse.op ⋙ F)
state_after: no goals

tactic: exact isoWhiskerRight e.op.unitIso F
state_before: C : Type u_1
inst✝³ : Category.{u_4, u_1} C
D : Type u_2
inst✝² : Category.{u_6, u_2} D
e : C ≌ D
inst✝¹ : Preregular C
A : Type u_3
inst✝ : Category.{u_5, u_3} A
F : Cᵒᵖ ⥤ A
hF : IsSheaf (regularTopology D) (e.inverse.op ⋙ F)
⊢ F ≅ e.functor.op ⋙ e.inverse.op ⋙ F
state_after: no goals
Theorem: WittVector.bind₁_frobeniusPolyRat_wittPolynomial
File: Mathlib/RingTheory/WittVector/Frobenius.lean

tactic: delta frobeniusPolyRat
state_before: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
n : ℕ
⊢ (bind₁ (frobeniusPolyRat p)) (wittPolynomial p ℚ n) = wittPolynomial p ℚ (n + 1)
state_after: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
n : ℕ
⊢ (bind₁ fun n => (bind₁ (wittPolynomial p ℚ ∘ fun n => n + 1)) (xInTermsOfW p ℚ n)) (wittPolynomial p ℚ n) =
    wittPolynomial p ℚ (n + 1)

tactic: rw [← bind₁_bind₁, bind₁_xInTermsOfW_wittPolynomial, bind₁_X_right, Function.comp_apply]
state_before: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
n : ℕ
⊢ (bind₁ fun n => (bind₁ (wittPolynomial p ℚ ∘ fun n => n + 1)) (xInTermsOfW p ℚ n)) (wittPolynomial p ℚ n) =
    wittPolynomial p ℚ (n + 1)
state_after: no goals
Theorem: Fin.tail_update_zero
File: Mathlib/Data/Fin/Tuple/Basic.lean

tactic: ext j
state_before: m n : ℕ
α : Fin (n + 1) → Type u
x : α 0
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α i.succ
i : Fin n
y : α i.succ
z : α 0
⊢ tail (update q 0 z) = tail q
state_after: case h
m n : ℕ
α : Fin (n + 1) → Type u
x : α 0
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α i.succ
i : Fin n
y : α i.succ
z : α 0
j : Fin n
⊢ tail (update q 0 z) j = tail q j

tactic: simp [tail, Fin.succ_ne_zero]
state_before: case h
m n : ℕ
α : Fin (n + 1) → Type u
x : α 0
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α i.succ
i : Fin n
y : α i.succ
z : α 0
j : Fin n
⊢ tail (update q 0 z) j = tail q j
state_after: no goals
Theorem: Real.exp_pos
File: Mathlib/Data/Complex/Exponential.lean

tactic: rw [← neg_neg x, Real.exp_neg]
state_before: x✝ y x : ℝ
h : x ≤ 0
⊢ 0 < rexp x
state_after: x✝ y x : ℝ
h : x ≤ 0
⊢ 0 < (rexp (-x))⁻¹

tactic: exact inv_pos.2 (lt_of_lt_of_le zero_lt_one (one_le_exp (neg_nonneg.2 h)))
state_before: x✝ y x : ℝ
h : x ≤ 0
⊢ 0 < (rexp (-x))⁻¹
state_after: no goals
Theorem: PrimeSpectrum.zeroLocus_singleton_pow
File: Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean

tactic: simpa using x.2.pow_mem_iff_mem n hn
state_before: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
f : R
n : ℕ
hn : 0 < n
x : PrimeSpectrum R
⊢ x ∈ zeroLocus {f ^ n} ↔ x ∈ zeroLocus {f}
state_after: no goals
Theorem: Multiset.lt_cons_self
File: Mathlib/Data/Multiset/Basic.lean

tactic: simpa [lt_iff_le_and_ne]
state_before: α : Type u_1
β : Type v
γ : Type u_2
s✝ t : Multiset α
a✝ : α
s : Multiset α
a : α
l : List α
this : l <+~ a :: l ∧ ¬l ~ a :: l
⊢ Quot.mk Setoid.r l < a ::ₘ Quot.mk Setoid.r l
state_after: no goals
Theorem: Nat.le_mod_add_mod_of_dvd_add_of_not_dvd
File: Mathlib/Data/Nat/ModEq.lean

tactic: have : (a + b) % c = a % c + b % c := add_mod_of_add_mod_lt (lt_of_not_ge hc)
state_before: m n a✝ b✝ c✝ d a b c : ℕ
h : c ∣ a + b
ha : ¬c ∣ a
hc : ¬c ≤ a % c + b % c
⊢ False
state_after: m n a✝ b✝ c✝ d a b c : ℕ
h : c ∣ a + b
ha : ¬c ∣ a
hc : ¬c ≤ a % c + b % c
this : (a + b) % c = a % c + b % c
⊢ False

tactic: simp_all [dvd_iff_mod_eq_zero]
state_before: m n a✝ b✝ c✝ d a b c : ℕ
h : c ∣ a + b
ha : ¬c ∣ a
hc : ¬c ≤ a % c + b % c
this : (a + b) % c = a % c + b % c
⊢ False
state_after: no goals
Theorem: CategoryTheory.Limits.biprod.lift_mapBiprod
File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean

tactic: rw [← biprod.map_lift_mapBiprod, Category.assoc, Iso.hom_inv_id, Category.comp_id]
state_before: C : Type u₁
inst✝⁶ : Category.{v₁, u₁} C
D : Type u₂
inst✝⁵ : Category.{v₂, u₂} D
inst✝⁴ : HasZeroMorphisms C
inst✝³ : HasZeroMorphisms D
F : C ⥤ D
inst✝² : F.PreservesZeroMorphisms
X Y : C
inst✝¹ : HasBinaryBiproduct X Y
inst✝ : PreservesBinaryBiproduct X Y F
W : C
f : W ⟶ X
g : W ⟶ Y
⊢ lift (F.map f) (F.map g) ≫ (F.mapBiprod X Y).inv = F.map (lift f g)
state_after: no goals
Theorem: Disjoint.eq_iff
File: Mathlib/Order/Disjoint.lean

tactic: aesop
state_before: α : Type u_1
inst✝¹ : PartialOrder α
inst✝ : OrderBot α
a b c d : α
hab : Disjoint a b
⊢ a = b ↔ a = ⊥ ∧ b = ⊥
state_after: no goals
Theorem: HomologicalComplex.homologyι_comp_fromOpcycles
File: Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean

tactic: simp
state_before: C : Type u_1
inst✝² : Category.{u_3, u_1} C
inst✝¹ : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K L M : HomologicalComplex C c
φ : K ⟶ L
ψ : L ⟶ M
i j k : ι
inst✝ : K.HasHomology i
⊢ K.d i j = K.d i j ≫ 𝟙 (K.X j)
state_after: no goals
Theorem: LinearMap.toMatrix₂Aux_eq
File: Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean

tactic: rw [LinearMap.toMatrix₂_apply, LinearMap.toMatrix₂Aux_apply]
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
M : Type u_4
M₁ : Type u_5
M₂ : Type u_6
M₁' : Type u_7
M₂' : Type u_8
n : Type u_9
m : Type u_10
n' : Type u_11
m' : Type u_12
ι : Type u_13
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₁
inst✝⁶ : Module R M₁
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
inst✝³ : DecidableEq n
inst✝² : Fintype n
inst✝¹ : DecidableEq m
inst✝ : Fintype m
b₁ : Basis n R M₁
b₂ : Basis m R M₂
B : M₁ →ₗ[R] M₂ →ₗ[R] R
i : n
j : m
⊢ (toMatrix₂Aux ⇑b₁ ⇑b₂) B i j = (toMatrix₂ b₁ b₂) B i j
state_after: no goals
Theorem: Real.sqrt_sq_eq_abs
File: Mathlib/Data/Real/Sqrt.lean

tactic: rw [sq, sqrt_mul_self_eq_abs]
state_before: x✝ y x : ℝ
⊢ √(x ^ 2) = |x|
state_after: no goals
Theorem: ProjectiveSpectrum.basicOpen_one
File: Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean

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 𝒜
⊢ ↑(basicOpen 𝒜 1) = ↑⊤
state_after: no goals
Theorem: finprod_mem_eq_of_bijOn
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: rw [← Set.BijOn.image_eq he₀, finprod_mem_image he₀.2.1]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g✝ : α → M
a b : α
s✝ t✝ s : Set α
t : Set β
f : α → M
g : β → M
e : α → β
he₀ : BijOn e s t
he₁ : ∀ x ∈ s, f x = g (e x)
⊢ ∏ᶠ (i : α) (_ : i ∈ s), f i = ∏ᶠ (j : β) (_ : j ∈ t), g j
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g✝ : α → M
a b : α
s✝ t✝ s : Set α
t : Set β
f : α → M
g : β → M
e : α → β
he₀ : BijOn e s t
he₁ : ∀ x ∈ s, f x = g (e x)
⊢ ∏ᶠ (i : α) (_ : i ∈ s), f i = ∏ᶠ (j : α) (_ : j ∈ s), g (e j)

tactic: exact finprod_mem_congr rfl he₁
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g✝ : α → M
a b : α
s✝ t✝ s : Set α
t : Set β
f : α → M
g : β → M
e : α → β
he₀ : BijOn e s t
he₁ : ∀ x ∈ s, f x = g (e x)
⊢ ∏ᶠ (i : α) (_ : i ∈ s), f i = ∏ᶠ (j : α) (_ : j ∈ s), g (e j)
state_after: no goals
Theorem: essSup_smul_measure
File: Mathlib/MeasureTheory/Function/EssSup.lean

tactic: simp_rw [essSup]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
f : α → β
c : ℝ≥0∞
hc : c ≠ 0
⊢ essSup f (c • μ) = essSup f μ
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
f : α → β
c : ℝ≥0∞
hc : c ≠ 0
⊢ limsup f (ae (c • μ)) = limsup f (ae μ)

tactic: suffices h_smul : ae (c • μ) = ae μ by rw [h_smul]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
f : α → β
c : ℝ≥0∞
hc : c ≠ 0
⊢ limsup f (ae (c • μ)) = limsup f (ae μ)
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
f : α → β
c : ℝ≥0∞
hc : c ≠ 0
⊢ ae (c • μ) = ae μ

tactic: ext1
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
f : α → β
c : ℝ≥0∞
hc : c ≠ 0
⊢ ae (c • μ) = ae μ
state_after: case a
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
f : α → β
c : ℝ≥0∞
hc : c ≠ 0
s✝ : Set α
⊢ s✝ ∈ ae (c • μ) ↔ s✝ ∈ ae μ

tactic: simp_rw [mem_ae_iff]
state_before: case a
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
f : α → β
c : ℝ≥0∞
hc : c ≠ 0
s✝ : Set α
⊢ s✝ ∈ ae (c • μ) ↔ s✝ ∈ ae μ
state_after: case a
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
f : α → β
c : ℝ≥0∞
hc : c ≠ 0
s✝ : Set α
⊢ (c • μ) s✝ᶜ = 0 ↔ μ s✝ᶜ = 0

tactic: simp [hc]
state_before: case a
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
f : α → β
c : ℝ≥0∞
hc : c ≠ 0
s✝ : Set α
⊢ (c • μ) s✝ᶜ = 0 ↔ μ s✝ᶜ = 0
state_after: no goals

tactic: rw [h_smul]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝ : CompleteLattice β
f : α → β
c : ℝ≥0∞
hc : c ≠ 0
h_smul : ae (c • μ) = ae μ
⊢ limsup f (ae (c • μ)) = limsup f (ae μ)
state_after: no goals
Theorem: Polynomial.aeval_eq_sum_range
File: Mathlib/Algebra/Polynomial/AlgebraMap.lean

tactic: simp_rw [Algebra.smul_def]
state_before: R : Type u
S : Type v
T : Type w
A : Type z
A' : Type u_1
B : Type u_2
a b : R
n : ℕ
inst✝⁸ : CommSemiring R
inst✝⁷ : Semiring A
inst✝⁶ : CommSemiring A'
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R A
inst✝³ : Algebra R A'
inst✝² : Algebra R B
p✝ q : R[X]
x✝ : A
inst✝¹ : Semiring S
f : R →+* S
inst✝ : Algebra R S
p : R[X]
x : S
⊢ (aeval x) p = ∑ i ∈ range (p.natDegree + 1), p.coeff i • x ^ i
state_after: R : Type u
S : Type v
T : Type w
A : Type z
A' : Type u_1
B : Type u_2
a b : R
n : ℕ
inst✝⁸ : CommSemiring R
inst✝⁷ : Semiring A
inst✝⁶ : CommSemiring A'
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R A
inst✝³ : Algebra R A'
inst✝² : Algebra R B
p✝ q : R[X]
x✝ : A
inst✝¹ : Semiring S
f : R →+* S
inst✝ : Algebra R S
p : R[X]
x : S
⊢ (aeval x) p = ∑ x_1 ∈ range (p.natDegree + 1), (algebraMap R S) (p.coeff x_1) * x ^ x_1

tactic: exact eval₂_eq_sum_range (algebraMap R S) x
state_before: R : Type u
S : Type v
T : Type w
A : Type z
A' : Type u_1
B : Type u_2
a b : R
n : ℕ
inst✝⁸ : CommSemiring R
inst✝⁷ : Semiring A
inst✝⁶ : CommSemiring A'
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R A
inst✝³ : Algebra R A'
inst✝² : Algebra R B
p✝ q : R[X]
x✝ : A
inst✝¹ : Semiring S
f : R →+* S
inst✝ : Algebra R S
p : R[X]
x : S
⊢ (aeval x) p = ∑ x_1 ∈ range (p.natDegree + 1), (algebraMap R S) (p.coeff x_1) * x ^ x_1
state_after: no goals
Theorem: Ideal.map_snd_prod
File: Mathlib/RingTheory/Ideal/Prod.lean

tactic: ext x
state_before: R : Type u
S : Type v
inst✝¹ : Semiring R
inst✝ : Semiring S
I✝ I' : Ideal R
J✝ J' : Ideal S
I : Ideal R
J : Ideal S
⊢ map (RingHom.snd R S) (I.prod J) = J
state_after: case h
R : Type u
S : Type v
inst✝¹ : Semiring R
inst✝ : Semiring S
I✝ I' : Ideal R
J✝ J' : Ideal S
I : Ideal R
J : Ideal S
x : S
⊢ x ∈ map (RingHom.snd R S) (I.prod J) ↔ x ∈ J

tactic: rw [mem_map_iff_of_surjective (RingHom.snd R S) Prod.snd_surjective]
state_before: case h
R : Type u
S : Type v
inst✝¹ : Semiring R
inst✝ : Semiring S
I✝ I' : Ideal R
J✝ J' : Ideal S
I : Ideal R
J : Ideal S
x : S
⊢ x ∈ map (RingHom.snd R S) (I.prod J) ↔ x ∈ J
state_after: case h
R : Type u
S : Type v
inst✝¹ : Semiring R
inst✝ : Semiring S
I✝ I' : Ideal R
J✝ J' : Ideal S
I : Ideal R
J : Ideal S
x : S
⊢ (∃ x_1 ∈ I.prod J, (RingHom.snd R S) x_1 = x) ↔ x ∈ J

tactic: exact
  ⟨by
    rintro ⟨x, ⟨h, rfl⟩⟩
    exact h.2, fun h => ⟨⟨0, x⟩, ⟨⟨Ideal.zero_mem _, h⟩, rfl⟩⟩⟩
state_before: case h
R : Type u
S : Type v
inst✝¹ : Semiring R
inst✝ : Semiring S
I✝ I' : Ideal R
J✝ J' : Ideal S
I : Ideal R
J : Ideal S
x : S
⊢ (∃ x_1 ∈ I.prod J, (RingHom.snd R S) x_1 = x) ↔ x ∈ J
state_after: no goals

tactic: rintro ⟨x, ⟨h, rfl⟩⟩
state_before: R : Type u
S : Type v
inst✝¹ : Semiring R
inst✝ : Semiring S
I✝ I' : Ideal R
J✝ J' : Ideal S
I : Ideal R
J : Ideal S
x : S
⊢ (∃ x_1 ∈ I.prod J, (RingHom.snd R S) x_1 = x) → x ∈ J
state_after: case intro.intro
R : Type u
S : Type v
inst✝¹ : Semiring R
inst✝ : Semiring S
I✝ I' : Ideal R
J✝ J' : Ideal S
I : Ideal R
J : Ideal S
x : R × S
h : x ∈ I.prod J
⊢ (RingHom.snd R S) x ∈ J

tactic: exact h.2
state_before: case intro.intro
R : Type u
S : Type v
inst✝¹ : Semiring R
inst✝ : Semiring S
I✝ I' : Ideal R
J✝ J' : Ideal S
I : Ideal R
J : Ideal S
x : R × S
h : x ∈ I.prod J
⊢ (RingHom.snd R S) x ∈ J
state_after: no goals