1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MvPowerSeries.coeff_zero_X_mul
File: Mathlib/RingTheory/MvPowerSeries/Basic.lean

tactic: rw [← (φ.commute_X s).eq, coeff_zero_mul_X]
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
φ : MvPowerSeries σ R
s : σ
⊢ (coeff R 0) (X s * φ) = 0
state_after: no goals
Theorem: IsCompact.mem_closure_iff_exists_inseparable
File: Mathlib/Topology/Separation.lean

tactic: refine ⟨fun hy ↦ ?_, fun ⟨x, hxK, hxy⟩ ↦
  (hxy.mem_closed_iff isClosed_closure).1 <| subset_closure hxK⟩
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
K : Set X
hK : IsCompact K
⊢ y ∈ closure K ↔ ∃ x ∈ K, Inseparable x y
state_after: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
K : Set X
hK : IsCompact K
hy : y ∈ closure K
⊢ ∃ x ∈ K, Inseparable x y

tactic: contrapose! hy
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
K : Set X
hK : IsCompact K
hy : y ∈ closure K
⊢ ∃ x ∈ K, Inseparable x y
state_after: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
K : Set X
hK : IsCompact K
hy : ∀ x ∈ K, ¬Inseparable x y
⊢ y ∉ closure K

tactic: have : Disjoint (𝓝 y) (𝓝ˢ K) := hK.disjoint_nhdsSet_right.2 fun x hx ↦
  (disjoint_nhds_nhds_iff_not_inseparable.2 (hy x hx)).symm
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
K : Set X
hK : IsCompact K
hy : ∀ x ∈ K, ¬Inseparable x y
⊢ y ∉ closure K
state_after: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
K : Set X
hK : IsCompact K
hy : ∀ x ∈ K, ¬Inseparable x y
this : Disjoint (𝓝 y) (𝓝ˢ K)
⊢ y ∉ closure K

tactic: simpa only [disjoint_iff, not_mem_closure_iff_nhdsWithin_eq_bot]
  using this.mono_right principal_le_nhdsSet
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
K : Set X
hK : IsCompact K
hy : ∀ x ∈ K, ¬Inseparable x y
this : Disjoint (𝓝 y) (𝓝ˢ K)
⊢ y ∉ closure K
state_after: no goals
Theorem: mul_inv_le_iff_le_mul
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [inv_mul_cancel_right]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c : α
⊢ a * b⁻¹ * b ≤ c * b ↔ a ≤ c * b
state_after: no goals
Theorem: ProbabilityTheory.condexpKernel_ae_eq_trim_condexp
File: Mathlib/Probability/Kernel/Condexp.lean

tactic: rw [ae_eq_trim_iff hm _ stronglyMeasurable_condexp]
state_before: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ inst✝ : IsFiniteMeasure μ
hm : m ≤ mΩ
s : Set Ω
hs : MeasurableSet s
⊢ (fun ω => (((condexpKernel μ m) ω) s).toReal) =ᶠ[ae (μ.trim hm)] μ[s.indicator fun ω => 1|m]
state_after: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ inst✝ : IsFiniteMeasure μ
hm : m ≤ mΩ
s : Set Ω
hs : MeasurableSet s
⊢ (fun ω => (((condexpKernel μ m) ω) s).toReal) =ᶠ[ae μ] μ[s.indicator fun ω => 1|m]

Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ inst✝ : IsFiniteMeasure μ
hm : m ≤ mΩ
s : Set Ω
hs : MeasurableSet s
⊢ StronglyMeasurable fun ω => (((condexpKernel μ m) ω) s).toReal

tactic: exact condexpKernel_ae_eq_condexp hm hs
state_before: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ inst✝ : IsFiniteMeasure μ
hm : m ≤ mΩ
s : Set Ω
hs : MeasurableSet s
⊢ (fun ω => (((condexpKernel μ m) ω) s).toReal) =ᶠ[ae μ] μ[s.indicator fun ω => 1|m]
state_after: no goals

