1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: cthickening_cthickening
File: Mathlib/Analysis/NormedSpace/Pointwise.lean

tactic: simp_rw [mem_cthickening_iff, ENNReal.ofReal_add hε hδ, infEdist_cthickening]
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x✝ y z : E
δ ε : ℝ
hε : 0 ≤ ε
hδ : 0 ≤ δ
s : Set E
x : E
⊢ x ∈ cthickening (ε + δ) s → x ∈ cthickening ε (cthickening δ s)
state_after: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x✝ y z : E
δ ε : ℝ
hε : 0 ≤ ε
hδ : 0 ≤ δ
s : Set E
x : E
⊢ infEdist x s ≤ ENNReal.ofReal ε + ENNReal.ofReal δ → infEdist x s - ENNReal.ofReal δ ≤ ENNReal.ofReal ε

tactic: exact tsub_le_iff_right.2
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x✝ y z : E
δ ε : ℝ
hε : 0 ≤ ε
hδ : 0 ≤ δ
s : Set E
x : E
⊢ infEdist x s ≤ ENNReal.ofReal ε + ENNReal.ofReal δ → infEdist x s - ENNReal.ofReal δ ≤ ENNReal.ofReal ε
state_after: no goals
Theorem: MulAction.stabilizer_subgroup_op
File: Mathlib/Algebra/Pointwise/Stabilizer.lean

tactic: simp_rw [SetLike.ext_iff, mem_stabilizer_set]
state_before: G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Subgroup Gᵐᵒᵖ
⊢ stabilizer G ↑s = s.unop
state_after: G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Subgroup Gᵐᵒᵖ
⊢ ∀ (x : G), (∀ (b : Gᵐᵒᵖ), x • b ∈ ↑s ↔ b ∈ ↑s) ↔ x ∈ s.unop

tactic: refine fun a ↦ ⟨fun h ↦ ?_, fun ha b ↦ s.mul_mem_cancel_right ha⟩
state_before: G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Subgroup Gᵐᵒᵖ
⊢ ∀ (x : G), (∀ (b : Gᵐᵒᵖ), x • b ∈ ↑s ↔ b ∈ ↑s) ↔ x ∈ s.unop
state_after: G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a✝ : G
s : Subgroup Gᵐᵒᵖ
a : G
h : ∀ (b : Gᵐᵒᵖ), a • b ∈ ↑s ↔ b ∈ ↑s
⊢ a ∈ s.unop

tactic: have : 1 * MulOpposite.op a ∈ s := (h 1).2 s.one_mem
state_before: G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a✝ : G
s : Subgroup Gᵐᵒᵖ
a : G
h : ∀ (b : Gᵐᵒᵖ), a • b ∈ ↑s ↔ b ∈ ↑s
⊢ a ∈ s.unop
state_after: G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a✝ : G
s : Subgroup Gᵐᵒᵖ
a : G
h : ∀ (b : Gᵐᵒᵖ), a • b ∈ ↑s ↔ b ∈ ↑s
this : 1 * op a ∈ s
⊢ a ∈ s.unop

tactic: simpa only [op_smul_eq_mul, SetLike.mem_coe, one_mul] using this
state_before: G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a✝ : G
s : Subgroup Gᵐᵒᵖ
a : G
h : ∀ (b : Gᵐᵒᵖ), a • b ∈ ↑s ↔ b ∈ ↑s
this : 1 * op a ∈ s
⊢ a ∈ s.unop
state_after: no goals
Theorem: MvPolynomial.pderiv_map
File: Mathlib/Algebra/MvPolynomial/PDeriv.lean

tactic: apply induction_on f (fun r ↦ by simp) (fun p q hp hq ↦ by simp [hp, hq]) fun p j eq ↦ ?_
state_before: R : Type u
σ : Type v
a a' a₁ a₂ : R
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
S : Type u_1
inst✝ : CommSemiring S
φ : R →+* S
f : MvPolynomial σ R
i : σ
⊢ (pderiv i) ((map φ) f) = (map φ) ((pderiv i) f)
state_after: R : Type u
σ : Type v
a a' a₁ a₂ : R
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
S : Type u_1
inst✝ : CommSemiring S
φ : R →+* S
f : MvPolynomial σ R
i : σ
p : MvPolynomial σ R
j : σ
eq : (pderiv i) ((map φ) p) = (map φ) ((pderiv i) p)
⊢ (pderiv i) ((map φ) (p * X j)) = (map φ) ((pderiv i) (p * X j))

