tasksource/leandojo huggingface dataset:
Theorem: Metric.mk_uniformity_basis_le
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: refine' ⟨fun s => uniformity_basis_dist.mem_iff.trans _⟩
state_before: α : Type u
β✝ : Type v
X : Type ?u.55514
ι : Type ?u.55517
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
β : Type u_1
p : β → Prop
f : β → ℝ
hf₀ : ∀ (x : β), p x → 0 < f x
hf : ∀ (ε : ℝ), 0 < ε → ∃ x, p x ∧ f x ≤ ε
⊢ HasBasis (𝓤 α) p fun x => {p | dist p.fst p.snd ≤ f x}

tactic: constructor
state_before: α : Type u
β✝ : Type v
X : Type ?u.55514
ι : Type ?u.55517
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s✝ : Set α
β : Type u_1
p : β → Prop
f : β → ℝ
hf₀ : ∀ (x : β), p x → 0 < f x
hf : ∀ (ε : ℝ), 0 < ε → ∃ x, p x ∧ f x ≤ ε
s : Set (α × α)
⊢ (∃ i, 0 < i ∧ {p | dist p.fst p.snd < i} ⊆ s) ↔ ∃ i, p i ∧ {p | dist p.fst p.snd ≤ f i} ⊆ s

tactic: rintro ⟨ε, ε₀, hε⟩
state_before: case mp
α : Type u
β✝ : Type v
X : Type ?u.55514
ι : Type ?u.55517
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s✝ : Set α
β : Type u_1
p : β → Prop
f : β → ℝ
hf₀ : ∀ (x : β), p x → 0 < f x
hf : ∀ (ε : ℝ), 0 < ε → ∃ x, p x ∧ f x ≤ ε
s : Set (α × α)
⊢ (∃ i, 0 < i ∧ {p | dist p.fst p.snd < i} ⊆ s) → ∃ i, p i ∧ {p | dist p.fst p.snd ≤ f i} ⊆ s

tactic: rcases exists_between ε₀ with ⟨ε', hε'⟩
state_before: case mp.intro.intro
α : Type u
β✝ : Type v
X : Type ?u.55514
ι : Type ?u.55517
inst✝ : PseudoMetricSpace α
x y z : α
δ ε✝ ε₁ ε₂ : ℝ
s✝ : Set α
β : Type u_1
p : β → Prop
f : β → ℝ
hf₀ : ∀ (x : β), p x → 0 < f x
hf : ∀ (ε : ℝ), 0 < ε → ∃ x, p x ∧ f x ≤ ε
s : Set (α × α)
ε : ℝ
ε₀ : 0 < ε
hε : {p | dist p.fst p.snd < ε} ⊆ s
⊢ ∃ i, p i ∧ {p | dist p.fst p.snd ≤ f i} ⊆ s

tactic: rcases hf ε' hε'.1 with ⟨i, hi, H⟩
state_before: case mp.intro.intro.intro
α : Type u
β✝ : Type v
X : Type ?u.55514
ι : Type ?u.55517
inst✝ : PseudoMetricSpace α
x y z : α
δ ε✝ ε₁ ε₂ : ℝ
s✝ : Set α
β : Type u_1
p : β → Prop
f : β → ℝ
hf₀ : ∀ (x : β), p x → 0 < f x
hf : ∀ (ε : ℝ), 0 < ε → ∃ x, p x ∧ f x ≤ ε
s : Set (α × α)
ε : ℝ
ε₀ : 0 < ε
hε : {p | dist p.fst p.snd < ε} ⊆ s
ε' : ℝ
hε' : 0 < ε' ∧ ε' < ε
⊢ ∃ i, p i ∧ {p | dist p.fst p.snd ≤ f i} ⊆ s

tactic: exact ⟨i, hi, fun x (hx : _ ≤ _) => hε <| lt_of_le_of_lt (le_trans hx H) hε'.2⟩
state_before: case mp.intro.intro.intro.intro.intro
α : Type u
β✝ : Type v
X : Type ?u.55514
ι : Type ?u.55517
inst✝ : PseudoMetricSpace α
x y z : α
δ ε✝ ε₁ ε₂ : ℝ
s✝ : Set α
β : Type u_1
p : β → Prop
f : β → ℝ
hf₀ : ∀ (x : β), p x → 0 < f x
hf : ∀ (ε : ℝ), 0 < ε → ∃ x, p x ∧ f x ≤ ε
s : Set (α × α)
ε : ℝ
ε₀ : 0 < ε
hε : {p | dist p.fst p.snd < ε} ⊆ s
ε' : ℝ
hε' : 0 < ε' ∧ ε' < ε
i : β
hi : p i
H : f i ≤ ε'
⊢ ∃ i, p i ∧ {p | dist p.fst p.snd ≤ f i} ⊆ s

