tasksource/leandojo huggingface dataset:
Theorem: IsLocalization.AtPrime.discreteValuationRing_of_dedekind_domain
File: Mathlib/RingTheory/DedekindDomain/Dvr.lean

tactic: classical
letI : IsNoetherianRing Aₘ :=
  IsLocalization.isNoetherianRing P.primeCompl _ IsDedekindDomain.isNoetherianRing
letI : LocalRing Aₘ := IsLocalization.AtPrime.localRing Aₘ P
have hnf := IsLocalization.AtPrime.not_isField A hP Aₘ
exact
  ((DiscreteValuationRing.TFAE Aₘ hnf).out 0 2).mpr
    (IsLocalization.AtPrime.isDedekindDomain A P _)
state_before: R : Type ?u.45003
A : Type u_1
K : Type ?u.45009
inst✝⁸ : CommRing R
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
inst✝⁴ : IsDedekindDomain A
P : Ideal A
hP : P ≠ ⊥
pP : Ideal.IsPrime P
Aₘ : Type u_2
inst✝³ : CommRing Aₘ
inst✝² : IsDomain Aₘ
inst✝¹ : Algebra A Aₘ
inst✝ : IsLocalization.AtPrime Aₘ P
⊢ DiscreteValuationRing Aₘ

tactic: letI : IsNoetherianRing Aₘ :=
  IsLocalization.isNoetherianRing P.primeCompl _ IsDedekindDomain.isNoetherianRing
state_before: R : Type ?u.45003
A : Type u_1
K : Type ?u.45009
inst✝⁸ : CommRing R
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
inst✝⁴ : IsDedekindDomain A
P : Ideal A
hP : P ≠ ⊥
pP : Ideal.IsPrime P
Aₘ : Type u_2
inst✝³ : CommRing Aₘ
inst✝² : IsDomain Aₘ
inst✝¹ : Algebra A Aₘ
inst✝ : IsLocalization.AtPrime Aₘ P
⊢ DiscreteValuationRing Aₘ

tactic: letI : LocalRing Aₘ := IsLocalization.AtPrime.localRing Aₘ P
state_before: R : Type ?u.45003
A : Type u_1
K : Type ?u.45009
inst✝⁸ : CommRing R
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
inst✝⁴ : IsDedekindDomain A
P : Ideal A
hP : P ≠ ⊥
pP : Ideal.IsPrime P
Aₘ : Type u_2
inst✝³ : CommRing Aₘ
inst✝² : IsDomain Aₘ
inst✝¹ : Algebra A Aₘ
inst✝ : IsLocalization.AtPrime Aₘ P
this : IsNoetherianRing Aₘ := isNoetherianRing (Ideal.primeCompl P) Aₘ IsDedekindDomain.isNoetherianRing
⊢ DiscreteValuationRing Aₘ

tactic: have hnf := IsLocalization.AtPrime.not_isField A hP Aₘ
state_before: R : Type ?u.45003
A : Type u_1
K : Type ?u.45009
inst✝⁸ : CommRing R
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
inst✝⁴ : IsDedekindDomain A
P : Ideal A
hP : P ≠ ⊥
pP : Ideal.IsPrime P
Aₘ : Type u_2
inst✝³ : CommRing Aₘ
inst✝² : IsDomain Aₘ
inst✝¹ : Algebra A Aₘ
inst✝ : IsLocalization.AtPrime Aₘ P
this✝ : IsNoetherianRing Aₘ := isNoetherianRing (Ideal.primeCompl P) Aₘ IsDedekindDomain.isNoetherianRing
this : LocalRing Aₘ := localRing Aₘ P
⊢ DiscreteValuationRing Aₘ

tactic: exact
  ((DiscreteValuationRing.TFAE Aₘ hnf).out 0 2).mpr
    (IsLocalization.AtPrime.isDedekindDomain A P _)
