tasksource/leandojo huggingface dataset:
Theorem: YoungDiagram.exists_not_mem_row
File: Mathlib/Combinatorics/Young/YoungDiagram.lean

tactic: obtain ⟨j, hj⟩ :=
  Infinite.exists_not_mem_finset
    (μ.cells.preimage (Prod.mk i) fun _ _ _ _ h => by
      cases h
      rfl)
state_before: μ : YoungDiagram
i : ℕ
⊢ ∃ j, ¬(i, j) ∈ μ

tactic: rw [Finset.mem_preimage] at hj
state_before: case intro
μ : YoungDiagram
i j : ℕ
hj :
  ¬j ∈
      Finset.preimage μ.cells (Prod.mk i)
        (_ :
          ∀ (x : ℕ),
            x ∈ Prod.mk i ⁻¹' ↑μ.cells → ∀ (x_2 : ℕ), x_2 ∈ Prod.mk i ⁻¹' ↑μ.cells → (i, x) = (i, x_2) → x = x_2)
⊢ ∃ j, ¬(i, j) ∈ μ

tactic: exact ⟨j, hj⟩
state_before: case intro
μ : YoungDiagram
i j : ℕ
hj : ¬(i, j) ∈ μ.cells
⊢ ∃ j, ¬(i, j) ∈ μ

μ : YoungDiagram
i x✝³ : ℕ
x✝² : x✝³ ∈ Prod.mk i ⁻¹' ↑μ.cells
x✝¹ : ℕ
x✝ : x✝¹ ∈ Prod.mk i ⁻¹' ↑μ.cells
h : (i, x✝³) = (i, x✝¹)
⊢ x✝³ = x✝¹

tactic: cases h
state_before: μ : YoungDiagram
i x✝³ : ℕ
x✝² : x✝³ ∈ Prod.mk i ⁻¹' ↑μ.cells
x✝¹ : ℕ
x✝ : x✝¹ ∈ Prod.mk i ⁻¹' ↑μ.cells
h : (i, x✝³) = (i, x✝¹)
⊢ x✝³ = x✝¹

tactic: rfl
state_before: case refl
μ : YoungDiagram
i x✝² : ℕ
x✝¹ x✝ : x✝² ∈ Prod.mk i ⁻¹' ↑μ.cells
⊢ x✝² = x✝²
Theorem: MeasureTheory.OuterMeasure.le_boundedBy
File: Mathlib/MeasureTheory/Measure/OuterMeasure.lean

