tasksource/leandojo huggingface dataset:
Theorem: Matrix.vecMul_zero
File: Mathlib/Data/Matrix/Basic.lean

tactic: ext
state_before: l : Type ?u.848921
m : Type u_1
n : Type u_2
o : Type ?u.848930
m' : o → Type ?u.848935
n' : o → Type ?u.848940
R : Type ?u.848943
S : Type ?u.848946
α : Type v
β : Type w
γ : Type ?u.848953
inst✝¹ : NonUnitalNonAssocSemiring α
inst✝ : Fintype m
v : m → α
⊢ vecMul v 0 = 0

tactic: simp [vecMul]
state_before: case h
l : Type ?u.848921
m : Type u_1
n : Type u_2
o : Type ?u.848930
m' : o → Type ?u.848935
n' : o → Type ?u.848940
R : Type ?u.848943
S : Type ?u.848946
α : Type v
β : Type w
γ : Type ?u.848953
inst✝¹ : NonUnitalNonAssocSemiring α
inst✝ : Fintype m
v : m → α
x✝ : n
⊢ vecMul v 0 x✝ = OfNat.ofNat 0 x✝
Theorem: Real.tendsto_cos_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: apply tendsto_nhdsWithin_of_tendsto_nhds_of_eventually_within
state_before: ⊢ Tendsto cos (𝓝[Iio (π / 2)] (π / 2)) (𝓝[Ioi 0] 0)

tactic: convert continuous_cos.continuousWithinAt.tendsto
state_before: case h1

⊢ Tendsto cos (𝓝[Iio (π / 2)] (π / 2)) (𝓝 0)

tactic: simp
state_before: case h.e'_5.h.e'_3

⊢ 0 = cos (π / 2)

tactic: filter_upwards [Ioo_mem_nhdsWithin_Iio
    (right_mem_Ioc.mpr (neg_lt_self pi_div_two_pos))]with x hx using cos_pos_of_mem_Ioo hx
state_before: case h2

⊢ ∀ᶠ (x : ℝ) in 𝓝[Iio (π / 2)] (π / 2), cos x ∈ Ioi 0
Theorem: Complex.antilipschitz_equivRealProd
File: Mathlib/Analysis/Complex/Basic.lean

tactic: simpa only [Real.coe_sqrt, NNReal.coe_ofNat] using abs_le_sqrt_two_mul_max z
state_before: E : Type ?u.242788
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
z : ℂ
⊢ ‖z‖ ≤ ↑(↑NNReal.sqrt 2) * ‖↑equivRealProdLm z‖
Theorem: Fin.Ici_eq_finset_subtype
File: Mathlib/Data/Fin/Interval.lean

tactic: ext
state_before: n : ℕ
a b : Fin n
⊢ Ici a = Finset.fin n (Icc (↑a) n)

tactic: simp
state_before: case a
n : ℕ
a b a✝ : Fin n
⊢ a✝ ∈ Ici a ↔ a✝ ∈ Finset.fin n (Icc (↑a) n)
Theorem: Hyperreal.Infinitesimal.add
File: Mathlib/Data/Real/Hyperreal.lean

tactic: simpa only [add_zero] using hx.add hy
state_before: x y : ℝ*
hx : Infinitesimal x
hy : Infinitesimal y
⊢ Infinitesimal (x + y)
Theorem: Wcovby.pred_le
File: Mathlib/Order/SuccPred/Basic.lean

tactic: obtain h | rfl := h.covby_or_eq
state_before: α : Type u_1
inst✝¹ : PartialOrder α
inst✝ : PredOrder α
a b : α
h : a ⩿ b
⊢ pred b ≤ a

tactic: exact (Covby.pred_eq h).le
state_before: case inl
α : Type u_1
inst✝¹ : PartialOrder α
inst✝ : PredOrder α
a b : α
h✝ : a ⩿ b
h : a ⋖ b
⊢ pred b ≤ a

