1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Finset.univ_of_card_le_two
File: Mathlib/RingTheory/Fintype.lean

tactic: rcases subsingleton_or_nontrivial R
state_before: R : Type u_1
inst✝² : Ring R
inst✝¹ : Fintype R
inst✝ : DecidableEq R
h : Fintype.card R ≤ 2
⊢ univ = {0, 1}
state_after: case inl
R : Type u_1
inst✝² : Ring R
inst✝¹ : Fintype R
inst✝ : DecidableEq R
h : Fintype.card R ≤ 2
h✝ : Subsingleton R
⊢ univ = {0, 1}

case inr
R : Type u_1
inst✝² : Ring R
inst✝¹ : Fintype R
inst✝ : DecidableEq R
h : Fintype.card R ≤ 2
h✝ : Nontrivial R
⊢ univ = {0, 1}

tactic: exact le_antisymm (fun a _ ↦ by simp [Subsingleton.elim a 0]) (Finset.subset_univ _)
state_before: case inl
R : Type u_1
inst✝² : Ring R
inst✝¹ : Fintype R
inst✝ : DecidableEq R
h : Fintype.card R ≤ 2
h✝ : Subsingleton R
⊢ univ = {0, 1}
state_after: no goals

tactic: simp [Subsingleton.elim a 0]
state_before: R : Type u_1
inst✝² : Ring R
inst✝¹ : Fintype R
inst✝ : DecidableEq R
h : Fintype.card R ≤ 2
h✝ : Subsingleton R
a : R
x✝ : a ∈ univ
⊢ a ∈ {0, 1}
state_after: no goals

tactic: refine (eq_of_subset_of_card_le (subset_univ _) ?_).symm
state_before: case inr
R : Type u_1
inst✝² : Ring R
inst✝¹ : Fintype R
inst✝ : DecidableEq R
h : Fintype.card R ≤ 2
h✝ : Nontrivial R
⊢ univ = {0, 1}
state_after: case inr
R : Type u_1
inst✝² : Ring R
inst✝¹ : Fintype R
inst✝ : DecidableEq R
h : Fintype.card R ≤ 2
h✝ : Nontrivial R
⊢ univ.card ≤ {0, 1}.card

tactic: convert h
state_before: case inr
R : Type u_1
inst✝² : Ring R
inst✝¹ : Fintype R
inst✝ : DecidableEq R
h : Fintype.card R ≤ 2
h✝ : Nontrivial R
⊢ univ.card ≤ {0, 1}.card
state_after: case h.e'_4
R : Type u_1
inst✝² : Ring R
inst✝¹ : Fintype R
inst✝ : DecidableEq R
h : Fintype.card R ≤ 2
h✝ : Nontrivial R
⊢ {0, 1}.card = 2

tactic: simp
state_before: case h.e'_4
R : Type u_1
inst✝² : Ring R
inst✝¹ : Fintype R
inst✝ : DecidableEq R
h : Fintype.card R ≤ 2
h✝ : Nontrivial R
⊢ {0, 1}.card = 2
state_after: no goals
Theorem: UniformSpace.Completion.nnnorm_coe
File: Mathlib/Analysis/Normed/Group/Completion.lean

tactic: simp [nnnorm]
state_before: E✝ : Type u_1
E : Type u_2
inst✝ : SeminormedAddCommGroup E
x : E
⊢ ‖↑E x‖₊ = ‖x‖₊
state_after: no goals
Theorem: LinearMap.traceAux_eq
File: Mathlib/LinearAlgebra/Trace.lean

tactic: rw [LinearMap.id_comp, LinearMap.comp_id]
state_before: R : Type u
inst✝⁶ : CommSemiring R
M : Type v
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
ι : Type w
inst✝³ : DecidableEq ι
inst✝² : Fintype ι
κ : Type u_1
inst✝¹ : DecidableEq κ
inst✝ : Fintype κ
b : Basis ι R M
c : Basis κ R M
f : M →ₗ[R] M
⊢ ((toMatrix b b) f).trace = ((toMatrix b b) ((id ∘ₗ f) ∘ₗ id)).trace
state_after: no goals