state_before: R : Type ?u.45003
A : Type u_1
K : Type ?u.45009
inst✝⁸ : CommRing R
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
inst✝⁴ : IsDedekindDomain A
P : Ideal A
hP : P ≠ ⊥
pP : Ideal.IsPrime P
Aₘ : Type u_2
inst✝³ : CommRing Aₘ
inst✝² : IsDomain Aₘ
inst✝¹ : Algebra A Aₘ
inst✝ : IsLocalization.AtPrime Aₘ P
this✝ : IsNoetherianRing Aₘ := isNoetherianRing (Ideal.primeCompl P) Aₘ IsDedekindDomain.isNoetherianRing
this : LocalRing Aₘ := localRing Aₘ P
hnf : ¬IsField Aₘ
⊢ DiscreteValuationRing Aₘ
Theorem: Algebra.mul_smul_comm
File: Mathlib/Algebra/Algebra/Basic.lean

tactic: rw [smul_def, smul_def, left_comm]
state_before: R : Type u
S : Type v
A : Type w
B : Type ?u.319925
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Semiring A
inst✝² : Algebra R A
inst✝¹ : Semiring B
inst✝ : Algebra R B
s : R
x y : A
⊢ x * s • y = s • (x * y)
Theorem: Option.bind_some
File: Std/Data/Option/Lemmas.lean

tactic: cases x <;> rfl
state_before: α : Type u_1
x : Option α
⊢ Option.bind x some = x
Theorem: PFun.mem_core_res
File: Mathlib/Data/PFun.lean

tactic: simp [mem_core, mem_res]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.46763
δ : Type ?u.46766
ε : Type ?u.46769
ι : Type ?u.46772
f✝ : α →. β
f : α → β
s : Set α
t : Set β
x : α
⊢ x ∈ core (res f s) t ↔ x ∈ s → f x ∈ t
Theorem: induced_topology_le_preorder
File: Mathlib/Topology/Order/Basic.lean

tactic: let _ := Preorder.topology α
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
⊢ induced f inst✝¹ ≤ Preorder.topology α

tactic: have : OrderTopology α := ⟨rfl⟩
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
x✝ : TopologicalSpace α := Preorder.topology α
⊢ induced f inst✝¹ ≤ Preorder.topology α

tactic: refine le_of_nhds_le_nhds fun x => ?_
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
⊢ induced f inst✝¹ ≤ Preorder.topology α

tactic: simp only [nhds_eq_order, nhds_induced, comap_inf, comap_iInf, comap_principal, Ioi, Iio, ← hf]
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
x : α
⊢ 𝓝 x ≤ 𝓝 x

