tasksource/leandojo huggingface dataset:
Theorem: Asymptotics.isLittleO_const_const_iff
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: have : ¬Tendsto (Function.const α ‖c‖) l atTop :=
  not_tendsto_atTop_of_tendsto_nhds tendsto_const_nhds
state_before: α : Type u_1
β : Type ?u.611781
E : Type ?u.611784
F : Type ?u.611787
G : Type ?u.611790
E' : Type ?u.611793
F' : Type ?u.611796
G' : Type ?u.611799
E'' : Type u_2
F'' : Type u_3
G'' : Type ?u.611808
R : Type ?u.611811
R' : Type ?u.611814
𝕜 : Type ?u.611817
𝕜' : Type ?u.611820
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✝ : NeBot l
d : E''
c : F''
⊢ ((fun _x => d) =o[l] fun _x => c) ↔ d = 0

tactic: simp only [isLittleO_const_left, or_iff_left_iff_imp]
state_before: α : Type u_1
β : Type ?u.611781
E : Type ?u.611784
F : Type ?u.611787
G : Type ?u.611790
E' : Type ?u.611793
F' : Type ?u.611796
G' : Type ?u.611799
E'' : Type u_2
F'' : Type u_3
G'' : Type ?u.611808
R : Type ?u.611811
R' : Type ?u.611814
𝕜 : Type ?u.611817
𝕜' : Type ?u.611820
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✝ : NeBot l
d : E''
c : F''
this : ¬Tendsto (Function.const α ‖c‖) l atTop
⊢ ((fun _x => d) =o[l] fun _x => c) ↔ d = 0

tactic: exact fun h => (this h).elim
state_before: α : Type u_1
β : Type ?u.611781
E : Type ?u.611784
F : Type ?u.611787
G : Type ?u.611790
E' : Type ?u.611793
F' : Type ?u.611796
G' : Type ?u.611799
E'' : Type u_2
F'' : Type u_3
G'' : Type ?u.611808
R : Type ?u.611811
R' : Type ?u.611814
𝕜 : Type ?u.611817
𝕜' : Type ?u.611820
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✝ : NeBot l
d : E''
c : F''
this : ¬Tendsto (Function.const α ‖c‖) l atTop
⊢ Tendsto (norm ∘ fun _x => c) l atTop → d = 0
Theorem: CategoryTheory.MorphismProperty.RespectsIso.cancel_right_isIso
File: Mathlib/CategoryTheory/MorphismProperty.lean

tactic: simpa using hP.2 (asIso g).symm (f ≫ g) h
state_before: C : Type u
inst✝² : Category C
D : Type ?u.14744
inst✝¹ : Category D
P : MorphismProperty C
hP : RespectsIso P
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : IsIso g
h : P (f ≫ g)
⊢ P f
Theorem: padicValInt.one
File: Mathlib/NumberTheory/Padics/PadicVal.lean

tactic: simp [padicValInt]
state_before: p : ℕ
⊢ padicValInt p 1 = 0
Theorem: Int.max_le
File: Std/Data/Int/Lemmas.lean

tactic: rw [Int.max_def]
state_before: a b c : Int
x✝ : a ≤ c ∧ b ≤ c
h₁ : a ≤ c
h₂ : b ≤ c
⊢ max a b ≤ c

tactic: split <;> assumption
state_before: a b c : Int
x✝ : a ≤ c ∧ b ≤ c
h₁ : a ≤ c
h₂ : b ≤ c
⊢ (if a ≤ b then b else a) ≤ c
Theorem: hallMatchingsOn.nonempty
File: Mathlib/Combinatorics/Hall/Basic.lean

