tasksource/leandojo huggingface dataset:
Theorem: MeasureTheory.le_mul_iff_eq_zero_of_nonneg_of_neg_of_nonneg
File: Mathlib/MeasureTheory/Function/LpSeminorm.lean

tactic: constructor
state_before: α✝ : Type ?u.5062900
E : Type ?u.5062903
F : Type ?u.5062906
G : Type ?u.5062909
m m0 : MeasurableSpace α✝
p : ℝ≥0∞
q : ℝ
μ ν : Measure α✝
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
α : Type u_1
inst✝ : LinearOrderedSemiring α
a b c : α
ha : 0 ≤ a
hb : b < 0
hc : 0 ≤ c
⊢ a ≤ b * c ↔ a = 0 ∧ c = 0

tactic: intro h
state_before: case mp
α✝ : Type ?u.5062900
E : Type ?u.5062903
F : Type ?u.5062906
G : Type ?u.5062909
m m0 : MeasurableSpace α✝
p : ℝ≥0∞
q : ℝ
μ ν : Measure α✝
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
α : Type u_1
inst✝ : LinearOrderedSemiring α
a b c : α
ha : 0 ≤ a
hb : b < 0
hc : 0 ≤ c
⊢ a ≤ b * c → a = 0 ∧ c = 0

tactic: exact
  ⟨(h.trans (mul_nonpos_of_nonpos_of_nonneg hb.le hc)).antisymm ha,
    (nonpos_of_mul_nonneg_right (ha.trans h) hb).antisymm hc⟩
state_before: case mp
α✝ : Type ?u.5062900
E : Type ?u.5062903
F : Type ?u.5062906
G : Type ?u.5062909
m m0 : MeasurableSpace α✝
p : ℝ≥0∞
q : ℝ
μ ν : Measure α✝
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
α : Type u_1
inst✝ : LinearOrderedSemiring α
a b c : α
ha : 0 ≤ a
hb : b < 0
hc : 0 ≤ c
h : a ≤ b * c
⊢ a = 0 ∧ c = 0

tactic: rintro ⟨rfl, rfl⟩
state_before: case mpr
α✝ : Type ?u.5062900
E : Type ?u.5062903
F : Type ?u.5062906
G : Type ?u.5062909
m m0 : MeasurableSpace α✝
p : ℝ≥0∞
q : ℝ
μ ν : Measure α✝
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
α : Type u_1
inst✝ : LinearOrderedSemiring α
a b c : α
ha : 0 ≤ a
hb : b < 0
hc : 0 ≤ c
⊢ a = 0 ∧ c = 0 → a ≤ b * c

tactic: rw [MulZeroClass.mul_zero]
state_before: case mpr.intro
α✝ : Type ?u.5062900
E : Type ?u.5062903
F : Type ?u.5062906
G : Type ?u.5062909
m m0 : MeasurableSpace α✝
p : ℝ≥0∞
q : ℝ
μ ν : Measure α✝
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
α : Type u_1
inst✝ : LinearOrderedSemiring α
b : α
hb : b < 0
ha hc : 0 ≤ 0
⊢ 0 ≤ b * 0
Theorem: decide_not
File: src/lean/Init/SimpLemmas.lean

tactic: cases h <;> rfl
state_before: p : Prop
h : Decidable p
⊢ (decide ¬p) = !decide p
Theorem: BilinForm.toMatrix_mul_basis_toMatrix
File: Mathlib/LinearAlgebra/Matrix/BilinearForm.lean

