1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Rel.card_interedges_finpartition_left
File: Mathlib/Combinatorics/SimpleGraph/Density.lean

tactic: classical
simp_rw [← P.biUnion_parts, interedges_biUnion_left, id]
rw [card_biUnion]
exact fun x hx y hy h ↦ interedges_disjoint_left r (P.disjoint hx hy h) _
state_before: 𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝² : LinearOrderedField 𝕜
r : α → β → Prop
inst✝¹ : (a : α) → DecidablePred (r a)
s s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
inst✝ : DecidableEq α
P : Finpartition s
t : Finset β
⊢ (interedges r s t).card = ∑ a ∈ P.parts, (interedges r a t).card
state_after: no goals

tactic: simp_rw [← P.biUnion_parts, interedges_biUnion_left, id]
state_before: 𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝² : LinearOrderedField 𝕜
r : α → β → Prop
inst✝¹ : (a : α) → DecidablePred (r a)
s s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
inst✝ : DecidableEq α
P : Finpartition s
t : Finset β
⊢ (interedges r s t).card = ∑ a ∈ P.parts, (interedges r a t).card
state_after: 𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝² : LinearOrderedField 𝕜
r : α → β → Prop
inst✝¹ : (a : α) → DecidablePred (r a)
s s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
inst✝ : DecidableEq α
P : Finpartition s
t : Finset β
⊢ (P.parts.biUnion fun a => interedges r a t).card = ∑ a ∈ P.parts, (interedges r a t).card

tactic: rw [card_biUnion]
state_before: 𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝² : LinearOrderedField 𝕜
r : α → β → Prop
inst✝¹ : (a : α) → DecidablePred (r a)
s s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
inst✝ : DecidableEq α
P : Finpartition s
t : Finset β
⊢ (P.parts.biUnion fun a => interedges r a t).card = ∑ a ∈ P.parts, (interedges r a t).card
state_after: 𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝² : LinearOrderedField 𝕜
r : α → β → Prop
inst✝¹ : (a : α) → DecidablePred (r a)
s s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
inst✝ : DecidableEq α
P : Finpartition s
t : Finset β
⊢ ∀ x ∈ P.parts, ∀ y ∈ P.parts, x ≠ y → Disjoint (interedges r x t) (interedges r y t)

tactic: exact fun x hx y hy h ↦ interedges_disjoint_left r (P.disjoint hx hy h) _
state_before: 𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝² : LinearOrderedField 𝕜
r : α → β → Prop
inst✝¹ : (a : α) → DecidablePred (r a)
s s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
inst✝ : DecidableEq α
P : Finpartition s
t : Finset β
⊢ ∀ x ∈ P.parts, ∀ y ∈ P.parts, x ≠ y → Disjoint (interedges r x t) (interedges r y t)
state_after: no goals
Theorem: MvPolynomial.weightedHomogeneousSubmodule_eq_finsupp_supported
File: Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean

tactic: ext x
state_before: R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : AddCommMonoid M
w : σ → M
m : M
⊢ weightedHomogeneousSubmodule R w m = supported R R {d | (weightedDegree w) d = m}
state_after: case h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : AddCommMonoid M
w : σ → M
m : M
x : MvPolynomial σ R
⊢ x ∈ weightedHomogeneousSubmodule R w m ↔ x ∈ supported R R {d | (weightedDegree w) d = m}

tactic: rw [mem_supported, Set.subset_def]
state_before: case h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : AddCommMonoid M
w : σ → M
m : M
x : MvPolynomial σ R
⊢ x ∈ weightedHomogeneousSubmodule R w m ↔ x ∈ supported R R {d | (weightedDegree w) d = m}
state_after: case h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : AddCommMonoid M
w : σ → M
m : M
x : MvPolynomial σ R
⊢ x ∈ weightedHomogeneousSubmodule R w m ↔ ∀ x_1 ∈ ↑x.support, x_1 ∈ {d | (weightedDegree w) d = m}