tactic: refine inf_le_inf (le_iInf₂ fun a ha => ?_) (le_iInf₂ fun a ha => ?_)
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
x : α
⊢ ((⨅ (i : β) (_ : i ∈ {x_1 | x_1 < f x}), 𝓟 (f ⁻¹' {x | i < x})) ⊓
      ⨅ (i : β) (_ : i ∈ {x_1 | f x < x_1}), 𝓟 (f ⁻¹' {x | x < i})) ≤
    (⨅ (b : α) (_ : b ∈ {x_1 | f x_1 < f x}), 𝓟 {x | f b < f x}) ⊓
      ⨅ (b : α) (_ : b ∈ {x_1 | f x < f x_1}), 𝓟 {x | f x < f b}

tactic: exacts [iInf₂_le (f a) ha, iInf₂_le (f a) ha]
state_before: case refine_1
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
x a : α
ha : a ∈ {x_1 | f x_1 < f x}
⊢ (⨅ (i : β) (_ : i ∈ {x_1 | x_1 < f x}), 𝓟 (f ⁻¹' {x | i < x})) ≤ 𝓟 {x | f a < f x}

case refine_2
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
x a : α
ha : a ∈ {x_1 | f x < f x_1}
⊢ (⨅ (i : β) (_ : i ∈ {x_1 | f x < x_1}), 𝓟 (f ⁻¹' {x | x < i})) ≤ 𝓟 {x | f x < f a}
Theorem: finrank_vectorSpan_insert_le_set
File: Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean

tactic: rw [← direction_affineSpan, ← affineSpan_insert_affineSpan, direction_affineSpan]
state_before: k : Type u_2
V : Type u_3
P : Type u_1
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : Set P
p : P
⊢ finrank k { x // x ∈ vectorSpan k (insert p s) } ≤ finrank k { x // x ∈ vectorSpan k s } + 1

tactic: refine' (finrank_vectorSpan_insert_le _ _).trans (add_le_add_right _ _)
state_before: k : Type u_2
V : Type u_3
P : Type u_1
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : Set P
p : P
⊢ finrank k { x // x ∈ vectorSpan k (insert p ↑(affineSpan k s)) } ≤ finrank k { x // x ∈ vectorSpan k s } + 1

tactic: rw [direction_affineSpan]
state_before: k : Type u_2
V : Type u_3
P : Type u_1
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : Set P
p : P
⊢ finrank k { x // x ∈ direction (affineSpan k s) } ≤ finrank k { x // x ∈ vectorSpan k s }
Theorem: SimpleGraph.ConnectedComponent.map_comp
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: refine' C.ind _
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
C : ConnectedComponent G
φ : G →g G'
ψ : G' →g G''
⊢ map ψ (map φ C) = map (Hom.comp ψ φ) C

tactic: exact fun _ => rfl
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
C : ConnectedComponent G
φ : G →g G'
ψ : G' →g G''
⊢ ∀ (v : V), map ψ (map φ (connectedComponentMk G v)) = map (Hom.comp ψ φ) (connectedComponentMk G v)
Theorem: Bool.eq_false_of_ne_true
File: Mathlib/Data/Bool/Basic.lean

tactic: decide
state_before: ⊢ ∀ {a : Bool}, a ≠ true → a = false
Theorem: Mathlib.Tactic.Abel.term_add_const
File: Mathlib/Tactic/Abel.lean

tactic: simp [h.symm, term, add_assoc]
state_before: α : Type u_1
inst✝ : AddCommMonoid α
n : ℕ
x a k a' : α
h : a + k = a'
⊢ term n x a + k = term n x a'
Theorem: ENNReal.rpow_left_injective
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: intro y z hyz
state_before: x : ℝ
hx : x ≠ 0
⊢ Function.Injective fun y => y ^ x

tactic: dsimp only at hyz
state_before: x : ℝ
hx : x ≠ 0
y z : ℝ≥0∞
hyz : (fun y => y ^ x) y = (fun y => y ^ x) z
⊢ y = z

tactic: rw [← rpow_one y, ← rpow_one z, ← _root_.mul_inv_cancel hx, rpow_mul, rpow_mul, hyz]
state_before: x : ℝ
hx : x ≠ 0
y z : ℝ≥0∞
hyz : y ^ x = z ^ x
⊢ y = z
Theorem: CategoryTheory.IsIso.of_isIso_comp_right
File: Mathlib/CategoryTheory/Iso.lean

tactic: rw [← comp_id f, ← hom_inv_id g, ← assoc]
state_before: C : Type u
inst✝² : Category C
X✝ Y✝ Z✝ : C
f✝ g✝ : X✝ ⟶ Y✝
h : Y✝ ⟶ Z✝
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
inst✝¹ : IsIso g
inst✝ : IsIso (f ≫ g)
⊢ IsIso f

tactic: infer_instance
state_before: C : Type u
inst✝² : Category C
X✝ Y✝ Z✝ : C
f✝ g✝ : X✝ ⟶ Y✝
h : Y✝ ⟶ Z✝
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
inst✝¹ : IsIso g
inst✝ : IsIso (f ≫ g)
⊢ IsIso ((f ≫ g) ≫ inv g)
Theorem: Wbtw.angle₂₁₃_eq_zero_of_ne
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean

tactic: rw [angle, angle_eq_zero_iff]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : Wbtw ℝ p₁ p₂ p₃
hp₂p₁ : p₂ ≠ p₁
⊢ ∠ p₂ p₁ p₃ = 0

tactic: rcases h with ⟨r, ⟨hr0, hr1⟩, rfl⟩
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : Wbtw ℝ p₁ p₂ p₃
hp₂p₁ : p₂ ≠ p₁
⊢ p₂ -ᵥ p₁ ≠ 0 ∧ ∃ r, 0 < r ∧ p₃ -ᵥ p₁ = r • (p₂ -ᵥ p₁)

tactic: have hr0' : r ≠ 0 := by
  rintro rfl
  simp at hp₂p₁
state_before: case intro.intro.intro
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₃ : P
r : ℝ
hr0 : 0 ≤ r
hr1 : r ≤ 1
hp₂p₁ : ↑(AffineMap.lineMap p₁ p₃) r ≠ p₁
⊢ ↑(AffineMap.lineMap p₁ p₃) r -ᵥ p₁ ≠ 0 ∧ ∃ r_1, 0 < r_1 ∧ p₃ -ᵥ p₁ = r_1 • (↑(AffineMap.lineMap p₁ p₃) r -ᵥ p₁)

tactic: replace hr0 := hr0.lt_of_ne hr0'.symm
state_before: case intro.intro.intro
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₃ : P
r : ℝ
hr0 : 0 ≤ r
hr1 : r ≤ 1
hp₂p₁ : ↑(AffineMap.lineMap p₁ p₃) r ≠ p₁
hr0' : r ≠ 0
⊢ ↑(AffineMap.lineMap p₁ p₃) r -ᵥ p₁ ≠ 0 ∧ ∃ r_1, 0 < r_1 ∧ p₃ -ᵥ p₁ = r_1 • (↑(AffineMap.lineMap p₁ p₃) r -ᵥ p₁)

tactic: refine' ⟨vsub_ne_zero.2 hp₂p₁, r⁻¹, inv_pos.2 hr0, _⟩
state_before: case intro.intro.intro
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₃ : P
r : ℝ
hr1 : r ≤ 1
hp₂p₁ : ↑(AffineMap.lineMap p₁ p₃) r ≠ p₁
hr0' : r ≠ 0
hr0 : 0 < r
⊢ ↑(AffineMap.lineMap p₁ p₃) r -ᵥ p₁ ≠ 0 ∧ ∃ r_1, 0 < r_1 ∧ p₃ -ᵥ p₁ = r_1 • (↑(AffineMap.lineMap p₁ p₃) r -ᵥ p₁)

tactic: rw [AffineMap.lineMap_apply, vadd_vsub_assoc, vsub_self, add_zero, smul_smul, inv_mul_cancel hr0',
  one_smul]
state_before: case intro.intro.intro
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₃ : P
r : ℝ
hr1 : r ≤ 1
hp₂p₁ : ↑(AffineMap.lineMap p₁ p₃) r ≠ p₁
hr0' : r ≠ 0
hr0 : 0 < r
⊢ p₃ -ᵥ p₁ = r⁻¹ • (↑(AffineMap.lineMap p₁ p₃) r -ᵥ p₁)

tactic: rintro rfl
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₃ : P
r : ℝ
hr0 : 0 ≤ r
hr1 : r ≤ 1
hp₂p₁ : ↑(AffineMap.lineMap p₁ p₃) r ≠ p₁
⊢ r ≠ 0

tactic: simp at hp₂p₁
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₃ : P
hr0 : 0 ≤ 0
hr1 : 0 ≤ 1
hp₂p₁ : ↑(AffineMap.lineMap p₁ p₃) 0 ≠ p₁
⊢ False
Theorem: CategoryTheory.InjectiveResolution.ofCocomplex_sq_01_comm
File: Mathlib/CategoryTheory/Abelian/InjectiveResolution.lean

tactic: simp only [ofCocomplex_d, eq_self_iff_true, eqToHom_refl, Category.comp_id,
  dite_eq_ite, if_true, comp_zero]
state_before: C : Type u
inst✝² : Category C
inst✝¹ : Abelian C
inst✝ : EnoughInjectives C
Z : C
⊢ Injective.ι Z ≫ HomologicalComplex.d (ofCocomplex Z) 0 1 =
    HomologicalComplex.d ((CochainComplex.single₀ C).obj Z) 0 1 ≫ 0

tactic: exact (exact_f_d (Injective.ι Z)).w
state_before: C : Type u
inst✝² : Category C
inst✝¹ : Abelian C
inst✝ : EnoughInjectives C
Z : C
⊢ Injective.ι Z ≫
      (CochainComplex.mkAux (under Z) (syzygies (Injective.ι Z)) (syzygies (d (Injective.ι Z))) (d (Injective.ι Z))
          (d (d (Injective.ι Z)))
          (_ :
            { fst := under Z, snd := { fst := syzygies (Injective.ι Z), snd := d (Injective.ι Z) } }.snd.snd ≫
                {
                      fst :=
                        syzygies
                          { fst := under Z,
                                snd := { fst := syzygies (Injective.ι Z), snd := d (Injective.ι Z) } }.2.snd,
                      snd :=
                        {
                          fst :=
                            d
                              { fst := under Z,
                                    snd := { fst := syzygies (Injective.ι Z), snd := d (Injective.ι Z) } }.2.snd,
                          snd :=
                            (_ :
                              { fst := under Z,
                                        snd := { fst := syzygies (Injective.ι Z), snd := d (Injective.ι Z) } }.2.snd ≫
                                  d
                                    { fst := under Z,
                                          snd := { fst := syzygies (Injective.ι Z), snd := d (Injective.ι Z) } }.2.snd =
                                0) } }.snd.fst =
              0)
          (fun t =>
            { fst := syzygies t.snd.snd.snd.snd.fst,
              snd :=
                { fst := d t.snd.snd.snd.snd.fst, snd := (_ : t.snd.snd.snd.snd.fst ≫ d t.snd.snd.snd.snd.fst = 0) } })
          0).d₀ =
    0
Theorem: Option.map₂_map_left_anticomm
File: Mathlib/Data/Option/NAry.lean

tactic: cases a <;> cases b <;> simp [h_left_anticomm]
state_before: α : Type u_5
β : Type u_4
γ : Type u_3
f✝ : α → β → γ
a : Option α
b : Option β
c : Option γ
α' : Type u_1
δ : Type u_2
f : α' → β → γ
g : α → α'
f' : β → α → δ
g' : δ → γ
h_left_anticomm : ∀ (a : α) (b : β), f (g a) b = g' (f' b a)
⊢ map₂ f (Option.map g a) b = Option.map g' (map₂ f' b a)
Theorem: Commute.div_sub_div
File: Mathlib/Algebra/Field/Basic.lean

tactic: simpa only [mul_neg, neg_div, ← sub_eq_add_neg] using hbc.neg_right.div_add_div hbd hb hd
state_before: α : Type ?u.44091
β : Type ?u.44094
K : Type u_1
inst✝ : DivisionRing K
a b c d : K
hbc : _root_.Commute b c
hbd : _root_.Commute b d
hb : b ≠ 0
hd : d ≠ 0
⊢ a / b - c / d = (a * d - b * c) / (b * d)
Theorem: UniformOnFun.hasBasis_uniformity_of_basis
File: Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean

tactic: simp only [iInf_uniformity]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.61464
ι : Type u_3
s✝ s' : Set α
x : α
p✝ : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
h : Set.Nonempty 𝔖
h' : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
p : ι → Prop
s : ι → Set (β × β)
hb : HasBasis (𝓤 β) p s
⊢ HasBasis (𝓤 (α →ᵤ[𝔖] β)) (fun Si => Si.fst ∈ 𝔖 ∧ p Si.snd) fun Si => UniformOnFun.gen 𝔖 Si.fst (s Si.snd)

tactic: exact
  hasBasis_biInf_of_directed h (fun S => UniformOnFun.gen 𝔖 S ∘ s) _
    (fun S _hS => UniformOnFun.hasBasis_uniformity_of_basis_aux₁ α β 𝔖 hb S)
    (UniformOnFun.hasBasis_uniformity_of_basis_aux₂ α β 𝔖 h' hb)
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.61464
ι : Type u_3
s✝ s' : Set α
x : α
p✝ : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
h : Set.Nonempty 𝔖
h' : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
p : ι → Prop
s : ι → Set (β × β)
hb : HasBasis (𝓤 β) p s
⊢ HasBasis (⨅ (i : Set α) (_ : i ∈ 𝔖), 𝓤 (α →ᵤ[𝔖] β)) (fun Si => Si.fst ∈ 𝔖 ∧ p Si.snd) fun Si =>
    UniformOnFun.gen 𝔖 Si.fst (s Si.snd)
Theorem: LinearMap.rank_add_le
File: Mathlib/LinearAlgebra/Dimension.lean

tactic: refine' rank_le_of_submodule _ _ _
state_before: K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1146278
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
f g : V →ₗ[K] V'
⊢ rank (f + g) ≤ Module.rank K { x // x ∈ range f ⊔ range g }

tactic: exact LinearMap.range_le_iff_comap.2 <| eq_top_iff'.2 fun x =>
  show f x + g x ∈ (LinearMap.range f ⊔ LinearMap.range g : Submodule K V') from
  mem_sup.2 ⟨_, ⟨x, rfl⟩, _, ⟨x, rfl⟩, rfl⟩
state_before: K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1146278
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
f g : V →ₗ[K] V'
⊢ range (f + g) ≤ range f ⊔ range g
Theorem: PEquiv.ofSet_eq_refl
File: Mathlib/Data/PEquiv.lean

tactic: rw [Set.eq_univ_iff_forall]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
s✝ : Set α
inst✝¹ : DecidablePred fun x => x ∈ s✝
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
h : ofSet s = PEquiv.refl α
⊢ s = Set.univ

tactic: intro
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
s✝ : Set α
inst✝¹ : DecidablePred fun x => x ∈ s✝
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
h : ofSet s = PEquiv.refl α
⊢ ∀ (x : α), x ∈ s

tactic: rw [← mem_ofSet_self_iff, h]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
s✝ : Set α
inst✝¹ : DecidablePred fun x => x ∈ s✝
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
h : ofSet s = PEquiv.refl α
x✝ : α
⊢ x✝ ∈ s

tactic: exact rfl
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
s✝ : Set α
inst✝¹ : DecidablePred fun x => x ∈ s✝
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
h : ofSet s = PEquiv.refl α
x✝ : α
⊢ x✝ ∈ ↑(PEquiv.refl α) x✝

tactic: simp only [← ofSet_univ, h]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
s✝ : Set α
inst✝¹ : DecidablePred fun x => x ∈ s✝
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
h : s = Set.univ
⊢ ofSet s = PEquiv.refl α
Theorem: Submodule.smul_mem_span_smul
File: Mathlib/Algebra/Algebra/Tower.lean

tactic: rw [smul_zero]
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid A
inst✝⁴ : Module R S
inst✝³ : Module S A
inst✝² : Module R A
inst✝¹ : IsScalarTower R S A
inst✝ : SMulCommClass R S A
s : Set S
hs : span R s = ⊤
t : Set A
k : S
x : A
hx : x ∈ span R t
⊢ k • 0 ∈ span R (s • t)

tactic: exact zero_mem _
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid A
inst✝⁴ : Module R S
inst✝³ : Module S A
inst✝² : Module R A
inst✝¹ : IsScalarTower R S A
inst✝ : SMulCommClass R S A
s : Set S
hs : span R s = ⊤
t : Set A
k : S
x : A
hx : x ∈ span R t
⊢ 0 ∈ span R (s • t)

tactic: rw [smul_add]
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid A
inst✝⁴ : Module R S
inst✝³ : Module S A
inst✝² : Module R A
inst✝¹ : IsScalarTower R S A
inst✝ : SMulCommClass R S A
s : Set S
hs : span R s = ⊤
t : Set A
k : S
x✝ : A
hx : x✝ ∈ span R t
x y : A
ihx : k • x ∈ span R (s • t)
ihy : k • y ∈ span R (s • t)
⊢ k • (x + y) ∈ span R (s • t)

tactic: exact add_mem ihx ihy
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid A
inst✝⁴ : Module R S
inst✝³ : Module S A
inst✝² : Module R A
inst✝¹ : IsScalarTower R S A
inst✝ : SMulCommClass R S A
s : Set S
hs : span R s = ⊤
t : Set A
k : S
x✝ : A
hx : x✝ ∈ span R t
x y : A
ihx : k • x ∈ span R (s • t)
ihy : k • y ∈ span R (s • t)
⊢ k • x + k • y ∈ span R (s • t)
Theorem: Ordinal.lt_mul_succ_div
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [div_def a h]
state_before: α : Type ?u.229103
β : Type ?u.229106
γ : Type ?u.229109
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b : Ordinal
h : b ≠ 0
⊢ a < b * succ (a / b)

tactic: exact csInf_mem (div_nonempty h)
state_before: α : Type ?u.229103
β : Type ?u.229106
γ : Type ?u.229109
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b : Ordinal
h : b ≠ 0
⊢ a < b * succ (sInf {o | a < b * succ o})
Theorem: Finset.Nonempty.sup'_eq_cSup_image
File: Mathlib/Order/ConditionallyCompleteLattice/Finset.lean

tactic: simp [csSup_le_iff (s.finite_toSet.image f).bddAbove (hs.to_set.image f)]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.39
inst✝ : ConditionallyCompleteLattice α
s✝ t : Set α
a✝ b : α
s : Finset β
hs : Finset.Nonempty s
f : β → α
a : α
⊢ sup' s hs f ≤ a ↔ sSup (f '' ↑s) ≤ a
Theorem: SimpleGraph.adjMatrix_mul_self_apply_self
File: Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean

tactic: simp [degree]
state_before: V : Type u_2
α : Type u_1
β : Type ?u.58967
G : SimpleGraph V
inst✝² : DecidableRel G.Adj
inst✝¹ : Fintype V
inst✝ : NonAssocSemiring α
i : V
⊢ (adjMatrix α G ⬝ adjMatrix α G) i i = ↑(degree G i)
Theorem: Multiset.rel_join
File: Mathlib/Data/Multiset/Bind.lean

tactic: induction h
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.9430
δ : Type ?u.9433
r : α → β → Prop
s : Multiset (Multiset α)
t : Multiset (Multiset β)
h : Rel (Rel r) s t
⊢ Rel r (join s) (join t)

tactic: case zero => simp
state_before: case zero
α : Type u_1
β : Type u_2
γ : Type ?u.9430
δ : Type ?u.9433
r : α → β → Prop
s : Multiset (Multiset α)
t : Multiset (Multiset β)
⊢ Rel r (join 0) (join 0)

case cons
α : Type u_1
β : Type u_2
γ : Type ?u.9430
δ : Type ?u.9433
r : α → β → Prop
s : Multiset (Multiset α)
t : Multiset (Multiset β)
a✝² : Multiset α
b✝ : Multiset β
as✝ : Multiset (Multiset α)
bs✝ : Multiset (Multiset β)
a✝¹ : Rel r a✝² b✝
a✝ : Rel (Rel r) as✝ bs✝
a_ih✝ : Rel r (join as✝) (join bs✝)
⊢ Rel r (join (a✝² ::ₘ as✝)) (join (b✝ ::ₘ bs✝))

tactic: case cons a b s t hab hst ih => simpa using hab.add ih
state_before: case cons
α : Type u_1
β : Type u_2
γ : Type ?u.9430
δ : Type ?u.9433
r : α → β → Prop
s : Multiset (Multiset α)
t : Multiset (Multiset β)
a✝² : Multiset α
b✝ : Multiset β
as✝ : Multiset (Multiset α)
bs✝ : Multiset (Multiset β)
a✝¹ : Rel r a✝² b✝
a✝ : Rel (Rel r) as✝ bs✝
a_ih✝ : Rel r (join as✝) (join bs✝)
⊢ Rel r (join (a✝² ::ₘ as✝)) (join (b✝ ::ₘ bs✝))

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.9430
δ : Type ?u.9433
r : α → β → Prop
s : Multiset (Multiset α)
t : Multiset (Multiset β)
⊢ Rel r (join 0) (join 0)

tactic: simpa using hab.add ih
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.9430
δ : Type ?u.9433
r : α → β → Prop
s✝ : Multiset (Multiset α)
t✝ : Multiset (Multiset β)
a : Multiset α
b : Multiset β
s : Multiset (Multiset α)
t : Multiset (Multiset β)
hab : Rel r a b
hst : Rel (Rel r) s t
ih : Rel r (join s) (join t)
⊢ Rel r (join (a ::ₘ s)) (join (b ::ₘ t))
Theorem: TopologicalSpace.Opens.map_id_eq
File: Mathlib/Topology/Category/TopCat/Opens.lean

tactic: rfl
state_before: X Y Z : TopCat
⊢ map (𝟙 X) = 𝟭 (Opens ↑X)
Theorem: Real.cos_two_mul'
File: Mathlib/Data/Complex/Exponential.lean

tactic: simp [cos_two_mul']
state_before: x y : ℝ
⊢ ↑(cos (2 * x)) = ↑(cos x ^ 2 - sin x ^ 2)