tactic: rw [← LinearMap.toMatrix_id_eq_basis_toMatrix, ← BilinForm.toMatrix_comp, BilinForm.comp_id_id]
state_before: R : Type ?u.1598572
M : Type ?u.1598575
inst✝²⁰ : Semiring R
inst✝¹⁹ : AddCommMonoid M
inst✝¹⁸ : Module R M
R₁ : Type ?u.1598611
M₁ : Type ?u.1598614
inst✝¹⁷ : Ring R₁
inst✝¹⁶ : AddCommGroup M₁
inst✝¹⁵ : Module R₁ M₁
R₂ : Type u_2
M₂ : Type u_3
inst✝¹⁴ : CommSemiring R₂
inst✝¹³ : AddCommMonoid M₂
inst✝¹² : Module R₂ M₂
R₃ : Type ?u.1599413
M₃ : Type ?u.1599416
inst✝¹¹ : CommRing R₃
inst✝¹⁰ : AddCommGroup M₃
inst✝⁹ : Module R₃ M₃
V : Type ?u.1600004
K : Type ?u.1600007
inst✝⁸ : Field K
inst✝⁷ : AddCommGroup V
inst✝⁶ : Module K V
B✝ : BilinForm R M
B₁ : BilinForm R₁ M₁
B₂ : BilinForm R₂ M₂
n : Type u_4
o : Type u_1
inst✝⁵ : Fintype n
inst✝⁴ : Fintype o
inst✝³ : DecidableEq n
b : Basis n R₂ M₂
M₂' : Type ?u.1601383
inst✝² : AddCommMonoid M₂'
inst✝¹ : Module R₂ M₂'
c✝ : Basis o R₂ M₂'
inst✝ : DecidableEq o
c : Basis o R₂ M₂
B : BilinForm R₂ M₂
⊢ (Basis.toMatrix b ↑c)ᵀ ⬝ ↑(toMatrix b) B ⬝ Basis.toMatrix b ↑c = ↑(toMatrix c) B
Theorem: Metric.mem_closure_iff
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: simp only [mem_ball, dist_comm]
state_before: α : Type u
β : Type v
X : Type ?u.302924
ι : Type ?u.302927
inst✝ : PseudoMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ
s✝ s : Set α
a : α
⊢ (∀ (i : ℝ), 0 < i → ∃ y, y ∈ s ∧ y ∈ ball a i) ↔ ∀ (ε : ℝ), ε > 0 → ∃ b, b ∈ s ∧ dist a b < ε
Theorem: List.length_take_le
File: Std/Data/List/Lemmas.lean

tactic: simp [Nat.min_le_left]
state_before: α : Type u_1
n : Nat
l : List α
⊢ length (take n l) ≤ n
Theorem: Zspan.ceil_eq_self_of_mem
File: Mathlib/Algebra/Module/Zlattice.lean

tactic: apply b.ext_elem
state_before: E : Type u_1
ι : Type u_2
K : Type u_3
inst✝⁴ : NormedLinearOrderedField K
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace K E
b : Basis ι K E
inst✝¹ : FloorRing K
inst✝ : Fintype ι
m : E
h : m ∈ span ℤ (Set.range ↑b)
⊢ ↑(ceil b m) = m

tactic: simp_rw [repr_ceil_apply b]
state_before: E : Type u_1
ι : Type u_2
K : Type u_3
inst✝⁴ : NormedLinearOrderedField K
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace K E
b : Basis ι K E
inst✝¹ : FloorRing K
inst✝ : Fintype ι
m : E
h : m ∈ span ℤ (Set.range ↑b)
⊢ ∀ (i : ι), ↑(↑b.repr ↑(ceil b m)) i = ↑(↑b.repr m) i

tactic: intro i
state_before: E : Type u_1
ι : Type u_2
K : Type u_3
inst✝⁴ : NormedLinearOrderedField K
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace K E
b : Basis ι K E
inst✝¹ : FloorRing K
inst✝ : Fintype ι
m : E
h : m ∈ span ℤ (Set.range ↑b)
⊢ ∀ (i : ι), ↑⌈↑(↑b.repr m) i⌉ = ↑(↑b.repr m) i

tactic: obtain ⟨z, hz⟩ := (b.mem_span_iff_repr_mem ℤ _).mp h i
state_before: E : Type u_1
ι : Type u_2
K : Type u_3
inst✝⁴ : NormedLinearOrderedField K
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace K E
b : Basis ι K E
inst✝¹ : FloorRing K
inst✝ : Fintype ι
m : E
h : m ∈ span ℤ (Set.range ↑b)
i : ι
⊢ ↑⌈↑(↑b.repr m) i⌉ = ↑(↑b.repr m) i

tactic: rw [← hz]
state_before: case intro
E : Type u_1
ι : Type u_2
K : Type u_3
inst✝⁴ : NormedLinearOrderedField K
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace K E
b : Basis ι K E
inst✝¹ : FloorRing K
inst✝ : Fintype ι
m : E
h : m ∈ span ℤ (Set.range ↑b)
i : ι
z : ℤ
hz : ↑(algebraMap ℤ K) z = ↑(↑b.repr m) i
⊢ ↑⌈↑(↑b.repr m) i⌉ = ↑(↑b.repr m) i

