X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
S : Set α
f : α → Set X
ho : ∀ s ∈ S, IsOpen (f s)
hS : S.Countable
hd : ∀ s ∈ S, Dense (f s)
⊢ Dense (⋂ s ∈ S, f s)

X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
S : Set α
f : α → Set X
ho : ∀ s ∈ S, IsOpen (f s)
hS : S.Countable
hd : ∀ s ∈ S, Dense (f s)
⊢ Dense (⋂₀ (f '' S))

refine dense_sInter_of_isOpen ?_ (hS.image _) ?_ <;> rwa [forall_mem_image]


n m k : ℕ
⊢ n.dist k ≤ n.dist m + m.dist k

n m k : ℕ
this : n.dist m + m.dist k = n - m + (m - k) + (k - m + (m - n))
⊢ n.dist k ≤ n.dist m + m.dist k

have : dist n m + dist m k = n - m + (m - k) + (k - m + (m - n)) := by
    simp [dist, add_comm, add_left_comm, add_assoc]

n m k : ℕ
this : n.dist m + m.dist k = n - m + (m - k) + (k - m + (m - n))
⊢ n - k + (k - n) ≤ n - m + (m - k) + (k - m + (m - n))

exact add_le_add tsub_le_tsub_add_tsub tsub_le_tsub_add_tsub


K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
c : ℝ
⊢ mixedEmbedding.norm (fun x => c, fun x => ↑c) = |c| ^ finrank ℚ K

rw [show ((fun _ ↦ c, fun _ ↦ c) : (E K)) = c • 1 by ext <;> simp, norm_smul, map_one, mul_one]


R : Type u
inst✝¹ : CommRing R
W✝ : Affine R
F : Type u
inst✝ : Field F
W : Affine F
x₁ x₂ y₁ y₂ : F
h₁ : W.Equation x₁ y₁
h₂ : W.Equation x₂ y₂
hxy : x₁ = x₂ → y₁ ≠ W.negY x₂ y₂
⊢ derivative (W.addPolynomial x₁ y₁ (W.slope x₁ x₂ y₁ y₂)) =
    -((X - C x₁) * (X - C x₂) + (X - C x₁) * (X - C (W.addX x₁ x₂ (W.slope x₁ x₂ y₁ y₂))) +
        (X - C x₂) * (X - C (W.addX x₁ x₂ (W.slope x₁ x₂ y₁ y₂))))

R : Type u
inst✝¹ : CommRing R
W✝ : Affine R
F : Type u
inst✝ : Field F
W : Affine F
x₁ x₂ y₁ y₂ : F
h₁ : W.Equation x₁ y₁
h₂ : W.Equation x₂ y₂
hxy : x₁ = x₂ → y₁ ≠ W.negY x₂ y₂
⊢ derivative (-((X - C x₁) * (X - C x₂) * (X - C (W.addX x₁ x₂ (W.slope x₁ x₂ y₁ y₂))))) =
    -((X - C x₁) * (X - C x₂) + (X - C x₁) * (X - C (W.addX x₁ x₂ (W.slope x₁ x₂ y₁ y₂))) +
        (X - C x₂) * (X - C (W.addX x₁ x₂ (W.slope x₁ x₂ y₁ y₂))))

R : Type u
inst✝¹ : CommRing R
W✝ : Affine R
F : Type u
inst✝ : Field F
W : Affine F
x₁ x₂ y₁ y₂ : F
h₁ : W.Equation x₁ y₁
h₂ : W.Equation x₂ y₂
hxy : x₁ = x₂ → y₁ ≠ W.negY x₂ y₂
⊢ -(((1 - 0) * (X - C x₂) + (X - C x₁) * (1 - 0)) * (X - C (W.addX x₁ x₂ (W.slope x₁ x₂ y₁ y₂))) +
        (X - C x₁) * (X - C x₂) * (1 - 0)) =
    -((X - C x₁) * (X - C x₂) + (X - C x₁) * (X - C (W.addX x₁ x₂ (W.slope x₁ x₂ y₁ y₂))) +
        (X - C x₂) * (X - C (W.addX x₁ x₂ (W.slope x₁ x₂ y₁ y₂))))


m n a b c d : ℕ
hmc : m.gcd c = 1
h : c * a ≡ c * b [MOD m]
⊢ a ≡ b [MOD m]

case inl
n a b c d : ℕ
hmc : gcd 0 c = 1
h : c * a ≡ c * b [MOD 0]
⊢ a ≡ b [MOD 0]

case inr
m n a b c d : ℕ
hmc : m.gcd c = 1
h : c * a ≡ c * b [MOD m]
hm : m > 0
⊢ a ≡ b [MOD m]

simpa [hmc] using h.cancel_left_div_gcd hm


α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c✝ d c : α
⊢ a / c ≤ b / c ↔ a ≤ b

simpa only [div_eq_mul_inv] using mul_le_mul_iff_right _


α : Type u_1
inst✝ : DecidableEq α
𝒜 : Finset (Finset α)
s t : Finset α
a : α
k r : ℕ
⊢ t ∈ ∂ 𝒜 ↔ ∃ s ∈ 𝒜, t ⊆ s ∧ (s \ t).card = 1

