1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: minpoly.isIntegrallyClosed_eq_field_fractions'
File: Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean

tactic: let L := FractionRing S
state_before: R : Type u_1
S : Type u_2
inst✝¹⁷ : CommRing R
inst✝¹⁶ : CommRing S
inst✝¹⁵ : IsDomain R
inst✝¹⁴ : Algebra R S
K : Type u_3
L : Type u_4
inst✝¹³ : Field K
inst✝¹² : Algebra R K
inst✝¹¹ : IsFractionRing R K
inst✝¹⁰ : CommRing L
inst✝⁹ : Nontrivial L
inst✝⁸ : Algebra R L
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : IsScalarTower R K L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsIntegrallyClosed R
inst✝² : IsDomain S
inst✝¹ : Algebra K S
inst✝ : IsScalarTower R K S
s : S
hs : IsIntegral R s
⊢ minpoly K s = map (algebraMap R K) (minpoly R s)
state_after: R : Type u_1
S : Type u_2
inst✝¹⁷ : CommRing R
inst✝¹⁶ : CommRing S
inst✝¹⁵ : IsDomain R
inst✝¹⁴ : Algebra R S
K : Type u_3
L✝ : Type u_4
inst✝¹³ : Field K
inst✝¹² : Algebra R K
inst✝¹¹ : IsFractionRing R K
inst✝¹⁰ : CommRing L✝
inst✝⁹ : Nontrivial L✝
inst✝⁸ : Algebra R L✝
inst✝⁷ : Algebra S L✝
inst✝⁶ : Algebra K L✝
inst✝⁵ : IsScalarTower R K L✝
inst✝⁴ : IsScalarTower R S L✝
inst✝³ : IsIntegrallyClosed R
inst✝² : IsDomain S
inst✝¹ : Algebra K S
inst✝ : IsScalarTower R K S
s : S
hs : IsIntegral R s
L : Type u_2 := FractionRing S
⊢ minpoly K s = map (algebraMap R K) (minpoly R s)

tactic: rw [← isIntegrallyClosed_eq_field_fractions K L hs, algebraMap_eq (IsFractionRing.injective S L)]
state_before: R : Type u_1
S : Type u_2
inst✝¹⁷ : CommRing R
inst✝¹⁶ : CommRing S
inst✝¹⁵ : IsDomain R
inst✝¹⁴ : Algebra R S
K : Type u_3
L✝ : Type u_4
inst✝¹³ : Field K
inst✝¹² : Algebra R K
inst✝¹¹ : IsFractionRing R K
inst✝¹⁰ : CommRing L✝
inst✝⁹ : Nontrivial L✝
inst✝⁸ : Algebra R L✝
inst✝⁷ : Algebra S L✝
inst✝⁶ : Algebra K L✝
inst✝⁵ : IsScalarTower R K L✝
inst✝⁴ : IsScalarTower R S L✝
inst✝³ : IsIntegrallyClosed R
inst✝² : IsDomain S
inst✝¹ : Algebra K S
inst✝ : IsScalarTower R K S
s : S
hs : IsIntegral R s
L : Type u_2 := FractionRing S
⊢ minpoly K s = map (algebraMap R K) (minpoly R s)
state_after: no goals
Theorem: ContinuousLinearEquiv.comp_hasFDerivAt_iff'
File: Mathlib/Analysis/Calculus/FDeriv/Equiv.lean

tactic: simp_rw [← hasFDerivWithinAt_univ, iso.comp_hasFDerivWithinAt_iff']
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f✝ f₀ f₁ g : E → F
f'✝ f₀' f₁' g' e : E →L[𝕜] F
x✝ : E
s t : Set E
L L₁ L₂ : Filter E
iso : E ≃L[𝕜] F
f : G → E
x : G
f' : G →L[𝕜] F
⊢ HasFDerivAt (⇑iso ∘ f) f' x ↔ HasFDerivAt f ((↑iso.symm).comp f') x
state_after: no goals
Theorem: PowerSeries.coeff_coe_trunc_of_lt
File: Mathlib/RingTheory/PowerSeries/Trunc.lean

