tasksource/leandojo huggingface dataset:
Theorem: isGreatest_univ_iff
File: Mathlib/Order/Bounds/Basic.lean

tactic: simp [IsGreatest, mem_upperBounds, IsTop]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝¹ : Preorder α
inst✝ : Preorder β
s t : Set α
a b : α
⊢ IsGreatest univ a ↔ IsTop a
Theorem: mul_one_add_self
File: Mathlib/Algebra/Ring/BooleanRing.lean

tactic: rw [mul_add, mul_one, mul_self, add_self]
state_before: α : Type u_1
β : Type ?u.8793
γ : Type ?u.8796
inst✝ : BooleanRing α
a b : α
⊢ a * (1 + a) = 0
Theorem: MvPolynomial.totalDegree_list_prod
File: Mathlib/Data/MvPolynomial/Variables.lean

tactic: rw [@List.prod_nil (MvPolynomial σ R) _, totalDegree_one]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.469070
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
⊢ totalDegree (List.prod []) ≤ List.sum (List.map totalDegree [])

tactic: rfl
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.469070
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
⊢ 0 ≤ List.sum (List.map totalDegree [])

tactic: rw [@List.prod_cons (MvPolynomial σ R) _, List.map, List.sum_cons]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.469070
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p✝ q p : MvPolynomial σ R
ps : List (MvPolynomial σ R)
⊢ totalDegree (List.prod (p :: ps)) ≤ List.sum (List.map totalDegree (p :: ps))

tactic: exact le_trans (totalDegree_mul _ _) (add_le_add_left (totalDegree_list_prod ps) _)
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.469070
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p✝ q p : MvPolynomial σ R
ps : List (MvPolynomial σ R)
⊢ totalDegree (p * List.prod ps) ≤ totalDegree p + List.sum (List.map totalDegree ps)
Theorem: Matrix.sub_cons
File: Mathlib/Data/Fin/VecNotation.lean

tactic: ext i
state_before: α : Type u
m n o : ℕ
m' : Type ?u.70038
n' : Type ?u.70041
o' : Type ?u.70044
inst✝ : Sub α
v : Fin (Nat.succ n) → α
y : α
w : Fin n → α
⊢ v - vecCons y w = vecCons (vecHead v - y) (vecTail v - w)

tactic: refine' Fin.cases _ _ i <;> simp [vecHead, vecTail]
state_before: case h
α : Type u
m n o : ℕ
m' : Type ?u.70038
n' : Type ?u.70041
o' : Type ?u.70044
inst✝ : Sub α
v : Fin (Nat.succ n) → α
y : α
w : Fin n → α
i : Fin (Nat.succ n)
⊢ (v - vecCons y w) i = vecCons (vecHead v - y) (vecTail v - w) i
Theorem: Turing.PartrecToTM2.trStmts₁_supports'
File: Mathlib/Computability/TMToPartrec.lean

tactic: simp [Finset.union_subset_iff] at H₂
state_before: S : Finset Λ'
q : Λ'
K : Finset Λ'
H₁ : Λ'.Supports S q
H₂ : trStmts₁ q ∪ K ⊆ S
H₃ : K ⊆ S → Supports K S
⊢ Supports (trStmts₁ q ∪ K) S

tactic: exact supports_union.2 ⟨trStmts₁_supports H₁ H₂.1, H₃ H₂.2⟩
state_before: S : Finset Λ'
q : Λ'
K : Finset Λ'
H₁ : Λ'.Supports S q
H₃ : K ⊆ S → Supports K S
H₂ : trStmts₁ q ⊆ S ∧ K ⊆ S
⊢ Supports (trStmts₁ q ∪ K) S
Theorem: Lagrange.derivative_nodal
File: Mathlib/LinearAlgebra/Lagrange.lean

