1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Homeomorph.symm_comp_toContinuousMap
File: Mathlib/Topology/ContinuousFunction/Basic.lean

tactic: rw [← coe_trans, self_trans_symm, coe_refl]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
f : α ≃ₜ β
g : β ≃ₜ γ
⊢ f.symm.toContinuousMap.comp f.toContinuousMap = ContinuousMap.id α
state_after: no goals
Theorem: nhdsWithin_compl_singleton_sup_pure
File: Mathlib/Topology/ContinuousOn.lean

tactic: rw [← nhdsWithin_singleton, ← nhdsWithin_union, compl_union_self, nhdsWithin_univ]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : TopologicalSpace α
a : α
⊢ 𝓝[≠] a ⊔ pure a = 𝓝 a
state_after: no goals
Theorem: Path.extend_one
File: Mathlib/Topology/Connected/PathConnected.lean

tactic: simp
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type u_3
γ : Path x y
⊢ γ.extend 1 = y
state_after: no goals
Theorem: Padic.const_equiv
File: Mathlib/NumberTheory/Padics/PadicNumbers.lean

tactic: rw [heq]
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
q r : ℚ
heq : q = r
⊢ const (padicNorm p) q ≈ const (padicNorm p) r
state_after: no goals
Theorem: List.leftpad_eq_leftpadTR
File: .lake/packages/batteries/Batteries/Data/List/Basic.lean

tactic: funext α n a l
state_before: ⊢ @leftpad = @leftpadTR
state_after: case h.h.h.h
α : Type u_1
n : Nat
a : α
l : List α
⊢ leftpad n a l = leftpadTR n a l

tactic: simp [leftpad, leftpadTR, replicateTR_loop_eq]
state_before: case h.h.h.h
α : Type u_1
n : Nat
a : α
l : List α
⊢ leftpad n a l = leftpadTR n a l
state_after: no goals
Theorem: IsCompact.inter_right
File: Mathlib/Topology/Compactness/Compact.lean

tactic: intro f hnf hstf
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
hs : IsCompact s
ht : IsClosed t
⊢ IsCompact (s ∩ t)
state_after: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
hs : IsCompact s
ht : IsClosed t
f : Filter X
hnf : f.NeBot
hstf : f ≤ 𝓟 (s ∩ t)
⊢ ∃ x ∈ s ∩ t, ClusterPt x f

tactic: obtain ⟨x, hsx, hx⟩ : ∃ x ∈ s, ClusterPt x f :=
  hs (le_trans hstf (le_principal_iff.2 inter_subset_left))
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
hs : IsCompact s
ht : IsClosed t
f : Filter X
hnf : f.NeBot
hstf : f ≤ 𝓟 (s ∩ t)
⊢ ∃ x ∈ s ∩ t, ClusterPt x f
state_after: case intro.intro
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
hs : IsCompact s
ht : IsClosed t
f : Filter X
hnf : f.NeBot
hstf : f ≤ 𝓟 (s ∩ t)
x : X
hsx : x ∈ s
hx : ClusterPt x f
⊢ ∃ x ∈ s ∩ t, ClusterPt x f

tactic: have : x ∈ t := ht.mem_of_nhdsWithin_neBot <|
  hx.mono <| le_trans hstf (le_principal_iff.2 inter_subset_right)
state_before: case intro.intro
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
hs : IsCompact s
ht : IsClosed t
f : Filter X
hnf : f.NeBot
hstf : f ≤ 𝓟 (s ∩ t)
x : X
hsx : x ∈ s
hx : ClusterPt x f
⊢ ∃ x ∈ s ∩ t, ClusterPt x f
state_after: case intro.intro
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
hs : IsCompact s
ht : IsClosed t
f : Filter X
hnf : f.NeBot
hstf : f ≤ 𝓟 (s ∩ t)
x : X
hsx : x ∈ s
hx : ClusterPt x f
this : x ∈ t
⊢ ∃ x ∈ s ∩ t, ClusterPt x f

tactic: exact ⟨x, ⟨hsx, this⟩, hx⟩
state_before: case intro.intro
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
hs : IsCompact s
ht : IsClosed t
f : Filter X
hnf : f.NeBot
hstf : f ≤ 𝓟 (s ∩ t)
x : X
hsx : x ∈ s
hx : ClusterPt x f
this : x ∈ t
⊢ ∃ x ∈ s ∩ t, ClusterPt x f
state_after: no goals
Theorem: Finset.exists_card_fiber_lt_of_card_lt_nsmul
File: Mathlib/Combinatorics/Pigeonhole.lean

