tasksource/leandojo huggingface dataset:
Theorem: isSimpleOrder_iff_isSimpleOrder_orderDual
File: Mathlib/Order/Atoms.lean

tactic: constructor <;> intro i <;> haveI := i
state_before: α : Type u_1
β : Type ?u.22369
inst✝¹ : LE α
inst✝ : BoundedOrder α
⊢ IsSimpleOrder α ↔ IsSimpleOrder αᵒᵈ

tactic: exact
  { exists_pair_ne := @exists_pair_ne α _
    eq_bot_or_eq_top := fun a => Or.symm (eq_bot_or_eq_top (OrderDual.ofDual a) : _ ∨ _) }
state_before: case mp
α : Type u_1
β : Type ?u.22369
inst✝¹ : LE α
inst✝ : BoundedOrder α
i this : IsSimpleOrder α
⊢ IsSimpleOrder αᵒᵈ

tactic: exact
  { exists_pair_ne := @exists_pair_ne αᵒᵈ _
    eq_bot_or_eq_top := fun a => Or.symm (eq_bot_or_eq_top (OrderDual.toDual a)) }
state_before: case mpr
α : Type u_1
β : Type ?u.22369
inst✝¹ : LE α
inst✝ : BoundedOrder α
i this : IsSimpleOrder αᵒᵈ
⊢ IsSimpleOrder α
Theorem: ENNReal.tsum_mul_right
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: simp [mul_comm, ENNReal.tsum_mul_left]
state_before: α : Type u_1
β : Type ?u.255728
γ : Type ?u.255731
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f g : α → ℝ≥0∞
⊢ (∑' (i : α), f i * a) = (∑' (i : α), f i) * a
Theorem: Polynomial.card_support_C_mul_X_pow_le_one
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: rw [← card_singleton n]
state_before: R : Type u
S : Type v
a b c✝ d : R
n✝ m : ℕ
inst✝ : Semiring R
p q r : R[X]
c : R
n : ℕ
⊢ card (support (↑C c * X ^ n)) ≤ 1