tactic: exact pred_le _
state_before: case inr
α : Type u_1
inst✝¹ : PartialOrder α
inst✝ : PredOrder α
a : α
h : a ⩿ a
⊢ pred a ≤ a
Theorem: Fin.cycleRange_of_gt
File: Mathlib/GroupTheory/Perm/Fin.lean

tactic: rw [cycleRange, ofLeftInverse'_eq_ofInjective, ←
  Function.Embedding.toEquivRange_eq_ofInjective, ← viaFintypeEmbedding,
  viaFintypeEmbedding_apply_not_mem_range]
state_before: n : ℕ
i j : Fin (Nat.succ n)
h : i < j
⊢ ↑(cycleRange i) j = j

tactic: simpa
state_before: case h
n : ℕ
i j : Fin (Nat.succ n)
h : i < j
⊢ ¬j ∈ Set.range ↑(castLE (_ : Nat.succ ↑i ≤ Nat.succ n)).toEmbedding
Theorem: Set.toFinset_insert
File: Mathlib/Data/Fintype/Basic.lean

tactic: ext
state_before: α : Type u_1
β : Type ?u.97985
γ : Type ?u.97988
s✝ t : Set α
inst✝² : DecidableEq α
a : α
s : Set α
inst✝¹ : Fintype ↑(insert a s)
inst✝ : Fintype ↑s
⊢ toFinset (insert a s) = insert a (toFinset s)

tactic: simp
state_before: case a
α : Type u_1
β : Type ?u.97985
γ : Type ?u.97988
s✝ t : Set α
inst✝² : DecidableEq α
a : α
s : Set α
inst✝¹ : Fintype ↑(insert a s)
inst✝ : Fintype ↑s
a✝ : α
⊢ a✝ ∈ toFinset (insert a s) ↔ a✝ ∈ insert a (toFinset s)
Theorem: Stream'.eta
File: Mathlib/Data/Stream/Init.lean

tactic: cases i <;> rfl
state_before: α : Type u
β : Type v
δ : Type w
s : Stream' α
i : ℕ
⊢ (head s :: tail s) i = s i
Theorem: Finset.fin_mono
File: Mathlib/Data/Finset/Image.lean

tactic: simpa using @h x
state_before: α : Type ?u.137208
β : Type ?u.137211
γ : Type ?u.137214
n : ℕ
s t : Finset ℕ
h : s ≤ t
x : Fin n
⊢ x ∈ Finset.fin n s → x ∈ Finset.fin n t
Theorem: IsCoprime.of_mul_add_left_right
File: Mathlib/RingTheory/Coprime/Basic.lean

tactic: rw [add_comm] at h
state_before: R : Type u
inst✝ : CommSemiring R
x y z : R
h : IsCoprime x (x * z + y)
⊢ IsCoprime x y

tactic: exact h.of_add_mul_left_right
state_before: R : Type u
inst✝ : CommSemiring R
x y z : R
h : IsCoprime x (y + x * z)
⊢ IsCoprime x y
Theorem: topologicalGroup_inf
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: rw [inf_eq_iInf]
state_before: α : Type u
β : Type v
G : Type w
H : Type x
ι : Sort ?u.676740
inst✝ : Group G
t₁ t₂ : TopologicalSpace G
h₁ : TopologicalGroup G
h₂ : TopologicalGroup G
⊢ TopologicalGroup G

tactic: refine' topologicalGroup_iInf fun b => _
state_before: α : Type u
β : Type v
G : Type w
H : Type x
ι : Sort ?u.676740
inst✝ : Group G
t₁ t₂ : TopologicalSpace G
h₁ : TopologicalGroup G
h₂ : TopologicalGroup G
⊢ TopologicalGroup G

tactic: cases b <;> assumption
state_before: α : Type u
β : Type v
G : Type w
H : Type x
ι : Sort ?u.676740
inst✝ : Group G
t₁ t₂ : TopologicalSpace G
h₁ : TopologicalGroup G
h₂ : TopologicalGroup G
b : Bool
⊢ TopologicalGroup G
Theorem: Finset.image_diag_union_image_offDiag
File: Mathlib/Data/Finset/Sym.lean