tactic: classical
  refine' ⟨Classical.indefiniteDescription _ _⟩
  apply (all_card_le_biUnion_card_iff_existsInjective' fun i : ι' => t i).mp
  intro s'
  convert h (s'.image (↑)) using 1
  simp only [card_image_of_injective s' Subtype.coe_injective]
  rw [image_biUnion]
state_before: ι : Type u
α : Type v
inst✝ : DecidableEq α
t : ι → Finset α
h : ∀ (s : Finset ι), card s ≤ card (Finset.biUnion s t)
ι' : Finset ι
⊢ Nonempty ↑(hallMatchingsOn t ι')

tactic: refine' ⟨Classical.indefiniteDescription _ _⟩
state_before: ι : Type u
α : Type v
inst✝ : DecidableEq α
t : ι → Finset α
h : ∀ (s : Finset ι), card s ≤ card (Finset.biUnion s t)
ι' : Finset ι
⊢ Nonempty ↑(hallMatchingsOn t ι')

tactic: apply (all_card_le_biUnion_card_iff_existsInjective' fun i : ι' => t i).mp
state_before: ι : Type u
α : Type v
inst✝ : DecidableEq α
t : ι → Finset α
h : ∀ (s : Finset ι), card s ≤ card (Finset.biUnion s t)
ι' : Finset ι
⊢ ∃ x, x ∈ hallMatchingsOn t ι'

tactic: intro s'
state_before: ι : Type u
α : Type v
inst✝ : DecidableEq α
t : ι → Finset α
h : ∀ (s : Finset ι), card s ≤ card (Finset.biUnion s t)
ι' : Finset ι
⊢ ∀ (s : Finset { x // x ∈ ι' }), card s ≤ card (Finset.biUnion s fun i => t ↑i)

tactic: convert h (s'.image (↑)) using 1
state_before: ι : Type u
α : Type v
inst✝ : DecidableEq α
t : ι → Finset α
h : ∀ (s : Finset ι), card s ≤ card (Finset.biUnion s t)
ι' : Finset ι
s' : Finset { x // x ∈ ι' }
⊢ card s' ≤ card (Finset.biUnion s' fun i => t ↑i)

tactic: simp only [card_image_of_injective s' Subtype.coe_injective]
state_before: case h.e'_3
ι : Type u
α : Type v
inst✝ : DecidableEq α
t : ι → Finset α
h : ∀ (s : Finset ι), card s ≤ card (Finset.biUnion s t)
ι' : Finset ι
s' : Finset { x // x ∈ ι' }
⊢ card s' = card (image Subtype.val s')

case h.e'_4
ι : Type u
α : Type v
inst✝ : DecidableEq α
t : ι → Finset α
h : ∀ (s : Finset ι), card s ≤ card (Finset.biUnion s t)
ι' : Finset ι
s' : Finset { x // x ∈ ι' }
⊢ card (Finset.biUnion s' fun i => t ↑i) = card (Finset.biUnion (image Subtype.val s') t)

tactic: rw [image_biUnion]
state_before: case h.e'_4
ι : Type u
α : Type v
inst✝ : DecidableEq α
t : ι → Finset α
h : ∀ (s : Finset ι), card s ≤ card (Finset.biUnion s t)
ι' : Finset ι
s' : Finset { x // x ∈ ι' }
⊢ card (Finset.biUnion s' fun i => t ↑i) = card (Finset.biUnion (image Subtype.val s') t)
Theorem: expChar_one_of_char_zero
File: Mathlib/Algebra/CharP/ExpChar.lean

tactic: cases' hq with q hq_one hq_prime hq_hchar
state_before: R : Type u
inst✝ : Semiring R
q : ℕ
hp : CharP R 0
hq : ExpChar R q
⊢ q = 1

tactic: rfl
state_before: case zero
R : Type u
inst✝ : Semiring R
hp : CharP R 0
q : CharZero R
⊢ 1 = 1

tactic: exact False.elim (lt_irrefl _ ((hp.eq R hq_hchar).symm ▸ hq_prime : (0 : ℕ).Prime).pos)
state_before: case prime
R : Type u
inst✝ : Semiring R
q : ℕ
hp : CharP R 0
hq_prime : Nat.Prime q
hq_hchar : CharP R q
⊢ q = 1
Theorem: Polynomial.rootMultiplicity_mul
File: Mathlib/Data/Polynomial/RingDivision.lean

tactic: have hp : p ≠ 0 := left_ne_zero_of_mul hpq
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p✝ q✝ p q : R[X]
x : R
hpq : p * q ≠ 0
⊢ rootMultiplicity x (p * q) = rootMultiplicity x p + rootMultiplicity x q

tactic: have hq : q ≠ 0 := right_ne_zero_of_mul hpq
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p✝ q✝ p q : R[X]
x : R
hpq : p * q ≠ 0
hp : p ≠ 0
⊢ rootMultiplicity x (p * q) = rootMultiplicity x p + rootMultiplicity x q

