tasksource/leandojo huggingface dataset:
Theorem: Fintype.card_piFinset
File: Mathlib/Data/Fintype/BigOperators.lean

tactic: simp [Fintype.piFinset, card_map]
state_before: α : Type u_1
β : Type ?u.9814
γ : Type ?u.9817
inst✝¹ : DecidableEq α
inst✝ : Fintype α
δ : α → Type u_2
t : (a : α) → Finset (δ a)
⊢ Finset.card (piFinset t) = ∏ a : α, Finset.card (t a)
Theorem: summable_of_ratio_test_tendsto_lt_one
File: Mathlib/Analysis/SpecificLimits/Normed.lean

tactic: rcases exists_between hl₁ with ⟨r, hr₀, hr₁⟩
state_before: α✝ : Type ?u.1327164
β : Type ?u.1327167
ι : Type ?u.1327170
α : Type u_1
inst✝¹ : NormedAddCommGroup α
inst✝ : CompleteSpace α
f : ℕ → α
l : ℝ
hl₁ : l < 1
hf : ∀ᶠ (n : ℕ) in atTop, f n ≠ 0
h : Tendsto (fun n => ‖f (n + 1)‖ / ‖f n‖) atTop (𝓝 l)
⊢ Summable f

tactic: refine' summable_of_ratio_norm_eventually_le hr₁ _
state_before: case intro.intro
α✝ : Type ?u.1327164
β : Type ?u.1327167
ι : Type ?u.1327170
α : Type u_1
inst✝¹ : NormedAddCommGroup α
inst✝ : CompleteSpace α
f : ℕ → α
l : ℝ
hl₁ : l < 1
hf : ∀ᶠ (n : ℕ) in atTop, f n ≠ 0
h : Tendsto (fun n => ‖f (n + 1)‖ / ‖f n‖) atTop (𝓝 l)
r : ℝ
hr₀ : l < r
hr₁ : r < 1
⊢ Summable f

tactic: filter_upwards [eventually_le_of_tendsto_lt hr₀ h, hf]with _ _ h₁
state_before: case intro.intro
α✝ : Type ?u.1327164
β : Type ?u.1327167
ι : Type ?u.1327170
α : Type u_1
inst✝¹ : NormedAddCommGroup α
inst✝ : CompleteSpace α
f : ℕ → α
l : ℝ
hl₁ : l < 1
hf : ∀ᶠ (n : ℕ) in atTop, f n ≠ 0
h : Tendsto (fun n => ‖f (n + 1)‖ / ‖f n‖) atTop (𝓝 l)
r : ℝ
hr₀ : l < r
hr₁ : r < 1
⊢ ∀ᶠ (n : ℕ) in atTop, ‖f (n + 1)‖ ≤ r * ‖f n‖

tactic: rwa [← div_le_iff (norm_pos_iff.mpr h₁)]
state_before: case h
α✝ : Type ?u.1327164
β : Type ?u.1327167
ι : Type ?u.1327170
α : Type u_1
inst✝¹ : NormedAddCommGroup α
inst✝ : CompleteSpace α
f : ℕ → α
l : ℝ
hl₁ : l < 1
hf : ∀ᶠ (n : ℕ) in atTop, f n ≠ 0
h : Tendsto (fun n => ‖f (n + 1)‖ / ‖f n‖) atTop (𝓝 l)
r : ℝ
hr₀ : l < r
hr₁ : r < 1
a✝¹ : ℕ
a✝ : ‖f (a✝¹ + 1)‖ / ‖f a✝¹‖ ≤ r
h₁ : f a✝¹ ≠ 0
⊢ ‖f (a✝¹ + 1)‖ ≤ r * ‖f a✝¹‖
Theorem: Metric.ball_disjoint_closedBall
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: rwa [add_comm, dist_comm]
state_before: α : Type u
β : Type v
X : Type ?u.35483
ι : Type ?u.35486
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
h : δ + ε ≤ dist x y
⊢ ε + δ ≤ dist y x
Theorem: Setoid.classes_eqv_classes
File: Mathlib/Data/Setoid/Partition.lean

tactic: rintro _ ⟨y, rfl⟩ ha
state_before: α : Type u_1
r : Setoid α
a : α
⊢ ∀ (y : Set α), y ∈ classes r → a ∈ y → y = {x | Rel r x a}