tactic: exact congr_arg (Int.cast : ℤ → K) (Int.ceil_intCast z)
state_before: case intro
E : Type u_1
ι : Type u_2
K : Type u_3
inst✝⁴ : NormedLinearOrderedField K
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace K E
b : Basis ι K E
inst✝¹ : FloorRing K
inst✝ : Fintype ι
m : E
h : m ∈ span ℤ (Set.range ↑b)
i : ι
z : ℤ
hz : ↑(algebraMap ℤ K) z = ↑(↑b.repr m) i
⊢ ↑⌈↑(algebraMap ℤ K) z⌉ = ↑(algebraMap ℤ K) z
Theorem: CategoryTheory.Presieve.IsSeparatedFor.isSheafFor
File: Mathlib/CategoryTheory/Sites/SheafOfTypes.lean

tactic: rw [← isSeparatedFor_and_exists_isAmalgamation_iff_isSheafFor]
state_before: C : Type u₁
inst✝ : Category C
P Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
J J₂ : GrothendieckTopology C
t : IsSeparatedFor P R
⊢ (∀ (x : FamilyOfElements P R), FamilyOfElements.Compatible x → ∃ t, FamilyOfElements.IsAmalgamation x t) →
    IsSheafFor P R

tactic: exact And.intro t
state_before: C : Type u₁
inst✝ : Category C
P Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
J J₂ : GrothendieckTopology C
t : IsSeparatedFor P R
⊢ (∀ (x : FamilyOfElements P R), FamilyOfElements.Compatible x → ∃ t, FamilyOfElements.IsAmalgamation x t) →
    IsSeparatedFor P R ∧
      ∀ (x : FamilyOfElements P R), FamilyOfElements.Compatible x → ∃ t, FamilyOfElements.IsAmalgamation x t
Theorem: quotient_norm_eq_zero_iff
File: Mathlib/Analysis/Normed/Group/Quotient.lean

