tasksource/leandojo huggingface dataset:
Theorem: Nat.fib_dvd
File: Mathlib/Data/Nat/Fib.lean

tactic: rwa [gcd_eq_left_iff_dvd, ← fib_gcd, gcd_eq_left_iff_dvd.mp]
state_before: m n : ℕ
h : m ∣ n
⊢ fib m ∣ fib n
Theorem: EMetric.diam_insert
File: Mathlib/Topology/MetricSpace/EMetricSpace.lean

tactic: simp only [diam_le_iff, ball_insert_iff, edist_self, edist_comm x, max_le_iff, iSup_le_iff,
  zero_le, true_and_iff, forall_and, and_self_iff, ← and_assoc]
state_before: α : Type u
β : Type v
X : Type ?u.293762
inst✝ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s t : Set α
d : ℝ≥0∞
⊢ diam (insert x s) ≤ d ↔ max (⨆ (y : α) (_ : y ∈ s), edist x y) (diam s) ≤ d
Theorem: exists_hasDerivAt_eq_slope
File: Mathlib/Analysis/Calculus/MeanValue.lean

tactic: obtain ⟨c, cmem, hc⟩ : ∃ c ∈ Ioo a b, (b - a) * f' c = (f b - f a) * 1 :=
  exists_ratio_hasDerivAt_eq_ratio_slope f f' hab hfc hff' id 1 continuousOn_id
    fun x _ => hasDerivAt_id x
state_before: E : Type ?u.317721
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type ?u.317817
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f f' : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hff' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hfd : DifferentiableOn ℝ f (Ioo a b)
g g' : ℝ → ℝ
hgc : ContinuousOn g (Icc a b)
hgg' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt g (g' x) x
hgd : DifferentiableOn ℝ g (Ioo a b)
⊢ ∃ c, c ∈ Ioo a b ∧ f' c = (f b - f a) / (b - a)

tactic: use c, cmem
state_before: case intro.intro
E : Type ?u.317721
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type ?u.317817
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f f' : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hff' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hfd : DifferentiableOn ℝ f (Ioo a b)
g g' : ℝ → ℝ
hgc : ContinuousOn g (Icc a b)
hgg' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt g (g' x) x
hgd : DifferentiableOn ℝ g (Ioo a b)
c : ℝ
cmem : c ∈ Ioo a b
hc : (b - a) * f' c = (f b - f a) * 1
⊢ ∃ c, c ∈ Ioo a b ∧ f' c = (f b - f a) / (b - a)

