1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ProbabilityTheory.kernel.compProd_zero_right
File: Mathlib/Probability/Kernel/Composition.lean

tactic: by_cases h : IsSFiniteKernel κ
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ✝ : Type u_4
mγ : MeasurableSpace γ✝
s : Set (β × γ✝)
κ : ↥(kernel α β)
γ : Type u_5
inst✝ : MeasurableSpace γ
⊢ κ ⊗ₖ 0 = 0
state_after: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ✝ : Type u_4
mγ : MeasurableSpace γ✝
s : Set (β × γ✝)
κ : ↥(kernel α β)
γ : Type u_5
inst✝ : MeasurableSpace γ
h : IsSFiniteKernel κ
⊢ κ ⊗ₖ 0 = 0

case neg
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ✝ : Type u_4
mγ : MeasurableSpace γ✝
s : Set (β × γ✝)
κ : ↥(kernel α β)
γ : Type u_5
inst✝ : MeasurableSpace γ
h : ¬IsSFiniteKernel κ
⊢ κ ⊗ₖ 0 = 0

tactic: ext a s hs
state_before: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ✝ : Type u_4
mγ : MeasurableSpace γ✝
s : Set (β × γ✝)
κ : ↥(kernel α β)
γ : Type u_5
inst✝ : MeasurableSpace γ
h : IsSFiniteKernel κ
⊢ κ ⊗ₖ 0 = 0
state_after: case pos.h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ✝ : Type u_4
mγ : MeasurableSpace γ✝
s✝ : Set (β × γ✝)
κ : ↥(kernel α β)
γ : Type u_5
inst✝ : MeasurableSpace γ
h : IsSFiniteKernel κ
a : α
s : Set (β × γ)
hs : MeasurableSet s
⊢ ((κ ⊗ₖ 0) a) s = (0 a) s

tactic: rw [kernel.compProd_apply _ _ _ hs]
state_before: case pos.h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ✝ : Type u_4
mγ : MeasurableSpace γ✝
s✝ : Set (β × γ✝)
κ : ↥(kernel α β)
γ : Type u_5
inst✝ : MeasurableSpace γ
h : IsSFiniteKernel κ
a : α
s : Set (β × γ)
hs : MeasurableSet s
⊢ ((κ ⊗ₖ 0) a) s = (0 a) s
state_after: case pos.h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ✝ : Type u_4
mγ : MeasurableSpace γ✝
s✝ : Set (β × γ✝)
κ : ↥(kernel α β)
γ : Type u_5
inst✝ : MeasurableSpace γ
h : IsSFiniteKernel κ
a : α
s : Set (β × γ)
hs : MeasurableSet s
⊢ ∫⁻ (b : β), (0 (a, b)) {c | (b, c) ∈ s} ∂κ a = (0 a) s

tactic: simp
state_before: case pos.h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ✝ : Type u_4
mγ : MeasurableSpace γ✝
s✝ : Set (β × γ✝)
κ : ↥(kernel α β)
γ : Type u_5
inst✝ : MeasurableSpace γ
h : IsSFiniteKernel κ
a : α
s : Set (β × γ)
hs : MeasurableSet s
⊢ ∫⁻ (b : β), (0 (a, b)) {c | (b, c) ∈ s} ∂κ a = (0 a) s
state_after: no goals

tactic: rw [kernel.compProd_of_not_isSFiniteKernel_left _ _ h]
state_before: case neg
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ✝ : Type u_4
mγ : MeasurableSpace γ✝
s : Set (β × γ✝)
κ : ↥(kernel α β)
γ : Type u_5
inst✝ : MeasurableSpace γ
h : ¬IsSFiniteKernel κ
⊢ κ ⊗ₖ 0 = 0
state_after: no goals
Theorem: Linarith.mul_nonpos
File: Mathlib/Tactic/Linarith/Lemmas.lean