tactic: exact fun ⟨i, hi, H⟩ => ⟨f i, hf₀ i hi, fun x (hx : _ < _) => H (mem_setOf.2 hx.le)⟩
state_before: case mpr
α : Type u
β✝ : Type v
X : Type ?u.55514
ι : Type ?u.55517
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s✝ : Set α
β : Type u_1
p : β → Prop
f : β → ℝ
hf₀ : ∀ (x : β), p x → 0 < f x
hf : ∀ (ε : ℝ), 0 < ε → ∃ x, p x ∧ f x ≤ ε
s : Set (α × α)
⊢ (∃ i, p i ∧ {p | dist p.fst p.snd ≤ f i} ⊆ s) → ∃ i, 0 < i ∧ {p | dist p.fst p.snd < i} ⊆ s
Theorem: dist_inv
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: simp_rw [dist_eq_norm_div, ← norm_inv' (x⁻¹ / y), inv_div, div_inv_eq_mul, mul_comm]
state_before: 𝓕 : Type ?u.635485
𝕜 : Type ?u.635488
α : Type ?u.635491
ι : Type ?u.635494
κ : Type ?u.635497
E : Type u_1
F : Type ?u.635503
G : Type ?u.635506
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
x y : E
⊢ dist x⁻¹ y = dist x y⁻¹
Theorem: PadicInt.norm_int_cast_eq_padic_norm
File: Mathlib/NumberTheory/Padics/PadicIntegers.lean

tactic: simp [norm_def]
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
z : ℤ
⊢ ‖↑z‖ = ‖↑z‖
Theorem: HasDerivAt.clog
File: Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean

tactic: rw [div_eq_inv_mul]
state_before: α : Type ?u.36688
inst✝² : TopologicalSpace α
E : Type ?u.36694
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℂ → ℂ
f' x : ℂ
h₁ : HasDerivAt f f' x
h₂ : 0 < (f x).re ∨ (f x).im ≠ 0
⊢ HasDerivAt (fun t => log (f t)) (f' / f x) x

tactic: exact (hasStrictDerivAt_log h₂).hasDerivAt.comp x h₁
state_before: α : Type ?u.36688
inst✝² : TopologicalSpace α
E : Type ?u.36694
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℂ → ℂ
f' x : ℂ
h₁ : HasDerivAt f f' x
h₂ : 0 < (f x).re ∨ (f x).im ≠ 0
⊢ HasDerivAt (fun t => log (f t)) ((f x)⁻¹ * f') x
Theorem: exp_mem_unitary_of_mem_skewAdjoint
File: Mathlib/Analysis/NormedSpace/Exponential.lean

tactic: rw [unitary.mem_iff, star_exp, skewAdjoint.mem_iff.mp h, ←
  exp_add_of_commute (Commute.refl x).neg_left, ← exp_add_of_commute (Commute.refl x).neg_right,
  add_left_neg, add_right_neg, exp_zero, and_self_iff]
state_before: 𝕂 : Type u_2
𝔸 : Type u_1
𝔹 : Type ?u.368109
inst✝⁷ : IsROrC 𝕂
inst✝⁶ : NormedRing 𝔸
inst✝⁵ : NormedAlgebra 𝕂 𝔸
inst✝⁴ : NormedRing 𝔹
inst✝³ : NormedAlgebra 𝕂 𝔹
inst✝² : CompleteSpace 𝔸
inst✝¹ : StarRing 𝔸
inst✝ : ContinuousStar 𝔸
x : 𝔸
h : x ∈ skewAdjoint 𝔸
⊢ exp 𝕂 x ∈ unitary 𝔸
Theorem: ConvexCone.salient_iff_not_flat
File: Mathlib/Analysis/Convex/Cone/Basic.lean

tactic: simp [Salient, Flat]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.66658
G : Type ?u.66661
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
S✝ S : ConvexCone 𝕜 E
⊢ Salient S ↔ ¬Flat S
Theorem: Finset.inf_sdiff_right
File: Mathlib/Data/Finset/Lattice.lean

tactic: induction' hs using Finset.Nonempty.cons_induction with b b t _ _ h
state_before: F : Type ?u.200836
α : Type u_2
β : Type ?u.200842
γ : Type ?u.200845
ι : Type u_1
κ : Type ?u.200851
inst✝ : BooleanAlgebra α
s : Finset ι
hs : Finset.Nonempty s
f : ι → α
a : α
⊢ (inf s fun b => f b \ a) = inf s f \ a

tactic: rw [inf_singleton, inf_singleton]
state_before: case h₀
F : Type ?u.200836
α : Type u_2
β : Type ?u.200842
γ : Type ?u.200845
ι : Type u_1
κ : Type ?u.200851
inst✝ : BooleanAlgebra α
s : Finset ι
f : ι → α
a : α
b : ι
⊢ (inf {b} fun b => f b \ a) = inf {b} f \ a

tactic: rw [inf_cons, inf_cons, h, inf_sdiff]
state_before: case h₁
F : Type ?u.200836
α : Type u_2
β : Type ?u.200842
γ : Type ?u.200845
ι : Type u_1
κ : Type ?u.200851
inst✝ : BooleanAlgebra α
s : Finset ι
f : ι → α
a : α
b : ι
t : Finset ι
h✝ : ¬b ∈ t
hs✝ : Finset.Nonempty t
h : (inf t fun b => f b \ a) = inf t f \ a
⊢ (inf (cons b t h✝) fun b => f b \ a) = inf (cons b t h✝) f \ a
Theorem: AlgebraicGeometry.RingedSpace.mem_top_basicOpen
File: Mathlib/AlgebraicGeometry/RingedSpace.lean

tactic: trivial
state_before: X : RingedSpace
f : ↑(X.presheaf.obj ⊤.op)
x : ↑↑X.toPresheafedSpace
⊢ x ∈ ⊤
Theorem: Finset.map_singleton
File: Mathlib/Data/Finset/Image.lean

tactic: simp only [coe_map, coe_singleton, Set.image_singleton]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.39238
f✝ : α ↪ β
s : Finset α
f : α ↪ β
a : α
⊢ ↑(map f {a}) = ↑{↑f a}
Theorem: CategoryTheory.ActionCategory.back_coe
File: Mathlib/CategoryTheory/Action.lean

tactic: cases x
state_before: M : Type u_1
inst✝¹ : Monoid M
X : Type u
inst✝ : MulAction M X
x : ActionCategory M X
⊢ { fst := (), snd := ActionCategory.back x } = x

tactic: rfl
state_before: case mk
M : Type u_1
inst✝¹ : Monoid M
X : Type u
inst✝ : MulAction M X
fst✝ : SingleObj M
snd✝ : (actionAsFunctor M X).obj fst✝
⊢ { fst := (), snd := ActionCategory.back { fst := fst✝, snd := snd✝ } } = { fst := fst✝, snd := snd✝ }
Theorem: Complex.normSq_conj
File: Mathlib/Data/Complex/Basic.lean

tactic: simp [normSq]
state_before: z : ℂ
⊢ ↑normSq (↑(starRingEnd ℂ) z) = ↑normSq z
Theorem: Set.image_const_add_Iic
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp [add_comm]
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ (fun x => a + x) '' Iic b = Iic (a + b)
Theorem: Polynomial.natDegree_prod
File: Mathlib/Algebra/Polynomial/BigOperators.lean

tactic: nontriviality R
state_before: R : Type u
ι : Type w
s : Finset ι
inst✝¹ : CommSemiring R
inst✝ : NoZeroDivisors R
f : ι → R[X]
t : Multiset R[X]
h : ∀ (i : ι), i ∈ s → f i ≠ 0
⊢ natDegree (∏ i in s, f i) = ∑ i in s, natDegree (f i)

tactic: apply natDegree_prod'
state_before: R : Type u
ι : Type w
s : Finset ι
inst✝¹ : CommSemiring R
inst✝ : NoZeroDivisors R
f : ι → R[X]
t : Multiset R[X]
h : ∀ (i : ι), i ∈ s → f i ≠ 0
✝ : Nontrivial R
⊢ natDegree (∏ i in s, f i) = ∑ i in s, natDegree (f i)

tactic: rw [prod_ne_zero_iff]
state_before: case h
R : Type u
ι : Type w
s : Finset ι
inst✝¹ : CommSemiring R
inst✝ : NoZeroDivisors R
f : ι → R[X]
t : Multiset R[X]
h : ∀ (i : ι), i ∈ s → f i ≠ 0
✝ : Nontrivial R
⊢ ∏ i in s, leadingCoeff (f i) ≠ 0

tactic: intro x hx
state_before: case h
R : Type u
ι : Type w
s : Finset ι
inst✝¹ : CommSemiring R
inst✝ : NoZeroDivisors R
f : ι → R[X]
t : Multiset R[X]
h : ∀ (i : ι), i ∈ s → f i ≠ 0
✝ : Nontrivial R
⊢ ∀ (a : ι), a ∈ s → leadingCoeff (f a) ≠ 0

tactic: simp [h x hx]
state_before: case h
R : Type u
ι : Type w
s : Finset ι
inst✝¹ : CommSemiring R
inst✝ : NoZeroDivisors R
f : ι → R[X]
t : Multiset R[X]
h : ∀ (i : ι), i ∈ s → f i ≠ 0
✝ : Nontrivial R
x : ι
hx : x ∈ s
⊢ leadingCoeff (f x) ≠ 0
Theorem: CategoryTheory.NonPreadditiveAbelian.neg_add
File: Mathlib/CategoryTheory/Abelian/NonPreadditive.lean

tactic: rw [add_def, neg_sub', add_neg]
state_before: C : Type u
inst✝¹ : Category C
inst✝ : NonPreadditiveAbelian C
X Y : C
a b : X ⟶ Y
⊢ -(a + b) = -a - b
Theorem: CategoryTheory.Quotient.comp_right
File: Mathlib/CategoryTheory/Quotient.lean

tactic: simpa using CompClosure.intro x m₁ m₂ (y ≫ g) h
state_before: C : Type u_2
inst✝ : Category C
r : HomRel C
a b c : C
g : b ⟶ c
a✝ b✝ : C
x : a ⟶ a✝
m₁ m₂ : a✝ ⟶ b✝
y : b✝ ⟶ b
h : r m₁ m₂
⊢ CompClosure r ((x ≫ m₁ ≫ y) ≫ g) ((x ≫ m₂ ≫ y) ≫ g)
Theorem: SimpleGraph.Walk.mem_support_nil_iff
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: simp
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
⊢ u ∈ support nil ↔ u = v
Theorem: Equiv.Perm.subtypeCongr.left_apply
File: Mathlib/Logic/Equiv/Basic.lean

tactic: simp [Perm.subtypeCongr.apply, h]
state_before: ε : Type u_1
p : ε → Prop
inst✝ : DecidablePred p
ep ep' : Perm { a // p a }
en en' : Perm { a // ¬p a }
a : ε
h : p a
⊢ ↑(subtypeCongr ep en) a = ↑(↑ep { val := a, property := h })
Theorem: Module.End.eigenspace_restrict_eq_bot
File: Mathlib/LinearAlgebra/Eigenspace/Basic.lean

tactic: rw [eq_bot_iff]
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End R M
p : Submodule R M
hfp : ∀ (x : M), x ∈ p → ↑f x ∈ p
μ : R
hμp : Disjoint (eigenspace f μ) p
⊢ eigenspace (LinearMap.restrict f hfp) μ = ⊥

tactic: intro x hx
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End R M
p : Submodule R M
hfp : ∀ (x : M), x ∈ p → ↑f x ∈ p
μ : R
hμp : Disjoint (eigenspace f μ) p
⊢ eigenspace (LinearMap.restrict f hfp) μ ≤ ⊥

tactic: simpa using hμp.le_bot ⟨eigenspace_restrict_le_eigenspace f hfp μ ⟨x, hx, rfl⟩, x.prop⟩
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End R M
p : Submodule R M
hfp : ∀ (x : M), x ∈ p → ↑f x ∈ p
μ : R
hμp : Disjoint (eigenspace f μ) p
x : { x // x ∈ p }
hx : x ∈ eigenspace (LinearMap.restrict f hfp) μ
⊢ x ∈ ⊥
Theorem: List.exists_mem_cons
File: Std/Data/List/Lemmas.lean

tactic: simp
state_before: α : Type u_1
p : α → Prop
a : α
l : List α
⊢ (∃ x, x ∈ a :: l ∧ p x) ↔ p a ∨ ∃ x, x ∈ l ∧ p x
Theorem: Int.coprime_iff_nat_coprime
File: Mathlib/RingTheory/Int/Basic.lean

tactic: rw [← gcd_eq_one_iff_coprime, Nat.coprime_iff_gcd_eq_one, gcd_eq_natAbs]
state_before: a b : ℤ
⊢ IsCoprime a b ↔ Nat.coprime (natAbs a) (natAbs b)
Theorem: Filter.sup_prod
File: Mathlib/Order/Filter/Prod.lean

tactic: dsimp only [SProd.sprod]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.5445
δ : Type ?u.5448
ι : Sort ?u.5451
s : Set α
t : Set β
f : Filter α
g✝ : Filter β
f₁ f₂ : Filter α
g : Filter β
⊢ (f₁ ⊔ f₂) ×ˢ g = f₁ ×ˢ g ⊔ f₂ ×ˢ g

tactic: rw [Filter.prod, comap_sup, inf_sup_right, ← Filter.prod, ← Filter.prod]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.5445
δ : Type ?u.5448
ι : Sort ?u.5451
s : Set α
t : Set β
f : Filter α
g✝ : Filter β
f₁ f₂ : Filter α
g : Filter β
⊢ Filter.prod (f₁ ⊔ f₂) g = Filter.prod f₁ g ⊔ Filter.prod f₂ g
Theorem: String.data_dropWhile
File: Std/Data/String/Lemmas.lean

tactic: rw [dropWhile_eq]
state_before: p : Char → Bool
s : String
⊢ (dropWhile s p).data = List.dropWhile p s.data
Theorem: ContinuousMultilinearMap.curry_uncurryRight
File: Mathlib/Analysis/NormedSpace/Multilinear.lean

tactic: ext (m x)
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin (Nat.succ n) → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin (Nat.succ n)) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin (Nat.succ n)) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : ContinuousMultilinearMap 𝕜 (fun i => Ei (↑castSucc i)) (Ei (last n) →L[𝕜] G)
⊢ curryRight (uncurryRight f) = f

tactic: simp only [snoc_last, ContinuousMultilinearMap.curryRight_apply,
  ContinuousMultilinearMap.uncurryRight_apply]
state_before: case H.h
𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin (Nat.succ n) → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin (Nat.succ n)) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin (Nat.succ n)) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : ContinuousMultilinearMap 𝕜 (fun i => Ei (↑castSucc i)) (Ei (last n) →L[𝕜] G)
m : (i : Fin n) → Ei (↑castSucc i)
x : Ei (last n)
⊢ ↑(↑(curryRight (uncurryRight f)) m) x = ↑(↑f m) x

tactic: rw [init_snoc]
state_before: case H.h
𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin (Nat.succ n) → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin (Nat.succ n)) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin (Nat.succ n)) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : ContinuousMultilinearMap 𝕜 (fun i => Ei (↑castSucc i)) (Ei (last n) →L[𝕜] G)
m : (i : Fin n) → Ei (↑castSucc i)
x : Ei (last n)
⊢ ↑(↑f (init (snoc m x))) x = ↑(↑f m) x
Theorem: intervalIntegral.integral_non_aestronglyMeasurable_of_le
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: rwa [uIoc_of_le h]
state_before: ι : Type ?u.11347958
𝕜 : Type ?u.11347961
E : Type u_1
F : Type ?u.11347967
A : Type ?u.11347970
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b : ℝ
f g : ℝ → E
μ : MeasureTheory.Measure ℝ
h : a ≤ b
hf : ¬AEStronglyMeasurable f (Measure.restrict μ (Ioc a b))
⊢ ¬AEStronglyMeasurable (fun x => f x) (Measure.restrict μ (Ι a b))
Theorem: Set.Ici.isAtom_iff
File: Mathlib/Order/Atoms.lean