tactic: obtain rfl | h := eq_or_ne j i
state_before: R : Type u
σ : Type v
a a' a₁ a₂ : R
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
S : Type u_1
inst✝ : CommSemiring S
φ : R →+* S
f : MvPolynomial σ R
i : σ
p : MvPolynomial σ R
j : σ
eq : (pderiv i) ((map φ) p) = (map φ) ((pderiv i) p)
⊢ (pderiv i) ((map φ) (p * X j)) = (map φ) ((pderiv i) (p * X j))
state_after: case inl
R : Type u
σ : Type v
a a' a₁ a₂ : R
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
S : Type u_1
inst✝ : CommSemiring S
φ : R →+* S
f p : MvPolynomial σ R
j : σ
eq : (pderiv j) ((map φ) p) = (map φ) ((pderiv j) p)
⊢ (pderiv j) ((map φ) (p * X j)) = (map φ) ((pderiv j) (p * X j))

case inr
R : Type u
σ : Type v
a a' a₁ a₂ : R
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
S : Type u_1
inst✝ : CommSemiring S
φ : R →+* S
f : MvPolynomial σ R
i : σ
p : MvPolynomial σ R
j : σ
eq : (pderiv i) ((map φ) p) = (map φ) ((pderiv i) p)
h : j ≠ i
⊢ (pderiv i) ((map φ) (p * X j)) = (map φ) ((pderiv i) (p * X j))

tactic: simp
state_before: R : Type u
σ : Type v
a a' a₁ a₂ : R
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
S : Type u_1
inst✝ : CommSemiring S
φ : R →+* S
f : MvPolynomial σ R
i : σ
r : R
⊢ (pderiv i) ((map φ) (C r)) = (map φ) ((pderiv i) (C r))
state_after: no goals

tactic: simp [hp, hq]
state_before: R : Type u
σ : Type v
a a' a₁ a₂ : R
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
S : Type u_1
inst✝ : CommSemiring S
φ : R →+* S
f : MvPolynomial σ R
i : σ
p q : MvPolynomial σ R
hp : (pderiv i) ((map φ) p) = (map φ) ((pderiv i) p)
hq : (pderiv i) ((map φ) q) = (map φ) ((pderiv i) q)
⊢ (pderiv i) ((map φ) (p + q)) = (map φ) ((pderiv i) (p + q))
state_after: no goals

tactic: simp [eq]
state_before: case inl
R : Type u
σ : Type v
a a' a₁ a₂ : R
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
S : Type u_1
inst✝ : CommSemiring S
φ : R →+* S
f p : MvPolynomial σ R
j : σ
eq : (pderiv j) ((map φ) p) = (map φ) ((pderiv j) p)
⊢ (pderiv j) ((map φ) (p * X j)) = (map φ) ((pderiv j) (p * X j))
state_after: no goals

tactic: simp [eq, h]
state_before: case inr
R : Type u
σ : Type v
a a' a₁ a₂ : R
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
S : Type u_1
inst✝ : CommSemiring S
φ : R →+* S
f : MvPolynomial σ R
i : σ
p : MvPolynomial σ R
j : σ
eq : (pderiv i) ((map φ) p) = (map φ) ((pderiv i) p)
h : j ≠ i
⊢ (pderiv i) ((map φ) (p * X j)) = (map φ) ((pderiv i) (p * X j))
state_after: no goals
Theorem: Ideal.finite_mulSupport_coe
File: Mathlib/RingTheory/DedekindDomain/Factorization.lean

tactic: rw [mulSupport]
state_before: R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v : HeightOneSpectrum R
I : Ideal R
hI : I ≠ 0
⊢ (mulSupport fun v => ↑v.asIdeal ^ ↑((Associates.mk v.asIdeal).count (Associates.mk I).factors)).Finite
state_after: R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v : HeightOneSpectrum R
I : Ideal R
hI : I ≠ 0
⊢ {x | ↑x.asIdeal ^ ↑((Associates.mk x.asIdeal).count (Associates.mk I).factors) ≠ 1}.Finite