tactic: rwa [mul_one, mul_comm, ← eq_div_iff (sub_ne_zero.2 hab.ne')] at hc
state_before: case intro.intro
E : Type ?u.317721
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type ?u.317817
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f f' : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hff' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt f (f' x) x
hfd : DifferentiableOn ℝ f (Ioo a b)
g g' : ℝ → ℝ
hgc : ContinuousOn g (Icc a b)
hgg' : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivAt g (g' x) x
hgd : DifferentiableOn ℝ g (Ioo a b)
c : ℝ
cmem : c ∈ Ioo a b
hc : (b - a) * f' c = (f b - f a) * 1
⊢ f' c = (f b - f a) / (b - a)
Theorem: mul_lt_mul_iff_of_le_of_le
File: Mathlib/Algebra/Order/Monoid/MinMax.lean

tactic: refine' ⟨lt_or_lt_of_mul_lt_mul, fun h => _⟩
state_before: α : Type u_1
β : Type ?u.6644
inst✝⁵ : LinearOrder α
inst✝⁴ : Mul α
inst✝³ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝² : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
a₁ a₂ b₁ b₂ : α
ha : a₁ ≤ a₂
hb : b₁ ≤ b₂
⊢ a₁ * b₁ < a₂ * b₂ ↔ a₁ < a₂ ∨ b₁ < b₂

tactic: cases' h with ha' hb'
state_before: α : Type u_1
β : Type ?u.6644
inst✝⁵ : LinearOrder α
inst✝⁴ : Mul α
inst✝³ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝² : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
a₁ a₂ b₁ b₂ : α
ha : a₁ ≤ a₂
hb : b₁ ≤ b₂
h : a₁ < a₂ ∨ b₁ < b₂
⊢ a₁ * b₁ < a₂ * b₂

tactic: exact mul_lt_mul_of_lt_of_le ha' hb
state_before: case inl
α : Type u_1
β : Type ?u.6644
inst✝⁵ : LinearOrder α
inst✝⁴ : Mul α
inst✝³ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝² : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
a₁ a₂ b₁ b₂ : α
ha : a₁ ≤ a₂
hb : b₁ ≤ b₂
ha' : a₁ < a₂
⊢ a₁ * b₁ < a₂ * b₂

tactic: exact mul_lt_mul_of_le_of_lt ha hb'
state_before: case inr
α : Type u_1
β : Type ?u.6644
inst✝⁵ : LinearOrder α
inst✝⁴ : Mul α
inst✝³ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝² : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
a₁ a₂ b₁ b₂ : α
ha : a₁ ≤ a₂
hb : b₁ ≤ b₂
hb' : b₁ < b₂
⊢ a₁ * b₁ < a₂ * b₂
Theorem: Real.iSup_mul_of_nonneg
File: Mathlib/Data/Real/Pointwise.lean

tactic: simp only [Real.mul_iSup_of_nonneg ha, mul_comm]
state_before: ι : Sort u_1
α : Type ?u.16214
inst✝ : LinearOrderedField α
r : ℝ
ha : 0 ≤ r
f : ι → ℝ
⊢ (⨆ (i : ι), f i) * r = ⨆ (i : ι), f i * r
Theorem: IsExposed.eq_inter_halfspace'
File: Mathlib/Analysis/Convex/Exposed.lean

tactic: obtain ⟨l, rfl⟩ := hAB hB
state_before: 𝕜 : Type u_2
E : Type u_1
inst✝⁴ : TopologicalSpace 𝕜
inst✝³ : OrderedRing 𝕜
inst✝² : AddCommMonoid E
inst✝¹ : TopologicalSpace E
inst✝ : Module 𝕜 E
l : E →L[𝕜] 𝕜
A✝ B✝ C : Set E
X : Finset E
x : E
A B : Set E
hAB : IsExposed 𝕜 A B
hB : Set.Nonempty B
⊢ ∃ l a, B = {x | x ∈ A ∧ a ≤ ↑l x}

tactic: obtain ⟨w, hw⟩ := hB
state_before: case intro
𝕜 : Type u_2
E : Type u_1
inst✝⁴ : TopologicalSpace 𝕜
inst✝³ : OrderedRing 𝕜
inst✝² : AddCommMonoid E
inst✝¹ : TopologicalSpace E
inst✝ : Module 𝕜 E
l✝ : E →L[𝕜] 𝕜
A✝ B C : Set E
X : Finset E
x : E
A : Set E
l : E →L[𝕜] 𝕜
hAB : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l y ≤ ↑l x}
hB : Set.Nonempty {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l y ≤ ↑l x}
⊢ ∃ l_1 a, {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l y ≤ ↑l x} = {x | x ∈ A ∧ a ≤ ↑l_1 x}

tactic: exact ⟨l, l w, Subset.antisymm (fun x hx => ⟨hx.1, hx.2 w hw.1⟩) fun x hx =>
  ⟨hx.1, fun y hy => (hw.2 y hy).trans hx.2⟩⟩
state_before: case intro.intro
𝕜 : Type u_2
E : Type u_1
inst✝⁴ : TopologicalSpace 𝕜
inst✝³ : OrderedRing 𝕜
inst✝² : AddCommMonoid E
inst✝¹ : TopologicalSpace E
inst✝ : Module 𝕜 E
l✝ : E →L[𝕜] 𝕜
A✝ B C : Set E
X : Finset E
x : E
A : Set E
l : E →L[𝕜] 𝕜
hAB : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l y ≤ ↑l x}
w : E
hw : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l y ≤ ↑l x}
⊢ ∃ l_1 a, {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l y ≤ ↑l x} = {x | x ∈ A ∧ a ≤ ↑l_1 x}
Theorem: Seminorm.closedBall_zero_eq_preimage_closedBall
File: Mathlib/Analysis/Seminorm.lean

