Article BHSP_5, MML version 4.99.1005

:: BHSP_5:th 1
theorem
for b1 being set
for b2, b3 being FinSequence of b1
      st b2 is one-to-one & b3 is one-to-one & proj2 b2 = proj2 b3
   holds dom b2 = dom b3 &
    (ex b4 being Function-like quasi_total bijective Relation of dom b2,dom b2 st
       b3 = b4 * b2 & proj1 b4 = dom b2 & proj2 b4 = dom b2);

:: BHSP_5:funcnot 1 => BHSP_5:func 1
definition
  let a1 be non empty set;
  let a2 be Function-like quasi_total Relation of [:a1,a1:],a1;
  let a3 be finite Element of bool a1;
  assume a2 is commutative(a1) & a2 is associative(a1) & a2 is having_a_unity(a1);
  func A2 ++ A3 -> Element of a1 means
    ex b1 being FinSequence of a1 st
       b1 is one-to-one & proj2 b1 = a3 & it = a2 "**" b1;
end;

:: BHSP_5:def 1
theorem
for b1 being non empty set
for b2 being Function-like quasi_total Relation of [:b1,b1:],b1
   st b2 is commutative(b1) & b2 is associative(b1) & b2 is having_a_unity(b1)
for b3 being finite Element of bool b1
for b4 being Element of b1 holds
      b4 = b2 ++ b3
   iff
      ex b5 being FinSequence of b1 st
         b5 is one-to-one & proj2 b5 = b3 & b4 = b2 "**" b5;

:: BHSP_5:funcnot 2 => BHSP_5:func 2
definition
  let a1 be non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR;
  let a2 be finite Element of bool the carrier of a1;
  func setop_SUM(A2,A1) -> set equals
    (the addF of a1) ++ a2
    if a2 <> {}
    otherwise 0. a1;
end;

:: BHSP_5:def 2
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
for b2 being finite Element of bool the carrier of b1 holds
   (b2 = {} or setop_SUM(b2,b1) = (the addF of b1) ++ b2) &
    (b2 = {} implies setop_SUM(b2,b1) = 0. b1);

:: BHSP_5:funcnot 3 => BHSP_5:func 3
definition
  let a1 be non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR;
  let a2 be Element of the carrier of a1;
  let a3 be Relation-like Function-like FinSequence-like set;
  let a4 be natural set;
  func PO(A4,A3,A2) -> set equals
    (the scalar of a1) . [a2,a3 . a4];
end;

:: BHSP_5:def 3
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
for b2 being Element of the carrier of b1
for b3 being Relation-like Function-like FinSequence-like set
for b4 being natural set holds
   PO(b4,b3,b2) = (the scalar of b1) . [b2,b3 . b4];

:: BHSP_5:funcnot 4 => BHSP_5:func 4
definition
  let a1, a2 be non empty set;
  let a3 be Function-like quasi_total Relation of a2,a1;
  let a4 be FinSequence of a2;
  func Func_Seq(A3,A4) -> FinSequence of a1 equals
    a4 * a3;
end;

:: BHSP_5:def 4
theorem
for b1, b2 being non empty set
for b3 being Function-like quasi_total Relation of b2,b1
for b4 being FinSequence of b2 holds
   Func_Seq(b3,b4) = b4 * b3;

:: BHSP_5:funcnot 5 => BHSP_5:func 5
definition
  let a1, a2 be non empty set;
  let a3 be Function-like quasi_total Relation of [:a1,a1:],a1;
  let a4 be finite Element of bool a2;
  let a5 be Function-like quasi_total Relation of a2,a1;
  assume a3 is commutative(a1) & a3 is associative(a1) & a3 is having_a_unity(a1) & a4 c= proj1 a5;
  func setopfunc(A4,A2,A1,A5,A3) -> Element of a1 means
    ex b1 being FinSequence of a2 st
       b1 is one-to-one & proj2 b1 = a4 & it = a3 "**" Func_Seq(a5,b1);
end;