simp_rw [mem_shadow_iff, ← covBy_iff_card_sdiff_eq_one, covBy_iff_exists_erase]


α : Type u_1
β : Type u_2
inst✝² : LinearOrderedField α
inst✝¹ : Ring β
abv : β → α
inst✝ : IsAbsoluteValue abv
f1 f2 g1 g2 : CauSeq β abv
hf : f1 ≈ f2
hg : g1 ≈ g2
⊢ f1 + g1 ≈ f2 + g2

simpa only [← add_sub_add_comm] using add_limZero hf hg


𝕜 : Type u_1
B : Type u_2
B' : Type u_3
F : Type u_4
M : Type u_5
E : B → Type u_6
inst✝²³ : NontriviallyNormedField 𝕜
EB : Type u_7
inst✝²² : NormedAddCommGroup EB
inst✝²¹ : NormedSpace 𝕜 EB
HB : Type u_8
inst✝²⁰ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝¹⁹ : TopologicalSpace B
inst✝¹⁸ : ChartedSpace HB B
inst✝¹⁷ : SmoothManifoldWithCorners IB B
EM : Type u_9
inst✝¹⁶ : NormedAddCommGroup EM
inst✝¹⁵ : NormedSpace 𝕜 EM
HM : Type u_10
inst✝¹⁴ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace HM M
Is : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝¹¹ : (x : B) → AddCommMonoid (E x)
inst✝¹⁰ : (x : B) → Module 𝕜 (E x)
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
inst✝⁷ : TopologicalSpace (TotalSpace F E)
inst✝⁶ : (x : B) → TopologicalSpace (E x)
inst✝⁵ : FiberBundle F E
inst✝⁴ : VectorBundle 𝕜 F E
inst✝³ : SmoothVectorBundle F E IB
e✝ e' : Trivialization F TotalSpace.proj
inst✝² : MemTrivializationAtlas e✝
inst✝¹ : MemTrivializationAtlas e'
e : Trivialization F TotalSpace.proj
inst✝ : MemTrivializationAtlas e
⊢ SmoothOn (IB.prod 𝓘(𝕜, F)) (IB.prod 𝓘(𝕜, F)) (↑e) e.source

𝕜 : Type u_1
B : Type u_2
B' : Type u_3
F : Type u_4
M : Type u_5
E : B → Type u_6
inst✝²³ : NontriviallyNormedField 𝕜
EB : Type u_7
inst✝²² : NormedAddCommGroup EB
inst✝²¹ : NormedSpace 𝕜 EB
HB : Type u_8
inst✝²⁰ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝¹⁹ : TopologicalSpace B
inst✝¹⁸ : ChartedSpace HB B
inst✝¹⁷ : SmoothManifoldWithCorners IB B
EM : Type u_9
inst✝¹⁶ : NormedAddCommGroup EM
inst✝¹⁵ : NormedSpace 𝕜 EM
HM : Type u_10
inst✝¹⁴ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace HM M
Is : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝¹¹ : (x : B) → AddCommMonoid (E x)
inst✝¹⁰ : (x : B) → Module 𝕜 (E x)
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
inst✝⁷ : TopologicalSpace (TotalSpace F E)
inst✝⁶ : (x : B) → TopologicalSpace (E x)
inst✝⁵ : FiberBundle F E
inst✝⁴ : VectorBundle 𝕜 F E
inst✝³ : SmoothVectorBundle F E IB
e✝ e' : Trivialization F TotalSpace.proj
inst✝² : MemTrivializationAtlas e✝
inst✝¹ : MemTrivializationAtlas e'
e : Trivialization F TotalSpace.proj
inst✝ : MemTrivializationAtlas e
this : SmoothOn (IB.prod 𝓘(𝕜, F)) (IB.prod 𝓘(𝕜, F)) id e.source
⊢ SmoothOn (IB.prod 𝓘(𝕜, F)) (IB.prod 𝓘(𝕜, F)) (↑e) e.source

have : SmoothOn (IB.prod 𝓘(𝕜, F)) (IB.prod 𝓘(𝕜, F)) id e.source := smoothOn_id

𝕜 : Type u_1
B : Type u_2
B' : Type u_3
F : Type u_4
M : Type u_5
E : B → Type u_6
inst✝²³ : NontriviallyNormedField 𝕜
EB : Type u_7
inst✝²² : NormedAddCommGroup EB
inst✝²¹ : NormedSpace 𝕜 EB
HB : Type u_8
inst✝²⁰ : TopologicalSpace HB
IB : ModelWithCorners 𝕜 EB HB
inst✝¹⁹ : TopologicalSpace B
inst✝¹⁸ : ChartedSpace HB B
inst✝¹⁷ : SmoothManifoldWithCorners IB B
EM : Type u_9
inst✝¹⁶ : NormedAddCommGroup EM
inst✝¹⁵ : NormedSpace 𝕜 EM
HM : Type u_10
inst✝¹⁴ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace HM M
Is : SmoothManifoldWithCorners IM M
n : ℕ∞
inst✝¹¹ : (x : B) → AddCommMonoid (E x)
inst✝¹⁰ : (x : B) → Module 𝕜 (E x)
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
inst✝⁷ : TopologicalSpace (TotalSpace F E)
inst✝⁶ : (x : B) → TopologicalSpace (E x)
inst✝⁵ : FiberBundle F E
inst✝⁴ : VectorBundle 𝕜 F E
inst✝³ : SmoothVectorBundle F E IB
e✝ e' : Trivialization F TotalSpace.proj
inst✝² : MemTrivializationAtlas e✝
inst✝¹ : MemTrivializationAtlas e'
e : Trivialization F TotalSpace.proj
inst✝ : MemTrivializationAtlas e
this :
  SmoothOn (IB.prod 𝓘(𝕜, F)) IB (fun x => (id x).proj) e.source ∧
    SmoothOn (IB.prod 𝓘(𝕜, F)) 𝓘(𝕜, F) (fun x => (↑e (id x)).2) e.source
