tasksource/leandojo huggingface dataset:
Theorem: Nat.eq_prime_pow_of_dvd_least_prime_pow
File: Mathlib/Data/Nat/Prime.lean

tactic: obtain ⟨l, ⟨h, rfl⟩⟩ := (dvd_prime_pow pp).1 h₂
state_before: a p k : ℕ
pp : Prime p
h₁ : ¬a ∣ p ^ k
h₂ : a ∣ p ^ (k + 1)
⊢ a = p ^ (k + 1)

tactic: congr
state_before: case intro.intro
p k : ℕ
pp : Prime p
l : ℕ
h : l ≤ k + 1
h₁ : ¬p ^ l ∣ p ^ k
h₂ : p ^ l ∣ p ^ (k + 1)
⊢ p ^ l = p ^ (k + 1)

tactic: exact le_antisymm h (not_le.1 ((not_congr (pow_dvd_pow_iff_le_right (Prime.one_lt pp))).1 h₁))
state_before: case intro.intro.e_a
p k : ℕ
pp : Prime p
l : ℕ
h : l ≤ k + 1
h₁ : ¬p ^ l ∣ p ^ k
h₂ : p ^ l ∣ p ^ (k + 1)
⊢ l = k + 1
Theorem: Matrix.det_fromBlocks_zero₁₂
File: Mathlib/LinearAlgebra/Matrix/Determinant.lean

tactic: rw [← det_transpose, fromBlocks_transpose, transpose_zero, det_fromBlocks_zero₂₁, det_transpose,
  det_transpose]
state_before: m : Type u_1
n : Type u_2
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
A : Matrix m m R
C : Matrix n m R
D : Matrix n n R
⊢ det (fromBlocks A 0 C D) = det A * det D
Theorem: Nat.Linear.Poly.denote_le_cancel
File: src/lean/Init/Data/Nat/Linear.lean

tactic: simp
state_before: ctx : Context
m₁ m₂ : Poly
h : denote_le ctx (m₁, m₂)
⊢ denote_le ctx (cancel m₁ m₂)

tactic: apply denote_le_cancelAux
state_before: ctx : Context
m₁ m₂ : Poly
h : denote_le ctx (m₁, m₂)
⊢ denote_le ctx (cancel m₁ m₂)

tactic: simp [h]
state_before: case h
ctx : Context
m₁ m₂ : Poly
h : denote_le ctx (m₁, m₂)
⊢ denote_le ctx (List.reverse [] ++ m₁, List.reverse [] ++ m₂)
Theorem: Cycle.chain_ne_nil
File: Mathlib/Data/List/Cycle.lean

tactic: intro m a _H _
state_before: α : Type u_1
r : α → α → Prop
l : List α
⊢ ∀ (l : List α) (a : α),
    (∀ (hl : l ≠ []), Chain r ↑l ↔ List.Chain r (getLast l hl) l) →
      ∀ (hl : l ++ [a] ≠ []), Chain r ↑(l ++ [a]) ↔ List.Chain r (getLast (l ++ [a]) hl) (l ++ [a])

tactic: rw [← coe_cons_eq_coe_append, chain_coe_cons, getLast_append_singleton]
state_before: α : Type u_1
r : α → α → Prop
l m : List α
a : α
_H : ∀ (hl : m ≠ []), Chain r ↑m ↔ List.Chain r (getLast m hl) m
hl✝ : m ++ [a] ≠ []
⊢ Chain r ↑(m ++ [a]) ↔ List.Chain r (getLast (m ++ [a]) hl✝) (m ++ [a])
Theorem: Set.Countable.image2
File: Mathlib/Data/Set/Countable.lean

tactic: rw [← image_prod]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
s : Set α
t : Set β
hs : Set.Countable s
ht : Set.Countable t
f : α → β → γ
⊢ Set.Countable (Set.image2 f s t)

tactic: exact (hs.prod ht).image _
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
s : Set α
t : Set β
hs : Set.Countable s
ht : Set.Countable t
f : α → β → γ
⊢ Set.Countable ((fun x => f x.fst x.snd) '' s ×ˢ t)
Theorem: image_circleMap_Ioc
File: Mathlib/MeasureTheory/Integral/CircleIntegral.lean

