1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: suffixLevenshtein_eq
File: Mathlib/Data/List/EditDistance/Defs.lean

tactic: rfl
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
inst✝¹ : AddZeroClass δ
inst✝ : Min δ
C : Cost α β δ
xs : List α
y : β
ys : List β
⊢ impl C xs y (suffixLevenshtein C xs ys) = suffixLevenshtein C xs (y :: ys)
state_after: no goals
Theorem: Rel.codom_inv
File: Mathlib/Data/Rel.lean

tactic: ext x
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
⊢ r.inv.codom = r.dom
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
x : α
⊢ x ∈ r.inv.codom ↔ x ∈ r.dom

tactic: rfl
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
x : α
⊢ x ∈ r.inv.codom ↔ x ∈ r.dom
state_after: no goals
Theorem: Complex.arg_lt_pi_div_two_iff
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: rw [lt_iff_le_and_ne, arg_le_pi_div_two_iff, Ne, arg_eq_pi_div_two_iff]
state_before: a x z✝ z : ℂ
⊢ z.arg < π / 2 ↔ 0 < z.re ∨ z.im < 0 ∨ z = 0
state_after: a x z✝ z : ℂ
⊢ (0 ≤ z.re ∨ z.im < 0) ∧ ¬(z.re = 0 ∧ 0 < z.im) ↔ 0 < z.re ∨ z.im < 0 ∨ z = 0

tactic: rcases lt_trichotomy z.re 0 with hre | hre | hre
state_before: a x z✝ z : ℂ
⊢ (0 ≤ z.re ∨ z.im < 0) ∧ ¬(z.re = 0 ∧ 0 < z.im) ↔ 0 < z.re ∨ z.im < 0 ∨ z = 0
state_after: case inl
a x z✝ z : ℂ
hre : z.re < 0
⊢ (0 ≤ z.re ∨ z.im < 0) ∧ ¬(z.re = 0 ∧ 0 < z.im) ↔ 0 < z.re ∨ z.im < 0 ∨ z = 0

case inr.inl
a x z✝ z : ℂ
hre : z.re = 0
⊢ (0 ≤ z.re ∨ z.im < 0) ∧ ¬(z.re = 0 ∧ 0 < z.im) ↔ 0 < z.re ∨ z.im < 0 ∨ z = 0

case inr.inr
a x z✝ z : ℂ
hre : 0 < z.re
⊢ (0 ≤ z.re ∨ z.im < 0) ∧ ¬(z.re = 0 ∧ 0 < z.im) ↔ 0 < z.re ∨ z.im < 0 ∨ z = 0

tactic: have : z ≠ 0 := by simp [ext_iff, hre.ne]
state_before: case inl
a x z✝ z : ℂ
hre : z.re < 0
⊢ (0 ≤ z.re ∨ z.im < 0) ∧ ¬(z.re = 0 ∧ 0 < z.im) ↔ 0 < z.re ∨ z.im < 0 ∨ z = 0
state_after: case inl
a x z✝ z : ℂ
hre : z.re < 0
this : z ≠ 0
⊢ (0 ≤ z.re ∨ z.im < 0) ∧ ¬(z.re = 0 ∧ 0 < z.im) ↔ 0 < z.re ∨ z.im < 0 ∨ z = 0

tactic: simp [hre.ne, hre.not_le, hre.not_lt, this]
state_before: case inl
a x z✝ z : ℂ
hre : z.re < 0
this : z ≠ 0
⊢ (0 ≤ z.re ∨ z.im < 0) ∧ ¬(z.re = 0 ∧ 0 < z.im) ↔ 0 < z.re ∨ z.im < 0 ∨ z = 0
state_after: no goals

tactic: simp [ext_iff, hre.ne]
state_before: a x z✝ z : ℂ
hre : z.re < 0
⊢ z ≠ 0
state_after: no goals

tactic: have : z = 0 ↔ z.im = 0 := by simp [ext_iff, hre]
state_before: case inr.inl
a x z✝ z : ℂ
hre : z.re = 0
⊢ (0 ≤ z.re ∨ z.im < 0) ∧ ¬(z.re = 0 ∧ 0 < z.im) ↔ 0 < z.re ∨ z.im < 0 ∨ z = 0
state_after: case inr.inl
a x z✝ z : ℂ
hre : z.re = 0
this : z = 0 ↔ z.im = 0
⊢ (0 ≤ z.re ∨ z.im < 0) ∧ ¬(z.re = 0 ∧ 0 < z.im) ↔ 0 < z.re ∨ z.im < 0 ∨ z = 0