tactic: simp only [Finsupp.mem_support_iff, mem_coe]
state_before: case h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : AddCommMonoid M
w : σ → M
m : M
x : MvPolynomial σ R
⊢ x ∈ weightedHomogeneousSubmodule R w m ↔ ∀ x_1 ∈ ↑x.support, x_1 ∈ {d | (weightedDegree w) d = m}
state_after: case h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : AddCommMonoid M
w : σ → M
m : M
x : MvPolynomial σ R
⊢ x ∈ weightedHomogeneousSubmodule R w m ↔ ∀ (x_1 : σ →₀ ℕ), x x_1 ≠ 0 → x_1 ∈ {d | (weightedDegree w) d = m}

tactic: rfl
state_before: case h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : AddCommMonoid M
w : σ → M
m : M
x : MvPolynomial σ R
⊢ x ∈ weightedHomogeneousSubmodule R w m ↔ ∀ (x_1 : σ →₀ ℕ), x x_1 ≠ 0 → x_1 ∈ {d | (weightedDegree w) d = m}
state_after: no goals
Theorem: ComplexShape.π_symm
File: Mathlib/Algebra/Homology/ComplexShapeSigns.lean

tactic: apply TotalComplexShapeSymmetry.symm
state_before: I₁ : Type u_1
I₂ : Type u_2
I₁₂ : Type u_3
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
c₁₂ : ComplexShape I₁₂
inst✝² : TotalComplexShape c₁ c₂ c₁₂
inst✝¹ : TotalComplexShape c₂ c₁ c₁₂
inst✝ : TotalComplexShapeSymmetry c₁ c₂ c₁₂
i₁ : I₁
i₂ : I₂
⊢ c₂.π c₁ c₁₂ (i₂, i₁) = c₁.π c₂ c₁₂ (i₁, i₂)
state_after: no goals
Theorem: isSigmaCompact_sUnion
File: Mathlib/Topology/Compactness/SigmaCompact.lean

tactic: have : Countable S := countable_coe_iff.mpr hc
state_before: X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
S : Set (Set X)
hc : S.Countable
hcomp : ∀ (s : ↑S), IsSigmaCompact ↑s
⊢ IsSigmaCompact (⋃₀ S)
state_after: X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
S : Set (Set X)
hc : S.Countable
hcomp : ∀ (s : ↑S), IsSigmaCompact ↑s
this : Countable ↑S
⊢ IsSigmaCompact (⋃₀ S)

tactic: apply sUnion_eq_iUnion.symm ▸ isSigmaCompact_iUnion _ hcomp
state_before: X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
S : Set (Set X)
hc : S.Countable
hcomp : ∀ (s : ↑S), IsSigmaCompact ↑s
this : Countable ↑S
⊢ IsSigmaCompact (⋃₀ S)
state_after: no goals
Theorem: MeasureTheory.Integrable.exists_hasCompactSupport_integral_sub_le
File: Mathlib/MeasureTheory/Function/ContinuousMapDense.lean

tactic: simp only [← memℒp_one_iff_integrable, ← snorm_one_eq_lintegral_nnnorm, ← ENNReal.ofReal_one]
  at hf ⊢
state_before: α : Type u_1
inst✝⁷ : MeasurableSpace α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : T4Space α
inst✝⁴ : BorelSpace α
E : Type u_2
inst✝³ : NormedAddCommGroup E
μ : Measure α
p : ℝ≥0∞
inst✝² : NormedSpace ℝ E
inst✝¹ : WeaklyLocallyCompactSpace α
inst✝ : μ.Regular
f : α → E
hf : Integrable f μ
ε : ℝ
hε : 0 < ε
⊢ ∃ g, HasCompactSupport g ∧ ∫ (x : α), ‖f x - g x‖ ∂μ ≤ ε ∧ Continuous g ∧ Integrable g μ
state_after: α : Type u_1
inst✝⁷ : MeasurableSpace α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : T4Space α
inst✝⁴ : BorelSpace α
E : Type u_2
inst✝³ : NormedAddCommGroup E
μ : Measure α
p : ℝ≥0∞
inst✝² : NormedSpace ℝ E
inst✝¹ : WeaklyLocallyCompactSpace α
inst✝ : μ.Regular
f : α → E
ε : ℝ
hε : 0 < ε
hf : Memℒp f (ENNReal.ofReal 1) μ
⊢ ∃ g, HasCompactSupport g ∧ ∫ (x : α), ‖f x - g x‖ ∂μ ≤ ε ∧ Continuous g ∧ Memℒp g (ENNReal.ofReal 1) μ