tactic: rw [← range_circleMap, ← (periodic_circleMap c R).image_Ioc Real.two_pi_pos 0, zero_add]
state_before: E : Type ?u.19235
inst✝ : NormedAddCommGroup E
c : ℂ
R : ℝ
⊢ circleMap c R '' Ioc 0 (2 * π) = sphere c (Abs.abs R)
Theorem: controlled_closure_range_of_complete
File: Mathlib/Analysis/Normed/Group/ControlledClosure.lean

tactic: replace hyp : ∀ h ∈ j.range, ∃ g, f g = h ∧ ‖g‖ ≤ C * ‖h‖
state_before: G : Type u_1
inst✝³ : NormedAddCommGroup G
inst✝² : CompleteSpace G
H : Type u_2
inst✝¹ : NormedAddCommGroup H
f : NormedAddGroupHom G H
K : Type u_3
inst✝ : SeminormedAddCommGroup K
j : NormedAddGroupHom K H
hj : ∀ (x : K), ‖↑j x‖ = ‖x‖
C ε : ℝ
hC : 0 < C
hε : 0 < ε
hyp : ∀ (k : K), ∃ g, ↑f g = ↑j k ∧ ‖g‖ ≤ C * ‖k‖
⊢ NormedAddGroupHom.SurjectiveOnWith f (AddSubgroup.topologicalClosure (NormedAddGroupHom.range j)) (C + ε)

tactic: exact controlled_closure_of_complete hC hε hyp
state_before: G : Type u_1
inst✝³ : NormedAddCommGroup G
inst✝² : CompleteSpace G
H : Type u_2
inst✝¹ : NormedAddCommGroup H
f : NormedAddGroupHom G H
K : Type u_3
inst✝ : SeminormedAddCommGroup K
j : NormedAddGroupHom K H
hj : ∀ (x : K), ‖↑j x‖ = ‖x‖
C ε : ℝ
hC : 0 < C
hε : 0 < ε
hyp : ∀ (h : H), h ∈ NormedAddGroupHom.range j → ∃ g, ↑f g = h ∧ ‖g‖ ≤ C * ‖h‖
⊢ NormedAddGroupHom.SurjectiveOnWith f (AddSubgroup.topologicalClosure (NormedAddGroupHom.range j)) (C + ε)

tactic: intro h h_in
state_before: case hyp
G : Type u_1
inst✝³ : NormedAddCommGroup G
inst✝² : CompleteSpace G
H : Type u_2
inst✝¹ : NormedAddCommGroup H
f : NormedAddGroupHom G H
K : Type u_3
inst✝ : SeminormedAddCommGroup K
j : NormedAddGroupHom K H
hj : ∀ (x : K), ‖↑j x‖ = ‖x‖
C ε : ℝ
hC : 0 < C
hε : 0 < ε
hyp : ∀ (k : K), ∃ g, ↑f g = ↑j k ∧ ‖g‖ ≤ C * ‖k‖
⊢ ∀ (h : H), h ∈ NormedAddGroupHom.range j → ∃ g, ↑f g = h ∧ ‖g‖ ≤ C * ‖h‖

tactic: rcases(j.mem_range _).mp h_in with ⟨k, rfl⟩
state_before: case hyp
G : Type u_1
inst✝³ : NormedAddCommGroup G
inst✝² : CompleteSpace G
H : Type u_2
inst✝¹ : NormedAddCommGroup H
f : NormedAddGroupHom G H
K : Type u_3
inst✝ : SeminormedAddCommGroup K
j : NormedAddGroupHom K H
hj : ∀ (x : K), ‖↑j x‖ = ‖x‖
C ε : ℝ
hC : 0 < C
hε : 0 < ε
hyp : ∀ (k : K), ∃ g, ↑f g = ↑j k ∧ ‖g‖ ≤ C * ‖k‖
h : H
h_in : h ∈ NormedAddGroupHom.range j
⊢ ∃ g, ↑f g = h ∧ ‖g‖ ≤ C * ‖h‖