tactic: ext x
state_before: case intro
α : Type u_1
r : Setoid α
a y : α
ha : a ∈ {x | Rel r x y}
⊢ {x | Rel r x y} = {x | Rel r x a}

tactic: exact ⟨fun hx => r.trans' hx (r.symm' ha), fun hx => r.trans' hx ha⟩
state_before: case intro.h
α : Type u_1
r : Setoid α
a y : α
ha : a ∈ {x | Rel r x y}
x : α
⊢ x ∈ {x | Rel r x y} ↔ x ∈ {x | Rel r x a}
Theorem: CategoryTheory.shift_shiftFunctorCompIsoId_hom_app
File: Mathlib/CategoryTheory/Shift/Basic.lean

tactic: rw [← neg_eq_of_add_eq_zero_left h, add_right_neg]
state_before: C : Type u
A : Type ?u.194994
inst✝² : Category C
inst✝¹ : AddGroup A
inst✝ : HasShift C A
X✝ Y : C
f : X✝ ⟶ Y
n m : A
h : n + m = 0
X : C
⊢ m + n = 0

tactic: dsimp [shiftFunctorCompIsoId]
state_before: C : Type u
A : Type u_1
inst✝² : Category C
inst✝¹ : AddGroup A
inst✝ : HasShift C A
X✝ Y : C
f : X✝ ⟶ Y
n m : A
h : n + m = 0
X : C
⊢ (shiftFunctor C n).map ((shiftFunctorCompIsoId C n m h).hom.app X) =
    (shiftFunctorCompIsoId C m n (_ : m + n = 0)).hom.app ((shiftFunctor C n).obj X)