tactic: rw [← bot_covby_iff]
state_before: α : Type u_1
β : Type ?u.6700
inst✝ : PartialOrder α
a b✝ : α
b : ↑(Ici a)
⊢ IsAtom b ↔ a ⋖ ↑b

tactic: refine' (Set.OrdConnected.apply_covby_apply_iff (OrderEmbedding.subtype fun c => a ≤ c) _).symm
state_before: α : Type u_1
β : Type ?u.6700
inst✝ : PartialOrder α
a b✝ : α
b : ↑(Ici a)
⊢ ⊥ ⋖ b ↔ a ⋖ ↑b

tactic: simpa only [OrderEmbedding.subtype_apply, Subtype.range_coe_subtype] using Set.ordConnected_Ici
state_before: α : Type u_1
β : Type ?u.6700
inst✝ : PartialOrder α
a b✝ : α
b : ↑(Ici a)
⊢ OrdConnected (range ↑(OrderEmbedding.subtype fun c => a ≤ c))
Theorem: CategoryTheory.Limits.biproduct.ι_π_self
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

tactic: simp [biproduct.ι_π]
state_before: J : Type w
C : Type u
inst✝² : Category C
inst✝¹ : HasZeroMorphisms C
f : J → C
inst✝ : HasBiproduct f
j : J
⊢ ι f j ≫ π f j = 𝟙 (f j)
Theorem: Ordinal.principal_add_of_principal_mul
File: Mathlib/SetTheory/Ordinal/Principal.lean