tactic: rwa [coeff_coe, coeff_trunc, if_pos]
state_before: R✝ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
n m : ℕ
f : R⟦X⟧
h : n < m
⊢ (coeff R n) ↑(trunc m f) = (coeff R n) f
state_after: no goals
Theorem: Asymptotics.isBigO_norm_left
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp only [IsBigO_def]
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
u v : α → ℝ
⊢ (fun x => ‖f' x‖) =O[l] g ↔ f' =O[l] g
state_after: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
u v : α → ℝ
⊢ (∃ c, IsBigOWith c l (fun x => ‖f' x‖) g) ↔ ∃ c, IsBigOWith c l f' g

tactic: exact exists_congr fun _ => isBigOWith_norm_left
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
u v : α → ℝ
⊢ (∃ c, IsBigOWith c l (fun x => ‖f' x‖) g) ↔ ∃ c, IsBigOWith c l f' g
state_after: no goals
Theorem: CategoryTheory.IsHomLift.domain_eq
File: Mathlib/CategoryTheory/FiberedCategory/HomLift.lean

tactic: subst_hom_lift p f φ
state_before: 𝒮 : Type u₁
𝒳 : Type u₂
inst✝² : Category.{v₁, u₂} 𝒳
inst✝¹ : Category.{v₂, u₁} 𝒮
p : 𝒳 ⥤ 𝒮
R S : 𝒮
a b : 𝒳
f : R ⟶ S
φ : a ⟶ b
inst✝ : p.IsHomLift f φ
⊢ p.obj a = R
state_after: case map
𝒮 : Type u₁
𝒳 : Type u₂
inst✝² : Category.{v₁, u₂} 𝒳
inst✝¹ : Category.{v₂, u₁} 𝒮
p : 𝒳 ⥤ 𝒮
a✝ b✝ : 𝒳
φ : a✝ ⟶ b✝
R S : 𝒮
a b : 𝒳
inst✝ : p.IsHomLift (p.map φ) φ
⊢ p.obj a✝ = p.obj a✝

tactic: rfl
state_before: case map
𝒮 : Type u₁
𝒳 : Type u₂
inst✝² : Category.{v₁, u₂} 𝒳
inst✝¹ : Category.{v₂, u₁} 𝒮
p : 𝒳 ⥤ 𝒮
a✝ b✝ : 𝒳
φ : a✝ ⟶ b✝
R S : 𝒮
a b : 𝒳
inst✝ : p.IsHomLift (p.map φ) φ
⊢ p.obj a✝ = p.obj a✝
state_after: no goals
Theorem: Finset.truncatedInf_union_of_not_mem
File: Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean

tactic: rw [coe_union, upperClosure_union]
state_before: α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeInf α
inst✝⁵ : BoundedOrder α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeInf β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a : α
inst✝ : DecidableEq α
hs : a ∉ upperClosure ↑s
ht : a ∉ upperClosure ↑t
⊢ a ∉ upperClosure ↑(s ∪ t)
state_after: α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeInf α
inst✝⁵ : BoundedOrder α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeInf β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a : α
inst✝ : DecidableEq α
hs : a ∉ upperClosure ↑s
ht : a ∉ upperClosure ↑t
⊢ a ∉ upperClosure ↑s ⊓ upperClosure ↑t

tactic: exact fun h ↦ h.elim hs ht
state_before: α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeInf α
inst✝⁵ : BoundedOrder α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeInf β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a : α
inst✝ : DecidableEq α
hs : a ∉ upperClosure ↑s
ht : a ∉ upperClosure ↑t
⊢ a ∉ upperClosure ↑s ⊓ upperClosure ↑t
state_after: no goals
Theorem: Set.InjOn.imageFactorization_injective
File: Mathlib/Data/Set/Function.lean

tactic: simpa [imageFactorization, h.eq_iff hx hy] using h'
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f f₁ f₂ f₃ : α → β
g g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
h : InjOn f s
x✝¹ x✝ : ↑s
x : α
hx : x ∈ s
y : α
hy : y ∈ s
h' : imageFactorization f s ⟨x, hx⟩ = imageFactorization f s ⟨y, hy⟩
⊢ ⟨x, hx⟩ = ⟨y, hy⟩
state_after: no goals
Theorem: map_intCast_smul
File: Mathlib/Algebra/Module/Defs.lean

tactic: simp only [← zsmul_eq_smul_cast, map_zsmul]
state_before: α : Type u_1
R✝ : Type u_2
k : Type u_3
S✝ : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
F : Type u_9
inst✝⁵ : FunLike F M M₂
inst✝⁴ : AddMonoidHomClass F M M₂
f : F
R : Type u_10
S : Type u_11
inst✝³ : Ring R
inst✝² : Ring S
inst✝¹ : Module R M
inst✝ : Module S M₂
x : ℤ
a : M
⊢ f (↑x • a) = ↑x • f a
state_after: no goals
Theorem: Nat.digits_eq_nil_iff_eq_zero
File: Mathlib/Data/Nat/Digits.lean

tactic: constructor
state_before: n✝ b n : ℕ
⊢ b.digits n = [] ↔ n = 0
state_after: case mp
n✝ b n : ℕ
⊢ b.digits n = [] → n = 0

case mpr
n✝ b n : ℕ
⊢ n = 0 → b.digits n = []

tactic: intro h
state_before: case mp
n✝ b n : ℕ
⊢ b.digits n = [] → n = 0
state_after: case mp
n✝ b n : ℕ
h : b.digits n = []
⊢ n = 0

tactic: have : ofDigits b (digits b n) = ofDigits b [] := by rw [h]
state_before: case mp
n✝ b n : ℕ
h : b.digits n = []
⊢ n = 0
state_after: case mp
n✝ b n : ℕ
h : b.digits n = []
this : ofDigits b (b.digits n) = ofDigits b []
⊢ n = 0

tactic: convert this
state_before: case mp
n✝ b n : ℕ
h : b.digits n = []
this : ofDigits b (b.digits n) = ofDigits b []
⊢ n = 0
state_after: case h.e'_2
n✝ b n : ℕ
h : b.digits n = []
this : ofDigits b (b.digits n) = ofDigits b []
⊢ n = ofDigits b (b.digits n)

tactic: rw [ofDigits_digits]
state_before: case h.e'_2
n✝ b n : ℕ
h : b.digits n = []
this : ofDigits b (b.digits n) = ofDigits b []
⊢ n = ofDigits b (b.digits n)
state_after: no goals

tactic: rw [h]
state_before: n✝ b n : ℕ
h : b.digits n = []
⊢ ofDigits b (b.digits n) = ofDigits b []
state_after: no goals

tactic: rintro rfl
state_before: case mpr
n✝ b n : ℕ
⊢ n = 0 → b.digits n = []
state_after: case mpr
n b : ℕ
⊢ b.digits 0 = []

tactic: simp
state_before: case mpr
n b : ℕ
⊢ b.digits 0 = []
state_after: no goals
Theorem: Mathlib.Tactic.Ring.mul_one
File: Mathlib/Tactic/Ring/Basic.lean

tactic: simp [Nat.rawCast]
state_before: u : Lean.Level
R : Type u_1
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝ : CommSemiring R
a : R
⊢ a * Nat.rawCast 1 = a
state_after: no goals
Theorem: List.get?_modifyNth_ne
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: simp [h]
state_before: α : Type u_1
f : α → α
m n : Nat
l : List α
h : m ≠ n
⊢ (modifyNth f m l).get? n = l.get? n
state_after: no goals
Theorem: eq_divp_iff_mul_eq
File: Mathlib/Algebra/Group/Units.lean

tactic: rw [eq_comm, divp_eq_iff_mul_eq]
state_before: α : Type u
inst✝ : Monoid α
a b c x : α
u : αˣ
y : α
⊢ x = y /ₚ u ↔ x * ↑u = y
state_after: no goals
Theorem: AddCommGrp.image.fac
File: Mathlib/Algebra/Category/Grp/Images.lean

tactic: ext
state_before: G H : AddCommGrp
f : G ⟶ H
⊢ factorThruImage f ≫ ι f = f
state_after: case w
G H : AddCommGrp
f : G ⟶ H
x✝ : ↑G
⊢ (factorThruImage f ≫ ι f) x✝ = f x✝

tactic: rfl
state_before: case w
G H : AddCommGrp
f : G ⟶ H
x✝ : ↑G
⊢ (factorThruImage f ≫ ι f) x✝ = f x✝
state_after: no goals
Theorem: CategoryTheory.HasShift.Induced.zero_inv_app_obj
File: Mathlib/CategoryTheory/Shift/Induced.lean

tactic: have h : whiskerLeft F (zero F s i).inv = _ :=
  ((whiskeringLeft C D D).obj F).map_preimage _
state_before: C : Type u_4
D : Type u_2
inst✝⁵ : Category.{u_3, u_4} C
inst✝⁴ : Category.{u_1, u_2} D
F : C ⥤ D
A : Type u_5
inst✝³ : AddMonoid A
inst✝² : HasShift C A
s : A → D ⥤ D
i : (a : A) → F ⋙ s a ≅ shiftFunctor C a ⋙ F
inst✝¹ : ((whiskeringLeft C D D).obj F).Full
inst✝ : ((whiskeringLeft C D D).obj F).Faithful
X : C
⊢ (zero F s i).inv.app (F.obj X) = F.map ((shiftFunctorZero C A).inv.app X) ≫ (i 0).inv.app X
state_after: C : Type u_4
D : Type u_2
inst✝⁵ : Category.{u_3, u_4} C
inst✝⁴ : Category.{u_1, u_2} D
F : C ⥤ D
A : Type u_5
inst✝³ : AddMonoid A
inst✝² : HasShift C A
s : A → D ⥤ D
i : (a : A) → F ⋙ s a ≅ shiftFunctor C a ⋙ F
inst✝¹ : ((whiskeringLeft C D D).obj F).Full
inst✝ : ((whiskeringLeft C D D).obj F).Faithful
X : C
h :
  whiskerLeft F (zero F s i).inv =
    (i 0 ≪≫ isoWhiskerRight (shiftFunctorZero C A) F ≪≫ F.leftUnitor ≪≫ F.rightUnitor.symm).inv
⊢ (zero F s i).inv.app (F.obj X) = F.map ((shiftFunctorZero C A).inv.app X) ≫ (i 0).inv.app X

tactic: exact (NatTrans.congr_app h X).trans (by simp)
state_before: C : Type u_4
D : Type u_2
inst✝⁵ : Category.{u_3, u_4} C
inst✝⁴ : Category.{u_1, u_2} D
F : C ⥤ D
A : Type u_5
inst✝³ : AddMonoid A
inst✝² : HasShift C A
s : A → D ⥤ D
i : (a : A) → F ⋙ s a ≅ shiftFunctor C a ⋙ F
inst✝¹ : ((whiskeringLeft C D D).obj F).Full
inst✝ : ((whiskeringLeft C D D).obj F).Faithful
X : C
h :
  whiskerLeft F (zero F s i).inv =
    (i 0 ≪≫ isoWhiskerRight (shiftFunctorZero C A) F ≪≫ F.leftUnitor ≪≫ F.rightUnitor.symm).inv
⊢ (zero F s i).inv.app (F.obj X) = F.map ((shiftFunctorZero C A).inv.app X) ≫ (i 0).inv.app X
state_after: no goals

tactic: simp
state_before: C : Type u_4
D : Type u_2
inst✝⁵ : Category.{u_3, u_4} C
inst✝⁴ : Category.{u_1, u_2} D
F : C ⥤ D
A : Type u_5
inst✝³ : AddMonoid A
inst✝² : HasShift C A
s : A → D ⥤ D
i : (a : A) → F ⋙ s a ≅ shiftFunctor C a ⋙ F
inst✝¹ : ((whiskeringLeft C D D).obj F).Full
inst✝ : ((whiskeringLeft C D D).obj F).Faithful
X : C
h :
  whiskerLeft F (zero F s i).inv =
    (i 0 ≪≫ isoWhiskerRight (shiftFunctorZero C A) F ≪≫ F.leftUnitor ≪≫ F.rightUnitor.symm).inv
⊢ (i 0 ≪≫ isoWhiskerRight (shiftFunctorZero C A) F ≪≫ F.leftUnitor ≪≫ F.rightUnitor.symm).inv.app X =
    F.map ((shiftFunctorZero C A).inv.app X) ≫ (i 0).inv.app X
state_after: no goals
Theorem: cfcₙ_comp_star
File: Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean

tactic: rw [cfcₙ_comp' f star a, cfcₙ_star_id a]
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹³ : CommSemiring R
inst✝¹² : Nontrivial R
inst✝¹¹ : StarRing R
inst✝¹⁰ : MetricSpace R
inst✝⁹ : TopologicalSemiring R
inst✝⁸ : ContinuousStar R
inst✝⁷ : NonUnitalRing A
inst✝⁶ : StarRing A
inst✝⁵ : TopologicalSpace A
inst✝⁴ : Module R A
inst✝³ : IsScalarTower R A A
inst✝² : SMulCommClass R A A
inst✝¹ : NonUnitalContinuousFunctionalCalculus R p
f g : R → R
a : A
hf✝ : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0✝ : autoParam (f 0 = 0) _auto✝
hg : autoParam (ContinuousOn g (σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
ha✝ : autoParam (p a) _auto✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
hf : autoParam (ContinuousOn f (star '' σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
⊢ cfcₙ (fun x => f (star x)) a = cfcₙ f (star a)
state_after: no goals
Theorem: Affine.Simplex.dist_circumcenter_eq_circumradius'
File: Mathlib/Geometry/Euclidean/Circumcenter.lean

tactic: intro i
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
n : ℕ
s : Simplex ℝ P n
⊢ ∀ (i : Fin (n + 1)), dist s.circumcenter (s.points i) = s.circumradius
state_after: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
n : ℕ
s : Simplex ℝ P n
i : Fin (n + 1)
⊢ dist s.circumcenter (s.points i) = s.circumradius

tactic: rw [dist_comm]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
n : ℕ
s : Simplex ℝ P n
i : Fin (n + 1)
⊢ dist s.circumcenter (s.points i) = s.circumradius
state_after: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
n : ℕ
s : Simplex ℝ P n
i : Fin (n + 1)
⊢ dist (s.points i) s.circumcenter = s.circumradius

tactic: exact dist_circumcenter_eq_circumradius _ _
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
n : ℕ
s : Simplex ℝ P n
i : Fin (n + 1)
⊢ dist (s.points i) s.circumcenter = s.circumradius
state_after: no goals
Theorem: CategoryTheory.Center.rightUnitor_inv_f
File: Mathlib/CategoryTheory/Monoidal/Center.lean

tactic: apply Iso.inv_ext'
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : MonoidalCategory C
X : Center C
⊢ (ρ_ X).inv.f = (ρ_ X.fst).inv
state_after: case hom_inv_id
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : MonoidalCategory C
X : Center C
⊢ (ρ_ X.fst).hom ≫ (ρ_ X).inv.f = 𝟙 (X ⊗ 𝟙_ (Center C)).fst

tactic: rw [← rightUnitor_hom_f, ← comp_f, Iso.hom_inv_id]
state_before: case hom_inv_id
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : MonoidalCategory C
X : Center C
⊢ (ρ_ X.fst).hom ≫ (ρ_ X).inv.f = 𝟙 (X ⊗ 𝟙_ (Center C)).fst
state_after: case hom_inv_id
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : MonoidalCategory C
X : Center C
⊢ (𝟙 (X ⊗ 𝟙_ (Center C))).f = 𝟙 (X ⊗ 𝟙_ (Center C)).fst

tactic: rfl
state_before: case hom_inv_id
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : MonoidalCategory C
X : Center C
⊢ (𝟙 (X ⊗ 𝟙_ (Center C))).f = 𝟙 (X ⊗ 𝟙_ (Center C)).fst
state_after: no goals
Theorem: InnerProductGeometry.angle_add_angle_eq_pi_of_angle_eq_pi
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean

tactic: rcases angle_eq_pi_iff.1 h with ⟨_, ⟨r, ⟨hr, rfl⟩⟩⟩
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x✝ y✝ x y z : V
h : angle x y = π
⊢ angle x z + angle y z = π
state_after: case intro.intro.intro
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x✝ y x z : V
left✝ : x ≠ 0
r : ℝ
hr : r < 0
h : angle x (r • x) = π
⊢ angle x z + angle (r • x) z = π

tactic: rw [angle_smul_left_of_neg x z hr, angle_neg_left, add_sub_cancel]
state_before: case intro.intro.intro
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x✝ y x z : V
left✝ : x ≠ 0
r : ℝ
hr : r < 0
h : angle x (r • x) = π
⊢ angle x z + angle (r • x) z = π
state_after: no goals
Theorem: Real.log_neg_natCast_nonneg
File: Mathlib/Analysis/SpecialFunctions/Log/Basic.lean

tactic: rw [← log_neg_eq_log, neg_neg]
state_before: x y : ℝ
n : ℕ
⊢ 0 ≤ log (-↑n)
state_after: x y : ℝ
n : ℕ
⊢ 0 ≤ log ↑n

tactic: exact log_natCast_nonneg _
state_before: x y : ℝ
n : ℕ
⊢ 0 ≤ log ↑n
state_after: no goals
Theorem: Option.exists_mem_map
File: Mathlib/Data/Option/Basic.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
f : α → β
o : Option α
p : β → Prop
⊢ (∃ y, y ∈ Option.map f o ∧ p y) ↔ ∃ x, x ∈ o ∧ p (f x)
state_after: no goals
Theorem: SimpleGraph.Subgraph.Connected.sup
File: Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean

tactic: rw [Subgraph.connected_iff', connected_iff_exists_forall_reachable]
state_before: V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H K : G.Subgraph
hH : H.Connected
hK : K.Connected
hn : (H ⊓ K).verts.Nonempty
⊢ (H ⊔ K).Connected
state_after: V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H K : G.Subgraph
hH : H.Connected
hK : K.Connected
hn : (H ⊓ K).verts.Nonempty
⊢ ∃ v, ∀ (w : ↑(H ⊔ K).verts), (H ⊔ K).coe.Reachable v w

tactic: obtain ⟨u, hu, hu'⟩ := hn
state_before: V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H K : G.Subgraph
hH : H.Connected
hK : K.Connected
hn : (H ⊓ K).verts.Nonempty
⊢ ∃ v, ∀ (w : ↑(H ⊔ K).verts), (H ⊔ K).coe.Reachable v w
state_after: case intro.intro
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H K : G.Subgraph
hH : H.Connected
hK : K.Connected
u : V
hu : u ∈ H.verts
hu' : u ∈ K.verts
⊢ ∃ v, ∀ (w : ↑(H ⊔ K).verts), (H ⊔ K).coe.Reachable v w

tactic: exists ⟨u, Or.inl hu⟩
state_before: case intro.intro
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H K : G.Subgraph
hH : H.Connected
hK : K.Connected
u : V
hu : u ∈ H.verts
hu' : u ∈ K.verts
⊢ ∃ v, ∀ (w : ↑(H ⊔ K).verts), (H ⊔ K).coe.Reachable v w
state_after: case intro.intro
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H K : G.Subgraph
hH : H.Connected
hK : K.Connected
u : V
hu : u ∈ H.verts
hu' : u ∈ K.verts
⊢ ∀ (w : ↑(H ⊔ K).verts), (H ⊔ K).coe.Reachable ⟨u, ⋯⟩ w

tactic: rintro ⟨v, (hv|hv)⟩
state_before: case intro.intro
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H K : G.Subgraph
hH : H.Connected
hK : K.Connected
u : V
hu : u ∈ H.verts
hu' : u ∈ K.verts
⊢ ∀ (w : ↑(H ⊔ K).verts), (H ⊔ K).coe.Reachable ⟨u, ⋯⟩ w
state_after: case intro.intro.mk.inl
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H K : G.Subgraph
hH : H.Connected
hK : K.Connected
u : V
hu : u ∈ H.verts
hu' : u ∈ K.verts
v : V
hv : v ∈ H.verts
⊢ (H ⊔ K).coe.Reachable ⟨u, ⋯⟩ ⟨v, ⋯⟩

case intro.intro.mk.inr
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H K : G.Subgraph
hH : H.Connected
hK : K.Connected
u : V
hu : u ∈ H.verts
hu' : u ∈ K.verts
v : V
hv : v ∈ K.verts
⊢ (H ⊔ K).coe.Reachable ⟨u, ⋯⟩ ⟨v, ⋯⟩

tactic: exact Reachable.map (Subgraph.inclusion (le_sup_left : H ≤ H ⊔ K)) (hH ⟨u, hu⟩ ⟨v, hv⟩)
state_before: case intro.intro.mk.inl
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H K : G.Subgraph
hH : H.Connected
hK : K.Connected
u : V
hu : u ∈ H.verts
hu' : u ∈ K.verts
v : V
hv : v ∈ H.verts
⊢ (H ⊔ K).coe.Reachable ⟨u, ⋯⟩ ⟨v, ⋯⟩
state_after: no goals

tactic: exact Reachable.map (Subgraph.inclusion (le_sup_right : K ≤ H ⊔ K)) (hK ⟨u, hu'⟩ ⟨v, hv⟩)
state_before: case intro.intro.mk.inr
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H K : G.Subgraph
hH : H.Connected
hK : K.Connected
u : V
hu : u ∈ H.verts
hu' : u ∈ K.verts
v : V
hv : v ∈ K.verts
⊢ (H ⊔ K).coe.Reachable ⟨u, ⋯⟩ ⟨v, ⋯⟩
state_after: no goals
Theorem: parallelogram_law_with_norm
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: simp only [← @inner_self_eq_norm_mul_norm 𝕜]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
x y : E
⊢ ‖x + y‖ * ‖x + y‖ + ‖x - y‖ * ‖x - y‖ = 2 * (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
x y : E
⊢ re ⟪x + y, x + y⟫_𝕜 + re ⟪x - y, x - y⟫_𝕜 = 2 * (re ⟪x, x⟫_𝕜 + re ⟪y, y⟫_𝕜)

tactic: rw [← re.map_add, parallelogram_law, two_mul, two_mul]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
x y : E
⊢ re ⟪x + y, x + y⟫_𝕜 + re ⟪x - y, x - y⟫_𝕜 = 2 * (re ⟪x, x⟫_𝕜 + re ⟪y, y⟫_𝕜)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
x y : E
⊢ re (⟪x, x⟫_𝕜 + ⟪y, y⟫_𝕜 + (⟪x, x⟫_𝕜 + ⟪y, y⟫_𝕜)) = re ⟪x, x⟫_𝕜 + re ⟪y, y⟫_𝕜 + (re ⟪x, x⟫_𝕜 + re ⟪y, y⟫_𝕜)

tactic: simp only [re.map_add]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
x y : E
⊢ re (⟪x, x⟫_𝕜 + ⟪y, y⟫_𝕜 + (⟪x, x⟫_𝕜 + ⟪y, y⟫_𝕜)) = re ⟪x, x⟫_𝕜 + re ⟪y, y⟫_𝕜 + (re ⟪x, x⟫_𝕜 + re ⟪y, y⟫_𝕜)
state_after: no goals
Theorem: Tuple.self_comp_sort
File: Mathlib/Data/Fin/Tuple/Sort.lean

tactic: simp
state_before: n : ℕ
α : Type u_1
inst✝ : LinearOrder α
f : Fin n → α
⊢ graph.proj ∘ (⇑(graphEquiv₁ f) ∘ ⇑(graphEquiv₁ f).symm) ∘ ⇑(graphEquiv₂ f).toEquiv = graph.proj ∘ ⇑(graphEquiv₂ f)
state_after: no goals
Theorem: le_mul_of_one_le_right
File: Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean

tactic: simpa only [mul_one] using mul_le_mul_of_nonneg_left h ha
state_before: α : Type u_1
a b c d : α
inst✝³ : MulOneClass α
inst✝² : Zero α
inst✝¹ : Preorder α
inst✝ : PosMulMono α
ha : 0 ≤ a
h : 1 ≤ b
⊢ a ≤ a * b
state_after: no goals