tactic: refine' Finset.induction_on s _ fun _ _ hit IH => _
state_before: F : Type u_1
inst✝¹ : Field F
ι : Type u_2
s : Finset ι
v : ι → F
i : ι
r : ι → F
x : F
inst✝ : DecidableEq ι
⊢ ↑derivative (nodal s v) = ∑ i in s, nodal (Finset.erase s i) v

tactic: rw [nodal_empty, derivative_one, sum_empty]
state_before: case refine'_1
F : Type u_1
inst✝¹ : Field F
ι : Type u_2
s : Finset ι
v : ι → F
i : ι
r : ι → F
x : F
inst✝ : DecidableEq ι
⊢ ↑derivative (nodal ∅ v) = ∑ i in ∅, nodal (Finset.erase ∅ i) v

tactic: rw [nodal_insert_eq_nodal hit, derivative_mul, IH, derivative_sub, derivative_X, derivative_C,
  sub_zero, one_mul, sum_insert hit, mul_sum, erase_insert hit, add_right_inj]
state_before: case refine'_2
F : Type u_1
inst✝¹ : Field F
ι : Type u_2
s : Finset ι
v : ι → F
i : ι
r : ι → F
x : F
inst✝ : DecidableEq ι
x✝¹ : ι
x✝ : Finset ι
hit : ¬x✝¹ ∈ x✝
IH : ↑derivative (nodal x✝ v) = ∑ i in x✝, nodal (Finset.erase x✝ i) v
⊢ ↑derivative (nodal (insert x✝¹ x✝) v) = ∑ i in insert x✝¹ x✝, nodal (Finset.erase (insert x✝¹ x✝) i) v

tactic: refine' sum_congr rfl fun j hjt => _
state_before: case refine'_2
F : Type u_1
inst✝¹ : Field F
ι : Type u_2
s : Finset ι
v : ι → F
i : ι
r : ι → F
x : F
inst✝ : DecidableEq ι
x✝¹ : ι
x✝ : Finset ι
hit : ¬x✝¹ ∈ x✝
IH : ↑derivative (nodal x✝ v) = ∑ i in x✝, nodal (Finset.erase x✝ i) v
⊢ ∑ x in x✝, (X - ↑C (v x✝¹)) * nodal (Finset.erase x✝ x) v = ∑ x in x✝, nodal (Finset.erase (insert x✝¹ x✝) x) v

tactic: rw [nodal_erase_eq_nodal_div (mem_insert_of_mem hjt), nodal_insert_eq_nodal hit,
  EuclideanDomain.mul_div_assoc _ (X_sub_C_dvd_nodal v hjt), nodal_erase_eq_nodal_div hjt]
state_before: case refine'_2
F : Type u_1
inst✝¹ : Field F
ι : Type u_2
s : Finset ι
v : ι → F
i : ι
r : ι → F
x : F
inst✝ : DecidableEq ι
x✝¹ : ι
x✝ : Finset ι
hit : ¬x✝¹ ∈ x✝
IH : ↑derivative (nodal x✝ v) = ∑ i in x✝, nodal (Finset.erase x✝ i) v
j : ι
hjt : j ∈ x✝
⊢ (X - ↑C (v x✝¹)) * nodal (Finset.erase x✝ j) v = nodal (Finset.erase (insert x✝¹ x✝) j) v
Theorem: Real.Angle.expMapCircle_zero
File: Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean

tactic: rw [← Real.Angle.coe_zero, Real.Angle.expMapCircle_coe, _root_.expMapCircle_zero]
state_before: ⊢ expMapCircle 0 = 1
Theorem: Filter.Eventually.choice
File: Mathlib/Order/Filter/Basic.lean

tactic: haveI : Nonempty β := let ⟨_, hx⟩ := h.exists; hx.nonempty
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.174506
ι : Sort x
r : α → β → Prop
l : Filter α
inst✝ : NeBot l
h : ∀ᶠ (x : α) in l, ∃ y, r x y
⊢ ∃ f, ∀ᶠ (x : α) in l, r x (f x)