tactic: rw [hj]
state_before: case hyp.intro
G : Type u_1
inst✝³ : NormedAddCommGroup G
inst✝² : CompleteSpace G
H : Type u_2
inst✝¹ : NormedAddCommGroup H
f : NormedAddGroupHom G H
K : Type u_3
inst✝ : SeminormedAddCommGroup K
j : NormedAddGroupHom K H
hj : ∀ (x : K), ‖↑j x‖ = ‖x‖
C ε : ℝ
hC : 0 < C
hε : 0 < ε
hyp : ∀ (k : K), ∃ g, ↑f g = ↑j k ∧ ‖g‖ ≤ C * ‖k‖
k : K
h_in : ↑j k ∈ NormedAddGroupHom.range j
⊢ ∃ g, ↑f g = ↑j k ∧ ‖g‖ ≤ C * ‖↑j k‖

tactic: exact hyp k
state_before: case hyp.intro
G : Type u_1
inst✝³ : NormedAddCommGroup G
inst✝² : CompleteSpace G
H : Type u_2
inst✝¹ : NormedAddCommGroup H
f : NormedAddGroupHom G H
K : Type u_3
inst✝ : SeminormedAddCommGroup K
j : NormedAddGroupHom K H
hj : ∀ (x : K), ‖↑j x‖ = ‖x‖
C ε : ℝ
hC : 0 < C
hε : 0 < ε
hyp : ∀ (k : K), ∃ g, ↑f g = ↑j k ∧ ‖g‖ ≤ C * ‖k‖
k : K
h_in : ↑j k ∈ NormedAddGroupHom.range j
⊢ ∃ g, ↑f g = ↑j k ∧ ‖g‖ ≤ C * ‖k‖
Theorem: Finset.mem_upShadow_iff_exists_mem_card_add_one
File: Mathlib/Combinatorics/SetFamily/Shadow.lean

tactic: refine' mem_upShadow_iff_erase_mem.trans ⟨_, _⟩
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t : Finset α
a : α
k r : ℕ
⊢ s ∈ (∂⁺ ) 𝒜 ↔ ∃ t, t ∈ 𝒜 ∧ t ⊆ s ∧ card t + 1 = card s

tactic: rintro ⟨a, ha, hs⟩
state_before: case refine'_1
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t : Finset α
a : α
k r : ℕ
⊢ (∃ a, a ∈ s ∧ erase s a ∈ 𝒜) → ∃ t, t ∈ 𝒜 ∧ t ⊆ s ∧ card t + 1 = card s

tactic: exact ⟨s.erase a, hs, erase_subset _ _, card_erase_add_one ha⟩
state_before: case refine'_1.intro.intro
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t : Finset α
a✝ : α
k r : ℕ
a : α
ha : a ∈ s
hs : erase s a ∈ 𝒜
⊢ ∃ t, t ∈ 𝒜 ∧ t ⊆ s ∧ card t + 1 = card s

tactic: rintro ⟨t, ht, hts, h⟩
state_before: case refine'_2
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t : Finset α
a : α
k r : ℕ
⊢ (∃ t, t ∈ 𝒜 ∧ t ⊆ s ∧ card t + 1 = card s) → ∃ a, a ∈ s ∧ erase s a ∈ 𝒜

tactic: obtain ⟨a, ha⟩ : ∃ a, s \ t = {a} :=
  card_eq_one.1 (by rw [card_sdiff hts, ← h, add_tsub_cancel_left])
state_before: case refine'_2.intro.intro.intro
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t✝ : Finset α
a : α
k r : ℕ
t : Finset α
ht : t ∈ 𝒜
hts : t ⊆ s
h : card t + 1 = card s
⊢ ∃ a, a ∈ s ∧ erase s a ∈ 𝒜

tactic: refine' ⟨a, sdiff_subset _ _ ((ha.ge : _ ⊆ _) <| mem_singleton_self a), _⟩
state_before: case refine'_2.intro.intro.intro.intro
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t✝ : Finset α
a✝ : α
k r : ℕ
t : Finset α
ht : t ∈ 𝒜
hts : t ⊆ s
h : card t + 1 = card s
a : α
ha : s \ t = {a}
⊢ ∃ a, a ∈ s ∧ erase s a ∈ 𝒜

