tasksource/leandojo huggingface dataset:
Theorem: padicNorm.dvd_iff_norm_le
File: Mathlib/NumberTheory/Padics/PadicNorm.lean

tactic: unfold padicNorm
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
z : ℤ
⊢ ↑(p ^ n) ∣ z ↔ padicNorm p ↑z ≤ ↑p ^ (-↑n)

tactic: split_ifs with hz
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
z : ℤ
⊢ ↑(p ^ n) ∣ z ↔ (if ↑z = 0 then 0 else ↑p ^ (-padicValRat p ↑z)) ≤ ↑p ^ (-↑n)

tactic: norm_cast at hz
state_before: case inl
p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
z : ℤ
hz : ↑z = 0
⊢ ↑(p ^ n) ∣ z ↔ 0 ≤ ↑p ^ (-↑n)

tactic: simp [hz]
state_before: case inl
p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
z : ℤ
hz : z = 0
⊢ ↑(p ^ n) ∣ z ↔ 0 ≤ ↑p ^ (-↑n)

tactic: rw [zpow_le_iff_le, neg_le_neg_iff, padicValRat.of_int,
  padicValInt.of_ne_one_ne_zero hp.1.ne_one _]
state_before: case inr
p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
z : ℤ
hz : ¬↑z = 0
⊢ ↑(p ^ n) ∣ z ↔ ↑p ^ (-padicValRat p ↑z) ≤ ↑p ^ (-↑n)

tactic: norm_cast
state_before: case inr
p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
z : ℤ
hz : ¬↑z = 0
⊢ ↑(p ^ n) ∣ z ↔ ↑n ≤ ↑(Part.get (multiplicity (↑p) z) (_ : multiplicity.Finite (↑p) z))

tactic: rw [← PartENat.coe_le_coe, PartENat.natCast_get, ← multiplicity.pow_dvd_iff_le_multiplicity,
  Nat.cast_pow]
state_before: case inr
p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
z : ℤ
hz : ¬↑z = 0
⊢ ↑(p ^ n) ∣ z ↔ n ≤ Part.get (multiplicity (↑p) z) (_ : multiplicity.Finite (↑p) z)

tactic: exact_mod_cast hz
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
z : ℤ
hz : ¬↑z = 0
⊢ z ≠ 0

p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
z : ℤ
hz : ¬↑z = 0
⊢ z ≠ 0

tactic: exact_mod_cast hp.1.one_lt
state_before: case inr
p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
z : ℤ
hz : ¬↑z = 0
⊢ 1 < ↑p
Theorem: Submodule.top_orthogonal_eq_bot
File: Mathlib/Analysis/InnerProductSpace/Orthogonal.lean

tactic: ext x
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.84244
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
⊢ ⊤ᗮ = ⊥

tactic: rw [mem_bot, mem_orthogonal]
state_before: case h
𝕜 : Type u_2
E : Type u_1
F : Type ?u.84244
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
x : E
⊢ x ∈ ⊤ᗮ ↔ x ∈ ⊥

tactic: exact
  ⟨fun h => inner_self_eq_zero.mp (h x mem_top), by
    rintro rfl
    simp⟩
state_before: case h
𝕜 : Type u_2
E : Type u_1
F : Type ?u.84244
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
x : E
⊢ (∀ (u : E), u ∈ ⊤ → inner u x = 0) ↔ x = 0

tactic: rintro rfl
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.84244
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
x : E
⊢ x = 0 → ∀ (u : E), u ∈ ⊤ → inner u x = 0

tactic: simp
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.84244
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
⊢ ∀ (u : E), u ∈ ⊤ → inner u 0 = 0
Theorem: WithZeroTopology.singleton_mem_nhds_of_ne_zero
File: Mathlib/Topology/Algebra/WithZeroTopology.lean

tactic: simp [h]
state_before: α : Type ?u.50635
Γ₀ : Type u_1
inst✝ : LinearOrderedCommGroupWithZero Γ₀
γ γ₁ γ₂ : Γ₀
l : Filter α
f : α → Γ₀
h : γ ≠ 0
⊢ {γ} ∈ 𝓝 γ
Theorem: Nat.size_le
File: Mathlib/Data/Nat/Size.lean