⊢ SmoothOn (IB.prod 𝓘(𝕜, F)) (IB.prod 𝓘(𝕜, F)) (↑e) e.source

rw [e.smoothOn_iff IB (mapsTo_id _)] at this

exact (this.1.prod_mk this.2).congr fun x hx ↦ (e.mk_proj_snd hx).symm


V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
inst✝² : DecidableEq V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
⊢ Odd (Nat.card V) ↔ Odd (Nat.card ↑{c | Odd (Nat.card ↑c.supp)})

V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
inst✝² : DecidableEq V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
⊢ Odd (Fintype.card V) ↔ Odd (Nat.card ↑{c | Odd (Nat.card ↑c.supp)})

V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
inst✝² : DecidableEq V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
⊢ Odd (Finset.univ.biUnion fun x => x.supp.toFinset).card ↔ Odd (Nat.card ↑{x | Odd (Nat.card ↑x.supp)})

simp only [← (set_fintype_card_eq_univ_iff _).mpr G.iUnion_connectedComponentSupp,
    ConnectedComponent.mem_supp_iff, Fintype.card_subtype_compl,
    ← Set.toFinset_card, Set.toFinset_iUnion ConnectedComponent.supp]

V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
inst✝² : DecidableEq V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
⊢ Odd (∑ u : G.ConnectedComponent, u.supp.toFinset.card) ↔ Odd (Nat.card ↑{x | Odd (Nat.card ↑x.supp)})

rw [Finset.card_biUnion
    (fun x _ y _ hxy ↦ Set.disjoint_toFinset.mpr (pairwise_disjoint_supp_connectedComponent _ hxy))]

V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
inst✝² : DecidableEq V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
⊢ Odd (∑ x : G.ConnectedComponent, Nat.card ↑x.supp) ↔ Odd (Nat.card ↑{x | Odd (Nat.card ↑x.supp)})

simp_rw [Set.toFinset_card, ← Nat.card_eq_fintype_card]

V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
inst✝² : DecidableEq V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
⊢ Odd (∑ x : G.ConnectedComponent, Nat.card ↑x.supp) ↔
    Odd (Finset.filter (fun x => x ∈ {x | Odd (Nat.card ↑x.supp)}) Finset.univ).card

exact (Finset.odd_sum_iff_odd_card_odd (fun x : G.ConnectedComponent ↦ Nat.card x.supp))


C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
Y Z : C
q n : ℕ
φ : Y ⟶ X _[n + 1]
v : HigherFacesVanish q φ
f : Z ⟶ Y
j : Fin (n + 1)
hj : n + 1 ≤ ↑j + q
⊢ (f ≫ φ) ≫ X.δ j.succ = 0


A : Type u_1
inst✝³ : AddCommGroup A
inst✝² : Module ℂ A
inst✝¹ : StarAddMonoid A
inst✝ : StarModule ℂ A
⊢ ∀ (x y : ↥(selfAdjoint ℂ)), (fun z => (↑z).re) (x + y) = (fun z => (↑z).re) x + (fun z => (↑z).re) y