tactic: rw [← image_union, diag_union_offDiag]
state_before: α : Type u_1
inst✝ : DecidableEq α
s t : Finset α
a b : α
m : Sym2 α
⊢ image Quotient.mk' (diag s) ∪ image Quotient.mk' (offDiag s) = Finset.sym2 s

tactic: rfl
state_before: α : Type u_1
inst✝ : DecidableEq α
s t : Finset α
a b : α
m : Sym2 α
⊢ image Quotient.mk' (s ×ˢ s) = Finset.sym2 s
Theorem: Multiset.noncommProd_eq_prod
File: Mathlib/Data/Finset/NoncommProd.lean

tactic: induction s using Quotient.inductionOn
state_before: F : Type ?u.135328
ι : Type ?u.135331
α✝ : Type ?u.135334
β : Type ?u.135337
γ : Type ?u.135340
f : α✝ → β → β
op : α✝ → α✝ → α✝
inst✝² : Monoid α✝
inst✝¹ : Monoid β
α : Type u_1
inst✝ : CommMonoid α
s : Multiset α
⊢ noncommProd s (_ : ∀ (x : α), x ∈ {x | x ∈ s} → ∀ (x_2 : α), x_2 ∈ {x | x ∈ s} → x ≠ x_2 → Commute x x_2) = prod s

tactic: simp
state_before: case h
F : Type ?u.135328
ι : Type ?u.135331
α✝ : Type ?u.135334
β : Type ?u.135337
γ : Type ?u.135340
f : α✝ → β → β
op : α✝ → α✝ → α✝
inst✝² : Monoid α✝
inst✝¹ : Monoid β
α : Type u_1
inst✝ : CommMonoid α
a✝ : List α
⊢ noncommProd (Quotient.mk (List.isSetoid α) a✝)
      (_ :
        ∀ (x : α),
          x ∈ {x | x ∈ Quotient.mk (List.isSetoid α) a✝} →
            ∀ (x_2 : α), x_2 ∈ {x | x ∈ Quotient.mk (List.isSetoid α) a✝} → x ≠ x_2 → Commute x x_2) =
    prod (Quotient.mk (List.isSetoid α) a✝)
Theorem: Equiv.Perm.card_support_eq_zero
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: rw [Finset.card_eq_zero, support_eq_empty_iff]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
⊢ card (support f) = 0 ↔ f = 1
Theorem: pow_injective_of_lt_orderOf
File: Mathlib/GroupTheory/OrderOfElement.lean

tactic: simpa only [mul_left_iterate, mul_one]
state_before: G : Type u
A : Type v
x✝ y : G
a b : A
n m : ℕ
inst✝¹ : Monoid G
inst✝ : AddMonoid A
x : G
hn : n < orderOf x
hm : m < orderOf x
eq : x ^ n = x ^ m
⊢ ((fun x_1 => x * x_1)^[n]) 1 = ((fun x_1 => x * x_1)^[m]) 1
Theorem: Primrec.list_foldr
File: Mathlib/Computability/Primrec.lean

tactic: simp [List.foldl_reverse]
state_before: α : Type u_3
β : Type u_1
γ : Type ?u.246912
σ : Type u_2
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
f : α → List β
g : α → σ
h : α → β × σ → σ
hf : Primrec f
hg : Primrec g
hh : Primrec₂ h
a : α
⊢ List.foldl (fun s b => h (a, s, b).fst ((a, s, b).snd.snd, (a, s, b).snd.fst)) (g a) (List.reverse (f a)) =
    List.foldr (fun b s => h a (b, s)) (g a) (f a)
Theorem: sup_himp_self_left
File: Mathlib/Order/Heyting/Basic.lean