tactic: rw [mk'_apply, norm_mk, ← mem_closure_iff_infDist_zero]
state_before: M : Type u_1
N : Type ?u.167794
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
m : M
⊢ ‖↑(mk' S) m‖ = 0 ↔ m ∈ closure ↑S

tactic: exact ⟨0, S.zero_mem⟩
state_before: M : Type u_1
N : Type ?u.167794
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
m : M
⊢ Set.Nonempty ↑S
Theorem: Int.gcd_eq_gcd_ab
File: Mathlib/Data/Int/GCD.lean

tactic: rw [neg_mul_neg]
state_before: m n : ℕ
⊢ ↑(gcd ↑m -[n+1]) = ↑m * gcdA ↑m -[n+1] + -(↑n + 1) * -Nat.gcdB (natAbs ↑m) (Nat.succ n)

tactic: apply Nat.gcd_eq_gcd_ab
state_before: m n : ℕ
⊢ ↑(gcd ↑m -[n+1]) = ↑m * gcdA ↑m -[n+1] + (↑n + 1) * Nat.gcdB (natAbs ↑m) (Nat.succ n)

tactic: rw [neg_mul_neg]
state_before: m n : ℕ
⊢ ↑(gcd -[m+1] ↑n) = -(↑m + 1) * -Nat.gcdA (Nat.succ m) (natAbs ↑n) + ↑n * gcdB -[m+1] ↑n

tactic: apply Nat.gcd_eq_gcd_ab
state_before: m n : ℕ
⊢ ↑(gcd -[m+1] ↑n) = (↑m + 1) * Nat.gcdA (Nat.succ m) (natAbs ↑n) + ↑n * gcdB -[m+1] ↑n

tactic: rw [neg_mul_neg, neg_mul_neg]
state_before: m n : ℕ
⊢ ↑(gcd -[m+1] -[n+1]) =
    -(↑m + 1) * -Nat.gcdA (Nat.succ m) (natAbs -[n+1]) + -(↑n + 1) * -Nat.gcdB (natAbs -[m+1]) (Nat.succ n)

tactic: apply Nat.gcd_eq_gcd_ab
state_before: m n : ℕ
⊢ ↑(gcd -[m+1] -[n+1]) =
    (↑m + 1) * Nat.gcdA (Nat.succ m) (natAbs -[n+1]) + (↑n + 1) * Nat.gcdB (natAbs -[m+1]) (Nat.succ n)
Theorem: Ideal.span_singleton_mul_right_mono
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: simp_rw [span_singleton_mul_le_span_singleton_mul, mul_right_inj' hx,
  exists_eq_right', SetLike.le_def]
state_before: R : Type u
ι : Type ?u.236329
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: iteratedDerivWithin_succ'
File: Mathlib/Analysis/Calculus/IteratedDeriv.lean

tactic: rw [iteratedDerivWithin_eq_iterate hxs hx, iteratedDerivWithin_eq_iterate hxs hx]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type ?u.87857
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x✝ x : 𝕜
hxs : UniqueDiffOn 𝕜 s
hx : x ∈ s
⊢ iteratedDerivWithin (n + 1) f s x = iteratedDerivWithin n (derivWithin f s) s x

tactic: rfl
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type ?u.87857
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x✝ x : 𝕜
hxs : UniqueDiffOn 𝕜 s
hx : x ∈ s
⊢ ((fun g => derivWithin g s)^[n + 1]) f x = ((fun g => derivWithin g s)^[n]) (derivWithin f s) x
Theorem: Matrix.vecMul_cons
File: Mathlib/Data/Matrix/Notation.lean

tactic: ext i
state_before: α : Type u
o n m : ℕ
m' : Type uₘ
n' : Type uₙ
o' : Type uₒ
a b : ℕ
inst✝ : Semiring α
v : Fin (Nat.succ n) → α
w : o' → α
B : Fin n → o' → α
⊢ vecMul v (↑of (vecCons w B)) = vecHead v • w + vecMul (vecTail v) (↑of B)

tactic: simp [vecMul]
state_before: case h
α : Type u
o n m : ℕ
m' : Type uₘ
n' : Type uₙ
o' : Type uₒ
a b : ℕ
inst✝ : Semiring α
v : Fin (Nat.succ n) → α
w : o' → α
B : Fin n → o' → α
i : o'
⊢ vecMul v (↑of (vecCons w B)) i = (vecHead v • w + vecMul (vecTail v) (↑of B)) i
Theorem: EquivFunctor.mapEquiv_refl
File: Mathlib/Control/EquivFunctor.lean

tactic: simp [EquivFunctor.mapEquiv]
state_before: f : Type u₀ → Type u₁
inst✝ : EquivFunctor f
α✝ β : Type u₀
e : α✝ ≃ β
α : Type u₀
⊢ mapEquiv f (Equiv.refl α) = Equiv.refl (f α)

tactic: rfl
state_before: f : Type u₀ → Type u₁
inst✝ : EquivFunctor f
α✝ β : Type u₀
e : α✝ ≃ β
α : Type u₀
⊢ { toFun := id, invFun := id, left_inv := (_ : LeftInverse id id), right_inv := (_ : Function.RightInverse id id) } =
    Equiv.refl (f α)
Theorem: TensorProduct.ext_threefold
File: Mathlib/LinearAlgebra/TensorProduct.lean

tactic: ext x y z
state_before: R : Type u_1
inst✝¹⁴ : CommSemiring R
R' : Type ?u.714453
inst✝¹³ : Monoid R'
R'' : Type ?u.714459
inst✝¹² : Semiring R''
M : Type u_4
N : Type u_3
P : Type u_2
Q : Type u_5
S : Type ?u.714477
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid N
inst✝⁹ : AddCommMonoid P
inst✝⁸ : AddCommMonoid Q
inst✝⁷ : AddCommMonoid S
inst✝⁶ : Module R M
inst✝⁵ : Module R N
inst✝⁴ : Module R P
inst✝³ : Module R Q
inst✝² : Module R S
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
f : M →ₗ[R] N →ₗ[R] P
g h : (M ⊗[R] N) ⊗[R] P →ₗ[R] Q
H : ∀ (x : M) (y : N) (z : P), ↑g ((x ⊗ₜ[R] y) ⊗ₜ[R] z) = ↑h ((x ⊗ₜ[R] y) ⊗ₜ[R] z)
⊢ g = h

tactic: exact H x y z
state_before: case H.H.h.h.h
R : Type u_1
inst✝¹⁴ : CommSemiring R
R' : Type ?u.714453
inst✝¹³ : Monoid R'
R'' : Type ?u.714459
inst✝¹² : Semiring R''
M : Type u_4
N : Type u_3
P : Type u_2
Q : Type u_5
S : Type ?u.714477
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid N
inst✝⁹ : AddCommMonoid P
inst✝⁸ : AddCommMonoid Q
inst✝⁷ : AddCommMonoid S
inst✝⁶ : Module R M
inst✝⁵ : Module R N
inst✝⁴ : Module R P
inst✝³ : Module R Q
inst✝² : Module R S
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
f : M →ₗ[R] N →ₗ[R] P
g h : (M ⊗[R] N) ⊗[R] P →ₗ[R] Q
H : ∀ (x : M) (y : N) (z : P), ↑g ((x ⊗ₜ[R] y) ⊗ₜ[R] z) = ↑h ((x ⊗ₜ[R] y) ⊗ₜ[R] z)
x : M
y : N
z : P
⊢ ↑(↑(↑(LinearMap.compr₂ (mk R M N) (LinearMap.compr₂ (mk R (M ⊗[R] N) P) g)) x) y) z =
    ↑(↑(↑(LinearMap.compr₂ (mk R M N) (LinearMap.compr₂ (mk R (M ⊗[R] N) P) h)) x) y) z
Theorem: TopCat.Presheaf.stalkSpecializes_stalkFunctor_map
File: Mathlib/Topology/Sheaves/Stalks.lean

tactic: change (_ : colimit _ ⟶  _) = (_ : colimit _ ⟶  _)
state_before: C : Type u
inst✝¹ : Category C
inst✝ : HasColimits C
X Y Z : TopCat
F G : Presheaf C X
f : F ⟶ G
x y : ↑X
h : x ⤳ y
⊢ stalkSpecializes F h ≫ (stalkFunctor C x).map f = (stalkFunctor C y).map f ≫ stalkSpecializes G h

tactic: ext
state_before: C : Type u
inst✝¹ : Category C
inst✝ : HasColimits C
X Y Z : TopCat
F G : Presheaf C X
f : F ⟶ G
x y : ↑X
h : x ⤳ y
⊢ stalkSpecializes F h ≫ (stalkFunctor C x).map f = (stalkFunctor C y).map f ≫ stalkSpecializes G h

tactic: delta stalkFunctor
state_before: case w
C : Type u
inst✝¹ : Category C
inst✝ : HasColimits C
X Y Z : TopCat
F G : Presheaf C X
f : F ⟶ G
x y : ↑X
h : x ⤳ y
j✝ : (OpenNhds y)ᵒᵖ
⊢ colimit.ι (((whiskeringLeft (OpenNhds y)ᵒᵖ (Opens ↑X)ᵒᵖ C).obj (Functor.op (OpenNhds.inclusion y))).obj F) j✝ ≫
      stalkSpecializes F h ≫ (stalkFunctor C x).map f =
    colimit.ι (((whiskeringLeft (OpenNhds y)ᵒᵖ (Opens ↑X)ᵒᵖ C).obj (Functor.op (OpenNhds.inclusion y))).obj F) j✝ ≫
      (stalkFunctor C y).map f ≫ stalkSpecializes G h

tactic: simpa [stalkSpecializes] using by rfl
state_before: case w
C : Type u
inst✝¹ : Category C
inst✝ : HasColimits C
X Y Z : TopCat
F G : Presheaf C X
f : F ⟶ G
x y : ↑X
h : x ⤳ y
j✝ : (OpenNhds y)ᵒᵖ
⊢ colimit.ι (((whiskeringLeft (OpenNhds y)ᵒᵖ (Opens ↑X)ᵒᵖ C).obj (Functor.op (OpenNhds.inclusion y))).obj F) j✝ ≫
      stalkSpecializes F h ≫
        ((whiskeringLeft (OpenNhds x)ᵒᵖ (Opens ↑X)ᵒᵖ C).obj (Functor.op (OpenNhds.inclusion x)) ⋙ colim).map f =
    colimit.ι (((whiskeringLeft (OpenNhds y)ᵒᵖ (Opens ↑X)ᵒᵖ C).obj (Functor.op (OpenNhds.inclusion y))).obj F) j✝ ≫
      ((whiskeringLeft (OpenNhds y)ᵒᵖ (Opens ↑X)ᵒᵖ C).obj (Functor.op (OpenNhds.inclusion y)) ⋙ colim).map f ≫
        stalkSpecializes G h

tactic: rfl
state_before: C : Type u
inst✝¹ : Category C
inst✝ : HasColimits C
X Y Z : TopCat
F G : Presheaf C X
f : F ⟶ G
x y : ↑X
h : x ⤳ y
j✝ : (OpenNhds y)ᵒᵖ
⊢ f.app j✝.unop.obj.op ≫
      colimit.ι (Functor.op (OpenNhds.inclusion x) ⋙ G)
        { obj := j✝.unop.obj, property := (_ : x ∈ j✝.unop.obj.carrier) }.op =
    f.app ((OpenNhds.inclusion y).obj j✝.unop).op ≫
      colimit.ι (Functor.op (OpenNhds.inclusion x) ⋙ G)
        { obj := j✝.unop.obj, property := (_ : x ∈ j✝.unop.obj.carrier) }.op
Theorem: Cardinal.mkRat
File: Mathlib/Data/Rat/Denumerable.lean

tactic: simp only [mk_eq_aleph0]
state_before: ⊢ (#ℚ) = ℵ₀
Theorem: FirstOrder.Language.Embedding.ofInjective_toHom
File: Mathlib/ModelTheory/Basic.lean

tactic: ext
state_before: L : Language
L' : Language
M : Type w
N : Type w'
inst✝⁴ : Structure L M
inst✝³ : Structure L N
P : Type ?u.148304
inst✝² : Structure L P
Q : Type ?u.148312
inst✝¹ : Structure L Q
inst✝ : IsAlgebraic L
f : M →[L] N
hf : Function.Injective ↑f
⊢ toHom (ofInjective hf) = f

tactic: simp
state_before: case h
L : Language
L' : Language
M : Type w
N : Type w'
inst✝⁴ : Structure L M
inst✝³ : Structure L N
P : Type ?u.148304
inst✝² : Structure L P
Q : Type ?u.148312
inst✝¹ : Structure L Q
inst✝ : IsAlgebraic L
f : M →[L] N
hf : Function.Injective ↑f
x✝ : M
⊢ ↑(toHom (ofInjective hf)) x✝ = ↑f x✝
Theorem: IntermediateField.induction_on_adjoin_finset
File: Mathlib/FieldTheory/Adjoin.lean

tactic: refine' Finset.induction_on' S _ (fun ha _ _ h => _)
state_before: F : Type u_2
inst✝² : Field F
E : Type u_1
inst✝¹ : Field E
inst✝ : Algebra F E
S : Finset E
P : IntermediateField F E → Prop
base : P ⊥
ih : ∀ (K : IntermediateField F E) (x : E), x ∈ S → P K → P (restrictScalars F { x // x ∈ K }⟮x⟯)
⊢ P (adjoin F ↑S)

tactic: simp [base]
state_before: case refine'_1
F : Type u_2
inst✝² : Field F
E : Type u_1
inst✝¹ : Field E
inst✝ : Algebra F E
S : Finset E
P : IntermediateField F E → Prop
base : P ⊥
ih : ∀ (K : IntermediateField F E) (x : E), x ∈ S → P K → P (restrictScalars F { x // x ∈ K }⟮x⟯)
⊢ P (adjoin F ↑∅)

tactic: rw [Finset.coe_insert, Set.insert_eq, Set.union_comm, ← adjoin_adjoin_left]
state_before: case refine'_2
F : Type u_2
inst✝² : Field F
E : Type u_1
inst✝¹ : Field E
inst✝ : Algebra F E
S : Finset E
P : IntermediateField F E → Prop
base : P ⊥
ih : ∀ (K : IntermediateField F E) (x : E), x ∈ S → P K → P (restrictScalars F { x // x ∈ K }⟮x⟯)
a✝ : E
s✝ : Finset E
ha : a✝ ∈ S
x✝¹ : s✝ ⊆ S
x✝ : ¬a✝ ∈ s✝
h : P (adjoin F ↑s✝)
⊢ P (adjoin F ↑(insert a✝ s✝))

tactic: exact ih (adjoin F _) _ ha h
state_before: case refine'_2
F : Type u_2
inst✝² : Field F
E : Type u_1
inst✝¹ : Field E
inst✝ : Algebra F E
S : Finset E
P : IntermediateField F E → Prop
base : P ⊥
ih : ∀ (K : IntermediateField F E) (x : E), x ∈ S → P K → P (restrictScalars F { x // x ∈ K }⟮x⟯)
a✝ : E
s✝ : Finset E
ha : a✝ ∈ S
x✝¹ : s✝ ⊆ S
x✝ : ¬a✝ ∈ s✝
h : P (adjoin F ↑s✝)
⊢ P (restrictScalars F (adjoin { x // x ∈ adjoin F ↑s✝ } {a✝}))
Theorem: LipschitzWith.dist_le_mul_of_le
File: Mathlib/Topology/MetricSpace/Lipschitz.lean

tactic: gcongr
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝² : PseudoMetricSpace α
inst✝¹ : PseudoMetricSpace β
inst✝ : PseudoMetricSpace γ
K : ℝ≥0
f : α → β
x y : α
r : ℝ
hf : LipschitzWith K f
hr : dist x y ≤ r
⊢ ↑K * dist x y ≤ ↑K * r
Theorem: MeasureTheory.Measure.isTopologicalBasis_isOpen_lt_top
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: refine' TopologicalSpace.isTopologicalBasis_of_open_of_nhds (fun s hs => hs.1) _
state_before: α : Type u_1
β : Type ?u.831042
γ : Type ?u.831045
δ : Type ?u.831048
ι : Type ?u.831051
R : Type ?u.831054
R' : Type ?u.831057
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
⊢ TopologicalSpace.IsTopologicalBasis {s | IsOpen s ∧ ↑↑μ s < ⊤}

tactic: intro x s xs hs
state_before: α : Type u_1
β : Type ?u.831042
γ : Type ?u.831045
δ : Type ?u.831048
ι : Type ?u.831051
R : Type ?u.831054
R' : Type ?u.831057
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
⊢ ∀ (a : α) (u : Set α), a ∈ u → IsOpen u → ∃ v, v ∈ {s | IsOpen s ∧ ↑↑μ s < ⊤} ∧ a ∈ v ∧ v ⊆ u

tactic: rcases μ.exists_isOpen_measure_lt_top x with ⟨v, xv, hv, μv⟩
state_before: α : Type u_1
β : Type ?u.831042
γ : Type ?u.831045
δ : Type ?u.831048
ι : Type ?u.831051
R : Type ?u.831054
R' : Type ?u.831057
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
x : α
s : Set α
xs : x ∈ s
hs : IsOpen s
⊢ ∃ v, v ∈ {s | IsOpen s ∧ ↑↑μ s < ⊤} ∧ x ∈ v ∧ v ⊆ s

tactic: refine' ⟨v ∩ s, ⟨hv.inter hs, lt_of_le_of_lt _ μv⟩, ⟨xv, xs⟩, inter_subset_right _ _⟩
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.831042
γ : Type ?u.831045
δ : Type ?u.831048
ι : Type ?u.831051
R : Type ?u.831054
R' : Type ?u.831057
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
x : α
s : Set α
xs : x ∈ s
hs : IsOpen s
v : Set α
xv : x ∈ v
hv : IsOpen v
μv : ↑↑μ v < ⊤
⊢ ∃ v, v ∈ {s | IsOpen s ∧ ↑↑μ s < ⊤} ∧ x ∈ v ∧ v ⊆ s

tactic: exact measure_mono (inter_subset_left _ _)
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.831042
γ : Type ?u.831045
δ : Type ?u.831048
ι : Type ?u.831051
R : Type ?u.831054
R' : Type ?u.831057
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
x : α
s : Set α
xs : x ∈ s
hs : IsOpen s
v : Set α
xv : x ∈ v
hv : IsOpen v
μv : ↑↑μ v < ⊤
⊢ ↑↑μ (v ∩ s) ≤ ↑↑μ v
Theorem: Finset.mem_ssubsets
File: Mathlib/Data/Finset/Powerset.lean

tactic: rw [ssubsets, mem_erase, mem_powerset, ssubset_iff_subset_ne, and_comm]
state_before: α : Type u_1
s✝ t✝ : Finset α
inst✝ : DecidableEq α
s t : Finset α
⊢ t ∈ ssubsets s ↔ t ⊂ s
Theorem: measurable_fderiv
File: Mathlib/Analysis/Calculus/FDerivMeasurable.lean

tactic: refine' measurable_of_isClosed fun s hs => _
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
f : E → F
K : Set (E →L[𝕜] F)
inst✝² : MeasurableSpace E
inst✝¹ : OpensMeasurableSpace E
inst✝ : CompleteSpace F
⊢ Measurable (fderiv 𝕜 f)

tactic: have :
  fderiv 𝕜 f ⁻¹' s =
    { x | DifferentiableAt 𝕜 f x ∧ fderiv 𝕜 f x ∈ s } ∪
      { x | ¬DifferentiableAt 𝕜 f x } ∩ { _x | (0 : E →L[𝕜] F) ∈ s } :=
  Set.ext fun x => mem_preimage.trans fderiv_mem_iff
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
f : E → F
K : Set (E →L[𝕜] F)
inst✝² : MeasurableSpace E
inst✝¹ : OpensMeasurableSpace E
inst✝ : CompleteSpace F
s : Set (E →L[𝕜] F)
hs : IsClosed s
⊢ MeasurableSet (fderiv 𝕜 f ⁻¹' s)

tactic: rw [this]
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
f : E → F
K : Set (E →L[𝕜] F)
inst✝² : MeasurableSpace E
inst✝¹ : OpensMeasurableSpace E
inst✝ : CompleteSpace F
s : Set (E →L[𝕜] F)
hs : IsClosed s
this : fderiv 𝕜 f ⁻¹' s = {x | DifferentiableAt 𝕜 f x ∧ fderiv 𝕜 f x ∈ s} ∪ {x | ¬DifferentiableAt 𝕜 f x} ∩ {_x | 0 ∈ s}
⊢ MeasurableSet (fderiv 𝕜 f ⁻¹' s)

tactic: exact
  (measurableSet_of_differentiableAt_of_isComplete _ _ hs.isComplete).union
    ((measurableSet_of_differentiableAt _ _).compl.inter (MeasurableSet.const _))
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
f : E → F
K : Set (E →L[𝕜] F)
inst✝² : MeasurableSpace E
inst✝¹ : OpensMeasurableSpace E
inst✝ : CompleteSpace F
s : Set (E →L[𝕜] F)
hs : IsClosed s
this : fderiv 𝕜 f ⁻¹' s = {x | DifferentiableAt 𝕜 f x ∧ fderiv 𝕜 f x ∈ s} ∪ {x | ¬DifferentiableAt 𝕜 f x} ∩ {_x | 0 ∈ s}
⊢ MeasurableSet ({x | DifferentiableAt 𝕜 f x ∧ fderiv 𝕜 f x ∈ s} ∪ {x | ¬DifferentiableAt 𝕜 f x} ∩ {_x | 0 ∈ s})
Theorem: IsUpperSet.smul
File: Mathlib/Algebra/Order/UpperLower.lean

tactic: rintro _ y hxy ⟨x, hx, rfl⟩
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
s t : Set α
a : α
hs : IsUpperSet s
⊢ IsUpperSet (a • s)

tactic: exact mem_smul_set_iff_inv_smul_mem.2 (hs (le_inv_mul_iff_mul_le.2 hxy) hx)
state_before: case intro.intro
α : Type u_1
inst✝ : OrderedCommGroup α
s t : Set α
a : α
hs : IsUpperSet s
y x : α
hx : x ∈ s
hxy : (fun x => a • x) x ≤ y
⊢ y ∈ a • s
Theorem: Set.not_subset
File: Mathlib/Data/Set/Basic.lean

tactic: simp only [subset_def, not_forall, exists_prop]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s s₁ s₂ t t₁ t₂ u : Set α
⊢ ¬s ⊆ t ↔ ∃ a, a ∈ s ∧ ¬a ∈ t