tactic: simp_rw [cast_card] at ht ⊢
state_before: α : Type u
β : Type v
M : Type w
inst✝¹ : DecidableEq β
s : Finset α
t : Finset β
f : α → β
w : α → M
b : M
n : ℕ
inst✝ : LinearOrderedCommSemiring M
ht : ↑s.card < t.card • b
⊢ ∃ y ∈ t, ↑(filter (fun x => f x = y) s).card < b
state_after: α : Type u
β : Type v
M : Type w
inst✝¹ : DecidableEq β
s : Finset α
t : Finset β
f : α → β
w : α → M
b : M
n : ℕ
inst✝ : LinearOrderedCommSemiring M
ht : ∑ a ∈ s, 1 < t.card • b
⊢ ∃ y ∈ t, ∑ a ∈ filter (fun x => f x = y) s, 1 < b

tactic: exact
  exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
    (fun _ _ => sum_nonneg fun _ _ => zero_le_one) ht
state_before: α : Type u
β : Type v
M : Type w
inst✝¹ : DecidableEq β
s : Finset α
t : Finset β
f : α → β
w : α → M
b : M
n : ℕ
inst✝ : LinearOrderedCommSemiring M
ht : ∑ a ∈ s, 1 < t.card • b
⊢ ∃ y ∈ t, ∑ a ∈ filter (fun x => f x = y) s, 1 < b
state_after: no goals
Theorem: Int.le_floor_add
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [le_floor, Int.cast_add]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
⊢ ⌊a⌋ + ⌊b⌋ ≤ ⌊a + b⌋
state_after: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
⊢ ↑⌊a⌋ + ↑⌊b⌋ ≤ a + b

tactic: exact add_le_add (floor_le _) (floor_le _)
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
⊢ ↑⌊a⌋ + ↑⌊b⌋ ≤ a + b
state_after: no goals
Theorem: Real.rpow_inv_natCast_pow
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: have hn0 : (n : ℝ) ≠ 0 := Nat.cast_ne_zero.2 hn
state_before: x y z : ℝ
n : ℕ
hx : 0 ≤ x
hn : n ≠ 0
⊢ (x ^ (↑n)⁻¹) ^ n = x
state_after: x y z : ℝ
n : ℕ
hx : 0 ≤ x
hn : n ≠ 0
hn0 : ↑n ≠ 0
⊢ (x ^ (↑n)⁻¹) ^ n = x

tactic: rw [← rpow_natCast, ← rpow_mul hx, inv_mul_cancel hn0, rpow_one]
state_before: x y z : ℝ
n : ℕ
hx : 0 ≤ x
hn : n ≠ 0
hn0 : ↑n ≠ 0
⊢ (x ^ (↑n)⁻¹) ^ n = x
state_after: no goals
Theorem: MeasureTheory.integral_fintype
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: rw [← integral_finset .univ, Finset.coe_univ, Measure.restrict_univ]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NormedSpace 𝕜 E
inst✝⁹ : SMulCommClass ℝ 𝕜 E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : CompleteSpace F
G : Type u_5
inst✝⁵ : NormedAddCommGroup G
inst✝⁴ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type u_6
inst✝³ : TopologicalSpace X
inst✝² : FirstCountableTopology X
ν : Measure α
inst✝¹ : MeasurableSingletonClass α
inst✝ : Fintype α
f : α → E
hf : Integrable f μ
⊢ ∫ (x : α), f x ∂μ = ∑ x : α, (μ {x}).toReal • f x
state_after: case hf
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NormedSpace 𝕜 E
inst✝⁹ : SMulCommClass ℝ 𝕜 E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : CompleteSpace F
G : Type u_5
inst✝⁵ : NormedAddCommGroup G
inst✝⁴ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type u_6
inst✝³ : TopologicalSpace X
inst✝² : FirstCountableTopology X
ν : Measure α
inst✝¹ : MeasurableSingletonClass α
inst✝ : Fintype α
f : α → E
hf : Integrable f μ
⊢ Integrable f (μ.restrict ↑Finset.univ)

