Article PRGCOR_2, MML version 4.99.1005

:: PRGCOR_2:th 1
theorem
for b1, b2 being natural set holds
   b1 in b2
iff
   b1 < b2;

:: PRGCOR_2:exreg 1
registration
  let a1 be non empty set;
  cluster Relation-like Function-like non empty T-Sequence-like finite T-Sequence of a1;
end;

:: PRGCOR_2:th 2
theorem
for b1 being non empty set
for b2 being non empty finite T-Sequence of b1 holds
   0 < len b2;

:: PRGCOR_2:funcnot 1 => PRGCOR_2:func 1
definition
  let a1 be set;
  let a2 be FinSequence of a1;
  func FS2XFS A2 -> finite T-Sequence of a1 means
    len it = len a2 &
     (for b1 being natural set
           st b1 < len a2
        holds a2 . (b1 + 1) = it . b1);
end;

:: PRGCOR_2:def 1
theorem
for b1 being set
for b2 being FinSequence of b1
for b3 being finite T-Sequence of b1 holds
      b3 = FS2XFS b2
   iff
      len b3 = len b2 &
       (for b4 being natural set
             st b4 < len b2
          holds b2 . (b4 + 1) = b3 . b4);

:: PRGCOR_2:funcnot 2 => PRGCOR_2:func 2
definition
  let a1 be set;
  let a2 be finite T-Sequence of a1;
  func XFS2FS A2 -> FinSequence of a1 means
    len it = len a2 &
     (for b1 being natural set
           st 1 <= b1 & b1 <= len a2
        holds a2 . (b1 -' 1) = it . b1);
end;

:: PRGCOR_2:def 2
theorem
for b1 being set
for b2 being finite T-Sequence of b1
for b3 being FinSequence of b1 holds
      b3 = XFS2FS b2
   iff
      len b3 = len b2 &
       (for b4 being natural set
             st 1 <= b4 & b4 <= len b2
          holds b2 . (b4 -' 1) = b3 . b4);

:: PRGCOR_2:th 3
theorem
for b1 being natural set
for b2 being set holds
   b1 --> b2 is Relation-like Function-like T-Sequence-like finite set;

:: PRGCOR_2:th 4
theorem
for b1 being set
for b2 being natural set
for b3 being set
      st b3 in b1
   holds b2 --> b3 is finite T-Sequence of b1 &
    (for b4 being Relation-like Function-like T-Sequence-like finite set
          st b4 = b2 --> b3
       holds len b4 = b2);

:: PRGCOR_2:funcnot 3 => PRGCOR_2:func 3
definition
  let a1 be non empty set;
  let a2 be FinSequence of a1;
  let a3 be natural set;
  assume len a2 < a3 & NAT c= a1;
  func FS2XFS*(A2,A3) -> non empty finite T-Sequence of a1 means
    len a2 = it . 0 &
     len it = a3 &
     (for b1 being natural set
           st 1 <= b1 & b1 <= len a2
        holds it . b1 = a2 . b1) &
     (for b1 being natural set
           st len a2 < b1 & b1 < a3
        holds it . b1 = 0);
end;

:: PRGCOR_2:def 3
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3 being natural set
   st len b2 < b3 & NAT c= b1
for b4 being non empty finite T-Sequence of b1 holds
      b4 = FS2XFS*(b2,b3)
   iff
      len b2 = b4 . 0 &
       len b4 = b3 &
       (for b5 being natural set
             st 1 <= b5 & b5 <= len b2
          holds b4 . b5 = b2 . b5) &
       (for b5 being natural set
             st len b2 < b5 & b5 < b3
          holds b4 . b5 = 0);

:: PRGCOR_2:funcnot 4 => PRGCOR_2:func 4
definition
  let a1 be non empty set;
  let a2 be non empty finite T-Sequence of a1;
  assume NAT c= a1 & a2 . 0 is natural set & a2 . 0 in len a2;
  func XFS2FS* A2 -> FinSequence of a1 means
    for b1 being natural set
          st b1 = a2 . 0
       holds len it = b1 &
        (for b2 being natural set
              st 1 <= b2 & b2 <= b1
           holds it . b2 = a2 . b2);
end;

:: PRGCOR_2:def 4
theorem
for b1 being non empty set
for b2 being non empty finite T-Sequence of b1
   st NAT c= b1 & b2 . 0 is natural set & b2 . 0 in len b2
for b3 being FinSequence of b1 holds
      b3 = XFS2FS* b2
   iff
      for b4 being natural set
            st b4 = b2 . 0
         holds len b3 = b4 &
          (for b5 being natural set
                st 1 <= b5 & b5 <= b4
             holds b3 . b5 = b2 . b5);

:: PRGCOR_2:th 5
theorem
for b1 being non empty set
for b2 being non empty finite T-Sequence of b1
      st NAT c= b1 & b2 . 0 = 0 & 0 < len b2
   holds XFS2FS* b2 = {};

:: PRGCOR_2:prednot 1 => PRGCOR_2:pred 1
definition
  let a1 be non empty set;
  let a2 be finite T-Sequence of a1;
  let a3 be FinSequence of a1;
  pred A2 is_an_xrep_of A3 means
    NAT c= a1 &
     a2 . 0 = len a3 &
     len a3 < len a2 &
     (for b1 being natural set
           st 1 <= b1 & b1 <= len a3
        holds a2 . b1 = a3 . b1);
end;

:: PRGCOR_2:dfs 5
definiens
  let a1 be non empty set;
  let a2 be finite T-Sequence of a1;
  let a3 be FinSequence of a1;
To prove
     a2 is_an_xrep_of a3
it is sufficient to prove
  thus NAT c= a1 &
     a2 . 0 = len a3 &
     len a3 < len a2 &
     (for b1 being natural set
           st 1 <= b1 & b1 <= len a3
        holds a2 . b1 = a3 . b1);

:: PRGCOR_2:def 5
theorem
for b1 being non empty set
for b2 being finite T-Sequence of b1
for b3 being FinSequence of b1 holds
      b2 is_an_xrep_of b3
   iff
      NAT c= b1 &
       b2 . 0 = len b3 &
       len b3 < len b2 &
       (for b4 being natural set
             st 1 <= b4 & b4 <= len b3
          holds b2 . b4 = b3 . b4);

:: PRGCOR_2:th 6
theorem
for b1 being non empty set
for b2 being non empty finite T-Sequence of b1
      st NAT c= b1 & b2 . 0 is natural set & b2 . 0 in len b2
   holds b2 is_an_xrep_of XFS2FS* b2;

:: PRGCOR_2:funcnot 5 => PRGCOR_2:func 5
definition
  let a1, a2, a3, a4, a5 be set;
  func IFLGT(A1,A2,A3,A4,A5) -> set equals
    a3
    if a1 in a2,
a4
    if a1 = a2
    otherwise a5;
end;

:: PRGCOR_2:def 6
theorem
for b1, b2, b3, b4, b5 being set holds
(b1 in b2 implies IFLGT(b1,b2,b3,b4,b5) = b3) &
 (b1 = b2 implies IFLGT(b1,b2,b3,b4,b5) = b4) &
 (not b1 in b2 & b1 <> b2 implies IFLGT(b1,b2,b3,b4,b5) = b5);

:: PRGCOR_2:th 7
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3 being natural set
      st NAT c= b1 & len b2 < b3
   holds ex b4 being finite T-Sequence of b1 st
      len b4 = b3 & b4 is_an_xrep_of b2;

:: PRGCOR_2:funcnot 6 => PRGCOR_2:func 6
definition
  let a1, a2 be finite T-Sequence of REAL;
  assume a2 . 0 is natural set & 0 <= a2 . 0 & a2 . 0 < len a1;
  func inner_prd_prg(A1,A2) -> Element of REAL means
    ex b1 being finite T-Sequence of REAL st
       ex b2 being integer set st
          len b1 = len a1 &
           b1 . 0 = 0 &
           b2 = a2 . 0 &
           (b2 = 0 or for b3 being natural set
                 st b3 < b2
              holds b1 . (b3 + 1) = (b1 . b3) + ((a1 . (b3 + 1)) * (a2 . (b3 + 1)))) &
           it = b1 . b2;
end;

:: PRGCOR_2:def 7
theorem
for b1, b2 being finite T-Sequence of REAL
   st b2 . 0 is natural set & 0 <= b2 . 0 & b2 . 0 < len b1
for b3 being Element of REAL holds
      b3 = inner_prd_prg(b1,b2)
   iff
      ex b4 being finite T-Sequence of REAL st
         ex b5 being integer set st
            len b4 = len b1 &
             b4 . 0 = 0 &
             b5 = b2 . 0 &
             (b5 = 0 or for b6 being natural set
                   st b6 < b5
                holds b4 . (b6 + 1) = (b4 . b6) + ((b1 . (b6 + 1)) * (b2 . (b6 + 1)))) &
             b3 = b4 . b5;

:: PRGCOR_2:th 8
theorem
for b1 being FinSequence of REAL
for b2 being finite T-Sequence of REAL
      st len b1 < len b2 &
         b2 . 0 = 0 &
         (for b3 being natural set
               st b3 < len b1
            holds b2 . (b3 + 1) = (b2 . b3) + (b1 . (b3 + 1)))
   holds Sum b1 = b2 . len b1;

:: PRGCOR_2:th 9
theorem
for b1 being FinSequence of REAL holds
   ex b2 being finite T-Sequence of REAL st
      len b2 = (len b1) + 1 &
       b2 . 0 = 0 &
       (for b3 being natural set
             st b3 < len b1
          holds b2 . (b3 + 1) = (b2 . b3) + (b1 . (b3 + 1))) &
       Sum b1 = b2 . len b1;

:: PRGCOR_2:th 10
theorem
for b1, b2 being FinSequence of REAL
for b3 being natural set
      st len b1 = len b2 & len b1 < b3
   holds |(b1,b2)| = inner_prd_prg(FS2XFS*(b1,b3),FS2XFS*(b2,b3));

:: PRGCOR_2:prednot 2 => PRGCOR_2:pred 2
definition
  let a1, a2 be finite T-Sequence of REAL;
  let a3 be Element of REAL;
  let a4 be integer set;
  pred A4 scalar_prd_prg A2,A3,A1 means
    len a2 = a4 &
     len a1 = a4 &
     (ex b1 being integer set st
        a2 . 0 = a1 . 0 &
         b1 = a1 . 0 &
         (b1 = 0 or for b2 being natural set
               st 1 <= b2 & b2 <= b1
            holds a2 . b2 = a3 * (a1 . b2)));
end;

:: PRGCOR_2:dfs 8
definiens
  let a1, a2 be finite T-Sequence of REAL;
  let a3 be Element of REAL;
  let a4 be integer set;
To prove
     a4 scalar_prd_prg a2,a3,a1
it is sufficient to prove
  thus len a2 = a4 &
     len a1 = a4 &
     (ex b1 being integer set st
        a2 . 0 = a1 . 0 &
         b1 = a1 . 0 &
         (b1 = 0 or for b2 being natural set
               st 1 <= b2 & b2 <= b1
            holds a2 . b2 = a3 * (a1 . b2)));

:: PRGCOR_2:def 8
theorem
for b1, b2 being finite T-Sequence of REAL
for b3 being Element of REAL
for b4 being integer set holds
      b4 scalar_prd_prg b2,b3,b1
   iff
      len b2 = b4 &
       len b1 = b4 &
       (ex b5 being integer set st
          b2 . 0 = b1 . 0 &
           b5 = b1 . 0 &
           (b5 = 0 or for b6 being natural set
                 st 1 <= b6 & b6 <= b5
              holds b2 . b6 = b3 * (b1 . b6)));

:: PRGCOR_2:th 11
theorem
for b1 being non empty finite T-Sequence of REAL
for b2 being Element of REAL
for b3 being natural set
      st b1 . 0 is natural set & len b1 = b3 & 0 <= b1 . 0 & b1 . 0 < b3
   holds (ex b4 being finite T-Sequence of REAL st
       b3 scalar_prd_prg b4,b2,b1) &
    (for b4 being non empty finite T-Sequence of REAL
          st b3 scalar_prd_prg b4,b2,b1
       holds XFS2FS* b4 = b2 * XFS2FS* b1);

:: PRGCOR_2:prednot 3 => PRGCOR_2:pred 3
definition
  let a1, a2 be finite T-Sequence of REAL;
  let a3 be integer set;
  pred A3 vector_minus_prg A2,A1 means
    len a2 = a3 &
     len a1 = a3 &
     (ex b1 being integer set st
        a2 . 0 = a1 . 0 &
         b1 = a1 . 0 &
         (b1 = 0 or for b2 being natural set
               st 1 <= b2 & b2 <= b1
            holds a2 . b2 = - (a1 . b2)));
end;

:: PRGCOR_2:dfs 9
definiens
  let a1, a2 be finite T-Sequence of REAL;
  let a3 be integer set;
To prove
     a3 vector_minus_prg a2,a1
it is sufficient to prove
  thus len a2 = a3 &
     len a1 = a3 &
     (ex b1 being integer set st
        a2 . 0 = a1 . 0 &
         b1 = a1 . 0 &
         (b1 = 0 or for b2 being natural set
               st 1 <= b2 & b2 <= b1
            holds a2 . b2 = - (a1 . b2)));

:: PRGCOR_2:def 9
theorem
for b1, b2 being finite T-Sequence of REAL
for b3 being integer set holds
      b3 vector_minus_prg b2,b1
   iff
      len b2 = b3 &
       len b1 = b3 &
       (ex b4 being integer set st
          b2 . 0 = b1 . 0 &
           b4 = b1 . 0 &
           (b4 = 0 or for b5 being natural set
                 st 1 <= b5 & b5 <= b4
              holds b2 . b5 = - (b1 . b5)));

:: PRGCOR_2:th 12
theorem
for b1 being non empty finite T-Sequence of REAL
for b2 being natural set
      st b1 . 0 is natural set & len b1 = b2 & 0 <= b1 . 0 & b1 . 0 < b2
   holds (ex b3 being finite T-Sequence of REAL st
       b2 vector_minus_prg b3,b1) &
    (for b3 being non empty finite T-Sequence of REAL
          st b2 vector_minus_prg b3,b1
       holds XFS2FS* b3 = - XFS2FS* b1);

:: PRGCOR_2:prednot 4 => PRGCOR_2:pred 4
definition
  let a1, a2, a3 be finite T-Sequence of REAL;
  let a4 be integer set;
  pred A4 vector_add_prg A3,A1,A2 means
    len a3 = a4 &
     len a1 = a4 &
     len a2 = a4 &
     (ex b1 being integer set st
        a3 . 0 = a2 . 0 &
         b1 = a2 . 0 &
         (b1 = 0 or for b2 being natural set
               st 1 <= b2 & b2 <= b1
            holds a3 . b2 = (a1 . b2) + (a2 . b2)));
end;

:: PRGCOR_2:dfs 10
definiens
  let a1, a2, a3 be finite T-Sequence of REAL;
  let a4 be integer set;
To prove
     a4 vector_add_prg a3,a1,a2
it is sufficient to prove
  thus len a3 = a4 &
     len a1 = a4 &
     len a2 = a4 &
     (ex b1 being integer set st
        a3 . 0 = a2 . 0 &
         b1 = a2 . 0 &
         (b1 = 0 or for b2 being natural set
               st 1 <= b2 & b2 <= b1
            holds a3 . b2 = (a1 . b2) + (a2 . b2)));

:: PRGCOR_2:def 10
theorem
for b1, b2, b3 being finite T-Sequence of REAL
for b4 being integer set holds
      b4 vector_add_prg b3,b1,b2
   iff
      len b3 = b4 &
       len b1 = b4 &
       len b2 = b4 &
       (ex b5 being integer set st
          b3 . 0 = b2 . 0 &
           b5 = b2 . 0 &
           (b5 = 0 or for b6 being natural set
                 st 1 <= b6 & b6 <= b5
              holds b3 . b6 = (b1 . b6) + (b2 . b6)));

:: PRGCOR_2:th 13
theorem
for b1, b2 being non empty finite T-Sequence of REAL
for b3 being natural set
      st b2 . 0 is natural set & len b1 = b3 & len b2 = b3 & b1 . 0 = b2 . 0 & 0 <= b2 . 0 & b2 . 0 < b3
   holds (ex b4 being finite T-Sequence of REAL st
       b3 vector_add_prg b4,b1,b2) &
    (for b4 being non empty finite T-Sequence of REAL
          st b3 vector_add_prg b4,b1,b2
       holds XFS2FS* b4 = (XFS2FS* b1) + XFS2FS* b2);

:: PRGCOR_2:prednot 5 => PRGCOR_2:pred 5
definition
  let a1, a2, a3 be finite T-Sequence of REAL;
  let a4 be integer set;
  pred A4 vector_sub_prg A3,A1,A2 means
    len a3 = a4 &
     len a1 = a4 &
     len a2 = a4 &
     (ex b1 being integer set st
        a3 . 0 = a2 . 0 &
         b1 = a2 . 0 &
         (b1 = 0 or for b2 being natural set
               st 1 <= b2 & b2 <= b1
            holds a3 . b2 = (a1 . b2) - (a2 . b2)));
end;

:: PRGCOR_2:dfs 11
definiens
  let a1, a2, a3 be finite T-Sequence of REAL;
  let a4 be integer set;
To prove
     a4 vector_sub_prg a3,a1,a2
it is sufficient to prove
  thus len a3 = a4 &
     len a1 = a4 &
     len a2 = a4 &
     (ex b1 being integer set st
        a3 . 0 = a2 . 0 &
         b1 = a2 . 0 &
         (b1 = 0 or for b2 being natural set
               st 1 <= b2 & b2 <= b1
            holds a3 . b2 = (a1 . b2) - (a2 . b2)));

:: PRGCOR_2:def 11
theorem
for b1, b2, b3 being finite T-Sequence of REAL
for b4 being integer set holds
      b4 vector_sub_prg b3,b1,b2
   iff
      len b3 = b4 &
       len b1 = b4 &
       len b2 = b4 &
       (ex b5 being integer set st
          b3 . 0 = b2 . 0 &
           b5 = b2 . 0 &
           (b5 = 0 or for b6 being natural set
                 st 1 <= b6 & b6 <= b5
              holds b3 . b6 = (b1 . b6) - (b2 . b6)));

:: PRGCOR_2:th 14
theorem
for b1, b2 being non empty finite T-Sequence of REAL
for b3 being natural set
      st b2 . 0 is natural set & len b1 = b3 & len b2 = b3 & b1 . 0 = b2 . 0 & 0 <= b2 . 0 & b2 . 0 < b3
   holds (ex b4 being finite T-Sequence of REAL st
       b3 vector_sub_prg b4,b1,b2) &
    (for b4 being non empty finite T-Sequence of REAL
          st b3 vector_sub_prg b4,b1,b2
       holds XFS2FS* b4 = (XFS2FS* b1) - XFS2FS* b2);