:: BHSP_5:def 5
theorem
for b1, b2 being non empty set
for b3 being Function-like quasi_total Relation of [:b1,b1:],b1
   st b3 is commutative(b1) & b3 is associative(b1) & b3 is having_a_unity(b1)
for b4 being finite Element of bool b2
for b5 being Function-like quasi_total Relation of b2,b1
   st b4 c= proj1 b5
for b6 being Element of b1 holds
      b6 = setopfunc(b4,b2,b1,b5,b3)
   iff
      ex b7 being FinSequence of b2 st
         b7 is one-to-one & proj2 b7 = b4 & b6 = b3 "**" Func_Seq(b5,b7);

:: BHSP_5:funcnot 6 => BHSP_5:func 6
definition
  let a1 be non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR;
  let a2 be Element of the carrier of a1;
  let a3 be finite Element of bool the carrier of a1;
  func setop_xPre_PROD(A2,A3,A1) -> Element of REAL means
    ex b1 being FinSequence of the carrier of a1 st
       b1 is one-to-one &
        proj2 b1 = a3 &
        (ex b2 being FinSequence of REAL st
           dom b2 = dom b1 &
            (for b3 being Element of NAT
                  st b3 in dom b2
               holds b2 . b3 = PO(b3,b1,a2)) &
            it = addreal "**" b2);
end;

:: BHSP_5:def 6
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
for b2 being Element of the carrier of b1
for b3 being finite Element of bool the carrier of b1
for b4 being Element of REAL holds
      b4 = setop_xPre_PROD(b2,b3,b1)
   iff
      ex b5 being FinSequence of the carrier of b1 st
         b5 is one-to-one &
          proj2 b5 = b3 &
          (ex b6 being FinSequence of REAL st
             dom b6 = dom b5 &
              (for b7 being Element of NAT
                    st b7 in dom b6
                 holds b6 . b7 = PO(b7,b5,b2)) &
              b4 = addreal "**" b6);

:: BHSP_5:funcnot 7 => BHSP_5:func 7
definition
  let a1 be non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR;
  let a2 be Element of the carrier of a1;
  let a3 be finite Element of bool the carrier of a1;
  func setop_xPROD(A2,A3,A1) -> Element of REAL equals
    setop_xPre_PROD(a2,a3,a1)
    if a3 <> {}
    otherwise 0;
end;

:: BHSP_5:def 7
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
for b2 being Element of the carrier of b1
for b3 being finite Element of bool the carrier of b1 holds
   (b3 = {} or setop_xPROD(b2,b3,b1) = setop_xPre_PROD(b2,b3,b1)) &
    (b3 = {} implies setop_xPROD(b2,b3,b1) = 0);

:: BHSP_5:modenot 1 => BHSP_5:mode 1
definition
  let a1 be non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR;
  mode OrthogonalFamily of A1 -> Element of bool the carrier of a1 means
    for b1, b2 being Element of the carrier of a1
          st b1 in it & b2 in it & b1 <> b2
       holds b1 .|. b2 = 0;
end;

:: BHSP_5:dfs 8
definiens
  let a1 be non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR;
  let a2 be Element of bool the carrier of a1;
To prove
     a2 is OrthogonalFamily of a1
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1
          st b1 in a2 & b2 in a2 & b1 <> b2
       holds b1 .|. b2 = 0;

:: BHSP_5:def 8
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
for b2 being Element of bool the carrier of b1 holds
      b2 is OrthogonalFamily of b1
   iff
      for b3, b4 being Element of the carrier of b1
            st b3 in b2 & b4 in b2 & b3 <> b4
         holds b3 .|. b4 = 0;

:: BHSP_5:th 2
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR holds
   {} is OrthogonalFamily of b1;

:: BHSP_5:exreg 1
registration
  let a1 be non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR;
  cluster finite OrthogonalFamily of a1;
end;

:: BHSP_5:modenot 2 => BHSP_5:mode 2
definition
  let a1 be non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR;
  mode OrthonormalFamily of A1 -> Element of bool the carrier of a1 means
    it is OrthogonalFamily of a1 &
     (for b1 being Element of the carrier of a1
           st b1 in it
        holds b1 .|. b1 = 1);