tactic: rw [LinearMap.toMatrix_comp _ c, LinearMap.toMatrix_comp _ c]
state_before: R : Type u
inst✝⁶ : CommSemiring R
M : Type v
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
ι : Type w
inst✝³ : DecidableEq ι
inst✝² : Fintype ι
κ : Type u_1
inst✝¹ : DecidableEq κ
inst✝ : Fintype κ
b : Basis ι R M
c : Basis κ R M
f : M →ₗ[R] M
⊢ ((toMatrix b b) ((id ∘ₗ f) ∘ₗ id)).trace = ((toMatrix c b) id * (toMatrix c c) f * (toMatrix b c) id).trace
state_after: no goals

tactic: rw [Matrix.mul_assoc, Matrix.trace_mul_comm]
state_before: R : Type u
inst✝⁶ : CommSemiring R
M : Type v
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
ι : Type w
inst✝³ : DecidableEq ι
inst✝² : Fintype ι
κ : Type u_1
inst✝¹ : DecidableEq κ
inst✝ : Fintype κ
b : Basis ι R M
c : Basis κ R M
f : M →ₗ[R] M
⊢ ((toMatrix c b) id * (toMatrix c c) f * (toMatrix b c) id).trace =
    ((toMatrix c c) f * (toMatrix b c) id * (toMatrix c b) id).trace
state_after: no goals

tactic: rw [LinearMap.toMatrix_comp _ b, LinearMap.toMatrix_comp _ c]
state_before: R : Type u
inst✝⁶ : CommSemiring R
M : Type v
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
ι : Type w
inst✝³ : DecidableEq ι
inst✝² : Fintype ι
κ : Type u_1
inst✝¹ : DecidableEq κ
inst✝ : Fintype κ
b : Basis ι R M
c : Basis κ R M
f : M →ₗ[R] M
⊢ ((toMatrix c c) f * (toMatrix b c) id * (toMatrix c b) id).trace = ((toMatrix c c) ((f ∘ₗ id) ∘ₗ id)).trace
state_after: no goals

tactic: rw [LinearMap.comp_id, LinearMap.comp_id]
state_before: R : Type u
inst✝⁶ : CommSemiring R
M : Type v
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
ι : Type w
inst✝³ : DecidableEq ι
inst✝² : Fintype ι
κ : Type u_1
inst✝¹ : DecidableEq κ
inst✝ : Fintype κ
b : Basis ι R M
c : Basis κ R M
f : M →ₗ[R] M
⊢ ((toMatrix c c) ((f ∘ₗ id) ∘ₗ id)).trace = ((toMatrix c c) f).trace
state_after: no goals
Theorem: MvPowerSeries.mul_zero
File: Mathlib/RingTheory/MvPowerSeries/Basic.lean

tactic: classical simp [coeff_mul]
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n✝ : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
n : σ →₀ ℕ
⊢ (coeff R n) (φ * 0) = (coeff R n) 0
state_after: no goals

tactic: simp [coeff_mul]
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n✝ : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
n : σ →₀ ℕ
⊢ (coeff R n) (φ * 0) = (coeff R n) 0
state_after: no goals
Theorem: imageToKernel_comp_left
File: Mathlib/Algebra/Homology/ImageToKernel.lean

tactic: simp [w]
state_before: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
A B C : V
f : A ⟶ B
g : B ⟶ C
inst✝¹ : HasKernels V
inst✝ : HasImages V
Z : V
h : Z ⟶ A
w : f ≫ g = 0
⊢ (h ≫ f) ≫ g = 0
state_after: no goals

tactic: ext
state_before: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
A B C : V
f : A ⟶ B
g : B ⟶ C
inst✝¹ : HasKernels V
inst✝ : HasImages V
Z : V
h : Z ⟶ A
w : f ≫ g = 0
⊢ imageToKernel (h ≫ f) g ⋯ = (imageSubobject (h ≫ f)).ofLE (imageSubobject f) ⋯ ≫ imageToKernel f g w
state_after: case h
ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
A B C : V
f : A ⟶ B
g : B ⟶ C
inst✝¹ : HasKernels V
inst✝ : HasImages V
Z : V
h : Z ⟶ A
w : f ≫ g = 0
⊢ imageToKernel (h ≫ f) g ⋯ ≫ (kernelSubobject g).arrow =
    ((imageSubobject (h ≫ f)).ofLE (imageSubobject f) ⋯ ≫ imageToKernel f g w) ≫ (kernelSubobject g).arrow

