tasksource/leandojo huggingface dataset:
Theorem: Dfinsupp.card_pi
File: Mathlib/Data/Dfinsupp/Interval.lean

tactic: rw [pi, card_dfinsupp]
state_before: ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Zero (α i)
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → DecidableEq (α i)
f : Π₀ (i : ι), Finset (α i)
⊢ card (pi f) = prod f fun i => ↑(card (↑f i))

tactic: exact Finset.prod_congr rfl fun i _ => by simp only [Pi.nat_apply, Nat.cast_id]
state_before: ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Zero (α i)
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → DecidableEq (α i)
f : Π₀ (i : ι), Finset (α i)
⊢ ∏ i in support f, card (↑f i) = prod f fun i => ↑(card (↑f i))

tactic: simp only [Pi.nat_apply, Nat.cast_id]
state_before: ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Zero (α i)
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → DecidableEq (α i)
f : Π₀ (i : ι), Finset (α i)
i : ι
x✝ : i ∈ support f
⊢ card (↑f i) = (fun i => ↑(card (↑f i))) i (↑f i)
Theorem: not_specializes_iff_exists_open
File: Mathlib/Topology/Inseparable.lean

tactic: rw [specializes_iff_forall_open]
state_before: X : Type u_1
Y : Type ?u.16860
Z : Type ?u.16863
α : Type ?u.16866
ι : Type ?u.16869
π : ι → Type ?u.16874
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f : X → Y
⊢ ¬x ⤳ y ↔ ∃ S, IsOpen S ∧ y ∈ S ∧ ¬x ∈ S

tactic: push_neg
state_before: X : Type u_1
Y : Type ?u.16860
Z : Type ?u.16863
α : Type ?u.16866
ι : Type ?u.16869
π : ι → Type ?u.16874
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f : X → Y
⊢ (¬∀ (s : Set X), IsOpen s → y ∈ s → x ∈ s) ↔ ∃ S, IsOpen S ∧ y ∈ S ∧ ¬x ∈ S

tactic: rfl
state_before: X : Type u_1
Y : Type ?u.16860
Z : Type ?u.16863
α : Type ?u.16866
ι : Type ?u.16869
π : ι → Type ?u.16874
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f : X → Y
⊢ (∃ s, IsOpen s ∧ y ∈ s ∧ ¬x ∈ s) ↔ ∃ S, IsOpen S ∧ y ∈ S ∧ ¬x ∈ S
Theorem: locallyConnectedSpace_iff_connected_basis
File: Mathlib/Topology/Connected.lean

tactic: rw [locallyConnectedSpace_iff_connected_subsets]
state_before: α : Type u
β : Type v
ι : Type ?u.116595
π : ι → Type ?u.116600
inst✝ : TopologicalSpace α
s t u v : Set α
⊢ LocallyConnectedSpace α ↔ ∀ (x : α), Filter.HasBasis (𝓝 x) (fun s => s ∈ 𝓝 x ∧ IsPreconnected s) id

tactic: exact forall_congr' <| fun x => Filter.hasBasis_self.symm
state_before: α : Type u
β : Type v
ι : Type ?u.116595
π : ι → Type ?u.116600
inst✝ : TopologicalSpace α
s t u v : Set α
⊢ (∀ (x : α) (U : Set α), U ∈ 𝓝 x → ∃ V, V ∈ 𝓝 x ∧ IsPreconnected V ∧ V ⊆ U) ↔
    ∀ (x : α), Filter.HasBasis (𝓝 x) (fun s => s ∈ 𝓝 x ∧ IsPreconnected s) id
Theorem: PosNum.lt_to_nat
File: Mathlib/Data/Num/Lemmas.lean

tactic: simp at h
state_before: α : Type ?u.160166
m n : PosNum
h : Ordering.casesOn Ordering.lt (↑m < ↑n) (m = n) (↑n < ↑m)
⊢ ↑m < ↑n ↔ Ordering.lt = Ordering.lt

tactic: simp [h]
state_before: α : Type ?u.160166
m n : PosNum
h : ↑m < ↑n
⊢ ↑m < ↑n ↔ Ordering.lt = Ordering.lt

tactic: simp at h
state_before: α : Type ?u.160166
m n : PosNum
h : Ordering.casesOn Ordering.eq (↑m < ↑n) (m = n) (↑n < ↑m)
⊢ ↑m < ↑n ↔ Ordering.eq = Ordering.lt

tactic: simp [h, lt_irrefl]
state_before: α : Type ?u.160166
m n : PosNum
h : m = n
⊢ ↑m < ↑n ↔ Ordering.eq = Ordering.lt