tactic: simp only [Finset.coe_univ, Measure.restrict_univ, hf]
state_before: case hf
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NormedSpace 𝕜 E
inst✝⁹ : SMulCommClass ℝ 𝕜 E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : CompleteSpace F
G : Type u_5
inst✝⁵ : NormedAddCommGroup G
inst✝⁴ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type u_6
inst✝³ : TopologicalSpace X
inst✝² : FirstCountableTopology X
ν : Measure α
inst✝¹ : MeasurableSingletonClass α
inst✝ : Fintype α
f : α → E
hf : Integrable f μ
⊢ Integrable f (μ.restrict ↑Finset.univ)
state_after: no goals
Theorem: eVariationOn.constant_on
File: Mathlib/Analysis/BoundedVariation.lean

tactic: rw [eq_zero_iff]
state_before: α : Type u_1
inst✝¹ : LinearOrder α
E : Type u_2
inst✝ : PseudoEMetricSpace E
f : α → E
s : Set α
hf : (f '' s).Subsingleton
⊢ eVariationOn f s = 0
state_after: α : Type u_1
inst✝¹ : LinearOrder α
E : Type u_2
inst✝ : PseudoEMetricSpace E
f : α → E
s : Set α
hf : (f '' s).Subsingleton
⊢ ∀ x ∈ s, ∀ y ∈ s, edist (f x) (f y) = 0

tactic: rintro x xs y ys
state_before: α : Type u_1
inst✝¹ : LinearOrder α
E : Type u_2
inst✝ : PseudoEMetricSpace E
f : α → E
s : Set α
hf : (f '' s).Subsingleton
⊢ ∀ x ∈ s, ∀ y ∈ s, edist (f x) (f y) = 0
state_after: α : Type u_1
inst✝¹ : LinearOrder α
E : Type u_2
inst✝ : PseudoEMetricSpace E
f : α → E
s : Set α
hf : (f '' s).Subsingleton
x : α
xs : x ∈ s
y : α
ys : y ∈ s
⊢ edist (f x) (f y) = 0

tactic: rw [hf ⟨x, xs, rfl⟩ ⟨y, ys, rfl⟩, edist_self]
state_before: α : Type u_1
inst✝¹ : LinearOrder α
E : Type u_2
inst✝ : PseudoEMetricSpace E
f : α → E
s : Set α
hf : (f '' s).Subsingleton
x : α
xs : x ∈ s
y : α
ys : y ∈ s
⊢ edist (f x) (f y) = 0
state_after: no goals
Theorem: eq_one_div_of_mul_eq_one_right
File: Mathlib/Algebra/Group/Basic.lean

tactic: rw [eq_inv_of_mul_eq_one_right h, one_div]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a b c d : α
h : a * b = 1
⊢ b = 1 / a
state_after: no goals
Theorem: Complex.cos_int_mul_two_pi_sub_pi
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: simpa only [cos_zero] using (cos_periodic.int_mul n).sub_antiperiod_eq cos_antiperiodic
state_before: n : ℤ
⊢ cos (↑n * (2 * ↑π) - ↑π) = -1
state_after: no goals
Theorem: Sym2.other_ne
File: Mathlib/Data/Sym/Sym2.lean

tactic: contrapose! hd
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a : α
z : Sym2 α
hd : ¬z.IsDiag
h : a ∈ z
⊢ Mem.other h ≠ a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a : α
z : Sym2 α
h : a ∈ z
hd : Mem.other h = a
⊢ z.IsDiag

tactic: have h' := Sym2.other_spec h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a : α
z : Sym2 α
h : a ∈ z
hd : Mem.other h = a
⊢ z.IsDiag
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a : α
z : Sym2 α
h : a ∈ z
hd : Mem.other h = a
h' : s(a, Mem.other h) = z
⊢ z.IsDiag

tactic: rw [hd] at h'
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a : α
z : Sym2 α
h : a ∈ z
hd : Mem.other h = a
h' : s(a, Mem.other h) = z
⊢ z.IsDiag
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a : α
z : Sym2 α
h : a ∈ z
hd : Mem.other h = a
h' : s(a, a) = z
⊢ z.IsDiag