tactic: simp
state_before: case h
ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
A B C : V
f : A ⟶ B
g : B ⟶ C
inst✝¹ : HasKernels V
inst✝ : HasImages V
Z : V
h : Z ⟶ A
w : f ≫ g = 0
⊢ imageToKernel (h ≫ f) g ⋯ ≫ (kernelSubobject g).arrow =
    ((imageSubobject (h ≫ f)).ofLE (imageSubobject f) ⋯ ≫ imageToKernel f g w) ≫ (kernelSubobject g).arrow
state_after: no goals
Theorem: ContinuousMapZero.toNNReal_add_add_neg_add_neg_eq
File: Mathlib/Topology/ContinuousFunction/UniqueCFC.lean

tactic: have : AddHomClass (C(X, ℝ≥0)₀ →⋆ₙₐ[ℝ≥0] C(X, ℝ≥0)) C(X, ℝ≥0)₀ C(X, ℝ≥0) :=
  SemilinearMapClass.toAddHomClass
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : Zero X
f g : C(X, ℝ)₀
⊢ (f + g).toNNReal + (-f).toNNReal + (-g).toNNReal = (-(f + g)).toNNReal + f.toNNReal + g.toNNReal
state_after: X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : Zero X
f g : C(X, ℝ)₀
this : AddHomClass (C(X, ℝ≥0)₀ →⋆ₙₐ[ℝ≥0] C(X, ℝ≥0)) C(X, ℝ≥0)₀ C(X, ℝ≥0)
⊢ (f + g).toNNReal + (-f).toNNReal + (-g).toNNReal = (-(f + g)).toNNReal + f.toNNReal + g.toNNReal

tactic: apply toContinuousMap_injective
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : Zero X
f g : C(X, ℝ)₀
this : AddHomClass (C(X, ℝ≥0)₀ →⋆ₙₐ[ℝ≥0] C(X, ℝ≥0)) C(X, ℝ≥0)₀ C(X, ℝ≥0)
⊢ (f + g).toNNReal + (-f).toNNReal + (-g).toNNReal = (-(f + g)).toNNReal + f.toNNReal + g.toNNReal
state_after: case a
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : Zero X
f g : C(X, ℝ)₀
this : AddHomClass (C(X, ℝ≥0)₀ →⋆ₙₐ[ℝ≥0] C(X, ℝ≥0)) C(X, ℝ≥0)₀ C(X, ℝ≥0)
⊢ ↑((f + g).toNNReal + (-f).toNNReal + (-g).toNNReal) = ↑((-(f + g)).toNNReal + f.toNNReal + g.toNNReal)

tactic: simpa only [← toContinuousMapHom_apply, map_add, map_mul, map_neg, toContinuousMapHom_toNNReal]
  using (f : C(X, ℝ)).toNNReal_add_add_neg_add_neg_eq g
state_before: case a
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : Zero X
f g : C(X, ℝ)₀
this : AddHomClass (C(X, ℝ≥0)₀ →⋆ₙₐ[ℝ≥0] C(X, ℝ≥0)) C(X, ℝ≥0)₀ C(X, ℝ≥0)
⊢ ↑((f + g).toNNReal + (-f).toNNReal + (-g).toNNReal) = ↑((-(f + g)).toNNReal + f.toNNReal + g.toNNReal)
state_after: no goals
Theorem: MeasureTheory.Integrable.norm_toL1
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simp only [toL1, Lp.norm_toLp, snorm, one_ne_zero, snorm', one_toReal, ENNReal.rpow_one, ne_eq,
  not_false_eq_true, div_self, ite_false]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
hf : Integrable f μ
⊢ ‖toL1 f hf‖ = (∫⁻ (a : α), edist (f a) 0 ∂μ).toReal
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
hf : Integrable f μ
⊢ (if 1 = ⊤ then snormEssSup f μ else ∫⁻ (a : α), ↑‖f a‖₊ ∂μ).toReal = (∫⁻ (a : α), edist (f a) 0 ∂μ).toReal

tactic: simp [edist_eq_coe_nnnorm]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
hf : Integrable f μ
⊢ (if 1 = ⊤ then snormEssSup f μ else ∫⁻ (a : α), ↑‖f a‖₊ ∂μ).toReal = (∫⁻ (a : α), edist (f a) 0 ∂μ).toReal
state_after: no goals
Theorem: SeparationQuotient.tendsto_lift₂_nhds
File: Mathlib/Topology/Inseparable.lean