tactic: apply card_le_of_subset (support_C_mul_X_pow' n c)
state_before: R : Type u
S : Type v
a b c✝ d : R
n✝ m : ℕ
inst✝ : Semiring R
p q r : R[X]
c : R
n : ℕ
⊢ card (support (↑C c * X ^ n)) ≤ card {n}
Theorem: Finset.prod_X_add_C_coeff
File: Mathlib/RingTheory/Polynomial/Vieta.lean

tactic: rw [Finset.prod, prod_X_add_C_coeff' _ r h, Finset.esymm_map_val]
state_before: R : Type u_2
inst✝ : CommSemiring R
σ : Type u_1
s : Finset σ
r : σ → R
k : ℕ
h : k ≤ Finset.card s
⊢ coeff (∏ i in s, (X + ↑C (r i))) k = ∑ t in Finset.powersetLen (Finset.card s - k) s, ∏ i in t, r i

tactic: rfl
state_before: R : Type u_2
inst✝ : CommSemiring R
σ : Type u_1
s : Finset σ
r : σ → R
k : ℕ
h : k ≤ Finset.card s
⊢ ∑ t in Finset.powersetLen (↑card s.val - k) s, Finset.prod t r =
    ∑ t in Finset.powersetLen (Finset.card s - k) s, ∏ i in t, r i
Theorem: Quaternion.normSq_eq_norm_mul_self
File: Mathlib/Analysis/Quaternion.lean

tactic: rw [← inner_self, real_inner_self_eq_norm_mul_norm]
state_before: a : ℍ
⊢ ↑normSq a = ‖a‖ * ‖a‖
Theorem: ContinuousLinearMap.coe_sum'
File: Mathlib/Topology/Algebra/Module/Basic.lean

tactic: simp only [← coe_coe, coe_sum, LinearMap.coeFn_sum]
state_before: R₁ : Type u_2
R₂ : Type u_3
R₃ : Type ?u.490150
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type ?u.490237
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type ?u.490255
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type ?u.490264
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
ι : Type u_1
t : Finset ι
f : ι → M₁ →SL[σ₁₂] M₂
⊢ ↑(∑ d in t, f d) = ∑ d in t, ↑(f d)
Theorem: Subring.coe_iInf
File: Mathlib/RingTheory/Subring/Basic.lean

tactic: simp only [iInf, coe_sInf, Set.biInter_range]
state_before: R : Type u
S✝ : Type v
T : Type w
inst✝² : Ring R
inst✝¹ : Ring S✝
inst✝ : Ring T
ι : Sort u_1
S : ι → Subring R
⊢ ↑(⨅ (i : ι), S i) = ⋂ (i : ι), ↑(S i)
Theorem: HasDerivWithinAt.iterate
File: Mathlib/Analysis/Calculus/Deriv/Comp.lean

tactic: have := HasFDerivWithinAt.iterate hf hx hs n
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f✝ f₀ f₁ g : 𝕜 → F
f'✝ f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type ?u.188381
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
f : 𝕜 → 𝕜
f' : 𝕜
hf : HasDerivWithinAt f f' s x
hx : f x = x
hs : MapsTo f s s
n : ℕ
⊢ HasDerivWithinAt (f^[n]) (f' ^ n) s x

tactic: rwa [ContinuousLinearMap.smulRight_one_pow] at this
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f✝ f₀ f₁ g : 𝕜 → F
f'✝ f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type ?u.188381
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
f : 𝕜 → 𝕜
f' : 𝕜
hf : HasDerivWithinAt f f' s x
hx : f x = x
hs : MapsTo f s s
n : ℕ
this : HasFDerivWithinAt (f^[n]) (smulRight 1 f' ^ n) s x
⊢ HasDerivWithinAt (f^[n]) (f' ^ n) s x
Theorem: List.get_take'
File: Mathlib/Data/List/Basic.lean

tactic: simp [le_refl]
state_before: ι : Type ?u.167475
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ L : List α
j : ℕ
i : Fin (length (take j L))
⊢ length (take j L) ≤ length L

tactic: let ⟨i, hi⟩ := i
state_before: ι : Type ?u.167475
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ L : List α
j : ℕ
i : Fin (length (take j L))
⊢ get (take j L) i = get L { val := ↑i, isLt := (_ : ↑i < length L) }

tactic: simp at hi
state_before: ι : Type ?u.167475
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ L : List α
j : ℕ
i✝ : Fin (length (take j L))
i : ℕ
hi : i < length (take j L)
⊢ get (take j L) { val := i, isLt := hi } =
    get L { val := ↑{ val := i, isLt := hi }, isLt := (_ : ↑{ val := i, isLt := hi } < length L) }

tactic: rw [get_take L _ hi.1]
state_before: ι : Type ?u.167475
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ L : List α
j : ℕ
i✝ : Fin (length (take j L))
i : ℕ
hi✝ : i < length (take j L)
hi : i < j ∧ i < length L
⊢ get (take j L) { val := i, isLt := hi✝ } =
    get L { val := ↑{ val := i, isLt := hi✝ }, isLt := (_ : ↑{ val := i, isLt := hi✝ } < length L) }
Theorem: MultilinearMap.curryFinFinset_apply_const
File: Mathlib/LinearAlgebra/Multilinear/Basic.lean

tactic: refine' (curryFinFinset_symm_apply_piecewise_const hk hl _ _ _).symm.trans _
state_before: R : Type u
ι : Type u'
n✝ : ℕ
M : Fin (Nat.succ n✝) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝⁶ : CommSemiring R
inst✝⁵ : (i : Fin (Nat.succ n✝)) → AddCommMonoid (M i)
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M₂
inst✝² : (i : Fin (Nat.succ n✝)) → Module R (M i)
inst✝¹ : Module R M'
inst✝ : Module R M₂
ι' : Type ?u.771381
k l n : ℕ
s : Finset (Fin n)
hk : Finset.card s = k
hl : Finset.card (sᶜ) = l
f : MultilinearMap R (fun x => M') M₂
x y : M'
⊢ (↑(↑(↑(curryFinFinset R M₂ M' hk hl) f) fun x_1 => x) fun x => y) = ↑f (Finset.piecewise s (fun x_1 => x) fun x => y)

tactic: rw [LinearEquiv.symm_apply_apply]
state_before: R : Type u
ι : Type u'
n✝ : ℕ
M : Fin (Nat.succ n✝) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝⁶ : CommSemiring R
inst✝⁵ : (i : Fin (Nat.succ n✝)) → AddCommMonoid (M i)
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M₂
inst✝² : (i : Fin (Nat.succ n✝)) → Module R (M i)
inst✝¹ : Module R M'
inst✝ : Module R M₂
ι' : Type ?u.771381
k l n : ℕ
s : Finset (Fin n)
hk : Finset.card s = k
hl : Finset.card (sᶜ) = l
f : MultilinearMap R (fun x => M') M₂
x y : M'
⊢ ↑(↑(LinearEquiv.symm (curryFinFinset R M₂ M' hk hl)) (↑(curryFinFinset R M₂ M' hk hl) f))
      (Finset.piecewise s (fun x_1 => x) fun x => y) =
    ↑f (Finset.piecewise s (fun x_1 => x) fun x => y)
Theorem: Finset.disjiUnion_filter_eq_of_maps_to
File: Mathlib/Data/Finset/Basic.lean

tactic: simp_rw [disjoint_left, mem_filter]
state_before: α : Type ?u.492925
β : Type ?u.492928
γ : Type ?u.492931
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : α → Finset β
inst✝ : DecidableEq β
s : Finset α
t : Finset β
f : α → β
h : ∀ (x : α), x ∈ s → f x ∈ t
x' : β
hx : x' ∈ ↑t
y' : β
hy : y' ∈ ↑t
hne : x' ≠ y'
⊢ (_root_.Disjoint on fun a => filter (fun c => f c = a) s) x' y'

tactic: rintro i ⟨_, rfl⟩ ⟨_, rfl⟩
state_before: α : Type ?u.492925
β : Type ?u.492928
γ : Type ?u.492931
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : α → Finset β
inst✝ : DecidableEq β
s : Finset α
t : Finset β
f : α → β
h : ∀ (x : α), x ∈ s → f x ∈ t
x' : β
hx : x' ∈ ↑t
y' : β
hy : y' ∈ ↑t
hne : x' ≠ y'
⊢ ∀ ⦃a : α⦄, a ∈ s ∧ f a = x' → ¬(a ∈ s ∧ f a = y')

tactic: exact hne rfl
state_before: case intro.intro
α : Type ?u.492925
β : Type ?u.492928
γ : Type ?u.492931
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : α → Finset β
inst✝ : DecidableEq β
s : Finset α
t : Finset β
f : α → β
h : ∀ (x : α), x ∈ s → f x ∈ t
i : α
left✝¹ : i ∈ s
hx : f i ∈ ↑t
left✝ : i ∈ s
hy : f i ∈ ↑t
hne : f i ≠ f i
⊢ False

tactic: simpa using h b
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.492931
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : α → Finset β
inst✝ : DecidableEq β
s : Finset α
t : Finset β
f : α → β
h : ∀ (x : α), x ∈ s → f x ∈ t
b : α
⊢ b ∈
      disjiUnion t (fun a => filter (fun c => f c = a) s)
        (_ :
          ∀ (x' : β),
            x' ∈ ↑t → ∀ (y' : β), y' ∈ ↑t → x' ≠ y' → (_root_.Disjoint on fun a => filter (fun c => f c = a) s) x' y') ↔
    b ∈ s
Theorem: Polynomial.Monic.mul_right_eq_zero_iff
File: Mathlib/Data/Polynomial/Monic.lean

tactic: by_cases hq : q = 0 <;> simp [h.mul_right_ne_zero, hq]
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p : R[X]
h : Monic p
q : R[X]
⊢ p * q = 0 ↔ q = 0
Theorem: Submodule.smul_mem_span_smul'
File: Mathlib/Algebra/Algebra/Tower.lean

tactic: let ⟨p, q, _hp, hq, hpq⟩ := Set.mem_smul.1 hx
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid A
inst✝⁴ : Module R S
inst✝³ : Module S A
inst✝² : Module R A
inst✝¹ : IsScalarTower R S A
inst✝ : SMulCommClass R S A
s : Set S
hs : span R s = ⊤
t : Set A
k : S
x✝ : A
hx✝ : x✝ ∈ span R (s • t)
x : A
hx : x ∈ s • t
⊢ k • x ∈ span R (s • t)

tactic: rw [← hpq, smul_smul]
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid A
inst✝⁴ : Module R S
inst✝³ : Module S A
inst✝² : Module R A
inst✝¹ : IsScalarTower R S A
inst✝ : SMulCommClass R S A
s : Set S
hs : span R s = ⊤
t : Set A
k : S
x✝ : A
hx✝ : x✝ ∈ span R (s • t)
x : A
hx : x ∈ s • t
p : S
q : A
_hp : p ∈ s
hq : q ∈ t
hpq : p • q = x
⊢ k • x ∈ span R (s • t)

tactic: exact smul_mem_span_smul_of_mem (hs.symm ▸ mem_top) hq
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid A
inst✝⁴ : Module R S
inst✝³ : Module S A
inst✝² : Module R A
inst✝¹ : IsScalarTower R S A
inst✝ : SMulCommClass R S A
s : Set S
hs : span R s = ⊤
t : Set A
k : S
x✝ : A
hx✝ : x✝ ∈ span R (s • t)
x : A
hx : x ∈ s • t
p : S
q : A
_hp : p ∈ s
hq : q ∈ t
hpq : p • q = x
⊢ (k * p) • q ∈ span R (s • t)

tactic: rw [smul_zero]
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid A
inst✝⁴ : Module R S
inst✝³ : Module S A
inst✝² : Module R A
inst✝¹ : IsScalarTower R S A
inst✝ : SMulCommClass R S A
s : Set S
hs : span R s = ⊤
t : Set A
k : S
x : A
hx : x ∈ span R (s • t)
⊢ k • 0 ∈ span R (s • t)

tactic: exact zero_mem _
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid A
inst✝⁴ : Module R S
inst✝³ : Module S A
inst✝² : Module R A
inst✝¹ : IsScalarTower R S A
inst✝ : SMulCommClass R S A
s : Set S
hs : span R s = ⊤
t : Set A
k : S
x : A
hx : x ∈ span R (s • t)
⊢ 0 ∈ span R (s • t)

tactic: rw [smul_add]
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid A
inst✝⁴ : Module R S
inst✝³ : Module S A
inst✝² : Module R A
inst✝¹ : IsScalarTower R S A
inst✝ : SMulCommClass R S A
s : Set S
hs : span R s = ⊤
t : Set A
k : S
x✝ : A
hx : x✝ ∈ span R (s • t)
x y : A
ihx : k • x ∈ span R (s • t)
ihy : k • y ∈ span R (s • t)
⊢ k • (x + y) ∈ span R (s • t)

tactic: exact add_mem ihx ihy
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid A
inst✝⁴ : Module R S
inst✝³ : Module S A
inst✝² : Module R A
inst✝¹ : IsScalarTower R S A
inst✝ : SMulCommClass R S A
s : Set S
hs : span R s = ⊤
t : Set A
k : S
x✝ : A
hx : x✝ ∈ span R (s • t)
x y : A
ihx : k • x ∈ span R (s • t)
ihy : k • y ∈ span R (s • t)
⊢ k • x + k • y ∈ span R (s • t)
Theorem: AddCircle.coe_image_Ico_eq
File: Mathlib/Topology/Instances/AddCircle.lean

tactic: rw [image_eq_range]
state_before: 𝕜 : Type u_1
B : Type ?u.103473
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
⊢ QuotientAddGroup.mk '' Ico a (a + p) = univ

tactic: exact (equivIco p a).symm.range_eq_univ
state_before: 𝕜 : Type u_1
B : Type ?u.103473
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
⊢ (range fun x => ↑↑x) = univ
Theorem: ENat.toNat_sub
File: Mathlib/Data/ENat/Basic.lean

tactic: lift n to ℕ using hn
state_before: m✝ n✝ n : ℕ∞
hn : n ≠ ⊤
m : ℕ∞
⊢ ↑toNat (m - n) = ↑toNat m - ↑toNat n

tactic: induction m using ENat.recTopCoe
state_before: case intro
m✝ n✝ m : ℕ∞
n : ℕ
⊢ ↑toNat (m - ↑n) = ↑toNat m - ↑toNat ↑n

tactic: rw [top_sub_coe, toNat_top, zero_tsub]
state_before: case intro.h₁
m n✝ : ℕ∞
n : ℕ
⊢ ↑toNat (⊤ - ↑n) = ↑toNat ⊤ - ↑toNat ↑n

tactic: rw [← coe_sub, toNat_coe, toNat_coe, toNat_coe]
state_before: case intro.h₂
m n✝ : ℕ∞
n a✝ : ℕ
⊢ ↑toNat (↑a✝ - ↑n) = ↑toNat ↑a✝ - ↑toNat ↑n
Theorem: OreLocalization.mul_one_div
File: Mathlib/RingTheory/OreLocalization/Basic.lean

tactic: simp [oreDiv_mul_char r 1 s t 1 s (by simp)]
state_before: R : Type u_1
inst✝¹ : Monoid R
S : Submonoid R
inst✝ : OreSet S
r : R
s t : { x // x ∈ S }
⊢ r /ₒ s * (1 /ₒ t) = r /ₒ (t * s)

tactic: simp
state_before: R : Type u_1
inst✝¹ : Monoid R
S : Submonoid R
inst✝ : OreSet S
r : R
s t : { x // x ∈ S }
⊢ 1 * ↑s = ↑s * 1
Theorem: MeasureTheory.ProbabilityMeasure.toFiniteMeasure_nonzero
File: Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean

tactic: rw [← FiniteMeasure.mass_nonzero_iff, μ.mass_toFiniteMeasure]
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : ProbabilityMeasure Ω
⊢ toFiniteMeasure μ ≠ 0

tactic: exact one_ne_zero
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : ProbabilityMeasure Ω
⊢ 1 ≠ 0
Theorem: ConvexOn.le_left_of_right_le
File: Mathlib/Analysis/Convex/Function.lean

tactic: obtain ⟨a, b, ha, hb, hab, rfl⟩ := hz
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.547949
α : Type ?u.547952
β : Type u_3
ι : Type ?u.547958
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : AddCommMonoid E
inst✝⁴ : AddCommMonoid F
inst✝³ : LinearOrderedCancelAddCommMonoid β
inst✝² : SMul 𝕜 E
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
s : Set E
f g : E → β
hf : ConvexOn 𝕜 s f
x y z : E
hx : x ∈ s
hy : y ∈ s
hz : z ∈ openSegment 𝕜 x y
hyz : f y ≤ f z
⊢ f z ≤ f x

tactic: exact hf.le_left_of_right_le' hx hy ha hb.le hab hyz
state_before: case intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type ?u.547949
α : Type ?u.547952
β : Type u_3
ι : Type ?u.547958
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : AddCommMonoid E
inst✝⁴ : AddCommMonoid F
inst✝³ : LinearOrderedCancelAddCommMonoid β
inst✝² : SMul 𝕜 E
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
s : Set E
f g : E → β
hf : ConvexOn 𝕜 s f
x y : E
hx : x ∈ s
hy : y ∈ s
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
hyz : f y ≤ f (a • x + b • y)
⊢ f (a • x + b • y) ≤ f x
Theorem: TensorProduct.directSumLeft_symm_lof_tmul
File: Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean

tactic: rw [LinearEquiv.symm_apply_eq, directSumLeft_tmul_lof]
state_before: R : Type u
inst✝¹⁰ : CommRing R
ι₁ : Type v₁
ι₂ : Type v₂
inst✝⁹ : DecidableEq ι₁
inst✝⁸ : DecidableEq ι₂
M₁ : ι₁ → Type w₁
M₁' : Type w₁'
M₂ : ι₂ → Type w₂
M₂' : Type w₂'
inst✝⁷ : (i₁ : ι₁) → AddCommGroup (M₁ i₁)
inst✝⁶ : AddCommGroup M₁'
inst✝⁵ : (i₂ : ι₂) → AddCommGroup (M₂ i₂)
inst✝⁴ : AddCommGroup M₂'
inst✝³ : (i₁ : ι₁) → Module R (M₁ i₁)
inst✝² : Module R M₁'
inst✝¹ : (i₂ : ι₂) → Module R (M₂ i₂)
inst✝ : Module R M₂'
i : ι₁
x : M₁ i
y : M₂'
⊢ ↑(LinearEquiv.symm (directSumLeft R M₁ M₂')) (↑(lof R ι₁ (fun i => M₁ i ⊗[R] M₂') i) (x ⊗ₜ[R] y)) =
    ↑(lof R ι₁ M₁ i) x ⊗ₜ[R] y
Theorem: Complex.exp_mul_I_antiperiodic
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: simpa only [mul_inv_cancel_right₀ I_ne_zero] using exp_antiperiodic.mul_const I_ne_zero
state_before: ⊢ Function.Antiperiodic (fun x => exp (x * I)) ↑π
Theorem: List.removeNth_eq_nthTail
File: Mathlib/Data/List/Basic.lean

tactic: cases l <;> rfl
state_before: ι : Type ?u.108934
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ l : List α
⊢ removeNth l 0 = modifyNthTail tail 0 l
Theorem: Finset.disjoint_biUnion_left
File: Mathlib/Data/Finset/Basic.lean

tactic: refine' s.induction _ _
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.533340
inst✝ : DecidableEq β
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : α → Finset β
s : Finset α
f : α → Finset β
t : Finset β
⊢ _root_.Disjoint (Finset.biUnion s f) t ↔ ∀ (i : α), i ∈ s → _root_.Disjoint (f i) t

tactic: simp only [forall_mem_empty_iff, biUnion_empty, disjoint_empty_left]
state_before: case refine'_1
α : Type u_1
β : Type u_2
γ : Type ?u.533340
inst✝ : DecidableEq β
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : α → Finset β
s : Finset α
f : α → Finset β
t : Finset β
⊢ _root_.Disjoint (Finset.biUnion ∅ f) t ↔ ∀ (i : α), i ∈ ∅ → _root_.Disjoint (f i) t

tactic: intro i s his ih
state_before: case refine'_2
α : Type u_1
β : Type u_2
γ : Type ?u.533340
inst✝ : DecidableEq β
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : α → Finset β
s : Finset α
f : α → Finset β
t : Finset β
⊢ ∀ ⦃a : α⦄ {s : Finset α},
    ¬a ∈ s →
      (_root_.Disjoint (Finset.biUnion s f) t ↔ ∀ (i : α), i ∈ s → _root_.Disjoint (f i) t) →
        (_root_.Disjoint (Finset.biUnion (insert a s) f) t ↔ ∀ (i : α), i ∈ insert a s → _root_.Disjoint (f i) t)

tactic: simp only [disjoint_union_left, biUnion_insert, his, forall_mem_insert, ih]
state_before: case refine'_2
α : Type u_1
β : Type u_2
γ : Type ?u.533340
inst✝ : DecidableEq β
s✝¹ s₁ s₂ : Finset α
t✝ t₁ t₂ : α → Finset β
s✝ : Finset α
f : α → Finset β
t : Finset β
i : α
s : Finset α
his : ¬i ∈ s
ih : _root_.Disjoint (Finset.biUnion s f) t ↔ ∀ (i : α), i ∈ s → _root_.Disjoint (f i) t
⊢ _root_.Disjoint (Finset.biUnion (insert i s) f) t ↔ ∀ (i_1 : α), i_1 ∈ insert i s → _root_.Disjoint (f i_1) t
Theorem: LiouvilleWith.mono
File: Mathlib/NumberTheory/Liouville/LiouvilleWith.lean

tactic: rcases h.exists_pos with ⟨C, hC₀, hC⟩
state_before: p q x y : ℝ
r : ℚ
m : ℤ
n : ℕ
h : LiouvilleWith p x
hle : q ≤ p
⊢ LiouvilleWith q x

tactic: refine ⟨C, hC.mono ?_⟩
state_before: case intro.intro
p q x y : ℝ
r : ℚ
m : ℤ
n : ℕ
h : LiouvilleWith p x
hle : q ≤ p
C : ℝ
hC₀ : 0 < C
hC : ∃ᶠ (n : ℕ) in atTop, 1 ≤ n ∧ ∃ m, x ≠ ↑m / ↑n ∧ abs (x - ↑m / ↑n) < C / ↑n ^ p
⊢ LiouvilleWith q x

tactic: rintro n ⟨hn, m, hne, hlt⟩
state_before: case intro.intro
p q x y : ℝ
r : ℚ
m : ℤ
n : ℕ
h : LiouvilleWith p x
hle : q ≤ p
C : ℝ
hC₀ : 0 < C
hC : ∃ᶠ (n : ℕ) in atTop, 1 ≤ n ∧ ∃ m, x ≠ ↑m / ↑n ∧ abs (x - ↑m / ↑n) < C / ↑n ^ p
⊢ ∀ (x_1 : ℕ),
    (1 ≤ x_1 ∧ ∃ m, x ≠ ↑m / ↑x_1 ∧ abs (x - ↑m / ↑x_1) < C / ↑x_1 ^ p) →
      ∃ m, x ≠ ↑m / ↑x_1 ∧ abs (x - ↑m / ↑x_1) < C / ↑x_1 ^ q

tactic: refine ⟨m, hne, hlt.trans_le <| div_le_div_of_le_left hC₀.le ?_ ?_⟩
state_before: case intro.intro.intro.intro.intro
p q x y : ℝ
r : ℚ
m✝ : ℤ
n✝ : ℕ
h : LiouvilleWith p x
hle : q ≤ p
C : ℝ
hC₀ : 0 < C
hC : ∃ᶠ (n : ℕ) in atTop, 1 ≤ n ∧ ∃ m, x ≠ ↑m / ↑n ∧ abs (x - ↑m / ↑n) < C / ↑n ^ p
n : ℕ
hn : 1 ≤ n
m : ℤ
hne : x ≠ ↑m / ↑n
hlt : abs (x - ↑m / ↑n) < C / ↑n ^ p
⊢ ∃ m, x ≠ ↑m / ↑n ∧ abs (x - ↑m / ↑n) < C / ↑n ^ q

tactic: exacts [rpow_pos_of_pos (Nat.cast_pos.2 hn) _,
  rpow_le_rpow_of_exponent_le (Nat.one_le_cast.2 hn) hle]
state_before: case intro.intro.intro.intro.intro.refine_1
p q x y : ℝ
r : ℚ
m✝ : ℤ
n✝ : ℕ
h : LiouvilleWith p x
hle : q ≤ p
C : ℝ
hC₀ : 0 < C
hC : ∃ᶠ (n : ℕ) in atTop, 1 ≤ n ∧ ∃ m, x ≠ ↑m / ↑n ∧ abs (x - ↑m / ↑n) < C / ↑n ^ p
n : ℕ
hn : 1 ≤ n
m : ℤ
hne : x ≠ ↑m / ↑n
hlt : abs (x - ↑m / ↑n) < C / ↑n ^ p
⊢ 0 < ↑n ^ q

case intro.intro.intro.intro.intro.refine_2
p q x y : ℝ
r : ℚ
m✝ : ℤ
n✝ : ℕ
h : LiouvilleWith p x
hle : q ≤ p
C : ℝ
hC₀ : 0 < C
hC : ∃ᶠ (n : ℕ) in atTop, 1 ≤ n ∧ ∃ m, x ≠ ↑m / ↑n ∧ abs (x - ↑m / ↑n) < C / ↑n ^ p
n : ℕ
hn : 1 ≤ n
m : ℤ
hne : x ≠ ↑m / ↑n
hlt : abs (x - ↑m / ↑n) < C / ↑n ^ p
⊢ ↑n ^ q ≤ ↑n ^ p
Theorem: SimpleGraph.Subgraph.isMatching_iff_forall_degree
File: Mathlib/Combinatorics/SimpleGraph/Matching.lean

tactic: simp only [degree_eq_one_iff_unique_adj, IsMatching]
state_before: V : Type u
G : SimpleGraph V
M✝ M : Subgraph G
inst✝ : (v : V) → Fintype ↑(neighborSet M v)
⊢ IsMatching M ↔ ∀ (v : V), v ∈ M.verts → degree M v = 1
Theorem: volume_regionBetween_eq_integral'
File: Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean

tactic: have h : g - f =ᵐ[μ.restrict s] fun x => Real.toNNReal (g x - f x) :=
  hfg.mono fun x hx => (Real.coe_toNNReal _ <| sub_nonneg.2 hx).symm
state_before: α : Type u_1
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
f g : α → ℝ
s : Set α
inst✝ : SigmaFinite μ
f_int : IntegrableOn f s
g_int : IntegrableOn g s
hs : MeasurableSet s
hfg : f ≤ᶠ[ae (Measure.restrict μ s)] g
⊢ ↑↑(Measure.prod μ volume) (regionBetween f g s) = ENNReal.ofReal (∫ (y : α) in s, (g - f) y ∂μ)

tactic: rw [volume_regionBetween_eq_lintegral f_int.aemeasurable g_int.aemeasurable hs,
  integral_congr_ae h, lintegral_congr_ae,
  lintegral_coe_eq_integral _ ((integrable_congr h).mp (g_int.sub f_int))]
state_before: α : Type u_1
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
f g : α → ℝ
s : Set α
inst✝ : SigmaFinite μ
f_int : IntegrableOn f s
g_int : IntegrableOn g s
hs : MeasurableSet s
hfg : f ≤ᶠ[ae (Measure.restrict μ s)] g
h : g - f =ᶠ[ae (Measure.restrict μ s)] fun x => ↑(Real.toNNReal (g x - f x))
⊢ ↑↑(Measure.prod μ volume) (regionBetween f g s) = ENNReal.ofReal (∫ (y : α) in s, (g - f) y ∂μ)

tactic: dsimp only
state_before: α : Type u_1
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
f g : α → ℝ
s : Set α
inst✝ : SigmaFinite μ
f_int : IntegrableOn f s
g_int : IntegrableOn g s
hs : MeasurableSet s
hfg : f ≤ᶠ[ae (Measure.restrict μ s)] g
h : g - f =ᶠ[ae (Measure.restrict μ s)] fun x => ↑(Real.toNNReal (g x - f x))
⊢ (fun y => ENNReal.ofReal ((g - f) y)) =ᶠ[ae (Measure.restrict μ s)] fun a => ↑(Real.toNNReal (g a - f a))

tactic: rfl
state_before: α : Type u_1
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
f g : α → ℝ
s : Set α
inst✝ : SigmaFinite μ
f_int : IntegrableOn f s
g_int : IntegrableOn g s
hs : MeasurableSet s
hfg : f ≤ᶠ[ae (Measure.restrict μ s)] g
h : g - f =ᶠ[ae (Measure.restrict μ s)] fun x => ↑(Real.toNNReal (g x - f x))
⊢ (fun y => ENNReal.ofReal ((g - f) y)) =ᶠ[ae (Measure.restrict μ s)] fun a => ↑(Real.toNNReal (g a - f a))
Theorem: Wcovby.Ico_subset
File: Mathlib/Order/Cover.lean

tactic: rw [← Icc_diff_right, h.Icc_eq, diff_singleton_subset_iff, pair_comm]
state_before: α : Type u_1
β : Type ?u.17366
inst✝ : PartialOrder α
a b c : α
h : a ⩿ b
⊢ Ico a b ⊆ {a}
Theorem: MeasureTheory.VectorMeasure.ennrealToMeasure_apply
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: rw [ennrealToMeasure, ofMeasurable_apply _ hs]
state_before: α : Type u_1
β : Type ?u.152330
m✝ m : MeasurableSpace α
v : VectorMeasure α ℝ≥0∞
s : Set α
hs : MeasurableSet s
⊢ ↑↑(ennrealToMeasure v) s = ↑v s