tactic: rw [boundedBy , le_ofFunction, forall_congr']
state_before: α : Type u_1
m : Set α → ℝ≥0∞
μ : OuterMeasure α
⊢ μ ≤ boundedBy m ↔ ∀ (s : Set α), ↑μ s ≤ m s

tactic: intro s
state_before: α : Type u_1
m : Set α → ℝ≥0∞
μ : OuterMeasure α
⊢ ∀ (a : Set α), (↑μ a ≤ ⨆ (_ : Set.Nonempty a), m a) ↔ ↑μ a ≤ m a

tactic: cases' s.eq_empty_or_nonempty with h h <;> simp [h, Set.not_nonempty_empty]
state_before: α : Type u_1
m : Set α → ℝ≥0∞
μ : OuterMeasure α
s : Set α
⊢ (↑μ s ≤ ⨆ (_ : Set.Nonempty s), m s) ↔ ↑μ s ≤ m s
Theorem: List.nthLe_tail
File: Mathlib/Data/List/Basic.lean

tactic: simpa [← lt_tsub_iff_right] using h
state_before: ι : Type ?u.45408
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ l : List α
i : ℕ
h : i < length (tail l)
⊢ i + 1 < length l

tactic: cases l
state_before: ι : Type ?u.45408
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ l : List α
i : ℕ
h : i < length (tail l)
h' : optParam (i + 1 < length l) (_ : i + 1 < length l)
⊢ nthLe (tail l) i h = nthLe l (i + 1) h'

tactic: cases h
state_before: case nil
ι : Type ?u.45408
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
i : ℕ
h : i < length (tail [])
h' : optParam (i + 1 < length []) (_ : i + 1 < length [])
⊢ nthLe (tail []) i h = nthLe [] (i + 1) h'

tactic: rfl
state_before: case cons
ι : Type ?u.45408
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
i : ℕ
head✝ : α
tail✝ : List α
h : i < length (tail (head✝ :: tail✝))
h' : optParam (i + 1 < length (head✝ :: tail✝)) (_ : i + 1 < length (head✝ :: tail✝))
⊢ nthLe (tail (head✝ :: tail✝)) i h = nthLe (head✝ :: tail✝) (i + 1) h'
Theorem: CategoryTheory.Sieve.effectiveEpimorphic_family
File: Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean

tactic: constructor
state_before: C : Type u_3
inst✝ : Category C
B : C
α : Type u_1
X : α → C
π : (a : α) → X a ⟶ B
⊢ Presieve.EffectiveEpimorphic (Presieve.ofArrows X π) ↔ EffectiveEpiFamily X π

tactic: intro (h : Nonempty _)
state_before: case mp
C : Type u_3
inst✝ : Category C
B : C
α : Type u_1
X : α → C
π : (a : α) → X a ⟶ B
⊢ Presieve.EffectiveEpimorphic (Presieve.ofArrows X π) → EffectiveEpiFamily X π

tactic: rw [Sieve.generateFamily_eq] at h
state_before: case mp
C : Type u_3
inst✝ : Category C
B : C
α : Type u_1
X : α → C
π : (a : α) → X a ⟶ B
h : Nonempty (IsColimit (Presieve.cocone (generate (Presieve.ofArrows X π)).arrows))
⊢ EffectiveEpiFamily X π

tactic: constructor
state_before: case mp
C : Type u_3
inst✝ : Category C
B : C
α : Type u_1
X : α → C
π : (a : α) → X a ⟶ B
h : Nonempty (IsColimit (Presieve.cocone (generateFamily X π).arrows))
⊢ EffectiveEpiFamily X π

tactic: apply Nonempty.map (effectiveEpiFamilyStructOfIsColimit _ _) h
state_before: case mp.effectiveEpiFamily
C : Type u_3
inst✝ : Category C
B : C
α : Type u_1
X : α → C
π : (a : α) → X a ⟶ B
h : Nonempty (IsColimit (Presieve.cocone (generateFamily X π).arrows))
⊢ Nonempty (EffectiveEpiFamilyStruct X π)

tactic: rintro ⟨h⟩
state_before: case mpr
C : Type u_3
inst✝ : Category C
B : C
α : Type u_1
X : α → C
π : (a : α) → X a ⟶ B
⊢ EffectiveEpiFamily X π → Presieve.EffectiveEpimorphic (Presieve.ofArrows X π)

tactic: show Nonempty _
state_before: case mpr.mk
C : Type u_3
inst✝ : Category C
B : C
α : Type u_1
X : α → C
π : (a : α) → X a ⟶ B
h : Nonempty (EffectiveEpiFamilyStruct X π)
⊢ Presieve.EffectiveEpimorphic (Presieve.ofArrows X π)

tactic: rw [Sieve.generateFamily_eq]
state_before: case mpr.mk
C : Type u_3
inst✝ : Category C
B : C
α : Type u_1
X : α → C
π : (a : α) → X a ⟶ B
h : Nonempty (EffectiveEpiFamilyStruct X π)
⊢ Nonempty (IsColimit (Presieve.cocone (generate (Presieve.ofArrows X π)).arrows))

tactic: apply Nonempty.map (isColimitOfEffectiveEpiFamilyStruct _ _) h
state_before: case mpr.mk
C : Type u_3
inst✝ : Category C
B : C
α : Type u_1
X : α → C
π : (a : α) → X a ⟶ B
h : Nonempty (EffectiveEpiFamilyStruct X π)
⊢ Nonempty (IsColimit (Presieve.cocone (generateFamily X π).arrows))
Theorem: if_true_right_eq_or
File: Mathlib/Init/IteSimp.lean

tactic: by_cases p <;> simp [h]
state_before: p : Prop
h : Decidable p
q : Prop
⊢ (if p then q else True) = (¬p ∨ q)
Theorem: Set.iUnion_prod_const
File: Mathlib/Data/Set/Lattice.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.230579
ι : Sort u_3
ι' : Sort ?u.230585
ι₂ : Sort ?u.230588
κ : ι → Sort ?u.230593
κ₁ : ι → Sort ?u.230598
κ₂ : ι → Sort ?u.230603
κ' : ι' → Sort ?u.230608
s : ι → Set α
t : Set β
⊢ (⋃ (i : ι), s i) ×ˢ t = ⋃ (i : ι), s i ×ˢ t

tactic: simp
state_before: case h
α : Type u_1
β : Type u_2
γ : Type ?u.230579
ι : Sort u_3
ι' : Sort ?u.230585
ι₂ : Sort ?u.230588
κ : ι → Sort ?u.230593
κ₁ : ι → Sort ?u.230598
κ₂ : ι → Sort ?u.230603
κ' : ι' → Sort ?u.230608
s : ι → Set α
t : Set β
x✝ : α × β
⊢ x✝ ∈ (⋃ (i : ι), s i) ×ˢ t ↔ x✝ ∈ ⋃ (i : ι), s i ×ˢ t
Theorem: nhdsWithin_inter_of_mem'
File: Mathlib/Topology/ContinuousOn.lean

tactic: rw [inter_comm, nhdsWithin_inter_of_mem h]
state_before: α : Type u_1
β : Type ?u.18576
γ : Type ?u.18579
δ : Type ?u.18582
inst✝ : TopologicalSpace α
a : α
s t : Set α
h : t ∈ 𝓝[s] a
⊢ 𝓝[s ∩ t] a = 𝓝[s] a
Theorem: Sym2.card_image_diag
File: Mathlib/Data/Sym/Card.lean

tactic: rw [card_image_of_injOn, diag_card]
state_before: α : Type u_1
β : Type ?u.72186
inst✝ : DecidableEq α
s : Finset α
⊢ Finset.card (image Quotient.mk' (Finset.diag s)) = Finset.card s

tactic: rintro ⟨x₀, x₁⟩ hx _ _ h
state_before: α : Type u_1
β : Type ?u.72186
inst✝ : DecidableEq α
s : Finset α
⊢ Set.InjOn Quotient.mk' ↑(Finset.diag s)

tactic: cases Quotient.eq'.1 h
state_before: case mk
α : Type u_1
β : Type ?u.72186
inst✝ : DecidableEq α
s : Finset α
x₀ x₁ : α
hx : (x₀, x₁) ∈ ↑(Finset.diag s)
x₂✝ : α × α
a✝ : x₂✝ ∈ ↑(Finset.diag s)
h : Quotient.mk' (x₀, x₁) = Quotient.mk' x₂✝
⊢ (x₀, x₁) = x₂✝

tactic: rfl
state_before: case mk.refl
α : Type u_1
β : Type ?u.72186
inst✝ : DecidableEq α
s : Finset α
x₀ x₁ : α
hx a✝ : (x₀, x₁) ∈ ↑(Finset.diag s)
h : Quotient.mk' (x₀, x₁) = Quotient.mk' (x₀, x₁)
⊢ (x₀, x₁) = (x₀, x₁)

tactic: simp only [mem_coe, mem_diag] at hx
state_before: case mk.swap
α : Type u_1
β : Type ?u.72186
inst✝ : DecidableEq α
s : Finset α
x₀ x₁ : α
hx : (x₀, x₁) ∈ ↑(Finset.diag s)
a✝ : (x₁, x₀) ∈ ↑(Finset.diag s)
h : Quotient.mk' (x₀, x₁) = Quotient.mk' (x₁, x₀)
⊢ (x₀, x₁) = (x₁, x₀)

tactic: rw [hx.2]
state_before: case mk.swap
α : Type u_1
β : Type ?u.72186
inst✝ : DecidableEq α
s : Finset α
x₀ x₁ : α
a✝ : (x₁, x₀) ∈ ↑(Finset.diag s)
h : Quotient.mk' (x₀, x₁) = Quotient.mk' (x₁, x₀)
hx : x₀ ∈ s ∧ x₀ = x₁
⊢ (x₀, x₁) = (x₁, x₀)
Theorem: LieAlgebra.Orthogonal.jd_transform
File: Mathlib/Algebra/Lie/Classical.lean

tactic: have h : (PD l R)ᵀ ⬝ JD l R = Matrix.fromBlocks 1 1 1 (-1) := by
  simp [PD, JD, Matrix.fromBlocks_transpose, Matrix.fromBlocks_multiply]
state_before: n : Type ?u.110673
p : Type ?u.110676
q : Type ?u.110679
l : Type u_1
R : Type u₂
inst✝⁷ : DecidableEq n
inst✝⁶ : DecidableEq p
inst✝⁵ : DecidableEq q
inst✝⁴ : DecidableEq l
inst✝³ : CommRing R
inst✝² : Fintype p
inst✝¹ : Fintype q
inst✝ : Fintype l
⊢ (PD l R)ᵀ ⬝ JD l R ⬝ PD l R = 2 • S l R

tactic: rw [h, PD, s_as_blocks, Matrix.fromBlocks_multiply, Matrix.fromBlocks_smul]
state_before: n : Type ?u.110673
p : Type ?u.110676
q : Type ?u.110679
l : Type u_1
R : Type u₂
inst✝⁷ : DecidableEq n
inst✝⁶ : DecidableEq p
inst✝⁵ : DecidableEq q
inst✝⁴ : DecidableEq l
inst✝³ : CommRing R
inst✝² : Fintype p
inst✝¹ : Fintype q
inst✝ : Fintype l
h : (PD l R)ᵀ ⬝ JD l R = fromBlocks 1 1 1 (-1)
⊢ (PD l R)ᵀ ⬝ JD l R ⬝ PD l R = 2 • S l R

tactic: congr
state_before: n : Type ?u.110673
p : Type ?u.110676
q : Type ?u.110679
l : Type u_1
R : Type u₂
inst✝⁷ : DecidableEq n
inst✝⁶ : DecidableEq p
inst✝⁵ : DecidableEq q
inst✝⁴ : DecidableEq l
inst✝³ : CommRing R
inst✝² : Fintype p
inst✝¹ : Fintype q
inst✝ : Fintype l
h : (PD l R)ᵀ ⬝ JD l R = fromBlocks 1 1 1 (-1)
⊢ fromBlocks (1 ⬝ 1 + 1 ⬝ 1) (1 ⬝ (-1) + 1 ⬝ 1) (1 ⬝ 1 + (-1) ⬝ 1) (1 ⬝ (-1) + (-1) ⬝ 1) =
    fromBlocks (2 • 1) (2 • 0) (2 • 0) (2 • -1)

tactic: simp [two_smul]
state_before: n : Type ?u.110673
p : Type ?u.110676
q : Type ?u.110679
l : Type u_1
R : Type u₂
inst✝⁷ : DecidableEq n
inst✝⁶ : DecidableEq p
inst✝⁵ : DecidableEq q
inst✝⁴ : DecidableEq l
inst✝³ : CommRing R
inst✝² : Fintype p
inst✝¹ : Fintype q
inst✝ : Fintype l
h : (PD l R)ᵀ ⬝ JD l R = fromBlocks 1 1 1 (-1)
⊢ fromBlocks (1 ⬝ 1 + 1 ⬝ 1) (1 ⬝ (-1) + 1 ⬝ 1) (1 ⬝ 1 + (-1) ⬝ 1) (1 ⬝ (-1) + (-1) ⬝ 1) =
    fromBlocks (2 • 1) (2 • 0) (2 • 0) (2 • -1)

tactic: simp [PD, JD, Matrix.fromBlocks_transpose, Matrix.fromBlocks_multiply]
state_before: n : Type ?u.110673
p : Type ?u.110676
q : Type ?u.110679
l : Type u_1
R : Type u₂
inst✝⁷ : DecidableEq n
inst✝⁶ : DecidableEq p
inst✝⁵ : DecidableEq q
inst✝⁴ : DecidableEq l
inst✝³ : CommRing R
inst✝² : Fintype p
inst✝¹ : Fintype q
inst✝ : Fintype l
⊢ (PD l R)ᵀ ⬝ JD l R = fromBlocks 1 1 1 (-1)
Theorem: iSup_eq_iSup_finset'
File: Mathlib/Data/Finset/Lattice.lean

tactic: rw [← iSup_eq_iSup_finset, ← Equiv.plift.surjective.iSup_comp]
state_before: F : Type ?u.419112
α : Type u_1
β : Type ?u.419118
γ : Type ?u.419121
ι : Type ?u.419124
κ : Type ?u.419127
ι' : Sort u_2
inst✝ : CompleteLattice α
s : ι' → α
⊢ (⨆ (i : ι'), s i) = ⨆ (t : Finset (PLift ι')) (i : PLift ι') (_ : i ∈ t), s i.down

tactic: rfl
state_before: F : Type ?u.419112
α : Type u_1
β : Type ?u.419118
γ : Type ?u.419121
ι : Type ?u.419124
κ : Type ?u.419127
ι' : Sort u_2
inst✝ : CompleteLattice α
s : ι' → α
⊢ (⨆ (x : PLift ι'), s (↑Equiv.plift x)) = ⨆ (i : PLift ι'), s i.down
Theorem: isNoetherian_of_range_eq_ker
File: Mathlib/RingTheory/Noetherian.lean

tactic: simp [Submodule.map_comap_eq, inf_comm]
state_before: R : Type u_1
M : Type u_2
P : Type u_3
N : Type w
inst✝⁸ : Ring R
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : AddCommGroup N
inst✝⁴ : Module R N
inst✝³ : AddCommGroup P
inst✝² : Module R P
inst✝¹ : IsNoetherian R M
inst✝ : IsNoetherian R P
f : M →ₗ[R] N
g : N →ₗ[R] P
hf : Injective ↑f
hg : Surjective ↑g
h : LinearMap.range f = LinearMap.ker g
⊢ ∀ (a : Submodule R N), map f (comap f a) = a ⊓ LinearMap.range f

tactic: simp [Submodule.comap_map_eq, h]
state_before: R : Type u_1
M : Type u_2
P : Type u_3
N : Type w
inst✝⁸ : Ring R
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : AddCommGroup N
inst✝⁴ : Module R N
inst✝³ : AddCommGroup P
inst✝² : Module R P
inst✝¹ : IsNoetherian R M
inst✝ : IsNoetherian R P
f : M →ₗ[R] N
g : N →ₗ[R] P
hf : Injective ↑f
hg : Surjective ↑g
h : LinearMap.range f = LinearMap.ker g
⊢ ∀ (a : Submodule R N), comap g (map g a) = a ⊔ LinearMap.range f
Theorem: multiplicity.Nat.pow_sub_pow
File: Mathlib/NumberTheory/Multiplicity.lean

tactic: obtain hyx | hyx := le_total y x
state_before: R : Type ?u.838285
n✝ : ℕ
inst✝ : CommRing R
a b x✝ y✝ : R
p : ℕ
hp : Nat.Prime p
hp1 : Odd p
x y : ℕ
hxy : p ∣ x - y
hx : ¬p ∣ x
n : ℕ
⊢ multiplicity p (x ^ n - y ^ n) = multiplicity p (x - y) + multiplicity p n

tactic: iterate 2 rw [← Int.coe_nat_multiplicity]
state_before: case inl
R : Type ?u.838285
n✝ : ℕ
inst✝ : CommRing R
a b x✝ y✝ : R
p : ℕ
hp : Nat.Prime p
hp1 : Odd p
x y : ℕ
hxy : p ∣ x - y
hx : ¬p ∣ x
n : ℕ
hyx : y ≤ x
⊢ multiplicity p (x ^ n - y ^ n) = multiplicity p (x - y) + multiplicity p n

tactic: rw [Int.ofNat_sub (Nat.pow_le_pow_of_le_left hyx n)]
state_before: case inl
R : Type ?u.838285
n✝ : ℕ
inst✝ : CommRing R
a b x✝ y✝ : R
p : ℕ
hp : Nat.Prime p
hp1 : Odd p
x y : ℕ
hxy : p ∣ x - y
hx : ¬p ∣ x
n : ℕ
hyx : y ≤ x
⊢ multiplicity ↑p ↑(x ^ n - y ^ n) = multiplicity ↑p ↑(x - y) + multiplicity p n

tactic: rw [← Int.coe_nat_dvd] at hxy hx
state_before: case inl
R : Type ?u.838285
n✝ : ℕ
inst✝ : CommRing R
a b x✝ y✝ : R
p : ℕ
hp : Nat.Prime p
hp1 : Odd p
x y : ℕ
hxy : p ∣ x - y
hx : ¬p ∣ x
n : ℕ
hyx : y ≤ x
⊢ multiplicity (↑p) (↑(x ^ n) - ↑(y ^ n)) = multiplicity ↑p ↑(x - y) + multiplicity p n

tactic: rw [Int.coe_nat_sub hyx] at *
state_before: case inl
R : Type ?u.838285
n✝ : ℕ
inst✝ : CommRing R
a b x✝ y✝ : R
p : ℕ
hp : Nat.Prime p
hp1 : Odd p
x y : ℕ
hxy : ↑p ∣ ↑(x - y)
hx : ¬↑p ∣ ↑x
n : ℕ
hyx : y ≤ x
⊢ multiplicity (↑p) (↑(x ^ n) - ↑(y ^ n)) = multiplicity ↑p ↑(x - y) + multiplicity p n

tactic: push_cast at *
state_before: case inl
R : Type ?u.838285
n✝ : ℕ
inst✝ : CommRing R
a b x✝ y✝ : R
p : ℕ
hp : Nat.Prime p
hp1 : Odd p
x y : ℕ
hxy : ↑p ∣ ↑x - ↑y
hx : ¬↑p ∣ ↑x
n : ℕ
hyx : y ≤ x
⊢ multiplicity (↑p) (↑(x ^ n) - ↑(y ^ n)) = multiplicity (↑p) (↑x - ↑y) + multiplicity p n

tactic: exact Int.pow_sub_pow hp hp1 hxy hx n
state_before: case inl
R : Type ?u.838285
n✝ : ℕ
inst✝ : CommRing R
a b x✝ y✝ : R
p : ℕ
hp : Nat.Prime p
hp1 : Odd p
x y : ℕ
hxy : ↑p ∣ ↑x - ↑y
hx : ¬↑p ∣ ↑x
n : ℕ
hyx : y ≤ x
⊢ multiplicity (↑p) (↑x ^ n - ↑y ^ n) = multiplicity (↑p) (↑x - ↑y) + multiplicity p n

tactic: rw [← Int.coe_nat_multiplicity]
state_before: case inl
R : Type ?u.838285
n✝ : ℕ
inst✝ : CommRing R
a b x✝ y✝ : R
p : ℕ
hp : Nat.Prime p
hp1 : Odd p
x y : ℕ
hxy : p ∣ x - y
hx : ¬p ∣ x
n : ℕ
hyx : y ≤ x
⊢ multiplicity ↑p ↑(x ^ n - y ^ n) = multiplicity p (x - y) + multiplicity p n

tactic: simp only [Nat.sub_eq_zero_iff_le.mpr hyx,
  Nat.sub_eq_zero_iff_le.mpr (Nat.pow_le_pow_of_le_left hyx n), multiplicity.zero,
  PartENat.top_add]
state_before: case inr
R : Type ?u.838285
n✝ : ℕ
inst✝ : CommRing R
a b x✝ y✝ : R
p : ℕ
hp : Nat.Prime p
hp1 : Odd p
x y : ℕ
hxy : p ∣ x - y
hx : ¬p ∣ x
n : ℕ
hyx : x ≤ y
⊢ multiplicity p (x ^ n - y ^ n) = multiplicity p (x - y) + multiplicity p n
Theorem: Asymptotics.IsBigOWith.pow
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simpa using h.pow' 0
state_before: α : Type u_2
β : Type ?u.494047
E : Type ?u.494050
F : Type ?u.494053
G : Type ?u.494056
E' : Type ?u.494059
F' : Type ?u.494062
G' : Type ?u.494065
E'' : Type ?u.494068
F'' : Type ?u.494071
G'' : Type ?u.494074
R : Type u_1
R' : Type ?u.494080
𝕜 : Type u_3
𝕜' : Type ?u.494086
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedRing R'
inst✝² : NormedField 𝕜
inst✝¹ : NormedField 𝕜'
c c' c₁ c₂ : ℝ
f✝ : α → E
g✝ : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
inst✝ : NormOneClass R
f : α → R
g : α → 𝕜
h : IsBigOWith c l f g
⊢ IsBigOWith (c ^ 0) l (fun x => f x ^ 0) fun x => g x ^ 0
Theorem: FiberBundleCore.open_source'
File: Mathlib/Topology/FiberBundle/Basic.lean

tactic: apply TopologicalSpace.GenerateOpen.basic
state_before: ι : Type u_3
B : Type u_1
F : Type u_2
X : Type ?u.35703
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
Z : FiberBundleCore ι B F
i✝ : ι
b : B
a : F
i : ι
⊢ IsOpen (localTrivAsLocalEquiv Z i).source

tactic: simp only [exists_prop, mem_iUnion, mem_singleton_iff]
state_before: case a
ι : Type u_3
B : Type u_1
F : Type u_2
X : Type ?u.35703
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
Z : FiberBundleCore ι B F
i✝ : ι
b : B
a : F
i : ι
⊢ (localTrivAsLocalEquiv Z i).source ∈
    ⋃ (i : ι) (s : Set (B × F)) (_ : IsOpen s),
      {(localTrivAsLocalEquiv Z i).source ∩ ↑(localTrivAsLocalEquiv Z i) ⁻¹' s}

tactic: refine ⟨i, Z.baseSet i ×ˢ univ, (Z.isOpen_baseSet i).prod isOpen_univ, ?_⟩
state_before: case a
ι : Type u_3
B : Type u_1
F : Type u_2
X : Type ?u.35703
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
Z : FiberBundleCore ι B F
i✝ : ι
b : B
a : F
i : ι
⊢ ∃ i_1 i_2,
    IsOpen i_2 ∧
      (localTrivAsLocalEquiv Z i).source = (localTrivAsLocalEquiv Z i_1).source ∩ ↑(localTrivAsLocalEquiv Z i_1) ⁻¹' i_2

tactic: ext p
state_before: case a
ι : Type u_3
B : Type u_1
F : Type u_2
X : Type ?u.35703
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
Z : FiberBundleCore ι B F
i✝ : ι
b : B
a : F
i : ι
⊢ (localTrivAsLocalEquiv Z i).source =
    (localTrivAsLocalEquiv Z i).source ∩ ↑(localTrivAsLocalEquiv Z i) ⁻¹' baseSet Z i ×ˢ univ

tactic: simp only [localTrivAsLocalEquiv_apply, prod_mk_mem_set_prod_eq, mem_inter_iff, and_self_iff,
  mem_localTrivAsLocalEquiv_source, and_true, mem_univ, mem_preimage]
state_before: case a.h
ι : Type u_3
B : Type u_1
F : Type u_2
X : Type ?u.35703
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
Z : FiberBundleCore ι B F
i✝ : ι
b : B
a : F
i : ι
p : TotalSpace Z
⊢ p ∈ (localTrivAsLocalEquiv Z i).source ↔
    p ∈ (localTrivAsLocalEquiv Z i).source ∩ ↑(localTrivAsLocalEquiv Z i) ⁻¹' baseSet Z i ×ˢ univ
Theorem: CategoryTheory.Over.over_right
File: Mathlib/CategoryTheory/Over.lean

tactic: simp only
state_before: T : Type u₁
inst✝ : Category T
X : T
U : Over X
⊢ U.right = { as := PUnit.unit }
Theorem: two_mul
File: Mathlib/Algebra/Ring/Defs.lean

tactic: rw [one_mul]
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝ : NonAssocSemiring α
n : α
⊢ 1 * n + 1 * n = n + n
Theorem: TopologicalSpace.Opens.IsBasis.isCompact_open_iff_eq_finite_iUnion
File: Mathlib/Topology/Sets/Opens.lean

tactic: apply isCompact_open_iff_eq_finite_iUnion_of_isTopologicalBasis fun i : ι => (b i).1
state_before: ι✝ : Type ?u.35576
α : Type u_2
β : Type ?u.35582
γ : Type ?u.35585
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_1
b : ι → Opens α
hb : IsBasis (range b)
hb' : ∀ (i : ι), IsCompact ↑(b i)
U : Set α
⊢ IsCompact U ∧ IsOpen U ↔ ∃ s, Set.Finite s ∧ U = ⋃ (i : ι) (_ : i ∈ s), ↑(b i)

tactic: convert (config := {transparency := .default}) hb
state_before: case hb
ι✝ : Type ?u.35576
α : Type u_2
β : Type ?u.35582
γ : Type ?u.35585
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_1
b : ι → Opens α
hb : IsBasis (range b)
hb' : ∀ (i : ι), IsCompact ↑(b i)
U : Set α
⊢ IsTopologicalBasis (range fun i => (b i).carrier)

tactic: ext
state_before: case h.e'_3
ι✝ : Type ?u.35576
α : Type u_2
β : Type ?u.35582
γ : Type ?u.35585
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_1
b : ι → Opens α
hb : IsBasis (range b)
hb' : ∀ (i : ι), IsCompact ↑(b i)
U : Set α
⊢ (range fun i => (b i).carrier) = SetLike.coe '' range b

tactic: simp
state_before: case h.e'_3.h
ι✝ : Type ?u.35576
α : Type u_2
β : Type ?u.35582
γ : Type ?u.35585
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_1
b : ι → Opens α
hb : IsBasis (range b)
hb' : ∀ (i : ι), IsCompact ↑(b i)
U x✝ : Set α
⊢ (x✝ ∈ range fun i => (b i).carrier) ↔ x✝ ∈ SetLike.coe '' range b

tactic: exact hb'
state_before: case hb'
ι✝ : Type ?u.35576
α : Type u_2
β : Type ?u.35582
γ : Type ?u.35585
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_1
b : ι → Opens α
hb : IsBasis (range b)
hb' : ∀ (i : ι), IsCompact ↑(b i)
U : Set α
⊢ ∀ (i : ι), IsCompact (b i).carrier
Theorem: IsLocalMinOn.fderivWithin_eq_zero
File: Mathlib/Analysis/Calculus/LocalExtr.lean

tactic: rw [fderivWithin_zero_of_not_differentiableWithinAt hf]
state_before: E : Type u
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : E → ℝ
a : E
f' : E →L[ℝ] ℝ
s : Set E
h : IsLocalMinOn f s a
y : E
hy : y ∈ posTangentConeAt s a
hy' : -y ∈ posTangentConeAt s a
hf : ¬DifferentiableWithinAt ℝ f s a
⊢ ↑(fderivWithin ℝ f s a) y = 0

tactic: rfl
state_before: E : Type u
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : E → ℝ
a : E
f' : E →L[ℝ] ℝ
s : Set E
h : IsLocalMinOn f s a
y : E
hy : y ∈ posTangentConeAt s a
hy' : -y ∈ posTangentConeAt s a
hf : ¬DifferentiableWithinAt ℝ f s a
⊢ ↑0 y = 0
Theorem: Subsemiring.mem_sSup_of_directedOn
File: Mathlib/RingTheory/Subsemiring/Basic.lean

tactic: haveI : Nonempty S := Sne.to_subtype
state_before: R : Type u
S✝ : Type v
T : Type w
inst✝² : NonAssocSemiring R
M : Submonoid R
inst✝¹ : NonAssocSemiring S✝
inst✝ : NonAssocSemiring T
S : Set (Subsemiring R)
Sne : Set.Nonempty S
hS : DirectedOn (fun x x_1 => x ≤ x_1) S
x : R
⊢ x ∈ sSup S ↔ ∃ s, s ∈ S ∧ x ∈ s

tactic: simp only [sSup_eq_iSup', mem_iSup_of_directed hS.directed_val, SetCoe.exists, Subtype.coe_mk,
  exists_prop]
state_before: R : Type u
S✝ : Type v
T : Type w
inst✝² : NonAssocSemiring R
M : Submonoid R
inst✝¹ : NonAssocSemiring S✝
inst✝ : NonAssocSemiring T
S : Set (Subsemiring R)
Sne : Set.Nonempty S
hS : DirectedOn (fun x x_1 => x ≤ x_1) S
x : R
this : Nonempty ↑S
⊢ x ∈ sSup S ↔ ∃ s, s ∈ S ∧ x ∈ s
Theorem: Cardinal.aleph0_le_aleph
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: rw [aleph, aleph0_le_aleph']
state_before: o : Ordinal
⊢ ℵ₀ ≤ aleph o

tactic: apply Ordinal.le_add_right
state_before: o : Ordinal
⊢ ω ≤ ω + o
Theorem: Nat.prod_divisorsAntidiagonal'
File: Mathlib/NumberTheory/Divisors.lean

tactic: rw [← map_swap_divisorsAntidiagonal, Finset.prod_map]
state_before: n✝ : ℕ
M : Type u_1
inst✝ : CommMonoid M
f : ℕ → ℕ → M
n : ℕ
⊢ ∏ i in divisorsAntidiagonal n, f i.fst i.snd = ∏ i in divisors n, f (n / i) i

tactic: exact prod_divisorsAntidiagonal fun i j => f j i
state_before: n✝ : ℕ
M : Type u_1
inst✝ : CommMonoid M
f : ℕ → ℕ → M
n : ℕ
⊢ ∏ x in divisorsAntidiagonal n,
      f (↑(Equiv.toEmbedding (Equiv.prodComm ℕ ℕ)) x).fst (↑(Equiv.toEmbedding (Equiv.prodComm ℕ ℕ)) x).snd =
    ∏ i in divisors n, f (n / i) i
Theorem: ContDiffBump.normed_neg
File: Mathlib/Analysis/Calculus/BumpFunctionInner.lean

tactic: simp_rw [f.normed_def, f.neg]
state_before: E : Type u_1
X : Type ?u.1158619
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : NormedAddCommGroup X
inst✝² : NormedSpace ℝ X
inst✝¹ : HasContDiffBump E
c : E
f✝ : ContDiffBump c
x✝ : E
n : ℕ∞
inst✝ : MeasurableSpace E
μ : MeasureTheory.Measure E
f : ContDiffBump 0
x : E
⊢ ContDiffBump.normed f μ (-x) = ContDiffBump.normed f μ x