tactic: cases' lt_or_gt_of_ne ho₂ with ho₁ ho₂
state_before: o : Ordinal
ho : Principal (fun x x_1 => x * x_1) o
ho₂ : o ≠ 2
⊢ Principal (fun x x_1 => x + x_1) o

tactic: replace ho₁ : o < succ 1 := by simpa using ho₁
state_before: case inl
o : Ordinal
ho : Principal (fun x x_1 => x * x_1) o
ho₂ : o ≠ 2
ho₁ : o < 2
⊢ Principal (fun x x_1 => x + x_1) o

tactic: rw [lt_succ_iff] at ho₁
state_before: case inl
o : Ordinal
ho : Principal (fun x x_1 => x * x_1) o
ho₂ : o ≠ 2
ho₁ : o < succ 1
⊢ Principal (fun x x_1 => x + x_1) o

tactic: exact principal_add_of_le_one ho₁
state_before: case inl
o : Ordinal
ho : Principal (fun x x_1 => x * x_1) o
ho₂ : o ≠ 2
ho₁ : o ≤ 1
⊢ Principal (fun x x_1 => x + x_1) o

tactic: simpa using ho₁
state_before: o : Ordinal
ho : Principal (fun x x_1 => x * x_1) o
ho₂ : o ≠ 2
ho₁ : o < 2
⊢ o < succ 1

