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

tactic: simp only [← ENNReal.coe_inj, BoundedContinuousFunction.coe_add, ENNReal.coe_add, Pi.add_apply,
  testAgainstNN_coe_eq]
state_before: Ω : Type u_1
inst✝⁶ : MeasurableSpace Ω
R : Type u_2
inst✝⁵ : SMul R ℝ≥0
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
f₁ f₂ : Ω →ᵇ ℝ≥0
⊢ μ.testAgainstNN (f₁ + f₂) = μ.testAgainstNN f₁ + μ.testAgainstNN f₂
state_after: Ω : Type u_1
inst✝⁶ : MeasurableSpace Ω
R : Type u_2
inst✝⁵ : SMul R ℝ≥0
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
f₁ f₂ : Ω →ᵇ ℝ≥0
⊢ ∫⁻ (ω : Ω), ↑(f₁ ω) + ↑(f₂ ω) ∂↑μ = ∫⁻ (ω : Ω), ↑(f₁ ω) ∂↑μ + ∫⁻ (ω : Ω), ↑(f₂ ω) ∂↑μ

tactic: exact lintegral_add_left (BoundedContinuousFunction.measurable_coe_ennreal_comp _) _
state_before: Ω : Type u_1
inst✝⁶ : MeasurableSpace Ω
R : Type u_2
inst✝⁵ : SMul R ℝ≥0
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
f₁ f₂ : Ω →ᵇ ℝ≥0
⊢ ∫⁻ (ω : Ω), ↑(f₁ ω) + ↑(f₂ ω) ∂↑μ = ∫⁻ (ω : Ω), ↑(f₁ ω) ∂↑μ + ∫⁻ (ω : Ω), ↑(f₂ ω) ∂↑μ
state_after: no goals
Theorem: ZMod.val_unit'
File: Mathlib/Data/ZMod/Basic.lean

tactic: simp only [val]
state_before: n : ZMod 0
⊢ IsUnit n ↔ n.val = 1
state_after: n : ZMod 0
⊢ IsUnit n ↔ Int.natAbs n = 1

tactic: rw [Int.isUnit_iff, Int.natAbs_eq_iff, Nat.cast_one]
state_before: n : ZMod 0
⊢ IsUnit n ↔ Int.natAbs n = 1
state_after: no goals
Theorem: Ordinal.toPGame_lf_iff
File: Mathlib/SetTheory/Game/Ordinal.lean

tactic: contrapose
state_before: a b : Ordinal.{u_1}
⊢ a.toPGame ⧏ b.toPGame → a < b
state_after: a b : Ordinal.{u_1}
⊢ ¬a < b → ¬a.toPGame ⧏ b.toPGame

tactic: rw [not_lt, not_lf]
state_before: a b : Ordinal.{u_1}
⊢ ¬a < b → ¬a.toPGame ⧏ b.toPGame
state_after: a b : Ordinal.{u_1}
⊢ b ≤ a → b.toPGame ≤ a.toPGame

tactic: exact toPGame_le
state_before: a b : Ordinal.{u_1}
⊢ b ≤ a → b.toPGame ≤ a.toPGame
state_after: no goals
Theorem: Finset.fold_min_le
File: Mathlib/Data/Finset/Fold.lean

tactic: show _ ≥ _ ↔ _
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : LinearOrder β
c : β
⊢ fold min b f s ≤ c ↔ b ≤ c ∨ ∃ x ∈ s, f x ≤ c
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : LinearOrder β
c : β
⊢ c ≥ fold min b f s ↔ b ≤ c ∨ ∃ x ∈ s, f x ≤ c

tactic: apply fold_op_rel_iff_or
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : LinearOrder β
c : β
⊢ c ≥ fold min b f s ↔ b ≤ c ∨ ∃ x ∈ s, f x ≤ c
state_after: case hr
α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : LinearOrder β
c : β
⊢ ∀ {x y z : β}, x ≥ min y z ↔ x ≥ y ∨ x ≥ z

