1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Ordinal.iSup_ord
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: unfold iSup
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Sort u_4
f : ι → Cardinal.{u_5}
hf : BddAbove (range f)
⊢ (iSup f).ord = ⨆ i, (f i).ord
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Sort u_4
f : ι → Cardinal.{u_5}
hf : BddAbove (range f)
⊢ (sSup (range f)).ord = sSup (range fun i => (f i).ord)

tactic: convert sSup_ord hf
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Sort u_4
f : ι → Cardinal.{u_5}
hf : BddAbove (range f)
⊢ (sSup (range f)).ord = sSup (range fun i => (f i).ord)
state_after: case h.e'_3.h.e'_3
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Sort u_4
f : ι → Cardinal.{u_5}
hf : BddAbove (range f)
⊢ (range fun i => (f i).ord) = ord '' range f

tactic: conv_lhs => change range (ord ∘ f)
state_before: case h.e'_3.h.e'_3
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Sort u_4
f : ι → Cardinal.{u_5}
hf : BddAbove (range f)
⊢ (range fun i => (f i).ord) = ord '' range f
state_after: case h.e'_3.h.e'_3
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Sort u_4
f : ι → Cardinal.{u_5}
hf : BddAbove (range f)
⊢ range (ord ∘ f) = ord '' range f

tactic: rw [range_comp]
state_before: case h.e'_3.h.e'_3
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Sort u_4
f : ι → Cardinal.{u_5}
hf : BddAbove (range f)
⊢ range (ord ∘ f) = ord '' range f
state_after: no goals
Theorem: Vector.append_nil
File: Mathlib/Data/Vector/Basic.lean

tactic: cases xs
state_before: α : Type u_1
m n : ℕ
xs : Vector α n
ys : Vector α m
⊢ xs.append nil = xs
state_after: case mk
α : Type u_1
m n : ℕ
ys : Vector α m
val✝ : List α
property✝ : val✝.length = n
⊢ append ⟨val✝, property✝⟩ nil = ⟨val✝, property✝⟩

tactic: simp [append]
state_before: case mk
α : Type u_1
m n : ℕ
ys : Vector α m
val✝ : List α
property✝ : val✝.length = n
⊢ append ⟨val✝, property✝⟩ nil = ⟨val✝, property✝⟩
state_after: no goals
Theorem: Nat.cast_ascFactorial
File: Mathlib/Data/Nat/Factorial/Cast.lean

tactic: rw [← ascPochhammer_nat_eq_ascFactorial, ascPochhammer_eval_cast]
state_before: S : Type u_1
inst✝ : Semiring S
a b : ℕ
⊢ ↑(a.ascFactorial b) = Polynomial.eval (↑a) (ascPochhammer S b)
state_after: no goals
Theorem: Equiv.Perm.support_inv
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: simp_rw [Finset.ext_iff, mem_support, not_iff_not, inv_eq_iff_eq.trans eq_comm, imp_true_iff]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g σ : Perm α
⊢ σ⁻¹.support = σ.support
state_after: no goals
Theorem: Set.Finite.upperClosure
File: Mathlib/Order/UpperLower/LocallyFinite.lean

tactic: rw [coe_upperClosure]
state_before: α : Type u_1
inst✝¹ : Preorder α
s : Set α
inst✝ : LocallyFiniteOrderTop α
hs : s.Finite
⊢ (↑(upperClosure s)).Finite
state_after: α : Type u_1
inst✝¹ : Preorder α
s : Set α
inst✝ : LocallyFiniteOrderTop α
hs : s.Finite
⊢ (⋃ a ∈ s, Ici a).Finite

tactic: exact hs.biUnion fun _ _ => finite_Ici _
state_before: α : Type u_1
inst✝¹ : Preorder α
s : Set α
inst✝ : LocallyFiniteOrderTop α
hs : s.Finite
⊢ (⋃ a ∈ s, Ici a).Finite
state_after: no goals
Theorem: Int.ceil_eq_add_one_sub_fract
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [(or_iff_right ha).mp (fract_eq_zero_or_add_one_sub_ceil a)]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a : α
ha : fract a ≠ 0
⊢ ↑⌈a⌉ = a + 1 - fract a
state_after: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a : α
ha : fract a ≠ 0
⊢ ↑⌈a⌉ = a + 1 - (a + 1 - ↑⌈a⌉)