tactic: rw [rootMultiplicity_eq_multiplicity (p * q), dif_neg hpq, rootMultiplicity_eq_multiplicity p,
  dif_neg hp, rootMultiplicity_eq_multiplicity q, dif_neg hq,
  multiplicity.mul' (prime_X_sub_C x)]
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p✝ q✝ p q : R[X]
x : R
hpq : p * q ≠ 0
hp : p ≠ 0
hq : q ≠ 0
⊢ rootMultiplicity x (p * q) = rootMultiplicity x p + rootMultiplicity x q
Theorem: Finset.disjoint_range_addRightEmbedding
File: Mathlib/Data/Finset/Image.lean

tactic: refine' disjoint_iff_inf_le.mpr _
state_before: α : Type ?u.49249
β : Type ?u.49252
γ : Type ?u.49255
f : α ↪ β
s : Finset α
a b : ℕ
⊢ _root_.Disjoint (range a) (map (addRightEmbedding a) (range b))

tactic: intro k hk
state_before: α : Type ?u.49249
β : Type ?u.49252
γ : Type ?u.49255
f : α ↪ β
s : Finset α
a b : ℕ
⊢ range a ⊓ map (addRightEmbedding a) (range b) ≤ ⊥

tactic: simp only [exists_prop, mem_range, inf_eq_inter, mem_map, addRightEmbedding, mem_inter]
  at hk
state_before: α : Type ?u.49249
β : Type ?u.49252
γ : Type ?u.49255
f : α ↪ β
s : Finset α
a b k : ℕ
hk : k ∈ range a ⊓ map (addRightEmbedding a) (range b)
⊢ k ∈ ⊥

tactic: obtain ⟨a, _, ha⟩ := hk.2
state_before: α : Type ?u.49249
β : Type ?u.49252
γ : Type ?u.49255
f : α ↪ β
s : Finset α
a b k : ℕ
hk : k < a ∧ ∃ a_1, a_1 < b ∧ ↑{ toFun := fun h => h + a, inj' := (_ : Injective fun x => x + a) } a_1 = k
⊢ k ∈ ⊥

tactic: simpa [← ha] using hk.1
state_before: case intro.intro
α : Type ?u.49249
β : Type ?u.49252
γ : Type ?u.49255
f : α ↪ β
s : Finset α
a✝ b k : ℕ
hk : k < a✝ ∧ ∃ a, a < b ∧ ↑{ toFun := fun h => h + a✝, inj' := (_ : Injective fun x => x + a✝) } a = k
a : ℕ
left✝ : a < b
ha : ↑{ toFun := fun h => h + a✝, inj' := (_ : Injective fun x => x + a✝) } a = k
⊢ k ∈ ⊥
Theorem: Matrix.stdBasisMatrix_zero
File: Mathlib/Data/Matrix/Basis.lean

tactic: unfold stdBasisMatrix
state_before: l : Type ?u.3365
m : Type u_1
n : Type u_2
R : Type ?u.3374
α : Type u_3
inst✝³ : DecidableEq l
inst✝² : DecidableEq m
inst✝¹ : DecidableEq n
inst✝ : Semiring α
i : m
j : n
⊢ stdBasisMatrix i j 0 = 0

tactic: ext
state_before: l : Type ?u.3365
m : Type u_1
n : Type u_2
R : Type ?u.3374
α : Type u_3
inst✝³ : DecidableEq l
inst✝² : DecidableEq m
inst✝¹ : DecidableEq n
inst✝ : Semiring α
i : m
j : n
⊢ (fun i' j' => if i = i' ∧ j = j' then 0 else 0) = 0

tactic: simp
state_before: case a.h
l : Type ?u.3365
m : Type u_1
n : Type u_2
R : Type ?u.3374
α : Type u_3
inst✝³ : DecidableEq l
inst✝² : DecidableEq m
inst✝¹ : DecidableEq n
inst✝ : Semiring α
i : m
j : n
i✝ : m
x✝ : n
⊢ (if i = i✝ ∧ j = x✝ then 0 else 0) = OfNat.ofNat 0 i✝ x✝
Theorem: FiniteDimensional.finite_of_finite
File: Mathlib/LinearAlgebra/FiniteDimensional.lean

tactic: cases nonempty_fintype K
state_before: K : Type u
V : Type v
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
V₂ : Type v'
inst✝³ : AddCommGroup V₂
inst✝² : Module K V₂
inst✝¹ : _root_.Finite K
inst✝ : FiniteDimensional K V
⊢ _root_.Finite V

tactic: haveI := fintypeOfFintype K V
state_before: case intro
K : Type u
V : Type v
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
V₂ : Type v'
inst✝³ : AddCommGroup V₂
inst✝² : Module K V₂
inst✝¹ : _root_.Finite K
inst✝ : FiniteDimensional K V
val✝ : Fintype K
⊢ _root_.Finite V

tactic: infer_instance
state_before: case intro
K : Type u
V : Type v
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
V₂ : Type v'
inst✝³ : AddCommGroup V₂
inst✝² : Module K V₂
inst✝¹ : _root_.Finite K
inst✝ : FiniteDimensional K V
val✝ : Fintype K
this : Fintype V
⊢ _root_.Finite V
Theorem: FreeGroup.mk_toWord
File: Mathlib/GroupTheory/FreeGroup.lean

tactic: rintro ⟨L⟩
state_before: α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
inst✝ : DecidableEq α
⊢ ∀ {x : FreeGroup α}, mk (toWord x) = x

tactic: exact reduce.self
state_before: case mk
α : Type u
L✝ L₁ L₂ L₃ L₄ : List (α × Bool)
inst✝ : DecidableEq α
x✝ : FreeGroup α
L : List (α × Bool)
⊢ mk (toWord (Quot.mk Red.Step L)) = Quot.mk Red.Step L
Theorem: Filter.Realizer.mem_sets
File: Mathlib/Data/Analysis/Filter.lean

tactic: cases F
state_before: α : Type u_1
β : Type ?u.7565
σ : Type ?u.7568
τ : Type ?u.7571
f : Filter α
F : Realizer f
a : Set α
⊢ a ∈ f ↔ ∃ b, CFilter.f F.F b ⊆ a

tactic: subst f
state_before: case mk
α : Type u_1
β : Type ?u.7565
σ : Type ?u.7568
τ : Type ?u.7571
f : Filter α
a : Set α
σ✝ : Type u_2
F✝ : CFilter (Set α) σ✝
eq✝ : CFilter.toFilter F✝ = f
⊢ a ∈ f ↔ ∃ b, CFilter.f { σ := σ✝, F := F✝, eq := eq✝ }.F b ⊆ a

tactic: rfl
state_before: case mk
α : Type u_1
β : Type ?u.7565
σ : Type ?u.7568
τ : Type ?u.7571
a : Set α
σ✝ : Type u_2
F✝ : CFilter (Set α) σ✝
⊢ a ∈ CFilter.toFilter F✝ ↔
    ∃ b, CFilter.f { σ := σ✝, F := F✝, eq := (_ : CFilter.toFilter F✝ = CFilter.toFilter F✝) }.F b ⊆ a
Theorem: MeasureTheory.SimpleFunc.range_indicator
File: Mathlib/MeasureTheory/Function/SimpleFunc.lean

tactic: simp only [← Finset.coe_inj, coe_range, coe_piecewise, range_piecewise, coe_const,
  Finset.coe_insert, Finset.coe_singleton, hs_nonempty.image_const,
  (nonempty_compl.2 hs_ne_univ).image_const, singleton_union, Function.const]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.45713
δ : Type ?u.45716
inst✝ : MeasurableSpace α
s : Set α
hs : MeasurableSet s
hs_nonempty : Set.Nonempty s
hs_ne_univ : s ≠ univ
x y : β
⊢ SimpleFunc.range (piecewise s hs (const α x) (const α y)) = {x, y}
Theorem: AddSubmonoid.fg_iff_mul_fg
File: Mathlib/GroupTheory/Finiteness.lean

tactic: convert (Submonoid.fg_iff_add_fg (toSubmonoid P)).symm
state_before: M : Type ?u.4530
N : Type u_1
inst✝¹ : Monoid M
inst✝ : AddMonoid N
P : AddSubmonoid N
⊢ FG P ↔ Submonoid.FG (↑toSubmonoid P)
Theorem: Ideal.IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count
File: Mathlib/NumberTheory/RamificationInertia.lean

tactic: have hPirr := (Ideal.prime_of_isPrime hP0 hP).irreducible
state_before: R : Type u
inst✝³ : CommRing R
S : Type v
inst✝² : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
inst✝¹ : IsDomain S
inst✝ : IsDedekindDomain S
hp0 : map f p ≠ ⊥
hP : IsPrime P
hP0 : P ≠ ⊥
⊢ ramificationIdx f p P = Multiset.count P (normalizedFactors (map f p))

tactic: refine ramificationIdx_spec (Ideal.le_of_dvd ?_) (mt Ideal.dvd_iff_le.mpr ?_) <;>
  rw [dvd_iff_normalizedFactors_le_normalizedFactors (pow_ne_zero _ hP0) hp0,
    normalizedFactors_pow, normalizedFactors_irreducible hPirr, normalize_eq,
    Multiset.nsmul_singleton, ← Multiset.le_count_iff_replicate_le]
state_before: R : Type u
inst✝³ : CommRing R
S : Type v
inst✝² : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
inst✝¹ : IsDomain S
inst✝ : IsDedekindDomain S
hp0 : map f p ≠ ⊥
hP : IsPrime P
hP0 : P ≠ ⊥
hPirr : Irreducible P
⊢ ramificationIdx f p P = Multiset.count P (normalizedFactors (map f p))

tactic: exact (Nat.lt_succ_self _).not_le
state_before: case refine_2
R : Type u
inst✝³ : CommRing R
S : Type v
inst✝² : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
inst✝¹ : IsDomain S
inst✝ : IsDedekindDomain S
hp0 : map f p ≠ ⊥
hP : IsPrime P
hP0 : P ≠ ⊥
hPirr : Irreducible P
⊢ ¬Multiset.count P (normalizedFactors (map f p)) + 1 ≤ Multiset.count P (normalizedFactors (map f p))
Theorem: real_inner_self_eq_norm_mul_norm
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: have h := @inner_self_eq_norm_mul_norm ℝ F _ _ _ x
state_before: 𝕜 : Type ?u.2329716
E : Type ?u.2329719
F : Type u_1
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
dec_E : DecidableEq E
x : F
⊢ inner x x = ‖x‖ * ‖x‖

tactic: simpa using h
state_before: 𝕜 : Type ?u.2329716
E : Type ?u.2329719
F : Type u_1
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
dec_E : DecidableEq E
x : F
h : ↑re (inner x x) = ‖x‖ * ‖x‖
⊢ inner x x = ‖x‖ * ‖x‖
Theorem: fderivWithin_inter
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

tactic: simp only [fderivWithin, hasFDerivWithinAt_inter ht]
state_before: 𝕜 : Type u_3
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_2
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.338780
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.338875
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
ht : t ∈ 𝓝 x
⊢ fderivWithin 𝕜 f (s ∩ t) x = fderivWithin 𝕜 f s x
Theorem: List.getLast?_cons
File: Std/Data/List/Lemmas.lean

tactic: simp [getLast?, getLast_eq_getLastD]
state_before: α : Type u_1
a : α
l : List α
⊢ getLast? (a :: l) = some (getLastD l a)
Theorem: lowerSemicontinuousAt_tsum
File: Mathlib/Topology/Semicontinuous.lean

tactic: simp_rw [← lowerSemicontinuousWithinAt_univ_iff] at *
state_before: α : Type u_1
inst✝¹ : TopologicalSpace α
β : Type ?u.133405
inst✝ : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Type u_2
f : ι → α → ℝ≥0∞
h : ∀ (i : ι), LowerSemicontinuousAt (f i) x
⊢ LowerSemicontinuousAt (fun x' => ∑' (i : ι), f i x') x

tactic: exact lowerSemicontinuousWithinAt_tsum h
state_before: α : Type u_1
inst✝¹ : TopologicalSpace α
β : Type ?u.133405
inst✝ : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Type u_2
f : ι → α → ℝ≥0∞
h : ∀ (i : ι), LowerSemicontinuousWithinAt (f i) univ x
⊢ LowerSemicontinuousWithinAt (fun x' => ∑' (i : ι), f i x') univ x
Theorem: Matrix.diagonal_eq_diagonal_iff
File: Mathlib/Data/Matrix/Basic.lean

tactic: simpa using congr_arg (fun m : Matrix n n α => m i i) h
state_before: l : Type ?u.46682
m : Type ?u.46685
n : Type u_1
o : Type ?u.46691
m' : o → Type ?u.46696
n' : o → Type ?u.46701
R : Type ?u.46704
S : Type ?u.46707
α : Type v
β : Type w
γ : Type ?u.46714
inst✝¹ : DecidableEq n
inst✝ : Zero α
d₁ d₂ : n → α
h : diagonal d₁ = diagonal d₂
i : n
⊢ d₁ i = d₂ i

tactic: rw [show d₁ = d₂ from funext h]
state_before: l : Type ?u.46682
m : Type ?u.46685
n : Type u_1
o : Type ?u.46691
m' : o → Type ?u.46696
n' : o → Type ?u.46701
R : Type ?u.46704
S : Type ?u.46707
α : Type v
β : Type w
γ : Type ?u.46714
inst✝¹ : DecidableEq n
inst✝ : Zero α
d₁ d₂ : n → α
h : ∀ (i : n), d₁ i = d₂ i
⊢ diagonal d₁ = diagonal d₂
Theorem: Subfield.coe_sInf
File: Mathlib/FieldTheory/Subfield.lean

tactic: ext x
state_before: K : Type u
L : Type v
M : Type w
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Field M
S : Set (Subfield K)
⊢ ↑(sInf (toSubring '' S)) = ⋂ (s : Subfield K) (_ : s ∈ S), ↑s

tactic: rw [Subring.coe_sInf, Set.mem_iInter, Set.mem_iInter]
state_before: case h
K : Type u
L : Type v
M : Type w
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Field M
S : Set (Subfield K)
x : K
⊢ x ∈ ↑(sInf (toSubring '' S)) ↔ x ∈ ⋂ (s : Subfield K) (_ : s ∈ S), ↑s

tactic: exact
  ⟨fun h s s' ⟨s_mem, s'_eq⟩ => h s.toSubring _ ⟨⟨s, s_mem, rfl⟩, s'_eq⟩,
    fun h s s' ⟨⟨s'', s''_mem, s_eq⟩, (s'_eq : ↑s = s')⟩ =>
    h s'' _ ⟨s''_mem, by simp [← s_eq, ← s'_eq]⟩⟩
state_before: case h
K : Type u
L : Type v
M : Type w
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Field M
S : Set (Subfield K)
x : K
⊢ (∀ (i : Subring K), x ∈ ⋂ (_ : i ∈ toSubring '' S), ↑i) ↔ ∀ (i : Subfield K), x ∈ ⋂ (_ : i ∈ S), ↑i

tactic: simp [← s_eq, ← s'_eq]
state_before: K : Type u
L : Type v
M : Type w
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Field M
S : Set (Subfield K)
x : K
h : ∀ (i : Subfield K), x ∈ ⋂ (_ : i ∈ S), ↑i
s : Subring K
s' : Set K
x✝ : s' ∈ Set.range fun h => ↑s
s'' : Subfield K
s''_mem : s'' ∈ S
s_eq : s''.toSubring = s
s'_eq : ↑s = s'
⊢ (fun h => ↑s'') s''_mem = s'
Theorem: Asymptotics.IsBigO.of_bound'
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp_rw [one_mul]
state_before: α : Type u_1
β : Type ?u.13618
E : Type u_2
F : Type u_3
G : Type ?u.13627
E' : Type ?u.13630
F' : Type ?u.13633
G' : Type ?u.13636
E'' : Type ?u.13639
F'' : Type ?u.13642
G'' : Type ?u.13645
R : Type ?u.13648
R' : Type ?u.13651
𝕜 : Type ?u.13654
𝕜' : Type ?u.13657
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 α
h : ∀ᶠ (x : α) in l, ‖f x‖ ≤ ‖g x‖
⊢ ∀ᶠ (x : α) in l, ‖f x‖ ≤ 1 * ‖g x‖

tactic: exact h
state_before: α : Type u_1
β : Type ?u.13618
E : Type u_2
F : Type u_3
G : Type ?u.13627
E' : Type ?u.13630
F' : Type ?u.13633
G' : Type ?u.13636
E'' : Type ?u.13639
F'' : Type ?u.13642
G'' : Type ?u.13645
R : Type ?u.13648
R' : Type ?u.13651
𝕜 : Type ?u.13654
𝕜' : Type ?u.13657
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 α
h : ∀ᶠ (x : α) in l, ‖f x‖ ≤ ‖g x‖
⊢ ∀ᶠ (x : α) in l, ‖f x‖ ≤ ‖g x‖
Theorem: Multiset.powerset_cons
File: Mathlib/Data/Multiset/Powerset.lean

tactic: simp
state_before: α : Type u_1
a : α
s : Multiset α
l : List α
⊢ powerset (a ::ₘ Quotient.mk (isSetoid α) l) =
    powerset (Quotient.mk (isSetoid α) l) + map (cons a) (powerset (Quotient.mk (isSetoid α) l))

tactic: rfl
state_before: α : Type u_1
a : α
s : Multiset α
l : List α
⊢ List.map ofList (sublists' l) ++ List.map (ofList ∘ List.cons a) (sublists' l) ~
    List.map ofList (sublists' l) ++ List.map ((fun x => a ::ₘ x) ∘ ofList) (sublists' l)
Theorem: LinearMap.toSeminorm_ball_zero
File: Mathlib/Analysis/LocallyConvex/WeakDual.lean

tactic: simp only [Seminorm.ball_zero_eq, toSeminorm_apply]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.11309
ι : Type ?u.11312
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
f : E →ₗ[𝕜] 𝕜
r : ℝ
⊢ Seminorm.ball (toSeminorm f) 0 r = {x | ‖↑f x‖ < r}
Theorem: Ordnode.length_toList
File: Mathlib/Data/Ordmap/Ordset.lean

tactic: rw [length_toList', size_eq_realSize h]
state_before: α : Type u_1
t : Ordnode α
h : Sized t
⊢ List.length (toList t) = size t
Theorem: Filter.prod_def
File: Mathlib/Order/Filter/Lift.lean

tactic: simpa only [Filter.lift', Filter.lift, (f.basis_sets.prod g.basis_sets).eq_biInf,
  iInf_prod, iInf_and] using iInf_congr fun i => iInf_comm
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.45737
ι : Sort ?u.45740
f✝ f : Filter α
g : Filter β
⊢ f ×ˢ g = Filter.lift f fun s => Filter.lift' g fun t => s ×ˢ t
Theorem: SimplicialObject.Splitting.ιSummand_comp_PInfty_eq_zero
File: Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean

tactic: rw [SimplicialObject.Splitting.IndexSet.eqId_iff_mono] at hA
state_before: C : Type u_2
inst✝² : Category C
inst✝¹ : HasFiniteCoproducts C
X✝ : SimplicialObject C
s✝ : Splitting X✝
inst✝ : Preadditive C
X : SimplicialObject C
s : Splitting X
n : ℕ
A : IndexSet [n].op
hA : ¬IndexSet.EqId A
⊢ ιSummand s A ≫ HomologicalComplex.Hom.f PInfty n = 0

tactic: rw [SimplicialObject.Splitting.ιSummand_eq, assoc, degeneracy_comp_PInfty X n A.e hA, comp_zero]
state_before: C : Type u_2
inst✝² : Category C
inst✝¹ : HasFiniteCoproducts C
X✝ : SimplicialObject C
s✝ : Splitting X✝
inst✝ : Preadditive C
X : SimplicialObject C
s : Splitting X
n : ℕ
A : IndexSet [n].op
hA : ¬Mono (IndexSet.e A)
⊢ ιSummand s A ≫ HomologicalComplex.Hom.f PInfty n = 0
Theorem: Set.subset_ite
File: Mathlib/Data/Set/Basic.lean

tactic: simp only [subset_def, ← forall_and]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t✝ t₁ t₂ u✝ t s s' u : Set α
⊢ u ⊆ Set.ite t s s' ↔ u ∩ t ⊆ s ∧ u \ t ⊆ s'

tactic: refine' forall_congr' fun x => _
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t✝ t₁ t₂ u✝ t s s' u : Set α
⊢ (∀ (x : α), x ∈ u → x ∈ Set.ite t s s') ↔ ∀ (x : α), (x ∈ u ∩ t → x ∈ s) ∧ (x ∈ u \ t → x ∈ s')

tactic: by_cases hx : x ∈ t <;> simp [*, Set.ite]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t✝ t₁ t₂ u✝ t s s' u : Set α
x : α
⊢ x ∈ u → x ∈ Set.ite t s s' ↔ (x ∈ u ∩ t → x ∈ s) ∧ (x ∈ u \ t → x ∈ s')