tactic: simpa using hf.exists_hasCompactSupport_integral_rpow_sub_le zero_lt_one hε
state_before: α : Type u_1
inst✝⁷ : MeasurableSpace α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : T4Space α
inst✝⁴ : BorelSpace α
E : Type u_2
inst✝³ : NormedAddCommGroup E
μ : Measure α
p : ℝ≥0∞
inst✝² : NormedSpace ℝ E
inst✝¹ : WeaklyLocallyCompactSpace α
inst✝ : μ.Regular
f : α → E
ε : ℝ
hε : 0 < ε
hf : Memℒp f (ENNReal.ofReal 1) μ
⊢ ∃ g, HasCompactSupport g ∧ ∫ (x : α), ‖f x - g x‖ ∂μ ≤ ε ∧ Continuous g ∧ Memℒp g (ENNReal.ofReal 1) μ
state_after: no goals
Theorem: Tuple.antitone_pair_of_not_sorted'
File: Mathlib/Data/Fin/Tuple/Sort.lean

tactic: contrapose! h
state_before: n : ℕ
α : Type u_1
inst✝ : LinearOrder α
f : Fin n → α
σ : Equiv.Perm (Fin n)
h : f ∘ ⇑σ ≠ f ∘ ⇑(sort f)
⊢ ∃ i j, i < j ∧ (f ∘ ⇑σ) j < (f ∘ ⇑σ) i
state_after: n : ℕ
α : Type u_1
inst✝ : LinearOrder α
f : Fin n → α
σ : Equiv.Perm (Fin n)
h : ∀ (i j : Fin n), i < j → (f ∘ ⇑σ) i ≤ (f ∘ ⇑σ) j
⊢ f ∘ ⇑σ = f ∘ ⇑(sort f)

tactic: exact comp_sort_eq_comp_iff_monotone.mpr (monotone_iff_forall_lt.mpr h)
state_before: n : ℕ
α : Type u_1
inst✝ : LinearOrder α
f : Fin n → α
σ : Equiv.Perm (Fin n)
h : ∀ (i j : Fin n), i < j → (f ∘ ⇑σ) i ≤ (f ∘ ⇑σ) j
⊢ f ∘ ⇑σ = f ∘ ⇑(sort f)
state_after: no goals
Theorem: WittVector.wittMul_zero
File: Mathlib/RingTheory/WittVector/Defs.lean

tactic: apply MvPolynomial.map_injective (Int.castRingHom ℚ) Int.cast_injective
state_before: p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝ : CommRing R
⊢ wittMul p 0 = X (0, 0) * X (1, 0)
state_after: case a
p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝ : CommRing R
⊢ (map (Int.castRingHom ℚ)) (wittMul p 0) = (map (Int.castRingHom ℚ)) (X (0, 0) * X (1, 0))

tactic: simp only [wittMul, wittStructureRat, rename_X, xInTermsOfW_zero, map_X, wittPolynomial_zero,
  RingHom.map_mul, bind₁_X_right, AlgHom.map_mul, map_wittStructureInt]
state_before: case a
p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝ : CommRing R
⊢ (map (Int.castRingHom ℚ)) (wittMul p 0) = (map (Int.castRingHom ℚ)) (X (0, 0) * X (1, 0))
state_after: no goals
Theorem: Set.dual_ordSeparatingSet
File: Mathlib/Order/Interval/Set/OrdConnectedComponent.lean