A : Type u_1
inst✝³ : AddCommGroup A
inst✝² : Module ℂ A
inst✝¹ : StarAddMonoid A
inst✝ : StarModule ℂ A
⊢ ∀ (m : ℝ) (x : ↥(selfAdjoint ℂ)),
    { toFun := fun z => (↑z).re, map_add' := ⋯ }.toFun (m • x) =
      (RingHom.id ℝ) m • { toFun := fun z => (↑z).re, map_add' := ⋯ }.toFun x


α : Type u_1
E : Type u_2
F : Type u_3
m0 : MeasurableSpace α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
μ : Measure α
s : Set E
t : Set α
f : α → E
g : E → ℝ
C : ℝ
inst✝ : StrictConvexSpace ℝ E
ht : μ t ≠ ⊤
h_le : ∀ᵐ (x : α) ∂μ.restrict t, ‖f x‖ ≤ C
⊢ f =ᶠ[ae (μ.restrict t)] const α (⨍ (x : α) in t, f x ∂μ) ∨ ‖∫ (x : α) in t, f x ∂μ‖ < (μ t).toReal * C

α : Type u_1
E : Type u_2
F : Type u_3
m0 : MeasurableSpace α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
μ : Measure α
s : Set E
t : Set α
f : α → E
g : E → ℝ
C : ℝ
inst✝ : StrictConvexSpace ℝ E
ht : μ t ≠ ⊤
h_le : ∀ᵐ (x : α) ∂μ.restrict t, ‖f x‖ ≤ C
this : Fact (μ t < ⊤)
⊢ f =ᶠ[ae (μ.restrict t)] const α (⨍ (x : α) in t, f x ∂μ) ∨ ‖∫ (x : α) in t, f x ∂μ‖ < (μ t).toReal * C

α : Type u_1
E : Type u_2
F : Type u_3
m0 : MeasurableSpace α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
μ : Measure α
s : Set E
t : Set α
f : α → E
g : E → ℝ
C : ℝ
inst✝ : StrictConvexSpace ℝ E
ht : μ t ≠ ⊤
h_le : ∀ᵐ (x : α) ∂μ.restrict t, ‖f x‖ ≤ C
this : Fact (μ t < ⊤)
⊢ f =ᶠ[ae (μ.restrict t)] const α (⨍ (x : α) in t, f x ∂μ) ∨ ‖∫ (x : α) in t, f x ∂μ‖ < ((μ.restrict t) univ).toReal * C


C : Type u
inst✝² : Category.{v, u} C
I : MultispanIndex C
inst✝¹ : HasCoproduct I.left
inst✝ : HasCoproduct I.right
K₁ K₂ : Cofork I.fstSigmaMap I.sndSigmaMap
f : K₁ ⟶ K₂
⊢ ∀ (j : WalkingMultispan I.fstFrom I.sndFrom),
    (Multicofork.ofSigmaCofork I K₁).ι.app j ≫ f.hom = (Multicofork.ofSigmaCofork I K₂).ι.app j

case left
C : Type u
inst✝² : Category.{v, u} C
I : MultispanIndex C
inst✝¹ : HasCoproduct I.left
inst✝ : HasCoproduct I.right
K₁ K₂ : Cofork I.fstSigmaMap I.sndSigmaMap
f : K₁ ⟶ K₂
a✝ : I.L
⊢ (Multicofork.ofSigmaCofork I K₁).ι.app (WalkingMultispan.left a✝) ≫ f.hom =
    (Multicofork.ofSigmaCofork I K₂).ι.app (WalkingMultispan.left a✝)

case right
C : Type u
inst✝² : Category.{v, u} C
I : MultispanIndex C
inst✝¹ : HasCoproduct I.left
inst✝ : HasCoproduct I.right
K₁ K₂ : Cofork I.fstSigmaMap I.sndSigmaMap
f : K₁ ⟶ K₂
a✝ : I.R
⊢ (Multicofork.ofSigmaCofork I K₁).ι.app (WalkingMultispan.right a✝) ≫ f.hom =
    (Multicofork.ofSigmaCofork I K₂).ι.app (WalkingMultispan.right a✝)

{ simp [-Multicofork.ofSigmaCofork_pt] }


α : Type u_1
β : Type u_2
δ : Type u_3
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
s : Set α
a : α
inst✝ : MeasurableSpace.SeparatesPoints α
x y : α
x_ne_y : x ≠ y
⊢ dirac x ≠ dirac y

case intro.intro.intro
α : Type u_1
β : Type u_2
δ : Type u_3
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
s : Set α
a : α
inst✝ : MeasurableSpace.SeparatesPoints α
x y : α
x_ne_y : x ≠ y
A : Set α
A_mble : MeasurableSet A
x_in_A : x ∈ A
y_notin_A : y ∉ A
⊢ dirac x ≠ dirac y

obtain ⟨A, A_mble, x_in_A, y_notin_A⟩ := exists_measurableSet_of_ne x_ne_y

exact dirac_ne_dirac_iff_exists_measurableSet.mpr ⟨A, A_mble, x_in_A, y_notin_A⟩


α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
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
s : Set M
a : α
⊢ span R (single a '' s) = map (lsingle a) (span R s)

α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
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
s : Set M
a : α
⊢ span R (single a '' s) = span R (⇑(lsingle a) '' s)


R : Type u_1
M M₁ M₂ M₃ : Type u
M' : Type v
inst✝¹¹ : Ring R
inst✝¹⁰ : AddCommGroup M
inst✝⁹ : AddCommGroup M₁
inst✝⁸ : AddCommGroup M₂
inst✝⁷ : AddCommGroup M₃
inst✝⁶ : AddCommGroup M'
inst✝⁵ : Module R M
inst✝⁴ : Module R M₁
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
inst✝ : HasRankNullity.{u, u_1} R
f : M →ₗ[R] M₁
⊢ Module.rank R ↥(LinearMap.range f) + Module.rank R ↥(LinearMap.ker f) = Module.rank R M

R : Type u_1
M M₁ M₂ M₃ : Type u
M' : Type v
inst✝¹¹ : Ring R
inst✝¹⁰ : AddCommGroup M
inst✝⁹ : AddCommGroup M₁
inst✝⁸ : AddCommGroup M₂
inst✝⁷ : AddCommGroup M₃
inst✝⁶ : AddCommGroup M'
inst✝⁵ : Module R M
inst✝⁴ : Module R M₁
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
inst✝ : HasRankNullity.{u, u_1} R
f : M →ₗ[R] M₁
this : (p : Submodule R M) → DecidableEq (M ⧸ p)
⊢ Module.rank R ↥(LinearMap.range f) + Module.rank R ↥(LinearMap.ker f) = Module.rank R M

haveI := fun p : Submodule R M => Classical.decEq (M ⧸ p)

rw [← f.quotKerEquivRange.rank_eq, rank_quotient_add_rank]


G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s✝ t : Set G
ht : IsOpen t
s : Set G
⊢ closure s * t = s * t

rw [← inv_inv (closure s * t), mul_inv_rev, inv_closure, ht.inv.mul_closure, mul_inv_rev, inv_inv,
    inv_inv]


F : Type u
E : Type v
inst✝⁴ : Field F
inst✝³ : Field E
inst✝² : Algebra F E
K : Type w
inst✝¹ : Field K
inst✝ : Algebra F K
⊢ finSepDegree F F = 1

F : Type u
E : Type v
inst✝⁴ : Field F
inst✝³ : Field E
inst✝² : Algebra F E
K : Type w
inst✝¹ : Field K
inst✝ : Algebra F K
this : Cardinal.mk (Emb F F) = 1
⊢ finSepDegree F F = 1

have : Cardinal.mk (Emb F F) = 1 := le_antisymm
    (Cardinal.le_one_iff_subsingleton.2 AlgHom.subsingleton)
    (Cardinal.one_le_iff_ne_zero.2 <| Cardinal.mk_ne_zero _)

rw [finSepDegree, Nat.card, this, Cardinal.one_toNat]


Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t✝ t : Set Ω
hA : MeasurableSet t
⊢ μ[|s] t = (μ s)⁻¹ * μ (s ∩ t)

rw [cond, Measure.smul_apply, Measure.restrict_apply hA, Set.inter_comm, smul_eq_mul]


α : Type u_1
β : Type u_2
inst✝³ : Monoid α
inst✝² : Monoid β
inst✝¹ : DecidableRel fun x x_1 => x ∣ x_1
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a : α
ha : Finite a 1
⊢ (multiplicity a 1).get ha = 0

α : Type u_1
β : Type u_2
inst✝³ : Monoid α
inst✝² : Monoid β
inst✝¹ : DecidableRel fun x x_1 => x ∣ x_1
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a : α
ha : Finite a 1
⊢ 1 ∣ 1 ∧ ¬a ^ (0 + 1) ∣ 1

rw [PartENat.get_eq_iff_eq_coe, eq_coe_iff, _root_.pow_zero]


J : Type u₁
inst✝³ : Category.{v₁, u₁} J
K : Type u₂
inst✝² : Category.{v₂, u₂} K
C : Type u₃
inst✝¹ : Category.{v₃, u₃} C
D : Type u₄
inst✝ : Category.{v₄, u₄} D
F : J ⥤ C
G : C ⥤ D
A : Cone F
⊢ ∀ ⦃X Y : J⦄ (f : X ⟶ Y),
    ((const J).obj (G.obj A.pt)).map f ≫ (fun j => G.map (A.π.app j)) Y = (fun j => G.map (A.π.app j)) X ≫ (F ⋙ G).map f

J : Type u₁
inst✝³ : Category.{v₁, u₁} J
K : Type u₂
inst✝² : Category.{v₂, u₂} K
C : Type u₃
inst✝¹ : Category.{v₃, u₃} C
D : Type u₄
inst✝ : Category.{v₄, u₄} D
F : J ⥤ C
G : C ⥤ D
A : Cone F
X✝ Y✝ : J
f✝ : X✝ ⟶ Y✝
⊢ ((const J).obj (G.obj A.pt)).map f✝ ≫ (fun j => G.map (A.π.app j)) Y✝ =
    (fun j => G.map (A.π.app j)) X✝ ≫ (F ⋙ G).map f✝

J : Type u₁
inst✝³ : Category.{v₁, u₁} J
K : Type u₂
inst✝² : Category.{v₂, u₂} K
C : Type u₃
inst✝¹ : Category.{v₃, u₃} C
D : Type u₄
inst✝ : Category.{v₄, u₄} D
F : J ⥤ C
G : C ⥤ D
A : Cone F
X✝ Y✝ : J
f✝ : X✝ ⟶ Y✝
⊢ ((const J).obj (G.obj A.pt)).map f✝ ≫ (fun j => G.map (A.π.app j)) Y✝ = G.map (A.π.app X✝ ≫ F.map f✝)

J : Type u₁
inst✝³ : Category.{v₁, u₁} J
K : Type u₂
inst✝² : Category.{v₂, u₂} K
C : Type u₃
inst✝¹ : Category.{v₃, u₃} C
D : Type u₄
inst✝ : Category.{v₄, u₄} D
F : J ⥤ C
G : C ⥤ D
X✝ Y✝ : Cone F
f : X✝ ⟶ Y✝
j : J
⊢ G.map f.hom ≫
      ((fun A => { pt := G.obj A.pt, π := { app := fun j => G.map (A.π.app j), naturality := ⋯ } }) Y✝).π.app j =
    ((fun A => { pt := G.obj A.pt, π := { app := fun j => G.map (A.π.app j), naturality := ⋯ } }) X✝).π.app j


R : Type u_1
inst✝³ : Semiring R
p q : R[X]
S : Type u_2
inst✝² : AddCommMonoid S
inst✝¹ : Pow S ℕ
inst✝ : Module R S
x : S
⊢ (p + q).smeval x = p.smeval x + q.smeval x

R : Type u_1
inst✝³ : Semiring R
p q : R[X]
S : Type u_2
inst✝² : AddCommMonoid S
inst✝¹ : Pow S ℕ
inst✝ : Module R S
x : S
⊢ (p + q).sum (smul_pow x) = p.sum (smul_pow x) + q.sum (smul_pow x)

case refine_1
R : Type u_1
inst✝³ : Semiring R
p q : R[X]
S : Type u_2
inst✝² : AddCommMonoid S
inst✝¹ : Pow S ℕ
inst✝ : Module R S
x : S
x✝ : ℕ
⊢ smul_pow x x✝ 0 = 0

case refine_2
R : Type u_1
inst✝³ : Semiring R
p q : R[X]
S : Type u_2
inst✝² : AddCommMonoid S
inst✝¹ : Pow S ℕ
inst✝ : Module R S
x : S
x✝² : ℕ
x✝¹ x✝ : R
⊢ smul_pow x x✝² (x✝¹ + x✝) = smul_pow x x✝² x✝¹ + smul_pow x x✝² x✝

refine sum_add_index p q (smul_pow x) (fun _ ↦ ?_) (fun _ _ _ ↦ ?_)


R : Type u_1
L : Type u_2
M : Type u_3
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
Φ : LinearMap.BilinForm R M
hΦ_nondeg : Φ.Nondegenerate
inst✝ : LieModule R L M
⊢ LinearMap.BilinForm.lieInvariant L Φ ↔ Φ ∈ LieModule.maxTrivSubmodule R L (LinearMap.BilinForm R M)

case refine_1
R : Type u_1
L : Type u_2
M : Type u_3
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
Φ : LinearMap.BilinForm R M
hΦ_nondeg : Φ.Nondegenerate
inst✝ : LieModule R L M
h : LinearMap.BilinForm.lieInvariant L Φ
x : L
⊢ ⁅x, Φ⁆ = 0

case refine_2
R : Type u_1
L : Type u_2
M : Type u_3
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
Φ : LinearMap.BilinForm R M
hΦ_nondeg : Φ.Nondegenerate
inst✝ : LieModule R L M
h : Φ ∈ LieModule.maxTrivSubmodule R L (LinearMap.BilinForm R M)
x : L
y z : M
⊢ (Φ ⁅x, y⁆) z = -(Φ y) ⁅x, z⁆


α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
f✝ g : Filter α
s✝ t✝ : Set α
f : β → Filter α
s : Set β
h : DirectedOn (f ⁻¹'o fun x x_1 => x ≥ x_1) s
ne : s.Nonempty
t : Set α
⊢ t ∈ (⨅ i ∈ s, f i).sets ↔ t ∈ ⋃ i ∈ s, (f i).sets


R : Type u
inst✝¹ : CommRing R
E : EllipticCurve R
A : Type v
inst✝ : CommRing A
φ : R →+* A
⊢ ↑((Units.map ↑φ) E.Δ') = (E.map φ).Δ

R : Type u
inst✝¹ : CommRing R
E : EllipticCurve R
A : Type v
inst✝ : CommRing A
φ : R →+* A
⊢ ↑φ E.Δ = φ E.Δ

simp only [Units.coe_map, coe_Δ', E.map_Δ]


u : ℕ → ℕ
f : ℕ → ℝ≥0∞
C : ℕ
hf : ∀ ⦃m n : ℕ⦄, 1 < m → m ≤ n → f n ≤ f m
h_pos : ∀ (n : ℕ), 0 < u n
h_nonneg : ∀ (n : ℕ), 0 ≤ f n
hu : Monotone u
h_succ_diff : SuccDiffBounded C u
⊢ ∑' (k : ℕ), (↑(u (k + 1)) - ↑(u k)) * f (u k) ≤ (↑(u 1) - ↑(u 0)) * f (u 0) + ↑C * ∑' (k : ℕ), f k

u : ℕ → ℕ
f : ℕ → ℝ≥0∞
C : ℕ
hf : ∀ ⦃m n : ℕ⦄, 1 < m → m ≤ n → f n ≤ f m
h_pos : ∀ (n : ℕ), 0 < u n
h_nonneg : ∀ (n : ℕ), 0 ≤ f n
hu : Monotone u
h_succ_diff : SuccDiffBounded C u
⊢ ⨆ i, ∑ a ∈ range i.succ, (↑(u (a + 1)) - ↑(u a)) * f (u a) ≤ (↑(u 1) - ↑(u 0)) * f (u 0) + ↑C * ∑' (k : ℕ), f k

rw [ENNReal.tsum_eq_iSup_nat' (tendsto_atTop_mono Nat.le_succ tendsto_id)]

case refine_1
u : ℕ → ℕ
f : ℕ → ℝ≥0∞
C : ℕ
hf : ∀ ⦃m n : ℕ⦄, 1 < m → m ≤ n → f n ≤ f m
h_pos : ∀ (n : ℕ), 0 < u n
h_nonneg : ∀ (n : ℕ), 0 ≤ f n
hu : Monotone u
h_succ_diff : SuccDiffBounded C u
n : ℕ
⊢ ∑ a ∈ range n.succ, (↑(u (a + 1)) - ↑(u a)) * f (u a) ≤
    (↑(u 1) - ↑(u 0)) * f (u 0) + ↑C * ∑ x ∈ Ico (u 0 + 1) (u n + 1), f x

case refine_2
u : ℕ → ℕ
f : ℕ → ℝ≥0∞
C : ℕ
hf : ∀ ⦃m n : ℕ⦄, 1 < m → m ≤ n → f n ≤ f m
h_pos : ∀ (n : ℕ), 0 < u n
h_nonneg : ∀ (n : ℕ), 0 ≤ f n
hu : Monotone u
h_succ_diff : SuccDiffBounded C u
n : ℕ
⊢ 0 ≤ ↑C

refine
    iSup_le fun n =>
      le_trans ?_
        (add_le_add_left
          (mul_le_mul_of_nonneg_left (ENNReal.sum_le_tsum <| Finset.Ico (u 0 + 1) (u n + 1)) ?_) _)

simpa using Finset.sum_schlomilch_le hf h_pos h_nonneg hu h_succ_diff n


ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹¹ : EMetricSpace X
inst✝¹⁰ : EMetricSpace Y
inst✝⁹ : MeasurableSpace X
inst✝⁸ : BorelSpace X
inst✝⁷ : MeasurableSpace Y
inst✝⁶ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : MeasurableSpace P
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor E P
inst✝ : BorelSpace P
x y : P
s : Set ℝ
⊢ μH[1] (⇑(IsometryEquiv.vaddConst x) '' ((fun x_1 => x_1 • (y -ᵥ x)) '' s)) = nndist x y • μH[1] s

ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹¹ : EMetricSpace X
inst✝¹⁰ : EMetricSpace Y
inst✝⁹ : MeasurableSpace X
inst✝⁸ : BorelSpace X
inst✝⁷ : MeasurableSpace Y
inst✝⁶ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : MeasurableSpace P
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor E P
inst✝ : BorelSpace P
x y : P
s : Set ℝ
this✝¹ : MeasurableSpace E := borel E
this✝ : BorelSpace E
⊢ μH[1] (⇑(IsometryEquiv.vaddConst x) '' ((fun x_1 => x_1 • (y -ᵥ x)) '' s)) = nndist x y • μH[1] s

rw [IsometryEquiv.hausdorffMeasure_image, hausdorffMeasure_smul_right_image,
    nndist_eq_nnnorm_vsub' E]


α : Type u_1
β : Type u_2
a a₁ a₂ : α
b b₁ b₂ : β
inst✝⁷ : Monoid α
inst✝⁶ : Zero α
inst✝⁵ : Zero β
inst✝⁴ : MulAction α β
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : SMulPosStrictMono α β
inst✝ : SMulPosReflectLT α β
hb : 0 < b
⊢ a • b < b ↔ a • b < 1 • b


case zero
n : ℕ
⊢ a 1 ^ 0 = a ↑0

case succ
n k : ℕ
IH : a 1 ^ k = a ↑k
⊢ a 1 ^ (k + 1) = a ↑(k + 1)


m n a✝ b✝ c d a b : ℤ
hb : 0 < b
⊢ a % b < b

m n a✝ b✝ c d a b : ℤ
hb : 0 < b
this : a % b < |b|
⊢ a % b < b

have : a % b < |b| := emod_lt _ (ne_of_gt hb)

m n a✝ b✝ c d a b : ℤ
hb : 0 < b
⊢ a % b ≡ a [ZMOD b]


F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DivisionMonoid α
s t : Finset α
⊢ IsUnit s ↔ ∃ a, s = {a} ∧ IsUnit a

case mp
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DivisionMonoid α
s t : Finset α
⊢ IsUnit s → ∃ a, s = {a} ∧ IsUnit a

case mpr
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DivisionMonoid α
s t : Finset α
⊢ (∃ a, s = {a} ∧ IsUnit a) → IsUnit s


C : Type u
inst✝ : Category.{v, u} C
X : SimplicialObject C
⊢ Category.{?u.48352, max u v} (Augmented C)

C : Type u
inst✝ : Category.{v, u} C
X : SimplicialObject C
⊢ Category.{?u.48352, max u v} (Comma (𝟭 (SimplicialObject C)) (const C))


M : Type u_1
inst✝³ : Monoid M
inst✝² : MeasurableSpace M
inst✝¹ : MeasurableMul₂ M
μ : Measure M
inst✝ : SFinite μ
⊢ μ ∗ dirac 1 = μ

M : Type u_1
inst✝³ : Monoid M
inst✝² : MeasurableSpace M
inst✝¹ : MeasurableMul₂ M
μ : Measure M
inst✝ : SFinite μ
⊢ map (fun x => x.1 * x.2) (μ.prod (dirac 1)) = μ

M : Type u_1
inst✝³ : Monoid M
inst✝² : MeasurableSpace M
inst✝¹ : MeasurableMul₂ M
μ : Measure M
inst✝ : SFinite μ
⊢ map ((fun x => x.1 * x.2) ∘ fun x => (x, 1)) μ = μ

M : Type u_1
inst✝³ : Monoid M
inst✝² : MeasurableSpace M
inst✝¹ : MeasurableMul₂ M
μ : Measure M
inst✝ : SFinite μ
⊢ Measurable fun x => (x, 1)

rw [MeasureTheory.Measure.prod_dirac, map_map (by fun_prop)]


F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : α → β → β
op : α → α → α
assoc : Std.Associative op
s : Multiset α
a : α
h : {x | x ∈ a ::ₘ s}.Pairwise fun x y => op x y = op y x
h' : {x | x ∈ s}.Pairwise fun x y => op x y = op y x
x : α
⊢ noncommFold op (a ::ₘ s) h x = op a (noncommFold op s h' x)

case h
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : α → β → β
op : α → α → α
assoc : Std.Associative op
a x : α
a✝ : List α
h : {x | x ∈ a ::ₘ ⟦a✝⟧}.Pairwise fun x y => op x y = op y x
h' : {x | x ∈ ⟦a✝⟧}.Pairwise fun x y => op x y = op y x
⊢ noncommFold op (a ::ₘ ⟦a✝⟧) h x = op a (noncommFold op ⟦a✝⟧ h' x)


E : Type
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : E → ℂ
z : ℂ
x : E
s : Set E
m : z ∈ slitPlane
⊢ AnalyticAt ℂ log z

E : Type
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : E → ℂ
z : ℂ
x : E
s : Set E
m : z ∈ slitPlane
⊢ ∀ᶠ (z : ℂ) in 𝓝 z, DifferentiableAt ℂ log z

case h
E : Type
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : E → ℂ
z : ℂ
x : E
s : Set E
m : z ∈ slitPlane
⊢ ∀ a ∈ slitPlane, DifferentiableAt ℂ log a

case h
E : Type
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : E → ℂ
z✝ : ℂ
x : E
s : Set E
m✝ : z✝ ∈ slitPlane
z : ℂ
m : z ∈ slitPlane
⊢ DifferentiableAt ℂ log z


V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
v w : V
⊢ G.IsBridge s(v, w) ↔ G.Adj v w ∧ ∀ ⦃u : V⦄ (p : G.Walk u u), p.IsCycle → s(v, w) ∉ p.edges

V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
v w : V
⊢ G.Adj v w → (¬(G \ fromEdgeSet {s(v, w)}).Reachable v w ↔ ∀ ⦃u : V⦄ (p : G.Walk u u), p.IsCycle → s(v, w) ∉ p.edges)

V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
v w : V
h : G.Adj v w
⊢ ¬(G \ fromEdgeSet {s(v, w)}).Reachable v w ↔ ∀ ⦃u : V⦄ (p : G.Walk u u), p.IsCycle → s(v, w) ∉ p.edges

V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
v w : V
h : G.Adj v w
⊢ ¬¬(G \ fromEdgeSet {s(v, w)}).Reachable v w ↔ ¬∀ ⦃u : V⦄ (p : G.Walk u u), p.IsCycle → s(v, w) ∉ p.edges

V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
v w : V
h : G.Adj v w
⊢ (G \ fromEdgeSet {s(v, w)}).Reachable v w ↔ ∃ u p, p.IsCycle ∧ s(v, w) ∈ p.edges

V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
v w : V
h : G.Adj v w
⊢ (G \ fromEdgeSet {s(v, w)}).Reachable v w ↔ G.Adj v w ∧ (G \ fromEdgeSet {s(v, w)}).Reachable v w


V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
s : Sphere P
p₁ p₂ p₃ : P
hp₁ : p₁ ∈ s
hp₂ : p₂ ∈ s
hp₃ : p₃ ∈ s
hp₁p₂ : p₁ ≠ p₂
hp₁p₃ : p₁ ≠ p₃
hp₂p₃ : p₂ ≠ p₃
⊢ ((∡ p₁ p₂ p₃).tan⁻¹ / 2) • (o.rotation ↑(π / 2)) (p₃ -ᵥ p₁) +ᵥ midpoint ℝ p₁ p₃ = s.center

case h.e'_2.h.e'_5.h.e'_5.h.e'_5
V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
s : Sphere P
p₁ p₂ p₃ : P
hp₁ : p₁ ∈ s
hp₂ : p₂ ∈ s
hp₃ : p₃ ∈ s
hp₁p₂ : p₁ ≠ p₂
hp₁p₃ : p₁ ≠ p₃
hp₂p₃ : p₂ ≠ p₃
⊢ (∡ p₁ p₂ p₃).tan⁻¹ = (∡ p₃ p₁ s.center).tan

convert tan_div_two_smul_rotation_pi_div_two_vadd_midpoint_eq_center hp₁ hp₃ hp₁p₃

case h.e'_2.h.e'_5.h.e'_5.h.e'_5.convert_3
V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
s : Sphere P
p₁ p₂ p₃ : P
hp₁ : p₁ ∈ s
hp₂ : p₂ ∈ s
hp₃ : p₃ ∈ s
hp₁p₂ : p₁ ≠ p₂
hp₁p₃ : p₁ ≠ p₃
hp₂p₃ : p₂ ≠ p₃
⊢ 2 • ∡ p₁ p₂ p₃ + 2 • ∡ p₃ p₁ s.center = ↑π

rw [add_comm,
    two_zsmul_oangle_center_add_two_zsmul_oangle_eq_pi hp₁ hp₂ hp₃ hp₁p₂.symm hp₂p₃ hp₁p₃]