tactic: decide
state_before: m n : ℕ
h : size m ≤ n
⊢ 2 > 0

tactic: rw [← one_shiftl]
state_before: m n : ℕ
⊢ m < 2 ^ n → size m ≤ n

tactic: revert n
state_before: m n : ℕ
⊢ m < shiftl 1 n → size m ≤ n

tactic: apply binaryRec _ _ m
state_before: m : ℕ
⊢ ∀ {n : ℕ}, m < shiftl 1 n → size m ≤ n

tactic: intro n
state_before: m : ℕ
⊢ ∀ {n : ℕ}, 0 < shiftl 1 n → size 0 ≤ n

tactic: simp
state_before: m n : ℕ
⊢ 0 < shiftl 1 n → size 0 ≤ n

tactic: intro b m IH n h
state_before: m : ℕ
⊢ ∀ (b : Bool) (n : ℕ),
    (∀ {n_1 : ℕ}, n < shiftl 1 n_1 → size n ≤ n_1) → ∀ {n_1 : ℕ}, bit b n < shiftl 1 n_1 → size (bit b n) ≤ n_1

tactic: by_cases e : bit b m = 0
state_before: m✝ : ℕ
b : Bool
m : ℕ
IH : ∀ {n : ℕ}, m < shiftl 1 n → size m ≤ n
n : ℕ
h : bit b m < shiftl 1 n
⊢ size (bit b m) ≤ n

tactic: rw [size_bit e]
state_before: case neg
m✝ : ℕ
b : Bool
m : ℕ
IH : ∀ {n : ℕ}, m < shiftl 1 n → size m ≤ n
n : ℕ
h : bit b m < shiftl 1 n
e : ¬bit b m = 0
⊢ size (bit b m) ≤ n

tactic: cases' n with n
state_before: case neg
m✝ : ℕ
b : Bool
m : ℕ
IH : ∀ {n : ℕ}, m < shiftl 1 n → size m ≤ n
n : ℕ
h : bit b m < shiftl 1 n
e : ¬bit b m = 0
⊢ succ (size m) ≤ n

tactic: simp [e]
state_before: case pos
m✝ : ℕ
b : Bool
m : ℕ
IH : ∀ {n : ℕ}, m < shiftl 1 n → size m ≤ n
n : ℕ
h : bit b m < shiftl 1 n
e : bit b m = 0
⊢ size (bit b m) ≤ n

tactic: exact e.elim (Nat.eq_zero_of_le_zero (le_of_lt_succ h))
state_before: case neg.zero
m✝ : ℕ
b : Bool
m : ℕ
IH : ∀ {n : ℕ}, m < shiftl 1 n → size m ≤ n
e : ¬bit b m = 0
h : bit b m < shiftl 1 zero
⊢ succ (size m) ≤ zero

tactic: apply succ_le_succ (IH _)
state_before: case neg.succ
m✝ : ℕ
b : Bool
m : ℕ
IH : ∀ {n : ℕ}, m < shiftl 1 n → size m ≤ n
e : ¬bit b m = 0
n : ℕ
h : bit b m < shiftl 1 (succ n)
⊢ succ (size m) ≤ succ n

tactic: apply lt_imp_lt_of_le_imp_le (fun h' => bit0_le_bit _ h') h
state_before: m✝ : ℕ
b : Bool
m : ℕ
IH : ∀ {n : ℕ}, m < shiftl 1 n → size m ≤ n
e : ¬bit b m = 0
n : ℕ
h : bit b m < shiftl 1 (succ n)
⊢ m < shiftl 1 n
Theorem: BoxIntegral.Prepartition.isPartition_splitCenter
File: Mathlib/Analysis/BoxIntegral/Partition/SubboxInduction.lean

tactic: simp [hx]
state_before: ι : Type u_1
inst✝ : Fintype ι
I✝ J I : Box ι
x : ι → ℝ
hx : x ∈ I
⊢ ∃ J, J ∈ splitCenter I ∧ x ∈ J
Theorem: CategoryTheory.Limits.diagonalObjPullbackFstIso_hom_fst_snd
File: Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean

tactic: delta diagonalObjPullbackFstIso
state_before: C : Type u_2
inst✝⁵ : Category C
X✝ Y✝ Z✝ : C
inst✝⁴ : HasPullbacks C
S T : C
f✝ : X✝ ⟶ T
g✝ : Y✝ ⟶ T
i : T ⟶ S
inst✝³ : HasPullback i i
inst✝² : HasPullback f✝ g✝
inst✝¹ : HasPullback (f✝ ≫ i) (g✝ ≫ i)
inst✝ :
  HasPullback (diagonal i)
    (map (f✝ ≫ i) (g✝ ≫ i) i i f✝ g✝ (𝟙 S) (_ : (f✝ ≫ i) ≫ 𝟙 S = f✝ ≫ i) (_ : (g✝ ≫ i) ≫ 𝟙 S = g✝ ≫ i))
X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
⊢ (diagonalObjPullbackFstIso f g).hom ≫ fst ≫ snd = snd ≫ snd

tactic: simp
state_before: C : Type u_2
inst✝⁵ : Category C
X✝ Y✝ Z✝ : C
inst✝⁴ : HasPullbacks C
S T : C
f✝ : X✝ ⟶ T
g✝ : Y✝ ⟶ T
i : T ⟶ S
inst✝³ : HasPullback i i
inst✝² : HasPullback f✝ g✝
inst✝¹ : HasPullback (f✝ ≫ i) (g✝ ≫ i)
inst✝ :
  HasPullback (diagonal i)
    (map (f✝ ≫ i) (g✝ ≫ i) i i f✝ g✝ (𝟙 S) (_ : (f✝ ≫ i) ≫ 𝟙 S = f✝ ≫ i) (_ : (g✝ ≫ i) ≫ 𝟙 S = g✝ ≫ i))
X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
⊢ (pullbackRightPullbackFstIso f g fst ≪≫
          congrHom (_ : fst ≫ f = snd ≫ g) (_ : g = g) ≪≫
            pullbackAssoc f g g g ≪≫ pullbackSymmetry f (fst ≫ g) ≪≫ congrHom (_ : fst ≫ g = snd ≫ g) (_ : f = f)).hom ≫
      fst ≫ snd =
    snd ≫ snd
Theorem: Stream'.Seq.ofList_cons
File: Mathlib/Data/Seq/Seq.lean

tactic: ext1 (_ | n) <;> rfl
state_before: α : Type u
β : Type v
γ : Type w
a : α
l : List α
⊢ ↑(a :: l) = cons a ↑l
Theorem: UniformSpace.mem_nhds_iff
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: rw [nhds_eq_comap_uniformity, mem_comap]
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort ?u.59770
inst✝ : UniformSpace α
x : α
s : Set α
⊢ s ∈ 𝓝 x ↔ ∃ V, V ∈ 𝓤 α ∧ ball x V ⊆ s