tactic: simp only [ordSeparatingSet, mem_preimage, ← toDual.surjective.iUnion_comp, ofDual_toDual,
  dual_ordConnectedComponent, ← preimage_compl, preimage_inter, preimage_iUnion]
state_before: α : Type u_1
inst✝ : LinearOrder α
s t : Set α
x y z : α
⊢ (⇑ofDual ⁻¹' s).ordSeparatingSet (⇑ofDual ⁻¹' t) = ⇑ofDual ⁻¹' s.ordSeparatingSet t
state_after: no goals
Theorem: ModularGroup.im_T_zpow_smul
File: Mathlib/NumberTheory/Modular.lean

tactic: rw [← coe_im, coe_T_zpow_smul_eq, add_im, intCast_im, add_zero, coe_im]
state_before: g : SL(2, ℤ)
z : ℍ
n : ℤ
⊢ (T ^ n • z).im = z.im
state_after: no goals
Theorem: Polynomial.nodup_roots_iff_of_splits
File: Mathlib/FieldTheory/Separable.lean

tactic: refine ⟨(fun hnsep ↦ ?_).mtr, nodup_roots⟩
state_before: F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
f : F[X]
hf : f ≠ 0
h : Splits (RingHom.id F) f
⊢ f.roots.Nodup ↔ f.Separable
state_after: F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
f : F[X]
hf : f ≠ 0
h : Splits (RingHom.id F) f
hnsep : ¬f.Separable
⊢ ¬f.roots.Nodup

tactic: rw [Separable, ← gcd_isUnit_iff, isUnit_iff_degree_eq_zero] at hnsep
state_before: F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
f : F[X]
hf : f ≠ 0
h : Splits (RingHom.id F) f
hnsep : ¬f.Separable
⊢ ¬f.roots.Nodup
state_after: F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
f : F[X]
hf : f ≠ 0
h : Splits (RingHom.id F) f
hnsep : ¬(GCDMonoid.gcd f (derivative f)).degree = 0
⊢ ¬f.roots.Nodup

tactic: obtain ⟨x, hx⟩ := exists_root_of_splits _
  (splits_of_splits_of_dvd _ hf h (gcd_dvd_left f _)) hnsep
state_before: F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
f : F[X]
hf : f ≠ 0
h : Splits (RingHom.id F) f
hnsep : ¬(GCDMonoid.gcd f (derivative f)).degree = 0
⊢ ¬f.roots.Nodup
state_after: case intro
F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
f : F[X]
hf : f ≠ 0
h : Splits (RingHom.id F) f
hnsep : ¬(GCDMonoid.gcd f (derivative f)).degree = 0
x : F
hx : eval₂ (RingHom.id F) x (GCDMonoid.gcd f (derivative f)) = 0
⊢ ¬f.roots.Nodup

tactic: simp_rw [Multiset.nodup_iff_count_le_one, not_forall, not_le]
state_before: case intro
F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
f : F[X]
hf : f ≠ 0
h : Splits (RingHom.id F) f
hnsep : ¬(GCDMonoid.gcd f (derivative f)).degree = 0
x : F
hx : eval₂ (RingHom.id F) x (GCDMonoid.gcd f (derivative f)) = 0
⊢ ¬f.roots.Nodup
state_after: case intro
F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
f : F[X]
hf : f ≠ 0
h : Splits (RingHom.id F) f
hnsep : ¬(GCDMonoid.gcd f (derivative f)).degree = 0
x : F
hx : eval₂ (RingHom.id F) x (GCDMonoid.gcd f (derivative f)) = 0
⊢ ∃ x, 1 < Multiset.count x f.roots