tactic: rw [sup_himp_distrib, himp_self, top_inf_eq]
state_before: ι : Type ?u.72617
α : Type u_1
β : Type ?u.72623
inst✝ : GeneralizedHeytingAlgebra α
a✝ b✝ c d a b : α
⊢ a ⊔ b ⇨ a = b ⇨ a
Theorem: ZNum.of_nat_toZNumNeg
File: Mathlib/Data/Num/Lemmas.lean

tactic: rw [← of_nat_toZNum, Num.zneg_toZNum]
state_before: α : Type ?u.1066795
n : ℕ
⊢ Num.toZNumNeg ↑n = -↑n
Theorem: OnePoint.denseRange_coe
File: Mathlib/Topology/Compactification/OnePoint.lean

tactic: rw [DenseRange, ← compl_infty]
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
s : Set (OnePoint X)
t : Set X
inst✝ : NoncompactSpace X
⊢ DenseRange some

tactic: exact dense_compl_singleton _
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
s : Set (OnePoint X)
t : Set X
inst✝ : NoncompactSpace X
⊢ Dense ({∞}ᶜ)
Theorem: List.Sublist.countp_le
File: Mathlib/Data/List/Count.lean

tactic: simpa only [countp_eq_length_filter] using length_le_of_sublist (s.filter p)
state_before: α : Type u_1
l : List α
p q : α → Bool
l₁ l₂ : List α
s : l₁ <+ l₂
⊢ countp p l₁ ≤ countp p l₂
Theorem: Language.map_kstar
File: Mathlib/Computability/Language.lean

tactic: rw [kstar_eq_iSup_pow, kstar_eq_iSup_pow]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.100003
l✝ m : Language α
a b x : List α
f : α → β
l : Language α
⊢ ↑(map f) l∗ = (↑(map f) l)∗

tactic: simp_rw [← map_pow]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.100003
l✝ m : Language α
a b x : List α
f : α → β
l : Language α
⊢ ↑(map f) (⨆ (i : ℕ), l ^ i) = ⨆ (i : ℕ), ↑(map f) l ^ i

tactic: exact image_iUnion
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.100003
l✝ m : Language α
a b x : List α
f : α → β
l : Language α
⊢ ↑(map f) (⨆ (i : ℕ), l ^ i) = ⨆ (i : ℕ), ↑(map f) (l ^ i)
Theorem: ForInStep.bind_yield_bindList
File: Std/Control/ForInStep/Lemmas.lean

tactic: cases s <;> simp
state_before: m : Type u_1 → Type u_2
α : Type u_3
β : Type u_1
inst✝ : Monad m
f : α → β → m (ForInStep β)
s : ForInStep β
l : List α
⊢ (ForInStep.bind s fun a => bindList f l (yield a)) = bindList f l s
Theorem: List.disjoint_cons_right
File: Std/Data/List/Lemmas.lean

tactic: rw [disjoint_cons_left]
state_before: α✝ : Type u_1
l₁ : List α✝
a : α✝
l₂ : List α✝
⊢ Disjoint (a :: l₂) l₁ ↔ ¬a ∈ l₁ ∧ Disjoint l₁ l₂

tactic: simp [disjoint_comm]
state_before: α✝ : Type u_1
l₁ : List α✝
a : α✝
l₂ : List α✝
⊢ ¬a ∈ l₁ ∧ Disjoint l₂ l₁ ↔ ¬a ∈ l₁ ∧ Disjoint l₁ l₂
Theorem: Int.natAbs_inj_of_nonneg_of_nonpos
File: Mathlib/Data/Int/Lemmas.lean

tactic: simpa only [Int.natAbs_neg] using natAbs_inj_of_nonneg_of_nonneg ha (neg_nonneg_of_nonpos hb)
state_before: a✝ b✝ : ℤ
n : ℕ
a b : ℤ
ha : 0 ≤ a
hb : b ≤ 0
⊢ natAbs a = natAbs b ↔ a = -b
Theorem: MeasureTheory.snorm'_le_snorm'_mul_snorm'
File: Mathlib/MeasureTheory/Function/LpSeminorm.lean