tactic: simpa
state_before: α : Type u_1
inst✝ : OrderedRing α
a b : α
ha : a ≤ 0
hb : 0 < b
this : -b * a ≥ 0
⊢ b * a ≤ 0
state_after: no goals
Theorem: FractionalIdeal.ne_zero_of_mul_eq_one
File: Mathlib/RingTheory/FractionalIdeal/Operations.lean

tactic: convert h
state_before: R : Type u_1
inst✝⁵ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁴ : CommRing P
inst✝³ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝² : CommRing R₁
K : Type u_4
inst✝¹ : Field K
inst✝ : Algebra R₁ K
frac : IsFractionRing R₁ K
I J : FractionalIdeal R₁⁰ K
h : I * J = 1
hI : I = 0
⊢ 0 = 1
state_after: case h.e'_2
R : Type u_1
inst✝⁵ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁴ : CommRing P
inst✝³ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝² : CommRing R₁
K : Type u_4
inst✝¹ : Field K
inst✝ : Algebra R₁ K
frac : IsFractionRing R₁ K
I J : FractionalIdeal R₁⁰ K
h : I * J = 1
hI : I = 0
⊢ 0 = I * J

tactic: simp [hI]
state_before: case h.e'_2
R : Type u_1
inst✝⁵ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁴ : CommRing P
inst✝³ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝² : CommRing R₁
K : Type u_4
inst✝¹ : Field K
inst✝ : Algebra R₁ K
frac : IsFractionRing R₁ K
I J : FractionalIdeal R₁⁰ K
h : I * J = 1
hI : I = 0
⊢ 0 = I * J
state_after: no goals
Theorem: Cardinal.nfpBFamily_lt_ord_of_isRegular
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: rwa [lift_id]
state_before: α : Type u_1
r : α → α → Prop
o : Ordinal.{u}
f : (a : Ordinal.{u}) → a < o → Ordinal.{u} → Ordinal.{u}
c : Cardinal.{u}
hc : c.IsRegular
ho : o.card < c
hc' : c ≠ ℵ₀
hf : ∀ (i : Ordinal.{u}) (hi : i < o), ∀ b < c.ord, f i hi b < c.ord
a : Ordinal.{u}
⊢ lift.{u, u} o.card < c
state_after: no goals
Theorem: nhdsWithin_inter'
File: Mathlib/Topology/ContinuousOn.lean

tactic: delta nhdsWithin
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : TopologicalSpace α
a : α
s t : Set α
⊢ 𝓝[s ∩ t] a = 𝓝[s] a ⊓ 𝓟 t
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : TopologicalSpace α
a : α
s t : Set α
⊢ 𝓝 a ⊓ 𝓟 (s ∩ t) = 𝓝 a ⊓ 𝓟 s ⊓ 𝓟 t

tactic: rw [← inf_principal, inf_assoc]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : TopologicalSpace α
a : α
s t : Set α
⊢ 𝓝 a ⊓ 𝓟 (s ∩ t) = 𝓝 a ⊓ 𝓟 s ⊓ 𝓟 t
state_after: no goals
Theorem: Localization.add_mk
File: Mathlib/RingTheory/Localization/Basic.lean

tactic: show Localization.add (mk a b) (mk c d) = mk _ _
state_before: R : Type u_1
inst✝³ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
P : Type u_3
inst✝ : CommSemiring P
a : R
b : ↥M
c : R
d : ↥M
⊢ mk a b + mk c d = mk (↑b * c + ↑d * a) (b * d)
state_after: R : Type u_1
inst✝³ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
P : Type u_3
inst✝ : CommSemiring P
a : R
b : ↥M
c : R
d : ↥M
⊢ (mk a b).add (mk c d) = mk (↑b * c + ↑d * a) (b * d)

tactic: simp [Localization.add_def]
state_before: R : Type u_1
inst✝³ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
P : Type u_3
inst✝ : CommSemiring P
a : R
b : ↥M
c : R
d : ↥M
⊢ (mk a b).add (mk c d) = mk (↑b * c + ↑d * a) (b * d)
state_after: no goals
Theorem: Ordinal.op_eq_self_of_principal
File: Mathlib/SetTheory/Ordinal/Principal.lean