tactic: exact ⟨x, ((one_lt_rootMultiplicity_iff_isRoot_gcd hf).2 hx).trans_eq f.count_roots.symm⟩
state_before: case intro
F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
f : F[X]
hf : f ≠ 0
h : Splits (RingHom.id F) f
hnsep : ¬(GCDMonoid.gcd f (derivative f)).degree = 0
x : F
hx : eval₂ (RingHom.id F) x (GCDMonoid.gcd f (derivative f)) = 0
⊢ ∃ x, 1 < Multiset.count x f.roots
state_after: no goals
Theorem: ENNReal.prod_rpow_of_nonneg
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: induction s using Finset.induction with
| empty => simp
| insert hi ih => simp_rw [prod_insert hi, ih, ← mul_rpow_of_nonneg _ _ hr]
state_before: ι : Type u_1
s : Finset ι
f : ι → ℝ≥0∞
r : ℝ
hr : 0 ≤ r
⊢ ∏ i ∈ s, f i ^ r = (∏ i ∈ s, f i) ^ r
state_after: no goals

tactic: simp
state_before: case empty
ι : Type u_1
f : ι → ℝ≥0∞
r : ℝ
hr : 0 ≤ r
⊢ ∏ i ∈ ∅, f i ^ r = (∏ i ∈ ∅, f i) ^ r
state_after: no goals

tactic: simp_rw [prod_insert hi, ih, ← mul_rpow_of_nonneg _ _ hr]
state_before: case insert
ι : Type u_1
f : ι → ℝ≥0∞
r : ℝ
hr : 0 ≤ r
a✝ : ι
s✝ : Finset ι
hi : a✝ ∉ s✝
ih : ∏ i ∈ s✝, f i ^ r = (∏ i ∈ s✝, f i) ^ r
⊢ ∏ i ∈ insert a✝ s✝, f i ^ r = (∏ i ∈ insert a✝ s✝, f i) ^ r
state_after: no goals
Theorem: Multiset.antidiagonal_map_fst
File: Mathlib/Data/Multiset/Antidiagonal.lean