tactic: simp [not_lt_of_gt h]
state_before: α : Type ?u.160166
m n : PosNum
h : Ordering.casesOn Ordering.gt (↑m < ↑n) (m = n) (↑n < ↑m)
⊢ ↑m < ↑n ↔ Ordering.gt = Ordering.lt
Theorem: Nat.ArithmeticFunction.isMultiplicative_one
File: Mathlib/NumberTheory/ArithmeticFunction.lean

tactic: simp
state_before: R : Type u_1
inst✝ : MonoidWithZero R
⊢ ↑1 1 = 1

tactic: intro m n hm _hn hmn
state_before: R : Type u_1
inst✝ : MonoidWithZero R
⊢ ∀ {m n : ℕ}, m ≠ 0 → n ≠ 0 → coprime m n → ↑1 (m * n) = ↑1 m * ↑1 n

tactic: rcases eq_or_ne m 1 with (rfl | hm')
state_before: R : Type u_1
inst✝ : MonoidWithZero R
m n : ℕ
hm : m ≠ 0
_hn : n ≠ 0
hmn : coprime m n
⊢ ↑1 (m * n) = ↑1 m * ↑1 n

tactic: rw [one_apply_ne, one_apply_ne hm', MulZeroClass.zero_mul]
state_before: case inr
R : Type u_1
inst✝ : MonoidWithZero R
m n : ℕ
hm : m ≠ 0
_hn : n ≠ 0
hmn : coprime m n
hm' : m ≠ 1
⊢ ↑1 (m * n) = ↑1 m * ↑1 n

tactic: rw [Ne.def, mul_eq_one, not_and_or]
state_before: case inr
R : Type u_1
inst✝ : MonoidWithZero R
m n : ℕ
hm : m ≠ 0
_hn : n ≠ 0
hmn : coprime m n
hm' : m ≠ 1
⊢ m * n ≠ 1

tactic: exact Or.inl hm'
state_before: case inr
R : Type u_1
inst✝ : MonoidWithZero R
m n : ℕ
hm : m ≠ 0
_hn : n ≠ 0
hmn : coprime m n
hm' : m ≠ 1
⊢ ¬m = 1 ∨ ¬n = 1

tactic: simp
state_before: case inl
R : Type u_1
inst✝ : MonoidWithZero R
n : ℕ
_hn : n ≠ 0
hm : 1 ≠ 0
hmn : coprime 1 n
⊢ ↑1 (1 * n) = ↑1 1 * ↑1 n
Theorem: Cubic.disc_eq_prod_three_roots
File: Mathlib/Algebra/CubicDiscriminant.lean

tactic: simp only [disc, RingHom.map_add, RingHom.map_sub, RingHom.map_mul, map_pow]
state_before: R : Type ?u.1160753
S : Type ?u.1160756
F : Type u_1
K : Type u_2
P : Cubic F
inst✝¹ : Field F
inst✝ : Field K
φ : F →+* K
x y z : K
ha : P.a ≠ 0
h3 : roots (map φ P) = {x, y, z}
⊢ ↑φ (disc P) = (↑φ P.a * ↑φ P.a * (x - y) * (x - z) * (y - z)) ^ 2

tactic: have f4 : φ 4 = 4 := map_natCast φ 4
state_before: R : Type ?u.1160753
S : Type ?u.1160756
F : Type u_1
K : Type u_2
P : Cubic F
inst✝¹ : Field F
inst✝ : Field K
φ : F →+* K
x y z : K
ha : P.a ≠ 0
h3 : roots (map φ P) = {x, y, z}
⊢ ↑φ P.b ^ 2 * ↑φ P.c ^ 2 - ↑φ 4 * ↑φ P.a * ↑φ P.c ^ 3 - ↑φ 4 * ↑φ P.b ^ 3 * ↑φ P.d - ↑φ 27 * ↑φ P.a ^ 2 * ↑φ P.d ^ 2 +
      ↑φ 18 * ↑φ P.a * ↑φ P.b * ↑φ P.c * ↑φ P.d =
    (↑φ P.a * ↑φ P.a * (x - y) * (x - z) * (y - z)) ^ 2

tactic: have f18 : φ 18 = 18 := map_natCast φ 18
state_before: R : Type ?u.1160753
S : Type ?u.1160756
F : Type u_1
K : Type u_2
P : Cubic F
inst✝¹ : Field F
inst✝ : Field K
φ : F →+* K
x y z : K
ha : P.a ≠ 0
h3 : roots (map φ P) = {x, y, z}
f4 : ↑φ 4 = 4
⊢ ↑φ P.b ^ 2 * ↑φ P.c ^ 2 - ↑φ 4 * ↑φ P.a * ↑φ P.c ^ 3 - ↑φ 4 * ↑φ P.b ^ 3 * ↑φ P.d - ↑φ 27 * ↑φ P.a ^ 2 * ↑φ P.d ^ 2 +
      ↑φ 18 * ↑φ P.a * ↑φ P.b * ↑φ P.c * ↑φ P.d =
    (↑φ P.a * ↑φ P.a * (x - y) * (x - z) * (y - z)) ^ 2

tactic: have f27 : φ 27 = 27 := map_natCast φ 27
state_before: R : Type ?u.1160753
S : Type ?u.1160756
F : Type u_1
K : Type u_2
P : Cubic F
inst✝¹ : Field F
inst✝ : Field K
φ : F →+* K
x y z : K
ha : P.a ≠ 0
h3 : roots (map φ P) = {x, y, z}
f4 : ↑φ 4 = 4
f18 : ↑φ 18 = 18
⊢ ↑φ P.b ^ 2 * ↑φ P.c ^ 2 - ↑φ 4 * ↑φ P.a * ↑φ P.c ^ 3 - ↑φ 4 * ↑φ P.b ^ 3 * ↑φ P.d - ↑φ 27 * ↑φ P.a ^ 2 * ↑φ P.d ^ 2 +
      ↑φ 18 * ↑φ P.a * ↑φ P.b * ↑φ P.c * ↑φ P.d =
    (↑φ P.a * ↑φ P.a * (x - y) * (x - z) * (y - z)) ^ 2

tactic: rw [f4, f18, f27, b_eq_three_roots ha h3, c_eq_three_roots ha h3, d_eq_three_roots ha h3]
state_before: R : Type ?u.1160753
S : Type ?u.1160756
F : Type u_1
K : Type u_2
P : Cubic F
inst✝¹ : Field F
inst✝ : Field K
φ : F →+* K
x y z : K
ha : P.a ≠ 0
h3 : roots (map φ P) = {x, y, z}
f4 : ↑φ 4 = 4
f18 : ↑φ 18 = 18
f27 : ↑φ 27 = 27
⊢ ↑φ P.b ^ 2 * ↑φ P.c ^ 2 - ↑φ 4 * ↑φ P.a * ↑φ P.c ^ 3 - ↑φ 4 * ↑φ P.b ^ 3 * ↑φ P.d - ↑φ 27 * ↑φ P.a ^ 2 * ↑φ P.d ^ 2 +
      ↑φ 18 * ↑φ P.a * ↑φ P.b * ↑φ P.c * ↑φ P.d =
    (↑φ P.a * ↑φ P.a * (x - y) * (x - z) * (y - z)) ^ 2

tactic: ring1
state_before: R : Type ?u.1160753
S : Type ?u.1160756
F : Type u_1
K : Type u_2
P : Cubic F
inst✝¹ : Field F
inst✝ : Field K
φ : F →+* K
x y z : K
ha : P.a ≠ 0
h3 : roots (map φ P) = {x, y, z}
f4 : ↑φ 4 = 4
f18 : ↑φ 18 = 18
f27 : ↑φ 27 = 27
⊢ (↑φ P.a * -(x + y + z)) ^ 2 * (↑φ P.a * (x * y + x * z + y * z)) ^ 2 -
            4 * ↑φ P.a * (↑φ P.a * (x * y + x * z + y * z)) ^ 3 -
          4 * (↑φ P.a * -(x + y + z)) ^ 3 * (↑φ P.a * -(x * y * z)) -
        27 * ↑φ P.a ^ 2 * (↑φ P.a * -(x * y * z)) ^ 2 +
      18 * ↑φ P.a * (↑φ P.a * -(x + y + z)) * (↑φ P.a * (x * y + x * z + y * z)) * (↑φ P.a * -(x * y * z)) =
    (↑φ P.a * ↑φ P.a * (x - y) * (x - z) * (y - z)) ^ 2
Theorem: ContractingWith.tendsto_iterate_fixedPoint
File: Mathlib/Topology/MetricSpace/Contracting.lean

tactic: convert tendsto_iterate_efixedPoint hf (edist_ne_top x _)
state_before: α : Type u_1
inst✝² : MetricSpace α
K : ℝ≥0
f : α → α
hf : ContractingWith K f
inst✝¹ : Nonempty α
inst✝ : CompleteSpace α
x : α
⊢ Tendsto (fun n => (f^[n]) x) atTop (𝓝 (fixedPoint f hf))

tactic: refine' (fixedPoint_unique _ _).symm
state_before: case h.e'_5.h.e'_3
α : Type u_1
inst✝² : MetricSpace α
K : ℝ≥0
f : α → α
hf : ContractingWith K f
inst✝¹ : Nonempty α
inst✝ : CompleteSpace α
x : α
⊢ fixedPoint f hf = efixedPoint f hf x (_ : edist x (f x) ≠ ⊤)

tactic: apply efixedPoint_isFixedPt
state_before: case h.e'_5.h.e'_3
α : Type u_1
inst✝² : MetricSpace α
K : ℝ≥0
f : α → α
hf : ContractingWith K f
inst✝¹ : Nonempty α
inst✝ : CompleteSpace α
x : α
⊢ IsFixedPt f (efixedPoint f hf x (_ : edist x (f x) ≠ ⊤))
Theorem: List.eq_of_mem_map_const
File: Mathlib/Data/List/Basic.lean

tactic: rw [map_const] at h
state_before: ι : Type ?u.144145
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
b₁ b₂ : β
l : List α
h : b₁ ∈ map (const α b₂) l
⊢ b₁ = b₂

tactic: exact eq_of_mem_replicate h
state_before: ι : Type ?u.144145
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
b₁ b₂ : β
l : List α
h : b₁ ∈ replicate (length l) b₂
⊢ b₁ = b₂
Theorem: IsExtreme.trans
File: Mathlib/Analysis/Convex/Extreme.lean

tactic: refine' ⟨Subset.trans hBC.1 hAB.1, fun x₁ hx₁A x₂ hx₂A x hxC hx ↦ _⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.1093
ι : Type ?u.1096
π : ι → Type ?u.1101
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : SMul 𝕜 E
A B C : Set E
x : E
hAB : IsExtreme 𝕜 A B
hBC : IsExtreme 𝕜 B C
⊢ IsExtreme 𝕜 A C

tactic: obtain ⟨hx₁B, hx₂B⟩ := hAB.2 hx₁A hx₂A (hBC.1 hxC) hx
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.1093
ι : Type ?u.1096
π : ι → Type ?u.1101
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : SMul 𝕜 E
A B C : Set E
x✝ : E
hAB : IsExtreme 𝕜 A B
hBC : IsExtreme 𝕜 B C
x₁ : E
hx₁A : x₁ ∈ A
x₂ : E
hx₂A : x₂ ∈ A
x : E
hxC : x ∈ C
hx : x ∈ openSegment 𝕜 x₁ x₂
⊢ x₁ ∈ C ∧ x₂ ∈ C

tactic: exact hBC.2 hx₁B hx₂B hxC hx
state_before: case intro
𝕜 : Type u_1
E : Type u_2
F : Type ?u.1093
ι : Type ?u.1096
π : ι → Type ?u.1101
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : SMul 𝕜 E
A B C : Set E
x✝ : E
hAB : IsExtreme 𝕜 A B
hBC : IsExtreme 𝕜 B C
x₁ : E
hx₁A : x₁ ∈ A
x₂ : E
hx₂A : x₂ ∈ A
x : E
hxC : x ∈ C
hx : x ∈ openSegment 𝕜 x₁ x₂
hx₁B : x₁ ∈ B
hx₂B : x₂ ∈ B
⊢ x₁ ∈ C ∧ x₂ ∈ C
Theorem: iSup_eq_iSup_finset
File: Mathlib/Data/Finset/Lattice.lean

tactic: classical
  refine le_antisymm ?_ ?_
  exact iSup_le fun b => le_iSup_of_le {b} <| le_iSup_of_le b <| le_iSup_of_le (by simp) <| le_rfl
  exact iSup_le fun t => iSup_le fun b => iSup_le fun _ => le_iSup _ _
state_before: F : Type ?u.418480
α : Type u_1
β : Type ?u.418486
γ : Type ?u.418489
ι : Type u_2
κ : Type ?u.418495
ι' : Sort ?u.418498
inst✝ : CompleteLattice α
s : ι → α
⊢ (⨆ (i : ι), s i) = ⨆ (t : Finset ι) (i : ι) (_ : i ∈ t), s i

tactic: refine le_antisymm ?_ ?_
state_before: F : Type ?u.418480
α : Type u_1
β : Type ?u.418486
γ : Type ?u.418489
ι : Type u_2
κ : Type ?u.418495
ι' : Sort ?u.418498
inst✝ : CompleteLattice α
s : ι → α
⊢ (⨆ (i : ι), s i) = ⨆ (t : Finset ι) (i : ι) (_ : i ∈ t), s i

tactic: exact iSup_le fun b => le_iSup_of_le {b} <| le_iSup_of_le b <| le_iSup_of_le (by simp) <| le_rfl
state_before: case refine_1
F : Type ?u.418480
α : Type u_1
β : Type ?u.418486
γ : Type ?u.418489
ι : Type u_2
κ : Type ?u.418495
ι' : Sort ?u.418498
inst✝ : CompleteLattice α
s : ι → α
⊢ (⨆ (i : ι), s i) ≤ ⨆ (t : Finset ι) (i : ι) (_ : i ∈ t), s i

case refine_2
F : Type ?u.418480
α : Type u_1
β : Type ?u.418486
γ : Type ?u.418489
ι : Type u_2
κ : Type ?u.418495
ι' : Sort ?u.418498
inst✝ : CompleteLattice α
s : ι → α
⊢ (⨆ (t : Finset ι) (i : ι) (_ : i ∈ t), s i) ≤ ⨆ (i : ι), s i

tactic: exact iSup_le fun t => iSup_le fun b => iSup_le fun _ => le_iSup _ _
state_before: case refine_2
F : Type ?u.418480
α : Type u_1
β : Type ?u.418486
γ : Type ?u.418489
ι : Type u_2
κ : Type ?u.418495
ι' : Sort ?u.418498
inst✝ : CompleteLattice α
s : ι → α
⊢ (⨆ (t : Finset ι) (i : ι) (_ : i ∈ t), s i) ≤ ⨆ (i : ι), s i

tactic: simp
state_before: F : Type ?u.418480
α : Type u_1
β : Type ?u.418486
γ : Type ?u.418489
ι : Type u_2
κ : Type ?u.418495
ι' : Sort ?u.418498
inst✝ : CompleteLattice α
s : ι → α
b : ι
⊢ b ∈ {b}
Theorem: Ideal.exists_ideal_over_maximal_of_isIntegral
File: Mathlib/RingTheory/Ideal/Over.lean

tactic: obtain ⟨Q, ⟨Q_prime, hQ⟩⟩ := exists_ideal_over_prime_of_is_integral' H P hP
state_before: R : Type u_2
inst✝³ : CommRing R
S : Type u_1
inst✝² : CommRing S
f : R →+* S
I J : Ideal S
inst✝¹ : Algebra R S
inst✝ : IsDomain S
H : Algebra.IsIntegral R S
P : Ideal R
P_max : IsMaximal P
hP : RingHom.ker (algebraMap R S) ≤ P
⊢ ∃ Q, IsMaximal Q ∧ comap (algebraMap R S) Q = P

tactic: haveI : Q.IsPrime := Q_prime
state_before: case intro.intro
R : Type u_2
inst✝³ : CommRing R
S : Type u_1
inst✝² : CommRing S
f : R →+* S
I J : Ideal S
inst✝¹ : Algebra R S
inst✝ : IsDomain S
H : Algebra.IsIntegral R S
P : Ideal R
P_max : IsMaximal P
hP : RingHom.ker (algebraMap R S) ≤ P
Q : Ideal S
Q_prime : IsPrime Q
hQ : comap (algebraMap R S) Q = P
⊢ ∃ Q, IsMaximal Q ∧ comap (algebraMap R S) Q = P

tactic: exact ⟨Q, isMaximal_of_isIntegral_of_isMaximal_comap H _ (hQ.symm ▸ P_max), hQ⟩
state_before: case intro.intro
R : Type u_2
inst✝³ : CommRing R
S : Type u_1
inst✝² : CommRing S
f : R →+* S
I J : Ideal S
inst✝¹ : Algebra R S
inst✝ : IsDomain S
H : Algebra.IsIntegral R S
P : Ideal R
P_max : IsMaximal P
hP : RingHom.ker (algebraMap R S) ≤ P
Q : Ideal S
Q_prime : IsPrime Q
hQ : comap (algebraMap R S) Q = P
this : IsPrime Q
⊢ ∃ Q, IsMaximal Q ∧ comap (algebraMap R S) Q = P
Theorem: Real.Angle.two_nsmul_ne_zero_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: rw [← not_or, ← two_nsmul_eq_zero_iff]
state_before: θ : Angle
⊢ 2 • θ ≠ 0 ↔ θ ≠ 0 ∧ θ ≠ ↑π
Theorem: Real.exp_one_gt_d9
File: Mathlib/Data/Complex/ExponentialBounds.lean

tactic: norm_num
state_before: ⊢ 2.7182818283 < 2244083 / 825552 - 1 / 10 ^ 10
Theorem: MeasureTheory.AEEqFun.le_inf
File: Mathlib/MeasureTheory/Function/AEEqFun.lean

tactic: rw [← coeFn_le] at hf hg⊢
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.468150
δ : Type ?u.468153
inst✝⁵ : MeasurableSpace α
μ ν : Measure α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : TopologicalSpace δ
inst✝¹ : SemilatticeInf β
inst✝ : ContinuousInf β
f' f g : α →ₘ[μ] β
hf : f' ≤ f
hg : f' ≤ g
⊢ f' ≤ f ⊓ g

tactic: filter_upwards [hf, hg, coeFn_inf f g] with _ haf hag ha_inf
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.468150
δ : Type ?u.468153
inst✝⁵ : MeasurableSpace α
μ ν : Measure α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : TopologicalSpace δ
inst✝¹ : SemilatticeInf β
inst✝ : ContinuousInf β
f' f g : α →ₘ[μ] β
hf : ↑f' ≤ᵐ[μ] ↑f
hg : ↑f' ≤ᵐ[μ] ↑g
⊢ ↑f' ≤ᵐ[μ] ↑(f ⊓ g)

tactic: rw [ha_inf]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type ?u.468150
δ : Type ?u.468153
inst✝⁵ : MeasurableSpace α
μ ν : Measure α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : TopologicalSpace δ
inst✝¹ : SemilatticeInf β
inst✝ : ContinuousInf β
f' f g : α →ₘ[μ] β
hf : ↑f' ≤ᵐ[μ] ↑f
hg : ↑f' ≤ᵐ[μ] ↑g
a✝ : α
haf : ↑f' a✝ ≤ ↑f a✝
hag : ↑f' a✝ ≤ ↑g a✝
ha_inf : ↑(f ⊓ g) a✝ = ↑f a✝ ⊓ ↑g a✝
⊢ ↑f' a✝ ≤ ↑(f ⊓ g) a✝

tactic: exact le_inf haf hag
state_before: case h
α : Type u_1
β : Type u_2
γ : Type ?u.468150
δ : Type ?u.468153
inst✝⁵ : MeasurableSpace α
μ ν : Measure α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : TopologicalSpace δ
inst✝¹ : SemilatticeInf β
inst✝ : ContinuousInf β
f' f g : α →ₘ[μ] β
hf : ↑f' ≤ᵐ[μ] ↑f
hg : ↑f' ≤ᵐ[μ] ↑g
a✝ : α
haf : ↑f' a✝ ≤ ↑f a✝
hag : ↑f' a✝ ≤ ↑g a✝
ha_inf : ↑(f ⊓ g) a✝ = ↑f a✝ ⊓ ↑g a✝
⊢ ↑f' a✝ ≤ ↑f a✝ ⊓ ↑g a✝
Theorem: MeasureTheory.measure_of_cont_bdd_of_tendsto_filter_indicator
File: Mathlib/MeasureTheory/Measure/Portmanteau.lean

tactic: convert FiniteMeasure.tendsto_lintegral_nn_filter_of_le_const μ fs_bdd fs_lim
state_before: Ω : Type u_2
inst✝⁴ : MeasurableSpace Ω
ι : Type u_1
L : Filter ι
inst✝³ : IsCountablyGenerated L
inst✝² : TopologicalSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
c : ℝ≥0
E : Set Ω
E_mble : MeasurableSet E
fs : ι → Ω →ᵇ ℝ≥0
fs_bdd : ∀ᶠ (i : ι) in L, ∀ᵐ (ω : Ω) ∂μ, ↑(fs i) ω ≤ c
fs_lim : ∀ᵐ (ω : Ω) ∂μ, Tendsto (fun i => ↑(fs i) ω) L (𝓝 (indicator E (fun x => 1) ω))
⊢ Tendsto (fun n => ∫⁻ (ω : Ω), ↑(↑(fs n) ω) ∂μ) L (𝓝 (↑↑μ E))

tactic: have aux : ∀ ω, indicator E (fun _ => (1 : ℝ≥0∞)) ω = ↑(indicator E (fun _ => (1 : ℝ≥0)) ω) :=
  fun ω => by simp only [ENNReal.coe_indicator, ENNReal.coe_one]
state_before: case h.e'_5.h.e'_3
Ω : Type u_2
inst✝⁴ : MeasurableSpace Ω
ι : Type u_1
L : Filter ι
inst✝³ : IsCountablyGenerated L
inst✝² : TopologicalSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
c : ℝ≥0
E : Set Ω
E_mble : MeasurableSet E
fs : ι → Ω →ᵇ ℝ≥0
fs_bdd : ∀ᶠ (i : ι) in L, ∀ᵐ (ω : Ω) ∂μ, ↑(fs i) ω ≤ c
fs_lim : ∀ᵐ (ω : Ω) ∂μ, Tendsto (fun i => ↑(fs i) ω) L (𝓝 (indicator E (fun x => 1) ω))
⊢ ↑↑μ E = ∫⁻ (ω : Ω), ↑(indicator E (fun x => 1) ω) ∂μ

tactic: simp_rw [← aux, lintegral_indicator _ E_mble]
state_before: case h.e'_5.h.e'_3
Ω : Type u_2
inst✝⁴ : MeasurableSpace Ω
ι : Type u_1
L : Filter ι
inst✝³ : IsCountablyGenerated L
inst✝² : TopologicalSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
c : ℝ≥0
E : Set Ω
E_mble : MeasurableSet E
fs : ι → Ω →ᵇ ℝ≥0
fs_bdd : ∀ᶠ (i : ι) in L, ∀ᵐ (ω : Ω) ∂μ, ↑(fs i) ω ≤ c
fs_lim : ∀ᵐ (ω : Ω) ∂μ, Tendsto (fun i => ↑(fs i) ω) L (𝓝 (indicator E (fun x => 1) ω))
aux : ∀ (ω : Ω), indicator E (fun x => 1) ω = ↑(indicator E (fun x => 1) ω)
⊢ ↑↑μ E = ∫⁻ (ω : Ω), ↑(indicator E (fun x => 1) ω) ∂μ

tactic: simp only [lintegral_one, Measure.restrict_apply, MeasurableSet.univ, univ_inter]
state_before: case h.e'_5.h.e'_3
Ω : Type u_2
inst✝⁴ : MeasurableSpace Ω
ι : Type u_1
L : Filter ι
inst✝³ : IsCountablyGenerated L
inst✝² : TopologicalSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
c : ℝ≥0
E : Set Ω
E_mble : MeasurableSet E
fs : ι → Ω →ᵇ ℝ≥0
fs_bdd : ∀ᶠ (i : ι) in L, ∀ᵐ (ω : Ω) ∂μ, ↑(fs i) ω ≤ c
fs_lim : ∀ᵐ (ω : Ω) ∂μ, Tendsto (fun i => ↑(fs i) ω) L (𝓝 (indicator E (fun x => 1) ω))
aux : ∀ (ω : Ω), indicator E (fun x => 1) ω = ↑(indicator E (fun x => 1) ω)
⊢ ↑↑μ E = ∫⁻ (x : Ω) in E, 1 ∂μ

tactic: simp only [ENNReal.coe_indicator, ENNReal.coe_one]
state_before: Ω : Type u_2
inst✝⁴ : MeasurableSpace Ω
ι : Type u_1
L : Filter ι
inst✝³ : IsCountablyGenerated L
inst✝² : TopologicalSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
c : ℝ≥0
E : Set Ω
E_mble : MeasurableSet E
fs : ι → Ω →ᵇ ℝ≥0
fs_bdd : ∀ᶠ (i : ι) in L, ∀ᵐ (ω : Ω) ∂μ, ↑(fs i) ω ≤ c
fs_lim : ∀ᵐ (ω : Ω) ∂μ, Tendsto (fun i => ↑(fs i) ω) L (𝓝 (indicator E (fun x => 1) ω))
ω : Ω
⊢ indicator E (fun x => 1) ω = ↑(indicator E (fun x => 1) ω)
Theorem: Filter.Tendsto.div_const
File: Mathlib/Topology/Algebra/GroupWithZero.lean

tactic: simpa only [div_eq_mul_inv] using hf.mul tendsto_const_nhds
state_before: α : Type u_1
β : Type ?u.448
G₀ : Type u_2
inst✝² : DivInvMonoid G₀
inst✝¹ : TopologicalSpace G₀
inst✝ : ContinuousMul G₀
f : α → G₀
s : Set α
l : Filter α
x : G₀
hf : Tendsto f l (𝓝 x)
y : G₀
⊢ Tendsto (fun a => f a / y) l (𝓝 (x / y))
Theorem: specializes_prod
File: Mathlib/Topology/Inseparable.lean

tactic: simp only [Specializes, nhds_prod_eq, prod_le_prod]
state_before: X : Type u_2
Y : Type u_1
Z : Type ?u.15556
α : Type ?u.15559
ι : Type ?u.15562
π : ι → Type ?u.15567
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f : X → Y
x₁ x₂ : X
y₁ y₂ : Y
⊢ (x₁, y₁) ⤳ (x₂, y₂) ↔ x₁ ⤳ x₂ ∧ y₁ ⤳ y₂
Theorem: Matrix.adjugate_mul_distrib_aux
File: Mathlib/LinearAlgebra/Matrix/Adjugate.lean

tactic: have hAB : IsLeftRegular (A ⬝ B).det := by
  rw [det_mul]
  exact hA.mul hB
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A B : Matrix n n α
hA : IsLeftRegular (det A)
hB : IsLeftRegular (det B)
⊢ adjugate (A ⬝ B) = adjugate B ⬝ adjugate A

tactic: refine' (isRegular_of_isLeftRegular_det hAB).left _
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A B : Matrix n n α
hA : IsLeftRegular (det A)
hB : IsLeftRegular (det B)
hAB : IsLeftRegular (det (A ⬝ B))
⊢ adjugate (A ⬝ B) = adjugate B ⬝ adjugate A

tactic: simp only
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A B : Matrix n n α
hA : IsLeftRegular (det A)
hB : IsLeftRegular (det B)
hAB : IsLeftRegular (det (A ⬝ B))
⊢ (fun x => A ⬝ B * x) (adjugate (A ⬝ B)) = (fun x => A ⬝ B * x) (adjugate B ⬝ adjugate A)

tactic: rw [mul_eq_mul, mul_adjugate, mul_eq_mul, Matrix.mul_assoc, ← Matrix.mul_assoc B, mul_adjugate,
  smul_mul, Matrix.one_mul, mul_smul, mul_adjugate, smul_smul, mul_comm, ← det_mul]
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A B : Matrix n n α
hA : IsLeftRegular (det A)
hB : IsLeftRegular (det B)
hAB : IsLeftRegular (det (A ⬝ B))
⊢ A ⬝ B * adjugate (A ⬝ B) = A ⬝ B * adjugate B ⬝ adjugate A

tactic: rw [det_mul]
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A B : Matrix n n α
hA : IsLeftRegular (det A)
hB : IsLeftRegular (det B)
⊢ IsLeftRegular (det (A ⬝ B))

tactic: exact hA.mul hB
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A B : Matrix n n α
hA : IsLeftRegular (det A)
hB : IsLeftRegular (det B)
⊢ IsLeftRegular (det A * det B)
Theorem: Rel.core_id
File: Mathlib/Data/Rel.lean

tactic: simp [core]
state_before: α : Type u_1
β : Type ?u.25523
γ : Type ?u.25526
r : Rel α β
s : Set α
⊢ core Eq s = s
Theorem: HahnSeries.SummableFamily.hsum_ofFinsupp
File: Mathlib/RingTheory/HahnSeries.lean

tactic: ext g
state_before: Γ : Type u_3
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : AddCommMonoid R
α : Type u_1
f : α →₀ HahnSeries Γ R
⊢ hsum (ofFinsupp f) = Finsupp.sum f fun x => id

tactic: simp only [hsum_coeff, coe_ofFinsupp, Finsupp.sum, Ne.def]
state_before: case coeff.h
Γ : Type u_3
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : AddCommMonoid R
α : Type u_1
f : α →₀ HahnSeries Γ R
g : Γ
⊢ coeff (hsum (ofFinsupp f)) g = coeff (Finsupp.sum f fun x => id) g

tactic: simp_rw [← coeff.addMonoidHom_apply, id.def]
state_before: case coeff.h
Γ : Type u_3
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : AddCommMonoid R
α : Type u_1
f : α →₀ HahnSeries Γ R
g : Γ
⊢ (∑ᶠ (i : α), coeff (↑f i) g) = coeff (∑ x in f.support, id (↑f x)) g

tactic: rw [map_sum, finsum_eq_sum_of_support_subset]
state_before: case coeff.h
Γ : Type u_3
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : AddCommMonoid R
α : Type u_1
f : α →₀ HahnSeries Γ R
g : Γ
⊢ (∑ᶠ (i : α), ↑(coeff.addMonoidHom g) (↑f i)) = ↑(coeff.addMonoidHom g) (∑ x in f.support, ↑f x)

tactic: intro x h
state_before: case coeff.h.h
Γ : Type u_3
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : AddCommMonoid R
α : Type u_1
f : α →₀ HahnSeries Γ R
g : Γ
⊢ (Function.support fun i => ↑(coeff.addMonoidHom g) (↑f i)) ⊆ ↑f.support

tactic: simp only [coeff.addMonoidHom_apply, mem_coe, Finsupp.mem_support_iff, Ne.def]
state_before: case coeff.h.h
Γ : Type u_3
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : AddCommMonoid R
α : Type u_1
f : α →₀ HahnSeries Γ R
g : Γ
x : α
h : x ∈ Function.support fun i => ↑(coeff.addMonoidHom g) (↑f i)
⊢ x ∈ ↑f.support

tactic: contrapose! h
state_before: case coeff.h.h
Γ : Type u_3
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : AddCommMonoid R
α : Type u_1
f : α →₀ HahnSeries Γ R
g : Γ
x : α
h : x ∈ Function.support fun i => ↑(coeff.addMonoidHom g) (↑f i)
⊢ ¬↑f x = 0

tactic: simp [h]
state_before: case coeff.h.h
Γ : Type u_3
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : AddCommMonoid R
α : Type u_1
f : α →₀ HahnSeries Γ R
g : Γ
x : α
h : ↑f x = 0
⊢ ¬x ∈ Function.support fun i => ↑(coeff.addMonoidHom g) (↑f i)