tactic: rw [snorm']
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
⊢ snorm' (fun x => b (f x) (g x)) p μ ≤ snorm' f q μ * snorm' g r μ

tactic: calc
  (∫⁻ a : α, ↑‖b (f a) (g a)‖₊ ^ p ∂μ) ^ (1 / p) ≤
      (∫⁻ a : α, ↑(‖f a‖₊ * ‖g a‖₊) ^ p ∂μ) ^ (1 / p) :=
    (ENNReal.rpow_le_rpow_iff <| one_div_pos.mpr hp0_lt).mpr <|
      lintegral_mono_ae <|
        h.mono fun a ha => (ENNReal.rpow_le_rpow_iff hp0_lt).mpr <| ENNReal.coe_le_coe.mpr <| ha
  _ ≤ _ := ?_
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
⊢ (∫⁻ (a : α), ↑‖b (f a) (g a)‖₊ ^ p ∂μ) ^ (1 / p) ≤ snorm' f q μ * snorm' g r μ

tactic: simp_rw [snorm', ENNReal.coe_mul]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
⊢ (∫⁻ (a : α), ↑(‖f a‖₊ * ‖g a‖₊) ^ p ∂μ) ^ (1 / p) ≤ snorm' f q μ * snorm' g r μ

tactic: exact ENNReal.lintegral_Lp_mul_le_Lq_mul_Lr hp0_lt hpq hpqr μ hf.ennnorm hg.ennnorm
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
⊢ (∫⁻ (a : α), (↑‖f a‖₊ * ↑‖g a‖₊) ^ p ∂μ) ^ (1 / p) ≤
    (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), ↑‖g a‖₊ ^ r ∂μ) ^ (1 / r)
Theorem: ContinuousOn.congr_mono
File: Mathlib/Topology/ContinuousOn.lean

tactic: intro x hx
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.330239
δ : Type ?u.330242
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f g : α → β
s s₁ : Set α
h : ContinuousOn f s
h' : EqOn g f s₁
h₁ : s₁ ⊆ s
⊢ ContinuousOn g s₁

tactic: unfold ContinuousWithinAt
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.330239
δ : Type ?u.330242
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f g : α → β
s s₁ : Set α
h : ContinuousOn f s
h' : EqOn g f s₁
h₁ : s₁ ⊆ s
x : α
hx : x ∈ s₁
⊢ ContinuousWithinAt g s₁ x

tactic: have A := (h x (h₁ hx)).mono h₁
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.330239
δ : Type ?u.330242
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f g : α → β
s s₁ : Set α
h : ContinuousOn f s
h' : EqOn g f s₁
h₁ : s₁ ⊆ s
x : α
hx : x ∈ s₁
⊢ Tendsto g (𝓝[s₁] x) (𝓝 (g x))

tactic: unfold ContinuousWithinAt at A
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.330239
δ : Type ?u.330242
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f g : α → β
s s₁ : Set α
h : ContinuousOn f s
h' : EqOn g f s₁
h₁ : s₁ ⊆ s
x : α
hx : x ∈ s₁
A : ContinuousWithinAt f s₁ x
⊢ Tendsto g (𝓝[s₁] x) (𝓝 (g x))

tactic: rw [← h' hx] at A
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.330239
δ : Type ?u.330242
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f g : α → β
s s₁ : Set α
h : ContinuousOn f s
h' : EqOn g f s₁
h₁ : s₁ ⊆ s
x : α
hx : x ∈ s₁
A : Tendsto f (𝓝[s₁] x) (𝓝 (f x))
⊢ Tendsto g (𝓝[s₁] x) (𝓝 (g x))

tactic: exact A.congr' h'.eventuallyEq_nhdsWithin.symm
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.330239
δ : Type ?u.330242
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f g : α → β
s s₁ : Set α
h : ContinuousOn f s
h' : EqOn g f s₁
h₁ : s₁ ⊆ s
x : α
hx : x ∈ s₁
A : Tendsto f (𝓝[s₁] x) (𝓝 (g x))
⊢ Tendsto g (𝓝[s₁] x) (𝓝 (g x))
Theorem: padicNormE.eq_of_norm_add_lt_left
File: Mathlib/NumberTheory/Padics/PadicNumbers.lean

tactic: rw [padicNormE.add_eq_max_of_ne hne]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
z1 z2 : ℚ_[p]
h : ‖z1 + z2‖ < ‖z1‖
hne : ¬‖z1‖ = ‖z2‖
⊢ ‖z1 + z2‖ ≥ ‖z1‖

tactic: apply le_max_left
state_before: p : ℕ
hp : Fact (Nat.Prime p)
z1 z2 : ℚ_[p]
h : ‖z1 + z2‖ < ‖z1‖
hne : ¬‖z1‖ = ‖z2‖
⊢ max ‖z1‖ ‖z2‖ ≥ ‖z1‖
Theorem: AlgebraicTopology.DoldKan.PInftyToNormalizedMooreComplex_comp_inclusionOfMooreComplexMap
File: Mathlib/AlgebraicTopology/DoldKan/Normalized.lean

tactic: aesop_cat
state_before: A : Type u_2
inst✝¹ : Category A
inst✝ : Abelian A
X✝ X : SimplicialObject A
⊢ PInftyToNormalizedMooreComplex X ≫ inclusionOfMooreComplexMap X = PInfty
Theorem: Char.isValidChar_zero
File: src/lean/Init/Data/Char/Basic.lean

tactic: decide
state_before: ⊢ 0 < 55296
Theorem: Int.lor_bit
File: Mathlib/Data/Int/Bitwise.lean

tactic: rw [← bitwise_or, bitwise_bit]
state_before: a : Bool
m : ℤ
b : Bool
n : ℤ
⊢ lor (bit a m) (bit b n) = bit (a || b) (lor m n)
Theorem: CircleDeg1Lift.dist_map_map_zero_lt
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: rw [dist_comm, Real.dist_eq, abs_lt, lt_sub_iff_add_lt', sub_lt_iff_lt_add', ← sub_eq_add_neg]
state_before: f g : CircleDeg1Lift
⊢ dist (↑f 0 + ↑g 0) (↑f (↑g 0)) < 1

tactic: exact ⟨f.lt_map_map_zero g, f.map_map_zero_lt g⟩
state_before: f g : CircleDeg1Lift
⊢ ↑f 0 + ↑g 0 - 1 < ↑f (↑g 0) ∧ ↑f (↑g 0) < ↑f 0 + ↑g 0 + 1
Theorem: symmDiff_sdiff_right
File: Mathlib/Order/SymmDiff.lean

tactic: rw [symmDiff_comm, symmDiff_sdiff_left]
state_before: ι : Type ?u.62639
α : Type u_1
β : Type ?u.62645
π : ι → Type ?u.62650
inst✝ : GeneralizedBooleanAlgebra α
a b c d : α
⊢ a ∆ b \ b = a \ b
Theorem: SimpleGraph.Walk.transfer_transfer
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: induction p with
| nil => simp
| cons _ _ ih =>
  simp only [Walk.transfer, cons.injEq, heq_eq_eq, true_and]
  apply ih
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
p : Walk G u v
H : SimpleGraph V
hp : ∀ (e : Sym2 V), e ∈ edges p → e ∈ edgeSet H
K : SimpleGraph V
hp' : ∀ (e : Sym2 V), e ∈ edges (Walk.transfer p H hp) → e ∈ edgeSet K
⊢ Walk.transfer (Walk.transfer p H hp) K hp' = Walk.transfer p K (_ : ∀ (e : Sym2 V), e ∈ edges p → e ∈ edgeSet K)

tactic: simp
state_before: case nil
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
p : Walk G u v
H K : SimpleGraph V
u✝ : V
hp : ∀ (e : Sym2 V), e ∈ edges nil → e ∈ edgeSet H
hp' : ∀ (e : Sym2 V), e ∈ edges (Walk.transfer nil H hp) → e ∈ edgeSet K
⊢ Walk.transfer (Walk.transfer nil H hp) K hp' = Walk.transfer nil K (_ : ∀ (e : Sym2 V), e ∈ edges nil → e ∈ edgeSet K)

tactic: simp only [Walk.transfer, cons.injEq, heq_eq_eq, true_and]
state_before: case cons
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
p : Walk G u v
H K : SimpleGraph V
u✝ v✝ w✝ : V
h✝ : Adj G u✝ v✝
p✝ : Walk G v✝ w✝
ih :
  ∀ (hp : ∀ (e : Sym2 V), e ∈ edges p✝ → e ∈ edgeSet H)
    (hp' : ∀ (e : Sym2 V), e ∈ edges (Walk.transfer p✝ H hp) → e ∈ edgeSet K),
    Walk.transfer (Walk.transfer p✝ H hp) K hp' = Walk.transfer p✝ K (_ : ∀ (e : Sym2 V), e ∈ edges p✝ → e ∈ edgeSet K)
hp : ∀ (e : Sym2 V), e ∈ edges (cons h✝ p✝) → e ∈ edgeSet H
hp' : ∀ (e : Sym2 V), e ∈ edges (Walk.transfer (cons h✝ p✝) H hp) → e ∈ edgeSet K
⊢ Walk.transfer (Walk.transfer (cons h✝ p✝) H hp) K hp' =
    Walk.transfer (cons h✝ p✝) K (_ : ∀ (e : Sym2 V), e ∈ edges (cons h✝ p✝) → e ∈ edgeSet K)

tactic: apply ih
state_before: case cons
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
p : Walk G u v
H K : SimpleGraph V
u✝ v✝ w✝ : V
h✝ : Adj G u✝ v✝
p✝ : Walk G v✝ w✝
ih :
  ∀ (hp : ∀ (e : Sym2 V), e ∈ edges p✝ → e ∈ edgeSet H)
    (hp' : ∀ (e : Sym2 V), e ∈ edges (Walk.transfer p✝ H hp) → e ∈ edgeSet K),
    Walk.transfer (Walk.transfer p✝ H hp) K hp' = Walk.transfer p✝ K (_ : ∀ (e : Sym2 V), e ∈ edges p✝ → e ∈ edgeSet K)
hp : ∀ (e : Sym2 V), e ∈ edges (cons h✝ p✝) → e ∈ edgeSet H
hp' : ∀ (e : Sym2 V), e ∈ edges (Walk.transfer (cons h✝ p✝) H hp) → e ∈ edgeSet K
⊢ Walk.transfer (Walk.transfer p✝ H (_ : ∀ (e : Sym2 V), e ∈ edges p✝ → e ∈ edgeSet H)) K
      (_ :
        ∀ (e : Sym2 V),
          e ∈ edges (Walk.transfer p✝ H (_ : ∀ (e : Sym2 V), e ∈ edges p✝ → e ∈ edgeSet H)) → e ∈ edgeSet K) =
    Walk.transfer p✝ K (_ : ∀ (e : Sym2 V), e ∈ edges p✝ → e ∈ edgeSet K)
Theorem: Finsupp.total_single
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: simp [total_apply, sum_single_index]
state_before: α : Type u_2
M : Type u_1
N : Type ?u.290932
P : Type ?u.290935
R : Type u_3
S : Type ?u.290941
inst✝¹² : Semiring R
inst✝¹¹ : Semiring S
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : Module R M
inst✝⁸ : AddCommMonoid N
inst✝⁷ : Module R N
inst✝⁶ : AddCommMonoid P
inst✝⁵ : Module R P
α' : Type ?u.291033
M' : Type ?u.291036
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M'
inst✝² : AddCommMonoid M
inst✝¹ : Module R M'
inst✝ : Module R M
v : α → M
v' : α' → M'
c : R
a : α
⊢ ↑(Finsupp.total α M R v) (single a c) = c • v a
Theorem: Int.mul_nonneg_of_nonpos_of_nonpos
File: Std/Data/Int/Lemmas.lean

tactic: have : 0 * b ≤ a * b := Int.mul_le_mul_of_nonpos_right ha hb
state_before: a b : Int
ha : a ≤ 0
hb : b ≤ 0
⊢ 0 ≤ a * b

tactic: rwa [Int.zero_mul] at this
state_before: a b : Int
ha : a ≤ 0
hb : b ≤ 0
this : 0 * b ≤ a * b
⊢ 0 ≤ a * b
Theorem: Complex.int_cast_abs
File: Mathlib/Data/Complex/Basic.lean

tactic: rw [← ofReal_int_cast, abs_ofReal]
state_before: n : ℤ
⊢ Abs.abs ↑n = ↑abs ↑n
Theorem: IsROrC.div_im
File: Mathlib/Data/IsROrC/Basic.lean

tactic: simp only [div_eq_mul_inv, mul_assoc, sub_eq_add_neg, add_comm, neg_mul, mul_neg, map_neg,
  isROrC_simps]
state_before: K : Type u_1
E : Type ?u.5746239
inst✝ : IsROrC K
z w : K
⊢ ↑im (z / w) = ↑im z * ↑re w / ↑normSq w - ↑re z * ↑im w / ↑normSq w
Theorem: LowerSet.coe_eq_empty
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simp [SetLike.ext'_iff]
state_before: α : Type u_1
β : Type ?u.66969
γ : Type ?u.66972
ι : Sort ?u.66975
κ : ι → Sort ?u.66980
inst✝ : LE α
S : Set (LowerSet α)
s t : LowerSet α
a : α
⊢ ↑s = ∅ ↔ s = ⊥
Theorem: CategoryTheory.Limits.PushoutCocone.op_fst
File: Mathlib/CategoryTheory/Limits/Opposites.lean

tactic: aesop_cat
state_before: C : Type u₁
inst✝¹ : Category C
J : Type u₂
inst✝ : Category J
X✝ : Type v₂
X Y Z : C
f : X ⟶ Y
g : X ⟶ Z
c : PushoutCocone f g
⊢ PullbackCone.fst (op c) = (inl c).op
Theorem: topologicalGroup_iInf
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: rw [← sInf_range]
state_before: α : Type u
β : Type v
G : Type w
H : Type x
ι : Sort u_1
inst✝ : Group G
ts' : ι → TopologicalSpace G
h' : ∀ (i : ι), TopologicalGroup G
⊢ TopologicalGroup G

tactic: exact topologicalGroup_sInf (Set.forall_range_iff.mpr h')
state_before: α : Type u
β : Type v
G : Type w
H : Type x
ι : Sort u_1
inst✝ : Group G
ts' : ι → TopologicalSpace G
h' : ∀ (i : ι), TopologicalGroup G
⊢ TopologicalGroup G
Theorem: map_extChartAt_symm_nhdsWithin'
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rwa [← extChartAt_source I]
state_before: 𝕜 : Type u_3
E : Type u_2
M : Type u_1
H : Type u_4
E' : Type ?u.215272
M' : Type ?u.215275
H' : Type ?u.215278
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : LocalHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
x : M
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
y : M
hy : y ∈ (extChartAt I x).source
⊢ y ∈ (chartAt H x).toLocalEquiv.source
Theorem: Multiset.fold_cons'_left
File: Mathlib/Data/Multiset/Fold.lean

tactic: rw [fold_cons'_right, hc.comm]
state_before: α : Type u_1
β : Type ?u.7230
op : α → α → α
hc : IsCommutative α op
ha : IsAssociative α op
b a : α
s : Multiset α
⊢ fold op b (a ::ₘ s) = fold op (op a b) s
Theorem: toIocMod_add_left'
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [add_comm, toIocMod_add_right', add_comm]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
⊢ toIocMod hp (p + a) b = p + toIocMod hp a b