tactic: intro x y z
state_before: case hr
α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : LinearOrder β
c : β
⊢ ∀ {x y z : β}, x ≥ min y z ↔ x ≥ y ∨ x ≥ z
state_after: case hr
α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : LinearOrder β
c x y z : β
⊢ x ≥ min y z ↔ x ≥ y ∨ x ≥ z

tactic: show _ ≤ _ ↔ _
state_before: case hr
α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : LinearOrder β
c x y z : β
⊢ x ≥ min y z ↔ x ≥ y ∨ x ≥ z
state_after: case hr
α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : LinearOrder β
c x y z : β
⊢ min y z ≤ x ↔ x ≥ y ∨ x ≥ z

tactic: exact min_le_iff
state_before: case hr
α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : LinearOrder β
c x y z : β
⊢ min y z ≤ x ↔ x ≥ y ∨ x ≥ z
state_after: no goals
Theorem: LinearMap.toMatrix'_algebraMap
File: Mathlib/LinearAlgebra/Matrix/ToLin.lean

tactic: simp [Module.algebraMap_end_eq_smul_id, smul_eq_diagonal_mul]
state_before: R : Type u_1
inst✝² : CommSemiring R
k : Type u_2
l : Type u_3
m : Type u_4
n : Type u_5
inst✝¹ : DecidableEq n
inst✝ : Fintype n
x : R
⊢ toMatrix' ((algebraMap R (Module.End R (n → R))) x) = (scalar n) x
state_after: no goals
Theorem: neg_div_self
File: Mathlib/Algebra/Field/Basic.lean

tactic: rw [neg_div, div_self h]
state_before: α : Type u_1
β : Type u_2
K : Type u_3
inst✝ : DivisionRing K
a✝ b c d a : K
h : a ≠ 0
⊢ -a / a = -1
state_after: no goals
Theorem: Set.Countable.biUnion_iff
File: Mathlib/Data/Set/Countable.lean

tactic: have := hs.to_subtype
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
s : Set α
t : (a : α) → a ∈ s → Set β
hs : s.Countable
⊢ (⋃ a, ⋃ (h : a ∈ s), t a h).Countable ↔ ∀ (a : α) (ha : a ∈ s), (t a ha).Countable
state_after: α : Type u
β : Type v
γ : Type w
ι : Sort x
s : Set α
t : (a : α) → a ∈ s → Set β
hs : s.Countable
this : Countable ↑s
⊢ (⋃ a, ⋃ (h : a ∈ s), t a h).Countable ↔ ∀ (a : α) (ha : a ∈ s), (t a ha).Countable