tactic: refine Measurable.stronglyMeasurable ?_
state_before: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ inst✝ : IsFiniteMeasure μ
hm : m ≤ mΩ
s : Set Ω
hs : MeasurableSet s
⊢ StronglyMeasurable fun ω => (((condexpKernel μ m) ω) s).toReal
state_after: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ inst✝ : IsFiniteMeasure μ
hm : m ≤ mΩ
s : Set Ω
hs : MeasurableSet s
⊢ Measurable fun ω => (((condexpKernel μ m) ω) s).toReal

tactic: exact @Measurable.ennreal_toReal _ m _ (measurable_condexpKernel hs)
state_before: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ inst✝ : IsFiniteMeasure μ
hm : m ≤ mΩ
s : Set Ω
hs : MeasurableSet s
⊢ Measurable fun ω => (((condexpKernel μ m) ω) s).toReal
state_after: no goals
Theorem: Ordinal.nfpBFamily_lt_ord
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: rwa [o.card.lift_id]
state_before: α : Type u_1
r : α → α → Prop
o : Ordinal.{u}
f : (a : Ordinal.{u}) → a < o → Ordinal.{u} → Ordinal.{u}
c : Ordinal.{u}
hc : ℵ₀ < c.cof
hc' : o.card < c.cof
hf : ∀ (i : Ordinal.{u}) (hi : i < o), ∀ b < c, f i hi b < c
a : Ordinal.{u}
⊢ Cardinal.lift.{u, u} o.card < c.cof
state_after: no goals
Theorem: Filter.HasBasis.principal_inf
File: Mathlib/Order/Filter/Bases.lean