tactic: rwa [← sdiff_singleton_eq_erase, ← ha, sdiff_sdiff_eq_self hts]
state_before: case refine'_2.intro.intro.intro.intro
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t✝ : Finset α
a✝ : α
k r : ℕ
t : Finset α
ht : t ∈ 𝒜
hts : t ⊆ s
h : card t + 1 = card s
a : α
ha : s \ t = {a}
⊢ erase s a ∈ 𝒜

tactic: rw [card_sdiff hts, ← h, add_tsub_cancel_left]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t✝ : Finset α
a : α
k r : ℕ
t : Finset α
ht : t ∈ 𝒜
hts : t ⊆ s
h : card t + 1 = card s
⊢ card (s \ t) = 1
Theorem: Nat.shiftl'_sub
File: Mathlib/Init/Data/Nat/Bitwise.lean

tactic: simp [shiftl']
state_before: b : Bool
m n k : ℕ
h : k + 1 ≤ n + 1
⊢ shiftl' b m (n + 1 - (k + 1)) = shiftr (shiftl' b m (n + 1)) (k + 1)

tactic: rw [Nat.add_comm, shiftr_add]
state_before: b : Bool
m n k : ℕ
h : k + 1 ≤ n + 1
⊢ shiftl' b m (n - k) = shiftr (bit b (shiftl' b m n)) (k + 1)

tactic: simp [shiftr, div2_bit]
state_before: b : Bool
m n k : ℕ
h : k + 1 ≤ n + 1
⊢ shiftl' b m (n - k) = shiftr (shiftr (bit b (shiftl' b m n)) 1) k

tactic: simp [shiftl'_sub, (Nat.le_of_succ_le_succ h)]
state_before: b : Bool
m n k : ℕ
h : k + 1 ≤ n + 1
⊢ shiftl' b m (n - k) = shiftr (shiftl' b m n) k
Theorem: scaleRoots_aeval_eq_zero_of_aeval_mk'_eq_zero
File: Mathlib/RingTheory/Polynomial/RationalRoot.lean