end;

:: BHSP_5:dfs 9
definiens
  let a1 be non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR;
  let a2 be Element of bool the carrier of a1;
To prove
     a2 is OrthonormalFamily of a1
it is sufficient to prove
  thus a2 is OrthogonalFamily of a1 &
     (for b1 being Element of the carrier of a1
           st b1 in a2
        holds b1 .|. b1 = 1);

:: BHSP_5:def 9
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
for b2 being Element of bool the carrier of b1 holds
      b2 is OrthonormalFamily of b1
   iff
      b2 is OrthogonalFamily of b1 &
       (for b3 being Element of the carrier of b1
             st b3 in b2
          holds b3 .|. b3 = 1);

:: BHSP_5:th 3
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR holds
   {} is OrthonormalFamily of b1;

:: BHSP_5:exreg 2
registration
  let a1 be non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR;
  cluster finite OrthonormalFamily of a1;
end;

:: BHSP_5:th 4
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
for b2 being Element of the carrier of b1 holds
      b2 = 0. b1
   iff
      for b3 being Element of the carrier of b1 holds
         b2 .|. b3 = 0;

:: BHSP_5:th 5
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
for b2, b3 being Element of the carrier of b1 holds
||.b2 + b3.|| ^2 + (||.b2 - b3.|| ^2) = (2 * (||.b2.|| ^2)) + (2 * (||.b3.|| ^2));

:: BHSP_5:th 6
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
for b2, b3 being Element of the carrier of b1
      st b2,b3 are_orthogonal
   holds ||.b2 + b3.|| ^2 = ||.b2.|| ^2 + (||.b3.|| ^2);

:: BHSP_5:th 7
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
for b2 being FinSequence of the carrier of b1
   st 1 <= len b2 &
      (for b3, b4 being Element of NAT
            st b3 in dom b2 & b4 in dom b2 & b3 <> b4
         holds (the scalar of b1) . [b2 . b3,b2 . b4] = 0)
for b3 being FinSequence of REAL
      st dom b2 = dom b3 &
         (for b4 being Element of NAT
               st b4 in dom b3
            holds b3 . b4 = (the scalar of b1) . [b2 . b4,b2 . b4])
   holds ((the addF of b1) "**" b2) .|. ((the addF of b1) "**" b2) = addreal "**" b3;

:: BHSP_5:th 8
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
for b2 being Element of the carrier of b1
for b3 being FinSequence of the carrier of b1
   st 1 <= len b3
for b4 being FinSequence of REAL
      st dom b3 = dom b4 &
         (for b5 being Element of NAT
               st b5 in dom b4
            holds b4 . b5 = (the scalar of b1) . [b2,b3 . b5])
   holds b2 .|. ((the addF of b1) "**" b3) = addreal "**" b4;

:: BHSP_5:th 9
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
for b2 being non empty finite Element of bool the carrier of b1
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
   st b2 c= proj1 b3 &
      (for b4, b5 being Element of the carrier of b1
            st b4 in b2 & b5 in b2 & b4 <> b5
         holds (the scalar of b1) . [b3 . b4,b3 . b5] = 0)
for b4 being Function-like quasi_total Relation of the carrier of b1,REAL
   st b2 c= proj1 b4 &
      (for b5 being Element of the carrier of b1
            st b5 in b2
         holds b4 . b5 = (the scalar of b1) . [b3 . b5,b3 . b5])
for b5 being FinSequence of the carrier of b1
      st b5 is one-to-one & proj2 b5 = b2
   holds (the scalar of b1) . [(the addF of b1) "**" Func_Seq(b3,b5),(the addF of b1) "**" Func_Seq(b3,b5)] = addreal "**" Func_Seq(b4,b5);

:: BHSP_5:th 10
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
for b2 being Element of the carrier of b1
for b3 being non empty finite Element of bool the carrier of b1
for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
   st b3 c= proj1 b4
