tasksource/leandojo huggingface dataset:
Theorem: LinearMap.toMatrix'_apply
File: Mathlib/LinearAlgebra/Matrix/ToLin.lean

tactic: simp only [LinearMap.toMatrix', LinearEquiv.coe_mk, of_apply]
state_before: R : Type u_1
inst✝² : CommSemiring R
k : Type ?u.456748
l : Type ?u.456751
m : Type u_3
n : Type u_2
inst✝¹ : Fintype n
inst✝ : DecidableEq n
f : (n → R) →ₗ[R] m → R
i : m
j : n
⊢ ↑toMatrix' f i j = ↑f (fun j' => if j' = j then 1 else 0) i

tactic: refine congr_fun ?_ _
state_before: R : Type u_1
inst✝² : CommSemiring R
k : Type ?u.456748
l : Type ?u.456751
m : Type u_3
n : Type u_2
inst✝¹ : Fintype n
inst✝ : DecidableEq n
f : (n → R) →ₗ[R] m → R
i : m
j : n
⊢ ↑f (↑(stdBasis R (fun x => R) j) 1) i = ↑f (fun j' => if j' = j then 1 else 0) i

tactic: congr
state_before: R : Type u_1
inst✝² : CommSemiring R
k : Type ?u.456748
l : Type ?u.456751
m : Type u_3
n : Type u_2
inst✝¹ : Fintype n
inst✝ : DecidableEq n
f : (n → R) →ₗ[R] m → R
i : m
j : n
⊢ ↑f (↑(stdBasis R (fun x => R) j) 1) = ↑f fun j' => if j' = j then 1 else 0

tactic: ext j'
state_before: case h.e_6.h
R : Type u_1
inst✝² : CommSemiring R
k : Type ?u.456748
l : Type ?u.456751
m : Type u_3
n : Type u_2
inst✝¹ : Fintype n
inst✝ : DecidableEq n
f : (n → R) →ₗ[R] m → R
i : m
j : n
⊢ ↑(stdBasis R (fun x => R) j) 1 = fun j' => if j' = j then 1 else 0

tactic: split_ifs with h
state_before: case h.e_6.h.h
R : Type u_1
inst✝² : CommSemiring R
k : Type ?u.456748
l : Type ?u.456751
m : Type u_3
n : Type u_2
inst✝¹ : Fintype n
inst✝ : DecidableEq n
f : (n → R) →ₗ[R] m → R
i : m
j j' : n
⊢ ↑(stdBasis R (fun x => R) j) 1 j' = if j' = j then 1 else 0

tactic: apply stdBasis_ne _ _ _ _ h
state_before: case h.e_6.h.h.inr
R : Type u_1
inst✝² : CommSemiring R
k : Type ?u.456748
l : Type ?u.456751
m : Type u_3
n : Type u_2
inst✝¹ : Fintype n
inst✝ : DecidableEq n
f : (n → R) →ₗ[R] m → R
i : m
j j' : n
h : ¬j' = j
⊢ ↑(stdBasis R (fun x => R) j) 1 j' = 0

tactic: rw [h, stdBasis_same]
state_before: case h.e_6.h.h.inl
R : Type u_1
inst✝² : CommSemiring R
k : Type ?u.456748
l : Type ?u.456751
m : Type u_3
n : Type u_2
inst✝¹ : Fintype n
inst✝ : DecidableEq n
f : (n → R) →ₗ[R] m → R
i : m
j j' : n
h : j' = j
⊢ ↑(stdBasis R (fun x => R) j) 1 j' = 1
Theorem: LinearMap.ker_restrict
File: Mathlib/LinearAlgebra/Basic.lean

tactic: rw [restrict_eq_codRestrict_domRestrict, ker_codRestrict]
state_before: R : Type u_2
R₁ : Type ?u.1239960
R₂ : Type ?u.1239963
R₃ : Type ?u.1239966
R₄ : Type ?u.1239969
S : Type ?u.1239972
K : Type ?u.1239975
K₂ : Type ?u.1239978
M : Type u_3
M' : Type ?u.1239984
M₁ : Type u_1
M₂ : Type ?u.1239990
M₃ : Type ?u.1239993
M₄ : Type ?u.1239996
N : Type ?u.1239999
N₂ : Type ?u.1240002
ι : Type ?u.1240005
V : Type ?u.1240008
V₂ : Type ?u.1240011
inst✝¹² : Semiring R
inst✝¹¹ : Semiring R₂
inst✝¹⁰ : Semiring R₃
inst✝⁹ : AddCommMonoid M
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝⁶ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁵ : Module R M
inst✝⁴ : Module R₂ M₂
inst✝³ : Module R₃ M₃
σ₂₁ : R₂ →+* R
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝² : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type ?u.1240421
sc : SemilinearMapClass F τ₁₂ M M₂
inst✝¹ : AddCommMonoid M₁
inst✝ : Module R M₁
p : Submodule R M
q : Submodule R M₁
f : M →ₗ[R] M₁
hf : ∀ (x : M), x ∈ p → ↑f x ∈ q
⊢ ker (restrict f hf) = ker (domRestrict f p)
Theorem: volume_preimage_coe
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [volume_set_coe_def,
  comap_apply₀ _ _ Subtype.coe_injective
    (fun h => MeasurableSet.nullMeasurableSet_subtype_coe hs)
    (measurable_subtype_coe ht).nullMeasurableSet,
  image_preimage_eq_inter_range, Subtype.range_coe]
state_before: α : Type u_1
β : Type ?u.1870561
γ : Type ?u.1870564
δ : Type ?u.1870567
ι : Type ?u.1870570
R : Type ?u.1870573
R' : Type ?u.1870576
inst✝ : MeasureSpace α
s t : Set α
hs : NullMeasurableSet s
ht : MeasurableSet t
⊢ ↑↑volume (Subtype.val ⁻¹' t) = ↑↑volume (t ∩ s)
Theorem: div_le_self_iff
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: simp only [div_eq_mul_inv, mul_le_iff_le_one_right', Left.inv_le_one_iff]
state_before: α : Type u
inst✝³ : Group α
inst✝² : LE α
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✝ b✝ c d a b : α
⊢ a / b ≤ a ↔ 1 ≤ b
Theorem: VitaliFamily.eventually_measure_lt_top
File: Mathlib/MeasureTheory/Covering/Differentiation.lean

tactic: obtain ⟨ε, εpos, με⟩ : ∃ (ε : ℝ), 0 < ε ∧ μ (closedBall x ε) < ∞ :=
  (μ.finiteAt_nhds x).exists_mem_basis nhds_basis_closedBall
state_before: α : Type u_1
inst✝² : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.594552
inst✝¹ : NormedAddCommGroup E
inst✝ : IsLocallyFiniteMeasure μ
x : α
⊢ ∀ᶠ (a : Set α) in filterAt v x, ↑↑μ a < ⊤

tactic: exact v.eventually_filterAt_iff.2 ⟨ε, εpos, fun a _ haε => (measure_mono haε).trans_lt με⟩
state_before: case intro.intro
α : Type u_1
inst✝² : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.594552
inst✝¹ : NormedAddCommGroup E
inst✝ : IsLocallyFiniteMeasure μ
x : α
ε : ℝ
εpos : 0 < ε
με : ↑↑μ (closedBall x ε) < ⊤
⊢ ∀ᶠ (a : Set α) in filterAt v x, ↑↑μ a < ⊤
Theorem: Convex.add_smul_sub_mem
File: Mathlib/Analysis/Convex/Basic.lean

tactic: rw [add_comm]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.228490
β : Type ?u.228493
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t✝ : Set E
h : Convex 𝕜 s
x y : E
hx : x ∈ s
hy : y ∈ s
t : 𝕜
ht : t ∈ Icc 0 1
⊢ x + t • (y - x) ∈ s

tactic: exact h.lineMap_mem hx hy ht
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.228490
β : Type ?u.228493
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t✝ : Set E
h : Convex 𝕜 s
x y : E
hx : x ∈ s
hy : y ∈ s
t : 𝕜
ht : t ∈ Icc 0 1
⊢ t • (y - x) + x ∈ s
Theorem: unitary.coe_div
File: Mathlib/Algebra/Star/Unitary.lean

tactic: simp only [div_eq_mul_inv, coe_inv, Submonoid.coe_mul]
state_before: R : Type u_1
inst✝¹ : GroupWithZero R
inst✝ : StarSemigroup R
U₁ U₂ : { x // x ∈ unitary R }
⊢ ↑(U₁ / U₂) = ↑U₁ / ↑U₂
Theorem: absorbent_ball
File: Mathlib/Analysis/Seminorm.lean

tactic: rw [← ball_normSeminorm 𝕜]
state_before: R : Type ?u.1455685
R' : Type ?u.1455688
𝕜 : Type u_2
𝕜₂ : Type ?u.1455694
𝕜₃ : Type ?u.1455697
𝕝 : Type ?u.1455700
E : Type u_1
E₂ : Type ?u.1455706
E₃ : Type ?u.1455709
F : Type ?u.1455712
G : Type ?u.1455715
ι : Type ?u.1455718
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
r : ℝ
x : E
hx : ‖x‖ < r
⊢ Absorbent 𝕜 (Metric.ball x r)

tactic: exact (normSeminorm _ _).absorbent_ball hx
state_before: R : Type ?u.1455685
R' : Type ?u.1455688
𝕜 : Type u_2
𝕜₂ : Type ?u.1455694
𝕜₃ : Type ?u.1455697
𝕝 : Type ?u.1455700
E : Type u_1
E₂ : Type ?u.1455706
E₃ : Type ?u.1455709
F : Type ?u.1455712
G : Type ?u.1455715
ι : Type ?u.1455718
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
r : ℝ
x : E
hx : ‖x‖ < r
⊢ Absorbent 𝕜 (Seminorm.ball (normSeminorm 𝕜 E) x r)
Theorem: diff_subset_closure_iff
File: Mathlib/Topology/Basic.lean

tactic: rw [diff_subset_iff, union_eq_self_of_subset_left subset_closure]
state_before: α : Type u
β : Type v
ι : Sort w
a : α
s✝ s₁ s₂ t✝ : Set α
p p₁ p₂ : α → Prop
inst✝ : TopologicalSpace α
s t : Set α
⊢ s \ t ⊆ closure t ↔ s ⊆ closure t
Theorem: GaloisConnection.u_eq
File: Mathlib/Order/GaloisConnection.lean

tactic: constructor
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
κ : ι → Sort ?u.12736
a a₁ a₂ : α
b b₁ b₂ : β
inst✝¹ : PartialOrder α
inst✝ : Preorder β
l : α → β
u : β → α
gc : GaloisConnection l u
z : α
y : β
⊢ u y = z ↔ ∀ (x : α), x ≤ z ↔ l x ≤ y

tactic: rintro rfl x
state_before: case mp
α : Type u
β : Type v
γ : Type w
ι : Sort x
κ : ι → Sort ?u.12736
a a₁ a₂ : α
b b₁ b₂ : β
inst✝¹ : PartialOrder α
inst✝ : Preorder β
l : α → β
u : β → α
gc : GaloisConnection l u
z : α
y : β
⊢ u y = z → ∀ (x : α), x ≤ z ↔ l x ≤ y

tactic: exact (gc x y).symm
state_before: case mp
α : Type u
β : Type v
γ : Type w
ι : Sort x
κ : ι → Sort ?u.12736
a a₁ a₂ : α
b b₁ b₂ : β
inst✝¹ : PartialOrder α
inst✝ : Preorder β
l : α → β
u : β → α
gc : GaloisConnection l u
y : β
x : α
⊢ x ≤ u y ↔ l x ≤ y

tactic: intro H
state_before: case mpr
α : Type u
β : Type v
γ : Type w
ι : Sort x
κ : ι → Sort ?u.12736
a a₁ a₂ : α
b b₁ b₂ : β
inst✝¹ : PartialOrder α
inst✝ : Preorder β
l : α → β
u : β → α
gc : GaloisConnection l u
z : α
y : β
⊢ (∀ (x : α), x ≤ z ↔ l x ≤ y) → u y = z

tactic: exact ((H <| u y).mpr (gc.l_u_le y)).antisymm ((gc _ _).mp <| (H z).mp le_rfl)
state_before: case mpr
α : Type u
β : Type v
γ : Type w
ι : Sort x
κ : ι → Sort ?u.12736
a a₁ a₂ : α
b b₁ b₂ : β
inst✝¹ : PartialOrder α
inst✝ : Preorder β
l : α → β
u : β → α
gc : GaloisConnection l u
z : α
y : β
H : ∀ (x : α), x ≤ z ↔ l x ≤ y
⊢ u y = z
Theorem: inv_lt_zero
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: simp only [← not_le, inv_nonneg]
state_before: ι : Type ?u.6316
α : Type u_1
β : Type ?u.6322
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
⊢ a⁻¹ < 0 ↔ a < 0
Theorem: Nat.cast_eq_zero
File: Mathlib/Algebra/CharZero/Defs.lean

tactic: rw [← cast_zero, cast_inj]
state_before: R : Type u_1
inst✝¹ : AddMonoidWithOne R
inst✝ : CharZero R
n : ℕ
⊢ ↑n = 0 ↔ n = 0
Theorem: CategoryTheory.SemiadditiveOfBinaryBiproducts.add_comp
File: Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean

tactic: simp only [add_eq_right_addition, Category.assoc]
state_before: C : Type u
inst✝² : Category C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasBinaryBiproducts C
X Y Z : C
f g : X ⟶ Y
h : Y ⟶ Z
⊢ (f + g) ≫ h = f ≫ h + g ≫ h

tactic: congr
state_before: C : Type u
inst✝² : Category C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasBinaryBiproducts C
X Y Z : C
f g : X ⟶ Y
h : Y ⟶ Z
⊢ biprod.lift (𝟙 X) (𝟙 X) ≫ biprod.desc f g ≫ h = biprod.lift (𝟙 X) (𝟙 X) ≫ biprod.desc (f ≫ h) (g ≫ h)

tactic: ext <;> simp
state_before: case e_a
C : Type u
inst✝² : Category C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasBinaryBiproducts C
X Y Z : C
f g : X ⟶ Y
h : Y ⟶ Z
⊢ biprod.desc f g ≫ h = biprod.desc (f ≫ h) (g ≫ h)
Theorem: LocalHomeomorph.mapsTo_extend
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rw [mapsTo', extend_coe, extend_coe_symm, preimage_comp, ← I.image_eq, image_comp,
  f.image_eq_target_inter_inv_preimage hs]
state_before: 𝕜 : Type u_4
E : Type u_3
M : Type u_1
H : Type u_2
E' : Type ?u.131353
M' : Type ?u.131356
H' : Type ?u.131359
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : LocalHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
x : M
s t : Set M
hs : s ⊆ f.source
⊢ MapsTo (↑(extend f I)) s (↑(LocalEquiv.symm (extend f I)) ⁻¹' s ∩ range ↑I)

tactic: exact image_subset _ (inter_subset_right _ _)
state_before: 𝕜 : Type u_4
E : Type u_3
M : Type u_1
H : Type u_2
E' : Type ?u.131353
M' : Type ?u.131356
H' : Type ?u.131359
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : LocalHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
x : M
s t : Set M
hs : s ⊆ f.source
⊢ ↑I '' (f.target ∩ ↑(LocalHomeomorph.symm f) ⁻¹' s) ⊆ ↑I '' (↑(LocalHomeomorph.symm f) ⁻¹' s)
Theorem: smul_pow'
File: Mathlib/Algebra/GroupPower/Lemmas.lean

tactic: induction' n with n ih
state_before: α : Type ?u.75902
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝⁴ : Monoid M
inst✝³ : Monoid N
inst✝² : AddMonoid A
inst✝¹ : AddMonoid B
inst✝ : MulDistribMulAction M N
x : M
m : N
n : ℕ
⊢ x • m ^ n = (x • m) ^ n

tactic: rw [pow_zero, pow_zero]
state_before: case zero
α : Type ?u.75902
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝⁴ : Monoid M
inst✝³ : Monoid N
inst✝² : AddMonoid A
inst✝¹ : AddMonoid B
inst✝ : MulDistribMulAction M N
x : M
m : N
⊢ x • m ^ Nat.zero = (x • m) ^ Nat.zero

tactic: exact smul_one x
state_before: case zero
α : Type ?u.75902
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝⁴ : Monoid M
inst✝³ : Monoid N
inst✝² : AddMonoid A
inst✝¹ : AddMonoid B
inst✝ : MulDistribMulAction M N
x : M
m : N
⊢ x • 1 = 1

tactic: rw [pow_succ, pow_succ]
state_before: case succ
α : Type ?u.75902
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝⁴ : Monoid M
inst✝³ : Monoid N
inst✝² : AddMonoid A
inst✝¹ : AddMonoid B
inst✝ : MulDistribMulAction M N
x : M
m : N
n : ℕ
ih : x • m ^ n = (x • m) ^ n
⊢ x • m ^ Nat.succ n = (x • m) ^ Nat.succ n

tactic: exact (smul_mul' x m (m ^ n)).trans (congr_arg _ ih)
state_before: case succ
α : Type ?u.75902
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝⁴ : Monoid M
inst✝³ : Monoid N
inst✝² : AddMonoid A
inst✝¹ : AddMonoid B
inst✝ : MulDistribMulAction M N
x : M
m : N
n : ℕ
ih : x • m ^ n = (x • m) ^ n
⊢ x • (m * m ^ n) = x • m * (x • m) ^ n
Theorem: Cardinal.lift_le_aleph0
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [← lift_aleph0.{u,v}, lift_le]
state_before: α β : Type u
c : Cardinal
⊢ lift c ≤ ℵ₀ ↔ c ≤ ℵ₀
Theorem: Set.piecewise_insert_of_ne
File: Mathlib/Data/Set/Function.lean

tactic: simp [piecewise, h]
state_before: α : Type u_1
β : Type ?u.82701
γ : Type ?u.82704
ι : Sort ?u.82707
π : α → Type ?u.82712
δ : α → Sort u_2
s : Set α
f g : (i : α) → δ i
inst✝¹ : (j : α) → Decidable (j ∈ s)
i j : α
h : i ≠ j
inst✝ : (i : α) → Decidable (i ∈ insert j s)
⊢ piecewise (insert j s) f g i = piecewise s f g i
Theorem: Set.sep_eq_self_iff_mem_true
File: Mathlib/Data/Set/Basic.lean

tactic: simp_rw [ext_iff, mem_sep_iff, and_iff_left_iff_imp]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s s₁ s₂ t t₁ t₂ u : Set α
p q : α → Prop
x : α
⊢ {x | x ∈ s ∧ p x} = s ↔ ∀ (x : α), x ∈ s → p x
Theorem: finrank_span_eq_card
File: Mathlib/LinearAlgebra/Finrank.lean

tactic: have : Module.rank K (span K (Set.range b)) = (#Set.range b) := rank_span hb
state_before: K : Type u
V : Type v
inst✝³ : DivisionRing K
inst✝² : AddCommGroup V
inst✝¹ : Module K V
ι : Type u_1
inst✝ : Fintype ι
b : ι → V
hb : LinearIndependent K b
⊢ Module.rank K { x // x ∈ span K (Set.range b) } = ↑(Fintype.card ι)

tactic: rwa [← lift_inj, mk_range_eq_of_injective hb.injective, Cardinal.mk_fintype, lift_natCast,
  lift_eq_nat_iff] at this
state_before: K : Type u
V : Type v
inst✝³ : DivisionRing K
inst✝² : AddCommGroup V
inst✝¹ : Module K V
ι : Type u_1
inst✝ : Fintype ι
b : ι → V
hb : LinearIndependent K b
this : Module.rank K { x // x ∈ span K (Set.range b) } = (#↑(Set.range b))
⊢ Module.rank K { x // x ∈ span K (Set.range b) } = ↑(Fintype.card ι)
Theorem: gauge_def'
File: Mathlib/Analysis/Convex/Gauge.lean

tactic: rw [gauge]
state_before: 𝕜 : Type ?u.5140
E : Type u_1
F : Type ?u.5146
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
x : E
⊢ gauge s x = sInf {r | r ∈ Ioi 0 ∧ r⁻¹ • x ∈ s}

tactic: apply congr_arg
state_before: 𝕜 : Type ?u.5140
E : Type u_1
F : Type ?u.5146
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
x : E
⊢ sInf {r | 0 < r ∧ x ∈ r • s} = sInf {r | r ∈ Ioi 0 ∧ r⁻¹ • x ∈ s}

tactic: ext
state_before: case h
𝕜 : Type ?u.5140
E : Type u_1
F : Type ?u.5146
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
x : E
⊢ {r | 0 < r ∧ x ∈ r • s} = {r | r ∈ Ioi 0 ∧ r⁻¹ • x ∈ s}

tactic: simp only [mem_setOf, mem_Ioi]
state_before: case h.h
𝕜 : Type ?u.5140
E : Type u_1
F : Type ?u.5146
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
x : E
x✝ : ℝ
⊢ x✝ ∈ {r | 0 < r ∧ x ∈ r • s} ↔ x✝ ∈ {r | r ∈ Ioi 0 ∧ r⁻¹ • x ∈ s}

tactic: exact and_congr_right fun hr => mem_smul_set_iff_inv_smul_mem₀ hr.ne' _ _
state_before: case h.h
𝕜 : Type ?u.5140
E : Type u_1
F : Type ?u.5146
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
x : E
x✝ : ℝ
⊢ 0 < x✝ ∧ x ∈ x✝ • s ↔ 0 < x✝ ∧ x✝⁻¹ • x ∈ s
Theorem: HasDerivWithinAt.const_mul
File: Mathlib/Analysis/Calculus/Deriv/Mul.lean

tactic: convert (hasDerivWithinAt_const x s c).mul hd using 1
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 L₁ L₂ : Filter 𝕜
𝕜' : Type ?u.262301
𝔸 : Type u_1
inst✝³ : NormedField 𝕜'
inst✝² : NormedRing 𝔸
inst✝¹ : NormedAlgebra 𝕜 𝕜'
inst✝ : NormedAlgebra 𝕜 𝔸
c✝ d : 𝕜 → 𝔸
c' d' : 𝔸
u v : 𝕜 → 𝕜'
c : 𝔸
hd : HasDerivWithinAt d d' s x
⊢ HasDerivWithinAt (fun y => c * d y) (c * d') s x

tactic: rw [zero_mul, zero_add]
state_before: case h.e'_7
𝕜 : 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 L₁ L₂ : Filter 𝕜
𝕜' : Type ?u.262301
𝔸 : Type u_1
inst✝³ : NormedField 𝕜'
inst✝² : NormedRing 𝔸
inst✝¹ : NormedAlgebra 𝕜 𝕜'
inst✝ : NormedAlgebra 𝕜 𝔸
c✝ d : 𝕜 → 𝔸
c' d' : 𝔸
u v : 𝕜 → 𝕜'
c : 𝔸
hd : HasDerivWithinAt d d' s x
⊢ c * d' = 0 * d x + c * d'
Theorem: Filter.Tendsto.neg_mul_atTop
File: Mathlib/Topology/Algebra/Order/Field.lean

tactic: simpa only [mul_comm] using hg.atTop_mul_neg hC hf
state_before: 𝕜 : Type u_1
α : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
l : Filter α
f g : α → 𝕜
C : 𝕜
hC : C < 0
hf : Tendsto f l (𝓝 C)
hg : Tendsto g l atTop
⊢ Tendsto (fun x => f x * g x) l atBot
Theorem: Matrix.adjugate_one
File: Mathlib/LinearAlgebra/Matrix/Adjugate.lean

tactic: ext
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
⊢ adjugate 1 = 1

tactic: simp [adjugate_def, Matrix.one_apply, Pi.single_apply, eq_comm]
state_before: case a.h
m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
i✝ x✝ : n
⊢ adjugate 1 i✝ x✝ = OfNat.ofNat 1 i✝ x✝
Theorem: Nat.size_one
File: Mathlib/Data/Nat/Size.lean

tactic: rw [size_bit1, size_zero]
state_before: ⊢ size (bit1 0) = 1
Theorem: SimpleGraph.is3Clique_iff
File: Mathlib/Combinatorics/SimpleGraph/Clique.lean

tactic: refine' ⟨fun h ↦ _, _⟩
state_before: α : Type u_1
G H : SimpleGraph α
n : ℕ
s : Finset α
inst✝ : DecidableEq α
a b c : α
⊢ IsNClique G 3 s ↔ ∃ a b c, Adj G a b ∧ Adj G a c ∧ Adj G b c ∧ s = {a, b, c}

tactic: obtain ⟨a, b, c, -, -, -, hs⟩ := card_eq_three.1 h.card_eq
state_before: case refine'_1
α : Type u_1
G H : SimpleGraph α
n : ℕ
s : Finset α
inst✝ : DecidableEq α
a b c : α
h : IsNClique G 3 s
⊢ ∃ a b c, Adj G a b ∧ Adj G a c ∧ Adj G b c ∧ s = {a, b, c}

tactic: refine' ⟨a, b, c, _⟩
state_before: case refine'_1.intro.intro.intro.intro.intro.intro
α : Type u_1
G H : SimpleGraph α
n : ℕ
s : Finset α
inst✝ : DecidableEq α
a✝ b✝ c✝ : α
h : IsNClique G 3 s
a b c : α
hs : s = {a, b, c}
⊢ ∃ a b c, Adj G a b ∧ Adj G a c ∧ Adj G b c ∧ s = {a, b, c}

tactic: rwa [hs, eq_self_iff_true, and_true, is3Clique_triple_iff.symm, ← hs]
state_before: case refine'_1.intro.intro.intro.intro.intro.intro
α : Type u_1
G H : SimpleGraph α
n : ℕ
s : Finset α
inst✝ : DecidableEq α
a✝ b✝ c✝ : α
h : IsNClique G 3 s
a b c : α
hs : s = {a, b, c}
⊢ Adj G a b ∧ Adj G a c ∧ Adj G b c ∧ s = {a, b, c}

tactic: rintro ⟨a, b, c, hab, hbc, hca, rfl⟩
state_before: case refine'_2
α : Type u_1
G H : SimpleGraph α
n : ℕ
s : Finset α
inst✝ : DecidableEq α
a b c : α
⊢ (∃ a b c, Adj G a b ∧ Adj G a c ∧ Adj G b c ∧ s = {a, b, c}) → IsNClique G 3 s

tactic: exact is3Clique_triple_iff.2 ⟨hab, hbc, hca⟩
state_before: case refine'_2.intro.intro.intro.intro.intro.intro
α : Type u_1
G H : SimpleGraph α
n : ℕ
inst✝ : DecidableEq α
a✝ b✝ c✝ a b c : α
hab : Adj G a b
hbc : Adj G a c
hca : Adj G b c
⊢ IsNClique G 3 {a, b, c}
Theorem: FreeGroup.lift.range_eq_closure
File: Mathlib/GroupTheory/FreeGroup.lean

tactic: apply le_antisymm (lift.range_le Subgroup.subset_closure)
state_before: α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
β : Type v
inst✝ : Group β
f : α → β
x y : FreeGroup α
⊢ MonoidHom.range (↑lift f) = Subgroup.closure (Set.range f)

tactic: rw [Subgroup.closure_le]
state_before: α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
β : Type v
inst✝ : Group β
f : α → β
x y : FreeGroup α
⊢ Subgroup.closure (Set.range f) ≤ MonoidHom.range (↑lift f)

tactic: rintro _ ⟨a, rfl⟩
state_before: α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
β : Type v
inst✝ : Group β
f : α → β
x y : FreeGroup α
⊢ Set.range f ⊆ ↑(MonoidHom.range (↑lift f))

tactic: exact ⟨FreeGroup.of a, by simp only [lift.of]⟩
state_before: case intro
α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
β : Type v
inst✝ : Group β
f : α → β
x y : FreeGroup α
a : α
⊢ f a ∈ ↑(MonoidHom.range (↑lift f))

tactic: simp only [lift.of]
state_before: α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
β : Type v
inst✝ : Group β
f : α → β
x y : FreeGroup α
a : α
⊢ ↑(↑lift f) (FreeGroup.of a) = f a
Theorem: Multiset.rel_bind
File: Mathlib/Data/Multiset/Bind.lean

tactic: apply rel_join
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a : α
s✝ t✝ : Multiset α
f✝ g✝ : α → Multiset β
r : α → β → Prop
p : γ → δ → Prop
s : Multiset α
t : Multiset β
f : α → Multiset γ
g : β → Multiset δ
h : (r ⇒ Rel p) f g
hst : Rel r s t
⊢ Rel p (bind s f) (bind t g)

tactic: rw [rel_map]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a : α
s✝ t✝ : Multiset α
f✝ g✝ : α → Multiset β
r : α → β → Prop
p : γ → δ → Prop
s : Multiset α
t : Multiset β
f : α → Multiset γ
g : β → Multiset δ
h : (r ⇒ Rel p) f g
hst : Rel r s t
⊢ Rel (Rel p) (map f s) (map g t)

tactic: exact hst.mono fun a _ b _ hr => h hr
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a : α
s✝ t✝ : Multiset α
f✝ g✝ : α → Multiset β
r : α → β → Prop
p : γ → δ → Prop
s : Multiset α
t : Multiset β
f : α → Multiset γ
g : β → Multiset δ
h : (r ⇒ Rel p) f g
hst : Rel r s t
⊢ Rel (fun a b => Rel p (f a) (g b)) s t