tactic: rw [closedBall_zero_eq, preimage_metric_closedBall]
state_before: R : Type ?u.1026847
R' : Type ?u.1026850
𝕜 : Type u_2
𝕜₂ : Type ?u.1026856
𝕜₃ : Type ?u.1026859
𝕝 : Type ?u.1026862
E : Type u_1
E₂ : Type ?u.1026868
E₃ : Type ?u.1026871
F : Type ?u.1026874
G : Type ?u.1026877
ι : Type ?u.1026880
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
r : ℝ
⊢ closedBall p 0 r = ↑p ⁻¹' Metric.closedBall 0 r
Theorem: Nat.squarefree_and_prime_pow_iff_prime
File: Mathlib/Data/Nat/Squarefree.lean

tactic: refine' ⟨_, fun hn => ⟨hn.squarefree, hn.isPrimePow⟩⟩
state_before: n : ℕ
⊢ Squarefree n ∧ IsPrimePow n ↔ Prime n

tactic: rw [isPrimePow_nat_iff]
state_before: n : ℕ
⊢ Squarefree n ∧ IsPrimePow n → Prime n

tactic: rintro ⟨h, p, k, hp, hk, rfl⟩
state_before: n : ℕ
⊢ (Squarefree n ∧ ∃ p k, Prime p ∧ 0 < k ∧ p ^ k = n) → Prime n