tactic: simp [hre, this, or_comm, le_iff_eq_or_lt]
state_before: case inr.inl
a x z✝ z : ℂ
hre : z.re = 0
this : z = 0 ↔ z.im = 0
⊢ (0 ≤ z.re ∨ z.im < 0) ∧ ¬(z.re = 0 ∧ 0 < z.im) ↔ 0 < z.re ∨ z.im < 0 ∨ z = 0
state_after: no goals

tactic: simp [ext_iff, hre]
state_before: a x z✝ z : ℂ
hre : z.re = 0
⊢ z = 0 ↔ z.im = 0
state_after: no goals

tactic: simp [hre, hre.le, hre.ne']
state_before: case inr.inr
a x z✝ z : ℂ
hre : 0 < z.re
⊢ (0 ≤ z.re ∨ z.im < 0) ∧ ¬(z.re = 0 ∧ 0 < z.im) ↔ 0 < z.re ∨ z.im < 0 ∨ z = 0
state_after: no goals
Theorem: Int.Prime.dvd_mul'
File: Mathlib/RingTheory/Int/Basic.lean

tactic: rw [Int.natCast_dvd, Int.natCast_dvd]
state_before: m n : ℤ
p : ℕ
hp : Nat.Prime p
h : ↑p ∣ m * n
⊢ ↑p ∣ m ∨ ↑p ∣ n
state_after: m n : ℤ
p : ℕ
hp : Nat.Prime p
h : ↑p ∣ m * n
⊢ p ∣ m.natAbs ∨ p ∣ n.natAbs

tactic: exact Int.Prime.dvd_mul hp h
state_before: m n : ℤ
p : ℕ
hp : Nat.Prime p
h : ↑p ∣ m * n
⊢ p ∣ m.natAbs ∨ p ∣ n.natAbs
state_after: no goals
Theorem: CliffordAlgebra.contractRight_ι
File: Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean

tactic: rw [contractRight_eq, reverse_ι, contractLeft_ι, reverse.commutes]
state_before: R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
d d' : Module.Dual R M
x : M
⊢ (contractRight ((ι Q) x)) d = (algebraMap R (CliffordAlgebra Q)) (d x)
state_after: no goals
Theorem: ContinuousMonoidHom.closedEmbedding_toContinuousMap
File: Mathlib/Topology/Algebra/ContinuousMonoidHom.lean

tactic: simp only [range_toContinuousMap, Set.setOf_and, Set.setOf_forall]
state_before: F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹² : Monoid A
inst✝¹¹ : Monoid B
inst✝¹⁰ : Monoid C
inst✝⁹ : Monoid D
inst✝⁸ : CommGroup E
inst✝⁷ : TopologicalSpace A
inst✝⁶ : TopologicalSpace B
inst✝⁵ : TopologicalSpace C
inst✝⁴ : TopologicalSpace D
inst✝³ : TopologicalSpace E
inst✝² : TopologicalGroup E
inst✝¹ : ContinuousMul B
inst✝ : T2Space B
⊢ IsClosed (Set.range toContinuousMap)
state_after: F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹² : Monoid A
inst✝¹¹ : Monoid B
inst✝¹⁰ : Monoid C
inst✝⁹ : Monoid D
inst✝⁸ : CommGroup E
inst✝⁷ : TopologicalSpace A
inst✝⁶ : TopologicalSpace B
inst✝⁵ : TopologicalSpace C
inst✝⁴ : TopologicalSpace D
inst✝³ : TopologicalSpace E
inst✝² : TopologicalGroup E
inst✝¹ : ContinuousMul B
inst✝ : T2Space B
⊢ IsClosed ({a | a 1 = 1} ∩ ⋂ i, ⋂ i_1, {x | x (i * i_1) = x i * x i_1})

tactic: refine .inter (isClosed_singleton.preimage (ContinuousMap.continuous_eval_const 1)) <|
  isClosed_iInter fun x ↦ isClosed_iInter fun y ↦ ?_
state_before: F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹² : Monoid A
inst✝¹¹ : Monoid B
inst✝¹⁰ : Monoid C
inst✝⁹ : Monoid D
inst✝⁸ : CommGroup E
inst✝⁷ : TopologicalSpace A
inst✝⁶ : TopologicalSpace B
inst✝⁵ : TopologicalSpace C
inst✝⁴ : TopologicalSpace D
inst✝³ : TopologicalSpace E
inst✝² : TopologicalGroup E
inst✝¹ : ContinuousMul B
inst✝ : T2Space B
⊢ IsClosed ({a | a 1 = 1} ∩ ⋂ i, ⋂ i_1, {x | x (i * i_1) = x i * x i_1})
state_after: F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹² : Monoid A
inst✝¹¹ : Monoid B
inst✝¹⁰ : Monoid C
inst✝⁹ : Monoid D
inst✝⁸ : CommGroup E
inst✝⁷ : TopologicalSpace A
inst✝⁶ : TopologicalSpace B
inst✝⁵ : TopologicalSpace C
inst✝⁴ : TopologicalSpace D
inst✝³ : TopologicalSpace E
inst✝² : TopologicalGroup E
inst✝¹ : ContinuousMul B
inst✝ : T2Space B
x y : A
⊢ IsClosed {x_1 | x_1 (x * y) = x_1 x * x_1 y}

tactic: exact isClosed_eq (ContinuousMap.continuous_eval_const (x * y)) <|
  .mul (ContinuousMap.continuous_eval_const x) (ContinuousMap.continuous_eval_const y)
state_before: F : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
E : Type u_6
inst✝¹² : Monoid A
inst✝¹¹ : Monoid B
inst✝¹⁰ : Monoid C
inst✝⁹ : Monoid D
inst✝⁸ : CommGroup E
inst✝⁷ : TopologicalSpace A
inst✝⁶ : TopologicalSpace B
inst✝⁵ : TopologicalSpace C
inst✝⁴ : TopologicalSpace D
inst✝³ : TopologicalSpace E
inst✝² : TopologicalGroup E
inst✝¹ : ContinuousMul B
inst✝ : T2Space B
x y : A
⊢ IsClosed {x_1 | x_1 (x * y) = x_1 x * x_1 y}
state_after: no goals
Theorem: Function.extend_le_one
File: Mathlib/Algebra/Order/Pi.lean

tactic: classical exact dite_le_one (fun _ ↦ hg _) (fun _ ↦ he _)
state_before: ι : Type u_1
I : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f✝ : I → Type u_6
x y : (i : I) → f✝ i
i : I
inst✝¹ : One γ
inst✝ : LE γ
f : α → β
g : α → γ
e : β → γ
hg : g ≤ 1
he : e ≤ 1
_b : β
⊢ extend f g e _b ≤ 1 _b
state_after: no goals

tactic: exact dite_le_one (fun _ ↦ hg _) (fun _ ↦ he _)
state_before: ι : Type u_1
I : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f✝ : I → Type u_6
x y : (i : I) → f✝ i
i : I
inst✝¹ : One γ
inst✝ : LE γ
f : α → β
g : α → γ
e : β → γ
hg : g ≤ 1
he : e ≤ 1
_b : β
⊢ extend f g e _b ≤ 1 _b
state_after: no goals
Theorem: Set.prod_range_univ_eq
File: Mathlib/Data/Set/Prod.lean

tactic: simp [range]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
m₁ : α → γ
⊢ ∀ (x : γ × β), x ∈ range m₁ ×ˢ univ ↔ x ∈ range fun p => (m₁ p.1, p.2)
state_after: no goals
Theorem: IsDedekindDomain.HeightOneSpectrum.valuation_of_unit_mod_eq
File: Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean

tactic: erw [valuationOfNeZeroMod, MonoidHom.comp_apply, ← QuotientGroup.coe_mk',
  QuotientGroup.map_mk' (G := Kˣ) (N := MonoidHom.range (powMonoidHom n)),
  valuation_of_unit_eq, QuotientGroup.mk_one, map_one]
state_before: R : Type u
inst✝⁴ : CommRing R
inst✝³ : IsDedekindDomain R
K : Type v
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
v : HeightOneSpectrum R
n : ℕ
x : Rˣ
⊢ (v.valuationOfNeZeroMod n) ↑((Units.map ↑(algebraMap R K)) x) = 1
state_after: no goals
Theorem: Real.arsinh_zero
File: Mathlib/Analysis/SpecialFunctions/Arsinh.lean

tactic: simp [arsinh]
state_before: x y : ℝ
⊢ arsinh 0 = 0
state_after: no goals
Theorem: dist_self_div_left
File: Mathlib/Analysis/Normed/Group/Uniform.lean

tactic: rw [dist_comm, dist_self_div_right]
state_before: 𝓕 : Type u_1
α : Type u_2
E : Type u_3
F : Type u_4
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a✝ a₁ a₂ b✝ b₁ b₂ : E
r r₁ r₂ : ℝ
a b : E
⊢ dist (a / b) a = ‖b‖
state_after: no goals
Theorem: Filter.frequently_curry_iff
File: Mathlib/Order/Filter/Curry.lean

tactic: simp_rw [Filter.Frequently, not_iff_not, not_not, eventually_curry_iff]
state_before: α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
α : Type u_4
β : Type u_5
l : Filter α
m : Filter β
p : α × β → Prop
⊢ (∃ᶠ (x : α × β) in l.curry m, p x) ↔ ∃ᶠ (x : α) in l, ∃ᶠ (y : β) in m, p (x, y)
state_after: no goals
Theorem: Vector.get_set_eq_if
File: Mathlib/Data/Vector/Basic.lean

tactic: split_ifs <;> (try simp [*])
state_before: n : ℕ
α : Type u_1
β : Type u_2
γ : Type u_3
v : Vector α n
i j : Fin n
a : α
⊢ (v.set i a).get j = if i = j then a else v.get j
state_after: case neg
n : ℕ
α : Type u_1
β : Type u_2
γ : Type u_3
v : Vector α n
i j : Fin n
a : α
h✝ : ¬i = j
⊢ (v.set i a).get j = v.get j

tactic: rwa [get_set_of_ne]
state_before: case neg
n : ℕ
α : Type u_1
β : Type u_2
γ : Type u_3
v : Vector α n
i j : Fin n
a : α
h✝ : ¬i = j
⊢ (v.set i a).get j = v.get j
state_after: no goals

tactic: try simp [*]
state_before: case pos
n : ℕ
α : Type u_1
β : Type u_2
γ : Type u_3
v : Vector α n
i j : Fin n
a : α
h✝ : i = j
⊢ (v.set i a).get j = a
state_after: no goals

tactic: simp [*]
state_before: case pos
n : ℕ
α : Type u_1
β : Type u_2
γ : Type u_3
v : Vector α n
i j : Fin n
a : α
h✝ : i = j
⊢ (v.set i a).get j = a
state_after: no goals
Theorem: RatFunc.laurentAux_algebraMap
File: Mathlib/FieldTheory/Laurent.lean

tactic: rw [← mk_one, ← mk_one, mk_eq_div, laurentAux_div, mk_eq_div, taylor_one, map_one, map_one]
state_before: R : Type u
inst✝ : CommRing R
hdomain : IsDomain R
r s : R
p q : R[X]
f : RatFunc R
⊢ (laurentAux r) ((algebraMap R[X] (RatFunc R)) p) = (algebraMap R[X] (RatFunc R)) ((taylor r) p)
state_after: no goals
Theorem: Polynomial.eval₂_mul_eq_zero_of_right
File: Mathlib/Algebra/Polynomial/Eval.lean

tactic: rw [eval₂_mul f x]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p✝ q r : R[X]
inst✝ : CommSemiring S
f : R →+* S
x : S
p : R[X]
hq : eval₂ f x q = 0
⊢ eval₂ f x (p * q) = 0
state_after: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p✝ q r : R[X]
inst✝ : CommSemiring S
f : R →+* S
x : S
p : R[X]
hq : eval₂ f x q = 0
⊢ eval₂ f x p * eval₂ f x q = 0

tactic: exact mul_eq_zero_of_right (p.eval₂ f x) hq
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p✝ q r : R[X]
inst✝ : CommSemiring S
f : R →+* S
x : S
p : R[X]
hq : eval₂ f x q = 0
⊢ eval₂ f x p * eval₂ f x q = 0
state_after: no goals
Theorem: Equiv.finsetCongr_refl
File: Mathlib/Data/Finset/Image.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
⊢ (Equiv.refl α).finsetCongr = Equiv.refl (Finset α)
state_after: case H.a
α : Type u_1
β : Type u_2
γ : Type u_3
x✝ : Finset α
a✝ : α
⊢ a✝ ∈ (Equiv.refl α).finsetCongr x✝ ↔ a✝ ∈ (Equiv.refl (Finset α)) x✝

tactic: simp
state_before: case H.a
α : Type u_1
β : Type u_2
γ : Type u_3
x✝ : Finset α
a✝ : α
⊢ a✝ ∈ (Equiv.refl α).finsetCongr x✝ ↔ a✝ ∈ (Equiv.refl (Finset α)) x✝
state_after: no goals
Theorem: mem_openSegment_of_gauge_lt_one
File: Mathlib/Analysis/Convex/Gauge.lean

tactic: rcases exists_lt_of_gauge_lt absorbs hgauge with ⟨r, hr₀, hr₁, y, hy, rfl⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
x : E
a : ℝ
absorbs : Absorbent ℝ s
hgauge : gauge s x < 1
⊢ ∃ y ∈ s, x ∈ openSegment ℝ 0 y
state_after: case intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
absorbs : Absorbent ℝ s
r : ℝ
hr₀ : 0 < r
hr₁ : r < 1
y : E
hy : y ∈ s
hgauge : gauge s ((fun x => r • x) y) < 1
⊢ ∃ y_1 ∈ s, (fun x => r • x) y ∈ openSegment ℝ 0 y_1

tactic: refine ⟨y, hy, 1 - r, r, ?_⟩
state_before: case intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
absorbs : Absorbent ℝ s
r : ℝ
hr₀ : 0 < r
hr₁ : r < 1
y : E
hy : y ∈ s
hgauge : gauge s ((fun x => r • x) y) < 1
⊢ ∃ y_1 ∈ s, (fun x => r • x) y ∈ openSegment ℝ 0 y_1
state_after: case intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
absorbs : Absorbent ℝ s
r : ℝ
hr₀ : 0 < r
hr₁ : r < 1
y : E
hy : y ∈ s
hgauge : gauge s ((fun x => r • x) y) < 1
⊢ 0 < 1 - r ∧ 0 < r ∧ 1 - r + r = 1 ∧ (1 - r) • 0 + r • y = (fun x => r • x) y

tactic: simp [*]
state_before: case intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
absorbs : Absorbent ℝ s
r : ℝ
hr₀ : 0 < r
hr₁ : r < 1
y : E
hy : y ∈ s
hgauge : gauge s ((fun x => r • x) y) < 1
⊢ 0 < 1 - r ∧ 0 < r ∧ 1 - r + r = 1 ∧ (1 - r) • 0 + r • y = (fun x => r • x) y
state_after: no goals
Theorem: Finset.iInf_finset_image
File: Mathlib/Data/Finset/Lattice.lean

tactic: rw [← iInf_coe, coe_image, iInf_image, iInf_coe]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝¹ : CompleteLattice β
inst✝ : DecidableEq α
f : γ → α
g : α → β
s : Finset γ
⊢ ⨅ x ∈ image f s, g x = ⨅ y ∈ s, g (f y)
state_after: no goals
Theorem: Multiset.le_singleton
File: Mathlib/Data/Multiset/Basic.lean

tactic: simp only [cons_zero, ← coe_singleton, quot_mk_to_coe'', coe_le,
coe_eq_zero, coe_eq_coe, perm_singleton, subperm_singleton_iff]
state_before: α : Type u_1
β : Type v
γ : Type u_2
s t : Multiset α
a : α
l : List α
⊢ Quot.mk Setoid.r l ≤ {a} ↔ Quot.mk Setoid.r l = 0 ∨ Quot.mk Setoid.r l = {a}
state_after: no goals
Theorem: Int.cofinite_eq
File: Mathlib/Topology/Instances/Int.lean

tactic: rw [← cocompact_eq_cofinite, cocompact_eq_atBot_atTop]
state_before: ⊢ cofinite = atBot ⊔ atTop
state_after: no goals
Theorem: conj_eq_one_iff
File: Mathlib/Algebra/Group/Basic.lean

tactic: rw [mul_inv_eq_one, mul_right_eq_self]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a b c d : G
n : ℤ
⊢ a * b * a⁻¹ = 1 ↔ b = 1
state_after: no goals
Theorem: WithSeminorms.continuousSMul
File: Mathlib/Analysis/LocallyConvex/WithSeminorms.lean

tactic: exact ModuleFilterBasis.continuousSMul _
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
⊢ ContinuousSMul 𝕜 E
state_after: no goals
Theorem: ProbabilityTheory.kernel.bind_smul
File: Mathlib/Probability/Kernel/Invariance.lean

tactic: ext1 s hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
μ : Measure α
r : ℝ≥0∞
⊢ (r • μ).bind ⇑κ = r • μ.bind ⇑κ
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
μ : Measure α
r : ℝ≥0∞
s : Set β
hs : MeasurableSet s
⊢ ((r • μ).bind ⇑κ) s = (r • μ.bind ⇑κ) s

tactic: rw [Measure.bind_apply hs (kernel.measurable _), lintegral_smul_measure, Measure.coe_smul,
  Pi.smul_apply, Measure.bind_apply hs (kernel.measurable _), smul_eq_mul]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
μ : Measure α
r : ℝ≥0∞
s : Set β
hs : MeasurableSet s
⊢ ((r • μ).bind ⇑κ) s = (r • μ.bind ⇑κ) s
state_after: no goals
Theorem: RingHom.ker_isPrime
File: Mathlib/RingTheory/Ideal/Maps.lean

tactic: rw [Ne, Ideal.eq_top_iff_one]
state_before: R : Type u
S : Type v
T : Type w
F : Type u_1
inst✝⁴ : Ring R
inst✝³ : Ring S
inst✝² : IsDomain S
inst✝¹ : FunLike F R S
inst✝ : RingHomClass F R S
f : F
⊢ ker f ≠ ⊤
state_after: R : Type u
S : Type v
T : Type w
F : Type u_1
inst✝⁴ : Ring R
inst✝³ : Ring S
inst✝² : IsDomain S
inst✝¹ : FunLike F R S
inst✝ : RingHomClass F R S
f : F
⊢ 1 ∉ ker f

tactic: exact not_one_mem_ker f
state_before: R : Type u
S : Type v
T : Type w
F : Type u_1
inst✝⁴ : Ring R
inst✝³ : Ring S
inst✝² : IsDomain S
inst✝¹ : FunLike F R S
inst✝ : RingHomClass F R S
f : F
⊢ 1 ∉ ker f
state_after: no goals

tactic: simpa only [mem_ker, map_mul] using @eq_zero_or_eq_zero_of_mul_eq_zero S _ _ _ _ _
state_before: R : Type u
S : Type v
T : Type w
F : Type u_1
inst✝⁴ : Ring R
inst✝³ : Ring S
inst✝² : IsDomain S
inst✝¹ : FunLike F R S
inst✝ : RingHomClass F R S
f : F
x y : R
⊢ x * y ∈ ker f → x ∈ ker f ∨ y ∈ ker f
state_after: no goals
Theorem: Nat.factoredNumbers_empty
File: Mathlib/NumberTheory/SmoothNumbers.lean

tactic: ext m
state_before: ⊢ factoredNumbers ∅ = {1}
state_after: case h
m : ℕ
⊢ m ∈ factoredNumbers ∅ ↔ m ∈ {1}

tactic: simp only [mem_factoredNumbers, Finset.not_mem_empty, ← List.eq_nil_iff_forall_not_mem,
  factors_eq_nil, and_or_left, not_and_self_iff, ne_and_eq_iff_right zero_ne_one, false_or,
  Set.mem_singleton_iff]
state_before: case h
m : ℕ
⊢ m ∈ factoredNumbers ∅ ↔ m ∈ {1}
state_after: no goals
Theorem: MeasureTheory.snorm'_eq_zero_of_ae_zero'
File: Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean

tactic: rw [snorm'_congr_ae hf_zero, snorm'_zero' hq0_ne hμ]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq0_ne : q ≠ 0
hμ : μ ≠ 0
f : α → F
hf_zero : f =ᶠ[ae μ] 0
⊢ snorm' f q μ = 0
state_after: no goals
Theorem: Polynomial.natDegree_sub_eq_of_prod_eq
File: Mathlib/Algebra/Polynomial/RingDivision.lean

tactic: rw [sub_eq_sub_iff_add_eq_add]
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q p₁ p₂ q₁ q₂ : R[X]
hp₁ : p₁ ≠ 0
hq₁ : q₁ ≠ 0
hp₂ : p₂ ≠ 0
hq₂ : q₂ ≠ 0
h_eq : p₁ * q₂ = p₂ * q₁
⊢ ↑p₁.natDegree - ↑q₁.natDegree = ↑p₂.natDegree - ↑q₂.natDegree
state_after: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q p₁ p₂ q₁ q₂ : R[X]
hp₁ : p₁ ≠ 0
hq₁ : q₁ ≠ 0
hp₂ : p₂ ≠ 0
hq₂ : q₂ ≠ 0
h_eq : p₁ * q₂ = p₂ * q₁
⊢ ↑p₁.natDegree + ↑q₂.natDegree = ↑p₂.natDegree + ↑q₁.natDegree

tactic: norm_cast
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q p₁ p₂ q₁ q₂ : R[X]
hp₁ : p₁ ≠ 0
hq₁ : q₁ ≠ 0
hp₂ : p₂ ≠ 0
hq₂ : q₂ ≠ 0
h_eq : p₁ * q₂ = p₂ * q₁
⊢ ↑p₁.natDegree + ↑q₂.natDegree = ↑p₂.natDegree + ↑q₁.natDegree
state_after: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q p₁ p₂ q₁ q₂ : R[X]
hp₁ : p₁ ≠ 0
hq₁ : q₁ ≠ 0
hp₂ : p₂ ≠ 0
hq₂ : q₂ ≠ 0
h_eq : p₁ * q₂ = p₂ * q₁
⊢ p₁.natDegree + q₂.natDegree = p₂.natDegree + q₁.natDegree

tactic: rw [← natDegree_mul hp₁ hq₂, ← natDegree_mul hp₂ hq₁, h_eq]
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q p₁ p₂ q₁ q₂ : R[X]
hp₁ : p₁ ≠ 0
hq₁ : q₁ ≠ 0
hp₂ : p₂ ≠ 0
hq₂ : q₂ ≠ 0
h_eq : p₁ * q₂ = p₂ * q₁
⊢ p₁.natDegree + q₂.natDegree = p₂.natDegree + q₁.natDegree
state_after: no goals
Theorem: real_inner_mul_inner_self_le
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: rw [real_inner_comm y, ← norm_mul]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
x y : F
⊢ ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ ≤ ‖⟪x, y⟫_ℝ‖ * ‖⟪y, x⟫_ℝ‖
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
x y : F
⊢ ⟪y, x⟫_ℝ * ⟪y, x⟫_ℝ ≤ ‖⟪y, x⟫_ℝ * ⟪y, x⟫_ℝ‖

tactic: exact le_abs_self _
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
x y : F
⊢ ⟪y, x⟫_ℝ * ⟪y, x⟫_ℝ ≤ ‖⟪y, x⟫_ℝ * ⟪y, x⟫_ℝ‖
state_after: no goals
Theorem: List.Nodup.sigma
File: Mathlib/Data/List/Nodup.lean

tactic: injection h with _ h
state_before: α : Type u
β : Type v
l l₁ l₂✝ : List α
r : α → α → Prop
a✝ b✝ : α
σ : α → Type u_1
l₂ : (a : α) → List (σ a)
d₁ : l₁.Nodup
d₂ : ∀ (a : α), (l₂ a).Nodup
a : α
x✝ : a ∈ l₁
b b' : σ a
h : ⟨a, b⟩ = ⟨a, b'⟩
⊢ b = b'
state_after: no goals

tactic: rcases mem_map.1 h₁ with ⟨b₁, _, rfl⟩
state_before: α : Type u
β : Type v
l l₁ l₂✝ : List α
r : α → α → Prop
a b : α
σ : α → Type u_1
l₂ : (a : α) → List (σ a)
d₁ : l₁.Nodup
d₂ : ∀ (a : α), (l₂ a).Nodup
a₁ a₂ : α
n : a₁ ≠ a₂
x : (a : α) × σ a
h₁ : x ∈ map (Sigma.mk a₁) (l₂ a₁)
h₂ : x ∈ map (Sigma.mk a₂) (l₂ a₂)
⊢ False
state_after: case intro.intro
α : Type u
β : Type v
l l₁ l₂✝ : List α
r : α → α → Prop
a b : α
σ : α → Type u_1
l₂ : (a : α) → List (σ a)
d₁ : l₁.Nodup
d₂ : ∀ (a : α), (l₂ a).Nodup
a₁ a₂ : α
n : a₁ ≠ a₂
b₁ : σ a₁
left✝ : b₁ ∈ l₂ a₁
h₁ : ⟨a₁, b₁⟩ ∈ map (Sigma.mk a₁) (l₂ a₁)
h₂ : ⟨a₁, b₁⟩ ∈ map (Sigma.mk a₂) (l₂ a₂)
⊢ False

tactic: rcases mem_map.1 h₂ with ⟨b₂, mb₂, ⟨⟩⟩
state_before: case intro.intro
α : Type u
β : Type v
l l₁ l₂✝ : List α
r : α → α → Prop
a b : α
σ : α → Type u_1
l₂ : (a : α) → List (σ a)
d₁ : l₁.Nodup
d₂ : ∀ (a : α), (l₂ a).Nodup
a₁ a₂ : α
n : a₁ ≠ a₂
b₁ : σ a₁
left✝ : b₁ ∈ l₂ a₁
h₁ : ⟨a₁, b₁⟩ ∈ map (Sigma.mk a₁) (l₂ a₁)
h₂ : ⟨a₁, b₁⟩ ∈ map (Sigma.mk a₂) (l₂ a₂)
⊢ False
state_after: case intro.intro.intro.intro.refl
α : Type u
β : Type v
l l₁ l₂✝ : List α
r : α → α → Prop
a b : α
σ : α → Type u_1
l₂ : (a : α) → List (σ a)
d₁ : l₁.Nodup
d₂ : ∀ (a : α), (l₂ a).Nodup
a₁ : α
b₁ : σ a₁
left✝ : b₁ ∈ l₂ a₁
h₁ : ⟨a₁, b₁⟩ ∈ map (Sigma.mk a₁) (l₂ a₁)
n : a₁ ≠ a₁
h₂ : ⟨a₁, b₁⟩ ∈ map (Sigma.mk a₁) (l₂ a₁)
mb₂ : b₁ ∈ l₂ a₁
⊢ False

tactic: exact n rfl
state_before: case intro.intro.intro.intro.refl
α : Type u
β : Type v
l l₁ l₂✝ : List α
r : α → α → Prop
a b : α
σ : α → Type u_1
l₂ : (a : α) → List (σ a)
d₁ : l₁.Nodup
d₂ : ∀ (a : α), (l₂ a).Nodup
a₁ : α
b₁ : σ a₁
left✝ : b₁ ∈ l₂ a₁
h₁ : ⟨a₁, b₁⟩ ∈ map (Sigma.mk a₁) (l₂ a₁)
n : a₁ ≠ a₁
h₂ : ⟨a₁, b₁⟩ ∈ map (Sigma.mk a₁) (l₂ a₁)
mb₂ : b₁ ∈ l₂ a₁
⊢ False
state_after: no goals
Theorem: MeasureTheory.integral_fun_snd
File: Mathlib/MeasureTheory/Constructions/Prod/Integral.lean

tactic: simpa using integral_prod_smul (1 : α → ℝ) f
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝¹⁰ : MeasurableSpace α
inst✝⁹ : MeasurableSpace α'
inst✝⁸ : MeasurableSpace β
inst✝⁷ : MeasurableSpace β'
inst✝⁶ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : SigmaFinite ν
inst✝³ : NormedSpace ℝ E
inst✝² : SigmaFinite μ
E' : Type u_7
inst✝¹ : NormedAddCommGroup E'
inst✝ : NormedSpace ℝ E'
f : β → E
⊢ ∫ (z : α × β), f z.2 ∂μ.prod ν = (μ univ).toReal • ∫ (y : β), f y ∂ν
state_after: no goals