tactic: simp [powersetAux']
state_before: α : Type u_1
β : Type u_2
s : Multiset α
l : List α
⊢ map Prod.fst (antidiagonal ⟦l⟧) = powerset ⟦l⟧
state_after: no goals
Theorem: Set.Finite.supClosure
File: Mathlib/Order/SupClosed.lean

tactic: lift s to Finset α using hs
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
s t : Set α
a b : α
hs : s.Finite
⊢ (supClosure s).Finite
state_after: case intro
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
t : Set α
a b : α
s : Finset α
⊢ (supClosure ↑s).Finite

tactic: classical
refine ((s.powerset.filter Finset.Nonempty).attach.image
  fun t ↦ t.1.sup' (mem_filter.1 t.2).2 id).finite_toSet.subset ?_
rintro _ ⟨t, ht, hts, rfl⟩
simp only [id_eq, coe_image, mem_image, mem_coe, mem_attach, true_and, Subtype.exists,
  Finset.mem_powerset, Finset.not_nonempty_iff_eq_empty, mem_filter]
exact ⟨t, ⟨hts, ht⟩, rfl⟩
state_before: case intro
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
t : Set α
a b : α
s : Finset α
⊢ (supClosure ↑s).Finite
state_after: no goals

tactic: refine ((s.powerset.filter Finset.Nonempty).attach.image
  fun t ↦ t.1.sup' (mem_filter.1 t.2).2 id).finite_toSet.subset ?_
state_before: case intro
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
t : Set α
a b : α
s : Finset α
⊢ (supClosure ↑s).Finite
state_after: case intro
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
t : Set α
a b : α
s : Finset α
⊢ supClosure ↑s ⊆ ↑(Finset.image (fun t => (↑t).sup' ⋯ id) (filter Finset.Nonempty s.powerset).attach)

tactic: rintro _ ⟨t, ht, hts, rfl⟩
state_before: case intro
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
t : Set α
a b : α
s : Finset α
⊢ supClosure ↑s ⊆ ↑(Finset.image (fun t => (↑t).sup' ⋯ id) (filter Finset.Nonempty s.powerset).attach)
state_after: case intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
t✝ : Set α
a b : α
s t : Finset α
ht : t.Nonempty
hts : ↑t ⊆ ↑s
⊢ t.sup' ht id ∈ ↑(Finset.image (fun t => (↑t).sup' ⋯ id) (filter Finset.Nonempty s.powerset).attach)

tactic: simp only [id_eq, coe_image, mem_image, mem_coe, mem_attach, true_and, Subtype.exists,
  Finset.mem_powerset, Finset.not_nonempty_iff_eq_empty, mem_filter]
state_before: case intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
t✝ : Set α
a b : α
s t : Finset α
ht : t.Nonempty
hts : ↑t ⊆ ↑s
⊢ t.sup' ht id ∈ ↑(Finset.image (fun t => (↑t).sup' ⋯ id) (filter Finset.Nonempty s.powerset).attach)
state_after: case intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
t✝ : Set α
a b : α
s t : Finset α
ht : t.Nonempty
hts : ↑t ⊆ ↑s
⊢ ∃ a, ∃ (h : a ⊆ s ∧ a.Nonempty), (a.sup' ⋯ fun x => x) = t.sup' ⋯ fun x => x

tactic: exact ⟨t, ⟨hts, ht⟩, rfl⟩
state_before: case intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
t✝ : Set α
a b : α
s t : Finset α
ht : t.Nonempty
hts : ↑t ⊆ ↑s
⊢ ∃ a, ∃ (h : a ⊆ s ∧ a.Nonempty), (a.sup' ⋯ fun x => x) = t.sup' ⋯ fun x => x
state_after: no goals
Theorem: List.nil_diff
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: induction l <;> simp [*, erase_of_not_mem]
state_before: α : Type u_1
inst✝¹ : BEq α
inst✝ : LawfulBEq α
l : List α
⊢ [].diff l = []
state_after: no goals
Theorem: LinearPMap.mem_domain_iff_of_eq_graph
File: Mathlib/LinearAlgebra/LinearPMap.lean

tactic: simp_rw [mem_domain_iff, h]
state_before: R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type u_3
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type u_4
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
M : Type u_5
inst✝² : Monoid M
inst✝¹ : DistribMulAction M F
inst✝ : SMulCommClass R M F
y : M
f g : E →ₗ.[R] F
h : f.graph = g.graph
x : E
⊢ x ∈ f.domain ↔ x ∈ g.domain
state_after: no goals
Theorem: MeasureTheory.Measure.empty_of_count_eq_zero
File: Mathlib/MeasureTheory/Measure/Count.lean

tactic: have hs : s.Finite := by
  rw [← count_apply_lt_top, hsc]
  exact WithTop.zero_lt_top
state_before: α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
s : Set α
inst✝ : MeasurableSingletonClass α
hsc : count s = 0
⊢ s = ∅
state_after: α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
s : Set α
inst✝ : MeasurableSingletonClass α
hsc : count s = 0
hs : s.Finite
⊢ s = ∅

tactic: simpa [count_apply_finite _ hs] using hsc
state_before: α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
s : Set α
inst✝ : MeasurableSingletonClass α
hsc : count s = 0
hs : s.Finite
⊢ s = ∅
state_after: no goals

tactic: rw [← count_apply_lt_top, hsc]
state_before: α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
s : Set α
inst✝ : MeasurableSingletonClass α
hsc : count s = 0
⊢ s.Finite
state_after: α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
s : Set α
inst✝ : MeasurableSingletonClass α
hsc : count s = 0
⊢ 0 < ⊤

tactic: exact WithTop.zero_lt_top
state_before: α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
s : Set α
inst✝ : MeasurableSingletonClass α
hsc : count s = 0
⊢ 0 < ⊤
state_after: no goals
Theorem: Asymptotics.superpolynomialDecay_param_mul_iff
File: Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean

tactic: simp [← mul_assoc, inv_mul_cancel hx]
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : LinearOrderedField β
inst✝ : OrderTopology β
hk : Tendsto k l atTop
h : SuperpolynomialDecay l k (k * f)
x : α
hx : k x ≠ 0
⊢ (k⁻¹ * (k * f)) x = f x
state_after: no goals
Theorem: Filter.Subsingleton.atTop_eq
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: refine top_unique fun s hs x => ?_
state_before: ι : Type u_1
ι' : Type u_2
α✝ : Type u_3
β : Type u_4
γ : Type u_5
α : Type u_6
inst✝¹ : Subsingleton α
inst✝ : Preorder α
⊢ atTop = ⊤
state_after: ι : Type u_1
ι' : Type u_2
α✝ : Type u_3
β : Type u_4
γ : Type u_5
α : Type u_6
inst✝¹ : Subsingleton α
inst✝ : Preorder α
s : Set α
hs : s ∈ atTop
x : α
⊢ x ∈ s

tactic: rw [atTop, ciInf_subsingleton x, mem_principal] at hs
state_before: ι : Type u_1
ι' : Type u_2
α✝ : Type u_3
β : Type u_4
γ : Type u_5
α : Type u_6
inst✝¹ : Subsingleton α
inst✝ : Preorder α
s : Set α
hs : s ∈ atTop
x : α
⊢ x ∈ s
state_after: ι : Type u_1
ι' : Type u_2
α✝ : Type u_3
β : Type u_4
γ : Type u_5
α : Type u_6
inst✝¹ : Subsingleton α
inst✝ : Preorder α
s : Set α
x : α
hs : Ici x ⊆ s
⊢ x ∈ s

tactic: exact hs left_mem_Ici
state_before: ι : Type u_1
ι' : Type u_2
α✝ : Type u_3
β : Type u_4
γ : Type u_5
α : Type u_6
inst✝¹ : Subsingleton α
inst✝ : Preorder α
s : Set α
x : α
hs : Ici x ⊆ s
⊢ x ∈ s
state_after: no goals
Theorem: descPochhammer_mul
File: Mathlib/RingTheory/Polynomial/Pochhammer.lean

tactic: induction' m with m ih
state_before: R : Type u
inst✝ : Ring R
n m : ℕ
⊢ descPochhammer R n * (descPochhammer R m).comp (X - ↑n) = descPochhammer R (n + m)
state_after: case zero
R : Type u
inst✝ : Ring R
n : ℕ
⊢ descPochhammer R n * (descPochhammer R 0).comp (X - ↑n) = descPochhammer R (n + 0)

case succ
R : Type u
inst✝ : Ring R
n m : ℕ
ih : descPochhammer R n * (descPochhammer R m).comp (X - ↑n) = descPochhammer R (n + m)
⊢ descPochhammer R n * (descPochhammer R (m + 1)).comp (X - ↑n) = descPochhammer R (n + (m + 1))

tactic: simp
state_before: case zero
R : Type u
inst✝ : Ring R
n : ℕ
⊢ descPochhammer R n * (descPochhammer R 0).comp (X - ↑n) = descPochhammer R (n + 0)
state_after: no goals

tactic: rw [descPochhammer_succ_right, Polynomial.mul_X_sub_intCast_comp, ← mul_assoc, ih,
  ← add_assoc, descPochhammer_succ_right, Nat.cast_add, sub_add_eq_sub_sub]
state_before: case succ
R : Type u
inst✝ : Ring R
n m : ℕ
ih : descPochhammer R n * (descPochhammer R m).comp (X - ↑n) = descPochhammer R (n + m)
⊢ descPochhammer R n * (descPochhammer R (m + 1)).comp (X - ↑n) = descPochhammer R (n + (m + 1))
state_after: no goals
Theorem: Real.exists_lt_of_strictMono
File: Mathlib/Data/NNReal/Basic.lean

tactic: set s : NNReal := ⟨r, le_of_lt hr⟩
state_before: Γ₀ : Type u_1
inst✝ : LinearOrderedCommGroupWithZero Γ₀
h : Nontrivial Γ₀ˣ
f : Γ₀ →*₀ ℝ≥0
hf : StrictMono ⇑f
r : ℝ
hr : 0 < r
⊢ ∃ d, ↑(f ↑d) < r
state_after: Γ₀ : Type u_1
inst✝ : LinearOrderedCommGroupWithZero Γ₀
h : Nontrivial Γ₀ˣ
f : Γ₀ →*₀ ℝ≥0
hf : StrictMono ⇑f
r : ℝ
hr : 0 < r
s : ℝ≥0 := ⟨r, ⋯⟩
⊢ ∃ d, ↑(f ↑d) < r

tactic: have hs : 0 < s := hr
state_before: Γ₀ : Type u_1
inst✝ : LinearOrderedCommGroupWithZero Γ₀
h : Nontrivial Γ₀ˣ
f : Γ₀ →*₀ ℝ≥0
hf : StrictMono ⇑f
r : ℝ
hr : 0 < r
s : ℝ≥0 := ⟨r, ⋯⟩
⊢ ∃ d, ↑(f ↑d) < r
state_after: Γ₀ : Type u_1
inst✝ : LinearOrderedCommGroupWithZero Γ₀
h : Nontrivial Γ₀ˣ
f : Γ₀ →*₀ ℝ≥0
hf : StrictMono ⇑f
r : ℝ
hr : 0 < r
s : ℝ≥0 := ⟨r, ⋯⟩
hs : 0 < s
⊢ ∃ d, ↑(f ↑d) < r

tactic: exact NNReal.exists_lt_of_strictMono hf hs
state_before: Γ₀ : Type u_1
inst✝ : LinearOrderedCommGroupWithZero Γ₀
h : Nontrivial Γ₀ˣ
f : Γ₀ →*₀ ℝ≥0
hf : StrictMono ⇑f
r : ℝ
hr : 0 < r
s : ℝ≥0 := ⟨r, ⋯⟩
hs : 0 < s
⊢ ∃ d, ↑(f ↑d) < r
state_after: no goals
Theorem: isClosed_frontier
File: Mathlib/Topology/Basic.lean

tactic: rw [frontier_eq_closure_inter_closure]
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
⊢ IsClosed (frontier s)
state_after: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
⊢ IsClosed (closure s ∩ closure sᶜ)

tactic: exact IsClosed.inter isClosed_closure isClosed_closure
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
⊢ IsClosed (closure s ∩ closure sᶜ)
state_after: no goals
Theorem: Path.Homotopy.hcomp_half
File: Mathlib/Topology/Homotopy/Path.lean

tactic: norm_num
state_before: X : Type u
Y : Type v
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x₀ x₁ x₂ x₃ : X
p₀ q₀ : Path x₀ x₁
p₁ q₁ : Path x₁ x₂
F : p₀.Homotopy q₀
G : p₁.Homotopy q₁
t : ↑I
⊢ 0 ≤ 1 / 2
state_after: no goals

tactic: norm_num
state_before: X : Type u
Y : Type v
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x₀ x₁ x₂ x₃ : X
p₀ q₀ : Path x₀ x₁
p₁ q₁ : Path x₁ x₂
F : p₀.Homotopy q₀
G : p₁.Homotopy q₁
t : ↑I
⊢ 1 / 2 ≤ 1
state_after: no goals

tactic: norm_num
state_before: X : Type u
Y : Type v
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x₀ x₁ x₂ x₃ : X
p₀ q₀ : Path x₀ x₁
p₁ q₁ : Path x₁ x₂
F : p₀.Homotopy q₀
G : p₁.Homotopy q₁
t : ↑I
⊢ (if ↑(t, ⟨1 / 2, ⋯⟩).2 ≤ 1 / 2 then (F.eval (t, ⟨1 / 2, ⋯⟩).1).extend (2 * ↑(t, ⟨1 / 2, ⋯⟩).2)
    else (G.eval (t, ⟨1 / 2, ⋯⟩).1).extend (2 * ↑(t, ⟨1 / 2, ⋯⟩).2 - 1)) =
    x₁
state_after: no goals