tactic: rw [← h']
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a : α
z : Sym2 α
h : a ∈ z
hd : Mem.other h = a
h' : s(a, a) = z
⊢ z.IsDiag
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a : α
z : Sym2 α
h : a ∈ z
hd : Mem.other h = a
h' : s(a, a) = z
⊢ s(a, a).IsDiag

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a : α
z : Sym2 α
h : a ∈ z
hd : Mem.other h = a
h' : s(a, a) = z
⊢ s(a, a).IsDiag
state_after: no goals
Theorem: ConvexOn.le_slope_of_hasDerivWithinAt_Ioi
File: Mathlib/Analysis/Convex/Deriv.lean

tactic: apply le_of_tendsto <| (hasDerivWithinAt_iff_tendsto_slope' not_mem_Ioi_self).mp hf'
state_before: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : ConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' (Ioi x) x
⊢ f' ≤ slope f x y
state_after: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : ConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' (Ioi x) x
⊢ ∀ᶠ (c : ℝ) in 𝓝[>] x, slope f x c ≤ slope f x y

tactic: simp_rw [eventually_nhdsWithin_iff, slope_def_field]
state_before: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : ConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' (Ioi x) x
⊢ ∀ᶠ (c : ℝ) in 𝓝[>] x, slope f x c ≤ slope f x y
state_after: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : ConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' (Ioi x) x
⊢ ∀ᶠ (x_1 : ℝ) in 𝓝 x, x_1 ∈ Ioi x → (f x_1 - f x) / (x_1 - x) ≤ (f y - f x) / (y - x)

tactic: filter_upwards [eventually_lt_nhds hxy] with t ht (ht' : x < t)
state_before: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : ConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' (Ioi x) x
⊢ ∀ᶠ (x_1 : ℝ) in 𝓝 x, x_1 ∈ Ioi x → (f x_1 - f x) / (x_1 - x) ≤ (f y - f x) / (y - x)
state_after: case h
S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : ConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' (Ioi x) x
t : ℝ
ht : t < y
ht' : x < t
⊢ (f t - f x) / (t - x) ≤ (f y - f x) / (y - x)

tactic: refine hfc.secant_mono hx (?_ : t ∈ S) hy ht'.ne' hxy.ne' ht.le
state_before: case h
S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : ConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' (Ioi x) x
t : ℝ
ht : t < y
ht' : x < t
⊢ (f t - f x) / (t - x) ≤ (f y - f x) / (y - x)
state_after: case h
S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : ConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' (Ioi x) x
t : ℝ
ht : t < y
ht' : x < t
⊢ t ∈ S

tactic: exact hfc.1.ordConnected.out hx hy ⟨ht'.le, ht.le⟩
state_before: case h
S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : ConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' (Ioi x) x
t : ℝ
ht : t < y
ht' : x < t
⊢ t ∈ S
state_after: no goals
Theorem: Matrix.SpecialLinearGroup.isCoprime_col
File: Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean

tactic: simp_rw [det_coe A ▸ det_fin_two A.1]
state_before: case refine_2
n : Type u
inst✝³ : DecidableEq n
inst✝² : Fintype n
R : Type v
inst✝¹ : CommRing R
S : Type u_1
inst✝ : CommRing S
A : SL(2, R)
j : Fin 2
⊢ -↑A 1 0 * ↑A 0 1 + ↑A 0 0 * ↑A 1 1 = 1
state_after: case refine_2
n : Type u
inst✝³ : DecidableEq n
inst✝² : Fintype n
R : Type v
inst✝¹ : CommRing R
S : Type u_1
inst✝ : CommRing S
A : SL(2, R)
j : Fin 2
⊢ -↑A 1 0 * ↑A 0 1 + ↑A 0 0 * ↑A 1 1 = ↑A 0 0 * ↑A 1 1 - ↑A 0 1 * ↑A 1 0

tactic: ring
state_before: case refine_2
n : Type u
inst✝³ : DecidableEq n
inst✝² : Fintype n
R : Type v
inst✝¹ : CommRing R
S : Type u_1
inst✝ : CommRing S
A : SL(2, R)
j : Fin 2
⊢ -↑A 1 0 * ↑A 0 1 + ↑A 0 0 * ↑A 1 1 = ↑A 0 0 * ↑A 1 1 - ↑A 0 1 * ↑A 1 0
state_after: no goals
Theorem: Algebra.adjoin_singleton_eq_range_aeval
File: Mathlib/Algebra/Polynomial/AlgebraMap.lean

tactic: rw [← Algebra.map_top, ← adjoin_X, AlgHom.map_adjoin, Set.image_singleton, aeval_X]
state_before: R : Type u
S : Type v
T : Type w
A : Type z
A' : Type u_1
B : Type u_2
a b : R
n : ℕ
inst✝⁶ : CommSemiring R
inst✝⁵ : Semiring A
inst✝⁴ : CommSemiring A'
inst✝³ : Semiring B
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R B
p q : R[X]
x✝ x : A
⊢ Algebra.adjoin R {x} = (aeval x).range
state_after: no goals
Theorem: dist_pi_eq_iff
File: Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean

tactic: lift r to ℝ≥0 using hr.le
state_before: α : Type u_1
β : Type u_2
inst✝² : PseudoMetricSpace α
π : β → Type u_3
inst✝¹ : Fintype β
inst✝ : (b : β) → PseudoMetricSpace (π b)
f g : (b : β) → π b
r : ℝ
hr : 0 < r
⊢ dist f g = r ↔ (∃ i, dist (f i) (g i) = r) ∧ ∀ (b : β), dist (f b) (g b) ≤ r
state_after: case intro
α : Type u_1
β : Type u_2
inst✝² : PseudoMetricSpace α
π : β → Type u_3
inst✝¹ : Fintype β
inst✝ : (b : β) → PseudoMetricSpace (π b)
f g : (b : β) → π b
r : ℝ≥0
hr : 0 < ↑r
⊢ dist f g = ↑r ↔ (∃ i, dist (f i) (g i) = ↑r) ∧ ∀ (b : β), dist (f b) (g b) ≤ ↑r

tactic: simp_rw [← coe_nndist, NNReal.coe_inj, nndist_pi_eq_iff hr, NNReal.coe_le_coe]
state_before: case intro
α : Type u_1
β : Type u_2
inst✝² : PseudoMetricSpace α
π : β → Type u_3
inst✝¹ : Fintype β
inst✝ : (b : β) → PseudoMetricSpace (π b)
f g : (b : β) → π b
r : ℝ≥0
hr : 0 < ↑r
⊢ dist f g = ↑r ↔ (∃ i, dist (f i) (g i) = ↑r) ∧ ∀ (b : β), dist (f b) (g b) ≤ ↑r
state_after: no goals
Theorem: Trivialization.map_proj_nhds
File: Mathlib/Topology/FiberBundle/Trivialization.lean

tactic: rw [← e.coe_fst ex, ← map_congr (e.coe_fst_eventuallyEq_proj ex), ← map_map, ← e.coe_coe,
  e.map_nhds_eq ex, map_fst_nhds]
state_before: ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x : Z
ex : x ∈ e.source
⊢ map proj (𝓝 x) = 𝓝 (proj x)
state_after: no goals
Theorem: UniqueMDiffWithinAt.preimage_partialHomeomorph
File: Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean

tactic: rw [← e.image_source_inter_eq', inter_comm]
state_before: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
H : Type u_3
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝⁸ : TopologicalSpace M
inst✝⁷ : ChartedSpace H M
inst✝⁶ : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝³ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : SmoothManifoldWithCorners I' M'
s : Set M
x : M
hs : UniqueMDiffWithinAt I s x
e : PartialHomeomorph M M'
he : PartialHomeomorph.MDifferentiable I I' e
hx : x ∈ e.source
⊢ UniqueMDiffWithinAt I' (e.target ∩ ↑e.symm ⁻¹' s) (↑e x)
state_after: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
H : Type u_3
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝⁸ : TopologicalSpace M
inst✝⁷ : ChartedSpace H M
inst✝⁶ : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝³ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : SmoothManifoldWithCorners I' M'
s : Set M
x : M
hs : UniqueMDiffWithinAt I s x
e : PartialHomeomorph M M'
he : PartialHomeomorph.MDifferentiable I I' e
hx : x ∈ e.source
⊢ UniqueMDiffWithinAt I' (↑e '' (s ∩ e.source)) (↑e x)

tactic: exact (hs.inter (e.open_source.mem_nhds hx)).image_denseRange
  (he.mdifferentiableAt hx).hasMFDerivAt.hasMFDerivWithinAt
  (he.mfderiv_surjective hx).denseRange
state_before: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
H : Type u_3
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝⁸ : TopologicalSpace M
inst✝⁷ : ChartedSpace H M
inst✝⁶ : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝³ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : SmoothManifoldWithCorners I' M'
s : Set M
x : M
hs : UniqueMDiffWithinAt I s x
e : PartialHomeomorph M M'
he : PartialHomeomorph.MDifferentiable I I' e
hx : x ∈ e.source
⊢ UniqueMDiffWithinAt I' (↑e '' (s ∩ e.source)) (↑e x)
state_after: no goals
Theorem: Multiset.map_mk_eq_map_mk_of_rel
File: Mathlib/Data/Multiset/Basic.lean

tactic: simp [ih, Quot.sound hab]
state_before: α : Type u_1
β : Type v
γ : Type u_2
r : α → α → Prop
s t : Multiset α
hst : Rel r s t
a✝ b✝ : α
as✝ bs✝ : Multiset α
hab : r a✝ b✝
_hst : Rel r as✝ bs✝
ih : map (Quot.mk r) as✝ = map (Quot.mk r) bs✝
⊢ map (Quot.mk r) (a✝ ::ₘ as✝) = map (Quot.mk r) (b✝ ::ₘ bs✝)
state_after: no goals
Theorem: MeasureTheory.StronglyMeasurable.mono
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: let f_approx : ℕ → @SimpleFunc α m β := fun n =>
  @SimpleFunc.mk α m β
    (hf.approx n)
    (fun x => h_mono _ (SimpleFunc.measurableSet_fiber' _ x))
    (SimpleFunc.finite_range (hf.approx n))
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝¹ : Countable ι
f g : α → β
m m' : MeasurableSpace α
inst✝ : TopologicalSpace β
hf : StronglyMeasurable f
h_mono : m' ≤ m
⊢ StronglyMeasurable f
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝¹ : Countable ι
f g : α → β
m m' : MeasurableSpace α
inst✝ : TopologicalSpace β
hf : StronglyMeasurable f
h_mono : m' ≤ m
f_approx : ℕ → α →ₛ β := fun n => { toFun := ↑(hf.approx n), measurableSet_fiber' := ⋯, finite_range' := ⋯ }
⊢ StronglyMeasurable f

tactic: exact ⟨f_approx, hf.tendsto_approx⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝¹ : Countable ι
f g : α → β
m m' : MeasurableSpace α
inst✝ : TopologicalSpace β
hf : StronglyMeasurable f
h_mono : m' ≤ m
f_approx : ℕ → α →ₛ β := fun n => { toFun := ↑(hf.approx n), measurableSet_fiber' := ⋯, finite_range' := ⋯ }
⊢ StronglyMeasurable f
state_after: no goals
Theorem: dNext_eq
File: Mathlib/Algebra/Homology/Homotopy.lean

tactic: obtain rfl := c.next_eq' w
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f✝ g : C ⟶ D
h k : D ⟶ E
i✝ : ι
f : (i j : ι) → C.X i ⟶ D.X j
i i' : ι
w : c.Rel i i'
⊢ (dNext i) f = C.d i i' ≫ f i' i
state_after: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f✝ g : C ⟶ D
h k : D ⟶ E
i✝ : ι
f : (i j : ι) → C.X i ⟶ D.X j
i : ι
w : c.Rel i (c.next i)
⊢ (dNext i) f = C.d i (c.next i) ≫ f (c.next i) i

tactic: rfl
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f✝ g : C ⟶ D
h k : D ⟶ E
i✝ : ι
f : (i j : ι) → C.X i ⟶ D.X j
i : ι
w : c.Rel i (c.next i)
⊢ (dNext i) f = C.d i (c.next i) ≫ f (c.next i) i
state_after: no goals
Theorem: Function.Antiperiodic.sub_eq'
File: Mathlib/Algebra/Periodic.lean

tactic: simpa only [sub_eq_neg_add] using h (-x)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f g : α → β
c c₁ c₂ x : α
inst✝¹ : AddCommGroup α
inst✝ : Neg β
h : Antiperiodic f c
⊢ f (c - x) = -f (-x)
state_after: no goals
Theorem: MeasureTheory.Measure.count_apply_finite'
File: Mathlib/MeasureTheory/Measure/Count.lean

tactic: simp [←
  @count_apply_finset' _ _ s_fin.toFinset (by simpa only [Finite.coe_toFinset] using s_mble)]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s✝ s : Set α
s_fin : s.Finite
s_mble : MeasurableSet s
⊢ count s = ↑s_fin.toFinset.card
state_after: no goals

tactic: simpa only [Finite.coe_toFinset] using s_mble
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s✝ s : Set α
s_fin : s.Finite
s_mble : MeasurableSet s
⊢ MeasurableSet ↑s_fin.toFinset
state_after: no goals