/-- The orthogonal projection onto a complete subspace. -/
def orthogonalProjection : E →L[𝕜] K :=
  LinearMap.mkContinuous
    { toFun := fun v => ⟨orthogonalProjectionFn K v, orthogonalProjectionFn_mem v⟩
      map_add' := fun x y => by
        have hm : orthogonalProjectionFn K x + orthogonalProjectionFn K y ∈ K :=
          Submodule.add_mem K (orthogonalProjectionFn_mem x) (orthogonalProjectionFn_mem y)
        have ho :
          ∀ w ∈ K, ⟪x + y - (orthogonalProjectionFn K x + orthogonalProjectionFn K y), w⟫ = 0 := by
          intro w hw
          rw [add_sub_add_comm, inner_add_left, orthogonalProjectionFn_inner_eq_zero _ w hw,
            orthogonalProjectionFn_inner_eq_zero _ w hw, add_zero]
        ext
        simp [eq_orthogonalProjectionFn_of_mem_of_inner_eq_zero hm ho]
      map_smul' := fun c x => by
        have hm : c • orthogonalProjectionFn K x ∈ K :=
          Submodule.smul_mem K _ (orthogonalProjectionFn_mem x)
        have ho : ∀ w ∈ K, ⟪c • x - c • orthogonalProjectionFn K x, w⟫ = 0 := by
          intro w hw
          rw [← smul_sub, inner_smul_left, orthogonalProjectionFn_inner_eq_zero _ w hw,
            mul_zero]
        ext
        simp [eq_orthogonalProjectionFn_of_mem_of_inner_eq_zero hm ho] }
    1 fun x => by
    

Proof state:
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : IsROrC 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K
x : E
⊢ ‖{
          toAddHom :=
            { toFun := fun v => { val := orthogonalProjectionFn K v, property := (_ : orthogonalProjectionFn K v ∈ K) },
              map_add' :=
                (_ :
                  ∀ (x y : E),
                    (fun v => { val := orthogonalProjectionFn K v, property := (_ : orthogonalProjectionFn K v ∈ K) })
                        (x + y) =
                      (fun v => { val := orthogonalProjectionFn K v, property := (_ : orthogonalProjectionFn K v ∈ K) })
                          x +
                        (fun v =>
                            { val := orthogonalProjectionFn K v, property := (_ : orthogonalProjectionFn K v ∈ K) })
                          y) },
          map_smul' :=
            (_ :
              ∀ (c : 𝕜) (x : E),
                AddHom.toFun
                    {
                      toFun := fun v =>
                        { val := orthogonalProjectionFn K v, property := (_ : orthogonalProjectionFn K v ∈ K) },
                      map_add' :=
                        (_ :
                          ∀ (x y : E),
                            (fun v =>
                                  { val := orthogonalProjectionFn K v,
                                    property := (_ : orthogonalProjectionFn K v ∈ K) })
                                (x + y) =
                              (fun v =>
                                    { val := orthogonalProjectionFn K v,
                                      property := (_ : orthogonalProjectionFn K v ∈ K) })
                                  x +
                                (fun v =>
                                    { val := orthogonalProjectionFn K v,
                                      property := (_ : orthogonalProjectionFn K v ∈ K) })
                                  y) }
                    (c • x) =
                  (RingHom.id 𝕜) c •
                    AddHom.toFun
                      {
                        toFun := fun v =>
                          { val := orthogonalProjectionFn K v, property := (_ : orthogonalProjectionFn K v ∈ K) },
                        map_add' :=
                          (_ :
                            ∀ (x y : E),
                              (fun v =>
                                    { val := orthogonalProjectionFn K v,
                                      property := (_ : orthogonalProjectionFn K v ∈ K) })
                                  (x + y) =
                                (fun v =>
                                      { val := orthogonalProjectionFn K v,
                                        property := (_ : orthogonalProjectionFn K v ∈ K) })
                                    x +
                                  (fun v =>
                                      { val := orthogonalProjectionFn K v,
                                        property := (_ : orthogonalProjectionFn K v ∈ K) })
                                    y) }
                      x) }
        x‖ ≤
    1 * ‖x‖

Next tactic:
simp only [one_mul, LinearMap.coe_mk]