@@ -526,11 +526,7 @@ instance : OrderClosedTopology A where
526526open Unitization in
527527lemma convexOn_cfcₙ_of_convexOn_cfc {f : ℝ → ℝ} {s : Set A}
528528 (hf : ConvexOn ℝ (inr (R := ℂ) '' s) (cfc f)) : ConvexOn ℝ s (cfcₙ f) := by
529- let inrl : A →ₗ[ℝ] Unitization ℂ A :=
530- { toFun := inr
531- map_add' := by simp
532- map_smul' := by simp }
533- have inrl_injective : Function.Injective inrl := Unitization.inr_injective
529+ let inrl : A →ₗ[ℝ] A⁺¹ := inrHom ℝ ℂ A
534530 by_cases hf₀ : f 0 = 0
535531 case neg =>
536532 have : (cfcₙ f : A → A) = fun _ => 0 := by
@@ -539,29 +535,20 @@ lemma convexOn_cfcₙ_of_convexOn_cfc {f : ℝ → ℝ} {s : Set A}
539535 rw [this]
540536 refine convexOn_const _ ?_
541537 have : Convex ℝ (inrl ⁻¹' (inrl '' s)) := Convex.linear_preimage hf.1 _
542- rwa [Set.preimage_image_eq _ inrl_injective] at this
543- refine convexOn_of_convexOn_inr_comp ?_ ?_
544- · grind only [!IsSelfAdjoint.cfcₙ] -- add grind tag
545- · have h₁ : inr (R := ℂ) ∘ (cfcₙ f) = fun x : A => ((cfcₙ f x : A) : Unitization ℂ A) := by rfl
546- rw [h₁]
547- have h₂ : (fun x : A => ((cfcₙ f x : A) : Unitization ℂ A))
548- = fun x : A => cfc f (x : Unitization ℂ A) := by
549- ext1
550- rw [real_cfcₙ_eq_cfc_inr ..]
551- rfl
552- rw [h₂]
553- have h₂ : ConvexOn ℝ (inrl ⁻¹' (inrl '' s)) ((cfc f) ∘ inrl) :=
554- ConvexOn.comp_linearMap (g := inrl) hf
555- rwa [Set.preimage_image_eq _ inrl_injective] at h₂
538+ rwa [Set.preimage_image_eq _ inrHom_injective] at this
539+ refine convexOn_of_convexOn_inr_comp (fun _ => IsSelfAdjoint.cfcₙ) ?_
540+ have h₁ : inr (R := ℂ) ∘ (cfcₙ f) = fun x : A => ((cfcₙ f x : A) : A⁺¹) := rfl
541+ have h₂ : (fun x : A => ((cfcₙ f x : A) : A⁺¹))
542+ = fun x : A => cfc f (x : A⁺¹) := by ext1; rw [real_cfcₙ_eq_cfc_inr ..]; rfl
543+ rw [h₁, h₂]
544+ have h₃ : ConvexOn ℝ (inrl ⁻¹' (inrl '' s)) ((cfc f) ∘ inrl) :=
545+ ConvexOn.comp_linearMap (g := inrl) hf
546+ rwa [Set.preimage_image_eq _ inrHom_injective] at h₃
556547
557548open Unitization in
558549lemma concaveOn_cfcₙ_of_concaveOn_cfc {f : ℝ → ℝ} {s : Set A}
559550 (hf : ConcaveOn ℝ (inr (R := ℂ) '' s) (cfc f)) : ConcaveOn ℝ s (cfcₙ f) := by
560- let inrl : A →ₗ[ℝ] Unitization ℂ A :=
561- { toFun := inr
562- map_add' := by simp
563- map_smul' := by simp }
564- have inrl_injective : Function.Injective inrl := Unitization.inr_injective
551+ let inrl : A →ₗ[ℝ] A⁺¹ := inrHom ℝ ℂ A
565552 by_cases hf₀ : f 0 = 0
566553 case neg =>
567554 have : (cfcₙ f : A → A) = fun _ => 0 := by
@@ -570,21 +557,15 @@ lemma concaveOn_cfcₙ_of_concaveOn_cfc {f : ℝ → ℝ} {s : Set A}
570557 rw [this]
571558 refine concaveOn_const _ ?_
572559 have : Convex ℝ (inrl ⁻¹' (inrl '' s)) := Convex.linear_preimage hf.1 _
573- rwa [Set.preimage_image_eq _ inrl_injective] at this
574- refine concaveOn_of_concaveOn_inr_comp ?_ ?_
575- · grind only [!IsSelfAdjoint.cfcₙ] -- add grind tag
576- · have h₁ : inr (R := ℂ) ∘ (cfcₙ f) = fun x : A => ((cfcₙ f x : A) : Unitization ℂ A) := by rfl
577- rw [h₁]
578- have h₂ : (fun x : A => ((cfcₙ f x : A) : Unitization ℂ A))
579- = fun x : A => cfc f (x : Unitization ℂ A) := by
580- ext1
581- rw [real_cfcₙ_eq_cfc_inr ..]
582- rfl
583- rw [h₂]
584- have h₂ : ConcaveOn ℝ (inrl ⁻¹' (inrl '' s)) ((cfc f) ∘ inrl) :=
585- ConcaveOn.comp_linearMap (g := inrl) hf
586- rwa [Set.preimage_image_eq _ inrl_injective] at h₂
587-
560+ rwa [Set.preimage_image_eq _ inrHom_injective] at this
561+ refine concaveOn_of_concaveOn_inr_comp (fun _ => IsSelfAdjoint.cfcₙ) ?_
562+ have h₁ : inr (R := ℂ) ∘ (cfcₙ f) = fun x : A => ((cfcₙ f x : A) : A⁺¹) := rfl
563+ have h₂ : (fun x : A => ((cfcₙ f x : A) : A⁺¹))
564+ = fun x : A => cfc f (x : A⁺¹) := by ext1; rw [real_cfcₙ_eq_cfc_inr ..]; rfl
565+ rw [h₁, h₂]
566+ have h₃ : ConcaveOn ℝ (inrl ⁻¹' (inrl '' s)) ((cfc f) ∘ inrl) :=
567+ ConcaveOn.comp_linearMap (g := inrl) hf
568+ rwa [Set.preimage_image_eq _ inrHom_injective] at h₃
588569
589570section Icc
590571
0 commit comments