for b5 being Function-like quasi_total Relation of the carrier of b1,REAL
   st b3 c= proj1 b5 &
      (for b6 being Element of the carrier of b1
            st b6 in b3
         holds b5 . b6 = (the scalar of b1) . [b2,b4 . b6])
for b6 being FinSequence of the carrier of b1
      st b6 is one-to-one & proj2 b6 = b3
   holds (the scalar of b1) . [b2,(the addF of b1) "**" Func_Seq(b4,b6)] = addreal "**" Func_Seq(b5,b6);

:: BHSP_5:th 11
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
   st the addF of b1 is commutative(the carrier of b1) & the addF of b1 is associative(the carrier of b1) & the addF of b1 is having_a_unity(the carrier of b1)
for b2 being Element of the carrier of b1
for b3 being finite OrthonormalFamily of b1
   st b3 is not empty
for b4 being Function-like quasi_total Relation of the carrier of b1,REAL
   st b3 c= proj1 b4 &
      (for b5 being Element of the carrier of b1
            st b5 in b3
         holds b4 . b5 = (b2 .|. b5) ^2)
for b5 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b3 c= proj1 b5 &
         (for b6 being Element of the carrier of b1
               st b6 in b3
            holds b5 . b6 = (b2 .|. b6) * b6)
   holds b2 .|. setopfunc(b3,the carrier of b1,the carrier of b1,b5,the addF of b1) = setopfunc(b3,the carrier of b1,REAL,b4,addreal);

:: BHSP_5:th 12
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
   st the addF of b1 is commutative(the carrier of b1) & the addF of b1 is associative(the carrier of b1) & the addF of b1 is having_a_unity(the carrier of b1)
for b2 being Element of the carrier of b1
for b3 being finite OrthonormalFamily of b1
   st b3 is not empty
for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
   st b3 c= proj1 b4 &
      (for b5 being Element of the carrier of b1
            st b5 in b3
         holds b4 . b5 = (b2 .|. b5) * b5)
for b5 being Function-like quasi_total Relation of the carrier of b1,REAL
      st b3 c= proj1 b5 &
         (for b6 being Element of the carrier of b1
               st b6 in b3
            holds b5 . b6 = (b2 .|. b6) ^2)
   holds (setopfunc(b3,the carrier of b1,the carrier of b1,b4,the addF of b1)) .|. setopfunc(b3,the carrier of b1,the carrier of b1,b4,the addF of b1) = setopfunc(b3,the carrier of b1,REAL,b5,addreal);

:: BHSP_5:th 13
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like RealUnitarySpace-like UNITSTR
   st the addF of b1 is commutative(the carrier of b1) & the addF of b1 is associative(the carrier of b1) & the addF of b1 is having_a_unity(the carrier of b1)
for b2 being Element of the carrier of b1
for b3 being finite OrthonormalFamily of b1
   st b3 is not empty
for b4 being Function-like quasi_total Relation of the carrier of b1,REAL
      st b3 c= proj1 b4 &
         (for b5 being Element of the carrier of b1
               st b5 in b3
            holds b4 . b5 = (b2 .|. b5) ^2)
   holds setopfunc(b3,the carrier of b1,REAL,b4,addreal) <= ||.b2.|| ^2;

:: BHSP_5:th 14
theorem
for b1, b2 being non empty set
for b3 being Function-like quasi_total Relation of [:b1,b1:],b1
   st b3 is commutative(b1) & b3 is associative(b1) & b3 is having_a_unity(b1)
for b4, b5 being finite Element of bool b2
   st b4 misses b5
for b6 being Function-like quasi_total Relation of b2,b1
   st b4 c= proj1 b6 & b5 c= proj1 b6
for b7 being finite Element of bool b2
      st b7 = b4 \/ b5
   holds setopfunc(b7,b2,b1,b6,b3) = b3 .(setopfunc(b4,b2,b1,b6,b3),setopfunc(b5,b2,b1,b6,b3));