tactic: simpa only [inf_comm, inter_comm] using hl.inf_principal s'
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
l l' : Filter α
p : ι → Prop
s : ι → Set α
t : Set α
i : ι
p' : ι' → Prop
s'✝ : ι' → Set α
i' : ι'
hl : l.HasBasis p s
s' : Set α
⊢ (𝓟 s' ⊓ l).HasBasis p fun i => s' ∩ s i
state_after: no goals
Theorem: Complex.hasStrictFDerivAt_cpow
File: Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean

tactic: have A : p.1 ≠ 0 := slitPlane_ne_zero hp
state_before: p : ℂ × ℂ
hp : p.1 ∈ slitPlane
⊢ HasStrictFDerivAt (fun x => x.1 ^ x.2)
    ((p.2 * p.1 ^ (p.2 - 1)) • ContinuousLinearMap.fst ℂ ℂ ℂ + (p.1 ^ p.2 * log p.1) • ContinuousLinearMap.snd ℂ ℂ ℂ) p
state_after: p : ℂ × ℂ
hp : p.1 ∈ slitPlane
A : p.1 ≠ 0
⊢ HasStrictFDerivAt (fun x => x.1 ^ x.2)
    ((p.2 * p.1 ^ (p.2 - 1)) • ContinuousLinearMap.fst ℂ ℂ ℂ + (p.1 ^ p.2 * log p.1) • ContinuousLinearMap.snd ℂ ℂ ℂ) p

tactic: have : (fun x : ℂ × ℂ => x.1 ^ x.2) =ᶠ[𝓝 p] fun x => exp (log x.1 * x.2) :=
  ((isOpen_ne.preimage continuous_fst).eventually_mem A).mono fun p hp =>
    cpow_def_of_ne_zero hp _
state_before: p : ℂ × ℂ
hp : p.1 ∈ slitPlane
A : p.1 ≠ 0
⊢ HasStrictFDerivAt (fun x => x.1 ^ x.2)
    ((p.2 * p.1 ^ (p.2 - 1)) • ContinuousLinearMap.fst ℂ ℂ ℂ + (p.1 ^ p.2 * log p.1) • ContinuousLinearMap.snd ℂ ℂ ℂ) p
state_after: p : ℂ × ℂ
hp : p.1 ∈ slitPlane
A : p.1 ≠ 0
this : (fun x => x.1 ^ x.2) =ᶠ[𝓝 p] fun x => cexp (log x.1 * x.2)
⊢ HasStrictFDerivAt (fun x => x.1 ^ x.2)
    ((p.2 * p.1 ^ (p.2 - 1)) • ContinuousLinearMap.fst ℂ ℂ ℂ + (p.1 ^ p.2 * log p.1) • ContinuousLinearMap.snd ℂ ℂ ℂ) p

tactic: rw [cpow_sub _ _ A, cpow_one, mul_div_left_comm, mul_smul, mul_smul]
state_before: p : ℂ × ℂ
hp : p.1 ∈ slitPlane
A : p.1 ≠ 0
this : (fun x => x.1 ^ x.2) =ᶠ[𝓝 p] fun x => cexp (log x.1 * x.2)
⊢ HasStrictFDerivAt (fun x => x.1 ^ x.2)
    ((p.2 * p.1 ^ (p.2 - 1)) • ContinuousLinearMap.fst ℂ ℂ ℂ + (p.1 ^ p.2 * log p.1) • ContinuousLinearMap.snd ℂ ℂ ℂ) p
state_after: p : ℂ × ℂ
hp : p.1 ∈ slitPlane
A : p.1 ≠ 0
this : (fun x => x.1 ^ x.2) =ᶠ[𝓝 p] fun x => cexp (log x.1 * x.2)
⊢ HasStrictFDerivAt (fun x => x.1 ^ x.2)
    (p.1 ^ p.2 • (p.2 / p.1) • ContinuousLinearMap.fst ℂ ℂ ℂ + p.1 ^ p.2 • log p.1 • ContinuousLinearMap.snd ℂ ℂ ℂ) p

tactic: refine HasStrictFDerivAt.congr_of_eventuallyEq ?_ this.symm
state_before: p : ℂ × ℂ
hp : p.1 ∈ slitPlane
A : p.1 ≠ 0
this : (fun x => x.1 ^ x.2) =ᶠ[𝓝 p] fun x => cexp (log x.1 * x.2)
⊢ HasStrictFDerivAt (fun x => x.1 ^ x.2)
    (p.1 ^ p.2 • (p.2 / p.1) • ContinuousLinearMap.fst ℂ ℂ ℂ + p.1 ^ p.2 • log p.1 • ContinuousLinearMap.snd ℂ ℂ ℂ) p
state_after: p : ℂ × ℂ
hp : p.1 ∈ slitPlane
A : p.1 ≠ 0
this : (fun x => x.1 ^ x.2) =ᶠ[𝓝 p] fun x => cexp (log x.1 * x.2)
⊢ HasStrictFDerivAt (fun x => cexp (log x.1 * x.2))
    (p.1 ^ p.2 • (p.2 / p.1) • ContinuousLinearMap.fst ℂ ℂ ℂ + p.1 ^ p.2 • log p.1 • ContinuousLinearMap.snd ℂ ℂ ℂ) p

tactic: simpa only [cpow_def_of_ne_zero A, div_eq_mul_inv, mul_smul, add_comm, smul_add] using
  ((hasStrictFDerivAt_fst.clog hp).mul hasStrictFDerivAt_snd).cexp
state_before: p : ℂ × ℂ
hp : p.1 ∈ slitPlane
A : p.1 ≠ 0
this : (fun x => x.1 ^ x.2) =ᶠ[𝓝 p] fun x => cexp (log x.1 * x.2)
⊢ HasStrictFDerivAt (fun x => cexp (log x.1 * x.2))
    (p.1 ^ p.2 • (p.2 / p.1) • ContinuousLinearMap.fst ℂ ℂ ℂ + p.1 ^ p.2 • log p.1 • ContinuousLinearMap.snd ℂ ℂ ℂ) p
state_after: no goals
Theorem: Orientation.inner_rotation_pi_div_two_right
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean

tactic: rw [real_inner_comm, inner_rotation_pi_div_two_left]
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x : V
⊢ ⟪x, (o.rotation ↑(π / 2)) x⟫_ℝ = 0
state_after: no goals
Theorem: BoundedContinuousFunction.add_norm_nonneg
File: Mathlib/Topology/ContinuousFunction/Bounded.lean

tactic: intro x
state_before: F : Type u_1
α✝ : Type u
β : Type v
γ : Type w
α : Type u_2
inst✝ : TopologicalSpace α
f : α →ᵇ ℝ
⊢ 0 ≤ f + const α ‖f‖
state_after: F : Type u_1
α✝ : Type u
β : Type v
γ : Type w
α : Type u_2
inst✝ : TopologicalSpace α
f : α →ᵇ ℝ
x : α
⊢ (fun f => f.toFun) 0 x ≤ (fun f => f.toFun) (f + const α ‖f‖) x

tactic: simp only [ContinuousMap.toFun_eq_coe, coe_to_continuous_fun, coe_zero, Pi.zero_apply, coe_add,
  const_toFun, Pi.add_apply]
state_before: F : Type u_1
α✝ : Type u
β : Type v
γ : Type w
α : Type u_2
inst✝ : TopologicalSpace α
f : α →ᵇ ℝ
x : α
⊢ (fun f => f.toFun) 0 x ≤ (fun f => f.toFun) (f + const α ‖f‖) x
state_after: F : Type u_1
α✝ : Type u
β : Type v
γ : Type w
α : Type u_2
inst✝ : TopologicalSpace α
f : α →ᵇ ℝ
x : α
⊢ 0 ≤ f x + ‖f‖

tactic: linarith [(abs_le.mp (norm_coe_le_norm f x)).1]
state_before: F : Type u_1
α✝ : Type u
β : Type v
γ : Type w
α : Type u_2
inst✝ : TopologicalSpace α
f : α →ᵇ ℝ
x : α
⊢ 0 ≤ f x + ‖f‖
state_after: no goals
Theorem: Stream'.WSeq.destruct_cons
File: Mathlib/Data/Seq/WSeq.lean

tactic: simp [destruct, cons, Computation.rmap]
state_before: α : Type u
β : Type v
γ : Type w
a : α
s : WSeq α
⊢ (cons a s).destruct.destruct = Sum.inl (some (a, s))
state_after: no goals
Theorem: Computation.terminates_def
File: Mathlib/Data/Seq/Computation.lean

tactic: dsimp [Stream'.get] at h
state_before: α : Type u
β : Type v
γ : Type w
s : Computation α
x✝ : s.Terminates
a : α
n : ℕ
h : (fun b => some a = b) ((↑s).get n)
⊢ (↑s n).isSome = true
state_after: α : Type u
β : Type v
γ : Type w
s : Computation α
x✝ : s.Terminates
a : α
n : ℕ
h : some a = ↑s n
⊢ (↑s n).isSome = true

tactic: rw [← h]
state_before: α : Type u
β : Type v
γ : Type w
s : Computation α
x✝ : s.Terminates
a : α
n : ℕ
h : some a = ↑s n
⊢ (↑s n).isSome = true
state_after: α : Type u
β : Type v
γ : Type w
s : Computation α
x✝ : s.Terminates
a : α
n : ℕ
h : some a = ↑s n
⊢ (some a).isSome = true

tactic: exact rfl
state_before: α : Type u
β : Type v
γ : Type w
s : Computation α
x✝ : s.Terminates
a : α
n : ℕ
h : some a = ↑s n
⊢ (some a).isSome = true
state_after: no goals
Theorem: ProbabilityTheory.IsCondKernelCDF.lintegral
File: Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean

tactic: rw [← hf.setLIntegral _ MeasurableSet.univ, Measure.restrict_univ]
state_before: α : Type u_1
β : Type u_2
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ : ↥(kernel α (β × ℝ))
ν : ↥(kernel α β)
f✝ : α × β → StieltjesFunction
inst✝ : IsFiniteKernel κ
f : α × β → StieltjesFunction
hf : IsCondKernelCDF f κ ν
a : α
x : ℝ
⊢ ∫⁻ (b : β), ENNReal.ofReal (↑(f (a, b)) x) ∂ν a = (κ a) (univ ×ˢ Iic x)
state_after: no goals
Theorem: Subadditive.lim_le_div
File: Mathlib/Analysis/Subadditive.lean

tactic: rw [Subadditive.lim]
state_before: u : ℕ → ℝ
h : Subadditive u
hbdd : BddBelow (range fun n => u n / ↑n)
n : ℕ
hn : n ≠ 0
⊢ h.lim ≤ u n / ↑n
state_after: u : ℕ → ℝ
h : Subadditive u
hbdd : BddBelow (range fun n => u n / ↑n)
n : ℕ
hn : n ≠ 0
⊢ sInf ((fun n => u n / ↑n) '' Ici 1) ≤ u n / ↑n

tactic: exact csInf_le (hbdd.mono <| image_subset_range _ _) ⟨n, hn.bot_lt, rfl⟩
state_before: u : ℕ → ℝ
h : Subadditive u
hbdd : BddBelow (range fun n => u n / ↑n)
n : ℕ
hn : n ≠ 0
⊢ sInf ((fun n => u n / ↑n) '' Ici 1) ≤ u n / ↑n
state_after: no goals
Theorem: Submodule.mem_graph_toLinearPMap
File: Mathlib/LinearAlgebra/LinearPMap.lean

tactic: rw [toLinearPMap_apply_aux hg]
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
g : Submodule R (E × F)
hg : ∀ x ∈ g, x.1 = 0 → x.2 = 0
x : ↥(map (LinearMap.fst R E F) g)
⊢ (↑x, ↑g.toLinearPMap x) ∈ g
state_after: 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
g : Submodule R (E × F)
hg : ∀ x ∈ g, x.1 = 0 → x.2 = 0
x : ↥(map (LinearMap.fst R E F) g)
⊢ (↑x, valFromGraph hg ⋯) ∈ g

tactic: exact valFromGraph_mem hg x.2
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
g : Submodule R (E × F)
hg : ∀ x ∈ g, x.1 = 0 → x.2 = 0
x : ↥(map (LinearMap.fst R E F) g)
⊢ (↑x, valFromGraph hg ⋯) ∈ g
state_after: no goals
Theorem: CategoryTheory.Functor.initial_iff_isCofiltered_costructuredArrow
File: Mathlib/CategoryTheory/Filtered/Final.lean

tactic: refine ⟨?_, fun h => initial_of_isCofiltered_costructuredArrow F⟩
state_before: C : Type v₁
inst✝² : Category.{v₁, v₁} C
D : Type u₂
inst✝¹ : Category.{v₁, u₂} D
F : C ⥤ D
inst✝ : IsCofilteredOrEmpty C
⊢ F.Initial ↔ ∀ (d : D), IsCofiltered (CostructuredArrow F d)
state_after: C : Type v₁
inst✝² : Category.{v₁, v₁} C
D : Type u₂
inst✝¹ : Category.{v₁, u₂} D
F : C ⥤ D
inst✝ : IsCofilteredOrEmpty C
⊢ F.Initial → ∀ (d : D), IsCofiltered (CostructuredArrow F d)

tactic: rw [initial_iff_of_isCofiltered]
state_before: C : Type v₁
inst✝² : Category.{v₁, v₁} C
D : Type u₂
inst✝¹ : Category.{v₁, u₂} D
F : C ⥤ D
inst✝ : IsCofilteredOrEmpty C
⊢ F.Initial → ∀ (d : D), IsCofiltered (CostructuredArrow F d)
state_after: C : Type v₁
inst✝² : Category.{v₁, v₁} C
D : Type u₂
inst✝¹ : Category.{v₁, u₂} D
F : C ⥤ D
inst✝ : IsCofilteredOrEmpty C
⊢ ((∀ (d : D), ∃ c, Nonempty (F.obj c ⟶ d)) ∧
      ∀ {d : D} {c : C} (s s' : F.obj c ⟶ d), ∃ c' t, F.map t ≫ s = F.map t ≫ s') →
    ∀ (d : D), IsCofiltered (CostructuredArrow F d)

tactic: exact fun h => isCofiltered_costructuredArrow_of_isCofiltered_of_exists F h.1 h.2
state_before: C : Type v₁
inst✝² : Category.{v₁, v₁} C
D : Type u₂
inst✝¹ : Category.{v₁, u₂} D
F : C ⥤ D
inst✝ : IsCofilteredOrEmpty C
⊢ ((∀ (d : D), ∃ c, Nonempty (F.obj c ⟶ d)) ∧
      ∀ {d : D} {c : C} (s s' : F.obj c ⟶ d), ∃ c' t, F.map t ≫ s = F.map t ≫ s') →
    ∀ (d : D), IsCofiltered (CostructuredArrow F d)
state_after: no goals
Theorem: SimpleGraph.edgeFinset_replaceVertex_of_adj
File: Mathlib/Combinatorics/SimpleGraph/Operations.lean

tactic: simp only [incidenceFinset, neighborFinset, ← Set.toFinset_diff, ← Set.toFinset_image,
  ← Set.toFinset_union, ← Set.toFinset_singleton]
state_before: V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
ha : G.Adj s t
⊢ (G.replaceVertex s t).edgeFinset =
    (G.edgeFinset \ G.incidenceFinset t ∪ image (fun x => s(x, t)) (G.neighborFinset s)) \ {s(t, t)}
state_after: V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
ha : G.Adj s t
⊢ (G.replaceVertex s t).edgeFinset =
    ((G.edgeSet \ G.incidenceSet t ∪ (fun x => s(x, t)) '' G.neighborSet s) \ {s(t, t)}).toFinset

tactic: exact Set.toFinset_congr (G.edgeSet_replaceVertex_of_adj ha)
state_before: V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
ha : G.Adj s t
⊢ (G.replaceVertex s t).edgeFinset =
    ((G.edgeSet \ G.incidenceSet t ∪ (fun x => s(x, t)) '' G.neighborSet s) \ {s(t, t)}).toFinset
state_after: no goals
Theorem: Ordinal.one_le_card
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: simpa using nat_le_card (n := 1)
state_before: α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u_3}
⊢ 1 ≤ o.card ↔ 1 ≤ o
state_after: no goals
Theorem: Finset.subset_compl_singleton
File: Mathlib/Data/Fintype/Basic.lean

tactic: rw [subset_compl_comm, singleton_subset_iff, mem_compl]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : Fintype α
s t : Finset α
inst✝ : DecidableEq α
a : α
⊢ s ⊆ {a}ᶜ ↔ a ∉ s
state_after: no goals
Theorem: CategoryTheory.ShortComplex.toCycles_comp_leftHomologyπ
File: Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean

tactic: rw [id_comp]
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
h : S.LeftHomologyData
A : C
k : A ⟶ S.X₂
hk : k ≫ S.g = 0
inst✝ : S.HasLeftHomology
⊢ S.f = 𝟙 S.X₁ ≫ S.f
state_after: no goals
Theorem: CategoryTheory.Limits.map_lift_kernelComparison
File: Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean

tactic: simp only [← G.map_comp, w, Functor.map_zero]
state_before: C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
D : Type u₂
inst✝⁴ : Category.{v₂, u₂} D
inst✝³ : HasZeroMorphisms D
G : C ⥤ D
inst✝² : G.PreservesZeroMorphisms
inst✝¹ : HasKernel f
inst✝ : HasKernel (G.map f)
Z : C
h : Z ⟶ X
w : h ≫ f = 0
⊢ G.map h ≫ G.map f = 0
state_after: no goals

tactic: ext
state_before: C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
D : Type u₂
inst✝⁴ : Category.{v₂, u₂} D
inst✝³ : HasZeroMorphisms D
G : C ⥤ D
inst✝² : G.PreservesZeroMorphisms
inst✝¹ : HasKernel f
inst✝ : HasKernel (G.map f)
Z : C
h : Z ⟶ X
w : h ≫ f = 0
⊢ G.map (kernel.lift f h w) ≫ kernelComparison f G = kernel.lift (G.map f) (G.map h) ⋯
state_after: case h
C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
D : Type u₂
inst✝⁴ : Category.{v₂, u₂} D
inst✝³ : HasZeroMorphisms D
G : C ⥤ D
inst✝² : G.PreservesZeroMorphisms
inst✝¹ : HasKernel f
inst✝ : HasKernel (G.map f)
Z : C
h : Z ⟶ X
w : h ≫ f = 0
⊢ (G.map (kernel.lift f h w) ≫ kernelComparison f G) ≫ equalizer.ι (G.map f) 0 =
    kernel.lift (G.map f) (G.map h) ⋯ ≫ equalizer.ι (G.map f) 0

tactic: simp [← G.map_comp]
state_before: case h
C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
D : Type u₂
inst✝⁴ : Category.{v₂, u₂} D
inst✝³ : HasZeroMorphisms D
G : C ⥤ D
inst✝² : G.PreservesZeroMorphisms
inst✝¹ : HasKernel f
inst✝ : HasKernel (G.map f)
Z : C
h : Z ⟶ X
w : h ≫ f = 0
⊢ (G.map (kernel.lift f h w) ≫ kernelComparison f G) ≫ equalizer.ι (G.map f) 0 =
    kernel.lift (G.map f) (G.map h) ⋯ ≫ equalizer.ι (G.map f) 0
state_after: no goals
Theorem: inseparable_iff_clusterPt_uniformity
File: Mathlib/Topology/UniformSpace/Separation.lean

tactic: refine ⟨fun h ↦ .of_nhds_le h.nhds_le_uniformity, fun h ↦ ?_⟩
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
x y : α
⊢ Inseparable x y ↔ ClusterPt (x, y) (𝓤 α)
state_after: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
x y : α
h : ClusterPt (x, y) (𝓤 α)
⊢ Inseparable x y

tactic: simp_rw [uniformity_hasBasis_closed.inseparable_iff_uniformity, isClosed_iff_clusterPt]
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
x y : α
h : ClusterPt (x, y) (𝓤 α)
⊢ Inseparable x y
state_after: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
x y : α
h : ClusterPt (x, y) (𝓤 α)
⊢ ∀ (i : Set (α × α)), (i ∈ 𝓤 α ∧ ∀ (a : α × α), ClusterPt a (𝓟 i) → a ∈ i) → (x, y) ∈ id i

tactic: exact fun U ⟨hU, hUc⟩ ↦ hUc _ <| h.mono <| le_principal_iff.2 hU
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
x y : α
h : ClusterPt (x, y) (𝓤 α)
⊢ ∀ (i : Set (α × α)), (i ∈ 𝓤 α ∧ ∀ (a : α × α), ClusterPt a (𝓟 i) → a ∈ i) → (x, y) ∈ id i
state_after: no goals
Theorem: TopCat.stalkToFiber_germ
File: Mathlib/Topology/Sheaves/LocalPredicate.lean

tactic: dsimp [Presheaf.germ, stalkToFiber]
state_before: X : TopCat
T : ↑X → Type v
P : LocalPredicate T
U : Opens ↑X
x : ↥U
f : (subsheafToTypes P).presheaf.obj { unop := U }
⊢ stalkToFiber P (↑x) ((subsheafToTypes P).presheaf.germ x f) = ↑f x
state_after: X : TopCat
T : ↑X → Type v
P : LocalPredicate T
U : Opens ↑X
x : ↥U
f : (subsheafToTypes P).presheaf.obj { unop := U }
⊢ colimit.desc ((OpenNhds.inclusion ↑x).op ⋙ subpresheafToTypes P.toPrelocalPredicate)
      { pt := T ↑x, ι := { app := fun U_1 f => ↑f ⟨↑x, ⋯⟩, naturality := ⋯ } }
      (colimit.ι ((OpenNhds.inclusion ↑x).op ⋙ subpresheafToTypes P.toPrelocalPredicate)
        { unop := { obj := U, property := ⋯ } } f) =
    ↑f x

tactic: cases x
state_before: X : TopCat
T : ↑X → Type v
P : LocalPredicate T
U : Opens ↑X
x : ↥U
f : (subsheafToTypes P).presheaf.obj { unop := U }
⊢ colimit.desc ((OpenNhds.inclusion ↑x).op ⋙ subpresheafToTypes P.toPrelocalPredicate)
      { pt := T ↑x, ι := { app := fun U_1 f => ↑f ⟨↑x, ⋯⟩, naturality := ⋯ } }
      (colimit.ι ((OpenNhds.inclusion ↑x).op ⋙ subpresheafToTypes P.toPrelocalPredicate)
        { unop := { obj := U, property := ⋯ } } f) =
    ↑f x
state_after: case mk
X : TopCat
T : ↑X → Type v
P : LocalPredicate T
U : Opens ↑X
f : (subsheafToTypes P).presheaf.obj { unop := U }
val✝ : ↑X
property✝ : val✝ ∈ U
⊢ colimit.desc ((OpenNhds.inclusion ↑⟨val✝, property✝⟩).op ⋙ subpresheafToTypes P.toPrelocalPredicate)
      { pt := T ↑⟨val✝, property✝⟩, ι := { app := fun U_1 f => ↑f ⟨↑⟨val✝, property✝⟩, ⋯⟩, naturality := ⋯ } }
      (colimit.ι ((OpenNhds.inclusion ↑⟨val✝, property✝⟩).op ⋙ subpresheafToTypes P.toPrelocalPredicate)
        { unop := { obj := U, property := ⋯ } } f) =
    ↑f ⟨val✝, property✝⟩

tactic: simp
state_before: case mk
X : TopCat
T : ↑X → Type v
P : LocalPredicate T
U : Opens ↑X
f : (subsheafToTypes P).presheaf.obj { unop := U }
val✝ : ↑X
property✝ : val✝ ∈ U
⊢ colimit.desc ((OpenNhds.inclusion ↑⟨val✝, property✝⟩).op ⋙ subpresheafToTypes P.toPrelocalPredicate)
      { pt := T ↑⟨val✝, property✝⟩, ι := { app := fun U_1 f => ↑f ⟨↑⟨val✝, property✝⟩, ⋯⟩, naturality := ⋯ } }
      (colimit.ι ((OpenNhds.inclusion ↑⟨val✝, property✝⟩).op ⋙ subpresheafToTypes P.toPrelocalPredicate)
        { unop := { obj := U, property := ⋯ } } f) =
    ↑f ⟨val✝, property✝⟩
state_after: no goals
Theorem: MeasurableEquiv.coe_sumPiEquivProdPi
File: Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean

tactic: rfl
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α✝
inst✝⁶ : MeasurableSpace α✝
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace γ
inst✝³ : MeasurableSpace δ
π : δ' → Type u_6
π' : δ' → Type u_7
inst✝² : (x : δ') → MeasurableSpace (π x)
inst✝¹ : (x : δ') → MeasurableSpace (π' x)
α : δ ⊕ δ' → Type u_8
inst✝ : (i : δ ⊕ δ') → MeasurableSpace (α i)
⊢ ⇑(sumPiEquivProdPi α) = ⇑(Equiv.sumPiEquivProdPi α)
state_after: no goals
Theorem: CircleDeg1Lift.lt_iterate_pos_iff
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: simpa only [not_le] using not_congr (f.iterate_pos_le_iff hn)
state_before: f g : CircleDeg1Lift
x : ℝ
m : ℤ
n : ℕ
hn : 0 < n
⊢ x + ↑n * ↑m < (⇑f)^[n] x ↔ x + ↑m < f x
state_after: no goals