tactic: choose! f hf using fun x (hx : ∃ y, r x y) => hx
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.174506
ι : Sort x
r : α → β → Prop
l : Filter α
inst✝ : NeBot l
h : ∀ᶠ (x : α) in l, ∃ y, r x y
this : Nonempty β
⊢ ∃ f, ∀ᶠ (x : α) in l, r x (f x)

tactic: exact ⟨f, h.mono hf⟩
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.174506
ι : Sort x
r : α → β → Prop
l : Filter α
inst✝ : NeBot l
h : ∀ᶠ (x : α) in l, ∃ y, r x y
this : Nonempty β
f : α → β
hf : ∀ (x : α), (∃ y, r x y) → r x (f x)
⊢ ∃ f, ∀ᶠ (x : α) in l, r x (f x)
Theorem: Filter.tendsto_const_mul_pow_atBot_iff
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: simp only [← tendsto_neg_atTop_iff, ← neg_mul, tendsto_const_mul_pow_atTop_iff, neg_pos]
state_before: ι : Type ?u.252223
ι' : Type ?u.252226
α : Type u_1
β : Type ?u.252232
γ : Type ?u.252235
inst✝ : LinearOrderedField α
l : Filter β
f : β → α
r c : α
n : ℕ
⊢ Tendsto (fun x => c * x ^ n) atTop atBot ↔ n ≠ 0 ∧ c < 0
Theorem: Int.add_right_comm
File: Std/Data/Int/Lemmas.lean

tactic: rw [Int.add_assoc, Int.add_comm b, ← Int.add_assoc]
state_before: a b c : Int
⊢ a + b + c = a + c + b
Theorem: Cardinal.mul_le_max_of_aleph0_le_left
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: convert mul_le_mul' (le_max_left a b) (le_max_right a b) using 1
state_before: a b : Cardinal
h : ℵ₀ ≤ a
⊢ a * b ≤ max a b

tactic: rw [mul_eq_self]
state_before: case h.e'_4
a b : Cardinal
h : ℵ₀ ≤ a
⊢ max a b = max a b * max a b

tactic: refine' h.trans (le_max_left a b)
state_before: case h.e'_4
a b : Cardinal
h : ℵ₀ ≤ a
⊢ ℵ₀ ≤ max a b
Theorem: SimpleGraph.Subgraph.isPerfectMatching_iff
File: Mathlib/Combinatorics/SimpleGraph/Matching.lean

tactic: refine' ⟨_, fun hm => ⟨fun v _ => hm v, fun v => _⟩⟩
state_before: V : Type u
G : SimpleGraph V
M : Subgraph G
⊢ IsPerfectMatching M ↔ ∀ (v : V), ∃! w, Adj M v w

tactic: rintro ⟨hm, hs⟩ v
state_before: case refine'_1
V : Type u
G : SimpleGraph V
M : Subgraph G
⊢ IsPerfectMatching M → ∀ (v : V), ∃! w, Adj M v w

tactic: exact hm (hs v)
state_before: case refine'_1.intro
V : Type u
G : SimpleGraph V
M : Subgraph G
hm : IsMatching M
hs : IsSpanning M
v : V
⊢ ∃! w, Adj M v w

tactic: obtain ⟨w, hw, -⟩ := hm v
state_before: case refine'_2
V : Type u
G : SimpleGraph V
M : Subgraph G
hm : ∀ (v : V), ∃! w, Adj M v w
v : V
⊢ v ∈ M.verts

tactic: exact M.edge_vert hw
state_before: case refine'_2.intro.intro
V : Type u
G : SimpleGraph V
M : Subgraph G
hm : ∀ (v : V), ∃! w, Adj M v w
v w : V
hw : Adj M v w
⊢ v ∈ M.verts
Theorem: Rat.preimage_cast_Ioc
File: Mathlib/Data/Rat/Cast.lean