tactic: simpa only [Functor.map_comp, ← shiftFunctorAdd'_zero_add_inv_app n X,
  ← shiftFunctorAdd'_add_zero_inv_app n X]
  using shiftFunctorAdd'_assoc_inv_app n m n 0 0 n h
    (by rw [← neg_eq_of_add_eq_zero_left h, add_right_neg]) (by rw [h, zero_add]) X
state_before: C : Type u
A : Type u_1
inst✝² : Category C
inst✝¹ : AddGroup A
inst✝ : HasShift C A
X✝ Y : C
f : X✝ ⟶ Y
n m : A
h : n + m = 0
X : C
⊢ (shiftFunctor C n).map ((shiftFunctorAdd' C n m 0 h).inv.app X ≫ (shiftFunctorZero C A).hom.app X) =
    (shiftFunctorAdd' C m n 0 (_ : m + n = 0)).inv.app ((shiftFunctor C n).obj X) ≫
      (shiftFunctorZero C A).hom.app ((shiftFunctor C n).obj X)

tactic: rw [← neg_eq_of_add_eq_zero_left h, add_right_neg]
state_before: C : Type u
A : Type u_1
inst✝² : Category C
inst✝¹ : AddGroup A
inst✝ : HasShift C A
X✝ Y : C
f : X✝ ⟶ Y
n m : A
h : n + m = 0
X : C
⊢ m + n = 0

tactic: rw [h, zero_add]
state_before: C : Type u
A : Type u_1
inst✝² : Category C
inst✝¹ : AddGroup A
inst✝ : HasShift C A
X✝ Y : C
f : X✝ ⟶ Y
n m : A
h : n + m = 0
X : C
⊢ n + m + n = n
Theorem: Function.Surjective.nonempty_preimage
File: Mathlib/Data/Set/Image.lean

tactic: rw [← nonempty_image_iff, hf.image_preimage]
state_before: ι : Sort ?u.104526
α : Type u_1
β : Type u_2
f : α → β
hf : Surjective f
s : Set β
⊢ Set.Nonempty (f ⁻¹' s) ↔ Set.Nonempty s
Theorem: Complex.IsExpCmpFilter.of_boundedUnder_abs_im
File: Mathlib/Analysis/SpecialFunctions/CompareExp.lean

tactic: norm_cast
state_before: l : Filter ℂ
hre : Tendsto re l atTop
him : IsBoundedUnder (fun x x_1 => x ≤ x_1) l fun z => Abs.abs z.im
⊢ im =O[l] fun z => z.re ^ ↑0

tactic: simpa only [pow_zero] using @IsBoundedUnder.isBigO_const ℂ ℝ ℝ _ _ _ l him 1 one_ne_zero
state_before: l : Filter ℂ
hre : Tendsto re l atTop
him : IsBoundedUnder (fun x x_1 => x ≤ x_1) l fun z => Abs.abs z.im
⊢ im =O[l] fun z => z.re ^ 0
Theorem: CategoryTheory.ConcreteCategory.hom_ext
File: Mathlib/CategoryTheory/ConcreteCategory/Basic.lean

tactic: apply @Faithful.map_injective C _ (Type w) _ (forget C) _ X Y
state_before: C : Type v
inst✝¹ : Category C
inst✝ : ConcreteCategory C
X Y : C
f g : X ⟶ Y
w : ∀ (x : (forget C).obj X), (forget C).map f x = (forget C).map g x
⊢ f = g

tactic: dsimp [forget]
state_before: case a
C : Type v
inst✝¹ : Category C
inst✝ : ConcreteCategory C
X Y : C
f g : X ⟶ Y
w : ∀ (x : (forget C).obj X), (forget C).map f x = (forget C).map g x
⊢ (forget C).map f = (forget C).map g

tactic: funext x
state_before: case a
C : Type v
inst✝¹ : Category C
inst✝ : ConcreteCategory C
X Y : C
f g : X ⟶ Y
w : ∀ (x : (forget C).obj X), (forget C).map f x = (forget C).map g x
⊢ ConcreteCategory.forget.map f = ConcreteCategory.forget.map g

tactic: exact w x
state_before: case a.h
C : Type v
inst✝¹ : Category C
inst✝ : ConcreteCategory C
X Y : C
f g : X ⟶ Y
w : ∀ (x : (forget C).obj X), (forget C).map f x = (forget C).map g x
x : ConcreteCategory.forget.obj X
⊢ ConcreteCategory.forget.map f x = ConcreteCategory.forget.map g x
Theorem: Equiv.Perm.decomposeOption_symm_of_none_apply
File: Mathlib/GroupTheory/Perm/Option.lean

tactic: simp
state_before: α : Type u_1
inst✝ : DecidableEq α
e : Perm α
i : Option α
⊢ ↑(↑decomposeOption.symm (none, e)) i = Option.map (↑e) i
Theorem: unique_uniformity_of_compact
File: Mathlib/Topology/UniformSpace/Compact.lean

tactic: refine uniformSpace_eq ?_
state_before: α : Type ?u.1384
β : Type ?u.1387
γ : Type u_1
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
t : TopologicalSpace γ
inst✝ : CompactSpace γ
u u' : UniformSpace γ
h : toTopologicalSpace = t
h' : toTopologicalSpace = t
⊢ u = u'

tactic: have : @CompactSpace γ u.toTopologicalSpace := by rwa [h]
state_before: α : Type ?u.1384
β : Type ?u.1387
γ : Type u_1
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
t : TopologicalSpace γ
inst✝ : CompactSpace γ
u u' : UniformSpace γ
h : toTopologicalSpace = t
h' : toTopologicalSpace = t
⊢ 𝓤 γ = 𝓤 γ

tactic: have : @CompactSpace γ u'.toTopologicalSpace := by rwa [h']
state_before: α : Type ?u.1384
β : Type ?u.1387
γ : Type u_1
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
t : TopologicalSpace γ
inst✝ : CompactSpace γ
u u' : UniformSpace γ
h : toTopologicalSpace = t
h' : toTopologicalSpace = t
this : CompactSpace γ
⊢ 𝓤 γ = 𝓤 γ

tactic: rw [@compactSpace_uniformity _ u, compactSpace_uniformity, h, h']
state_before: α : Type ?u.1384
β : Type ?u.1387
γ : Type u_1
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
t : TopologicalSpace γ
inst✝ : CompactSpace γ
u u' : UniformSpace γ
h : toTopologicalSpace = t
h' : toTopologicalSpace = t
this✝ : CompactSpace γ
this : CompactSpace γ
⊢ 𝓤 γ = 𝓤 γ

tactic: rwa [h]
state_before: α : Type ?u.1384
β : Type ?u.1387
γ : Type u_1
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
t : TopologicalSpace γ
inst✝ : CompactSpace γ
u u' : UniformSpace γ
h : toTopologicalSpace = t
h' : toTopologicalSpace = t
⊢ CompactSpace γ

tactic: rwa [h']
state_before: α : Type ?u.1384
β : Type ?u.1387
γ : Type u_1
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
t : TopologicalSpace γ
inst✝ : CompactSpace γ
u u' : UniformSpace γ
h : toTopologicalSpace = t
h' : toTopologicalSpace = t
this : CompactSpace γ
⊢ CompactSpace γ
Theorem: InnerProductGeometry.cos_angle_sub_mul_norm_of_inner_eq_zero
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean

tactic: rw [← neg_eq_zero, ← inner_neg_right] at h
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : inner x y = 0
⊢ Real.cos (angle x (x - y)) * ‖x - y‖ = ‖x‖

tactic: rw [sub_eq_add_neg, cos_angle_add_mul_norm_of_inner_eq_zero h]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : inner x (-y) = 0
⊢ Real.cos (angle x (x - y)) * ‖x - y‖ = ‖x‖
Theorem: Polynomial.natDegree_multiset_prod_le
File: Mathlib/Algebra/Polynomial/BigOperators.lean

tactic: simpa using natDegree_list_prod_le
state_before: R : Type u
ι : Type w
s : Finset ι
inst✝ : CommSemiring R
f : ι → R[X]
t : Multiset R[X]
⊢ ∀ (a : List R[X]),
    natDegree (prod (Quotient.mk (List.isSetoid R[X]) a)) ≤
      Multiset.sum (Multiset.map natDegree (Quotient.mk (List.isSetoid R[X]) a))
Theorem: Wbtw.trans_left
File: Mathlib/Analysis/Convex/Between.lean

tactic: rcases h₁ with ⟨t₁, ht₁, rfl⟩
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.272422
P : Type u_3
P' : Type ?u.272428
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
w x y z : P
h₁ : Wbtw R w y z
h₂ : Wbtw R w x y
⊢ Wbtw R w x z

tactic: rcases h₂ with ⟨t₂, ht₂, rfl⟩
state_before: case intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.272422
P : Type u_3
P' : Type ?u.272428
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
w x z : P
t₁ : R
ht₁ : t₁ ∈ Set.Icc 0 1
h₂ : Wbtw R w x (↑(lineMap w z) t₁)
⊢ Wbtw R w x z

tactic: refine' ⟨t₂ * t₁, ⟨mul_nonneg ht₂.1 ht₁.1, mul_le_one ht₂.2 ht₁.1 ht₁.2⟩, _⟩
state_before: case intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.272422
P : Type u_3
P' : Type ?u.272428
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
w z : P
t₁ : R
ht₁ : t₁ ∈ Set.Icc 0 1
t₂ : R
ht₂ : t₂ ∈ Set.Icc 0 1
⊢ Wbtw R w (↑(lineMap w (↑(lineMap w z) t₁)) t₂) z

tactic: rw [lineMap_apply, lineMap_apply, lineMap_vsub_left, smul_smul]
state_before: case intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.272422
P : Type u_3
P' : Type ?u.272428
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
w z : P
t₁ : R
ht₁ : t₁ ∈ Set.Icc 0 1
t₂ : R
ht₂ : t₂ ∈ Set.Icc 0 1
⊢ ↑(lineMap w z) (t₂ * t₁) = ↑(lineMap w (↑(lineMap w z) t₁)) t₂
Theorem: convexJoin_singleton_segment
File: Mathlib/Analysis/Convex/Join.lean

tactic: rw [← segment_same 𝕜, convexJoin_segments, insert_idem]
state_before: ι : Sort ?u.144516
𝕜 : Type u_2
E : Type u_1
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t u : Set E
x y a b c : E
⊢ convexJoin 𝕜 {a} (segment 𝕜 b c) = ↑(convexHull 𝕜).toOrderHom {a, b, c}
Theorem: MeasureTheory.IsFundamentalDomain.hasFiniteIntegral_on_iff
File: Mathlib/MeasureTheory/Group/FundamentalDomain.lean

tactic: dsimp only [HasFiniteIntegral]
state_before: G : Type u_1
H : Type ?u.332235
α : Type u_2
β : Type ?u.332241
E : Type u_3
inst✝¹⁰ : Group G
inst✝⁹ : Group H
inst✝⁸ : MulAction G α
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MulAction H β
inst✝⁵ : MeasurableSpace β
inst✝⁴ : NormedAddCommGroup E
s t : Set α
μ : Measure α
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSMul G α
inst✝¹ : SMulInvariantMeasure G α μ
inst✝ : Countable G
ν : Measure α
hs : IsFundamentalDomain G s
ht : IsFundamentalDomain G t
f : α → E
hf : ∀ (g : G) (x : α), f (g • x) = f x
⊢ HasFiniteIntegral f ↔ HasFiniteIntegral f

tactic: rw [hs.set_lintegral_eq ht]
state_before: G : Type u_1
H : Type ?u.332235
α : Type u_2
β : Type ?u.332241
E : Type u_3
inst✝¹⁰ : Group G
inst✝⁹ : Group H
inst✝⁸ : MulAction G α
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MulAction H β
inst✝⁵ : MeasurableSpace β
inst✝⁴ : NormedAddCommGroup E
s t : Set α
μ : Measure α
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSMul G α
inst✝¹ : SMulInvariantMeasure G α μ
inst✝ : Countable G
ν : Measure α
hs : IsFundamentalDomain G s
ht : IsFundamentalDomain G t
f : α → E
hf : ∀ (g : G) (x : α), f (g • x) = f x
⊢ (∫⁻ (a : α) in s, ↑‖f a‖₊ ∂μ) < ⊤ ↔ (∫⁻ (a : α) in t, ↑‖f a‖₊ ∂μ) < ⊤

tactic: intro g x
state_before: case hf
G : Type u_1
H : Type ?u.332235
α : Type u_2
β : Type ?u.332241
E : Type u_3
inst✝¹⁰ : Group G
inst✝⁹ : Group H
inst✝⁸ : MulAction G α
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MulAction H β
inst✝⁵ : MeasurableSpace β
inst✝⁴ : NormedAddCommGroup E
s t : Set α
μ : Measure α
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSMul G α
inst✝¹ : SMulInvariantMeasure G α μ
inst✝ : Countable G
ν : Measure α
hs : IsFundamentalDomain G s
ht : IsFundamentalDomain G t
f : α → E
hf : ∀ (g : G) (x : α), f (g • x) = f x
⊢ ∀ (g : G) (x : α), ↑‖f (g • x)‖₊ = ↑‖f x‖₊

tactic: rw [hf]
state_before: case hf
G : Type u_1
H : Type ?u.332235
α : Type u_2
β : Type ?u.332241
E : Type u_3
inst✝¹⁰ : Group G
inst✝⁹ : Group H
inst✝⁸ : MulAction G α
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MulAction H β
inst✝⁵ : MeasurableSpace β
inst✝⁴ : NormedAddCommGroup E
s t : Set α
μ : Measure α
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSMul G α
inst✝¹ : SMulInvariantMeasure G α μ
inst✝ : Countable G
ν : Measure α
hs : IsFundamentalDomain G s
ht : IsFundamentalDomain G t
f : α → E
hf : ∀ (g : G) (x : α), f (g • x) = f x
g : G
x : α
⊢ ↑‖f (g • x)‖₊ = ↑‖f x‖₊
Theorem: vectorSpan_image_eq_span_vsub_set_right_ne
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: conv_lhs =>
  rw [vectorSpan_eq_span_vsub_set_right k (Set.mem_image_of_mem p hi), ← Set.insert_eq_of_mem hi,
    ← Set.insert_diff_singleton, Set.image_insert_eq, Set.image_insert_eq]
state_before: k : Type u_3
V : Type u_2
P : Type u_4
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_1
p : ι → P
s : Set ι
i : ι
hi : i ∈ s
⊢ vectorSpan k (p '' s) = Submodule.span k ((fun x => x -ᵥ p i) '' (p '' (s \ {i})))

tactic: simp [Submodule.span_insert_eq_span]
state_before: k : Type u_3
V : Type u_2
P : Type u_4
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_1
p : ι → P
s : Set ι
i : ι
hi : i ∈ s
⊢ Submodule.span k (insert (p i -ᵥ p i) ((fun x => x -ᵥ p i) '' (p '' (s \ {i})))) =
    Submodule.span k ((fun x => x -ᵥ p i) '' (p '' (s \ {i})))
Theorem: Set.unbounded_lt_inter_le
File: Mathlib/Order/Bounded.lean

tactic: convert @unbounded_lt_inter_not_lt _ s _ a
state_before: α : Type u_1
r : α → α → Prop
s t : Set α
inst✝ : LinearOrder α
a : α
⊢ Unbounded (fun x x_1 => x < x_1) (s ∩ {b | a ≤ b}) ↔ Unbounded (fun x x_1 => x < x_1) s

tactic: exact not_lt.symm
state_before: case h.e'_1.h.e'_3.h.e'_4.h.e'_2.h.a
α : Type u_1
r : α → α → Prop
s t : Set α
inst✝ : LinearOrder α
a x✝ : α
⊢ a ≤ x✝ ↔ ¬x✝ < a
Theorem: SimpleGraph.compl_neighborSet_disjoint
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: rw [Set.disjoint_iff]
state_before: ι : Sort ?u.139320
𝕜 : Type ?u.139323
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
G : SimpleGraph V
v : V
⊢ Disjoint (neighborSet G v) (neighborSet (Gᶜ) v)

tactic: rintro w ⟨h, h'⟩
state_before: ι : Sort ?u.139320
𝕜 : Type ?u.139323
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
G : SimpleGraph V
v : V
⊢ neighborSet G v ∩ neighborSet (Gᶜ) v ⊆ ∅

tactic: rw [mem_neighborSet, compl_adj] at h'
state_before: case intro
ι : Sort ?u.139320
𝕜 : Type ?u.139323
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
G : SimpleGraph V
v w : V
h : w ∈ neighborSet G v
h' : w ∈ neighborSet (Gᶜ) v
⊢ w ∈ ∅

tactic: exact h'.2 h
state_before: case intro
ι : Sort ?u.139320
𝕜 : Type ?u.139323
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
G : SimpleGraph V
v w : V
h : w ∈ neighborSet G v
h' : v ≠ w ∧ ¬Adj G v w
⊢ w ∈ ∅
Theorem: Complex.reClm_norm
File: Mathlib/Analysis/Complex/OperatorNorm.lean

tactic: simp
state_before: ⊢ 1 = ‖↑reClm 1‖

tactic: simp
state_before: ⊢ ‖1‖ ≤ 1
Theorem: StarSubalgebra.coe_bot
File: Mathlib/Algebra/Star/Subalgebra.lean

tactic: simp [Set.ext_iff, mem_bot]
state_before: F : Type ?u.727251
R : Type u_2
A : Type u_1
B : Type ?u.727260
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
inst✝⁵ : StarRing A
inst✝⁴ : StarModule R A
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : StarRing B
inst✝ : StarModule R B
⊢ ↑⊥ = Set.range ↑(algebraMap R A)
Theorem: Matrix.dotProduct_zero
File: Mathlib/Data/Matrix/Basic.lean

tactic: simp [dotProduct]
state_before: l : Type ?u.129042
m : Type u_1
n : Type ?u.129048
o : Type ?u.129051
m' : o → Type ?u.129056
n' : o → Type ?u.129061
R : Type ?u.129064
S : Type ?u.129067
α : Type v
β : Type w
γ : Type ?u.129074
inst✝² : Fintype m
inst✝¹ : Fintype n
inst✝ : NonUnitalNonAssocSemiring α
u v w : m → α
x y : n → α
⊢ v ⬝ᵥ 0 = 0
Theorem: FractionalIdeal.spanSingleton_inv_mul
File: Mathlib/RingTheory/DedekindDomain/Ideal.lean

tactic: rw [mul_comm, spanSingleton_mul_inv K hx]
state_before: R : Type ?u.60160
A : Type ?u.60163
K : Type u_1
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing A
inst✝⁸ : Field K
inst✝⁷ : IsDomain A
R₁ : Type u_2
inst✝⁶ : CommRing R₁
inst✝⁵ : IsDomain R₁
inst✝⁴ : Algebra R₁ K
inst✝³ : IsFractionRing R₁ K
I J : FractionalIdeal R₁⁰ K
K' : Type ?u.61174
inst✝² : Field K'
inst✝¹ : Algebra R₁ K'
inst✝ : IsFractionRing R₁ K'
x : K
hx : x ≠ 0
⊢ (spanSingleton R₁⁰ x)⁻¹ * spanSingleton R₁⁰ x = 1
Theorem: Ideal.finrank_quotient_eq_sum
File: Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean

tactic: rw [LinearEquiv.finrank_eq <| Ideal.quotientEquivDirectSum F b hI,
  FiniteDimensional.finrank_directSum]
state_before: ι : Type u_3
R : Type u_2
S : Type u_4
inst✝¹³ : CommRing R
inst✝¹² : CommRing S
inst✝¹¹ : Algebra R S
inst✝¹⁰ : IsDomain R
inst✝⁹ : IsPrincipalIdealRing R
inst✝⁸ : IsDomain S
inst✝⁷ : Fintype ι
F : Type u_1
inst✝⁶ : CommRing F
inst✝⁵ : Algebra F R
inst✝⁴ : Algebra F S
inst✝³ : IsScalarTower F R S
b : Basis ι R S
I : Ideal S
hI : I ≠ ⊥
inst✝² : Nontrivial F
inst✝¹ : ∀ (i : ι), Module.Free F (R ⧸ span {smithCoeffs b I hI i})
inst✝ : ∀ (i : ι), Module.Finite F (R ⧸ span {smithCoeffs b I hI i})
⊢ FiniteDimensional.finrank F (S ⧸ I) = ∑ i : ι, FiniteDimensional.finrank F (R ⧸ span {smithCoeffs b I hI i})
Theorem: Finset.card_div_mul_le_card_div_mul_card_mul
File: Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean

tactic: rw [← div_inv_eq_mul, div_eq_mul_inv]
state_before: α : Type u_1
inst✝¹ : CommGroup α
inst✝ : DecidableEq α
A✝ B✝ C✝ A B C : Finset α
⊢ card (A / C) * card B ≤ card (A / B) * card (B * C)

tactic: exact card_mul_mul_le_card_div_mul_card_div _ _ _
state_before: α : Type u_1
inst✝¹ : CommGroup α
inst✝ : DecidableEq α
A✝ B✝ C✝ A B C : Finset α
⊢ card (A * C⁻¹) * card B ≤ card (A / B) * card (B / C⁻¹)
Theorem: Fin.insertNth_mem_Icc
File: Mathlib/Data/Fin/Tuple/Basic.lean

tactic: simp only [mem_Icc, insertNth_le_iff, le_insertNth_iff, and_assoc, @and_left_comm (x ≤ q₂ i)]
state_before: m n : ℕ
α : Fin (n + 1) → Type u
β : Type v
inst✝ : (i : Fin (n + 1)) → Preorder (α i)
i : Fin (n + 1)
x : α i
p : (j : Fin n) → α (↑(succAbove i) j)
q₁ q₂ : (j : Fin (n + 1)) → α j
⊢ insertNth i x p ∈ Icc q₁ q₂ ↔
    x ∈ Icc (q₁ i) (q₂ i) ∧ p ∈ Icc (fun j => q₁ (↑(succAbove i) j)) fun j => q₂ (↑(succAbove i) j)
Theorem: Pmf.toMeasure_apply_eq_zero_iff
File: Mathlib/Probability/ProbabilityMassFunction/Basic.lean

tactic: rw [toMeasure_apply_eq_toOuterMeasure_apply p s hs, toOuterMeasure_apply_eq_zero_iff]
state_before: α : Type u_1
β : Type ?u.84148
γ : Type ?u.84151
inst✝ : MeasurableSpace α
p : Pmf α
s t : Set α
hs : MeasurableSet s
⊢ ↑↑(toMeasure p) s = 0 ↔ Disjoint (support p) s
Theorem: isGδ_sInter
File: Mathlib/Topology/GDelta.lean

tactic: simpa only [sInter_eq_biInter] using isGδ_biInter hS h
state_before: α : Type u_1
β : Type ?u.5691
γ : Type ?u.5694
ι : Type ?u.5697
inst✝ : TopologicalSpace α
S : Set (Set α)
h : ∀ (s : Set α), s ∈ S → IsGδ s
hS : Set.Countable S
⊢ IsGδ (⋂₀ S)
Theorem: Complex.abs_arg_le_pi_div_two_iff
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: rw [abs_le, arg_le_pi_div_two_iff, neg_pi_div_two_le_arg_iff, ← or_and_left, ← not_le,
  and_not_self_iff, or_false_iff]
state_before: z : ℂ
⊢ Abs.abs (arg z) ≤ π / 2 ↔ 0 ≤ z.re
Theorem: isUnit_of_associated_mul
File: Mathlib/Algebra/Associated.lean

tactic: cases' h with a ha
state_before: α : Type u_1
β : Type ?u.351988
γ : Type ?u.351991
δ : Type ?u.351994
inst✝ : CancelCommMonoidWithZero α
p b : α
h : p * b ~ᵤ p
hp : p ≠ 0
⊢ IsUnit b

tactic: refine' isUnit_of_mul_eq_one b a ((mul_right_inj' hp).mp _)
state_before: case intro
α : Type u_1
β : Type ?u.351988
γ : Type ?u.351991
δ : Type ?u.351994
inst✝ : CancelCommMonoidWithZero α
p b : α
hp : p ≠ 0
a : αˣ
ha : p * b * ↑a = p
⊢ IsUnit b

tactic: rwa [← mul_assoc, mul_one]
state_before: case intro
α : Type u_1
β : Type ?u.351988
γ : Type ?u.351991
δ : Type ?u.351994
inst✝ : CancelCommMonoidWithZero α
p b : α
hp : p ≠ 0
a : αˣ
ha : p * b * ↑a = p
⊢ p * (b * ↑a) = p * 1
Theorem: Quaternion.normSq_coe
File: Mathlib/Algebra/Quaternion.lean

tactic: rw [normSq_def, star_coe, ← coe_mul, coe_re, sq]
state_before: S : Type ?u.564690
T : Type ?u.564693
R : Type u_1
inst✝ : CommRing R
r x y z : R
a b c : ℍ[R]
⊢ ↑normSq ↑x = x ^ 2
Theorem: mul_div_cancel_of_imp'
File: Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean

tactic: rw [mul_comm, div_mul_cancel_of_imp h]
state_before: α : Type ?u.11359
M₀ : Type ?u.11362
G₀ : Type u_1
M₀' : Type ?u.11368
G₀' : Type ?u.11371
F : Type ?u.11374
F' : Type ?u.11377
inst✝¹ : MonoidWithZero M₀
inst✝ : CommGroupWithZero G₀
a✝ b✝ c d a b : G₀
h : b = 0 → a = 0
⊢ b * (a / b) = a
Theorem: Complex.arg_mul_coe_angle
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: convert arg_mul_cos_add_sin_mul_I_coe_angle (mul_pos (abs.pos hx) (abs.pos hy))
    (arg x + arg y : Real.Angle) using
  3
state_before: x y : ℂ
hx : x ≠ 0
hy : y ≠ 0
⊢ ↑(arg (x * y)) = ↑(arg x) + ↑(arg y)

tactic: simp_rw [← Real.Angle.coe_add, Real.Angle.sin_coe, Real.Angle.cos_coe, ofReal_cos, ofReal_sin,
  cos_add_sin_I, ofReal_add, add_mul, exp_add, ofReal_mul]
state_before: case h.e'_2.h.e'_1.h.e'_1
x y : ℂ
hx : x ≠ 0
hy : y ≠ 0
⊢ x * y = ↑(↑abs x * ↑abs y) * (↑(Angle.cos (↑(arg x) + ↑(arg y))) + ↑(Angle.sin (↑(arg x) + ↑(arg y))) * I)

tactic: rw [mul_assoc, mul_comm (exp _), ← mul_assoc (abs y : ℂ), abs_mul_exp_arg_mul_I, mul_comm y, ←
  mul_assoc, abs_mul_exp_arg_mul_I]
state_before: case h.e'_2.h.e'_1.h.e'_1
x y : ℂ
hx : x ≠ 0
hy : y ≠ 0
⊢ x * y = ↑(↑abs x) * ↑(↑abs y) * (exp (↑(arg x) * I) * exp (↑(arg y) * I))
Theorem: HomologicalComplex.dFrom_comp_xNextIsoSelf
File: Mathlib/Algebra/Homology/HomologicalComplex.lean

tactic: simp [h]
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i : ι
h : ¬ComplexShape.Rel c i (ComplexShape.next c i)
⊢ dFrom C i ≫ (xNextIsoSelf C h).hom = 0
Theorem: Fin.contractNth_apply_of_gt
File: Mathlib/Data/Fin/Tuple/Basic.lean

tactic: rw [contractNth, if_neg (not_lt_of_gt h), if_neg (Ne.symm <| ne_of_lt h)]
state_before: m n : ℕ
α : Type u_1
j : Fin (n + 1)
op : α → α → α
g : Fin (n + 1) → α
k : Fin n
h : ↑j < ↑k
⊢ contractNth j op g k = g (succ k)