tactic: refine' fun a b hao hbo => lt_of_le_of_lt _ (ho (max_lt hao hbo) ho₂)
state_before: case inr
o : Ordinal
ho : Principal (fun x x_1 => x * x_1) o
ho₂✝ : o ≠ 2
ho₂ : o > 2
⊢ Principal (fun x x_1 => x + x_1) o

tactic: dsimp only
state_before: case inr
o : Ordinal
ho : Principal (fun x x_1 => x * x_1) o
ho₂✝ : o ≠ 2
ho₂ : o > 2
a b : Ordinal
hao : a < o
hbo : b < o
⊢ (fun x x_1 => x + x_1) a b ≤ (fun x x_1 => x * x_1) (max a b) 2

tactic: rw [← one_add_one_eq_two, mul_add, mul_one]
state_before: case inr
o : Ordinal
ho : Principal (fun x x_1 => x * x_1) o
ho₂✝ : o ≠ 2
ho₂ : o > 2
a b : Ordinal
hao : a < o
hbo : b < o
⊢ a + b ≤ max a b * 2

tactic: exact add_le_add (le_max_left a b) (le_max_right a b)
state_before: case inr
o : Ordinal
ho : Principal (fun x x_1 => x * x_1) o
ho₂✝ : o ≠ 2
ho₂ : o > 2
a b : Ordinal
hao : a < o
hbo : b < o
⊢ a + b ≤ max a b + max a b
Theorem: Int.ceil_eq_on_Ioc'
File: Mathlib/Algebra/Order/Floor.lean

