1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Profinite.NobelingProof.GoodProducts.max_eq_eval_unapply
File: Mathlib/Topology/Category/Profinite/Nobeling.lean

tactic: ext1 l
state_before: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
⊢ (⇑(Linear_CC' C hsC ho) ∘ fun l => Products.eval C ↑l) = fun l => Products.eval (C' C ho) (↑l).Tail
state_after: case h
I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
l : ↑(MaxProducts C ho)
⊢ (⇑(Linear_CC' C hsC ho) ∘ fun l => Products.eval C ↑l) l = Products.eval (C' C ho) (↑l).Tail

tactic: exact max_eq_eval _ _ _ _
state_before: case h
I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
l : ↑(MaxProducts C ho)
⊢ (⇑(Linear_CC' C hsC ho) ∘ fun l => Products.eval C ↑l) l = Products.eval (C' C ho) (↑l).Tail
state_after: no goals
Theorem: subset_iterate_compRel
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: induction' n with n ihn generalizing t
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
s t : Set (α × α)
h : idRel ⊆ s
n : ℕ
⊢ t ⊆ (fun x => s ○ x)^[n] t
state_after: case zero
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
s : Set (α × α)
h : idRel ⊆ s
t : Set (α × α)
⊢ t ⊆ (fun x => s ○ x)^[0] t

case succ
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
s : Set (α × α)
h : idRel ⊆ s
n : ℕ
ihn : ∀ {t : Set (α × α)}, t ⊆ (fun x => s ○ x)^[n] t
t : Set (α × α)
⊢ t ⊆ (fun x => s ○ x)^[n + 1] t

tactic: exacts [Subset.rfl, (right_subset_compRel h).trans ihn]
state_before: case zero
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
s : Set (α × α)
h : idRel ⊆ s
t : Set (α × α)
⊢ t ⊆ (fun x => s ○ x)^[0] t

case succ
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
s : Set (α × α)
h : idRel ⊆ s
n : ℕ
ihn : ∀ {t : Set (α × α)}, t ⊆ (fun x => s ○ x)^[n] t
t : Set (α × α)
⊢ t ⊆ (fun x => s ○ x)^[n + 1] t
state_after: no goals
Theorem: Batteries.RBNode.lowerBound?_of_some
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: rw [← reverse_reverse t, lowerBound?_reverse]
state_before: α : Type u_1
cut : α → Ordering
y : α
t : RBNode α
⊢ ∃ x, lowerBound? cut t (some y) = some x
state_after: α : Type u_1
cut : α → Ordering
y : α
t : RBNode α
⊢ ∃ x, upperBound? (fun x => (cut x).swap) t.reverse (some y) = some x

tactic: exact upperBound?_of_some
state_before: α : Type u_1
cut : α → Ordering
y : α
t : RBNode α
⊢ ∃ x, upperBound? (fun x => (cut x).swap) t.reverse (some y) = some x
state_after: no goals
Theorem: CategoryTheory.MorphismProperty.RespectsIso.isomorphisms
File: Mathlib/CategoryTheory/MorphismProperty/Basic.lean

tactic: intro X Y Z e f
state_before: case right
C : Type u
inst✝¹ : Category.{v, u} C
D : Type u_1
inst✝ : Category.{?u.28445, u_1} D
⊢ ∀ {X Y Z : C} (e : Y ≅ Z) (f : X ⟶ Y), MorphismProperty.isomorphisms C f → MorphismProperty.isomorphisms C (f ≫ e.hom)
state_after: case right
C : Type u
inst✝¹ : Category.{v, u} C
D : Type u_1
inst✝ : Category.{?u.28445, u_1} D
X Y Z : C
e : Y ≅ Z
f : X ⟶ Y
⊢ MorphismProperty.isomorphisms C f → MorphismProperty.isomorphisms C (f ≫ e.hom)

tactic: simp only [isomorphisms.iff]
state_before: case right
C : Type u
inst✝¹ : Category.{v, u} C
D : Type u_1
inst✝ : Category.{?u.28445, u_1} D
X Y Z : C
e : Y ≅ Z
f : X ⟶ Y
⊢ MorphismProperty.isomorphisms C f → MorphismProperty.isomorphisms C (f ≫ e.hom)
state_after: case right
C : Type u
inst✝¹ : Category.{v, u} C
D : Type u_1
inst✝ : Category.{?u.28445, u_1} D
X Y Z : C
e : Y ≅ Z
f : X ⟶ Y
⊢ IsIso f → IsIso (f ≫ e.hom)

tactic: intro
state_before: case right
C : Type u
inst✝¹ : Category.{v, u} C
D : Type u_1
inst✝ : Category.{?u.28445, u_1} D
X Y Z : C
e : Y ≅ Z
f : X ⟶ Y
⊢ IsIso f → IsIso (f ≫ e.hom)
state_after: case right
C : Type u
inst✝¹ : Category.{v, u} C
D : Type u_1
inst✝ : Category.{?u.28445, u_1} D
X Y Z : C
e : Y ≅ Z
f : X ⟶ Y
a✝ : IsIso f
⊢ IsIso (f ≫ e.hom)

tactic: infer_instance
state_before: case right
C : Type u
inst✝¹ : Category.{v, u} C
D : Type u_1
inst✝ : Category.{?u.28445, u_1} D
X Y Z : C
e : Y ≅ Z
f : X ⟶ Y
a✝ : IsIso f
⊢ IsIso (f ≫ e.hom)
state_after: no goals
Theorem: Set.toFinset_Ici
File: Mathlib/Order/Interval/Finset/Defs.lean

tactic: ext
state_before: α✝ : Type u_1
β : Type u_2
inst✝⁴ : Preorder α✝
p : α✝ → Prop
inst✝³ : DecidablePred p
y : α✝
α : Type u_3
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrderTop α
a : α
inst✝ : Fintype ↑(Ici a)
⊢ (Ici a).toFinset = Finset.Ici a
state_after: case a
α✝ : Type u_1
β : Type u_2
inst✝⁴ : Preorder α✝
p : α✝ → Prop
inst✝³ : DecidablePred p
y : α✝
α : Type u_3
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrderTop α
a : α
inst✝ : Fintype ↑(Ici a)
a✝ : α
⊢ a✝ ∈ (Ici a).toFinset ↔ a✝ ∈ Finset.Ici a

tactic: simp
state_before: case a
α✝ : Type u_1
β : Type u_2
inst✝⁴ : Preorder α✝
p : α✝ → Prop
inst✝³ : DecidablePred p
y : α✝
α : Type u_3
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrderTop α
a : α
inst✝ : Fintype ↑(Ici a)
a✝ : α
⊢ a✝ ∈ (Ici a).toFinset ↔ a✝ ∈ Finset.Ici a
state_after: no goals
Theorem: Path.Homotopy.eval_zero
File: Mathlib/Topology/Homotopy/Path.lean

tactic: ext t
state_before: X : Type u
Y : Type v
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x₀ x₁ x₂ x₃ : X
p₀ p₁ : Path x₀ x₁
F : p₀.Homotopy p₁
⊢ F.eval 0 = p₀
state_after: case a.h
X : Type u
Y : Type v
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x₀ x₁ x₂ x₃ : X
p₀ p₁ : Path x₀ x₁
F : p₀.Homotopy p₁
t : ↑I
⊢ (F.eval 0) t = p₀ t

tactic: simp [eval]
state_before: case a.h
X : Type u
Y : Type v
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x₀ x₁ x₂ x₃ : X
p₀ p₁ : Path x₀ x₁
F : p₀.Homotopy p₁
t : ↑I
⊢ (F.eval 0) t = p₀ t
state_after: no goals
Theorem: SModEq.mul
File: Mathlib/LinearAlgebra/SModEq.lean

tactic: simp only [SModEq.def, Ideal.Quotient.mk_eq_mk, map_mul] at hxy₁ hxy₂ ⊢
state_before: R : Type u_1
inst✝⁵ : Ring R
A : Type u_2
inst✝⁴ : CommRing A
M : Type u_3
inst✝³ : AddCommGroup M
inst✝² : Module R M
U U₁ U₂ : Submodule R M
x x₁✝ x₂✝ y y₁✝ y₂✝ z z₁ z₂ : M
N : Type u_4
inst✝¹ : AddCommGroup N
inst✝ : Module R N
V V₁ V₂ : Submodule R N
I : Ideal A
x₁ x₂ y₁ y₂ : A
hxy₁ : x₁ ≡ y₁ [SMOD I]
hxy₂ : x₂ ≡ y₂ [SMOD I]
⊢ x₁ * x₂ ≡ y₁ * y₂ [SMOD I]
state_after: R : Type u_1
inst✝⁵ : Ring R
A : Type u_2
inst✝⁴ : CommRing A
M : Type u_3
inst✝³ : AddCommGroup M
inst✝² : Module R M
U U₁ U₂ : Submodule R M
x x₁✝ x₂✝ y y₁✝ y₂✝ z z₁ z₂ : M
N : Type u_4
inst✝¹ : AddCommGroup N
inst✝ : Module R N
V V₁ V₂ : Submodule R N
I : Ideal A
x₁ x₂ y₁ y₂ : A
hxy₁ : (Ideal.Quotient.mk I) x₁ = (Ideal.Quotient.mk I) y₁
hxy₂ : (Ideal.Quotient.mk I) x₂ = (Ideal.Quotient.mk I) y₂
⊢ (Ideal.Quotient.mk I) x₁ * (Ideal.Quotient.mk I) x₂ = (Ideal.Quotient.mk I) y₁ * (Ideal.Quotient.mk I) y₂

tactic: rw [hxy₁, hxy₂]
state_before: R : Type u_1
inst✝⁵ : Ring R
A : Type u_2
inst✝⁴ : CommRing A
M : Type u_3
inst✝³ : AddCommGroup M
inst✝² : Module R M
U U₁ U₂ : Submodule R M
x x₁✝ x₂✝ y y₁✝ y₂✝ z z₁ z₂ : M
N : Type u_4
inst✝¹ : AddCommGroup N
inst✝ : Module R N
V V₁ V₂ : Submodule R N
I : Ideal A
x₁ x₂ y₁ y₂ : A
hxy₁ : (Ideal.Quotient.mk I) x₁ = (Ideal.Quotient.mk I) y₁
hxy₂ : (Ideal.Quotient.mk I) x₂ = (Ideal.Quotient.mk I) y₂
⊢ (Ideal.Quotient.mk I) x₁ * (Ideal.Quotient.mk I) x₂ = (Ideal.Quotient.mk I) y₁ * (Ideal.Quotient.mk I) y₂
state_after: no goals
Theorem: PrimeSpectrum.zeroLocus_vanishingIdeal_eq_closure
File: Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean

tactic: rcases isClosed_iff_zeroLocus (closure t) |>.mp isClosed_closure with ⟨I, hI⟩
state_before: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
t : Set (PrimeSpectrum R)
⊢ zeroLocus ↑(vanishingIdeal t) = closure t
state_after: case intro
R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
t : Set (PrimeSpectrum R)
I : Set R
hI : closure t = zeroLocus I
⊢ zeroLocus ↑(vanishingIdeal t) = closure t

tactic: rw [subset_antisymm_iff, (isClosed_zeroLocus _).closure_subset_iff, hI,
    subset_zeroLocus_iff_subset_vanishingIdeal, (gc R).u_l_u_eq_u,
    ← subset_zeroLocus_iff_subset_vanishingIdeal, ← hI]
state_before: case intro
R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
t : Set (PrimeSpectrum R)
I : Set R
hI : closure t = zeroLocus I
⊢ zeroLocus ↑(vanishingIdeal t) = closure t
state_after: case intro
R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
t : Set (PrimeSpectrum R)
I : Set R
hI : closure t = zeroLocus I
⊢ t ⊆ closure t ∧ t ⊆ zeroLocus ↑(vanishingIdeal t)

tactic: exact ⟨subset_closure, subset_zeroLocus_vanishingIdeal t⟩
state_before: case intro
R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
t : Set (PrimeSpectrum R)
I : Set R
hI : closure t = zeroLocus I
⊢ t ⊆ closure t ∧ t ⊆ zeroLocus ↑(vanishingIdeal t)
state_after: no goals
Theorem: smul_neg_of_neg_of_pos
File: Mathlib/Algebra/Order/Module/Defs.lean

tactic: simpa only [zero_smul] using smul_lt_smul_of_pos_right ha hb
state_before: α : Type u_1
β : Type u_2
a a₁ a₂ : α
b b₁ b₂ : β
inst✝⁵ : Zero α
inst✝⁴ : Zero β
inst✝³ : SMulWithZero α β
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : SMulPosStrictMono α β
ha : a < 0
hb : 0 < b
⊢ a • b < 0
state_after: no goals
Theorem: Real.map_volume_mul_right
File: Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean

tactic: simpa only [mul_comm] using Real.map_volume_mul_left h
state_before: ι : Type u_1
inst✝ : Fintype ι
a : ℝ
h : a ≠ 0
⊢ Measure.map (fun x => x * a) volume = ofReal |a⁻¹| • volume
state_after: no goals
Theorem: descPochhammer_eval_zero
File: Mathlib/RingTheory/Polynomial/Pochhammer.lean

tactic: cases n
state_before: R : Type u
inst✝ : Ring R
n : ℕ
⊢ eval 0 (descPochhammer R n) = if n = 0 then 1 else 0
state_after: case zero
R : Type u
inst✝ : Ring R
⊢ eval 0 (descPochhammer R 0) = if 0 = 0 then 1 else 0

case succ
R : Type u
inst✝ : Ring R
n✝ : ℕ
⊢ eval 0 (descPochhammer R (n✝ + 1)) = if n✝ + 1 = 0 then 1 else 0

tactic: simp
state_before: case zero
R : Type u
inst✝ : Ring R
⊢ eval 0 (descPochhammer R 0) = if 0 = 0 then 1 else 0
state_after: no goals

tactic: simp [X_mul, Nat.succ_ne_zero, descPochhammer_succ_left]
state_before: case succ
R : Type u
inst✝ : Ring R
n✝ : ℕ
⊢ eval 0 (descPochhammer R (n✝ + 1)) = if n✝ + 1 = 0 then 1 else 0
state_after: no goals
Theorem: Ideal.IsPrime.mul_mem_iff_mem_or_mem
File: Mathlib/RingTheory/Ideal/Basic.lean

tactic: rintro (h | h)
state_before: α : Type u
β : Type v
a b : α
inst✝ : CommSemiring α
I✝ I : Ideal α
hI : I.IsPrime
x y : α
⊢ x ∈ I ∨ y ∈ I → x * y ∈ I
state_after: case inl
α : Type u
β : Type v
a b : α
inst✝ : CommSemiring α
I✝ I : Ideal α
hI : I.IsPrime
x y : α
h : x ∈ I
⊢ x * y ∈ I

case inr
α : Type u
β : Type v
a b : α
inst✝ : CommSemiring α
I✝ I : Ideal α
hI : I.IsPrime
x y : α
h : y ∈ I
⊢ x * y ∈ I

tactic: exacts [I.mul_mem_right y h, I.mul_mem_left x h]
state_before: case inl
α : Type u
β : Type v
a b : α
inst✝ : CommSemiring α
I✝ I : Ideal α
hI : I.IsPrime
x y : α
h : x ∈ I
⊢ x * y ∈ I

case inr
α : Type u
β : Type v
a b : α
inst✝ : CommSemiring α
I✝ I : Ideal α
hI : I.IsPrime
x y : α
h : y ∈ I
⊢ x * y ∈ I
state_after: no goals
Theorem: PMF.toMeasure_map_apply
File: Mathlib/Probability/ProbabilityMassFunction/Constructions.lean

tactic: rw [toMeasure_apply_eq_toOuterMeasure_apply _ s hs,
  toMeasure_apply_eq_toOuterMeasure_apply _ (f ⁻¹' s) (measurableSet_preimage hf hs)]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β
p : PMF α
b : β
s : Set β
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
hf : Measurable f
hs : MeasurableSet s
⊢ (map f p).toMeasure s = p.toMeasure (f ⁻¹' s)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β
p : PMF α
b : β
s : Set β
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
hf : Measurable f
hs : MeasurableSet s
⊢ (map f p).toOuterMeasure s = p.toOuterMeasure (f ⁻¹' s)

tactic: exact toOuterMeasure_map_apply f p s
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β
p : PMF α
b : β
s : Set β
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
hf : Measurable f
hs : MeasurableSet s
⊢ (map f p).toOuterMeasure s = p.toOuterMeasure (f ⁻¹' s)
state_after: no goals
Theorem: Real.iInf_mul_of_nonpos
File: Mathlib/Data/Real/Pointwise.lean

tactic: simp only [Real.mul_iInf_of_nonpos ha, mul_comm]
state_before: ι : Sort u_1
α : Type u_2
inst✝ : LinearOrderedField α
r : ℝ
ha : r ≤ 0
f : ι → ℝ
⊢ (⨅ i, f i) * r = ⨆ i, f i * r
state_after: no goals
Theorem: padicNorm_two_harmonic
File: Mathlib/NumberTheory/Harmonic/Int.lean

tactic: rw [padicNormE.eq_padicNorm, padicNorm.eq_zpow_of_nonzero (harmonic_pos hn).ne',
  padicValRat_two_harmonic, neg_neg, zpow_natCast, Rat.cast_pow, Rat.cast_natCast, Nat.cast_ofNat]
state_before: n : ℕ
hn : n ≠ 0
⊢ ‖↑(harmonic n)‖ = 2 ^ Nat.log 2 n
state_after: no goals
Theorem: Matrix.trace_mul_comm
File: Mathlib/LinearAlgebra/Matrix/Trace.lean

tactic: rw [← trace_transpose, ← trace_transpose_mul, transpose_mul]
state_before: ι : Type u_1
m : Type u_2
n : Type u_3
p : Type u_4
α : Type u_5
R : Type u_6
S : Type u_7
inst✝⁴ : Fintype m
inst✝³ : Fintype n
inst✝² : Fintype p
inst✝¹ : AddCommMonoid R
inst✝ : CommSemigroup R
A : Matrix m n R
B : Matrix n m R
⊢ (A * B).trace = (B * A).trace
state_after: no goals
Theorem: Matrix.blockDiagonal'_add
File: Mathlib/Data/Matrix/Block.lean

tactic: ext
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✝ : AddZeroClass α
M N : (i : o) → Matrix (m' i) (n' i) α
⊢ blockDiagonal' (M + N) = blockDiagonal' M + blockDiagonal' N
state_after: case a
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✝ : AddZeroClass α
M N : (i : o) → Matrix (m' i) (n' i) α
i✝ : (i : o) × m' i
j✝ : (i : o) × n' i
⊢ blockDiagonal' (M + N) i✝ j✝ = (blockDiagonal' M + blockDiagonal' N) i✝ j✝

tactic: simp only [blockDiagonal'_apply, Pi.add_apply, add_apply]
state_before: case a
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✝ : AddZeroClass α
M N : (i : o) → Matrix (m' i) (n' i) α
i✝ : (i : o) × m' i
j✝ : (i : o) × n' i
⊢ blockDiagonal' (M + N) i✝ j✝ = (blockDiagonal' M + blockDiagonal' N) i✝ j✝
state_after: case a
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✝ : AddZeroClass α
M N : (i : o) → Matrix (m' i) (n' i) α
i✝ : (i : o) × m' i
j✝ : (i : o) × n' i
⊢ (if h : i✝.fst = j✝.fst then M i✝.fst i✝.snd (cast ⋯ j✝.snd) + N i✝.fst i✝.snd (cast ⋯ j✝.snd) else 0) =
    (if h : i✝.fst = j✝.fst then M i✝.fst i✝.snd (cast ⋯ j✝.snd) else 0) +
      if h : i✝.fst = j✝.fst then N i✝.fst i✝.snd (cast ⋯ j✝.snd) else 0

tactic: split_ifs <;> simp
state_before: case a
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✝ : AddZeroClass α
M N : (i : o) → Matrix (m' i) (n' i) α
i✝ : (i : o) × m' i
j✝ : (i : o) × n' i
⊢ (if h : i✝.fst = j✝.fst then M i✝.fst i✝.snd (cast ⋯ j✝.snd) + N i✝.fst i✝.snd (cast ⋯ j✝.snd) else 0) =
    (if h : i✝.fst = j✝.fst then M i✝.fst i✝.snd (cast ⋯ j✝.snd) else 0) +
      if h : i✝.fst = j✝.fst then N i✝.fst i✝.snd (cast ⋯ j✝.snd) else 0
state_after: no goals
Theorem: ProbabilityTheory.kernel.lintegral_restrict
File: Mathlib/Probability/Kernel/Basic.lean

tactic: rw [restrict_apply]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
s t : Set β
κ : ↥(kernel α β)
hs : MeasurableSet s
a : α
f : β → ℝ≥0∞
⊢ ∫⁻ (b : β), f b ∂(kernel.restrict κ hs) a = ∫⁻ (b : β) in s, f b ∂κ a
state_after: no goals
Theorem: Cardinal.mk_union_le_aleph0
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: simp only [le_aleph0_iff_subtype_countable, mem_union, setOf_mem_eq, Set.union_def,
  ← countable_union]
state_before: α✝ β : Type u
c : Cardinal.{?u.226006}
α : Type u_1
P Q : Set α
⊢ #↑(P ∪ Q) ≤ ℵ₀ ↔ #↑P ≤ ℵ₀ ∧ #↑Q ≤ ℵ₀
state_after: no goals
Theorem: DirectSum.coe_of_mul_apply_of_le
File: Mathlib/Algebra/DirectSum/Internal.lean

tactic: rw [eq_tsub_iff_add_eq_of_le h, add_comm]
state_before: ι : Type u_1
σ : Type u_2
S : Type u_3
R : Type u_4
inst✝⁸ : DecidableEq ι
inst✝⁷ : Semiring R
inst✝⁶ : SetLike σ R
inst✝⁵ : AddSubmonoidClass σ R
A : ι → σ
inst✝⁴ : CanonicallyOrderedAddCommMonoid ι
inst✝³ : SetLike.GradedMonoid A
inst✝² : Sub ι
inst✝¹ : OrderedSub ι
inst✝ : ContravariantClass ι ι (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
i : ι
r : ↥(A i)
r' : ⨁ (i : ι), ↥(A i)
n : ι
h : i ≤ n
x : ι
⊢ i + x = n ↔ x = n - i
state_after: no goals
Theorem: MulOpposite.exponent
File: Mathlib/GroupTheory/Exponent.lean

tactic: simp only [Monoid.exponent, ExponentExists]
state_before: G : Type u
inst✝ : Monoid G
⊢ Monoid.exponent Gᵐᵒᵖ = Monoid.exponent G
state_after: G : Type u
inst✝ : Monoid G
⊢ (if h : ∃ n, 0 < n ∧ ∀ (g : Gᵐᵒᵖ), g ^ n = 1 then Nat.find h else 0) =
    if h : ∃ n, 0 < n ∧ ∀ (g : G), g ^ n = 1 then Nat.find h else 0

tactic: congr!
state_before: G : Type u
inst✝ : Monoid G
⊢ (if h : ∃ n, 0 < n ∧ ∀ (g : Gᵐᵒᵖ), g ^ n = 1 then Nat.find h else 0) =
    if h : ∃ n, 0 < n ∧ ∀ (g : G), g ^ n = 1 then Nat.find h else 0
state_after: case h₂.h.e'_1.h.h.e'_2.a
G : Type u
inst✝ : Monoid G
h_congr_thm✝ :
  ∀ {b c : Prop} {α : Type} {x : Decidable b} [inst : Decidable c] {x_1 : b → α} {u : c → α} {y : ¬b → α} {v : ¬c → α}
    (h₁ : b = c), (∀ (h : c), x_1 ⋯ = u h) → (∀ (h : ¬c), y ⋯ = v h) → dite b x_1 y = dite c u v
h✝ : ∃ n, 0 < n ∧ ∀ (g : G), g ^ n = 1
x✝ : ℕ
⊢ (∀ (g : Gᵐᵒᵖ), g ^ x✝ = 1) ↔ ∀ (g : G), g ^ x✝ = 1

case h₁.h.e'_2.h.h.e'_2.a
G : Type u
inst✝ : Monoid G
x✝ : ℕ
⊢ (∀ (g : Gᵐᵒᵖ), g ^ x✝ = 1) ↔ ∀ (g : G), g ^ x✝ = 1
Theorem: MeasureTheory.VectorMeasure.map_apply
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: rw [map, dif_pos hf]
state_before: α : Type u_1
β : Type u_2
m inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
M : Type u_3
inst✝¹ : AddCommMonoid M
inst✝ : TopologicalSpace M
v : VectorMeasure α M
f : α → β
hf : Measurable f
s : Set β
hs : MeasurableSet s
⊢ ↑(v.map f) s = ↑v (f ⁻¹' s)
state_after: α : Type u_1
β : Type u_2
m inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
M : Type u_3
inst✝¹ : AddCommMonoid M
inst✝ : TopologicalSpace M
v : VectorMeasure α M
f : α → β
hf : Measurable f
s : Set β
hs : MeasurableSet s
⊢ ↑{ measureOf' := fun s => if MeasurableSet s then ↑v (f ⁻¹' s) else 0, empty' := ⋯, not_measurable' := ⋯,
          m_iUnion' := ⋯ }
      s =
    ↑v (f ⁻¹' s)

tactic: exact if_pos hs
state_before: α : Type u_1
β : Type u_2
m inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
M : Type u_3
inst✝¹ : AddCommMonoid M
inst✝ : TopologicalSpace M
v : VectorMeasure α M
f : α → β
hf : Measurable f
s : Set β
hs : MeasurableSet s
⊢ ↑{ measureOf' := fun s => if MeasurableSet s then ↑v (f ⁻¹' s) else 0, empty' := ⋯, not_measurable' := ⋯,
          m_iUnion' := ⋯ }
      s =
    ↑v (f ⁻¹' s)
state_after: no goals
Theorem: Nat.choose_le_centralBinom
File: Mathlib/Data/Nat/Choose/Central.lean

tactic: rw [Nat.mul_div_cancel_left n zero_lt_two]
state_before: r n : ℕ
⊢ (2 * n).choose (2 * n / 2) = (2 * n).choose n
state_after: no goals
Theorem: HNNExtension.equiv_eq_conj
File: Mathlib/GroupTheory/HNNExtension.lean

tactic: rw [t_mul_of]
state_before: G : Type u_1
inst✝² : Group G
A B : Subgroup G
φ : ↥A ≃* ↥B
H : Type u_2
inst✝¹ : Group H
M : Type u_3
inst✝ : Monoid M
a : ↥A
⊢ of ↑(φ a) = t * of ↑a * t⁻¹
state_after: G : Type u_1
inst✝² : Group G
A B : Subgroup G
φ : ↥A ≃* ↥B
H : Type u_2
inst✝¹ : Group H
M : Type u_3
inst✝ : Monoid M
a : ↥A
⊢ of ↑(φ a) = of ↑(φ a) * t * t⁻¹

tactic: simp
state_before: G : Type u_1
inst✝² : Group G
A B : Subgroup G
φ : ↥A ≃* ↥B
H : Type u_2
inst✝¹ : Group H
M : Type u_3
inst✝ : Monoid M
a : ↥A
⊢ of ↑(φ a) = of ↑(φ a) * t * t⁻¹
state_after: no goals
Theorem: MeasureTheory.ProbabilityMeasure.prod_apply
File: Mathlib/MeasureTheory/Measure/FiniteMeasureProd.lean

tactic: simp [coeFn_def, Measure.prod_apply s_mble]
state_before: α : Type u_1
inst✝¹ : MeasurableSpace α
β : Type u_2
inst✝ : MeasurableSpace β
μ : ProbabilityMeasure α
ν : ProbabilityMeasure β
s : Set (α × β)
s_mble : MeasurableSet s
⊢ (μ.prod ν) s = (∫⁻ (x : α), ↑ν (Prod.mk x ⁻¹' s) ∂↑μ).toNNReal
state_after: no goals
Theorem: MeasureTheory.Measure.toENNRealVectorMeasure_add
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: refine MeasureTheory.VectorMeasure.ext fun i hi => ?_
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
⊢ (μ + ν).toENNRealVectorMeasure = μ.toENNRealVectorMeasure + ν.toENNRealVectorMeasure
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
i : Set α
hi : MeasurableSet i
⊢ ↑(μ + ν).toENNRealVectorMeasure i = ↑(μ.toENNRealVectorMeasure + ν.toENNRealVectorMeasure) i

tactic: rw [toENNRealVectorMeasure_apply_measurable hi, add_apply, VectorMeasure.add_apply,
  toENNRealVectorMeasure_apply_measurable hi, toENNRealVectorMeasure_apply_measurable hi]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
i : Set α
hi : MeasurableSet i
⊢ ↑(μ + ν).toENNRealVectorMeasure i = ↑(μ.toENNRealVectorMeasure + ν.toENNRealVectorMeasure) i
state_after: no goals
Theorem: convexHull_sub
File: Mathlib/Analysis/Convex/Combination.lean

tactic: simp_rw [sub_eq_add_neg, convexHull_add, ← convexHull_neg]
state_before: R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
inst✝⁷ : LinearOrderedField R'
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι
c : R
t✝ : Finset ι
w : ι → R
z : ι → E
s t : Set E
⊢ (convexHull R) (s - t) = (convexHull R) s - (convexHull R) t
state_after: no goals