tactic: simp_rw [Ne, zpow_natCast, ← FractionalIdeal.coeIdeal_pow, FractionalIdeal.coeIdeal_eq_one]
state_before: R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v : HeightOneSpectrum R
I : Ideal R
hI : I ≠ 0
⊢ {x | ↑x.asIdeal ^ ↑((Associates.mk x.asIdeal).count (Associates.mk I).factors) ≠ 1}.Finite
state_after: R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v : HeightOneSpectrum R
I : Ideal R
hI : I ≠ 0
⊢ {x | ¬x.asIdeal ^ (Associates.mk x.asIdeal).count (Associates.mk I).factors = 1}.Finite

tactic: exact finite_mulSupport hI
state_before: R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v : HeightOneSpectrum R
I : Ideal R
hI : I ≠ 0
⊢ {x | ¬x.asIdeal ^ (Associates.mk x.asIdeal).count (Associates.mk I).factors = 1}.Finite
state_after: no goals
Theorem: CategoryTheory.ShortComplex.rightHomologyMap_nullHomotopic
File: Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean

tactic: apply rightHomologyMap'_nullHomotopic
state_before: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ₁ φ₂ φ₃ φ₄ : S₁ ⟶ S₂
inst✝¹ : S₁.HasRightHomology
inst✝ : S₂.HasRightHomology
h₀ : S₁.X₁ ⟶ S₂.X₁
h₀_f : h₀ ≫ S₂.f = 0
h₁ : S₁.X₂ ⟶ S₂.X₁
h₂ : S₁.X₃ ⟶ S₂.X₂
h₃ : S₁.X₃ ⟶ S₂.X₃
g_h₃ : S₁.g ≫ h₃ = 0
⊢ rightHomologyMap (S₁.nullHomotopic S₂ h₀ h₀_f h₁ h₂ h₃ g_h₃) = 0
state_after: no goals
Theorem: Array.extract_append_left
File: Mathlib/Data/Array/ExtractLemmas.lean

tactic: apply ext
state_before: α : Type u_1
a b : Array α
i j : Nat
h : j ≤ a.size
⊢ (a ++ b).extract i j = a.extract i j
state_after: case h₁
α : Type u_1
a b : Array α
i j : Nat
h : j ≤ a.size
⊢ ((a ++ b).extract i j).size = (a.extract i j).size

case h₂
α : Type u_1
a b : Array α
i j : Nat
h : j ≤ a.size
⊢ ∀ (i_1 : Nat) (hi₁ : i_1 < ((a ++ b).extract i j).size) (hi₂ : i_1 < (a.extract i j).size),
    ((a ++ b).extract i j)[i_1] = (a.extract i j)[i_1]

tactic: simp only [size_extract, size_append]
state_before: case h₁
α : Type u_1
a b : Array α
i j : Nat
h : j ≤ a.size
⊢ ((a ++ b).extract i j).size = (a.extract i j).size
state_after: case h₁
α : Type u_1
a b : Array α
i j : Nat
h : j ≤ a.size
⊢ min j (a.size + b.size) - i = min j a.size - i

tactic: omega
state_before: case h₁
α : Type u_1
a b : Array α
i j : Nat
h : j ≤ a.size
⊢ min j (a.size + b.size) - i = min j a.size - i
state_after: no goals

tactic: intro h1 h2 h3
state_before: case h₂
α : Type u_1
a b : Array α
i j : Nat
h : j ≤ a.size
⊢ ∀ (i_1 : Nat) (hi₁ : i_1 < ((a ++ b).extract i j).size) (hi₂ : i_1 < (a.extract i j).size),
    ((a ++ b).extract i j)[i_1] = (a.extract i j)[i_1]
state_after: case h₂
α : Type u_1
a b : Array α
i j : Nat
h : j ≤ a.size
h1 : Nat
h2 : h1 < ((a ++ b).extract i j).size
h3 : h1 < (a.extract i j).size
⊢ ((a ++ b).extract i j)[h1] = (a.extract i j)[h1]

tactic: rw [get_extract, get_append_left, get_extract]
state_before: case h₂
α : Type u_1
a b : Array α
i j : Nat
h : j ≤ a.size
h1 : Nat
h2 : h1 < ((a ++ b).extract i j).size
h3 : h1 < (a.extract i j).size
⊢ ((a ++ b).extract i j)[h1] = (a.extract i j)[h1]
state_after: no goals
Theorem: Real.sinh_sub_id_strictMono
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean

tactic: refine strictMono_of_odd_strictMonoOn_nonneg (fun x => by simp; abel) ?_
state_before: x y z : ℝ
⊢ StrictMono fun x => sinh x - x
state_after: x y z : ℝ
⊢ StrictMonoOn (fun x => sinh x - x) (Ici 0)

tactic: refine strictMonoOn_of_deriv_pos (convex_Ici _) ?_ fun x hx => ?_
state_before: x y z : ℝ
⊢ StrictMonoOn (fun x => sinh x - x) (Ici 0)
state_after: case refine_1
x y z : ℝ
⊢ ContinuousOn (fun x => sinh x - x) (Ici 0)

case refine_2
x✝ y z x : ℝ
hx : x ∈ interior (Ici 0)
⊢ 0 < deriv (fun x => sinh x - x) x

tactic: simp
state_before: x✝ y z x : ℝ
⊢ sinh (-x) - -x = -(sinh x - x)
state_after: x✝ y z x : ℝ
⊢ -sinh x + x = x - sinh x

tactic: abel
state_before: x✝ y z x : ℝ
⊢ -sinh x + x = x - sinh x
state_after: no goals

tactic: exact (continuous_sinh.sub continuous_id).continuousOn
state_before: case refine_1
x y z : ℝ
⊢ ContinuousOn (fun x => sinh x - x) (Ici 0)
state_after: no goals

tactic: rw [interior_Ici, mem_Ioi] at hx
state_before: case refine_2
x✝ y z x : ℝ
hx : x ∈ interior (Ici 0)
⊢ 0 < deriv (fun x => sinh x - x) x
state_after: case refine_2
x✝ y z x : ℝ
hx : 0 < x
⊢ 0 < deriv (fun x => sinh x - x) x

tactic: rw [deriv_sub, deriv_sinh, deriv_id'', sub_pos, one_lt_cosh]
state_before: case refine_2
x✝ y z x : ℝ
hx : 0 < x
⊢ 0 < deriv (fun x => sinh x - x) x
state_after: case refine_2
x✝ y z x : ℝ
hx : 0 < x
⊢ x ≠ 0

case refine_2.hf
x✝ y z x : ℝ
hx : 0 < x
⊢ DifferentiableAt ℝ sinh x

case refine_2.hg
x✝ y z x : ℝ
hx : 0 < x
⊢ DifferentiableAt ℝ (fun x => x) x