tactic: ext x
state_before: F : Type ?u.72759
ι : Type ?u.72762
α : Type ?u.72765
β : Type ?u.72768
K : Type u_1
inst✝ : LinearOrderedField K
a b : ℚ
⊢ Rat.cast ⁻¹' Ioc ↑a ↑b = Ioc a b

tactic: simp
state_before: case h
F : Type ?u.72759
ι : Type ?u.72762
α : Type ?u.72765
β : Type ?u.72768
K : Type u_1
inst✝ : LinearOrderedField K
a b x : ℚ
⊢ x ∈ Rat.cast ⁻¹' Ioc ↑a ↑b ↔ x ∈ Ioc a b
Theorem: unitSphereToUnits_injective
File: Mathlib/Analysis/Normed/Field/UnitBall.lean

tactic: convert congr_arg Units.val h
state_before: 𝕜 : Type u_1
inst✝ : NormedDivisionRing 𝕜
x y : ↑(sphere 0 1)
h : ↑(unitSphereToUnits 𝕜) x = ↑(unitSphereToUnits 𝕜) y
⊢ ↑x = ↑y
Theorem: Con.sup_eq_conGen
File: Mathlib/GroupTheory/Congruence.lean

tactic: rw [conGen_eq]
state_before: M : Type u_1
N : Type ?u.28395
P : Type ?u.28398
inst✝² : Mul M
inst✝¹ : Mul N
inst✝ : Mul P
c✝ c d : Con M
⊢ c ⊔ d = conGen fun x y => ↑c x y ∨ ↑d x y

tactic: apply congr_arg sInf
state_before: M : Type u_1
N : Type ?u.28395
P : Type ?u.28398
inst✝² : Mul M
inst✝¹ : Mul N
inst✝ : Mul P
c✝ c d : Con M
⊢ c ⊔ d = sInf {s | ∀ (x y : M), ↑c x y ∨ ↑d x y → ↑s x y}

tactic: simp only [le_def, or_imp, ← forall_and]
state_before: M : Type u_1
N : Type ?u.28395
P : Type ?u.28398
inst✝² : Mul M
inst✝¹ : Mul N
inst✝ : Mul P
c✝ c d : Con M
⊢ {x | c ≤ x ∧ d ≤ x} = {s | ∀ (x y : M), ↑c x y ∨ ↑d x y → ↑s x y}
Theorem: MeasureTheory.VectorMeasure.restrict_zero
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: by_cases hi : MeasurableSet i
state_before: α : Type u_1
β : Type ?u.474705
m inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
M : Type u_2
inst✝¹ : AddCommMonoid M
inst✝ : TopologicalSpace M
v : VectorMeasure α M
i : Set α
⊢ restrict 0 i = 0

tactic: ext j
state_before: case pos
α : Type u_1
β : Type ?u.474705
m inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
M : Type u_2
inst✝¹ : AddCommMonoid M
inst✝ : TopologicalSpace M
v : VectorMeasure α M
i : Set α
hi : MeasurableSet i
⊢ restrict 0 i = 0

tactic: intro hj
state_before: case pos.h
α : Type u_1
β : Type ?u.474705
m inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
M : Type u_2
inst✝¹ : AddCommMonoid M
inst✝ : TopologicalSpace M
v : VectorMeasure α M
i : Set α
hi : MeasurableSet i
j : Set α
⊢ MeasurableSet j → ↑(restrict 0 i) j = ↑0 j

tactic: rw [restrict_apply 0 hi hj]
state_before: case pos.h
α : Type u_1
β : Type ?u.474705
m inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
M : Type u_2
inst✝¹ : AddCommMonoid M
inst✝ : TopologicalSpace M
v : VectorMeasure α M
i : Set α
hi : MeasurableSet i
j : Set α
hj : MeasurableSet j
⊢ ↑(restrict 0 i) j = ↑0 j