tactic: abel
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a : α
ha : fract a ≠ 0
⊢ ↑⌈a⌉ = a + 1 - (a + 1 - ↑⌈a⌉)
state_after: no goals
Theorem: mul_lt_of_one_lt_left
File: Mathlib/Algebra/Order/Ring/Defs.lean

tactic: simpa only [one_mul] using mul_lt_mul_of_neg_right h hb
state_before: α : Type u
β : Type u_1
inst✝¹ : StrictOrderedSemiring α
a b c d : α
inst✝ : ExistsAddOfLE α
hb : b < 0
h : 1 < a
⊢ a * b < b
state_after: no goals
Theorem: one_div_mul_add_mul_one_div_eq_one_div_add_one_div
File: Mathlib/Algebra/Field/Basic.lean

tactic: simpa only [one_div] using (inv_add_inv' ha hb).symm
state_before: α : Type u_1
β : Type u_2
K : Type u_3
inst✝ : DivisionSemiring α
a b c d : α
ha : a ≠ 0
hb : b ≠ 0
⊢ 1 / a * (a + b) * (1 / b) = 1 / a + 1 / b
state_after: no goals
Theorem: Orientation.ne_of_oangle_sign_eq_neg_one
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

tactic: decide
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : (o.oangle x y).sign = -1
⊢ -1 ≠ 0
state_after: no goals
Theorem: Set.encard_le_one_iff_eq
File: Mathlib/Data/Set/Card.lean

tactic: rw [le_iff_lt_or_eq, lt_iff_not_le, ENat.one_le_iff_ne_zero, not_not, encard_eq_zero,
  encard_eq_one]
state_before: α : Type u_1
β : Type u_2
s t : Set α
⊢ s.encard ≤ 1 ↔ s = ∅ ∨ ∃ x, s = {x}
state_after: no goals
Theorem: HasStrictDerivAt.finset_prod
File: Mathlib/Analysis/Calculus/Deriv/Mul.lean

tactic: simpa [ContinuousLinearMap.sum_apply, ContinuousLinearMap.smul_apply] using
  (HasStrictFDerivAt.finset_prod (fun i hi ↦ (hf i hi).hasStrictFDerivAt)).hasStrictDerivAt
state_before: 𝕜 : Type u
inst✝⁹ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
E : Type w
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
G : Type u_1
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace 𝕜 G
f✝ f₀ f₁ g : 𝕜 → F
f'✝ f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
ι : Type u_2
inst✝² : DecidableEq ι
𝔸' : Type u_3
inst✝¹ : NormedCommRing 𝔸'
inst✝ : NormedAlgebra 𝕜 𝔸'
u : Finset ι
f : ι → 𝕜 → 𝔸'
f' : ι → 𝔸'
hf : ∀ i ∈ u, HasStrictDerivAt (f i) (f' i) x
⊢ HasStrictDerivAt (fun x => ∏ i ∈ u, f i x) (∑ i ∈ u, (∏ j ∈ u.erase i, f j x) • f' i) x
state_after: no goals
Theorem: List.prod_hom_rel
File: Mathlib/Algebra/BigOperators/Group/List.lean

tactic: simp only [map_cons, prod_cons, h₂ hl]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝² : Monoid M
inst✝¹ : Monoid N
inst✝ : Monoid P
l✝¹ l₁ l₂ : List M
a✝ : M
l✝ : List ι
r : M → N → Prop
f : ι → M
g : ι → N
h₁ : r 1 1
h₂ : ∀ ⦃i : ι⦄ ⦃a : M⦄ ⦃b : N⦄, r a b → r (f i * a) (g i * b)
a : ι
l : List ι
hl : r (map f l).prod (map g l).prod
⊢ r (map f (a :: l)).prod (map g (a :: l)).prod
state_after: no goals
Theorem: Metric.cobounded_eq_cocompact
File: Mathlib/Topology/MetricSpace/Bounded.lean

tactic: nontriviality α
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
inst✝ : ProperSpace α
⊢ cobounded α = cocompact α
state_after: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
inst✝ : ProperSpace α
a✝ : Nontrivial α
⊢ cobounded α = cocompact α

tactic: inhabit α
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
inst✝ : ProperSpace α
a✝ : Nontrivial α
⊢ cobounded α = cocompact α
state_after: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
inst✝ : ProperSpace α
a✝ : Nontrivial α
inhabited_h : Inhabited α
⊢ cobounded α = cocompact α

tactic: exact cobounded_le_cocompact.antisymm <| (hasBasis_cobounded_compl_closedBall default).ge_iff.2
  fun _ _ ↦ (isCompact_closedBall _ _).compl_mem_cocompact
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
inst✝ : ProperSpace α
a✝ : Nontrivial α
inhabited_h : Inhabited α
⊢ cobounded α = cocompact α
state_after: no goals
Theorem: Module.Dual.isCompl_ker_of_disjoint_of_ne_bot
File: Mathlib/LinearAlgebra/Dual.lean

tactic: refine ⟨hpf, codisjoint_iff.mpr <| eq_of_le_of_finrank_le le_top ?_⟩
state_before: K : Type uK
inst✝⁵ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝⁴ : AddCommGroup V₁
inst✝³ : Module K V₁
inst✝² : AddCommGroup V₂
inst✝¹ : Module K V₂
inst✝ : FiniteDimensional K V₁
f : Dual K V₁
hf : f ≠ 0
p : Submodule K V₁
hpf : Disjoint (LinearMap.ker f) p
hp : p ≠ ⊥
⊢ IsCompl (LinearMap.ker f) p
state_after: K : Type uK
inst✝⁵ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝⁴ : AddCommGroup V₁
inst✝³ : Module K V₁
inst✝² : AddCommGroup V₂
inst✝¹ : Module K V₂
inst✝ : FiniteDimensional K V₁
f : Dual K V₁
hf : f ≠ 0
p : Submodule K V₁
hpf : Disjoint (LinearMap.ker f) p
hp : p ≠ ⊥
⊢ finrank K ↥⊤ ≤ finrank K ↥(LinearMap.ker f ⊔ p)

tactic: have : finrank K ↑(LinearMap.ker f ⊔ p) = finrank K (LinearMap.ker f) + finrank K p := by
  simp [← Submodule.finrank_sup_add_finrank_inf_eq (LinearMap.ker f) p, hpf.eq_bot]
state_before: K : Type uK
inst✝⁵ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝⁴ : AddCommGroup V₁
inst✝³ : Module K V₁
inst✝² : AddCommGroup V₂
inst✝¹ : Module K V₂
inst✝ : FiniteDimensional K V₁
f : Dual K V₁
hf : f ≠ 0
p : Submodule K V₁
hpf : Disjoint (LinearMap.ker f) p
hp : p ≠ ⊥
⊢ finrank K ↥⊤ ≤ finrank K ↥(LinearMap.ker f ⊔ p)
state_after: K : Type uK
inst✝⁵ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝⁴ : AddCommGroup V₁
inst✝³ : Module K V₁
inst✝² : AddCommGroup V₂
inst✝¹ : Module K V₂
inst✝ : FiniteDimensional K V₁
f : Dual K V₁
hf : f ≠ 0
p : Submodule K V₁
hpf : Disjoint (LinearMap.ker f) p
hp : p ≠ ⊥
this : finrank K ↥(LinearMap.ker f ⊔ p) = finrank K ↥(LinearMap.ker f) + finrank K ↥p
⊢ finrank K ↥⊤ ≤ finrank K ↥(LinearMap.ker f ⊔ p)

tactic: rwa [finrank_top, this, ← finrank_ker_add_one_of_ne_zero hf, add_le_add_iff_left,
  Submodule.one_le_finrank_iff]
state_before: K : Type uK
inst✝⁵ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝⁴ : AddCommGroup V₁
inst✝³ : Module K V₁
inst✝² : AddCommGroup V₂
inst✝¹ : Module K V₂
inst✝ : FiniteDimensional K V₁
f : Dual K V₁
hf : f ≠ 0
p : Submodule K V₁
hpf : Disjoint (LinearMap.ker f) p
hp : p ≠ ⊥
this : finrank K ↥(LinearMap.ker f ⊔ p) = finrank K ↥(LinearMap.ker f) + finrank K ↥p
⊢ finrank K ↥⊤ ≤ finrank K ↥(LinearMap.ker f ⊔ p)
state_after: no goals

tactic: simp [← Submodule.finrank_sup_add_finrank_inf_eq (LinearMap.ker f) p, hpf.eq_bot]
state_before: K : Type uK
inst✝⁵ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝⁴ : AddCommGroup V₁
inst✝³ : Module K V₁
inst✝² : AddCommGroup V₂
inst✝¹ : Module K V₂
inst✝ : FiniteDimensional K V₁
f : Dual K V₁
hf : f ≠ 0
p : Submodule K V₁
hpf : Disjoint (LinearMap.ker f) p
hp : p ≠ ⊥
⊢ finrank K ↥(LinearMap.ker f ⊔ p) = finrank K ↥(LinearMap.ker f) + finrank K ↥p
state_after: no goals
Theorem: Polynomial.X_dvd_sub_C
File: Mathlib/Algebra/Polynomial/Div.lean

tactic: simp [X_dvd_iff, coeff_C]
state_before: R : Type u
S : Type v
T : Type w
A : Type z
a b : R
n : ℕ
inst✝ : Ring R
p q : R[X]
⊢ X ∣ p - C (p.coeff 0)
state_after: no goals
Theorem: Cardinal.mk_iUnion_le_lift
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: refine mk_iUnion_le_sum_mk_lift.trans <| Eq.trans_le ?_ (sum_le_iSup_lift _)
state_before: α✝ β : Type u
c : Cardinal.{?u.202224}
α : Type u
ι : Type v
f : ι → Set α
⊢ lift.{v, u} #↑(⋃ i, f i) ≤ lift.{u, v} #ι * ⨆ i, lift.{v, u} #↑(f i)
state_after: α✝ β : Type u
c : Cardinal.{?u.202224}
α : Type u
ι : Type v
f : ι → Set α
⊢ (sum fun i => #↑(f i)) = sum fun i => lift.{v, u} #↑(f i)

tactic: rw [← lift_sum, lift_id'.{_,u}]
state_before: α✝ β : Type u
c : Cardinal.{?u.202224}
α : Type u
ι : Type v
f : ι → Set α
⊢ (sum fun i => #↑(f i)) = sum fun i => lift.{v, u} #↑(f i)
state_after: no goals
Theorem: Multiset.covBy_cons
File: Mathlib/Data/Finset/Grade.lean

tactic: simpa using card_lt_card hts
state_before: α : Type u_1
s✝ t✝ : Multiset α
a✝ : α
s : Multiset α
a : α
t : Multiset α
hst : s < t
hts : t < a ::ₘ s
⊢ card t < succ (card s)
state_after: no goals
Theorem: LinearIndependent.repr_range
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: rw [LinearIndependent.repr, LinearEquiv.range]
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
hv : LinearIndependent R v
⊢ LinearMap.range hv.repr = ⊤
state_after: no goals
Theorem: max_div_min_eq_mabs'
File: Mathlib/Algebra/Order/Group/Abs.lean

tactic: rcases le_total a b with ab | ba
state_before: α : Type u_1
inst✝³ : Group α
inst✝² : LinearOrder α
a✝¹ b✝¹ : α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a✝ b✝ c : α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
⊢ max a b / min a b = mabs (a / b)
state_after: case inl
α : Type u_1
inst✝³ : Group α
inst✝² : LinearOrder α
a✝¹ b✝¹ : α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a✝ b✝ c : α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
ab : a ≤ b
⊢ max a b / min a b = mabs (a / b)

case inr
α : Type u_1
inst✝³ : Group α
inst✝² : LinearOrder α
a✝¹ b✝¹ : α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a✝ b✝ c : α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
ba : b ≤ a
⊢ max a b / min a b = mabs (a / b)

tactic: rw [max_eq_right ab, min_eq_left ab, mabs_of_le_one, inv_div]
state_before: case inl
α : Type u_1
inst✝³ : Group α
inst✝² : LinearOrder α
a✝¹ b✝¹ : α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a✝ b✝ c : α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
ab : a ≤ b
⊢ max a b / min a b = mabs (a / b)
state_after: case inl
α : Type u_1
inst✝³ : Group α
inst✝² : LinearOrder α
a✝¹ b✝¹ : α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a✝ b✝ c : α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
ab : a ≤ b
⊢ a / b ≤ 1

tactic: rwa [div_le_one']
state_before: case inl
α : Type u_1
inst✝³ : Group α
inst✝² : LinearOrder α
a✝¹ b✝¹ : α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a✝ b✝ c : α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
ab : a ≤ b
⊢ a / b ≤ 1
state_after: no goals

tactic: rw [max_eq_left ba, min_eq_right ba, mabs_of_one_le]
state_before: case inr
α : Type u_1
inst✝³ : Group α
inst✝² : LinearOrder α
a✝¹ b✝¹ : α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a✝ b✝ c : α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
ba : b ≤ a
⊢ max a b / min a b = mabs (a / b)
state_after: case inr
α : Type u_1
inst✝³ : Group α
inst✝² : LinearOrder α
a✝¹ b✝¹ : α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a✝ b✝ c : α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
ba : b ≤ a
⊢ 1 ≤ a / b

tactic: rwa [one_le_div']
state_before: case inr
α : Type u_1
inst✝³ : Group α
inst✝² : LinearOrder α
a✝¹ b✝¹ : α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a✝ b✝ c : α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
ba : b ≤ a
⊢ 1 ≤ a / b
state_after: no goals
Theorem: Nat.add_div_eq_of_add_mod_lt
File: Mathlib/Data/Nat/ModEq.lean

tactic: simp [hc0]
state_before: m n a✝ b✝ c✝ d a b c : ℕ
hc : a % c + b % c < c
hc0 : c = 0
⊢ (a + b) / c = a / c + b / c
state_after: no goals

tactic: rw [add_div (Nat.pos_of_ne_zero hc0), if_neg (not_le_of_lt hc), add_zero]
state_before: m n a✝ b✝ c✝ d a b c : ℕ
hc : a % c + b % c < c
hc0 : ¬c = 0
⊢ (a + b) / c = a / c + b / c
state_after: no goals
Theorem: holderOnWith_one
File: Mathlib/Topology/MetricSpace/Holder.lean

tactic: simp only [HolderOnWith, LipschitzOnWith, NNReal.coe_one, ENNReal.rpow_one]
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝² : PseudoEMetricSpace X
inst✝¹ : PseudoEMetricSpace Y
inst✝ : PseudoEMetricSpace Z
C : ℝ≥0
f : X → Y
s : Set X
⊢ HolderOnWith C 1 f s ↔ LipschitzOnWith C f s
state_after: no goals
Theorem: CategoryTheory.Comma.eqToHom_left
File: Mathlib/CategoryTheory/Comma/Basic.lean

tactic: cases H
state_before: A : Type u₁
inst✝⁵ : Category.{v₁, u₁} A
B : Type u₂
inst✝⁴ : Category.{v₂, u₂} B
T : Type u₃
inst✝³ : Category.{v₃, u₃} T
A' : Type u_1
B' : Type u_2
T' : Type u_3
inst✝² : Category.{?u.18080, u_1} A'
inst✝¹ : Category.{?u.18084, u_2} B'
inst✝ : Category.{?u.18088, u_3} T'
L : A ⥤ T
R : B ⥤ T
X Y : Comma L R
H : X = Y
⊢ X.left = Y.left
state_after: case refl
A : Type u₁
inst✝⁵ : Category.{v₁, u₁} A
B : Type u₂
inst✝⁴ : Category.{v₂, u₂} B
T : Type u₃
inst✝³ : Category.{v₃, u₃} T
A' : Type u_1
B' : Type u_2
T' : Type u_3
inst✝² : Category.{?u.18080, u_1} A'
inst✝¹ : Category.{?u.18084, u_2} B'
inst✝ : Category.{?u.18088, u_3} T'
L : A ⥤ T
R : B ⥤ T
X : Comma L R
⊢ X.left = X.left

tactic: rfl
state_before: case refl
A : Type u₁
inst✝⁵ : Category.{v₁, u₁} A
B : Type u₂
inst✝⁴ : Category.{v₂, u₂} B
T : Type u₃
inst✝³ : Category.{v₃, u₃} T
A' : Type u_1
B' : Type u_2
T' : Type u_3
inst✝² : Category.{?u.18080, u_1} A'
inst✝¹ : Category.{?u.18084, u_2} B'
inst✝ : Category.{?u.18088, u_3} T'
L : A ⥤ T
R : B ⥤ T
X : Comma L R
⊢ X.left = X.left
state_after: no goals

tactic: cases H
state_before: A : Type u₁
inst✝⁵ : Category.{v₁, u₁} A
B : Type u₂
inst✝⁴ : Category.{v₂, u₂} B
T : Type u₃
inst✝³ : Category.{v₃, u₃} T
A' : Type u_1
B' : Type u_2
T' : Type u_3
inst✝² : Category.{?u.18080, u_1} A'
inst✝¹ : Category.{?u.18084, u_2} B'
inst✝ : Category.{?u.18088, u_3} T'
L : A ⥤ T
R : B ⥤ T
X Y : Comma L R
H : X = Y
⊢ (eqToHom H).left = eqToHom ⋯
state_after: case refl
A : Type u₁
inst✝⁵ : Category.{v₁, u₁} A
B : Type u₂
inst✝⁴ : Category.{v₂, u₂} B
T : Type u₃
inst✝³ : Category.{v₃, u₃} T
A' : Type u_1
B' : Type u_2
T' : Type u_3
inst✝² : Category.{?u.18080, u_1} A'
inst✝¹ : Category.{?u.18084, u_2} B'
inst✝ : Category.{?u.18088, u_3} T'
L : A ⥤ T
R : B ⥤ T
X : Comma L R
⊢ (eqToHom ⋯).left = eqToHom ⋯

tactic: rfl
state_before: case refl
A : Type u₁
inst✝⁵ : Category.{v₁, u₁} A
B : Type u₂
inst✝⁴ : Category.{v₂, u₂} B
T : Type u₃
inst✝³ : Category.{v₃, u₃} T
A' : Type u_1
B' : Type u_2
T' : Type u_3
inst✝² : Category.{?u.18080, u_1} A'
inst✝¹ : Category.{?u.18084, u_2} B'
inst✝ : Category.{?u.18088, u_3} T'
L : A ⥤ T
R : B ⥤ T
X : Comma L R
⊢ (eqToHom ⋯).left = eqToHom ⋯
state_after: no goals
Theorem: map_wittPolynomial
File: Mathlib/RingTheory/WittVector/WittPolynomial.lean

tactic: rw [wittPolynomial, map_sum, wittPolynomial]
state_before: p : ℕ
R : Type u_1
inst✝² : CommRing R
inst✝¹ : DecidableEq R
S : Type u_2
inst✝ : CommRing S
f : R →+* S
n : ℕ
⊢ (map f) (W_ R n) = W_ S n
state_after: p : ℕ
R : Type u_1
inst✝² : CommRing R
inst✝¹ : DecidableEq R
S : Type u_2
inst✝ : CommRing S
f : R →+* S
n : ℕ
⊢ ∑ x ∈ range (n + 1), (map f) ((monomial (single x (p ^ (n - x)))) (↑p ^ x)) =
    ∑ i ∈ range (n + 1), (monomial (single i (p ^ (n - i)))) (↑p ^ i)

tactic: refine sum_congr rfl fun i _ => ?_
state_before: p : ℕ
R : Type u_1
inst✝² : CommRing R
inst✝¹ : DecidableEq R
S : Type u_2
inst✝ : CommRing S
f : R →+* S
n : ℕ
⊢ ∑ x ∈ range (n + 1), (map f) ((monomial (single x (p ^ (n - x)))) (↑p ^ x)) =
    ∑ i ∈ range (n + 1), (monomial (single i (p ^ (n - i)))) (↑p ^ i)
state_after: p : ℕ
R : Type u_1
inst✝² : CommRing R
inst✝¹ : DecidableEq R
S : Type u_2
inst✝ : CommRing S
f : R →+* S
n i : ℕ
x✝ : i ∈ range (n + 1)
⊢ (map f) ((monomial (single i (p ^ (n - i)))) (↑p ^ i)) = (monomial (single i (p ^ (n - i)))) (↑p ^ i)

tactic: rw [map_monomial, RingHom.map_pow, map_natCast]
state_before: p : ℕ
R : Type u_1
inst✝² : CommRing R
inst✝¹ : DecidableEq R
S : Type u_2
inst✝ : CommRing S
f : R →+* S
n i : ℕ
x✝ : i ∈ range (n + 1)
⊢ (map f) ((monomial (single i (p ^ (n - i)))) (↑p ^ i)) = (monomial (single i (p ^ (n - i)))) (↑p ^ i)
state_after: no goals
Theorem: ProbabilityTheory.gaussianReal_apply
File: Mathlib/Probability/Distributions/Gaussian.lean

tactic: rw [gaussianReal_of_var_ne_zero _ hv, withDensity_apply' _ s]
state_before: μ : ℝ
v : ℝ≥0
hv : v ≠ 0
s : Set ℝ
⊢ (gaussianReal μ v) s = ∫⁻ (x : ℝ) in s, gaussianPDF μ v x
state_after: no goals
Theorem: EuclideanGeometry.Sphere.secondInter_eq_self_iff
File: Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean

tactic: refine ⟨fun hp => ?_, fun hp => ?_⟩
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p : P
v : V
⊢ s.secondInter p v = p ↔ ⟪v, p -ᵥ s.center⟫_ℝ = 0
state_after: case refine_1
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p : P
v : V
hp : s.secondInter p v = p
⊢ ⟪v, p -ᵥ s.center⟫_ℝ = 0

case refine_2
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p : P
v : V
hp : ⟪v, p -ᵥ s.center⟫_ℝ = 0
⊢ s.secondInter p v = p

tactic: by_cases hv : v = 0
state_before: case refine_1
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p : P
v : V
hp : s.secondInter p v = p
⊢ ⟪v, p -ᵥ s.center⟫_ℝ = 0
state_after: case pos
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p : P
v : V
hp : s.secondInter p v = p
hv : v = 0
⊢ ⟪v, p -ᵥ s.center⟫_ℝ = 0

case neg
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p : P
v : V
hp : s.secondInter p v = p
hv : ¬v = 0
⊢ ⟪v, p -ᵥ s.center⟫_ℝ = 0

tactic: rwa [Sphere.secondInter, eq_comm, eq_vadd_iff_vsub_eq, vsub_self, eq_comm, smul_eq_zero,
  or_iff_left hv, div_eq_zero_iff, inner_self_eq_zero, or_iff_left hv, mul_eq_zero,
  or_iff_right (by norm_num : (-2 : ℝ) ≠ 0)] at hp
state_before: case neg
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p : P
v : V
hp : s.secondInter p v = p
hv : ¬v = 0
⊢ ⟪v, p -ᵥ s.center⟫_ℝ = 0
state_after: no goals

tactic: simp [hv]
state_before: case pos
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p : P
v : V
hp : s.secondInter p v = p
hv : v = 0
⊢ ⟪v, p -ᵥ s.center⟫_ℝ = 0
state_after: no goals

tactic: norm_num
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p : P
v : V
hp : -2 = 0 ∨ ⟪v, p -ᵥ s.center⟫_ℝ = 0
hv : ¬v = 0
⊢ -2 ≠ 0
state_after: no goals

tactic: rw [Sphere.secondInter, hp, mul_zero, zero_div, zero_smul, zero_vadd]
state_before: case refine_2
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p : P
v : V
hp : ⟪v, p -ᵥ s.center⟫_ℝ = 0
⊢ s.secondInter p v = p
state_after: no goals