tactic: exacts [hx.ne', differentiableAt_sinh, differentiableAt_id]
state_before: case refine_2
x✝ y z x : ℝ
hx : 0 < x
⊢ x ≠ 0

case refine_2.hf
x✝ y z x : ℝ
hx : 0 < x
⊢ DifferentiableAt ℝ sinh x

case refine_2.hg
x✝ y z x : ℝ
hx : 0 < x
⊢ DifferentiableAt ℝ (fun x => x) x
state_after: no goals
Theorem: mul_lt_right₀
File: Mathlib/Algebra/Order/GroupWithZero/Canonical.lean

tactic: contrapose! h
state_before: α : Type u_1
inst✝ : LinearOrderedCommGroupWithZero α
a b c✝ d : α
m n : ℕ
c : α
h : a < b
hc : c ≠ 0
⊢ a * c < b * c
state_after: α : Type u_1
inst✝ : LinearOrderedCommGroupWithZero α
a b c✝ d : α
m n : ℕ
c : α
hc : c ≠ 0
h : b * c ≤ a * c
⊢ b ≤ a

tactic: exact le_of_le_mul_right hc h
state_before: α : Type u_1
inst✝ : LinearOrderedCommGroupWithZero α
a b c✝ d : α
m n : ℕ
c : α
hc : c ≠ 0
h : b * c ≤ a * c
⊢ b ≤ a
state_after: no goals
Theorem: CategoryTheory.Bicategory.rightUnitor_comp_inv
File: Mathlib/CategoryTheory/Bicategory/Basic.lean

tactic: simp
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
f : a ⟶ b
g : b ⟶ c
⊢ (ρ_ (f ≫ g)).inv = f ◁ (ρ_ g).inv ≫ (α_ f g (𝟙 c)).inv
state_after: no goals
Theorem: Equiv.Perm.cycleType_conj
File: Mathlib/GroupTheory/Perm/Cycle/Type.lean

tactic: induction σ using cycle_induction_on with
| base_one => simp
| base_cycles σ hσ => rw [hσ.cycleType, hσ.conj.cycleType, card_support_conj]
| induction_disjoint σ π hd _ hσ hπ =>
  rw [← conj_mul, hd.cycleType, (hd.conj _).cycleType, hσ, hπ]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ τ : Perm α
⊢ (τ * σ * τ⁻¹).cycleType = σ.cycleType
state_after: no goals

tactic: simp
state_before: case base_one
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
τ : Perm α
⊢ (τ * 1 * τ⁻¹).cycleType = cycleType 1
state_after: no goals

tactic: rw [hσ.cycleType, hσ.conj.cycleType, card_support_conj]
state_before: case base_cycles
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
τ σ : Perm α
hσ : σ.IsCycle
⊢ (τ * σ * τ⁻¹).cycleType = σ.cycleType
state_after: no goals

tactic: rw [← conj_mul, hd.cycleType, (hd.conj _).cycleType, hσ, hπ]
state_before: case induction_disjoint
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
τ σ π : Perm α
hd : σ.Disjoint π
a✝ : σ.IsCycle
hσ : (τ * σ * τ⁻¹).cycleType = σ.cycleType
hπ : (τ * π * τ⁻¹).cycleType = π.cycleType
⊢ (τ * (σ * π) * τ⁻¹).cycleType = (σ * π).cycleType
state_after: no goals
Theorem: Mathlib.Tactic.Ring.smul_eq_cast
File: Mathlib/Tactic/Ring/Basic.lean

tactic: subst_vars
state_before: u : Lean.Level
R : Type u_1
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝ : CommSemiring R
a : ℕ
a' b c : R
x✝¹ : ↑a = a'
x✝ : a' * b = c
⊢ a • b = c
state_after: u : Lean.Level
R : Type u_1
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝ : CommSemiring R
a : ℕ
b : R
⊢ a • b = ↑a * b

tactic: simp
state_before: u : Lean.Level
R : Type u_1
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝ : CommSemiring R
a : ℕ
b : R
⊢ a • b = ↑a * b
state_after: no goals
Theorem: CategoryTheory.Subobject.factorThru_add
File: Mathlib/CategoryTheory/Subobject/FactorThru.lean

tactic: ext
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
X✝ Y✝ Z : C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
inst✝ : Preadditive C
X Y : C
P : Subobject Y
f g : X ⟶ Y
w : P.Factors (f + g)
wf : P.Factors f
wg : P.Factors g
⊢ P.factorThru (f + g) w = P.factorThru f wf + P.factorThru g wg
state_after: case h
C : Type u₁
inst✝² : Category.{v₁, u₁} C
X✝ Y✝ Z : C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
inst✝ : Preadditive C
X Y : C
P : Subobject Y
f g : X ⟶ Y
w : P.Factors (f + g)
wf : P.Factors f
wg : P.Factors g
⊢ P.factorThru (f + g) w ≫ P.arrow = (P.factorThru f wf + P.factorThru g wg) ≫ P.arrow

tactic: simp
state_before: case h
C : Type u₁
inst✝² : Category.{v₁, u₁} C
X✝ Y✝ Z : C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
inst✝ : Preadditive C
X Y : C
P : Subobject Y
f g : X ⟶ Y
w : P.Factors (f + g)
wf : P.Factors f
wg : P.Factors g
⊢ P.factorThru (f + g) w ≫ P.arrow = (P.factorThru f wf + P.factorThru g wg) ≫ P.arrow
state_after: no goals
Theorem: OrderIso.map_radical
File: Mathlib/Order/Radical.lean

tactic: unfold Order.radical
state_before: α : Type u_1
inst✝¹ : CompleteLattice α
β : Type u_2
inst✝ : CompleteLattice β
f : α ≃o β
⊢ f (Order.radical α) = Order.radical β
state_after: α : Type u_1
inst✝¹ : CompleteLattice α
β : Type u_2
inst✝ : CompleteLattice β
f : α ≃o β
⊢ f (⨅ a ∈ {H | IsCoatom H}, a) = ⨅ a ∈ {H | IsCoatom H}, a

tactic: simp only [OrderIso.map_iInf]
state_before: α : Type u_1
inst✝¹ : CompleteLattice α
β : Type u_2
inst✝ : CompleteLattice β
f : α ≃o β
⊢ f (⨅ a ∈ {H | IsCoatom H}, a) = ⨅ a ∈ {H | IsCoatom H}, a
state_after: α : Type u_1
inst✝¹ : CompleteLattice α
β : Type u_2
inst✝ : CompleteLattice β
f : α ≃o β
⊢ ⨅ i ∈ {H | IsCoatom H}, f i = ⨅ a ∈ {H | IsCoatom H}, a

tactic: fapply Equiv.iInf_congr
state_before: α : Type u_1
inst✝¹ : CompleteLattice α
β : Type u_2
inst✝ : CompleteLattice β
f : α ≃o β
⊢ ⨅ i ∈ {H | IsCoatom H}, f i = ⨅ a ∈ {H | IsCoatom H}, a
state_after: case e
α : Type u_1
inst✝¹ : CompleteLattice α
β : Type u_2
inst✝ : CompleteLattice β
f : α ≃o β
⊢ α ≃ β

case h
α : Type u_1
inst✝¹ : CompleteLattice α
β : Type u_2
inst✝ : CompleteLattice β
f : α ≃o β
⊢ ∀ (x : α), ⨅ (_ : ?e x ∈ {H | IsCoatom H}), ?e x = ⨅ (_ : x ∈ {H | IsCoatom H}), f x

tactic: exact f.toEquiv
state_before: case e
α : Type u_1
inst✝¹ : CompleteLattice α
β : Type u_2
inst✝ : CompleteLattice β
f : α ≃o β
⊢ α ≃ β
state_after: no goals

tactic: intros
state_before: case h
α : Type u_1
inst✝¹ : CompleteLattice α
β : Type u_2
inst✝ : CompleteLattice β
f : α ≃o β
⊢ ∀ (x : α), ⨅ (_ : f.toEquiv x ∈ {H | IsCoatom H}), f.toEquiv x = ⨅ (_ : x ∈ {H | IsCoatom H}), f x
state_after: case h
α : Type u_1
inst✝¹ : CompleteLattice α
β : Type u_2
inst✝ : CompleteLattice β
f : α ≃o β
x✝ : α
⊢ ⨅ (_ : f.toEquiv x✝ ∈ {H | IsCoatom H}), f.toEquiv x✝ = ⨅ (_ : x✝ ∈ {H | IsCoatom H}), f x✝

tactic: simp
state_before: case h
α : Type u_1
inst✝¹ : CompleteLattice α
β : Type u_2
inst✝ : CompleteLattice β
f : α ≃o β
x✝ : α
⊢ ⨅ (_ : f.toEquiv x✝ ∈ {H | IsCoatom H}), f.toEquiv x✝ = ⨅ (_ : x✝ ∈ {H | IsCoatom H}), f x✝
state_after: no goals
Theorem: Multiset.naturality
File: Mathlib/Data/Multiset/Functor.lean

tactic: refine Quotient.inductionOn x ?_
state_before: F : Type u → Type u
inst✝⁵ : Applicative F
inst✝⁴ : CommApplicative F
α' β' : Type u
f✝ : α' → F β'
G H : Type u_1 → Type u_1
inst✝³ : Applicative G
inst✝² : Applicative H
inst✝¹ : CommApplicative G
inst✝ : CommApplicative H
eta : ApplicativeTransformation G H
α β : Type u_1
f : α → G β
x : Multiset α
⊢ (fun {α} => eta.app α) (traverse f x) = traverse ((fun {α} => eta.app α) ∘ f) x
state_after: F : Type u → Type u
inst✝⁵ : Applicative F
inst✝⁴ : CommApplicative F
α' β' : Type u
f✝ : α' → F β'
G H : Type u_1 → Type u_1
inst✝³ : Applicative G
inst✝² : Applicative H
inst✝¹ : CommApplicative G
inst✝ : CommApplicative H
eta : ApplicativeTransformation G H
α β : Type u_1
f : α → G β
x : Multiset α
⊢ ∀ (a : List α), (fun {α} => eta.app α) (traverse f ⟦a⟧) = traverse ((fun {α} => eta.app α) ∘ f) ⟦a⟧

tactic: intro
state_before: F : Type u → Type u
inst✝⁵ : Applicative F
inst✝⁴ : CommApplicative F
α' β' : Type u
f✝ : α' → F β'
G H : Type u_1 → Type u_1
inst✝³ : Applicative G
inst✝² : Applicative H
inst✝¹ : CommApplicative G
inst✝ : CommApplicative H
eta : ApplicativeTransformation G H
α β : Type u_1
f : α → G β
x : Multiset α
⊢ ∀ (a : List α), (fun {α} => eta.app α) (traverse f ⟦a⟧) = traverse ((fun {α} => eta.app α) ∘ f) ⟦a⟧
state_after: F : Type u → Type u
inst✝⁵ : Applicative F
inst✝⁴ : CommApplicative F
α' β' : Type u
f✝ : α' → F β'
G H : Type u_1 → Type u_1
inst✝³ : Applicative G
inst✝² : Applicative H
inst✝¹ : CommApplicative G
inst✝ : CommApplicative H
eta : ApplicativeTransformation G H
α β : Type u_1
f : α → G β
x : Multiset α
a✝ : List α
⊢ (fun {α} => eta.app α) (traverse f ⟦a✝⟧) = traverse ((fun {α} => eta.app α) ∘ f) ⟦a✝⟧

tactic: simp only [quot_mk_to_coe, traverse, lift_coe, Function.comp_apply,
  ApplicativeTransformation.preserves_map, LawfulTraversable.naturality]
state_before: F : Type u → Type u
inst✝⁵ : Applicative F
inst✝⁴ : CommApplicative F
α' β' : Type u
f✝ : α' → F β'
G H : Type u_1 → Type u_1
inst✝³ : Applicative G
inst✝² : Applicative H
inst✝¹ : CommApplicative G
inst✝ : CommApplicative H
eta : ApplicativeTransformation G H
α β : Type u_1
f : α → G β
x : Multiset α
a✝ : List α
⊢ (fun {α} => eta.app α) (traverse f ⟦a✝⟧) = traverse ((fun {α} => eta.app α) ∘ f) ⟦a✝⟧
state_after: no goals
Theorem: MeasureTheory.tendsto_setToFun_approxOn_of_measurable_of_range_subset
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: simp
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝³ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f✝ g : α → E
hT : DominatedFinMeasAdditive μ T C
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
f : α → E
fmeas : Measurable f
hf : Integrable f μ
s : Set E
inst✝ : SeparableSpace ↑s
hs : Set.range f ∪ {0} ⊆ s
n : ℕ
⊢ 0 ∈ Set.range f ∪ {0}
state_after: no goals

tactic: refine tendsto_setToFun_approxOn_of_measurable hT hf fmeas ?_ _ (integrable_zero _ _ _)
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝³ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f✝ g : α → E
hT : DominatedFinMeasAdditive μ T C
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
f : α → E
fmeas : Measurable f
hf : Integrable f μ
s : Set E
inst✝ : SeparableSpace ↑s
hs : Set.range f ∪ {0} ⊆ s
⊢ Tendsto (fun n => setToFun μ T hT ↑(SimpleFunc.approxOn f fmeas s 0 ⋯ n)) atTop (𝓝 (setToFun μ T hT f))
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝³ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f✝ g : α → E
hT : DominatedFinMeasAdditive μ T C
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
f : α → E
fmeas : Measurable f
hf : Integrable f μ
s : Set E
inst✝ : SeparableSpace ↑s
hs : Set.range f ∪ {0} ⊆ s
⊢ ∀ᵐ (x : α) ∂μ, f x ∈ closure s

tactic: exact eventually_of_forall fun x => subset_closure (hs (Set.mem_union_left _ (mem_range_self _)))
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝³ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f✝ g : α → E
hT : DominatedFinMeasAdditive μ T C
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
f : α → E
fmeas : Measurable f
hf : Integrable f μ
s : Set E
inst✝ : SeparableSpace ↑s
hs : Set.range f ∪ {0} ⊆ s
⊢ ∀ᵐ (x : α) ∂μ, f x ∈ closure s
state_after: no goals
Theorem: MeasureTheory.AEEqFun.liftRel_iff_coeFn
File: Mathlib/MeasureTheory/Function/AEEqFun.lean

tactic: rw [← liftRel_mk_mk, mk_coeFn, mk_coeFn]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : MeasurableSpace α
μ ν : Measure α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
r : β → γ → Prop
f : α →ₘ[μ] β
g : α →ₘ[μ] γ
⊢ LiftRel r f g ↔ ∀ᵐ (a : α) ∂μ, r (↑f a) (↑g a)
state_after: no goals