tactic: rw [← map_prod_map_mk_nhds, tendsto_map'_iff]
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x✝ y✝ z : X
s : Set X
f✝ g : X → Y
t : Set (SeparationQuotient X)
f : X → Y → α
hf : ∀ (a : X) (b : Y) (c : X) (d : Y), (a ~ᵢ c) → (b ~ᵢ d) → f a b = f c d
x : X
y : Y
l : Filter α
⊢ Tendsto (uncurry (lift₂ f hf)) (𝓝 (mk x, mk y)) l ↔ Tendsto (uncurry f) (𝓝 (x, y)) l
state_after: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x✝ y✝ z : X
s : Set X
f✝ g : X → Y
t : Set (SeparationQuotient X)
f : X → Y → α
hf : ∀ (a : X) (b : Y) (c : X) (d : Y), (a ~ᵢ c) → (b ~ᵢ d) → f a b = f c d
x : X
y : Y
l : Filter α
⊢ Tendsto (uncurry (lift₂ f hf) ∘ Prod.map mk mk) (𝓝 (x, y)) l ↔ Tendsto (uncurry f) (𝓝 (x, y)) l

tactic: rfl
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x✝ y✝ z : X
s : Set X
f✝ g : X → Y
t : Set (SeparationQuotient X)
f : X → Y → α
hf : ∀ (a : X) (b : Y) (c : X) (d : Y), (a ~ᵢ c) → (b ~ᵢ d) → f a b = f c d
x : X
y : Y
l : Filter α
⊢ Tendsto (uncurry (lift₂ f hf) ∘ Prod.map mk mk) (𝓝 (x, y)) l ↔ Tendsto (uncurry f) (𝓝 (x, y)) l
state_after: no goals
Theorem: Stream'.tail_const
File: Mathlib/Data/Stream/Init.lean

tactic: rwa [← const_eq] at this
state_before: α : Type u
β : Type v
δ : Type w
a : α
this : (a :: const a).tail = const a
⊢ (const a).tail = const a
state_after: no goals
Theorem: Ordinal.typein_apply
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: rw [RelEmbedding.trans_apply]
state_before: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u_3
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≼i s
a : α
x✝ : ↑{b | r b a}
x : α
h : x ∈ {b | r b a}
⊢ ((Subrel.relEmbedding r {b | r b a}).trans f.toRelEmbedding) ⟨x, h⟩ ∈ {b | s b (f a)}
state_after: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u_3
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≼i s
a : α
x✝ : ↑{b | r b a}
x : α
h : x ∈ {b | r b a}
⊢ f.toRelEmbedding ((Subrel.relEmbedding r {b | r b a}) ⟨x, h⟩) ∈ {b | s b (f a)}

tactic: exact f.toRelEmbedding.map_rel_iff.2 h
state_before: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u_3
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≼i s
a : α
x✝ : ↑{b | r b a}
x : α
h : x ∈ {b | r b a}
⊢ f.toRelEmbedding ((Subrel.relEmbedding r {b | r b a}) ⟨x, h⟩) ∈ {b | s b (f a)}
state_after: no goals

tactic: rcases f.init h with ⟨a, rfl⟩
state_before: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u_3
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≼i s
a : α
x✝ : ↑{b | s b (f a)}
y : β
h : y ∈ {b | s b (f a)}
⊢ ∃ a_1,
    (RelEmbedding.codRestrict {b | s b (f a)} ((Subrel.relEmbedding r {b | r b a}).trans f.toRelEmbedding) ⋯) a_1 =
      ⟨y, h⟩
state_after: case intro
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u_3
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≼i s
a✝ : α
x✝ : ↑{b | s b (f a✝)}
a : α
h : f a ∈ {b | s b (f a✝)}
⊢ ∃ a_1,
    (RelEmbedding.codRestrict {b | s b (f a✝)} ((Subrel.relEmbedding r {b | r b a✝}).trans f.toRelEmbedding) ⋯) a_1 =
      ⟨f a, h⟩

tactic: exact ⟨⟨a, f.toRelEmbedding.map_rel_iff.1 h⟩,
  Subtype.eq <| RelEmbedding.trans_apply _ _ _⟩
state_before: case intro
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u_3
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≼i s
a✝ : α
x✝ : ↑{b | s b (f a✝)}
a : α
h : f a ∈ {b | s b (f a✝)}
⊢ ∃ a_1,
    (RelEmbedding.codRestrict {b | s b (f a✝)} ((Subrel.relEmbedding r {b | r b a✝}).trans f.toRelEmbedding) ⋯) a_1 =
      ⟨f a, h⟩
state_after: no goals
Theorem: Real.exp_one_lt_d9
File: Mathlib/Data/Complex/ExponentialBounds.lean

tactic: norm_num
state_before: ⊢ 1 / 10 ^ 10 + 2244083 / 825552 < 2.7182818286
state_after: no goals
Theorem: CategoryTheory.transferNatTrans_counit
File: Mathlib/CategoryTheory/Adjunction/Mates.lean

tactic: erw [Functor.map_comp]
state_before: C : Type u₁
D : Type u₂
inst✝³ : Category.{v₁, u₁} C
inst✝² : Category.{v₂, u₂} D
E : Type u₃
F : Type u₄
inst✝¹ : Category.{v₃, u₃} E
inst✝ : Category.{v₄, u₄} F
G : C ⥤ E
H : D ⥤ F
L₁ : C ⥤ D
R₁ : D ⥤ C
L₂ : E ⥤ F
R₂ : F ⥤ E
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
f : G ⋙ L₂ ⟶ L₁ ⋙ H
Y : D
⊢ L₂.map (((transferNatTrans adj₁ adj₂) f).app Y) ≫ adj₂.counit.app (H.obj Y) =
    f.app (R₁.obj Y) ≫ H.map (adj₁.counit.app Y)
state_after: C : Type u₁
D : Type u₂
inst✝³ : Category.{v₁, u₁} C
inst✝² : Category.{v₂, u₂} D
E : Type u₃
F : Type u₄
inst✝¹ : Category.{v₃, u₃} E
inst✝ : Category.{v₄, u₄} F
G : C ⥤ E
H : D ⥤ F
L₁ : C ⥤ D
R₁ : D ⥤ C
L₂ : E ⥤ F
R₂ : F ⥤ E
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
f : G ⋙ L₂ ⟶ L₁ ⋙ H
Y : D
⊢ (L₂.map (adj₂.unit.app (G.obj (R₁.obj Y))) ≫ L₂.map (R₂.map (f.app (R₁.obj Y) ≫ H.map (adj₁.counit.app Y)))) ≫
      adj₂.counit.app (H.obj Y) =
    f.app (R₁.obj Y) ≫ H.map (adj₁.counit.app Y)

tactic: simp
state_before: C : Type u₁
D : Type u₂
inst✝³ : Category.{v₁, u₁} C
inst✝² : Category.{v₂, u₂} D
E : Type u₃
F : Type u₄
inst✝¹ : Category.{v₃, u₃} E
inst✝ : Category.{v₄, u₄} F
G : C ⥤ E
H : D ⥤ F
L₁ : C ⥤ D
R₁ : D ⥤ C
L₂ : E ⥤ F
R₂ : F ⥤ E
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
f : G ⋙ L₂ ⟶ L₁ ⋙ H
Y : D
⊢ (L₂.map (adj₂.unit.app (G.obj (R₁.obj Y))) ≫ L₂.map (R₂.map (f.app (R₁.obj Y) ≫ H.map (adj₁.counit.app Y)))) ≫
      adj₂.counit.app (H.obj Y) =
    f.app (R₁.obj Y) ≫ H.map (adj₁.counit.app Y)
state_after: no goals
Theorem: Matrix.fromColumns_mul_fromBlocks
File: Mathlib/Data/Matrix/ColumnRowPartitioned.lean

tactic: ext _ (_ | _) <;> simp [mul_apply]
state_before: R : Type u_1
m : Type u_2
m₁ : Type u_3
m₂ : Type u_4
n : Type u_5
n₁ : Type u_6
n₂ : Type u_7
inst✝¹² : Fintype m
inst✝¹¹ : Fintype m₁
inst✝¹⁰ : Fintype m₂
inst✝⁹ : Fintype n
inst✝⁸ : Fintype n₁
inst✝⁷ : Fintype n₂
inst✝⁶ : DecidableEq m
inst✝⁵ : DecidableEq m₁
inst✝⁴ : DecidableEq m₂
inst✝³ : DecidableEq n
inst✝² : DecidableEq n₁
inst✝¹ : DecidableEq n₂
inst✝ : Semiring R
A₁ : Matrix m m₁ R
A₂ : Matrix m m₂ R
B₁₁ : Matrix m₁ n₁ R
B₁₂ : Matrix m₁ n₂ R
B₂₁ : Matrix m₂ n₁ R
B₂₂ : Matrix m₂ n₂ R
⊢ A₁.fromColumns A₂ * fromBlocks B₁₁ B₁₂ B₂₁ B₂₂ = (A₁ * B₁₁ + A₂ * B₂₁).fromColumns (A₁ * B₁₂ + A₂ * B₂₂)
state_after: no goals
Theorem: NumberField.InfinitePlace.mem_stabilizer_mk_iff
File: Mathlib/NumberTheory/NumberField/Embeddings.lean

tactic: simp only [MulAction.mem_stabilizer_iff, smul_mk, mk_eq_iff]
state_before: k : Type u_1
inst✝⁷ : Field k
K : Type u_2
inst✝⁶ : Field K
F : Type u_3
inst✝⁵ : Field F
inst✝⁴ : NumberField K
inst✝³ : Algebra k K
inst✝² : Algebra k F
inst✝¹ : Algebra K F
inst✝ : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w : InfinitePlace K
φ : K →+* ℂ
σ : K ≃ₐ[k] K
⊢ σ ∈ Stab (mk φ) ↔ σ = 1 ∨ ComplexEmbedding.IsConj φ σ
state_after: k : Type u_1
inst✝⁷ : Field k
K : Type u_2
inst✝⁶ : Field K
F : Type u_3
inst✝⁵ : Field F
inst✝⁴ : NumberField K
inst✝³ : Algebra k K
inst✝² : Algebra k F
inst✝¹ : Algebra K F
inst✝ : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w : InfinitePlace K
φ : K →+* ℂ
σ : K ≃ₐ[k] K
⊢ φ.comp ↑σ.symm = φ ∨ ComplexEmbedding.conjugate (φ.comp ↑σ.symm) = φ ↔ σ = 1 ∨ ComplexEmbedding.IsConj φ σ

tactic: rw [← ComplexEmbedding.isConj_symm, ComplexEmbedding.conjugate, star_eq_iff_star_eq]
state_before: k : Type u_1
inst✝⁷ : Field k
K : Type u_2
inst✝⁶ : Field K
F : Type u_3
inst✝⁵ : Field F
inst✝⁴ : NumberField K
inst✝³ : Algebra k K
inst✝² : Algebra k F
inst✝¹ : Algebra K F
inst✝ : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w : InfinitePlace K
φ : K →+* ℂ
σ : K ≃ₐ[k] K
⊢ φ.comp ↑σ.symm = φ ∨ ComplexEmbedding.conjugate (φ.comp ↑σ.symm) = φ ↔ σ = 1 ∨ ComplexEmbedding.IsConj φ σ
state_after: k : Type u_1
inst✝⁷ : Field k
K : Type u_2
inst✝⁶ : Field K
F : Type u_3
inst✝⁵ : Field F
inst✝⁴ : NumberField K
inst✝³ : Algebra k K
inst✝² : Algebra k F
inst✝¹ : Algebra K F
inst✝ : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w : InfinitePlace K
φ : K →+* ℂ
σ : K ≃ₐ[k] K
⊢ φ.comp ↑σ.symm = φ ∨ star φ = φ.comp ↑σ.symm ↔ σ = 1 ∨ ComplexEmbedding.IsConj φ σ.symm

tactic: refine or_congr ⟨fun H ↦ ?_, fun H ↦ H ▸ rfl⟩ Iff.rfl
state_before: k : Type u_1
inst✝⁷ : Field k
K : Type u_2
inst✝⁶ : Field K
F : Type u_3
inst✝⁵ : Field F
inst✝⁴ : NumberField K
inst✝³ : Algebra k K
inst✝² : Algebra k F
inst✝¹ : Algebra K F
inst✝ : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w : InfinitePlace K
φ : K →+* ℂ
σ : K ≃ₐ[k] K
⊢ φ.comp ↑σ.symm = φ ∨ star φ = φ.comp ↑σ.symm ↔ σ = 1 ∨ ComplexEmbedding.IsConj φ σ.symm
state_after: k : Type u_1
inst✝⁷ : Field k
K : Type u_2
inst✝⁶ : Field K
F : Type u_3
inst✝⁵ : Field F
inst✝⁴ : NumberField K
inst✝³ : Algebra k K
inst✝² : Algebra k F
inst✝¹ : Algebra K F
inst✝ : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w : InfinitePlace K
φ : K →+* ℂ
σ : K ≃ₐ[k] K
H : φ.comp ↑σ.symm = φ
⊢ σ = 1

tactic: exact congr_arg AlgEquiv.symm
  (AlgEquiv.ext (g := AlgEquiv.refl) fun x ↦ φ.injective (RingHom.congr_fun H x))
state_before: k : Type u_1
inst✝⁷ : Field k
K : Type u_2
inst✝⁶ : Field K
F : Type u_3
inst✝⁵ : Field F
inst✝⁴ : NumberField K
inst✝³ : Algebra k K
inst✝² : Algebra k F
inst✝¹ : Algebra K F
inst✝ : IsScalarTower k K F
σ✝ : K ≃ₐ[k] K
w : InfinitePlace K
φ : K →+* ℂ
σ : K ≃ₐ[k] K
H : φ.comp ↑σ.symm = φ
⊢ σ = 1
state_after: no goals
Theorem: CategoryTheory.MonoidalClosed.pre_comm_ihom_map
File: Mathlib/CategoryTheory/Closed/Monoidal.lean

tactic: simp
state_before: C : Type u
inst✝⁵ : Category.{v, u} C
inst✝⁴ : MonoidalCategory C
A B X✝ X' Y✝ Y' Z✝ : C
inst✝³ : Closed A
inst✝² : Closed B
W X Y Z : C
inst✝¹ : Closed W
inst✝ : Closed X
f : W ⟶ X
g : Y ⟶ Z
⊢ (pre f).app Y ≫ (ihom W).map g = (ihom X).map g ≫ (pre f).app Z
state_after: no goals
Theorem: Real.Wallis.W_le
File: Mathlib/Data/Real/Pi/Wallis.lean

tactic: rw [← div_le_one pi_div_two_pos, div_eq_inv_mul]
state_before: k : ℕ
⊢ W k ≤ π / 2
state_after: k : ℕ
⊢ (π / 2)⁻¹ * W k ≤ 1

tactic: rw [W_eq_integral_sin_pow_div_integral_sin_pow, div_le_one (integral_sin_pow_pos _)]
state_before: k : ℕ
⊢ (π / 2)⁻¹ * W k ≤ 1
state_after: k : ℕ
⊢ ∫ (x : ℝ) in 0 ..π, sin x ^ (2 * k + 1) ≤ ∫ (x : ℝ) in 0 ..π, sin x ^ (2 * k)

tactic: apply integral_sin_pow_succ_le
state_before: k : ℕ
⊢ ∫ (x : ℝ) in 0 ..π, sin x ^ (2 * k + 1) ≤ ∫ (x : ℝ) in 0 ..π, sin x ^ (2 * k)
state_after: no goals
Theorem: Filter.Germ.const_min
File: Mathlib/Order/Filter/FilterProduct.lean

tactic: rw [min_def, map₂_const]
state_before: α : Type u
β : Type v
φ : Ultrafilter α
inst✝ : LinearOrder β
x y : β
⊢ ↑(min x y) = min ↑x ↑y
state_after: no goals
Theorem: WellFounded.monotone_chain_condition
File: Mathlib/Order/OrderIsoNat.lean

tactic: congrm ∀ a, ∃ n, ∀ m h, ?_
state_before: α : Type u_1
inst✝ : PartialOrder α
⊢ (∀ (a : ℕ →o α), ∃ n, ∀ (m : ℕ), n ≤ m → ¬a n < a m) ↔ ∀ (a : ℕ →o α), ∃ n, ∀ (m : ℕ), n ≤ m → a n = a m
state_after: case a
α : Type u_1
inst✝ : PartialOrder α
a : ℕ →o α
n m : ℕ
h : n ≤ m
⊢ ¬a n < a m ↔ a n = a m

tactic: rw [lt_iff_le_and_ne]
state_before: case a
α : Type u_1
inst✝ : PartialOrder α
a : ℕ →o α
n m : ℕ
h : n ≤ m
⊢ ¬a n < a m ↔ a n = a m
state_after: case a
α : Type u_1
inst✝ : PartialOrder α
a : ℕ →o α
n m : ℕ
h : n ≤ m
⊢ ¬(a n ≤ a m ∧ a n ≠ a m) ↔ a n = a m

tactic: simp [a.mono h]
state_before: case a
α : Type u_1
inst✝ : PartialOrder α
a : ℕ →o α
n m : ℕ
h : n ≤ m
⊢ ¬(a n ≤ a m ∧ a n ≠ a m) ↔ a n = a m
state_after: no goals
Theorem: HurwitzZeta.hurwitzZeta_residue_one
File: Mathlib/NumberTheory/LSeries/HurwitzZeta.lean

tactic: simp only [hurwitzZeta, mul_add, (by simp : 𝓝 (1 : ℂ) = 𝓝 (1 + (1 - 1) * hurwitzZetaOdd a 1))]
state_before: a : UnitAddCircle
⊢ Tendsto (fun s => (s - 1) * hurwitzZeta a s) (𝓝[≠] 1) (𝓝 1)
state_after: a : UnitAddCircle
⊢ Tendsto (fun s => (s - 1) * hurwitzZetaEven a s + (s - 1) * hurwitzZetaOdd a s) (𝓝[≠] 1)
    (𝓝 (1 + (1 - 1) * hurwitzZetaOdd a 1))

tactic: refine (hurwitzZetaEven_residue_one a).add ((Tendsto.mul ?_ ?_).mono_left nhdsWithin_le_nhds)
state_before: a : UnitAddCircle
⊢ Tendsto (fun s => (s - 1) * hurwitzZetaEven a s + (s - 1) * hurwitzZetaOdd a s) (𝓝[≠] 1)
    (𝓝 (1 + (1 - 1) * hurwitzZetaOdd a 1))
state_after: case refine_1
a : UnitAddCircle
⊢ Tendsto (fun s => s - 1) (𝓝 1) (𝓝 (1 - 1))

case refine_2
a : UnitAddCircle
⊢ Tendsto (hurwitzZetaOdd a) (𝓝 1) (𝓝 (hurwitzZetaOdd a 1))

tactic: exacts [tendsto_id.sub_const _, (differentiable_hurwitzZetaOdd a).continuous.tendsto _]
state_before: case refine_1
a : UnitAddCircle
⊢ Tendsto (fun s => s - 1) (𝓝 1) (𝓝 (1 - 1))

case refine_2
a : UnitAddCircle
⊢ Tendsto (hurwitzZetaOdd a) (𝓝 1) (𝓝 (hurwitzZetaOdd a 1))
state_after: no goals

tactic: simp
state_before: a : UnitAddCircle
⊢ 𝓝 1 = 𝓝 (1 + (1 - 1) * hurwitzZetaOdd a 1)
state_after: no goals
Theorem: HasStrictDerivAt.neg
File: Mathlib/Analysis/Calculus/Deriv/Add.lean

tactic: simpa using h.neg.hasStrictDerivAt
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
h : HasStrictDerivAt f f' x
⊢ HasStrictDerivAt (fun x => -f x) (-f') x
state_after: no goals
Theorem: CategoryTheory.Limits.CompleteLattice.pushout_eq_sup
File: Mathlib/CategoryTheory/Limits/Lattice.lean

tactic: rw [finite_colimit_eq_finset_univ_sup]
state_before: α : Type u
J : Type w
inst✝³ : SmallCategory J
inst✝² : FinCategory J
inst✝¹ : SemilatticeSup α
inst✝ : OrderBot α
x y z : α
f : z ⟶ x
g : z ⟶ y
⊢ colimit (span f g) = Finset.univ.sup (span f g).obj
state_after: no goals

tactic: rw [sup_bot_eq]
state_before: α : Type u
J : Type w
inst✝³ : SmallCategory J
inst✝² : FinCategory J
inst✝¹ : SemilatticeSup α
inst✝ : OrderBot α
x y z : α
f : z ⟶ x
g : z ⟶ y
⊢ z ⊔ (x ⊔ (y ⊔ ⊥)) = z ⊔ (x ⊔ y)
state_after: no goals