tasksource/leandojo huggingface dataset:
Theorem: List.dropWhile_eq_nil_iff
File: Mathlib/Data/List/Basic.lean

tactic: induction' l with x xs IH
state_before: ι : Type ?u.387507
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
p : α → Bool
l : List α
⊢ dropWhile p l = [] ↔ ∀ (x : α), x ∈ l → p x = true

tactic: simp [dropWhile]
state_before: case nil
ι : Type ?u.387507
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
p : α → Bool
l : List α
⊢ dropWhile p [] = [] ↔ ∀ (x : α), x ∈ [] → p x = true

tactic: by_cases hp : p x <;> simp [hp, dropWhile, IH]
state_before: case cons
ι : Type ?u.387507
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
p : α → Bool
l : List α
x : α
xs : List α
IH : dropWhile p xs = [] ↔ ∀ (x : α), x ∈ xs → p x = true
⊢ dropWhile p (x :: xs) = [] ↔ ∀ (x_1 : α), x_1 ∈ x :: xs → p x_1 = true
Theorem: padicValInt.eq_zero_of_not_dvd
File: Mathlib/NumberTheory/Padics/PadicVal.lean

tactic: rw [padicValInt, padicValNat]
state_before: p : ℕ
z : ℤ
h : ¬↑p ∣ z
⊢ padicValInt p z = 0

tactic: split_ifs <;> simp [multiplicity.Int.natAbs, multiplicity_eq_zero.2 h]
state_before: p : ℕ
z : ℤ
h : ¬↑p ∣ z
⊢ (if h : p ≠ 1 ∧ 0 < Int.natAbs z then
      Part.get (multiplicity p (Int.natAbs z)) (_ : multiplicity.Finite p (Int.natAbs z))
    else 0) =
    0
Theorem: DirectSum.coe_decompose_mul_of_left_mem
File: Mathlib/RingTheory/GradedAlgebra/Basic.lean