tactic: rw [squarefree_pow_iff hp.ne_one hk.ne'] at h
state_before: case intro.intro.intro.intro.intro
p k : ℕ
hp : Prime p
hk : 0 < k
h : Squarefree (p ^ k)
⊢ Prime (p ^ k)

tactic: rwa [h.2, pow_one]
state_before: case intro.intro.intro.intro.intro
p k : ℕ
hp : Prime p
hk : 0 < k
h : Squarefree p ∧ k = 1
⊢ Prime (p ^ k)
Theorem: SimpleGraph.Walk.IsPath.dropUntil
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: rwa [← take_spec _ h] at hc
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
inst✝ : DecidableEq V
u v w : V
p : Walk G v w
hc : IsPath p
h : u ∈ support p
⊢ IsPath (append (?m.256082 hc h) (dropUntil p u h))
Theorem: div_self_mul_self'
File: Mathlib/Algebra/GroupWithZero/Basic.lean

tactic: simp [mul_inv_rev]
state_before: α : Type ?u.26175
M₀ : Type ?u.26178
G₀ : Type u_1
M₀' : Type ?u.26184
G₀' : Type ?u.26187
F : Type ?u.26190
F' : Type ?u.26193
inst✝ : GroupWithZero G₀
a✝ b c a : G₀
⊢ a / (a * a) = a⁻¹⁻¹ * a⁻¹ * a⁻¹
Theorem: mul_eq_of_eq_inv_mul
File: Mathlib/Algebra/Group/Basic.lean

tactic: rw [h, mul_inv_cancel_left]
state_before: α : Type ?u.52331
β : Type ?u.52334
G : Type u_1
inst✝ : Group G
a b c d : G
h : b = a⁻¹ * c
⊢ a * b = c
Theorem: MeasureTheory.Content.outerMeasure_preimage
File: Mathlib/MeasureTheory/Measure/Content.lean

tactic: refine' inducedOuterMeasure_preimage _ μ.innerContent_iUnion_nat μ.innerContent_mono _
  (fun _ => f.isOpen_preimage) _
state_before: G : Type w
inst✝¹ : TopologicalSpace G
μ : Content G
inst✝ : T2Space G
f : G ≃ₜ G
h : ∀ ⦃K : Compacts G⦄, (fun s => ↑(toFun μ s)) (Compacts.map ↑f (_ : Continuous ↑f) K) = (fun s => ↑(toFun μ s)) K
A : Set G
⊢ ↑(Content.outerMeasure μ) (↑f ⁻¹' A) = ↑(Content.outerMeasure μ) A

tactic: intro s hs
state_before: G : Type w
inst✝¹ : TopologicalSpace G
μ : Content G
inst✝ : T2Space G
f : G ≃ₜ G
h : ∀ ⦃K : Compacts G⦄, (fun s => ↑(toFun μ s)) (Compacts.map ↑f (_ : Continuous ↑f) K) = (fun s => ↑(toFun μ s)) K
A : Set G
⊢ ∀ (s : Set G) (hs : IsOpen s),
    innerContent μ { carrier := ↑f.toEquiv ⁻¹' s, is_open' := (_ : IsOpen (↑f.toEquiv ⁻¹' s)) } =
      innerContent μ { carrier := s, is_open' := hs }

tactic: convert μ.innerContent_comap f h ⟨s, hs⟩
state_before: G : Type w
inst✝¹ : TopologicalSpace G
μ : Content G
inst✝ : T2Space G
f : G ≃ₜ G
h : ∀ ⦃K : Compacts G⦄, (fun s => ↑(toFun μ s)) (Compacts.map ↑f (_ : Continuous ↑f) K) = (fun s => ↑(toFun μ s)) K
A s : Set G
hs : IsOpen s
⊢ innerContent μ { carrier := ↑f.toEquiv ⁻¹' s, is_open' := (_ : IsOpen (↑f.toEquiv ⁻¹' s)) } =
    innerContent μ { carrier := s, is_open' := hs }
Theorem: Filter.iSup_join
File: Mathlib/Order/Filter/Basic.lean

tactic: simp only [mem_iSup, mem_join]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.103075
ι✝ : Sort x
f✝ g : Filter α
s t : Set α
ι : Sort w
f : ι → Filter (Filter α)
x : Set α
⊢ (x ∈ ⨆ (x : ι), join (f x)) ↔ x ∈ join (⨆ (x : ι), f x)
Theorem: Complex.hasSum_sin
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean

tactic: convert Complex.hasSum_sin' z using 1
state_before: z : ℂ
⊢ HasSum (fun n => (-1) ^ n * z ^ (2 * n + 1) / ↑(2 * n + 1)!) (sin z)

tactic: simp_rw [mul_pow, pow_succ', pow_mul, Complex.I_sq, ← mul_assoc, mul_div_assoc, div_right_comm,
  div_self Complex.I_ne_zero, mul_comm _ ((-1 : ℂ) ^ _), mul_one_div, mul_div_assoc, mul_assoc]
state_before: case h.e'_5
z : ℂ
⊢ (fun n => (-1) ^ n * z ^ (2 * n + 1) / ↑(2 * n + 1)!) = fun n => (z * I) ^ (2 * n + 1) / ↑(2 * n + 1)! / I
Theorem: Nat.dvd_gcd
File: Std/Data/Nat/Gcd.lean

tactic: induction m, n using gcd.induction with intro km kn
| H0 n => rw [gcd_zero_left]; exact kn
| H1 n m _ IH => rw [gcd_rec]; exact IH ((dvd_mod_iff km).2 kn) km
state_before: k m n : Nat
⊢ k ∣ m → k ∣ n → k ∣ gcd m n

tactic: rw [gcd_zero_left]
state_before: case H0
k n : Nat
km : k ∣ 0
kn : k ∣ n
⊢ k ∣ gcd 0 n

tactic: exact kn
state_before: case H0
k n : Nat
km : k ∣ 0
kn : k ∣ n
⊢ k ∣ n

tactic: rw [gcd_rec]
state_before: case H1
k n m : Nat
a✝ : 0 < n
IH : k ∣ m % n → k ∣ n → k ∣ gcd (m % n) n
km : k ∣ n
kn : k ∣ m
⊢ k ∣ gcd n m

tactic: exact IH ((dvd_mod_iff km).2 kn) km
state_before: case H1
k n m : Nat
a✝ : 0 < n
IH : k ∣ m % n → k ∣ n → k ∣ gcd (m % n) n
km : k ∣ n
kn : k ∣ m
⊢ k ∣ gcd (m % n) n
Theorem: integral_sin_pow_three
File: Mathlib/Analysis/SpecialFunctions/Integrals.lean

tactic: have := @integral_sin_pow_odd_mul_cos_pow a b 1 0
state_before: a b : ℝ
n : ℕ
⊢ (∫ (x : ℝ) in a..b, sin x ^ 3) = cos a - cos b - (cos a ^ 3 - cos b ^ 3) / 3

tactic: norm_num at this
state_before: a b : ℝ
n : ℕ
this : (∫ (x : ℝ) in a..b, sin x ^ (2 * 1 + 1) * cos x ^ 0) = ∫ (u : ℝ) in cos b..cos a, u ^ 0 * (1 - u ^ 2) ^ 1
⊢ (∫ (x : ℝ) in a..b, sin x ^ 3) = cos a - cos b - (cos a ^ 3 - cos b ^ 3) / 3

tactic: exact this
state_before: a b : ℝ
n : ℕ
this : (∫ (x : ℝ) in a..b, sin x ^ 3) = cos a - cos b - (cos a ^ 3 - cos b ^ 3) / 3
⊢ (∫ (x : ℝ) in a..b, sin x ^ 3) = cos a - cos b - (cos a ^ 3 - cos b ^ 3) / 3
Theorem: Int.neg_nonneg_of_nonpos
File: Std/Data/Int/Lemmas.lean

tactic: have : -0 ≤ -a := Int.neg_le_neg h
state_before: a : Int
h : a ≤ 0
⊢ 0 ≤ -a

tactic: rwa [Int.neg_zero] at this
state_before: a : Int
h : a ≤ 0
this : -0 ≤ -a
⊢ 0 ≤ -a
Theorem: List.get_map
File: Std/Data/List/Lemmas.lean

tactic: rw [← get?_eq_get, get?_map, get?_eq_get]
state_before: α : Type u_1
β : Type u_2
f : α → β
l : List α
n : Fin (length (map f l))
⊢ some (get (map f l) n) = some (f (get l { val := n.val, isLt := (_ : n.val < length l) }))

tactic: rfl
state_before: α : Type u_1
β : Type u_2
f : α → β
l : List α
n : Fin (length (map f l))
⊢ Option.map f (some (get l { val := n.val, isLt := ?m.72539 })) =
    some (f (get l { val := n.val, isLt := (_ : n.val < length l) }))

α : Type u_1
β : Type u_2
f : α → β
l : List α
n : Fin (length (map f l))
⊢ n.val < length l
Theorem: MeasureTheory.SimpleFunc.restrict_preimage
File: Mathlib/MeasureTheory/Function/SimpleFunc.lean

tactic: simp [hs, indicator_preimage_of_not_mem _ _ ht, inter_comm]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.812913
δ : Type ?u.812916
inst✝¹ : MeasurableSpace α
K : Type ?u.812922
inst✝ : Zero β
f : α →ₛ β
s : Set α
hs : MeasurableSet s
t : Set β
ht : ¬0 ∈ t
⊢ ↑(restrict f s) ⁻¹' t = s ∩ ↑f ⁻¹' t
Theorem: Submodule.map_smul'
File: Mathlib/LinearAlgebra/Basic.lean

tactic: classical by_cases h : a = 0 <;> simp [h, map_smul]
state_before: R : Type ?u.969460
R₁ : Type ?u.969463
R₂ : Type ?u.969466
R₃ : Type ?u.969469
R₄ : Type ?u.969472
S : Type ?u.969475
K : Type u_1
K₂ : Type ?u.969481
M : Type ?u.969484
M' : Type ?u.969487
M₁ : Type ?u.969490
M₂ : Type ?u.969493
M₃ : Type ?u.969496
M₄ : Type ?u.969499
N : Type ?u.969502
N₂ : Type ?u.969505
ι : Type ?u.969508
V : Type u_2
V₂ : Type u_3
inst✝⁴ : Semifield K
inst✝³ : AddCommMonoid V
inst✝² : Module K V
inst✝¹ : AddCommMonoid V₂
inst✝ : Module K V₂
f : V →ₗ[K] V₂
p : Submodule K V
a : K
⊢ map (a • f) p = ⨆ (_ : a ≠ 0), map f p

tactic: by_cases h : a = 0 <;> simp [h, map_smul]
state_before: R : Type ?u.969460
R₁ : Type ?u.969463
R₂ : Type ?u.969466
R₃ : Type ?u.969469
R₄ : Type ?u.969472
S : Type ?u.969475
K : Type u_1
K₂ : Type ?u.969481
M : Type ?u.969484
M' : Type ?u.969487
M₁ : Type ?u.969490
M₂ : Type ?u.969493
M₃ : Type ?u.969496
M₄ : Type ?u.969499
N : Type ?u.969502
N₂ : Type ?u.969505
ι : Type ?u.969508
V : Type u_2
V₂ : Type u_3
inst✝⁴ : Semifield K
inst✝³ : AddCommMonoid V
inst✝² : Module K V
inst✝¹ : AddCommMonoid V₂
inst✝ : Module K V₂
f : V →ₗ[K] V₂
p : Submodule K V
a : K
⊢ map (a • f) p = ⨆ (_ : a ≠ 0), map f p
Theorem: LeftOrdContinuous.le_iff
File: Mathlib/Order/OrdContinuous.lean

tactic: simp only [← sup_eq_right, ← hf.map_sup, h.eq_iff]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
f : α → β
hf : LeftOrdContinuous f
h : Injective f
x y : α
⊢ f x ≤ f y ↔ x ≤ y
Theorem: Finset.isEmpty_coe_sort
File: Mathlib/Data/Finset/Basic.lean

tactic: simpa using @Set.isEmpty_coe_sort α s
state_before: α : Type u_1
β : Type ?u.23485
γ : Type ?u.23488
s✝ s : Finset α
⊢ IsEmpty { x // x ∈ s } ↔ s = ∅
Theorem: comap_dist_left_atTop_le_cocompact
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: simpa only [dist_comm _ x] using comap_dist_right_atTop_le_cocompact x
state_before: α : Type u
β : Type v
X : Type ?u.546511
ι : Type ?u.546514
inst✝ : PseudoMetricSpace α
x : α
⊢ comap (dist x) atTop ≤ cocompact α
Theorem: Matrix.sum_cramer_apply
File: Mathlib/LinearAlgebra/Matrix/Adjugate.lean

tactic: rw [sum_cramer, cramer_apply, cramer_apply]
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
β : Type u_1
s : Finset β
f : n → β → α
i : n
⊢ Finset.sum s (fun x => ↑(cramer A) fun j => f j x) i = ↑(cramer A) (fun j => ∑ x in s, f j x) i

tactic: simp only [updateColumn]
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
β : Type u_1
s : Finset β
f : n → β → α
i : n
⊢ det (updateColumn A i (∑ x in s, fun j => f j x)) = det (updateColumn A i fun j => ∑ x in s, f j x)

tactic: congr with j
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
β : Type u_1
s : Finset β
f : n → β → α
i : n
⊢ det (↑of fun i_1 => Function.update (A i_1) i (Finset.sum s (fun x j => f j x) i_1)) =
    det (↑of fun i_1 => Function.update (A i_1) i (∑ x in s, f i_1 x))

tactic: congr
state_before: case e_M.h.e_6.h.h.h
m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
β : Type u_1
s : Finset β
f : n → β → α
i j x✝ : n
⊢ Function.update (A j) i (Finset.sum s (fun x j => f j x) j) x✝ = Function.update (A j) i (∑ x in s, f j x) x✝

tactic: apply Finset.sum_apply
state_before: case e_M.h.e_6.h.h.h.e_v
m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
β : Type u_1
s : Finset β
f : n → β → α
i j x✝ : n
⊢ Finset.sum s (fun x j => f j x) j = ∑ x in s, f j x
Theorem: CategoryTheory.Equivalence.enoughInjectives_iff
File: Mathlib/CategoryTheory/Preadditive/Injective.lean

tactic: constructor
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u_2
inst✝ : Category D
F✝ F : C ≌ D
⊢ EnoughInjectives C ↔ EnoughInjectives D

tactic: all_goals intro H; constructor; intro X; constructor
state_before: case mp
C : Type u₁
inst✝¹ : Category C
D : Type u_2
inst✝ : Category D
F✝ F : C ≌ D
⊢ EnoughInjectives C → EnoughInjectives D

case mpr
C : Type u₁
inst✝¹ : Category C
D : Type u_2
inst✝ : Category D
F✝ F : C ≌ D
⊢ EnoughInjectives D → EnoughInjectives C

tactic: intro H
state_before: case mpr
C : Type u₁
inst✝¹ : Category C
D : Type u_2
inst✝ : Category D
F✝ F : C ≌ D
⊢ EnoughInjectives D → EnoughInjectives C

tactic: constructor
state_before: case mpr
C : Type u₁
inst✝¹ : Category C
D : Type u_2
inst✝ : Category D
F✝ F : C ≌ D
H : EnoughInjectives D
⊢ EnoughInjectives C

tactic: intro X
state_before: case mpr.presentation
C : Type u₁
inst✝¹ : Category C
D : Type u_2
inst✝ : Category D
F✝ F : C ≌ D
H : EnoughInjectives D
⊢ ∀ (X : C), Nonempty (InjectivePresentation X)

tactic: constructor
state_before: case mpr.presentation
C : Type u₁
inst✝¹ : Category C
D : Type u_2
inst✝ : Category D
F✝ F : C ≌ D
H : EnoughInjectives D
X : C
⊢ Nonempty (InjectivePresentation X)

tactic: exact
  F.symm.injectivePresentationOfMapInjectivePresentation _
    (Nonempty.some (H.presentation (F.inverse.obj X)))
state_before: case mp.presentation.val
C : Type u₁
inst✝¹ : Category C
D : Type u_2
inst✝ : Category D
F✝ F : C ≌ D
H : EnoughInjectives C
X : D
⊢ InjectivePresentation X

tactic: exact
  F.injectivePresentationOfMapInjectivePresentation X
    (Nonempty.some (H.presentation (F.functor.obj X)))
state_before: case mpr.presentation.val
C : Type u₁
inst✝¹ : Category C
D : Type u_2
inst✝ : Category D
F✝ F : C ≌ D
H : EnoughInjectives D
X : C
⊢ InjectivePresentation X
Theorem: mem_closedBall_one_iff
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: rw [mem_closedBall, dist_one_right]
state_before: 𝓕 : Type ?u.94910
𝕜 : Type ?u.94913
α : Type ?u.94916
ι : Type ?u.94919
κ : Type ?u.94922
E : Type u_1
F : Type ?u.94928
G : Type ?u.94931
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
⊢ a ∈ closedBall 1 r ↔ ‖a‖ ≤ r
Theorem: Ordinal.relIso_enum'
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: refine' inductionOn o _
state_before: α✝ : Type ?u.97545
β✝ : Type ?u.97548
γ : Type ?u.97551
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≃r s
o : Ordinal
⊢ ∀ (hr : o < type r) (hs : o < type s), ↑f (enum r o hr) = enum s o hs

tactic: rintro γ t wo ⟨g⟩ ⟨h⟩
state_before: α✝ : Type ?u.97545
β✝ : Type ?u.97548
γ : Type ?u.97551
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≃r s
o : Ordinal
⊢ ∀ (α_1 : Type u) (r_1 : α_1 → α_1 → Prop) [inst : IsWellOrder α_1 r_1] (hr : type r_1 < type r)
    (hs : type r_1 < type s), ↑f (enum r (type r_1) hr) = enum s (type r_1) hs

tactic: skip
state_before: case intro.intro
α✝ : Type ?u.97545
β✝ : Type ?u.97548
γ✝ : Type ?u.97551
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t✝ : γ✝ → γ✝ → Prop
α β : Type u
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≃r s
o : Ordinal
γ : Type u
t : γ → γ → Prop
wo : IsWellOrder γ t
g : t ≺i r
h : t ≺i s
⊢ ↑f (enum r (type t) (_ : Nonempty (t ≺i r))) = enum s (type t) (_ : Nonempty (t ≺i s))

tactic: rw [enum_type g, enum_type (PrincipalSeg.ltEquiv g f)]
state_before: case intro.intro
α✝ : Type ?u.97545
β✝ : Type ?u.97548
γ✝ : Type ?u.97551
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t✝ : γ✝ → γ✝ → Prop
α β : Type u
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≃r s
o : Ordinal
γ : Type u
t : γ → γ → Prop
wo : IsWellOrder γ t
g : t ≺i r
h : t ≺i s
⊢ ↑f (enum r (type t) (_ : Nonempty (t ≺i r))) = enum s (type t) (_ : Nonempty (t ≺i s))

tactic: rfl
state_before: case intro.intro
α✝ : Type ?u.97545
β✝ : Type ?u.97548
γ✝ : Type ?u.97551
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t✝ : γ✝ → γ✝ → Prop
α β : Type u
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≃r s
o : Ordinal
γ : Type u
t : γ → γ → Prop
wo : IsWellOrder γ t
g : t ≺i r
h : t ≺i s
⊢ ↑f g.top = (PrincipalSeg.ltEquiv g f).top
Theorem: fderiv_inv
File: Mathlib/Analysis/Calculus/Deriv/Inv.lean

tactic: rw [← deriv_fderiv, deriv_inv]
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
⊢ fderiv 𝕜 (fun x => x⁻¹) x = smulRight 1 (-(x ^ 2)⁻¹)
Theorem: MeasureTheory.Measure.map_apply_of_aemeasurable
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simpa only [mapₗ, hf.measurable_mk, hs, dif_pos, liftLinear_apply, OuterMeasure.map_apply,
  ← mapₗ_mk_apply_of_aemeasurable hf] using
  measure_congr (hf.ae_eq_mk.symm.preimage s)
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.212187
δ : Type ?u.212190
ι : Type ?u.212193
R : Type ?u.212196
R' : Type ?u.212199
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f : α → β
hf : AEMeasurable f
s : Set β
hs : MeasurableSet s
⊢ ↑↑(map f μ) s = ↑↑μ (f ⁻¹' s)
Theorem: SimpleGraph.comap_map_eq
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: ext
state_before: ι : Sort ?u.216907
𝕜 : Type ?u.216910
V : Type u
W : Type v
X : Type w
G✝ : SimpleGraph V
G' : SimpleGraph W
a b c u v w : V
e : Sym2 V
f : V ↪ W
G : SimpleGraph V
⊢ SimpleGraph.comap (↑f) (SimpleGraph.map f G) = G

tactic: simp
state_before: case Adj.h.h.a
ι : Sort ?u.216907
𝕜 : Type ?u.216910
V : Type u
W : Type v
X : Type w
G✝ : SimpleGraph V
G' : SimpleGraph W
a b c u v w : V
e : Sym2 V
f : V ↪ W
G : SimpleGraph V
x✝¹ x✝ : V
⊢ Adj (SimpleGraph.comap (↑f) (SimpleGraph.map f G)) x✝¹ x✝ ↔ Adj G x✝¹ x✝