tactic: rw [biUnion_eq_iUnion, countable_iUnion_iff, SetCoe.forall']
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
s : Set α
t : (a : α) → a ∈ s → Set β
hs : s.Countable
this : Countable ↑s
⊢ (⋃ a, ⋃ (h : a ∈ s), t a h).Countable ↔ ∀ (a : α) (ha : a ∈ s), (t a ha).Countable
state_after: no goals
Theorem: DirectSum.IsInternal.collectedBasis_mem
File: Mathlib/Algebra/DirectSum/Module.lean

tactic: simp
state_before: R : Type u
inst✝² : Semiring R
ι : Type v
dec_ι : DecidableEq ι
M : Type u_1
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
A : ι → Submodule R M
h : IsInternal A
α : ι → Type u_2
v : (i : ι) → Basis (α i) R ↥(A i)
a : (i : ι) × α i
⊢ (h.collectedBasis v) a ∈ A a.fst
state_after: no goals
Theorem: CategoryTheory.ComposableArrows.mk₄_surjective
File: Mathlib/CategoryTheory/ComposableArrows.lean

tactic: simp
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
n m : ℕ
F G : ComposableArrows C n
X : ComposableArrows C 4
⊢ X.map' 0 1 ⋯ ⋯ =
    eqToHom ⋯ ≫ (mk₄ (X.map' 0 1 ⋯ ⋯) (X.map' 1 2 ⋯ ⋯) (X.map' 2 3 ⋯ ⋯) (X.map' 3 4 ⋯ ⋯)).map' 0 1 ⋯ ⋯ ≫ eqToHom ⋯
state_after: no goals

tactic: simp
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
n m : ℕ
F G : ComposableArrows C n
X : ComposableArrows C 4
⊢ X.map' 1 2 ⋯ ⋯ =
    eqToHom ⋯ ≫ (mk₄ (X.map' 0 1 ⋯ ⋯) (X.map' 1 2 ⋯ ⋯) (X.map' 2 3 ⋯ ⋯) (X.map' 3 4 ⋯ ⋯)).map' 1 2 ⋯ ⋯ ≫ eqToHom ⋯
state_after: no goals

tactic: simp
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
n m : ℕ
F G : ComposableArrows C n
X : ComposableArrows C 4
⊢ X.map' 2 3 ⋯ ⋯ =
    eqToHom ⋯ ≫ (mk₄ (X.map' 0 1 ⋯ ⋯) (X.map' 1 2 ⋯ ⋯) (X.map' 2 3 ⋯ ⋯) (X.map' 3 4 ⋯ ⋯)).map' 2 3 ⋯ ⋯ ≫ eqToHom ⋯
state_after: no goals

tactic: simp
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
n m : ℕ
F G : ComposableArrows C n
X : ComposableArrows C 4
⊢ X.map' 3 4 ⋯ ⋯ =
    eqToHom ⋯ ≫ (mk₄ (X.map' 0 1 ⋯ ⋯) (X.map' 1 2 ⋯ ⋯) (X.map' 2 3 ⋯ ⋯) (X.map' 3 4 ⋯ ⋯)).map' 3 4 ⋯ ⋯ ≫ eqToHom ⋯
state_after: no goals
Theorem: WeakBilin.tendsto_iff_forall_eval_tendsto
File: Mathlib/Topology/Algebra/Module/WeakDual.lean

tactic: rw [← tendsto_pi_nhds, Embedding.tendsto_nhds_iff (embedding hB)]
state_before: α : Type u_1
𝕜 : Type u_2
𝕝 : Type u_3
R : Type u_4
E : Type u_5
F : Type u_6
M : Type u_7
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : CommSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommMonoid F
inst✝ : Module 𝕜 F
B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
l : Filter α
f : α → WeakBilin B
x : WeakBilin B
hB : Function.Injective ⇑B
⊢ Tendsto f l (𝓝 x) ↔ ∀ (y : F), Tendsto (fun i => (B (f i)) y) l (𝓝 ((B x) y))
state_after: α : Type u_1
𝕜 : Type u_2
𝕝 : Type u_3
R : Type u_4
E : Type u_5
F : Type u_6
M : Type u_7
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : CommSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommMonoid F
inst✝ : Module 𝕜 F
B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
l : Filter α
f : α → WeakBilin B
x : WeakBilin B
hB : Function.Injective ⇑B
⊢ Tendsto ((fun x y => (B x) y) ∘ f) l (𝓝 fun y => (B x) y) ↔ Tendsto (fun i => ⇑(B (f i))) l (𝓝 ⇑(B x))

tactic: rfl
state_before: α : Type u_1
𝕜 : Type u_2
𝕝 : Type u_3
R : Type u_4
E : Type u_5
F : Type u_6
M : Type u_7
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : CommSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommMonoid F
inst✝ : Module 𝕜 F
B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
l : Filter α
f : α → WeakBilin B
x : WeakBilin B
hB : Function.Injective ⇑B
⊢ Tendsto ((fun x y => (B x) y) ∘ f) l (𝓝 fun y => (B x) y) ↔ Tendsto (fun i => ⇑(B (f i))) l (𝓝 ⇑(B x))
state_after: no goals
Theorem: one_lt_inv
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rwa [lt_inv (@zero_lt_one α _ _ _ _ _) h₁, inv_one]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
h₁ : 0 < a
h₂ : a < 1
⊢ 1 < a⁻¹
state_after: no goals
Theorem: Matrix.blockDiagonal'_one
File: Mathlib/Data/Matrix/Block.lean

tactic: rw [blockDiagonal'_diagonal]
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
inst✝⁴ : DecidableEq o
inst✝³ : Zero α
inst✝² : Zero β
inst✝¹ : (i : o) → DecidableEq (m' i)
inst✝ : One α
⊢ (blockDiagonal' fun i => diagonal fun x => 1) = diagonal fun x => 1
state_after: no goals
Theorem: MvPolynomial.totalDegree_multiset_prod
File: Mathlib/Algebra/MvPolynomial/Degrees.lean

tactic: refine Quotient.inductionOn s fun l => ?_
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s : Multiset (MvPolynomial σ R)
⊢ s.prod.totalDegree ≤ (Multiset.map totalDegree s).sum
state_after: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s : Multiset (MvPolynomial σ R)
l : List (MvPolynomial σ R)
⊢ (Multiset.prod ⟦l⟧).totalDegree ≤ (Multiset.map totalDegree ⟦l⟧).sum

tactic: rw [Multiset.quot_mk_to_coe, Multiset.prod_coe, Multiset.map_coe, Multiset.sum_coe]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s : Multiset (MvPolynomial σ R)
l : List (MvPolynomial σ R)
⊢ (Multiset.prod ⟦l⟧).totalDegree ≤ (Multiset.map totalDegree ⟦l⟧).sum
state_after: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s : Multiset (MvPolynomial σ R)
l : List (MvPolynomial σ R)
⊢ l.prod.totalDegree ≤ (List.map totalDegree l).sum

tactic: exact totalDegree_list_prod l
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s : Multiset (MvPolynomial σ R)
l : List (MvPolynomial σ R)
⊢ l.prod.totalDegree ≤ (List.map totalDegree l).sum
state_after: no goals
Theorem: comap_uniformity_of_spaced_out
File: Mathlib/Topology/UniformSpace/UniformEmbedding.lean

tactic: refine le_antisymm ?_ (@refl_le_uniformity α (UniformSpace.comap f _))
state_before: α✝ : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α✝
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
α : Type u_1
f : α → β
s : Set (β × β)
hs : s ∈ 𝓤 β
hf : Pairwise fun x y => (f x, f y) ∉ s
⊢ comap (Prod.map f f) (𝓤 β) = 𝓟 idRel
state_after: α✝ : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α✝
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
α : Type u_1
f : α → β
s : Set (β × β)
hs : s ∈ 𝓤 β
hf : Pairwise fun x y => (f x, f y) ∉ s
⊢ comap (Prod.map f f) (𝓤 β) ≤ 𝓟 idRel

tactic: calc
  comap (Prod.map f f) (𝓤 β) ≤ comap (Prod.map f f) (𝓟 s) := comap_mono (le_principal_iff.2 hs)
  _ = 𝓟 (Prod.map f f ⁻¹' s) := comap_principal
  _ ≤ 𝓟 idRel := principal_mono.2 ?_
state_before: α✝ : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α✝
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
α : Type u_1
f : α → β
s : Set (β × β)
hs : s ∈ 𝓤 β
hf : Pairwise fun x y => (f x, f y) ∉ s
⊢ comap (Prod.map f f) (𝓤 β) ≤ 𝓟 idRel
state_after: α✝ : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α✝
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
α : Type u_1
f : α → β
s : Set (β × β)
hs : s ∈ 𝓤 β
hf : Pairwise fun x y => (f x, f y) ∉ s
⊢ Prod.map f f ⁻¹' s ⊆ idRel

tactic: rintro ⟨x, y⟩
state_before: α✝ : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α✝
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
α : Type u_1
f : α → β
s : Set (β × β)
hs : s ∈ 𝓤 β
hf : Pairwise fun x y => (f x, f y) ∉ s
⊢ Prod.map f f ⁻¹' s ⊆ idRel
state_after: case mk
α✝ : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α✝
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
α : Type u_1
f : α → β
s : Set (β × β)
hs : s ∈ 𝓤 β
hf : Pairwise fun x y => (f x, f y) ∉ s
x y : α
⊢ (x, y) ∈ Prod.map f f ⁻¹' s → (x, y) ∈ idRel

tactic: simpa [not_imp_not] using @hf x y
state_before: case mk
α✝ : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α✝
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
α : Type u_1
f : α → β
s : Set (β × β)
hs : s ∈ 𝓤 β
hf : Pairwise fun x y => (f x, f y) ∉ s
x y : α
⊢ (x, y) ∈ Prod.map f f ⁻¹' s → (x, y) ∈ idRel
state_after: no goals
Theorem: PowerSeries.derivativeFun_coe_mul_coe
File: Mathlib/RingTheory/PowerSeries/Derivative.lean

tactic: rw [← coe_mul, derivativeFun_coe, derivative_mul,
  add_comm, mul_comm _ g, ← coe_mul, ← coe_mul, Polynomial.coe_add]
state_before: R : Type u_1
inst✝ : CommSemiring R
f g : R[X]
⊢ (↑f * ↑g).derivativeFun = ↑f * ↑(derivative g) + ↑g * ↑(derivative f)
state_after: no goals
Theorem: Finset.prod_subtype_map_embedding
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: rw [Finset.prod_map]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g✝ : α → β
inst✝ : CommMonoid β
p : α → Prop
s : Finset { x // p x }
f : { x // p x } → β
g : α → β
h : ∀ x ∈ s, g ↑x = f x
⊢ ∏ x ∈ map (Embedding.subtype fun x => p x) s, g x = ∏ x ∈ s, f x
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g✝ : α → β
inst✝ : CommMonoid β
p : α → Prop
s : Finset { x // p x }
f : { x // p x } → β
g : α → β
h : ∀ x ∈ s, g ↑x = f x
⊢ ∏ x ∈ s, g ((Embedding.subtype fun x => p x) x) = ∏ x ∈ s, f x

tactic: exact Finset.prod_congr rfl h
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g✝ : α → β
inst✝ : CommMonoid β
p : α → Prop
s : Finset { x // p x }
f : { x // p x } → β
g : α → β
h : ∀ x ∈ s, g ↑x = f x
⊢ ∏ x ∈ s, g ((Embedding.subtype fun x => p x) x) = ∏ x ∈ s, f x
state_after: no goals
Theorem: CategoryTheory.ShortComplex.exact_of_f_is_kernel
File: Mathlib/Algebra/Homology/ShortComplex/Exact.lean

tactic: rw [exact_iff_epi_toCycles]
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.61126, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsLimit (KernelFork.ofι S.f ⋯)
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.61126, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsLimit (KernelFork.ofι S.f ⋯)
inst✝ : S.HasHomology
⊢ Epi S.toCycles

tactic: have : IsSplitEpi S.toCycles :=
  ⟨⟨{ section_ := hS.lift (KernelFork.ofι S.iCycles S.iCycles_g)
      id := by
        rw [← cancel_mono S.iCycles, assoc, toCycles_i, id_comp]
        exact Fork.IsLimit.lift_ι hS }⟩⟩
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.61126, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsLimit (KernelFork.ofι S.f ⋯)
inst✝ : S.HasHomology
⊢ Epi S.toCycles
state_after: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.61126, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsLimit (KernelFork.ofι S.f ⋯)
inst✝ : S.HasHomology
this : IsSplitEpi S.toCycles
⊢ Epi S.toCycles

tactic: infer_instance
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.61126, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsLimit (KernelFork.ofι S.f ⋯)
inst✝ : S.HasHomology
this : IsSplitEpi S.toCycles
⊢ Epi S.toCycles
state_after: no goals

tactic: rw [← cancel_mono S.iCycles, assoc, toCycles_i, id_comp]
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.61126, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsLimit (KernelFork.ofι S.f ⋯)
inst✝ : S.HasHomology
⊢ hS.lift (KernelFork.ofι S.iCycles ⋯) ≫ S.toCycles = 𝟙 S.cycles
state_after: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.61126, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsLimit (KernelFork.ofι S.f ⋯)
inst✝ : S.HasHomology
⊢ hS.lift (KernelFork.ofι S.iCycles ⋯) ≫ S.f = S.iCycles

tactic: exact Fork.IsLimit.lift_ι hS
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.61126, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
hS : IsLimit (KernelFork.ofι S.f ⋯)
inst✝ : S.HasHomology
⊢ hS.lift (KernelFork.ofι S.iCycles ⋯) ≫ S.f = S.iCycles
state_after: no goals
Theorem: HurwitzZeta.differentiableAt_expZeta
File: Mathlib/NumberTheory/LSeries/HurwitzZeta.lean

tactic: apply DifferentiableAt.add
state_before: a : UnitAddCircle
s : ℂ
hs : s ≠ 1 ∨ a ≠ 0
⊢ DifferentiableAt ℂ (expZeta a) s
state_after: case hf
a : UnitAddCircle
s : ℂ
hs : s ≠ 1 ∨ a ≠ 0
⊢ DifferentiableAt ℂ (cosZeta a) s

case hg
a : UnitAddCircle
s : ℂ
hs : s ≠ 1 ∨ a ≠ 0
⊢ DifferentiableAt ℂ (fun y => I * sinZeta a y) s

tactic: exact differentiableAt_cosZeta a hs
state_before: case hf
a : UnitAddCircle
s : ℂ
hs : s ≠ 1 ∨ a ≠ 0
⊢ DifferentiableAt ℂ (cosZeta a) s
state_after: no goals

tactic: apply (differentiableAt_const _).mul (differentiableAt_sinZeta a s)
state_before: case hg
a : UnitAddCircle
s : ℂ
hs : s ≠ 1 ∨ a ≠ 0
⊢ DifferentiableAt ℂ (fun y => I * sinZeta a y) s
state_after: no goals
Theorem: Real.Angle.two_nsmul_coe_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: rw [← coe_nsmul, two_nsmul, add_halves]
state_before: θ : ℝ
⊢ 2 • ↑(θ / 2) = ↑θ
state_after: no goals
Theorem: ProbabilityTheory.kernel.comap_id
File: Mathlib/Probability/Kernel/Composition.lean

tactic: ext a
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
δ : Type u_5
mγ : MeasurableSpace γ
mδ : MeasurableSpace δ
f : β → γ
g : γ → α
κ : ↥(kernel α β)
⊢ comap κ id ⋯ = κ
state_after: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
δ : Type u_5
mγ : MeasurableSpace γ
mδ : MeasurableSpace δ
f : β → γ
g : γ → α
κ : ↥(kernel α β)
a : α
s✝ : Set β
a✝ : MeasurableSet s✝
⊢ ((comap κ id ⋯) a) s✝ = (κ a) s✝

tactic: rw [comap_apply]
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
δ : Type u_5
mγ : MeasurableSpace γ
mδ : MeasurableSpace δ
f : β → γ
g : γ → α
κ : ↥(kernel α β)
a : α
s✝ : Set β
a✝ : MeasurableSet s✝
⊢ ((comap κ id ⋯) a) s✝ = (κ a) s✝
state_after: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
δ : Type u_5
mγ : MeasurableSpace γ
mδ : MeasurableSpace δ
f : β → γ
g : γ → α
κ : ↥(kernel α β)
a : α
s✝ : Set β
a✝ : MeasurableSet s✝
⊢ (κ (id a)) s✝ = (κ a) s✝

tactic: simp
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
δ : Type u_5
mγ : MeasurableSpace γ
mδ : MeasurableSpace δ
f : β → γ
g : γ → α
κ : ↥(kernel α β)
a : α
s✝ : Set β
a✝ : MeasurableSet s✝
⊢ (κ (id a)) s✝ = (κ a) s✝
state_after: no goals
Theorem: WeakDual.CharacterSpace.exists_apply_eq_zero
File: Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean

tactic: obtain ⟨M, hM, haM⟩ := (span {a}).exists_le_maximal (span_singleton_ne_top ha)
state_before: A : Type u_1
inst✝³ : NormedCommRing A
inst✝² : NormedAlgebra ℂ A
inst✝¹ : CompleteSpace A
I : Ideal A
inst✝ : I.IsMaximal
a : A
ha : ¬IsUnit a
⊢ ∃ f, f a = 0
state_after: case intro.intro
A : Type u_1
inst✝³ : NormedCommRing A
inst✝² : NormedAlgebra ℂ A
inst✝¹ : CompleteSpace A
I : Ideal A
inst✝ : I.IsMaximal
a : A
ha : ¬IsUnit a
M : Ideal A
hM : M.IsMaximal
haM : span {a} ≤ M
⊢ ∃ f, f a = 0

tactic: exact
  ⟨M.toCharacterSpace,
    M.toCharacterSpace_apply_eq_zero_of_mem
      (haM (mem_span_singleton.mpr ⟨1, (mul_one a).symm⟩))⟩
state_before: case intro.intro
A : Type u_1
inst✝³ : NormedCommRing A
inst✝² : NormedAlgebra ℂ A
inst✝¹ : CompleteSpace A
I : Ideal A
inst✝ : I.IsMaximal
a : A
ha : ¬IsUnit a
M : Ideal A
hM : M.IsMaximal
haM : span {a} ≤ M
⊢ ∃ f, f a = 0
state_after: no goals
Theorem: Complex.normSq_neg
File: Mathlib/Data/Complex/Basic.lean

tactic: simp [normSq]
state_before: z : ℂ
⊢ normSq (-z) = normSq z
state_after: no goals
Theorem: Real.arccos_lt_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: simp [arccos]
state_before: x✝ y x : ℝ
⊢ arccos x < π / 2 ↔ 0 < x
state_after: no goals
Theorem: MeasureTheory.Measure.mutuallySingular_singularPart
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: by_cases h : HaveLebesgueDecomposition μ ν
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
⊢ μ.singularPart ν ⟂ₘ ν
state_after: case pos
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
h : μ.HaveLebesgueDecomposition ν
⊢ μ.singularPart ν ⟂ₘ ν

case neg
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
h : ¬μ.HaveLebesgueDecomposition ν
⊢ μ.singularPart ν ⟂ₘ ν

tactic: exact (haveLebesgueDecomposition_spec μ ν).2.1
state_before: case pos
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
h : μ.HaveLebesgueDecomposition ν
⊢ μ.singularPart ν ⟂ₘ ν
state_after: no goals

tactic: rw [singularPart_of_not_haveLebesgueDecomposition h]
state_before: case neg
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
h : ¬μ.HaveLebesgueDecomposition ν
⊢ μ.singularPart ν ⟂ₘ ν
state_after: case neg
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
h : ¬μ.HaveLebesgueDecomposition ν
⊢ 0 ⟂ₘ ν

tactic: exact MutuallySingular.zero_left
state_before: case neg
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
h : ¬μ.HaveLebesgueDecomposition ν
⊢ 0 ⟂ₘ ν
state_after: no goals
Theorem: EuclideanDomain.xgcd_zero_left
File: Mathlib/Algebra/EuclideanDomain/Defs.lean

tactic: unfold xgcdAux
state_before: R : Type u
inst✝¹ : EuclideanDomain R
inst✝ : DecidableEq R
s t r' s' t' : R
⊢ xgcdAux 0 s t r' s' t' = (r', s', t')
state_after: R : Type u
inst✝¹ : EuclideanDomain R
inst✝ : DecidableEq R
s t r' s' t' : R
⊢ (if _hr : 0 = 0 then (r', s', t')
    else
      let q := r' / 0;
      let_fun x := ⋯;
      xgcdAux (r' % 0) (s' - q * s) (t' - q * t) 0 s t) =
    (r', s', t')

tactic: exact if_pos rfl
state_before: R : Type u
inst✝¹ : EuclideanDomain R
inst✝ : DecidableEq R
s t r' s' t' : R
⊢ (if _hr : 0 = 0 then (r', s', t')
    else
      let q := r' / 0;
      let_fun x := ⋯;
      xgcdAux (r' % 0) (s' - q * s) (t' - q * t) 0 s t) =
    (r', s', t')
state_after: no goals