1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: FractionalIdeal.spanSingleton_eq_spanSingleton
File: Mathlib/RingTheory/FractionalIdeal/Operations.lean

tactic: rw [← Submodule.span_singleton_eq_span_singleton, spanSingleton, spanSingleton]
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
inst✝¹ : IsFractionRing R₁ K
inst✝ : NoZeroSMulDivisors R P
x y : P
⊢ spanSingleton S x = spanSingleton S y ↔ ∃ z, z • x = y
state_after: 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
inst✝¹ : IsFractionRing R₁ K
inst✝ : NoZeroSMulDivisors R P
x y : P
⊢ ⟨span R {x}, ⋯⟩ = ⟨span R {y}, ⋯⟩ ↔ span R {x} = span R {y}

tactic: exact Subtype.mk_eq_mk
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
inst✝¹ : IsFractionRing R₁ K
inst✝ : NoZeroSMulDivisors R P
x y : P
⊢ ⟨span R {x}, ⋯⟩ = ⟨span R {y}, ⋯⟩ ↔ span R {x} = span R {y}
state_after: no goals
Theorem: Algebra.isAlgebraic_iff_isIntegral
File: Mathlib/RingTheory/Algebraic.lean

tactic: rw [Algebra.isAlgebraic_def, Algebra.isIntegral_def,
    forall_congr' fun _ ↦ isAlgebraic_iff_isIntegral]
state_before: K : Type u
A : Type v
inst✝² : Field K
inst✝¹ : Ring A
inst✝ : Algebra K A
⊢ Algebra.IsAlgebraic K A ↔ Algebra.IsIntegral K A
state_after: no goals
Theorem: PFun.mem_toSubtype_iff
File: Mathlib/Data/PFun.lean

tactic: rw [toSubtype_apply, Part.mem_mk_iff, exists_subtype_mk_eq_iff, eq_comm]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ι : Type u_6
f✝ : α →. β
p : β → Prop
f : α → β
a : α
b : Subtype p
⊢ b ∈ toSubtype p f a ↔ ↑b = f a
state_after: no goals
Theorem: OreLocalization.numeratorHom_inj
File: Mathlib/RingTheory/OreLocalization/Ring.lean

tactic: rw [numeratorHom_apply, numeratorHom_apply, oreDiv_eq_iff] at h
state_before: R : Type u_1
inst✝¹ : Ring R
S : Submonoid R
inst✝ : OreSet S
hS : S ≤ nonZeroDivisorsRight R
r₁ r₂ : R
h : numeratorHom r₁ = numeratorHom r₂
⊢ r₁ = r₂
state_after: R : Type u_1
inst✝¹ : Ring R
S : Submonoid R
inst✝ : OreSet S
hS : S ≤ nonZeroDivisorsRight R
r₁ r₂ : R
h : ∃ u v, u • r₂ = v • r₁ ∧ ↑u * ↑1 = v * ↑1
⊢ r₁ = r₂

tactic: rcases h with ⟨u, v, h₁, h₂⟩
state_before: R : Type u_1
inst✝¹ : Ring R
S : Submonoid R
inst✝ : OreSet S
hS : S ≤ nonZeroDivisorsRight R
r₁ r₂ : R
h : ∃ u v, u • r₂ = v • r₁ ∧ ↑u * ↑1 = v * ↑1
⊢ r₁ = r₂
state_after: case intro.intro.intro
R : Type u_1
inst✝¹ : Ring R
S : Submonoid R
inst✝ : OreSet S
hS : S ≤ nonZeroDivisorsRight R
r₁ r₂ : R
u : ↥S
v : R
h₁ : u • r₂ = v • r₁
h₂ : ↑u * ↑1 = v * ↑1
⊢ r₁ = r₂

tactic: simp only [S.coe_one, mul_one, Submonoid.smul_def, smul_eq_mul] at h₁ h₂
state_before: case intro.intro.intro
R : Type u_1
inst✝¹ : Ring R
S : Submonoid R
inst✝ : OreSet S
hS : S ≤ nonZeroDivisorsRight R
r₁ r₂ : R
u : ↥S
v : R
h₁ : u • r₂ = v • r₁
h₂ : ↑u * ↑1 = v * ↑1
⊢ r₁ = r₂
state_after: case intro.intro.intro
R : Type u_1
inst✝¹ : Ring R
S : Submonoid R
inst✝ : OreSet S
hS : S ≤ nonZeroDivisorsRight R
r₁ r₂ : R
u : ↥S
v : R
h₁ : ↑u * r₂ = v * r₁
h₂ : ↑u = v
⊢ r₁ = r₂

tactic: rw [← h₂, ← sub_eq_zero, ← mul_sub] at h₁
state_before: case intro.intro.intro
R : Type u_1
inst✝¹ : Ring R
S : Submonoid R
inst✝ : OreSet S
hS : S ≤ nonZeroDivisorsRight R
r₁ r₂ : R
u : ↥S
v : R
h₁ : ↑u * r₂ = v * r₁
h₂ : ↑u = v
⊢ r₁ = r₂
state_after: case intro.intro.intro
R : Type u_1
inst✝¹ : Ring R
S : Submonoid R
inst✝ : OreSet S
hS : S ≤ nonZeroDivisorsRight R
r₁ r₂ : R
u : ↥S
v : R
h₁ : ↑u * (r₂ - r₁) = 0
h₂ : ↑u = v
⊢ r₁ = r₂

tactic: exact (sub_eq_zero.mp (hS u.2 _ h₁)).symm
state_before: case intro.intro.intro
R : Type u_1
inst✝¹ : Ring R
S : Submonoid R
inst✝ : OreSet S
hS : S ≤ nonZeroDivisorsRight R
r₁ r₂ : R
u : ↥S
v : R
h₁ : ↑u * (r₂ - r₁) = 0
h₂ : ↑u = v
⊢ r₁ = r₂
state_after: no goals
Theorem: Polynomial.coeff_hermite_succ_zero
File: Mathlib/RingTheory/Polynomial/Hermite/Basic.lean

tactic: simp [coeff_derivative]
state_before: n : ℕ
⊢ (hermite (n + 1)).coeff 0 = -(hermite n).coeff 1
state_after: no goals
Theorem: Finset.image₂_inter_union_subset_union
File: Mathlib/Data/Finset/NAry.lean

tactic: push_cast
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁹ : DecidableEq α'
inst✝⁸ : DecidableEq β'
inst✝⁷ : DecidableEq γ
inst✝⁶ : DecidableEq γ'
inst✝⁵ : DecidableEq δ
inst✝⁴ : DecidableEq δ'
inst✝³ : DecidableEq ε
inst✝² : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
⊢ ↑(image₂ f (s ∩ s') (t ∪ t')) ⊆ ↑(image₂ f s t ∪ image₂ f s' t')
state_after: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁹ : DecidableEq α'
inst✝⁸ : DecidableEq β'
inst✝⁷ : DecidableEq γ
inst✝⁶ : DecidableEq γ'
inst✝⁵ : DecidableEq δ
inst✝⁴ : DecidableEq δ'
inst✝³ : DecidableEq ε
inst✝² : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
⊢ image2 f (↑s ∩ ↑s') (↑t ∪ ↑t') ⊆ image2 f ↑s ↑t ∪ image2 f ↑s' ↑t'

tactic: exact Set.image2_inter_union_subset_union
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁹ : DecidableEq α'
inst✝⁸ : DecidableEq β'
inst✝⁷ : DecidableEq γ
inst✝⁶ : DecidableEq γ'
inst✝⁵ : DecidableEq δ
inst✝⁴ : DecidableEq δ'
inst✝³ : DecidableEq ε
inst✝² : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
⊢ image2 f (↑s ∩ ↑s') (↑t ∪ ↑t') ⊆ image2 f ↑s ↑t ∪ image2 f ↑s' ↑t'
state_after: no goals
Theorem: List.nodup_ofFn_ofInjective
File: Mathlib/Data/List/FinRange.lean

tactic: rw [ofFn_eq_pmap]
state_before: α : Type u
n : ℕ
f : Fin n → α
hf : Function.Injective f
⊢ (ofFn f).Nodup
state_after: α : Type u
n : ℕ
f : Fin n → α
hf : Function.Injective f
⊢ (pmap (fun i hi => f ⟨i, hi⟩) (range n) ⋯).Nodup

tactic: exact (nodup_range n).pmap fun _ _ _ _ H => Fin.val_eq_of_eq <| hf H
state_before: α : Type u
n : ℕ
f : Fin n → α
hf : Function.Injective f
⊢ (pmap (fun i hi => f ⟨i, hi⟩) (range n) ⋯).Nodup
state_after: no goals
Theorem: Metric.hausdorffDist_closure₂
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: simp [hausdorffDist]
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
⊢ hausdorffDist s (closure t) = hausdorffDist s t
state_after: no goals
Theorem: NonUnitalRingHom.srange_eq_map
File: Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean

tactic: ext
state_before: R : Type u
S : Type v
T : Type w
inst✝⁶ : NonUnitalNonAssocSemiring R
M : Subsemigroup R
inst✝⁵ : NonUnitalNonAssocSemiring S
inst✝⁴ : NonUnitalNonAssocSemiring T
F : Type u_1
G : Type u_2
inst✝³ : FunLike F R S
inst✝² : NonUnitalRingHomClass F R S
inst✝¹ : FunLike G S T
inst✝ : NonUnitalRingHomClass G S T
f : F
g : G
⊢ srange f = map f ⊤
state_after: case h
R : Type u
S : Type v
T : Type w
inst✝⁶ : NonUnitalNonAssocSemiring R
M : Subsemigroup R
inst✝⁵ : NonUnitalNonAssocSemiring S
inst✝⁴ : NonUnitalNonAssocSemiring T
F : Type u_1
G : Type u_2
inst✝³ : FunLike F R S
inst✝² : NonUnitalRingHomClass F R S
inst✝¹ : FunLike G S T
inst✝ : NonUnitalRingHomClass G S T
f : F
g : G
x✝ : S
⊢ x✝ ∈ srange f ↔ x✝ ∈ map f ⊤

tactic: simp
state_before: case h
R : Type u
S : Type v
T : Type w
inst✝⁶ : NonUnitalNonAssocSemiring R
M : Subsemigroup R
inst✝⁵ : NonUnitalNonAssocSemiring S
inst✝⁴ : NonUnitalNonAssocSemiring T
F : Type u_1
G : Type u_2
inst✝³ : FunLike F R S
inst✝² : NonUnitalRingHomClass F R S
inst✝¹ : FunLike G S T
inst✝ : NonUnitalRingHomClass G S T
f : F
g : G
x✝ : S
⊢ x✝ ∈ srange f ↔ x✝ ∈ map f ⊤
state_after: no goals
Theorem: finprod_curry₃
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: rw [finprod_curry f h]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a b : α
s t : Set α
γ : Type u_7
f : α × β × γ → M
h : (mulSupport f).Finite
⊢ ∏ᶠ (abc : α × β × γ), f abc = ∏ᶠ (a : α) (b : β) (c : γ), f (a, b, c)
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a b : α
s t : Set α
γ : Type u_7
f : α × β × γ → M
h : (mulSupport f).Finite
⊢ ∏ᶠ (a : α) (b : β × γ), f (a, b) = ∏ᶠ (a : α) (b : β) (c : γ), f (a, b, c)

tactic: congr
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a b : α
s t : Set α
γ : Type u_7
f : α × β × γ → M
h : (mulSupport f).Finite
⊢ ∏ᶠ (a : α) (b : β × γ), f (a, b) = ∏ᶠ (a : α) (b : β) (c : γ), f (a, b, c)
state_after: case e_f
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a b : α
s t : Set α
γ : Type u_7
f : α × β × γ → M
h : (mulSupport f).Finite
⊢ (fun a => ∏ᶠ (b : β × γ), f (a, b)) = fun a => ∏ᶠ (b : β) (c : γ), f (a, b, c)

tactic: ext a
state_before: case e_f
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a b : α
s t : Set α
γ : Type u_7
f : α × β × γ → M
h : (mulSupport f).Finite
⊢ (fun a => ∏ᶠ (b : β × γ), f (a, b)) = fun a => ∏ᶠ (b : β) (c : γ), f (a, b, c)
state_after: case e_f.h
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a✝ b : α
s t : Set α
γ : Type u_7
f : α × β × γ → M
h : (mulSupport f).Finite
a : α
⊢ ∏ᶠ (b : β × γ), f (a, b) = ∏ᶠ (b : β) (c : γ), f (a, b, c)

tactic: rw [finprod_curry]
state_before: case e_f.h
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a✝ b : α
s t : Set α
γ : Type u_7
f : α × β × γ → M
h : (mulSupport f).Finite
a : α
⊢ ∏ᶠ (b : β × γ), f (a, b) = ∏ᶠ (b : β) (c : γ), f (a, b, c)
state_after: case e_f.h.hf
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a✝ b : α
s t : Set α
γ : Type u_7
f : α × β × γ → M
h : (mulSupport f).Finite
a : α
⊢ (mulSupport fun b => f (a, b)).Finite

tactic: simp [h]
state_before: case e_f.h.hf
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a✝ b : α
s t : Set α
γ : Type u_7
f : α × β × γ → M
h : (mulSupport f).Finite
a : α
⊢ (mulSupport fun b => f (a, b)).Finite
state_after: no goals
Theorem: PowerSeries.derivative_X
File: Mathlib/RingTheory/PowerSeries/Derivative.lean

tactic: ext
state_before: R : Type u_1
inst✝ : CommSemiring R
⊢ (d⁄dX R) X = 1
state_after: case h
R : Type u_1
inst✝ : CommSemiring R
n✝ : ℕ
⊢ (coeff R n✝) ((d⁄dX R) X) = (coeff R n✝) 1

tactic: rw [coeff_derivative, coeff_one, coeff_X, boole_mul]
state_before: case h
R : Type u_1
inst✝ : CommSemiring R
n✝ : ℕ
⊢ (coeff R n✝) ((d⁄dX R) X) = (coeff R n✝) 1
state_after: case h
R : Type u_1
inst✝ : CommSemiring R
n✝ : ℕ
⊢ (if n✝ + 1 = 1 then ↑n✝ + 1 else 0) = if n✝ = 0 then 1 else 0

tactic: simp_rw [add_left_eq_self]
state_before: case h
R : Type u_1
inst✝ : CommSemiring R
n✝ : ℕ
⊢ (if n✝ + 1 = 1 then ↑n✝ + 1 else 0) = if n✝ = 0 then 1 else 0
state_after: case h
R : Type u_1
inst✝ : CommSemiring R
n✝ : ℕ
⊢ (if n✝ = 0 then ↑n✝ + 1 else 0) = if n✝ = 0 then 1 else 0

tactic: split_ifs with h
state_before: case h
R : Type u_1
inst✝ : CommSemiring R
n✝ : ℕ
⊢ (if n✝ = 0 then ↑n✝ + 1 else 0) = if n✝ = 0 then 1 else 0
state_after: case pos
R : Type u_1
inst✝ : CommSemiring R
n✝ : ℕ
h : n✝ = 0
⊢ ↑n✝ + 1 = 1

case neg
R : Type u_1
inst✝ : CommSemiring R
n✝ : ℕ
h : ¬n✝ = 0
⊢ 0 = 0

tactic: rw [h, cast_zero, zero_add]
state_before: case pos
R : Type u_1
inst✝ : CommSemiring R
n✝ : ℕ
h : n✝ = 0
⊢ ↑n✝ + 1 = 1
state_after: no goals

tactic: rfl
state_before: case neg
R : Type u_1
inst✝ : CommSemiring R
n✝ : ℕ
h : ¬n✝ = 0
⊢ 0 = 0
state_after: no goals
Theorem: SeparationQuotient.uniformContinuous_lift'
File: Mathlib/Topology/UniformSpace/Separation.lean

tactic: by_cases hf : UniformContinuous f
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : UniformSpace α
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : T0Space β
f : α → β
⊢ UniformContinuous (lift' f)
state_after: case pos
α : Type u
β : Type v
γ : Type w
inst✝³ : UniformSpace α
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : T0Space β
f : α → β
hf : UniformContinuous f
⊢ UniformContinuous (lift' f)

case neg
α : Type u
β : Type v
γ : Type w
inst✝³ : UniformSpace α
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : T0Space β
f : α → β
hf : ¬UniformContinuous f
⊢ UniformContinuous (lift' f)

tactic: rwa [lift', dif_pos hf, uniformContinuous_lift]
state_before: case pos
α : Type u
β : Type v
γ : Type w
inst✝³ : UniformSpace α
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : T0Space β
f : α → β
hf : UniformContinuous f
⊢ UniformContinuous (lift' f)
state_after: no goals

tactic: rw [lift', dif_neg hf]
state_before: case neg
α : Type u
β : Type v
γ : Type w
inst✝³ : UniformSpace α
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : T0Space β
f : α → β
hf : ¬UniformContinuous f
⊢ UniformContinuous (lift' f)
state_after: case neg
α : Type u
β : Type v
γ : Type w
inst✝³ : UniformSpace α
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : T0Space β
f : α → β
hf : ¬UniformContinuous f
⊢ UniformContinuous fun x => f ⋯.some

tactic: exact uniformContinuous_of_const fun a _ => rfl
state_before: case neg
α : Type u
β : Type v
γ : Type w
inst✝³ : UniformSpace α
inst✝² : UniformSpace β
inst✝¹ : UniformSpace γ
inst✝ : T0Space β
f : α → β
hf : ¬UniformContinuous f
⊢ UniformContinuous fun x => f ⋯.some
state_after: no goals
Theorem: List.eraseIdx_eq_take_drop_succ
File: .lake/packages/batteries/Batteries/Data/List/EraseIdx.lean

tactic: simp
state_before: α : Type u
β : Type v
x✝ : Nat
⊢ [].eraseIdx x✝ = take x✝ [] ++ drop (x✝ + 1) []
state_after: no goals

tactic: simp
state_before: α : Type u
β : Type v
a : α
l : List α
⊢ (a :: l).eraseIdx 0 = take 0 (a :: l) ++ drop (0 + 1) (a :: l)
state_after: no goals

tactic: simp [eraseIdx_eq_take_drop_succ l i]
state_before: α : Type u
β : Type v
a : α
l : List α
i : Nat
⊢ (a :: l).eraseIdx (i + 1) = take (i + 1) (a :: l) ++ drop (i + 1 + 1) (a :: l)
state_after: no goals
Theorem: MeasureTheory.Measure.measure_sInf_le
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [sInf_apply hs]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
m : Set (Measure α)
h : μ ∈ m
this : sInf (toOuterMeasure '' m) ≤ μ.toOuterMeasure
s : Set α
hs : MeasurableSet s
⊢ (sInf m) s ≤ μ s
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
m : Set (Measure α)
h : μ ∈ m
this : sInf (toOuterMeasure '' m) ≤ μ.toOuterMeasure
s : Set α
hs : MeasurableSet s
⊢ (sInf (toOuterMeasure '' m)) s ≤ μ s

tactic: exact this s
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
m : Set (Measure α)
h : μ ∈ m
this : sInf (toOuterMeasure '' m) ≤ μ.toOuterMeasure
s : Set α
hs : MeasurableSet s
⊢ (sInf (toOuterMeasure '' m)) s ≤ μ s
state_after: no goals
Theorem: WeierstrassCurve.VariableChange.comp_id
File: Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean

tactic: simp only [comp, id, add_zero, mul_zero, one_mul, mul_one, one_pow, Units.val_one]
state_before: R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
C✝ C' C'' C : VariableChange R
⊢ C.comp id = C
state_after: no goals
Theorem: Multiset.prod_X_add_C_coeff'
File: Mathlib/RingTheory/Polynomial/Vieta.lean

tactic: erw [← map_map (fun r => X + C r) r, prod_X_add_C_coeff] <;> rw [s.card_map r]
state_before: R : Type u_1
inst✝ : CommSemiring R
σ : Type u_2
s : Multiset σ
r : σ → R
k : ℕ
h : k ≤ card s
⊢ (map (fun i => X + C (r i)) s).prod.coeff k = (map r s).esymm (card s - k)
state_after: case h
R : Type u_1
inst✝ : CommSemiring R
σ : Type u_2
s : Multiset σ
r : σ → R
k : ℕ
h : k ≤ card s
⊢ k ≤ card s

tactic: assumption
state_before: case h
R : Type u_1
inst✝ : CommSemiring R
σ : Type u_2
s : Multiset σ
r : σ → R
k : ℕ
h : k ≤ card s
⊢ k ≤ card s
state_after: no goals
Theorem: comap_norm_atTop'
File: Mathlib/Analysis/Normed/Group/Bounded.lean

tactic: simpa only [dist_one_right] using comap_dist_right_atTop (1 : E)
state_before: α : Type u_1
ι : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
⊢ comap norm atTop = cobounded E
state_after: no goals
Theorem: Polynomial.coe_eq_one_iff
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: rw [← coe_one, coe_inj]
state_before: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
φ ψ : R[X]
⊢ ↑φ = 1 ↔ φ = 1
state_after: no goals
Theorem: Finset.mem_sym2_iff
File: Mathlib/Data/Finset/Sym.lean

tactic: rw [mem_mk, sym2_val, Multiset.mem_sym2_iff]
state_before: α : Type u_1
s t : Finset α
a b : α
m : Sym2 α
⊢ m ∈ s.sym2 ↔ ∀ a ∈ m, a ∈ s
state_after: α : Type u_1
s t : Finset α
a b : α
m : Sym2 α
⊢ (∀ y ∈ m, y ∈ s.val) ↔ ∀ a ∈ m, a ∈ s

tactic: simp only [mem_val]
state_before: α : Type u_1
s t : Finset α
a b : α
m : Sym2 α
⊢ (∀ y ∈ m, y ∈ s.val) ↔ ∀ a ∈ m, a ∈ s
state_after: no goals
Theorem: HomologicalComplex₂.shape_f
File: Mathlib/Algebra/Homology/HomologicalBicomplex.lean

tactic: rw [K.shape _ _ h, zero_f]
state_before: C : Type u_1
inst✝¹ : Category.{u_4, u_1} C
inst✝ : HasZeroMorphisms C
I₁ : Type u_2
I₂ : Type u_3
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
K : HomologicalComplex₂ C c₁ c₂
i₁ i₁' : I₁
h : ¬c₁.Rel i₁ i₁'
i₂ : I₂
⊢ (K.d i₁ i₁').f i₂ = 0
state_after: no goals
Theorem: CategoryTheory.Cat.leftUnitor_inv_app
File: Mathlib/CategoryTheory/Category/Cat.lean

tactic: simp
state_before: B C : Cat
F : B ⟶ C
X : ↑B
⊢ F.obj X = (𝟙 B ≫ F).obj X
state_after: no goals
Theorem: Set.Finite.toFinset_image
File: Mathlib/Data/Set/Finite.lean

tactic: ext
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s t : Set α
a : α
hs✝ : s.Finite
ht : t.Finite
inst✝ : DecidableEq β
f : α → β
hs : s.Finite
h : (f '' s).Finite
⊢ h.toFinset = Finset.image f hs.toFinset
state_after: case a
α : Type u
β : Type v
ι : Sort w
γ : Type x
s t : Set α
a : α
hs✝ : s.Finite
ht : t.Finite
inst✝ : DecidableEq β
f : α → β
hs : s.Finite
h : (f '' s).Finite
a✝ : β
⊢ a✝ ∈ h.toFinset ↔ a✝ ∈ Finset.image f hs.toFinset

tactic: simp
state_before: case a
α : Type u
β : Type v
ι : Sort w
γ : Type x
s t : Set α
a : α
hs✝ : s.Finite
ht : t.Finite
inst✝ : DecidableEq β
f : α → β
hs : s.Finite
h : (f '' s).Finite
a✝ : β
⊢ a✝ ∈ h.toFinset ↔ a✝ ∈ Finset.image f hs.toFinset
state_after: no goals
Theorem: Fin.card_Ioc
File: Mathlib/Order/Interval/Finset/Fin.lean

tactic: rw [← Nat.card_Ioc, ← map_valEmbedding_Ioc, card_map]
state_before: n : ℕ
a b : Fin n
⊢ (Ioc a b).card = ↑b - ↑a
state_after: no goals
Theorem: Polynomial.expand_eval
File: Mathlib/Algebra/Polynomial/Expand.lean

tactic: refine Polynomial.induction_on P (fun a => by simp) (fun f g hf hg => ?_) fun n a _ => by simp
state_before: R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p✝ q p : ℕ
P : R[X]
r : R
⊢ eval r ((expand R p) P) = eval (r ^ p) P
state_after: R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p✝ q p : ℕ
P : R[X]
r : R
f g : R[X]
hf : eval r ((expand R p) f) = eval (r ^ p) f
hg : eval r ((expand R p) g) = eval (r ^ p) g
⊢ eval r ((expand R p) (f + g)) = eval (r ^ p) (f + g)

tactic: rw [AlgHom.map_add, eval_add, eval_add, hf, hg]
state_before: R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p✝ q p : ℕ
P : R[X]
r : R
f g : R[X]
hf : eval r ((expand R p) f) = eval (r ^ p) f
hg : eval r ((expand R p) g) = eval (r ^ p) g
⊢ eval r ((expand R p) (f + g)) = eval (r ^ p) (f + g)
state_after: no goals

tactic: simp
state_before: R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p✝ q p : ℕ
P : R[X]
r a : R
⊢ eval r ((expand R p) (C a)) = eval (r ^ p) (C a)
state_after: no goals

tactic: simp
state_before: R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p✝ q p : ℕ
P : R[X]
r : R
n : ℕ
a : R
x✝ : eval r ((expand R p) (C a * X ^ n)) = eval (r ^ p) (C a * X ^ n)
⊢ eval r ((expand R p) (C a * X ^ (n + 1))) = eval (r ^ p) (C a * X ^ (n + 1))
state_after: no goals
Theorem: Multiset.Rel.mono
File: Mathlib/Data/Multiset/Basic.lean

tactic: induction hst with
| zero => exact Rel.zero
| @cons a b s t hab _hst ih =>
  apply Rel.cons (h a (mem_cons_self _ _) b (mem_cons_self _ _) hab)
  exact ih fun a' ha' b' hb' h' => h a' (mem_cons_of_mem ha') b' (mem_cons_of_mem hb') h'
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r✝ : α → β → Prop
p✝ : γ → δ → Prop
r p : α → β → Prop
s : Multiset α
t : Multiset β
hst : Rel r s t
h : ∀ a ∈ s, ∀ b ∈ t, r a b → p a b
⊢ Rel p s t
state_after: no goals

tactic: exact Rel.zero
state_before: case zero
α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r✝ : α → β → Prop
p✝ : γ → δ → Prop
r p : α → β → Prop
s : Multiset α
t : Multiset β
h : ∀ a ∈ 0, ∀ b ∈ 0, r a b → p a b
⊢ Rel p 0 0
state_after: no goals

tactic: apply Rel.cons (h a (mem_cons_self _ _) b (mem_cons_self _ _) hab)
state_before: case cons
α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r✝ : α → β → Prop
p✝ : γ → δ → Prop
r p : α → β → Prop
s✝ : Multiset α
t✝ : Multiset β
a : α
b : β
s : Multiset α
t : Multiset β
hab : r a b
_hst : Rel r s t
ih : (∀ a ∈ s, ∀ b ∈ t, r a b → p a b) → Rel p s t
h : ∀ a_1 ∈ a ::ₘ s, ∀ b_1 ∈ b ::ₘ t, r a_1 b_1 → p a_1 b_1
⊢ Rel p (a ::ₘ s) (b ::ₘ t)
state_after: case cons
α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r✝ : α → β → Prop
p✝ : γ → δ → Prop
r p : α → β → Prop
s✝ : Multiset α
t✝ : Multiset β
a : α
b : β
s : Multiset α
t : Multiset β
hab : r a b
_hst : Rel r s t
ih : (∀ a ∈ s, ∀ b ∈ t, r a b → p a b) → Rel p s t
h : ∀ a_1 ∈ a ::ₘ s, ∀ b_1 ∈ b ::ₘ t, r a_1 b_1 → p a_1 b_1
⊢ Rel p s t

tactic: exact ih fun a' ha' b' hb' h' => h a' (mem_cons_of_mem ha') b' (mem_cons_of_mem hb') h'
state_before: case cons
α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r✝ : α → β → Prop
p✝ : γ → δ → Prop
r p : α → β → Prop
s✝ : Multiset α
t✝ : Multiset β
a : α
b : β
s : Multiset α
t : Multiset β
hab : r a b
_hst : Rel r s t
ih : (∀ a ∈ s, ∀ b ∈ t, r a b → p a b) → Rel p s t
h : ∀ a_1 ∈ a ::ₘ s, ∀ b_1 ∈ b ::ₘ t, r a_1 b_1 → p a_1 b_1
⊢ Rel p s t
state_after: no goals