tactic: rfl
state_before: case pos.h
α : Type u_1
β : Type ?u.474705
m inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
M : Type u_2
inst✝¹ : AddCommMonoid M
inst✝ : TopologicalSpace M
v : VectorMeasure α M
i : Set α
hi : MeasurableSet i
j : Set α
hj : MeasurableSet j
⊢ ↑0 (j ∩ i) = ↑0 j

tactic: exact dif_neg hi
state_before: case neg
α : Type u_1
β : Type ?u.474705
m inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
M : Type u_2
inst✝¹ : AddCommMonoid M
inst✝ : TopologicalSpace M
v : VectorMeasure α M
i : Set α
hi : ¬MeasurableSet i
⊢ restrict 0 i = 0
Theorem: AddSubgroup.int_cast_mul_mem_zmultiples
File: Mathlib/GroupTheory/Subgroup/ZPowers.lean

tactic: simpa only [← zsmul_eq_mul] using zsmul_mem_zmultiples r k
state_before: G : Type ?u.29474
inst✝³ : Group G
A : Type ?u.29480
inst✝² : AddGroup A
N : Type ?u.29486
inst✝¹ : Group N
R : Type u_1
inst✝ : Ring R
r : R
k : ℤ
⊢ ↑k * r ∈ zmultiples r
Theorem: List.IsRotated.trans
File: Mathlib/Data/List/Rotate.lean

tactic: rw [rotate_rotate]
state_before: α : Type u
l l' l✝ : List α
n m : ℕ
⊢ rotate l✝ (n + m) = rotate (rotate l✝ n) m
Theorem: List.get?_reverse'
File: Std/Data/List/Lemmas.lean

tactic: simp at h
state_before: α : Type u_1
a : α
l : List α
i : Nat
h : i + 0 + 1 = length (a :: l)
⊢ get? (reverse (a :: l)) i = get? (a :: l) 0

tactic: simp [h, get?_append_right]
state_before: α : Type u_1
a : α
l : List α
i : Nat
h : i = length l
⊢ get? (reverse (a :: l)) i = get? (a :: l) 0

tactic: have := Nat.succ.inj h
state_before: α : Type u_1
a : α
l : List α
i j : Nat
h : i + (j + 1) + 1 = length (a :: l)
⊢ get? (reverse (a :: l)) i = get? (a :: l) (j + 1)

tactic: simp at this ⊢
state_before: α : Type u_1
a : α
l : List α
i j : Nat
h : i + (j + 1) + 1 = length (a :: l)
this : i + (j + 1) = length l
⊢ get? (reverse (a :: l)) i = get? (a :: l) (j + 1)