tactic: convert scaleRoots_eval₂_eq_zero (algebraMap A S) hr
state_before: A : Type u_1
K : Type ?u.888
R : Type ?u.891
S : Type u_2
inst✝⁷ : CommRing A
inst✝⁶ : Field K
inst✝⁵ : CommRing R
inst✝⁴ : CommRing S
M : Submonoid A
inst✝³ : Algebra A S
inst✝² : IsLocalization M S
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
p : A[X]
r : A
s : { x // x ∈ M }
hr : ↑(aeval (mk' S r s)) p = 0
⊢ ↑(aeval (↑(algebraMap A S) r)) (scaleRoots p ↑s) = 0

tactic: funext
state_before: case h.e'_2.h.e
A : Type u_1
K : Type ?u.888
R : Type ?u.891
S : Type u_2
inst✝⁷ : CommRing A
inst✝⁶ : Field K
inst✝⁵ : CommRing R
inst✝⁴ : CommRing S
M : Submonoid A
inst✝³ : Algebra A S
inst✝² : IsLocalization M S
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
p : A[X]
r : A
s : { x // x ∈ M }
hr : ↑(aeval (mk' S r s)) p = 0
⊢ ↑(aeval (↑(algebraMap A S) r)) = eval₂ (algebraMap A S) (↑(algebraMap A S) ↑s * mk' S r s)

tactic: rw [aeval_def, mk'_spec' _ r s]
state_before: case h.e'_2.h.e.h
A : Type u_1
K : Type ?u.888
R : Type ?u.891
S : Type u_2
inst✝⁷ : CommRing A
inst✝⁶ : Field K
inst✝⁵ : CommRing R
inst✝⁴ : CommRing S
M : Submonoid A
inst✝³ : Algebra A S
inst✝² : IsLocalization M S
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
p : A[X]
r : A
s : { x // x ∈ M }
hr : ↑(aeval (mk' S r s)) p = 0
x✝ : A[X]
⊢ ↑(aeval (↑(algebraMap A S) r)) x✝ = eval₂ (algebraMap A S) (↑(algebraMap A S) ↑s * mk' S r s) x✝
Theorem: CategoryTheory.Adjunction.rightAdjointUniq_trans
File: Mathlib/CategoryTheory/Adjunction/Opposites.lean

tactic: ext
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F ⊣ G'
adj3 : F ⊣ G''
⊢ (rightAdjointUniq adj1 adj2).hom ≫ (rightAdjointUniq adj2 adj3).hom = (rightAdjointUniq adj1 adj3).hom

tactic: simp
state_before: case w.h
C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F ⊣ G'
adj3 : F ⊣ G''
x✝ : D
⊢ ((rightAdjointUniq adj1 adj2).hom ≫ (rightAdjointUniq adj2 adj3).hom).app x✝ = (rightAdjointUniq adj1 adj3).hom.app x✝
Theorem: EuclideanGeometry.dist_eq_abs_sub_dist_iff_angle_eq_zero
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean

tactic: rw [dist_eq_norm_vsub V, dist_eq_norm_vsub V, dist_eq_norm_vsub V, ← vsub_sub_vsub_cancel_right]
state_before: V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
hp1p2 : p1 ≠ p2
hp3p2 : p3 ≠ p2
⊢ dist p1 p3 = abs (dist p1 p2 - dist p3 p2) ↔ ∠ p1 p2 p3 = 0

tactic: exact
  norm_sub_eq_abs_sub_norm_iff_angle_eq_zero (fun he => hp1p2 (vsub_eq_zero_iff_eq.1 he))
    fun he => hp3p2 (vsub_eq_zero_iff_eq.1 he)
state_before: V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
hp1p2 : p1 ≠ p2
hp3p2 : p3 ≠ p2
⊢ ‖p1 -ᵥ ?p3 - (p3 -ᵥ ?p3)‖ = abs (‖p1 -ᵥ p2‖ - ‖p3 -ᵥ p2‖) ↔ ∠ p1 p2 p3 = 0

case p3
V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
hp1p2 : p1 ≠ p2
hp3p2 : p3 ≠ p2
⊢ P
Theorem: ContinuousMap.compactConvNhd_subset_compactOpen
File: Mathlib/Topology/UniformSpace/CompactConvergence.lean

tactic: obtain ⟨V, hV₁, hV₂, hV₃⟩ := lebesgue_number_of_compact_open (hK.image f.continuous) hU hf
state_before: α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V : Set (β × β)
f : C(α, β)
hK : IsCompact K
U : Set β
hU : IsOpen U
hf : f ∈ CompactOpen.gen K U
⊢ ∃ V, V ∈ 𝓤 β ∧ IsOpen V ∧ compactConvNhd K V f ⊆ CompactOpen.gen K U

tactic: refine' ⟨V, hV₁, hV₂, _⟩
state_before: case intro.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V✝ : Set (β × β)
f : C(α, β)
hK : IsCompact K
U : Set β
hU : IsOpen U
hf : f ∈ CompactOpen.gen K U
V : Set (β × β)
hV₁ : V ∈ 𝓤 β
hV₂ : IsOpen V
hV₃ : ∀ (x : β), x ∈ ↑f '' K → ball x V ⊆ U
⊢ ∃ V, V ∈ 𝓤 β ∧ IsOpen V ∧ compactConvNhd K V f ⊆ CompactOpen.gen K U

tactic: rintro g hg _ ⟨x, hx, rfl⟩
state_before: case intro.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V✝ : Set (β × β)
f : C(α, β)
hK : IsCompact K
U : Set β
hU : IsOpen U
hf : f ∈ CompactOpen.gen K U
V : Set (β × β)
hV₁ : V ∈ 𝓤 β
hV₂ : IsOpen V
hV₃ : ∀ (x : β), x ∈ ↑f '' K → ball x V ⊆ U
⊢ compactConvNhd K V f ⊆ CompactOpen.gen K U

tactic: exact hV₃ (f x) ⟨x, hx, rfl⟩ (hg x hx)
state_before: case intro.intro.intro.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V✝ : Set (β × β)
f : C(α, β)
hK : IsCompact K
U : Set β
hU : IsOpen U
hf : f ∈ CompactOpen.gen K U
V : Set (β × β)
hV₁ : V ∈ 𝓤 β
hV₂ : IsOpen V
hV₃ : ∀ (x : β), x ∈ ↑f '' K → ball x V ⊆ U
g : C(α, β)
hg : g ∈ compactConvNhd K V f
x : α
hx : x ∈ K
⊢ ↑g x ∈ U
Theorem: eq_zero_of_zero_eq_one
File: Mathlib/Algebra/GroupWithZero/Basic.lean

tactic: rw [← mul_one a, ← h, mul_zero]
state_before: α : Type ?u.2729
M₀ : Type u_1
G₀ : Type ?u.2735
M₀' : Type ?u.2738
G₀' : Type ?u.2741
F : Type ?u.2744
F' : Type ?u.2747
inst✝ : MulZeroOneClass M₀
h : 0 = 1
a : M₀
⊢ a = 0
Theorem: LinearMap.bound_of_shell
File: Mathlib/Analysis/NormedSpace/OperatorNorm.lean

tactic: by_cases hx : x = 0
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2539023
E : Type u_3
Eₗ : Type ?u.2539029
F : Type u_4
Fₗ : Type ?u.2539035
G : Type ?u.2539038
Gₗ : Type ?u.2539041
𝓕 : Type ?u.2539044
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedAddCommGroup Fₗ
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NontriviallyNormedField 𝕜₂
inst✝⁵ : NontriviallyNormedField 𝕜₃
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedSpace 𝕜₂ F
inst✝² : NormedSpace 𝕜₃ G
inst✝¹ : NormedSpace 𝕜 Fₗ
c✝ : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g : E →SL[σ₁₂] F
x✝ y z : E
inst✝ : RingHomIsometric σ₁₂
f : E →ₛₗ[σ₁₂] F
ε C : ℝ
ε_pos : 0 < ε
c : 𝕜
hc : 1 < ‖c‖
hf : ∀ (x : E), ε / ‖c‖ ≤ ‖x‖ → ‖x‖ < ε → ‖↑f x‖ ≤ C * ‖x‖
x : E
⊢ ‖↑f x‖ ≤ C * ‖x‖

tactic: exact
  SemilinearMapClass.bound_of_shell_semi_normed f ε_pos hc hf (ne_of_lt (norm_pos_iff.2 hx)).symm
state_before: case neg
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2539023
E : Type u_3
Eₗ : Type ?u.2539029
F : Type u_4
Fₗ : Type ?u.2539035
G : Type ?u.2539038
Gₗ : Type ?u.2539041
𝓕 : Type ?u.2539044
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedAddCommGroup Fₗ
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NontriviallyNormedField 𝕜₂
inst✝⁵ : NontriviallyNormedField 𝕜₃
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedSpace 𝕜₂ F
inst✝² : NormedSpace 𝕜₃ G
inst✝¹ : NormedSpace 𝕜 Fₗ
c✝ : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g : E →SL[σ₁₂] F
x✝ y z : E
inst✝ : RingHomIsometric σ₁₂
f : E →ₛₗ[σ₁₂] F
ε C : ℝ
ε_pos : 0 < ε
c : 𝕜
hc : 1 < ‖c‖
hf : ∀ (x : E), ε / ‖c‖ ≤ ‖x‖ → ‖x‖ < ε → ‖↑f x‖ ≤ C * ‖x‖
x : E
hx : ¬x = 0
⊢ ‖↑f x‖ ≤ C * ‖x‖

tactic: simp [hx]
state_before: case pos
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2539023
E : Type u_3
Eₗ : Type ?u.2539029
F : Type u_4
Fₗ : Type ?u.2539035
G : Type ?u.2539038
Gₗ : Type ?u.2539041
𝓕 : Type ?u.2539044
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedAddCommGroup Fₗ
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NontriviallyNormedField 𝕜₂
inst✝⁵ : NontriviallyNormedField 𝕜₃
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedSpace 𝕜₂ F
inst✝² : NormedSpace 𝕜₃ G
inst✝¹ : NormedSpace 𝕜 Fₗ
c✝ : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g : E →SL[σ₁₂] F
x✝ y z : E
inst✝ : RingHomIsometric σ₁₂
f : E →ₛₗ[σ₁₂] F
ε C : ℝ
ε_pos : 0 < ε
c : 𝕜
hc : 1 < ‖c‖
hf : ∀ (x : E), ε / ‖c‖ ≤ ‖x‖ → ‖x‖ < ε → ‖↑f x‖ ≤ C * ‖x‖
x : E
hx : x = 0
⊢ ‖↑f x‖ ≤ C * ‖x‖
Theorem: Set.Ico_union_Ico
File: Mathlib/Data/Set/Intervals/Basic.lean

tactic: cases' le_total a b with hab hab <;> cases' le_total c d with hcd hcd <;> simp [hab, hcd] at h₁ h₂
state_before: α : Type u_1
β : Type ?u.116141
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : min a b ≤ max c d
h₂ : min c d ≤ max a b
⊢ Ico a b ∪ Ico c d = Ico (min a c) (max b d)

tactic: all_goals simp [*]
state_before: case inl.inr
α : Type u_1
β : Type ?u.116141
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
hab : a ≤ b
hcd : d ≤ c
h₁ : a ≤ c
h₂ : d ≤ b
⊢ Ico a b ∪ Ico c d = Ico (min a c) (max b d)

case inr.inl
α : Type u_1
β : Type ?u.116141
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
hab : b ≤ a
hcd : c ≤ d
h₁ : b ≤ d
h₂ : c ≤ a
⊢ Ico a b ∪ Ico c d = Ico (min a c) (max b d)

case inr.inr
α : Type u_1
β : Type ?u.116141
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
hab : b ≤ a
hcd : d ≤ c
h₁ : b ≤ c
h₂ : d ≤ a
⊢ Ico a b ∪ Ico c d = Ico (min a c) (max b d)

tactic: exact Ico_union_Ico' h₂ h₁
state_before: case inl.inl
α : Type u_1
β : Type ?u.116141
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
hab : a ≤ b
hcd : c ≤ d
h₁ : a ≤ d
h₂ : c ≤ b
⊢ Ico a b ∪ Ico c d = Ico (min a c) (max b d)

tactic: simp [*]
state_before: case inr.inr
α : Type u_1
β : Type ?u.116141
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
hab : b ≤ a
hcd : d ≤ c
h₁ : b ≤ c
h₂ : d ≤ a
⊢ Ico a b ∪ Ico c d = Ico (min a c) (max b d)
Theorem: Complex.abs_of_nat
File: Mathlib/Data/Complex/Basic.lean

tactic: rw [ofReal_nat_cast]
state_before: n : ℕ
⊢ ↑abs ↑n = ↑abs ↑↑n
Theorem: embedding_iff_embedding_of_iSup_eq_top
File: Mathlib/Topology/LocalAtTarget.lean

tactic: simp_rw [embedding_iff]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
s : Set β
ι : Type ?u.40608
U : ι → Opens β
hU : iSup U = ⊤
h : Continuous f
⊢ Embedding f ↔ ∀ (i : ι), Embedding (restrictPreimage (U i).carrier f)

tactic: rw [forall_and]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
s : Set β
ι : Type ?u.40608
U : ι → Opens β
hU : iSup U = ⊤
h : Continuous f
⊢ Inducing f ∧ Function.Injective f ↔
    ∀ (i : ι), Inducing (restrictPreimage (U i).carrier f) ∧ Function.Injective (restrictPreimage (U i).carrier f)

tactic: apply and_congr
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
s : Set β
ι : Type ?u.40608
U : ι → Opens β
hU : iSup U = ⊤
h : Continuous f
⊢ Inducing f ∧ Function.Injective f ↔
    (∀ (x : ι), Inducing (restrictPreimage (U x).carrier f)) ∧
      ∀ (x : ι), Function.Injective (restrictPreimage (U x).carrier f)

tactic: apply inducing_iff_inducing_of_iSup_eq_top <;> assumption
state_before: case h₁
α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
s : Set β
ι : Type ?u.40608
U : ι → Opens β
hU : iSup U = ⊤
h : Continuous f
⊢ Inducing f ↔ ∀ (x : ι), Inducing (restrictPreimage (U x).carrier f)

tactic: apply Set.injective_iff_injective_of_iUnion_eq_univ
state_before: case h₂
α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
s : Set β
ι : Type ?u.40608
U : ι → Opens β
hU : iSup U = ⊤
h : Continuous f
⊢ Function.Injective f ↔ ∀ (x : ι), Function.Injective (restrictPreimage (U x).carrier f)

tactic: convert congr_arg SetLike.coe hU
state_before: case h₂.hU
α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
s : Set β
ι : Type ?u.40608
U : ι → Opens β
hU : iSup U = ⊤
h : Continuous f
⊢ (⋃ (i : ι), (U i).carrier) = univ

tactic: simp
state_before: case h.e'_2
α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
s : Set β
ι : Type ?u.40608
U : ι → Opens β
hU : iSup U = ⊤
h : Continuous f
⊢ (⋃ (i : ι), (U i).carrier) = ↑(iSup U)
Theorem: Filter.HasBasis.inf_basis_neBot_iff
File: Mathlib/Order/Filter/Bases.lean

tactic: simp [@forall_swap _ ι']
state_before: α : Type u_1
β : Type ?u.45066
γ : Type ?u.45069
ι : Sort u_2
ι' : Sort u_3
l l' : Filter α
p : ι → Prop
s : ι → Set α
t : Set α
i : ι
p' : ι' → Prop
s' : ι' → Set α
i' : ι'
hl : HasBasis l p s
hl' : HasBasis l' p' s'
⊢ (∀ {i : PProd ι ι'}, p i.fst ∧ p' i.snd → Set.Nonempty (s i.fst ∩ s' i.snd)) ↔
    ∀ ⦃i : ι⦄, p i → ∀ ⦃i' : ι'⦄, p' i' → Set.Nonempty (s i ∩ s' i')
Theorem: Matrix.vec3_dotProduct'
File: Mathlib/Data/Matrix/Notation.lean

tactic: rw [cons_dotProduct_cons, cons_dotProduct_cons, cons_dotProduct_cons, dotProduct_empty,
  add_zero, add_assoc]
state_before: α : Type u
o n m : ℕ
m' : Type uₘ
n' : Type uₙ
o' : Type uₒ
a b : ℕ
inst✝¹ : AddCommMonoid α
inst✝ : Mul α
a₀ a₁ a₂ b₀ b₁ b₂ : α
⊢ ![a₀, a₁, a₂] ⬝ᵥ ![b₀, b₁, b₂] = a₀ * b₀ + a₁ * b₁ + a₂ * b₂
Theorem: Nat.div_eq_of_lt
File: Std/Data/Nat/Lemmas.lean

tactic: rw [div_eq a, if_neg]
state_before: a b : Nat
h₀ : a < b
⊢ a / b = 0

tactic: intro h₁
state_before: case hnc
a b : Nat
h₀ : a < b
⊢ ¬(0 < b ∧ b ≤ a)

tactic: apply Nat.not_le_of_gt h₀ h₁.right
state_before: case hnc
a b : Nat
h₀ : a < b
h₁ : 0 < b ∧ b ≤ a
⊢ False
Theorem: Finset.product_image_fst
File: Mathlib/Data/Finset/Prod.lean

tactic: ext i
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.11252
s s' : Finset α
t t' : Finset β
a : α
b : β
inst✝ : DecidableEq α
ht : Finset.Nonempty t
⊢ image Prod.fst (s ×ˢ t) = s

tactic: simp [mem_image, ht.bex]
state_before: case a
α : Type u_1
β : Type u_2
γ : Type ?u.11252
s s' : Finset α
t t' : Finset β
a : α
b : β
inst✝ : DecidableEq α
ht : Finset.Nonempty t
i : α
⊢ i ∈ image Prod.fst (s ×ˢ t) ↔ i ∈ s
Theorem: mk_complex
File: Mathlib/Data/Complex/Cardinality.lean

tactic: rw [mk_congr Complex.equivRealProd, mk_prod, lift_id, mk_real, continuum_mul_self]
state_before: ⊢ (#ℂ) = 𝔠