tactic: exact Iff.rfl
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort ?u.59770
inst✝ : UniformSpace α
x : α
s : Set α
⊢ (∃ t, t ∈ 𝓤 α ∧ Prod.mk x ⁻¹' t ⊆ s) ↔ ∃ V, V ∈ 𝓤 α ∧ ball x V ⊆ s
Theorem: mul_inv_cancel_right₀
File: Mathlib/Algebra/GroupWithZero/Basic.lean

tactic: simp [h]
state_before: α : Type ?u.14144
M₀ : Type ?u.14147
G₀ : Type u_1
M₀' : Type ?u.14153
G₀' : Type ?u.14156
F : Type ?u.14159
F' : Type ?u.14162
inst✝ : GroupWithZero G₀
a✝ b c g h✝ x : G₀
h : b ≠ 0
a : G₀
⊢ a * (b * b⁻¹) = a
Theorem: Group.exists_list_of_mem_closure
File: Mathlib/Deprecated/Subgroup.lean

tactic: rw [inv_inv]
state_before: G : Type u_1
H : Type ?u.125874
A : Type ?u.125877
a✝ a₁ a₂ b c : G
inst✝ : Group G
s✝ s : Set G
a : G
h : a ∈ closure s
x✝² : G
x✝¹ : InClosure s x✝²
x✝ : ∃ l, (∀ (x : G), x ∈ l → x ∈ s ∨ x⁻¹ ∈ s) ∧ List.prod l = x✝²
L : List G
HL1 : ∀ (x : G), x ∈ L → x ∈ s ∨ x⁻¹ ∈ s
HL2 : List.prod L = x✝²
x : G
hx : x ∈ List.map Inv.inv (List.reverse L)
y : G
hy1 : y ∈ List.reverse L
hy2 : y⁻¹ = x
⊢ y ∈ s → y⁻¹⁻¹ ∈ s

tactic: exact id
state_before: G : Type u_1
H : Type ?u.125874
A : Type ?u.125877
a✝ a₁ a₂ b c : G
inst✝ : Group G
s✝ s : Set G
a : G
h : a ∈ closure s
x✝² : G
x✝¹ : InClosure s x✝²
x✝ : ∃ l, (∀ (x : G), x ∈ l → x ∈ s ∨ x⁻¹ ∈ s) ∧ List.prod l = x✝²
L : List G
HL1 : ∀ (x : G), x ∈ L → x ∈ s ∨ x⁻¹ ∈ s
HL2 : List.prod L = x✝²
x : G
hx : x ∈ List.map Inv.inv (List.reverse L)
y : G
hy1 : y ∈ List.reverse L
hy2 : y⁻¹ = x
⊢ y ∈ s → y ∈ s

tactic: rw [List.reverse_cons, List.map_append, List.prod_append, ih, List.map_singleton,
  List.prod_cons, List.prod_nil, mul_one, List.prod_cons, mul_inv_rev]
state_before: G : Type u_1
H : Type ?u.125874
A : Type ?u.125877
a✝ a₁ a₂ b c : G
inst✝ : Group G
s✝ s : Set G
a : G
h : a ∈ closure s
x : G
x✝¹ : InClosure s x
x✝ : ∃ l, (∀ (x : G), x ∈ l → x ∈ s ∨ x⁻¹ ∈ s) ∧ List.prod l = x
L : List G
HL1 : ∀ (x : G), x ∈ L → x ∈ s ∨ x⁻¹ ∈ s
HL2 : List.prod L = x
hd : G
tl : List G
ih : List.prod (List.map Inv.inv (List.reverse tl)) = (List.prod tl)⁻¹
⊢ List.prod (List.map Inv.inv (List.reverse (hd :: tl))) = (List.prod (hd :: tl))⁻¹

tactic: rw [List.prod_append, HL2, HL4]
state_before: G : Type u_1
H : Type ?u.125874
A : Type ?u.125877
a✝ a₁ a₂ b c : G
inst✝ : Group G
s✝ s : Set G
a : G
h : a ∈ closure s
x y : G
x✝³ : InClosure s x
x✝² : InClosure s y
x✝¹ : ∃ l, (∀ (x : G), x ∈ l → x ∈ s ∨ x⁻¹ ∈ s) ∧ List.prod l = x
x✝ : ∃ l, (∀ (x : G), x ∈ l → x ∈ s ∨ x⁻¹ ∈ s) ∧ List.prod l = y
L1 : List G
HL1 : ∀ (x : G), x ∈ L1 → x ∈ s ∨ x⁻¹ ∈ s
HL2 : List.prod L1 = x
L2 : List G
HL3 : ∀ (x : G), x ∈ L2 → x ∈ s ∨ x⁻¹ ∈ s
HL4 : List.prod L2 = y
⊢ List.prod (L1 ++ L2) = x * y
Theorem: Polynomial.natDegree_sub
File: Mathlib/Data/Polynomial/Degree/Lemmas.lean

tactic: rw [← natDegree_neg, neg_sub]
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝ : Ring R
p q : R[X]
⊢ natDegree (p - q) = natDegree (q - p)
Theorem: NonUnitalRingHom.map_srange
File: Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean

tactic: simpa only [srange_eq_map] using (⊤ : NonUnitalSubsemiring R).map_map g f
state_before: R : Type u
S : Type v
T : Type w
inst✝⁴ : NonUnitalNonAssocSemiring R
M : Subsemigroup R
inst✝³ : NonUnitalNonAssocSemiring S
inst✝² : NonUnitalNonAssocSemiring T
F : Type ?u.189375
G : Type ?u.189378
inst✝¹ : NonUnitalRingHomClass F R S
inst✝ : NonUnitalRingHomClass G S T
f✝ : F
g✝ : G
g : S →ₙ+* T
f : R →ₙ+* S
⊢ map g (srange f) = srange (comp g f)
Theorem: TensorAlgebra.lift_ι_apply
File: Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean

tactic: conv_rhs => rw [← ι_comp_lift f]
state_before: R : Type u_2
inst✝⁴ : CommSemiring R
M : Type u_3
inst✝³ : AddCommMonoid M
inst✝² : Module R M
A : Type u_1
inst✝¹ : Semiring A
inst✝ : Algebra R A
f : M →ₗ[R] A
x : M
⊢ ↑(↑(lift R) f) (↑(ι R) x) = ↑f x
Theorem: Multiset.map_hcongr
File: Mathlib/Data/Multiset/Basic.lean

tactic: subst h
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.112268
β' : Type u_1
m : Multiset α
f : α → β
f' : α → β'
h : β = β'
hf : ∀ (a : α), a ∈ m → HEq (f a) (f' a)
⊢ HEq (map f m) (map f' m)

tactic: simp at hf
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.112268
m : Multiset α
f f' : α → β
hf : ∀ (a : α), a ∈ m → HEq (f a) (f' a)
⊢ HEq (map f m) (map f' m)

tactic: simp [map_congr rfl hf]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.112268
m : Multiset α
f f' : α → β
hf : ∀ (a : α), a ∈ m → f a = f' a
⊢ HEq (map f m) (map f' m)
Theorem: Polynomial.C_mul_X_pow_eq_monomial
File: Mathlib/Data/Polynomial/Basic.lean

tactic: rw [pow_succ', ← mul_assoc, C_mul_X_pow_eq_monomial, X, monomial_mul_monomial, mul_one]
state_before: R : Type u
a b : R
m n✝ : ℕ
inst✝ : Semiring R
p q : R[X]
n : ℕ
⊢ ↑C a * X ^ (n + 1) = ↑(monomial (n + 1)) a
Theorem: frontier_Iic'
File: Mathlib/Topology/Order/Basic.lean

tactic: simp [frontier, ha]
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
a : α
ha : Set.Nonempty (Ioi a)
⊢ frontier (Iic a) = {a}
Theorem: MvPolynomial.isWeightedHomogeneous_X
File: Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean

tactic: apply isWeightedHomogeneous_monomial
state_before: R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : AddCommMonoid M
w : σ → M
i : σ
⊢ IsWeightedHomogeneous w (X i) (w i)

tactic: simp only [weightedDegree', LinearMap.toAddMonoidHom_coe, total_single, one_nsmul]
state_before: case hm
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : AddCommMonoid M
w : σ → M
i : σ
⊢ ↑(weightedDegree' w) (Finsupp.single i 1) = w i
Theorem: Complex.hasStrictDerivAt_sin
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean

tactic: simp only [cos, div_eq_mul_inv]
state_before: x : ℂ
⊢ HasStrictDerivAt sin (cos x) x

tactic: convert ((((hasStrictDerivAt_id x).neg.mul_const I).cexp.sub
  ((hasStrictDerivAt_id x).mul_const I).cexp).mul_const I).mul_const (2 : ℂ)⁻¹ using 1
state_before: x : ℂ
⊢ HasStrictDerivAt sin ((exp (x * I) + exp (-x * I)) * 2⁻¹) x

tactic: simp only [Function.comp, id]
state_before: case h.e'_7
x : ℂ
⊢ (exp (x * I) + exp (-x * I)) * 2⁻¹ = (exp (-id x * I) * (-1 * I) - exp (id x * I) * (1 * I)) * I * 2⁻¹

tactic: rw [sub_mul, mul_assoc, mul_assoc, I_mul_I, neg_one_mul, neg_neg, mul_one, one_mul, mul_assoc,
  I_mul_I, mul_neg_one, sub_neg_eq_add, add_comm]
state_before: case h.e'_7
x : ℂ
⊢ (exp (x * I) + exp (-x * I)) * 2⁻¹ = (exp (-x * I) * (-1 * I) - exp (x * I) * (1 * I)) * I * 2⁻¹
Theorem: Int.floor_sub_nat
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [← Int.cast_ofNat, floor_sub_int]
state_before: F : Type ?u.136124
α : Type u_1
β : Type ?u.136130
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a : α
n : ℕ
⊢ ⌊a - ↑n⌋ = ⌊a⌋ - ↑n
Theorem: Convex.openSegment_interior_closure_subset_interior
File: Mathlib/Analysis/Convex/Topology.lean

tactic: rintro _ ⟨a, b, ha, hb, hab, rfl⟩
state_before: ι : Type ?u.99733
𝕜 : Type u_2
E : Type u_1
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
x y : E
hx : x ∈ interior s
hy : y ∈ closure s
⊢ openSegment 𝕜 x y ⊆ interior s

tactic: exact hs.combo_interior_closure_mem_interior hx hy ha hb.le hab
state_before: case intro.intro.intro.intro.intro
ι : Type ?u.99733
𝕜 : Type u_2
E : Type u_1
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
x y : E
hx : x ∈ interior s
hy : y ∈ closure s
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ a • x + b • y ∈ interior s
Theorem: Rat.divInt_ofNat
File: Std/Data/Rat/Lemmas.lean

tactic: simp [divInt, normalize_eq_mkRat]
state_before: num : Int
den : Nat
⊢ num /. ↑den = mkRat num den
Theorem: UniformSpace.ring_sep_rel
File: Mathlib/Topology/Algebra/UniformRing.lean

tactic: rfl
state_before: α✝ : Type ?u.320437
α : Type u_1
inst✝³ : CommRing α
inst✝² : UniformSpace α
inst✝¹ : UniformAddGroup α
inst✝ : TopologicalRing α
x y : α
⊢ x - y ∈ closure {0} ↔ x - y ∈ Ideal.closure ⊥
Theorem: Urysohns.CU.approx_le_approx_of_U_sub_C
File: Mathlib/Topology/UrysohnsLemma.lean

tactic: by_cases hx : x ∈ c₁.U
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
c₁ c₂ : CU X
h : c₁.U ⊆ c₂.C
n₁ n₂ : ℕ
x : X
⊢ approx n₂ c₂ x ≤ approx n₁ c₁ x

tactic: calc
  approx n₂ c₂ x = 0 := approx_of_mem_C _ _ (h hx)
  _ ≤ approx n₁ c₁ x := approx_nonneg _ _ _
state_before: case pos
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
c₁ c₂ : CU X
h : c₁.U ⊆ c₂.C
n₁ n₂ : ℕ
x : X
hx : x ∈ c₁.U
⊢ approx n₂ c₂ x ≤ approx n₁ c₁ x

tactic: calc
  approx n₂ c₂ x ≤ 1 := approx_le_one _ _ _
  _ = approx n₁ c₁ x := (approx_of_nmem_U _ _ hx).symm
state_before: case neg
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : NormalSpace X
c₁ c₂ : CU X
h : c₁.U ⊆ c₂.C
n₁ n₂ : ℕ
x : X
hx : ¬x ∈ c₁.U
⊢ approx n₂ c₂ x ≤ approx n₁ c₁ x
Theorem: Finset.prod_subset
File: Mathlib/Algebra/BigOperators/Basic.lean

tactic: simpa
state_before: ι : Type ?u.332466
β : Type u
α : Type v
γ : Type w
s s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : CommMonoid β
h : s₁ ⊆ s₂
hf : ∀ (x : α), x ∈ s₂ → ¬x ∈ s₁ → f x = 1
this : DecidableEq α
⊢ ∀ (x : α), x ∈ s₂ \ s₁ → f x = 1
Theorem: archimedean_iff_rat_lt
File: Mathlib/Algebra/Order/Archimedean.lean

tactic: simpa only [Rat.cast_coe_nat] using (@Rat.cast_le α _ _ _).2 (Nat.le_ceil _)
state_before: α : Type u_1
inst✝ : LinearOrderedField α
H : ∀ (x : α), ∃ q, x < ↑q
x : α
q : ℚ
h : x < ↑q
⊢ ↑q ≤ ↑⌈q⌉₊
Theorem: HasStrictFDerivAt.smul_const
File: Mathlib/Analysis/Calculus/FDeriv/Mul.lean

tactic: simpa only [smul_zero, zero_add] using hc.smul (hasStrictFDerivAt_const f x)
state_before: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
F : Type u_4
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
G : Type ?u.564161
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : NormedSpace 𝕜 G
G' : Type ?u.564256
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
𝕜' : Type u_3
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
c : E → 𝕜'
c' : E →L[𝕜] 𝕜'
hc : HasStrictFDerivAt c c' x
f : F
⊢ HasStrictFDerivAt (fun y => c y • f) (smulRight c' f) x
Theorem: Orthonormal.equiv_trans
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: simp only [LinearIsometryEquiv.trans_apply, Orthonormal.equiv_apply, e.coe_trans,
  Function.comp_apply]
state_before: 𝕜 : Type u_2
E : Type u_3
F : Type ?u.3089731
inst✝⁸ : IsROrC 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : InnerProductSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace ℝ F
dec_E : DecidableEq E
ι : Type u_1
ι' : Type u_4
ι'' : Type u_6
E' : Type u_5
inst✝³ : NormedAddCommGroup E'
inst✝² : InnerProductSpace 𝕜 E'
E'' : Type u_7
inst✝¹ : NormedAddCommGroup E''
inst✝ : InnerProductSpace 𝕜 E''
v : Basis ι 𝕜 E
hv : Orthonormal 𝕜 ↑v
v' : Basis ι' 𝕜 E'
hv' : Orthonormal 𝕜 ↑v'
e : ι ≃ ι'
v'' : Basis ι'' 𝕜 E''
hv'' : Orthonormal 𝕜 ↑v''
e' : ι' ≃ ι''
i : ι
⊢ ↑(LinearIsometryEquiv.trans (equiv hv hv' e) (equiv hv' hv'' e')) (↑v i) = ↑(equiv hv hv'' (e.trans e')) (↑v i)
Theorem: DifferentiableWithinAt.pow
File: Mathlib/Analysis/Calculus/FDeriv/Mul.lean

tactic: simp only [pow_zero, differentiableWithinAt_const]
state_before: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
F : Type ?u.794920
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
G : Type ?u.795015
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : NormedSpace 𝕜 G
G' : Type ?u.795110
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
𝔸 : Type u_3
𝔸' : Type ?u.797248
inst✝³ : NormedRing 𝔸
inst✝² : NormedCommRing 𝔸'
inst✝¹ : NormedAlgebra 𝕜 𝔸
inst✝ : NormedAlgebra 𝕜 𝔸'
a b : E → 𝔸
a' b' : E →L[𝕜] 𝔸
c d : E → 𝔸'
c' d' : E →L[𝕜] 𝔸'
ha : DifferentiableWithinAt 𝕜 a s x
⊢ DifferentiableWithinAt 𝕜 (fun x => a x ^ 0) s x

tactic: simp only [pow_succ, DifferentiableWithinAt.pow ha n, ha.mul]
state_before: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
F : Type ?u.794920
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
G : Type ?u.795015
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : NormedSpace 𝕜 G
G' : Type ?u.795110
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
𝔸 : Type u_3
𝔸' : Type ?u.797248
inst✝³ : NormedRing 𝔸
inst✝² : NormedCommRing 𝔸'
inst✝¹ : NormedAlgebra 𝕜 𝔸
inst✝ : NormedAlgebra 𝕜 𝔸'
a b : E → 𝔸
a' b' : E →L[𝕜] 𝔸
c d : E → 𝔸'
c' d' : E →L[𝕜] 𝔸'
ha : DifferentiableWithinAt 𝕜 a s x
n : ℕ
⊢ DifferentiableWithinAt 𝕜 (fun x => a x ^ (n + 1)) s x
Theorem: Stream'.WSeq.LiftRelO.swap
File: Mathlib/Data/Seq/WSeq.lean

tactic: funext x y
state_before: α : Type u
β : Type v
γ : Type w
R : α → β → Prop
C : WSeq α → WSeq β → Prop
⊢ Function.swap (LiftRelO R C) = LiftRelO (Function.swap R) (Function.swap C)

tactic: cases' x with x <;> [skip; cases x] <;>
  (cases' y with y <;> [skip; cases y] <;> rfl)
state_before: case h.h
α : Type u
β : Type v
γ : Type w
R : α → β → Prop
C : WSeq α → WSeq β → Prop
x : Option (β × WSeq β)
y : Option (α × WSeq α)
⊢ Function.swap (LiftRelO R C) x y = LiftRelO (Function.swap R) (Function.swap C) x y

tactic: cases' y with y <;> [skip; cases y] <;> rfl
state_before: case h.h.some.mk
α : Type u
β : Type v
γ : Type w
R : α → β → Prop
C : WSeq α → WSeq β → Prop
y : Option (α × WSeq α)
fst✝ : β
snd✝ : WSeq β
⊢ Function.swap (LiftRelO R C) (some (fst✝, snd✝)) y =
    LiftRelO (Function.swap R) (Function.swap C) (some (fst✝, snd✝)) y
Theorem: MeasureTheory.set_integral_indicatorConstLp
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

tactic: rw [set_integral_congr_ae hs (indicatorConstLp_coeFn.mono fun x hx _ => hx)]
state_before: α : Type u_1
β : Type ?u.125170
E : Type u_2
F : Type ?u.125176
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
l l' : Filter α
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
p : ℝ≥0∞
hs : MeasurableSet s
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
x : E
⊢ (∫ (a : α) in s, ↑↑(indicatorConstLp p ht hμt x) a ∂μ) = ∫ (a : α) in s, indicator t (fun x_1 => x) a ∂μ

tactic: rw [integral_indicator_const _ ht, Measure.restrict_apply ht]
state_before: α : Type u_1
β : Type ?u.125170
E : Type u_2
F : Type ?u.125176
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
l l' : Filter α
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
p : ℝ≥0∞
hs : MeasurableSet s
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
x : E
⊢ (∫ (a : α) in s, indicator t (fun x_1 => x) a ∂μ) = ENNReal.toReal (↑↑μ (t ∩ s)) • x
Theorem: CategoryTheory.NatTrans.mono_iff_mono_app
File: Mathlib/CategoryTheory/Adjunction/Evaluation.lean

tactic: constructor
state_before: C : Type u₁
inst✝² : Category C
D : Type u₂
inst✝¹ : Category D
inst✝ : ∀ (a b : C), HasCoproductsOfShape (a ⟶ b) D
F G : C ⥤ D
η : F ⟶ G
⊢ Mono η ↔ ∀ (c : C), Mono (η.app c)

tactic: intro h c
state_before: case mp
C : Type u₁
inst✝² : Category C
D : Type u₂
inst✝¹ : Category D
inst✝ : ∀ (a b : C), HasCoproductsOfShape (a ⟶ b) D
F G : C ⥤ D
η : F ⟶ G
⊢ Mono η → ∀ (c : C), Mono (η.app c)

tactic: exact (inferInstance : Mono (((evaluation _ _).obj c).map η))
state_before: case mp
C : Type u₁
inst✝² : Category C
D : Type u₂
inst✝¹ : Category D
inst✝ : ∀ (a b : C), HasCoproductsOfShape (a ⟶ b) D
F G : C ⥤ D
η : F ⟶ G
h : Mono η
c : C
⊢ Mono (η.app c)

tactic: intro _
state_before: case mpr
C : Type u₁
inst✝² : Category C
D : Type u₂
inst✝¹ : Category D
inst✝ : ∀ (a b : C), HasCoproductsOfShape (a ⟶ b) D
F G : C ⥤ D
η : F ⟶ G
⊢ (∀ (c : C), Mono (η.app c)) → Mono η

tactic: apply NatTrans.mono_of_mono_app
state_before: case mpr
C : Type u₁
inst✝² : Category C
D : Type u₂
inst✝¹ : Category D
inst✝ : ∀ (a b : C), HasCoproductsOfShape (a ⟶ b) D
F G : C ⥤ D
η : F ⟶ G
a✝ : ∀ (c : C), Mono (η.app c)
⊢ Mono η