tactic: refine le_antisymm ?_ (H.self_le _)
state_before: op : Ordinal.{u} → Ordinal.{u} → Ordinal.{u}
a o : Ordinal.{u}
hao : a < o
H : IsNormal (op a)
ho : Principal op o
ho' : o.IsLimit
⊢ op a o = o
state_after: op : Ordinal.{u} → Ordinal.{u} → Ordinal.{u}
a o : Ordinal.{u}
hao : a < o
H : IsNormal (op a)
ho : Principal op o
ho' : o.IsLimit
⊢ op a o ≤ o

tactic: rw [← IsNormal.bsup_eq.{u, u} H ho', bsup_le_iff]
state_before: op : Ordinal.{u} → Ordinal.{u} → Ordinal.{u}
a o : Ordinal.{u}
hao : a < o
H : IsNormal (op a)
ho : Principal op o
ho' : o.IsLimit
⊢ op a o ≤ o
state_after: op : Ordinal.{u} → Ordinal.{u} → Ordinal.{u}
a o : Ordinal.{u}
hao : a < o
H : IsNormal (op a)
ho : Principal op o
ho' : o.IsLimit
⊢ ∀ i < o, op a i ≤ o

tactic: exact fun b hbo => (ho hao hbo).le
state_before: op : Ordinal.{u} → Ordinal.{u} → Ordinal.{u}
a o : Ordinal.{u}
hao : a < o
H : IsNormal (op a)
ho : Principal op o
ho' : o.IsLimit
⊢ ∀ i < o, op a i ≤ o
state_after: no goals
Theorem: WeierstrassCurve.Projective.nonsingular_zero
File: Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean

tactic: simp
state_before: R : Type u
inst✝¹ : CommRing R
W : Projective R
inst✝ : Nontrivial R
⊢ W.a₁ * ![0, 1, 0] 1 * ![0, 1, 0] 2 ≠
      3 * ![0, 1, 0] 0 ^ 2 + 2 * W.a₂ * ![0, 1, 0] 0 * ![0, 1, 0] 2 + W.a₄ * ![0, 1, 0] 2 ^ 2 ∨
    ![0, 1, 0] 1 * ![0, 1, 0] 2 ≠
        -![0, 1, 0] 1 * ![0, 1, 0] 2 - W.a₁ * ![0, 1, 0] 0 * ![0, 1, 0] 2 - W.a₃ * ![0, 1, 0] 2 ^ 2 ∨
      ![0, 1, 0] 1 ^ 2 + W.a₁ * ![0, 1, 0] 0 * ![0, 1, 0] 1 + 2 * W.a₃ * ![0, 1, 0] 1 * ![0, 1, 0] 2 ≠
        W.a₂ * ![0, 1, 0] 0 ^ 2 + 2 * W.a₄ * ![0, 1, 0] 0 * ![0, 1, 0] 2 + 3 * W.a₆ * ![0, 1, 0] 2 ^ 2
state_after: no goals
Theorem: Associates.sup_mul_inf
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: nontriviality α
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a b : Associates α
⊢ (a.factors ⊔ b.factors).prod * (a.factors ⊓ b.factors).prod = a * b
state_after: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a b : Associates α
a✝ : Nontrivial α
⊢ (a.factors ⊔ b.factors).prod * (a.factors ⊓ b.factors).prod = a * b

tactic: refine eq_of_factors_eq_factors ?_
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a b : Associates α
a✝ : Nontrivial α
⊢ (a.factors ⊔ b.factors).prod * (a.factors ⊓ b.factors).prod = a * b
state_after: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a b : Associates α
a✝ : Nontrivial α
⊢ ((a.factors ⊔ b.factors).prod * (a.factors ⊓ b.factors).prod).factors = (a * b).factors

tactic: rw [← prod_add, prod_factors, factors_mul, FactorSet.sup_add_inf_eq_add]
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a b : Associates α
a✝ : Nontrivial α
⊢ ((a.factors ⊔ b.factors).prod * (a.factors ⊓ b.factors).prod).factors = (a * b).factors
state_after: no goals
Theorem: MeasureTheory.OuterMeasure.map_top
File: Mathlib/MeasureTheory/OuterMeasure/Operations.lean

tactic: rw [map_apply, restrict_apply, ← image_preimage_eq_inter_range, top_apply', top_apply',
  Set.image_eq_empty]
state_before: α : Type u_1
β : Type u_2
m : OuterMeasure α
f : α → β
s : Set β
⊢ ((map f) ⊤) s = ((restrict (range f)) ⊤) s
state_after: no goals
Theorem: Finset.cons_induction
File: Mathlib/Data/Finset/Basic.lean

tactic: induction s using Multiset.induction with
| empty => exact empty
| cons a s IH =>
  rw [mk_cons nd]
  exact cons a _ _ (IH _)
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α✝
s✝ t u v : Finset α✝
a b : α✝
α : Type u_4
p : Finset α → Prop
empty : p ∅
cons : ∀ (a : α) (s : Finset α) (h : a ∉ s), p s → p (Finset.cons a s h)
s : Multiset α
nd : s.Nodup
⊢ p { val := s, nodup := nd }
state_after: no goals

tactic: exact empty
state_before: case empty
α✝ : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α✝
s t u v : Finset α✝
a b : α✝
α : Type u_4
p : Finset α → Prop
empty : p ∅
cons : ∀ (a : α) (s : Finset α) (h : a ∉ s), p s → p (Finset.cons a s h)
nd : Nodup 0
⊢ p { val := 0, nodup := nd }
state_after: no goals

tactic: rw [mk_cons nd]
state_before: case cons
α✝ : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α✝
s✝ t u v : Finset α✝
a✝ b : α✝
α : Type u_4
p : Finset α → Prop
empty : p ∅
cons : ∀ (a : α) (s : Finset α) (h : a ∉ s), p s → p (Finset.cons a s h)
a : α
s : Multiset α
IH : ∀ (nd : s.Nodup), p { val := s, nodup := nd }
nd : (a ::ₘ s).Nodup
⊢ p { val := a ::ₘ s, nodup := nd }
state_after: case cons
α✝ : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α✝
s✝ t u v : Finset α✝
a✝ b : α✝
α : Type u_4
p : Finset α → Prop
empty : p ∅
cons : ∀ (a : α) (s : Finset α) (h : a ∉ s), p s → p (Finset.cons a s h)
a : α
s : Multiset α
IH : ∀ (nd : s.Nodup), p { val := s, nodup := nd }
nd : (a ::ₘ s).Nodup
⊢ p (Finset.cons a { val := s, nodup := ⋯ } ⋯)

tactic: exact cons a _ _ (IH _)
state_before: case cons
α✝ : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α✝
s✝ t u v : Finset α✝
a✝ b : α✝
α : Type u_4
p : Finset α → Prop
empty : p ∅
cons : ∀ (a : α) (s : Finset α) (h : a ∉ s), p s → p (Finset.cons a s h)
a : α
s : Multiset α
IH : ∀ (nd : s.Nodup), p { val := s, nodup := nd }
nd : (a ::ₘ s).Nodup
⊢ p (Finset.cons a { val := s, nodup := ⋯ } ⋯)
state_after: no goals
Theorem: Function.invFunOn_injOn_image
File: Mathlib/Data/Set/Function.lean

tactic: rintro _ ⟨x, hx, rfl⟩ _ ⟨x', hx', rfl⟩ he
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s✝ s₁ s₂ : Set α
t : Set β
f✝ : α → β
inst✝ : Nonempty α
f : α → β
s : Set α
⊢ InjOn (invFunOn f s) (f '' s)
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s✝ s₁ s₂ : Set α
t : Set β
f✝ : α → β
inst✝ : Nonempty α
f : α → β
s : Set α
x : α
hx : x ∈ s
x' : α
hx' : x' ∈ s
he : invFunOn f s (f x) = invFunOn f s (f x')
⊢ f x = f x'

tactic: rw [← invFunOn_apply_eq (f := f) hx, he, invFunOn_apply_eq (f := f) hx']
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s✝ s₁ s₂ : Set α
t : Set β
f✝ : α → β
inst✝ : Nonempty α
f : α → β
s : Set α
x : α
hx : x ∈ s
x' : α
hx' : x' ∈ s
he : invFunOn f s (f x) = invFunOn f s (f x')
⊢ f x = f x'
state_after: no goals
Theorem: Matrix.IsHermitian.fromBlocks
File: Mathlib/LinearAlgebra/Matrix/Hermitian.lean

tactic: have hCB : Cᴴ = B := by rw [← hBC, conjTranspose_conjTranspose]
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝ : InvolutiveStar α
A : Matrix m m α
B : Matrix m n α
C : Matrix n m α
D : Matrix n n α
hA : A.IsHermitian
hBC : Bᴴ = C
hD : D.IsHermitian
⊢ (Matrix.fromBlocks A B C D).IsHermitian
state_after: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝ : InvolutiveStar α
A : Matrix m m α
B : Matrix m n α
C : Matrix n m α
D : Matrix n n α
hA : A.IsHermitian
hBC : Bᴴ = C
hD : D.IsHermitian
hCB : Cᴴ = B
⊢ (Matrix.fromBlocks A B C D).IsHermitian

tactic: unfold Matrix.IsHermitian
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝ : InvolutiveStar α
A : Matrix m m α
B : Matrix m n α
C : Matrix n m α
D : Matrix n n α
hA : A.IsHermitian
hBC : Bᴴ = C
hD : D.IsHermitian
hCB : Cᴴ = B
⊢ (Matrix.fromBlocks A B C D).IsHermitian
state_after: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝ : InvolutiveStar α
A : Matrix m m α
B : Matrix m n α
C : Matrix n m α
D : Matrix n n α
hA : A.IsHermitian
hBC : Bᴴ = C
hD : D.IsHermitian
hCB : Cᴴ = B
⊢ (Matrix.fromBlocks A B C D)ᴴ = Matrix.fromBlocks A B C D

tactic: rw [fromBlocks_conjTranspose, hBC, hCB, hA, hD]
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝ : InvolutiveStar α
A : Matrix m m α
B : Matrix m n α
C : Matrix n m α
D : Matrix n n α
hA : A.IsHermitian
hBC : Bᴴ = C
hD : D.IsHermitian
hCB : Cᴴ = B
⊢ (Matrix.fromBlocks A B C D)ᴴ = Matrix.fromBlocks A B C D
state_after: no goals

tactic: rw [← hBC, conjTranspose_conjTranspose]
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝ : InvolutiveStar α
A : Matrix m m α
B : Matrix m n α
C : Matrix n m α
D : Matrix n n α
hA : A.IsHermitian
hBC : Bᴴ = C
hD : D.IsHermitian
⊢ Cᴴ = B
state_after: no goals
Theorem: RCLike.normSq_add
File: Mathlib/Analysis/RCLike/Basic.lean

tactic: simp only [normSq_apply, map_add, rclike_simps]
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z✝ z w : K
⊢ normSq (z + w) = normSq z + normSq w + 2 * re (z * (starRingEnd K) w)
state_after: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z✝ z w : K
⊢ (re z + re w) * (re z + re w) + (im z + im w) * (im z + im w) =
    re z * re z + im z * im z + (re w * re w + im w * im w) + 2 * (re z * re w - im z * -im w)

tactic: ring
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z✝ z w : K
⊢ (re z + re w) * (re z + re w) + (im z + im w) * (im z + im w) =
    re z * re z + im z * im z + (re w * re w + im w * im w) + 2 * (re z * re w - im z * -im w)
state_after: no goals
Theorem: ENNReal.coe_tsum
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: rw [hr.tsum_eq, ENNReal.tsum_coe_eq hr]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r✝ p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : α → ℝ≥0
r : ℝ≥0
hr : HasSum f r
⊢ ↑(tsum f) = ∑' (a : α), ↑(f a)
state_after: no goals
Theorem: TrivSqZeroExt.inl_mul_inr
File: Mathlib/Algebra/TrivSqZeroExt.lean

tactic: rw [smul_zero, add_zero]
state_before: R : Type u
M : Type v
inst✝³ : Semiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : Module Rᵐᵒᵖ M
r : R
m : M
⊢ r •> m + 0 •> 0 = r •> m
state_after: no goals
Theorem: ContinuousMap.continuousMap_mem_subalgebra_closure_of_separatesPoints
File: Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean

tactic: rw [subalgebra_topologicalClosure_eq_top_of_separatesPoints A w]
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : CompactSpace X
A : Subalgebra ℝ C(X, ℝ)
w : A.SeparatesPoints
f : C(X, ℝ)
⊢ f ∈ A.topologicalClosure
state_after: X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : CompactSpace X
A : Subalgebra ℝ C(X, ℝ)
w : A.SeparatesPoints
f : C(X, ℝ)
⊢ f ∈ ⊤

tactic: simp
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : CompactSpace X
A : Subalgebra ℝ C(X, ℝ)
w : A.SeparatesPoints
f : C(X, ℝ)
⊢ f ∈ ⊤
state_after: no goals
Theorem: CategoryTheory.ShortComplex.SnakeInput.naturality_δ
File: Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean

tactic: rw [← cancel_epi (pullback.snd : S₁.P ⟶ _), S₁.snd_δ_assoc, ← comp_τ₁, ← f.comm₂₃,
  comp_τ₁, naturality_φ₁_assoc, ← S₂.snd_δ, functorP_map, pullback.lift_snd_assoc, assoc]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Abelian C
S S₁ S₂ S₃ : SnakeInput C
f : S₁ ⟶ S₂
⊢ S₁.δ ≫ f.f₃.τ₁ = f.f₀.τ₃ ≫ S₂.δ
state_after: no goals
Theorem: AkraBazziRecurrence.bi_min_div_two_lt_one
File: Mathlib/Computability/AkraBazzi/AkraBazzi.lean

tactic: have gt_zero : 0 < b (min_bi b) := R.b_pos (min_bi b)
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ b (min_bi b) / 2 < 1
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
gt_zero : 0 < b (min_bi b)
⊢ b (min_bi b) / 2 < 1

tactic: calc b (min_bi b) / 2 < b (min_bi b)      := by aesop (add safe apply div_two_lt_of_pos)
                    _ < 1                  := R.b_lt_one _
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
gt_zero : 0 < b (min_bi b)
⊢ b (min_bi b) / 2 < 1
state_after: no goals

tactic: aesop (add safe apply div_two_lt_of_pos)
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
gt_zero : 0 < b (min_bi b)
⊢ b (min_bi b) / 2 < b (min_bi b)
state_after: no goals
Theorem: cfcHom_nnreal_eq_restrict
File: Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean

tactic: have := UniqueContinuousFunctionalCalculus.compactSpace_spectrum a (R := ℝ)
state_before: A : Type u_1
inst✝¹² : TopologicalSpace A
inst✝¹¹ : Ring A
inst✝¹⁰ : PartialOrder A
inst✝⁹ : StarRing A
inst✝⁸ : StarOrderedRing A
inst✝⁷ : Algebra ℝ A
inst✝⁶ : TopologicalRing A
inst✝⁵ : ContinuousStar A
inst✝⁴ : StarModule ℝ A
inst✝³ : ContinuousFunctionalCalculus ℝ IsSelfAdjoint
inst✝² : ContinuousFunctionalCalculus ℝ≥0 fun x => 0 ≤ x
inst✝¹ : UniqueContinuousFunctionalCalculus ℝ A
inst✝ : NonnegSpectrumClass ℝ A
a : A
ha : 0 ≤ a
⊢ cfcHom ha = SpectrumRestricts.starAlgHom (cfcHom ⋯) ⋯
state_after: A : Type u_1
inst✝¹² : TopologicalSpace A
inst✝¹¹ : Ring A
inst✝¹⁰ : PartialOrder A
inst✝⁹ : StarRing A
inst✝⁸ : StarOrderedRing A
inst✝⁷ : Algebra ℝ A
inst✝⁶ : TopologicalRing A
inst✝⁵ : ContinuousStar A
inst✝⁴ : StarModule ℝ A
inst✝³ : ContinuousFunctionalCalculus ℝ IsSelfAdjoint
inst✝² : ContinuousFunctionalCalculus ℝ≥0 fun x => 0 ≤ x
inst✝¹ : UniqueContinuousFunctionalCalculus ℝ A
inst✝ : NonnegSpectrumClass ℝ A
a : A
ha : 0 ≤ a
this : CompactSpace ↑(σ ℝ a)
⊢ cfcHom ha = SpectrumRestricts.starAlgHom (cfcHom ⋯) ⋯

tactic: apply (SpectrumRestricts.nnreal_of_nonneg ha).cfcHom_eq_restrict uniformEmbedding_subtype_val
state_before: A : Type u_1
inst✝¹² : TopologicalSpace A
inst✝¹¹ : Ring A
inst✝¹⁰ : PartialOrder A
inst✝⁹ : StarRing A
inst✝⁸ : StarOrderedRing A
inst✝⁷ : Algebra ℝ A
inst✝⁶ : TopologicalRing A
inst✝⁵ : ContinuousStar A
inst✝⁴ : StarModule ℝ A
inst✝³ : ContinuousFunctionalCalculus ℝ IsSelfAdjoint
inst✝² : ContinuousFunctionalCalculus ℝ≥0 fun x => 0 ≤ x
inst✝¹ : UniqueContinuousFunctionalCalculus ℝ A
inst✝ : NonnegSpectrumClass ℝ A
a : A
ha : 0 ≤ a
this : CompactSpace ↑(σ ℝ a)
⊢ cfcHom ha = SpectrumRestricts.starAlgHom (cfcHom ⋯) ⋯
state_after: no goals
Theorem: Finset.ssubset_singleton_iff
File: Mathlib/Data/Finset/Basic.lean

tactic: rw [← coe_ssubset, coe_singleton, Set.ssubset_singleton_iff, coe_eq_empty]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s✝ : Finset α
a✝ b : α
s : Finset α
a : α
⊢ s ⊂ {a} ↔ s = ∅
state_after: no goals
Theorem: Finsupp.mapDomain_support
File: Mathlib/Data/Finsupp/Basic.lean

tactic: rw [Finset.biUnion_singleton]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝¹ : AddCommMonoid M
v v₁ v₂ : α →₀ M
inst✝ : DecidableEq β
f : α → β
s : α →₀ M
⊢ (s.support.biUnion fun a => {f a}) ⊆ image f s.support
state_after: no goals
Theorem: Polynomial.update_zero_eq_erase
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: ext
state_before: R : Type u
a b : R
m n✝ : ℕ
inst✝ : Semiring R
p✝ q p : R[X]
n : ℕ
⊢ p.update n 0 = erase n p
state_after: case a
R : Type u
a b : R
m n✝¹ : ℕ
inst✝ : Semiring R
p✝ q p : R[X]
n n✝ : ℕ
⊢ (p.update n 0).coeff n✝ = (erase n p).coeff n✝

tactic: rw [coeff_update_apply, coeff_erase]
state_before: case a
R : Type u
a b : R
m n✝¹ : ℕ
inst✝ : Semiring R
p✝ q p : R[X]
n n✝ : ℕ
⊢ (p.update n 0).coeff n✝ = (erase n p).coeff n✝
state_after: no goals
Theorem: Cardinal.toNat_eq_zero
File: Mathlib/SetTheory/Cardinal/ToNat.lean

tactic: rw [← toNat_toENat, ENat.toNat_eq_zero, toENat_eq_zero, toENat_eq_top]
state_before: α : Type u
c d : Cardinal.{u}
⊢ toNat c = 0 ↔ c = 0 ∨ ℵ₀ ≤ c
state_after: no goals