tactic: rw [get?_append, get?_reverse' _ j this]
state_before: α : Type u_1
a : α
l : List α
i j : Nat
h : i + (j + 1) + 1 = length (a :: l)
this : i + (j + 1) = length l
⊢ get? (reverse l ++ [a]) i = get? l j

tactic: rw [length_reverse, ← this]
state_before: α : Type u_1
a : α
l : List α
i j : Nat
h : i + (j + 1) + 1 = length (a :: l)
this : i + (j + 1) = length l
⊢ i < length (reverse l)

tactic: apply Nat.lt_add_of_pos_right (Nat.succ_pos _)
state_before: α : Type u_1
a : α
l : List α
i j : Nat
h : i + (j + 1) + 1 = length (a :: l)
this : i + (j + 1) = length l
⊢ i < i + (j + 1)
Theorem: MeasureTheory.norm_indicatorConstLp_top
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: rw [Lp.norm_def, snorm_congr_ae indicatorConstLp_coeFn,
  snorm_indicator_const' hs hμs_ne_zero ENNReal.top_ne_zero, ENNReal.top_toReal, _root_.div_zero,
  ENNReal.rpow_zero, mul_one, ENNReal.coe_toReal, coe_nnnorm]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.689528
G : Type ?u.689531
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s ≠ ⊤
c : E
hμs_ne_zero : ↑↑μ s ≠ 0
⊢ ‖indicatorConstLp ⊤ hs hμs c‖ = ‖c‖
Theorem: String.data_drop
File: Std/Data/String/Lemmas.lean

tactic: rw [drop_eq]
state_before: s : String
n : Nat
⊢ (drop s n).data = List.drop n s.data
Theorem: norm_iteratedFDeriv_comp_le
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: simp_rw [← iteratedFDerivWithin_univ] at hC hD ⊢
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝⁹ : NormedAddCommGroup D✝
inst✝⁸ : NormedSpace 𝕜 D✝
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.4345403
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
g : F → G
f : E → F
n : ℕ
N : ℕ∞
hg : ContDiff 𝕜 N g
hf : ContDiff 𝕜 N f
hn : ↑n ≤ N
x : E
C D : ℝ
hC : ∀ (i : ℕ), i ≤ n → ‖iteratedFDeriv 𝕜 i g (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ n → ‖iteratedFDeriv 𝕜 i f x‖ ≤ D ^ i
⊢ ‖iteratedFDeriv 𝕜 n (g ∘ f) x‖ ≤ ↑n ! * C * D ^ n

tactic: exact norm_iteratedFDerivWithin_comp_le hg.contDiffOn hf.contDiffOn hn uniqueDiffOn_univ
  uniqueDiffOn_univ (mapsTo_univ _ _) (mem_univ x) hC hD
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝⁹ : NormedAddCommGroup D✝
inst✝⁸ : NormedSpace 𝕜 D✝
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.4345403
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
g : F → G
f : E → F
n : ℕ
N : ℕ∞
hg : ContDiff 𝕜 N g
hf : ContDiff 𝕜 N f
hn : ↑n ≤ N
x : E
C D : ℝ
hC : ∀ (i : ℕ), i ≤ n → ‖iteratedFDerivWithin 𝕜 i g univ (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ n → ‖iteratedFDerivWithin 𝕜 i f univ x‖ ≤ D ^ i
⊢ ‖iteratedFDerivWithin 𝕜 n (g ∘ f) univ x‖ ≤ ↑n ! * C * D ^ n
Theorem: LocalEquiv.restr_eq_of_source_subset
File: Mathlib/Logic/Equiv/LocalEquiv.lean

tactic: simp [inter_eq_self_of_subset_left h]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.40108
δ : Type ?u.40111
e✝ : LocalEquiv α β
e' : LocalEquiv β γ
e : LocalEquiv α β
s : Set α
h : e.source ⊆ s
⊢ (LocalEquiv.restr e s).source = e.source
Theorem: List.get?_set_eq_of_lt
File: Std/Data/List/Lemmas.lean

tactic: rw [get?_set_eq, get?_eq_get h]
state_before: α : Type u_1
a : α
n : Nat
l : List α
h : n < length l
⊢ get? (set l n a) n = some a

tactic: rfl
state_before: α : Type u_1
a : α
n : Nat
l : List α
h : n < length l
⊢ (fun x => a) <$> some (get l { val := n, isLt := h }) = some a
Theorem: CategoryTheory.Limits.biproduct.matrix_map
File: Mathlib/CategoryTheory/Preadditive/Biproducts.lean

tactic: ext
state_before: C : Type u
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
J : Type
inst✝³ : Fintype J
f✝ : J → C
inst✝² : HasBiproduct f✝
K : Type
inst✝¹ : Fintype K
inst✝ : HasFiniteBiproducts C
f : J → C
g h : K → C
m : (j : J) → (k : K) → f j ⟶ g k
n : (k : K) → g k ⟶ h k
⊢ matrix m ≫ map n = matrix fun j k => m j k ≫ n k

tactic: simp
state_before: case w.w
C : Type u
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
J : Type
inst✝³ : Fintype J
f✝ : J → C
inst✝² : HasBiproduct f✝
K : Type
inst✝¹ : Fintype K
inst✝ : HasFiniteBiproducts C
f : J → C
g h : K → C
m : (j : J) → (k : K) → f j ⟶ g k
n : (k : K) → g k ⟶ h k
j✝¹ : J
j✝ : K
⊢ (ι (fun j => f j) j✝¹ ≫ matrix m ≫ map n) ≫ π (fun b => h b) j✝ =
    (ι (fun j => f j) j✝¹ ≫ matrix fun j k => m j k ≫ n k) ≫ π (fun b => h b) j✝
Theorem: MeasureTheory.set_lintegral_dirac
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: rw [restrict_dirac]
state_before: α : Type u_1
β : Type ?u.1692646
γ : Type ?u.1692649
δ : Type ?u.1692652
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace α
a : α
f : α → ℝ≥0∞
s : Set α
inst✝¹ : MeasurableSingletonClass α
inst✝ : Decidable (a ∈ s)
⊢ (∫⁻ (x : α) in s, f x ∂dirac a) = if a ∈ s then f a else 0

tactic: split_ifs
state_before: α : Type u_1
β : Type ?u.1692646
γ : Type ?u.1692649
δ : Type ?u.1692652
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace α
a : α
f : α → ℝ≥0∞
s : Set α
inst✝¹ : MeasurableSingletonClass α
inst✝ : Decidable (a ∈ s)
⊢ (∫⁻ (x : α), f x ∂if a ∈ s then dirac a else 0) = if a ∈ s then f a else 0

tactic: exact lintegral_dirac _ _
state_before: case inl
α : Type u_1
β : Type ?u.1692646
γ : Type ?u.1692649
δ : Type ?u.1692652
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace α
a : α
f : α → ℝ≥0∞
s : Set α
inst✝¹ : MeasurableSingletonClass α
inst✝ : Decidable (a ∈ s)
h✝ : a ∈ s
⊢ (∫⁻ (x : α), f x ∂dirac a) = f a

tactic: exact lintegral_zero_measure _
state_before: case inr
α : Type u_1
β : Type ?u.1692646
γ : Type ?u.1692649
δ : Type ?u.1692652
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace α
a : α
f : α → ℝ≥0∞
s : Set α
inst✝¹ : MeasurableSingletonClass α
inst✝ : Decidable (a ∈ s)
h✝ : ¬a ∈ s
⊢ (∫⁻ (x : α), f x ∂0) = 0
Theorem: AffineSubspace.SOppSide.exists_sbtw
File: Mathlib/Analysis/Convex/Side.lean

tactic: obtain ⟨p, hp, hw⟩ := wOppSide_iff_exists_wbtw.1 h.wOppSide
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.353300
P : Type u_3
P' : Type ?u.353306
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
h : SOppSide s x y
⊢ ∃ p, p ∈ s ∧ Sbtw R x p y

tactic: refine' ⟨p, hp, hw, _, _⟩
state_before: case intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.353300
P : Type u_3
P' : Type ?u.353306
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
h : SOppSide s x y
p : P
hp : p ∈ s
hw : Wbtw R x p y
⊢ ∃ p, p ∈ s ∧ Sbtw R x p y

tactic: rintro rfl
state_before: case intro.intro.refine'_1
R : Type u_1
V : Type u_2
V' : Type ?u.353300
P : Type u_3
P' : Type ?u.353306
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
h : SOppSide s x y
p : P
hp : p ∈ s
hw : Wbtw R x p y
⊢ p ≠ x

tactic: exact h.2.1 hp
state_before: case intro.intro.refine'_1
R : Type u_1
V : Type u_2
V' : Type ?u.353300
P : Type u_3
P' : Type ?u.353306
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
y p : P
hp : p ∈ s
h : SOppSide s p y
hw : Wbtw R p p y
⊢ False

tactic: rintro rfl
state_before: case intro.intro.refine'_2
R : Type u_1
V : Type u_2
V' : Type ?u.353300
P : Type u_3
P' : Type ?u.353306
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
h : SOppSide s x y
p : P
hp : p ∈ s
hw : Wbtw R x p y
⊢ p ≠ y

tactic: exact h.2.2 hp
state_before: case intro.intro.refine'_2
R : Type u_1
V : Type u_2
V' : Type ?u.353300
P : Type u_3
P' : Type ?u.353306
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x p : P
hp : p ∈ s
h : SOppSide s x p
hw : Wbtw R x p p
⊢ False
Theorem: Submodule.IsOrtho.map_iff
File: Mathlib/Analysis/InnerProductSpace/Orthogonal.lean

tactic: have hf : ∀ p : Submodule 𝕜 E, (p.map f).comap f.toLinearIsometry = p :=
  comap_map_eq_of_injective f.injective
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
f : E ≃ₗᵢ[𝕜] F
U V : Submodule 𝕜 E
h : Submodule.map f U ⟂ Submodule.map f V
⊢ U ⟂ V

tactic: simpa only [hf] using h.comap f.toLinearIsometry
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
f : E ≃ₗᵢ[𝕜] F
U V : Submodule 𝕜 E
h : Submodule.map f U ⟂ Submodule.map f V
hf : ∀ (p : Submodule 𝕜 E), Submodule.comap (LinearIsometryEquiv.toLinearIsometry f) (Submodule.map f p) = p
⊢ U ⟂ V
Theorem: List.formPerm_apply_mem_eq_next
File: Mathlib/GroupTheory/Perm/Cycle/Concrete.lean

tactic: obtain ⟨k, hk, rfl⟩ := nthLe_of_mem hx
state_before: α : Type u_1
inst✝ : DecidableEq α
l l' : List α
hl : Nodup l
x : α
hx : x ∈ l
⊢ ↑(formPerm l) x = next l x hx

tactic: rw [next_nthLe _ hl, formPerm_apply_nthLe _ hl]
state_before: case intro.intro
α : Type u_1
inst✝ : DecidableEq α
l l' : List α
hl : Nodup l
k : ℕ
hk : k < length l
hx : nthLe l k hk ∈ l
⊢ ↑(formPerm l) (nthLe l k hk) = next l (nthLe l k hk) hx
Theorem: SimpleGraph.fromEdgeSet_inf
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: ext (v w)
state_before: ι : Sort ?u.83783
𝕜 : Type ?u.83786
V : Type u
W : Type v
X : Type w
G : SimpleGraph V
G' : SimpleGraph W
a b c u v w : V
e : Sym2 V
s✝ s t : Set (Sym2 V)
⊢ fromEdgeSet s ⊓ fromEdgeSet t = fromEdgeSet (s ∩ t)

tactic: simp only [fromEdgeSet_adj, Set.mem_inter_iff, Ne.def, inf_adj]
state_before: case Adj.h.h.a
ι : Sort ?u.83783
𝕜 : Type ?u.83786
V : Type u
W : Type v
X : Type w
G : SimpleGraph V
G' : SimpleGraph W
a b c u v✝ w✝ : V
e : Sym2 V
s✝ s t : Set (Sym2 V)
v w : V
⊢ Adj (fromEdgeSet s ⊓ fromEdgeSet t) v w ↔ Adj (fromEdgeSet (s ∩ t)) v w

tactic: tauto
state_before: case Adj.h.h.a
ι : Sort ?u.83783
𝕜 : Type ?u.83786
V : Type u
W : Type v
X : Type w
G : SimpleGraph V
G' : SimpleGraph W
a b c u v✝ w✝ : V
e : Sym2 V
s✝ s t : Set (Sym2 V)
v w : V
⊢ (Quotient.mk (Sym2.Rel.setoid V) (v, w) ∈ s ∧ ¬v = w) ∧ Quotient.mk (Sym2.Rel.setoid V) (v, w) ∈ t ∧ ¬v = w ↔
    (Quotient.mk (Sym2.Rel.setoid V) (v, w) ∈ s ∧ Quotient.mk (Sym2.Rel.setoid V) (v, w) ∈ t) ∧ ¬v = w