tactic: exact_mod_cast ceil_eq_on_Ioc z a ha
state_before: F : Type ?u.227030
α : Type u_1
β : Type ?u.227036
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z✝ : ℤ
a✝ : α
z : ℤ
a : α
ha : a ∈ Ioc (↑z - 1) ↑z
⊢ ↑⌈a⌉ = ↑z
Theorem: Matrix.cramer_one
File: Mathlib/LinearAlgebra/Matrix/Adjugate.lean

tactic: refine LinearMap.pi_ext' (fun (i : n) => LinearMap.ext_ring (funext (fun (j : n) => ?_)))
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
⊢ cramer 1 = 1

tactic: convert congr_fun (cramer_row_self (1 : Matrix n n α) (Pi.single i 1) i _) j
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
i j : n
⊢ ↑(LinearMap.comp (cramer 1) (LinearMap.single i)) 1 j = ↑(LinearMap.comp 1 (LinearMap.single i)) 1 j

tactic: simp
state_before: case h.e'_3.h.e'_1
m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
i j : n
⊢ 1 = det 1

tactic: intro j
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
i j : n
⊢ ∀ (j : n), Pi.single i 1 j = OfNat.ofNat 1 j i

tactic: rw [Matrix.one_eq_pi_single, Pi.single_comm]
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
i j✝ j : n
⊢ Pi.single i 1 j = OfNat.ofNat 1 j i
Theorem: Balanced.starConvex
File: Mathlib/Analysis/Convex/Gauge.lean