tactic: lift a to 𝒜 i using a_mem
state_before: ι : Type u_1
R : Type ?u.376414
A : Type u_2
σ : Type u_3
inst✝⁹ : Semiring A
inst✝⁸ : DecidableEq ι
inst✝⁷ : CanonicallyOrderedAddMonoid ι
inst✝⁶ : SetLike σ A
inst✝⁵ : AddSubmonoidClass σ A
𝒜 : ι → σ
inst✝⁴ : GradedRing 𝒜
a b : A
n✝ i : ι
inst✝³ : Sub ι
inst✝² : OrderedSub ι
inst✝¹ : ContravariantClass ι ι (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
n : ι
inst✝ : Decidable (i ≤ n)
a_mem : a ∈ 𝒜 i
⊢ ↑(↑(↑(decompose 𝒜) (a * b)) n) = if i ≤ n then a * ↑(↑(↑(decompose 𝒜) b) (n - i)) else 0

tactic: rw [decompose_mul, decompose_coe, coe_of_mul_apply]
state_before: case intro
ι : Type u_1
R : Type ?u.376414
A : Type u_2
σ : Type u_3
inst✝⁹ : Semiring A
inst✝⁸ : DecidableEq ι
inst✝⁷ : CanonicallyOrderedAddMonoid ι
inst✝⁶ : SetLike σ A
inst✝⁵ : AddSubmonoidClass σ A
𝒜 : ι → σ
inst✝⁴ : GradedRing 𝒜
b : A
n✝ i : ι
inst✝³ : Sub ι
inst✝² : OrderedSub ι
inst✝¹ : ContravariantClass ι ι (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
n : ι
inst✝ : Decidable (i ≤ n)
a : { x // x ∈ 𝒜 i }
⊢ ↑(↑(↑(decompose 𝒜) (↑a * b)) n) = if i ≤ n then ↑a * ↑(↑(↑(decompose 𝒜) b) (n - i)) else 0
Theorem: AlgHom.normal_bijective
File: Mathlib/FieldTheory/Normal.lean

tactic: letI : Algebra E K := ϕ.toRingHom.toAlgebra
state_before: F : Type u_1
K : Type u_3
inst✝⁶ : Field F
inst✝⁵ : Field K
inst✝⁴ : Algebra F K
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : Normal F E
ϕ : E →ₐ[F] K
x : K
⊢ ∃ a, ↑ϕ a = x

tactic: obtain ⟨h1, h2⟩ := h.out (algebraMap K E x)
state_before: F : Type u_1
K : Type u_3
inst✝⁶ : Field F
inst✝⁵ : Field K
inst✝⁴ : Algebra F K
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : Normal F E
ϕ : E →ₐ[F] K
x : K
this : Algebra E K := RingHom.toAlgebra ↑ϕ
⊢ ∃ a, ↑ϕ a = x

tactic: cases'
  minpoly.mem_range_of_degree_eq_one E x
    (h2.def.resolve_left (minpoly.ne_zero h1)
      (minpoly.irreducible
        (isIntegral_of_isScalarTower
          ((isIntegral_algebraMap_iff (algebraMap K E).injective).mp h1)))
      (minpoly.dvd E x
        ((algebraMap K E).injective
          (by
            rw [RingHom.map_zero, aeval_map_algebraMap, ← aeval_algebraMap_apply]
            exact minpoly.aeval F (algebraMap K E x))))) with
  y hy
state_before: case intro
F : Type u_1
K : Type u_3
inst✝⁶ : Field F
inst✝⁵ : Field K
inst✝⁴ : Algebra F K
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : Normal F E
ϕ : E →ₐ[F] K
x : K
this : Algebra E K := RingHom.toAlgebra ↑ϕ
h1 : IsIntegral F (↑(algebraMap K E) x)
h2 : Splits (algebraMap F E) (minpoly F (↑(algebraMap K E) x))
⊢ ∃ a, ↑ϕ a = x

tactic: exact ⟨y, hy⟩
state_before: case intro.intro
F : Type u_1
K : Type u_3
inst✝⁶ : Field F
inst✝⁵ : Field K
inst✝⁴ : Algebra F K
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : Normal F E
ϕ : E →ₐ[F] K
x : K
this : Algebra E K := RingHom.toAlgebra ↑ϕ
h1 : IsIntegral F (↑(algebraMap K E) x)
h2 : Splits (algebraMap F E) (minpoly F (↑(algebraMap K E) x))
y : E
hy : ↑(algebraMap E K) y = x
⊢ ∃ a, ↑ϕ a = x

tactic: rw [RingHom.map_zero, aeval_map_algebraMap, ← aeval_algebraMap_apply]
state_before: F : Type u_1
K : Type u_3
inst✝⁶ : Field F
inst✝⁵ : Field K
inst✝⁴ : Algebra F K
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : Normal F E
ϕ : E →ₐ[F] K
x : K
this : Algebra E K := RingHom.toAlgebra ↑ϕ
h1 : IsIntegral F (↑(algebraMap K E) x)
h2 : Splits (algebraMap F E) (minpoly F (↑(algebraMap K E) x))
⊢ ↑(algebraMap K E) (↑(aeval x) (map (algebraMap F E) (minpoly F (↑(algebraMap K E) x)))) = ↑(algebraMap K E) 0

tactic: exact minpoly.aeval F (algebraMap K E x)
state_before: F : Type u_1
K : Type u_3
inst✝⁶ : Field F
inst✝⁵ : Field K
inst✝⁴ : Algebra F K
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : Normal F E
ϕ : E →ₐ[F] K
x : K
this : Algebra E K := RingHom.toAlgebra ↑ϕ
h1 : IsIntegral F (↑(algebraMap K E) x)
h2 : Splits (algebraMap F E) (minpoly F (↑(algebraMap K E) x))
⊢ ↑(aeval (↑(algebraMap K E) x)) (minpoly F (↑(algebraMap K E) x)) = 0
Theorem: Nat.Ico_succ_right
File: Mathlib/Data/Nat/Interval.lean

tactic: ext x
state_before: a b c : ℕ
⊢ Ico a (succ b) = Icc a b

tactic: rw [mem_Ico, mem_Icc, lt_succ_iff]
state_before: case a
a b c x : ℕ
⊢ x ∈ Ico a (succ b) ↔ x ∈ Icc a b
Theorem: Set.nonempty_of_ncard_ne_zero
File: Mathlib/Data/Set/Ncard.lean

tactic: rw [nonempty_iff_ne_empty]
state_before: α : Type u_1
β : Type ?u.7426
s t : Set α
a b x y : α
f : α → β
hs : ncard s ≠ 0
⊢ Set.Nonempty s

tactic: rintro rfl
state_before: α : Type u_1
β : Type ?u.7426
s t : Set α
a b x y : α
f : α → β
hs : ncard s ≠ 0
⊢ s ≠ ∅

tactic: simp at hs
state_before: α : Type u_1
β : Type ?u.7426
t : Set α
a b x y : α
f : α → β
hs : ncard ∅ ≠ 0
⊢ False
Theorem: PartENat.lt_find_iff
File: Mathlib/Data/Nat/PartENat.lean

tactic: refine' ⟨_, lt_find P n⟩
state_before: P : ℕ → Prop
inst✝ : DecidablePred P
n : ℕ
⊢ ↑n < find P ↔ ∀ (m : ℕ), m ≤ n → ¬P m

tactic: intro h m hm
state_before: P : ℕ → Prop
inst✝ : DecidablePred P
n : ℕ
⊢ ↑n < find P → ∀ (m : ℕ), m ≤ n → ¬P m

tactic: by_cases H : (find P).Dom
state_before: P : ℕ → Prop
inst✝ : DecidablePred P
n : ℕ
h : ↑n < find P
m : ℕ
hm : m ≤ n
⊢ ¬P m

tactic: apply Nat.find_min H
state_before: case pos
P : ℕ → Prop
inst✝ : DecidablePred P
n : ℕ
h : ↑n < find P
m : ℕ
hm : m ≤ n
H : (find P).Dom
⊢ ¬P m

tactic: rw [coe_lt_iff] at h
state_before: case pos
P : ℕ → Prop
inst✝ : DecidablePred P
n : ℕ
h : ↑n < find P
m : ℕ
hm : m ≤ n
H : (find P).Dom
⊢ m < Nat.find H

tactic: specialize h H
state_before: case pos
P : ℕ → Prop
inst✝ : DecidablePred P
n : ℕ
h : ∀ (h : (find P).Dom), n < Part.get (find P) h
m : ℕ
hm : m ≤ n
H : (find P).Dom
⊢ m < Nat.find H

tactic: exact lt_of_le_of_lt hm h
state_before: case pos
P : ℕ → Prop
inst✝ : DecidablePred P
n m : ℕ
hm : m ≤ n
H : (find P).Dom
h : n < Part.get (find P) H
⊢ m < Nat.find H

tactic: exact not_exists.mp H m
state_before: case neg
P : ℕ → Prop
inst✝ : DecidablePred P
n : ℕ
h : ↑n < find P
m : ℕ
hm : m ≤ n
H : ¬(find P).Dom
⊢ ¬P m
Theorem: Module.eval_ker
File: Mathlib/LinearAlgebra/Dual.lean

tactic: classical exact (Basis.ofVectorSpace K V).eval_ker
state_before: K : Type u₁
V : Type u₂
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
⊢ ker (eval K V) = ⊥

tactic: exact (Basis.ofVectorSpace K V).eval_ker
state_before: K : Type u₁
V : Type u₂
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
⊢ ker (eval K V) = ⊥
Theorem: tendsto_pi_nhds
File: Mathlib/Topology/Constructions.lean

tactic: rw [nhds_pi, Filter.tendsto_pi]
state_before: α : Type u
β : Type v
γ : Type ?u.206424
δ : Type ?u.206427
ε : Type ?u.206430
ζ : Type ?u.206433
ι : Type u_1
π : ι → Type u_2
κ : Type ?u.206444
inst✝¹ : TopologicalSpace α
inst✝ : (i : ι) → TopologicalSpace (π i)
f✝ : α → (i : ι) → π i
f : β → (i : ι) → π i
g : (i : ι) → π i
u : Filter β
⊢ Tendsto f u (𝓝 g) ↔ ∀ (x : ι), Tendsto (fun i => f i x) u (𝓝 (g x))
Theorem: Fin.insertNth_last'
File: Mathlib/Data/Fin/Tuple/Basic.lean

tactic: simp [insertNth_last]
state_before: m n : ℕ
α : Fin (n + 1) → Type u
β : Type v
x : β
p : Fin n → β
⊢ insertNth (last n) x p = snoc p x
Theorem: IsLocalization.algebraMap_mk'
File: Mathlib/RingTheory/Localization/Basic.lean

tactic: rw [IsLocalization.eq_mk'_iff_mul_eq, Subtype.coe_mk, ← IsScalarTower.algebraMap_apply, ←
  IsScalarTower.algebraMap_apply, IsScalarTower.algebraMap_apply R Rₘ Sₘ,
  IsScalarTower.algebraMap_apply R Rₘ Sₘ, ← _root_.map_mul, mul_comm,
  IsLocalization.mul_mk'_eq_mk'_of_mul]
state_before: R : Type u_1
inst✝¹² : CommRing R
M : Submonoid R
S : Type u_4
inst✝¹¹ : CommRing S
inst✝¹⁰ : Algebra R S
P : Type ?u.3264412
inst✝⁹ : CommRing P
Rₘ : Type u_3
Sₘ : Type u_2
inst✝⁸ : CommRing Rₘ
inst✝⁷ : CommRing Sₘ
inst✝⁶ : Algebra R Rₘ
inst✝⁵ : IsLocalization M Rₘ
inst✝⁴ : Algebra S Sₘ
i : IsLocalization (Algebra.algebraMapSubmonoid S M) Sₘ
inst✝³ : Algebra Rₘ Sₘ
inst✝² : Algebra R Sₘ
inst✝¹ : IsScalarTower R Rₘ Sₘ
inst✝ : IsScalarTower R S Sₘ
x : R
y : { x // x ∈ M }
⊢ ↑(algebraMap Rₘ Sₘ) (mk' Rₘ x y) =
    mk' Sₘ (↑(algebraMap R S) x)
      { val := ↑(algebraMap R S) ↑y, property := (_ : ↑(algebraMap R S) ↑y ∈ Algebra.algebraMapSubmonoid S M) }

tactic: exact congr_arg (algebraMap Rₘ Sₘ) (IsLocalization.mk'_mul_cancel_left x y)
state_before: R : Type u_1
inst✝¹² : CommRing R
M : Submonoid R
S : Type u_4
inst✝¹¹ : CommRing S
inst✝¹⁰ : Algebra R S
P : Type ?u.3264412
inst✝⁹ : CommRing P
Rₘ : Type u_3
Sₘ : Type u_2
inst✝⁸ : CommRing Rₘ
inst✝⁷ : CommRing Sₘ
inst✝⁶ : Algebra R Rₘ
inst✝⁵ : IsLocalization M Rₘ
inst✝⁴ : Algebra S Sₘ
i : IsLocalization (Algebra.algebraMapSubmonoid S M) Sₘ
inst✝³ : Algebra Rₘ Sₘ
inst✝² : Algebra R Sₘ
inst✝¹ : IsScalarTower R Rₘ Sₘ
inst✝ : IsScalarTower R S Sₘ
x : R
y : { x // x ∈ M }
⊢ ↑(algebraMap Rₘ Sₘ) (mk' Rₘ (↑y * x) y) = ↑(algebraMap Rₘ Sₘ) (↑(algebraMap R Rₘ) x)
Theorem: convexOn_iff_pairwise_pos
File: Mathlib/Analysis/Convex/Function.lean

tactic: rw [convexOn_iff_forall_pos]
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.162921
α : Type ?u.162924
β : Type u_3
ι : Type ?u.162930
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : AddCommMonoid E
inst✝⁴ : AddCommMonoid F
inst✝³ : OrderedAddCommMonoid α
inst✝² : OrderedAddCommMonoid β
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 β
s : Set E
f : E → β
⊢ ConvexOn 𝕜 s f ↔
    Convex 𝕜 s ∧
      Set.Pairwise s fun x y => ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 → f (a • x + b • y) ≤ a • f x + b • f y

tactic: refine'
  and_congr_right'
    ⟨fun h x hx y hy _ a b ha hb hab => h hx hy ha hb hab, fun h x hx y hy a b ha hb hab => _⟩
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.162921
α : Type ?u.162924
β : Type u_3
ι : Type ?u.162930
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : AddCommMonoid E
inst✝⁴ : AddCommMonoid F
inst✝³ : OrderedAddCommMonoid α
inst✝² : OrderedAddCommMonoid β
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 β
s : Set E
f : E → β
⊢ (Convex 𝕜 s ∧
      ∀ ⦃x : E⦄,
        x ∈ s → ∀ ⦃y : E⦄, y ∈ s → ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 → f (a • x + b • y) ≤ a • f x + b • f y) ↔
    Convex 𝕜 s ∧
      Set.Pairwise s fun x y => ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 → f (a • x + b • y) ≤ a • f x + b • f y

tactic: obtain rfl | hxy := eq_or_ne x y
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.162921
α : Type ?u.162924
β : Type u_3
ι : Type ?u.162930
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : AddCommMonoid E
inst✝⁴ : AddCommMonoid F
inst✝³ : OrderedAddCommMonoid α
inst✝² : OrderedAddCommMonoid β
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 β
s : Set E
f : E → β
h : Set.Pairwise s fun x y => ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 → f (a • x + b • y) ≤ a • f x + b • f y
x : E
hx : x ∈ s
y : E
hy : y ∈ s
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ f (a • x + b • y) ≤ a • f x + b • f y

tactic: exact h hx hy hxy ha hb hab
state_before: case inr
𝕜 : Type u_2
E : Type u_1
F : Type ?u.162921
α : Type ?u.162924
β : Type u_3
ι : Type ?u.162930
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : AddCommMonoid E
inst✝⁴ : AddCommMonoid F
inst✝³ : OrderedAddCommMonoid α
inst✝² : OrderedAddCommMonoid β
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 β
s : Set E
f : E → β
h : Set.Pairwise s fun x y => ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 → f (a • x + b • y) ≤ a • f x + b • f y
x : E
hx : x ∈ s
y : E
hy : y ∈ s
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
hxy : x ≠ y
⊢ f (a • x + b • y) ≤ a • f x + b • f y

tactic: rw [Convex.combo_self hab, Convex.combo_self hab]
state_before: case inl
𝕜 : Type u_2
E : Type u_1
F : Type ?u.162921
α : Type ?u.162924
β : Type u_3
ι : Type ?u.162930
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : AddCommMonoid E
inst✝⁴ : AddCommMonoid F
inst✝³ : OrderedAddCommMonoid α
inst✝² : OrderedAddCommMonoid β
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 β
s : Set E
f : E → β
h : Set.Pairwise s fun x y => ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 → f (a • x + b • y) ≤ a • f x + b • f y
x : E
hx : x ∈ s
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
hy : x ∈ s
⊢ f (a • x + b • x) ≤ a • f x + b • f x
Theorem: UniformSpace.mem_closure_iff_symm_ball
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: simp [mem_closure_iff_nhds_basis (hasBasis_nhds x), Set.Nonempty]
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort ?u.62335
inst✝ : UniformSpace α
s : Set α
x : α
⊢ x ∈ closure s ↔ ∀ {V : Set (α × α)}, V ∈ 𝓤 α → SymmetricRel V → Set.Nonempty (s ∩ ball x V)
Theorem: CircleDeg1Lift.continuous_pow
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: rw [coe_pow]
state_before: f g : CircleDeg1Lift
hf : Continuous ↑f
n : ℕ
⊢ Continuous ↑(f ^ n)

tactic: exact hf.iterate n
state_before: f g : CircleDeg1Lift
hf : Continuous ↑f
n : ℕ
⊢ Continuous (↑f^[n])
Theorem: and_and_and_comm
File: Std/Logic.lean

tactic: rw [← and_assoc, @and_right_comm a, and_assoc]
state_before: a b c d : Prop
⊢ (a ∧ b) ∧ c ∧ d ↔ (a ∧ c) ∧ b ∧ d
Theorem: Polynomial.Monic.degree_le_zero_iff_eq_one
File: Mathlib/Data/Polynomial/Monic.lean

tactic: rw [← hp.natDegree_eq_zero_iff_eq_one, natDegree_eq_zero_iff_degree_le_zero]
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : Monic p
⊢ degree p ≤ 0 ↔ p = 1
Theorem: Basis.mem_span
File: Mathlib/LinearAlgebra/Basis.lean

tactic: rw [← b.total_repr x, Finsupp.total_apply, Finsupp.sum]
state_before: ι : Type u_3
ι' : Type ?u.461943
R : Type u_2
R₂ : Type ?u.461949
K : Type ?u.461952
M : Type u_1
M' : Type ?u.461958
M'' : Type ?u.461961
V : Type u
V' : Type ?u.461966
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
b b₁ : Basis ι R M
i : ι
c : R
x✝ x : M
⊢ x ∈ span R (range ↑b)

tactic: exact Submodule.sum_mem _ fun i _ => Submodule.smul_mem _ _ (Submodule.subset_span ⟨i, rfl⟩)
state_before: ι : Type u_3
ι' : Type ?u.461943
R : Type u_2
R₂ : Type ?u.461949
K : Type ?u.461952
M : Type u_1
M' : Type ?u.461958
M'' : Type ?u.461961
V : Type u
V' : Type ?u.461966
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
b b₁ : Basis ι R M
i : ι
c : R
x✝ x : M
⊢ ∑ a in (↑b.repr x).support, ↑(↑b.repr x) a • ↑b a ∈ span R (range ↑b)
Theorem: CategoryTheory.Limits.hasTerminalChangeDiagram
File: Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean

tactic: aesop_cat
state_before: C : Type u₁
inst✝ : Category C
X : C
F₁ : Discrete PEmpty ⥤ C
F₂ : Discrete PEmpty ⥤ C
h : HasLimit F₁
⊢ (X : Discrete PEmpty) → ((Functor.const (Discrete PEmpty)).obj (limit F₁)).obj X ⟶ F₂.obj X

tactic: aesop_cat
state_before: C : Type u₁
inst✝ : Category C
X : C
F₁ : Discrete PEmpty ⥤ C
F₂ : Discrete PEmpty ⥤ C
h : HasLimit F₁
⊢ ∀ ⦃X Y : Discrete PEmpty⦄ (f : X ⟶ Y),
    ((Functor.const (Discrete PEmpty)).obj (limit F₁)).map f ≫
        id (Discrete.casesOn Y fun as => False.elim (_ : False)) =
      id (Discrete.casesOn X fun as => False.elim (_ : False)) ≫ F₂.map f
Theorem: exists_pos_lt_mul
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rwa [← div_eq_inv_mul, lt_div_iff hc₀]
state_before: ι : Type ?u.112188
α : Type u_1
β : Type ?u.112194
inst✝ : LinearOrderedSemifield α
a✝ b✝ c✝ d e : α
m n : ℤ
a : α
h : 0 < a
b c : α
hc₀ : 0 < c
hc : b * c < a
⊢ b < c⁻¹ * a
Theorem: Set.preimage_sub_const_Ico
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp [sub_eq_add_neg]
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ (fun x => x - a) ⁻¹' Ico b c = Ico (b + a) (c + a)
Theorem: Ordinal.nat_le_card
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: rw [← Cardinal.ord_le, Cardinal.ord_nat]
state_before: α : Type ?u.236438
β : Type ?u.236441
γ : Type ?u.236444
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal
n : ℕ
⊢ ↑n ≤ card o ↔ ↑n ≤ o
Theorem: MeasureTheory.Content.is_mul_left_invariant_outerMeasure
File: Mathlib/MeasureTheory/Measure/Content.lean

tactic: convert μ.outerMeasure_preimage (Homeomorph.mulLeft g) (fun K => h g) A
state_before: G : Type w
inst✝³ : TopologicalSpace G
μ : Content G
inst✝² : T2Space G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
h :
  ∀ (g : G) {K : Compacts G},
    (fun s => ↑(toFun μ s)) (Compacts.map (fun b => g * b) (_ : Continuous fun b => g * b) K) =
      (fun s => ↑(toFun μ s)) K
g : G
A : Set G
⊢ ↑(Content.outerMeasure μ) ((fun x => g * x) ⁻¹' A) = ↑(Content.outerMeasure μ) A
Theorem: Matrix.vecMul_sub
File: Mathlib/Data/Matrix/Basic.lean

tactic: simp [sub_eq_add_neg, vecMul_add, vecMul_neg]
state_before: l : Type ?u.913128
m : Type u_1
n : Type u_2
o : Type ?u.913137
m' : o → Type ?u.913142
n' : o → Type ?u.913147
R : Type ?u.913150
S : Type ?u.913153
α : Type v
β : Type w
γ : Type ?u.913160
inst✝¹ : NonUnitalNonAssocRing α
inst✝ : Fintype m
A B : Matrix m n α
x : m → α
⊢ vecMul x (A - B) = vecMul x A - vecMul x B
Theorem: IsSelfAdjoint.pow
File: Mathlib/Algebra/Star/SelfAdjoint.lean

tactic: simp only [isSelfAdjoint_iff, star_pow, hx.star_eq]
state_before: R : Type u_1
A : Type ?u.29976
inst✝¹ : Monoid R
inst✝ : StarSemigroup R
x : R
hx : IsSelfAdjoint x
n : ℕ
⊢ IsSelfAdjoint (x ^ n)
Theorem: Ideal.span_singleton_mul_right_inj
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: simp only [le_antisymm_iff, span_singleton_mul_right_mono hx]
state_before: R : Type u
ι : Type ?u.240143
inst✝¹ : CommSemiring R
I J K L : Ideal R
inst✝ : IsDomain R
x : R
hx : x ≠ 0
⊢ span {x} * I = span {x} * J ↔ I = J
Theorem: Int.exists_greatest_of_bdd
File: Mathlib/Data/Int/LeastGreatest.lean

tactic: let ⟨ b , Hb ⟩ := Hbdd
state_before: P : ℤ → Prop
inst✝ : DecidablePred P
Hbdd : ∃ b, ∀ (z : ℤ), P z → z ≤ b
Hinh : ∃ z, P z
⊢ ∃ ub, P ub ∧ ∀ (z : ℤ), P z → z ≤ ub

tactic: let ⟨ lb , H ⟩ := greatestOfBdd b Hb Hinh
state_before: P : ℤ → Prop
inst✝ : DecidablePred P
Hbdd : ∃ b, ∀ (z : ℤ), P z → z ≤ b
Hinh : ∃ z, P z
b : ℤ
Hb : ∀ (z : ℤ), P z → z ≤ b
⊢ ∃ ub, P ub ∧ ∀ (z : ℤ), P z → z ≤ ub

tactic: exact ⟨ lb , H ⟩
state_before: P : ℤ → Prop
inst✝ : DecidablePred P
Hbdd : ∃ b, ∀ (z : ℤ), P z → z ≤ b
Hinh : ∃ z, P z
b : ℤ
Hb : ∀ (z : ℤ), P z → z ≤ b
lb : ℤ
H : P lb ∧ ∀ (z : ℤ), P z → z ≤ lb
⊢ ∃ ub, P ub ∧ ∀ (z : ℤ), P z → z ≤ ub
Theorem: aeSeq.iSup
File: Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean

tactic: simp_rw [Filter.EventuallyEq, ae_iff, iSup_apply]
state_before: ι : Sort u_2
α : Type u_3
β : Type u_1
γ : Type ?u.727906
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
f : ι → α → β
μ : MeasureTheory.Measure α
p : α → (ι → β) → Prop
inst✝¹ : CompleteLattice β
inst✝ : Countable ι
hf : ∀ (i : ι), AEMeasurable (f i)
hp : ∀ᵐ (x : α) ∂μ, p x fun n => f n x
⊢ (⨆ (n : ι), aeSeq hf p n) =ᵐ[μ] ⨆ (n : ι), f n

tactic: have h_ss : aeSeqSet hf p ⊆ { a : α | (⨆ i : ι, aeSeq hf p i a) = ⨆ i : ι, f i a } := by
  intro x hx
  congr
  exact funext fun i => aeSeq_eq_fun_of_mem_aeSeqSet hf hx i
state_before: ι : Sort u_2
α : Type u_3
β : Type u_1
γ : Type ?u.727906
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
f : ι → α → β
μ : MeasureTheory.Measure α
p : α → (ι → β) → Prop
inst✝¹ : CompleteLattice β
inst✝ : Countable ι
hf : ∀ (i : ι), AEMeasurable (f i)
hp : ∀ᵐ (x : α) ∂μ, p x fun n => f n x
⊢ ↑↑μ {a | ¬(⨆ (i : ι), aeSeq hf p i a) = ⨆ (i : ι), f i a} = 0

tactic: exact measure_mono_null (Set.compl_subset_compl.mpr h_ss) (measure_compl_aeSeqSet_eq_zero hf hp)
state_before: ι : Sort u_2
α : Type u_3
β : Type u_1
γ : Type ?u.727906
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
f : ι → α → β
μ : MeasureTheory.Measure α
p : α → (ι → β) → Prop
inst✝¹ : CompleteLattice β
inst✝ : Countable ι
hf : ∀ (i : ι), AEMeasurable (f i)
hp : ∀ᵐ (x : α) ∂μ, p x fun n => f n x
h_ss : aeSeqSet hf p ⊆ {a | (⨆ (i : ι), aeSeq hf p i a) = ⨆ (i : ι), f i a}
⊢ ↑↑μ {a | ¬(⨆ (i : ι), aeSeq hf p i a) = ⨆ (i : ι), f i a} = 0

tactic: intro x hx
state_before: ι : Sort u_2
α : Type u_3
β : Type u_1
γ : Type ?u.727906
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
f : ι → α → β
μ : MeasureTheory.Measure α
p : α → (ι → β) → Prop
inst✝¹ : CompleteLattice β
inst✝ : Countable ι
hf : ∀ (i : ι), AEMeasurable (f i)
hp : ∀ᵐ (x : α) ∂μ, p x fun n => f n x
⊢ aeSeqSet hf p ⊆ {a | (⨆ (i : ι), aeSeq hf p i a) = ⨆ (i : ι), f i a}

tactic: congr
state_before: ι : Sort u_2
α : Type u_3
β : Type u_1
γ : Type ?u.727906
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
f : ι → α → β
μ : MeasureTheory.Measure α
p : α → (ι → β) → Prop
inst✝¹ : CompleteLattice β
inst✝ : Countable ι
hf : ∀ (i : ι), AEMeasurable (f i)
hp : ∀ᵐ (x : α) ∂μ, p x fun n => f n x
x : α
hx : x ∈ aeSeqSet hf p
⊢ x ∈ {a | (⨆ (i : ι), aeSeq hf p i a) = ⨆ (i : ι), f i a}

tactic: exact funext fun i => aeSeq_eq_fun_of_mem_aeSeqSet hf hx i
state_before: case e_s
ι : Sort u_2
α : Type u_3
β : Type u_1
γ : Type ?u.727906
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
f : ι → α → β
μ : MeasureTheory.Measure α
p : α → (ι → β) → Prop
inst✝¹ : CompleteLattice β
inst✝ : Countable ι
hf : ∀ (i : ι), AEMeasurable (f i)
hp : ∀ᵐ (x : α) ∂μ, p x fun n => f n x
x : α
hx : x ∈ aeSeqSet hf p
⊢ (fun i => aeSeq hf p i x) = fun i => f i x
Theorem: Finset.Ioo_subset_Ioo
File: Mathlib/Data/Finset/LocallyFinite.lean

tactic: simpa [← coe_subset] using Set.Ioo_subset_Ioo ha hb
state_before: ι : Type ?u.16340
α : Type u_1
inst✝¹ : Preorder α
inst✝ : LocallyFiniteOrder α
a a₁ a₂ b b₁ b₂ c x : α
ha : a₂ ≤ a₁
hb : b₁ ≤ b₂
⊢ Ioo a₁ b₁ ⊆ Ioo a₂ b₂