tactic: rwa [Real.norm_of_nonneg ha₀]
state_before: 𝕜 : Type ?u.84393
E : Type u_1
F : Type ?u.84399
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a✝ : ℝ
hs : Balanced ℝ s
x : E
hx : x ∈ s
a : ℝ
ha₀ : 0 ≤ a
ha₁ : a ≤ 1
⊢ ‖a‖ ≤ 1
Theorem: Set.neg_mem_center
File: Mathlib/GroupTheory/Subsemigroup/Center.lean

tactic: rw [← neg_mul_comm, ha (-c), neg_mul_comm]
state_before: M : Type u_1
inst✝ : Ring M
a : M
ha : a ∈ center M
c : M
⊢ c * -a = -a * c
Theorem: QuaternionAlgebra.Basis.j_mul_k
File: Mathlib/Algebra/QuaternionBasis.lean

tactic: rw [← i_mul_j, ← mul_assoc, j_mul_i, neg_mul, k_mul_j, neg_smul]
state_before: R : Type u_2
A : Type u_1
B : Type ?u.31470
inst✝⁴ : CommRing R
inst✝³ : Ring A
inst✝² : Ring B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
c₁ c₂ : R
q : Basis A c₁ c₂
⊢ q.j * q.k = -c₂ • q.i
Theorem: Polynomial.derivative_comp
File: Mathlib/Data/Polynomial/Derivative.lean

tactic: induction p using Polynomial.induction_on'
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : CommSemiring R
p q : R[X]
⊢ ↑derivative (comp p q) = ↑derivative q * comp (↑derivative p) q

tactic: simp [*, mul_add]
state_before: case h_add
R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : CommSemiring R
q p✝ q✝ : R[X]
a✝¹ : ↑derivative (comp p✝ q) = ↑derivative q * comp (↑derivative p✝) q
a✝ : ↑derivative (comp q✝ q) = ↑derivative q * comp (↑derivative q✝) q
⊢ ↑derivative (comp (p✝ + q✝) q) = ↑derivative q * comp (↑derivative (p✝ + q✝)) q

tactic: simp only [derivative_pow, derivative_mul, monomial_comp, derivative_monomial, derivative_C,
  zero_mul, C_eq_nat_cast, zero_add, RingHom.map_mul]
state_before: case h_monomial
R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : CommSemiring R
q : R[X]
n✝ : ℕ
a✝ : R
⊢ ↑derivative (comp (↑(monomial n✝) a✝) q) = ↑derivative q * comp (↑derivative (↑(monomial n✝) a✝)) q

tactic: ring
state_before: case h_monomial
R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : CommSemiring R
q : R[X]
n✝ : ℕ
a✝ : R
⊢ ↑C a✝ * (↑n✝ * q ^ (n✝ - 1) * ↑derivative q) = ↑derivative q * (↑C a✝ * ↑n✝ * q ^ (n✝ - 1))