Article FINSEQ_2, MML version 4.99.1005

:: FINSEQ_2:th 1
theorem
for b1, b2 being natural set holds
min(b1,b2) is Element of NAT & max(b1,b2) is Element of NAT;

:: FINSEQ_2:th 2
theorem
for b1, b2, b3 being natural set
      st b1 = min(b2,b3)
   holds (Seg b2) /\ Seg b3 = Seg b1;

:: FINSEQ_2:th 3
theorem
for b1, b2 being natural set
      st b1 <= b2
   holds max(0,b1 - b2) = 0;

:: FINSEQ_2:th 4
theorem
for b1, b2 being natural set
      st b1 <= b2
   holds max(0,b2 - b1) = b2 - b1;

:: FINSEQ_2:th 5
theorem
for b1, b2 being natural set holds
max(0,b1 - b2) is Element of NAT;

:: FINSEQ_2:th 6
theorem
for b1 being natural set holds
   min(0,b1) = 0 & min(b1,0) = 0 & max(0,b1) = b1 & max(b1,0) = b1;

:: FINSEQ_2:th 8
theorem
for b1, b2 being natural set
      st b1 in Seg (b2 + 1) & not b1 in Seg b2
   holds b1 = b2 + 1;

:: FINSEQ_2:th 9
theorem
for b1, b2, b3 being natural set
      st b1 in Seg b2
   holds b1 in Seg (b2 + b3);

:: FINSEQ_2:th 10
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
      st len b1 = len b2 &
         (for b3 being natural set
               st b3 in dom b1
            holds b1 . b3 = b2 . b3)
   holds b1 = b2;

:: FINSEQ_2:th 11
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set
      st b1 in proj2 b2
   holds ex b3 being natural set st
      b3 in dom b2 & b2 . b3 = b1;

:: FINSEQ_2:th 13
theorem
for b1 being natural set
for b2 being set
for b3 being FinSequence of b2
      st b1 in dom b3
   holds b3 . b1 in b2;

:: FINSEQ_2:th 14
theorem
for b1 being Relation-like Function-like FinSequence-like set
for b2 being set
      st for b3 being natural set
              st b3 in dom b1
           holds b1 . b3 in b2
   holds b1 is FinSequence of b2;

:: FINSEQ_2:th 15
theorem
for b1 being non empty set
for b2, b3 being Element of b1 holds
<*b2,b3*> is FinSequence of b1;

:: FINSEQ_2:th 16
theorem
for b1 being non empty set
for b2, b3, b4 being Element of b1 holds
<*b2,b3,b4*> is FinSequence of b1;

:: FINSEQ_2:th 18
theorem
for b1 being natural set
for b2, b3 being Relation-like Function-like FinSequence-like set
      st b1 in dom b2
   holds b1 in dom (b2 ^ b3);

:: FINSEQ_2:th 19
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set holds
   len (b2 ^ <*b1*>) = (len b2) + 1;

:: FINSEQ_2:th 20
theorem
for b1, b2 being set
for b3, b4 being Relation-like Function-like FinSequence-like set
      st b3 ^ <*b1*> = b4 ^ <*b2*>
   holds b3 = b4 & b1 = b2;

:: FINSEQ_2:th 21
theorem
for b1 being natural set
for b2 being Relation-like Function-like FinSequence-like set
      st len b2 = b1 + 1
   holds ex b3 being Relation-like Function-like FinSequence-like set st
      ex b4 being set st
         b2 = b3 ^ <*b4*>;

:: FINSEQ_2:th 22
theorem
for b1 being set
for b2 being FinSequence of b1
      st len b2 <> 0
   holds ex b3 being FinSequence of b1 st
      ex b4 being Element of b1 st
         b2 = b3 ^ <*b4*>;

:: FINSEQ_2:th 23
theorem
for b1 being natural set
for b2, b3 being Relation-like Function-like FinSequence-like set
      st b2 = b3 | Seg b1 & len b3 <= b1
   holds b3 = b2;

:: FINSEQ_2:th 24
theorem
for b1 being natural set
for b2, b3 being Relation-like Function-like FinSequence-like set
      st b2 = b3 | Seg b1
   holds len b2 = min(b1,len b3);

:: FINSEQ_2:th 25
theorem
for b1, b2 being natural set
for b3 being Relation-like Function-like FinSequence-like set
      st len b3 = b1 + b2
   holds ex b4, b5 being Relation-like Function-like FinSequence-like set st
      len b4 = b1 & len b5 = b2 & b3 = b4 ^ b5;

:: FINSEQ_2:th 26
theorem
for b1, b2 being natural set
for b3 being non empty set
for b4 being FinSequence of b3
      st len b4 = b1 + b2
   holds ex b5, b6 being FinSequence of b3 st
      len b5 = b1 & len b6 = b2 & b4 = b5 ^ b6;

:: FINSEQ_2:sch 1
scheme FINSEQ_2:sch 1
{F1 -> natural set,
  F2 -> non empty set,
  F3 -> Element of F2()}:
ex b1 being FinSequence of F2() st
   len b1 = F1() &
    (for b2 being natural set
          st b2 in dom b1
       holds b1 . b2 = F3(b2))


:: FINSEQ_2:sch 2
scheme FINSEQ_2:sch 2
{F1 -> set}:
for b1 being FinSequence of F1() holds
   P1[b1]
provided
   P1[<*> F1()]
and
   for b1 being FinSequence of F1()
   for b2 being Element of F1()
         st P1[b1]
      holds P1[b1 ^ <*b2*>];


:: FINSEQ_2:th 27
theorem
for b1 being non empty set
for b2 being non empty Element of bool b1
for b3 being FinSequence of b2 holds
   b3 is FinSequence of b1;

:: FINSEQ_2:th 28
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Function-like quasi_total Relation of Seg b1,b2 holds
   b3 is FinSequence of b2;

:: FINSEQ_2:th 30
theorem
for b1 being non empty set
for b2 being FinSequence of b1 holds
   b2 is Function-like quasi_total Relation of dom b2,b1;

:: FINSEQ_2:th 31
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Function-like quasi_total Relation of NAT,b2 holds
   b3 | Seg b1 is FinSequence of b2;

:: FINSEQ_2:th 32
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Relation-like Function-like FinSequence-like set
for b4 being Function-like quasi_total Relation of NAT,b2
      st b3 = b4 | Seg b1
   holds len b3 = b1;

:: FINSEQ_2:th 33
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being Relation-like Function-like set
      st proj2 b1 c= proj1 b3 & b2 = b1 * b3
   holds len b2 = len b1;

:: FINSEQ_2:th 34
theorem
for b1 being natural set
for b2 being non empty set
   st b2 = Seg b1
for b3 being Relation-like Function-like FinSequence-like set
for b4 being FinSequence of b2
      st b1 <= len b3
   holds b4 * b3 is Relation-like Function-like FinSequence-like set;

:: FINSEQ_2:th 35
theorem
for b1 being natural set
for b2, b3 being non empty set
   st b2 = Seg b1
for b4 being FinSequence of b3
for b5 being FinSequence of b2
      st b1 <= len b4
   holds b4 * b5 is FinSequence of b3;

:: FINSEQ_2:th 36
theorem
for b1, b2 being set
for b3 being FinSequence of b1
for b4 being Function-like quasi_total Relation of b1,b2 holds
   b4 * b3 is FinSequence of b2;

:: FINSEQ_2:th 37
theorem
for b1 being set
for b2 being non empty set
for b3 being Relation-like Function-like FinSequence-like set
for b4 being FinSequence of b1
for b5 being Function-like quasi_total Relation of b1,b2
      st b3 = b5 * b4
   holds len b3 = len b4;

:: FINSEQ_2:th 38
theorem
for b1 being set
for b2 being non empty set
for b3 being Function-like quasi_total Relation of b1,b2 holds
   b3 * <*> b1 = <*> b2;

:: FINSEQ_2:th 39
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being FinSequence of b2
for b5 being Function-like quasi_total Relation of b2,b3
      st b4 = <*b1*>
   holds b5 * b4 = <*b5 . b1*>;

:: FINSEQ_2:th 40
theorem
for b1, b2 being set
for b3, b4 being non empty set
for b5 being FinSequence of b3
for b6 being Function-like quasi_total Relation of b3,b4
      st b5 = <*b1,b2*>
   holds b6 * b5 = <*b6 . b1,b6 . b2*>;

:: FINSEQ_2:th 41
theorem
for b1, b2, b3 being set
for b4, b5 being non empty set
for b6 being FinSequence of b4
for b7 being Function-like quasi_total Relation of b4,b5
      st b6 = <*b1,b2,b3*>
   holds b7 * b6 = <*b7 . b1,b7 . b2,b7 . b3*>;

:: FINSEQ_2:th 42
theorem
for b1, b2 being natural set
for b3 being Relation-like Function-like FinSequence-like set
for b4 being Function-like quasi_total Relation of Seg b1,Seg b2
      st (b2 = 0 implies b1 = 0) & b2 <= len b3
   holds b4 * b3 is Relation-like Function-like FinSequence-like set;

:: FINSEQ_2:th 43
theorem
for b1 being natural set
for b2 being Relation-like Function-like FinSequence-like set
for b3 being Function-like quasi_total Relation of Seg b1,Seg b1
      st b1 <= len b2
   holds b3 * b2 is Relation-like Function-like FinSequence-like set;

:: FINSEQ_2:th 44
theorem
for b1 being Relation-like Function-like FinSequence-like set
for b2 being Function-like quasi_total Relation of dom b1,dom b1 holds
   b2 * b1 is Relation-like Function-like FinSequence-like set;

:: FINSEQ_2:th 45
theorem
for b1 being natural set
for b2, b3 being Relation-like Function-like FinSequence-like set
for b4 being Function-like quasi_total Relation of Seg b1,Seg b1
      st proj2 b4 = Seg b1 & b1 <= len b2 & b3 = b4 * b2
   holds len b3 = b1;

:: FINSEQ_2:th 46
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being Function-like quasi_total Relation of dom b1,dom b1
      st proj2 b3 = dom b1 & b2 = b3 * b1
   holds len b2 = len b1;

:: FINSEQ_2:th 47
theorem
for b1 being natural set
for b2, b3 being Relation-like Function-like FinSequence-like set
for b4 being Function-like quasi_total bijective Relation of Seg b1,Seg b1
      st b1 <= len b2 & b3 = b4 * b2
   holds len b3 = b1;

:: FINSEQ_2:th 48
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being Function-like quasi_total bijective Relation of dom b1,dom b1
      st b2 = b3 * b1
   holds len b2 = len b1;

:: FINSEQ_2:th 49
theorem
for b1, b2 being natural set
for b3 being non empty set
for b4 being FinSequence of b3
for b5 being Function-like quasi_total Relation of Seg b1,Seg b2
      st (b2 = 0 implies b1 = 0) & b2 <= len b4
   holds b4 * b5 is FinSequence of b3;

:: FINSEQ_2:th 50
theorem
for b1 being natural set
for b2 being non empty set
for b3 being FinSequence of b2
for b4 being Function-like quasi_total Relation of Seg b1,Seg b1
      st b1 <= len b3
   holds b3 * b4 is FinSequence of b2;

:: FINSEQ_2:th 51
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3 being Function-like quasi_total Relation of dom b2,dom b2 holds
   b2 * b3 is FinSequence of b1;

:: FINSEQ_2:th 52
theorem
for b1 being natural set holds
   id Seg b1 is FinSequence of NAT;

:: FINSEQ_2:funcnot 1 => FINSEQ_2:func 1
definition
  let a1 be natural set;
  func idseq A1 -> Relation-like Function-like FinSequence-like set equals
    id Seg a1;
end;

:: FINSEQ_2:def 1
theorem
for b1 being natural set holds
   idseq b1 = id Seg b1;

:: FINSEQ_2:th 55
theorem
for b1 being natural set holds
   len idseq b1 = b1;

:: FINSEQ_2:th 57
theorem
for b1 being natural set
   st b1 <> 0
for b2 being Element of Seg b1 holds
   (idseq b1) . b2 = b2;

:: FINSEQ_2:th 58
theorem
idseq 0 = {};

:: FINSEQ_2:th 59
theorem
idseq 1 = <*1*>;

:: FINSEQ_2:th 60
theorem
for b1 being natural set holds
   idseq (b1 + 1) = (idseq b1) ^ <*b1 + 1*>;

:: FINSEQ_2:th 61
theorem
idseq 2 = <*1,2*>;

:: FINSEQ_2:th 62
theorem
idseq 3 = <*1,2,3*>;

:: FINSEQ_2:th 64
theorem
for b1 being natural set
for b2 being Relation-like Function-like FinSequence-like set
      st len b2 <= b1
   holds (idseq b1) * b2 = b2;

:: FINSEQ_2:th 65
theorem
for b1 being natural set holds
   idseq b1 is Function-like quasi_total bijective Relation of Seg b1,Seg b1;

:: FINSEQ_2:th 66
theorem
for b1 being natural set
for b2 being set holds
   (Seg b1) --> b2 is Relation-like Function-like FinSequence-like set;

:: FINSEQ_2:funcnot 2 => FINSEQ_2:func 2
definition
  let a1 be natural set;
  let a2 be set;
  func A1 |-> A2 -> Relation-like Function-like FinSequence-like set equals
    (Seg a1) --> a2;
end;

:: FINSEQ_2:def 2
theorem
for b1 being natural set
for b2 being set holds
   b1 |-> b2 = (Seg b1) --> b2;

:: FINSEQ_2:th 69
theorem
for b1 being natural set
for b2 being set holds
   len (b1 |-> b2) = b1;

:: FINSEQ_2:th 71
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Element of b2
   st b1 <> 0
for b4 being Element of Seg b1 holds
   (b1 |-> b3) . b4 = b3;

:: FINSEQ_2:th 72
theorem
for b1 being set holds
   0 |-> b1 = {};

:: FINSEQ_2:th 73
theorem
for b1 being set holds
   1 |-> b1 = <*b1*>;

:: FINSEQ_2:th 74
theorem
for b1 being natural set
for b2 being set holds
   (b1 + 1) |-> b2 = (b1 |-> b2) ^ <*b2*>;

:: FINSEQ_2:th 75
theorem
for b1 being set holds
   2 |-> b1 = <*b1,b1*>;

:: FINSEQ_2:th 76
theorem
for b1 being set holds
   3 |-> b1 = <*b1,b1,b1*>;

:: FINSEQ_2:th 77
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Element of b2 holds
   b1 |-> b3 is FinSequence of b2;

:: FINSEQ_2:th 78
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being Relation-like Function-like set
      st [:proj2 b1,proj2 b2:] c= proj1 b3
   holds b3 .:(b1,b2) is Relation-like Function-like FinSequence-like set;

:: FINSEQ_2:th 79
theorem
for b1, b2, b3 being Relation-like Function-like FinSequence-like set
for b4 being Relation-like Function-like set
      st [:proj2 b1,proj2 b2:] c= proj1 b4 &
         b3 = b4 .:(b1,b2)
   holds len b3 = min(len b1,len b2);

:: FINSEQ_2:th 80
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set
for b3 being Relation-like Function-like set
      st [:{b1},proj2 b2:] c= proj1 b3
   holds b3 [;](b1,b2) is Relation-like Function-like FinSequence-like set;

:: FINSEQ_2:th 81
theorem
for b1 being set
for b2, b3 being Relation-like Function-like FinSequence-like set
for b4 being Relation-like Function-like set
      st [:{b1},proj2 b2:] c= proj1 b4 &
         b3 = b4 [;](b1,b2)
   holds len b3 = len b2;

:: FINSEQ_2:th 82
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set
for b3 being Relation-like Function-like set
      st [:proj2 b2,{b1}:] c= proj1 b3
   holds b3 [:](b2,b1) is Relation-like Function-like FinSequence-like set;

:: FINSEQ_2:th 83
theorem
for b1 being set
for b2, b3 being Relation-like Function-like FinSequence-like set
for b4 being Relation-like Function-like set
      st [:proj2 b2,{b1}:] c= proj1 b4 &
         b3 = b4 [:](b2,b1)
   holds len b3 = len b2;

:: FINSEQ_2:th 84
theorem
for b1, b2, b3 being non empty set
for b4 being Function-like quasi_total Relation of [:b1,b2:],b3
for b5 being FinSequence of b1
for b6 being FinSequence of b2 holds
   b4 .:(b5,b6) is FinSequence of b3;

:: FINSEQ_2:th 85
theorem
for b1, b2, b3 being non empty set
for b4 being Relation-like Function-like FinSequence-like set
for b5 being Function-like quasi_total Relation of [:b1,b2:],b3
for b6 being FinSequence of b1
for b7 being FinSequence of b2
      st b4 = b5 .:(b6,b7)
   holds len b4 = min(len b6,len b7);

:: FINSEQ_2:th 86
theorem
for b1, b2, b3 being non empty set
for b4 being Relation-like Function-like FinSequence-like set
for b5 being Function-like quasi_total Relation of [:b1,b2:],b3
for b6 being FinSequence of b1
for b7 being FinSequence of b2
      st len b6 = len b7 & b4 = b5 .:(b6,b7)
   holds len b4 = len b6 & len b4 = len b7;

:: FINSEQ_2:th 87
theorem
for b1, b2, b3 being non empty set
for b4 being Function-like quasi_total Relation of [:b1,b2:],b3
for b5 being FinSequence of b1
for b6 being FinSequence of b2 holds
   b4 .:(<*> b1,b6) = <*> b3 & b4 .:(b5,<*> b2) = <*> b3;

:: FINSEQ_2:th 88
theorem
for b1, b2, b3 being non empty set
for b4 being Element of b1
for b5 being Element of b2
for b6 being Function-like quasi_total Relation of [:b1,b2:],b3
for b7 being FinSequence of b1
for b8 being FinSequence of b2
      st b7 = <*b4*> & b8 = <*b5*>
   holds b6 .:(b7,b8) = <*b6 .(b4,b5)*>;

:: FINSEQ_2:th 89
theorem
for b1, b2, b3 being non empty set
for b4, b5 being Element of b1
for b6, b7 being Element of b2
for b8 being Function-like quasi_total Relation of [:b1,b2:],b3
for b9 being FinSequence of b1
for b10 being FinSequence of b2
      st b9 = <*b4,b5*> & b10 = <*b6,b7*>
   holds b8 .:(b9,b10) = <*b8 .(b4,b6),b8 .(b5,b7)*>;

:: FINSEQ_2:th 90
theorem
for b1, b2, b3 being non empty set
for b4, b5, b6 being Element of b1
for b7, b8, b9 being Element of b2
for b10 being Function-like quasi_total Relation of [:b1,b2:],b3
for b11 being FinSequence of b1
for b12 being FinSequence of b2
      st b11 = <*b4,b5,b6*> & b12 = <*b7,b8,b9*>
   holds b10 .:(b11,b12) = <*b10 .(b4,b7),b10 .(b5,b8),b10 .(b6,b9)*>;

:: FINSEQ_2:th 91
theorem
for b1, b2, b3 being non empty set
for b4 being Element of b1
for b5 being Function-like quasi_total Relation of [:b1,b2:],b3
for b6 being FinSequence of b2 holds
   b5 [;](b4,b6) is FinSequence of b3;

:: FINSEQ_2:th 92
theorem
for b1, b2, b3 being non empty set
for b4 being Element of b1
for b5 being Relation-like Function-like FinSequence-like set
for b6 being Function-like quasi_total Relation of [:b1,b2:],b3
for b7 being FinSequence of b2
      st b5 = b6 [;](b4,b7)
   holds len b5 = len b7;

:: FINSEQ_2:th 93
theorem
for b1, b2, b3 being non empty set
for b4 being Element of b1
for b5 being Function-like quasi_total Relation of [:b1,b2:],b3 holds
   b5 [;](b4,<*> b2) = <*> b3;

:: FINSEQ_2:th 94
theorem
for b1, b2, b3 being non empty set
for b4 being Element of b1
for b5 being Element of b2
for b6 being Function-like quasi_total Relation of [:b1,b2:],b3
for b7 being FinSequence of b2
      st b7 = <*b5*>
   holds b6 [;](b4,b7) = <*b6 .(b4,b5)*>;

:: FINSEQ_2:th 95
theorem
for b1, b2, b3 being non empty set
for b4 being Element of b1
for b5, b6 being Element of b2
for b7 being Function-like quasi_total Relation of [:b1,b2:],b3
for b8 being FinSequence of b2
      st b8 = <*b5,b6*>
   holds b7 [;](b4,b8) = <*b7 .(b4,b5),b7 .(b4,b6)*>;

:: FINSEQ_2:th 96
theorem
for b1, b2, b3 being non empty set
for b4 being Element of b1
for b5, b6, b7 being Element of b2
for b8 being Function-like quasi_total Relation of [:b1,b2:],b3
for b9 being FinSequence of b2
      st b9 = <*b5,b6,b7*>
   holds b8 [;](b4,b9) = <*b8 .(b4,b5),b8 .(b4,b6),b8 .(b4,b7)*>;

:: FINSEQ_2:th 97
theorem
for b1, b2, b3 being non empty set
for b4 being Element of b2
for b5 being Function-like quasi_total Relation of [:b1,b2:],b3
for b6 being FinSequence of b1 holds
   b5 [:](b6,b4) is FinSequence of b3;

:: FINSEQ_2:th 98
theorem
for b1, b2, b3 being non empty set
for b4 being Element of b2
for b5 being Relation-like Function-like FinSequence-like set
for b6 being Function-like quasi_total Relation of [:b1,b2:],b3
for b7 being FinSequence of b1
      st b5 = b6 [:](b7,b4)
   holds len b5 = len b7;

:: FINSEQ_2:th 99
theorem
for b1, b2, b3 being non empty set
for b4 being Element of b2
for b5 being Function-like quasi_total Relation of [:b1,b2:],b3 holds
   b5 [:](<*> b1,b4) = <*> b3;

:: FINSEQ_2:th 100
theorem
for b1, b2, b3 being non empty set
for b4 being Element of b1
for b5 being Element of b2
for b6 being Function-like quasi_total Relation of [:b1,b2:],b3
for b7 being FinSequence of b1
      st b7 = <*b4*>
   holds b6 [:](b7,b5) = <*b6 .(b4,b5)*>;

:: FINSEQ_2:th 101
theorem
for b1, b2, b3 being non empty set
for b4, b5 being Element of b1
for b6 being Element of b2
for b7 being Function-like quasi_total Relation of [:b1,b2:],b3
for b8 being FinSequence of b1
      st b8 = <*b4,b5*>
   holds b7 [:](b8,b6) = <*b7 .(b4,b6),b7 .(b5,b6)*>;

:: FINSEQ_2:th 102
theorem
for b1, b2, b3 being non empty set
for b4, b5, b6 being Element of b1
for b7 being Element of b2
for b8 being Function-like quasi_total Relation of [:b1,b2:],b3
for b9 being FinSequence of b1
      st b9 = <*b4,b5,b6*>
   holds b8 [:](b9,b7) = <*b8 .(b4,b7),b8 .(b5,b7),b8 .(b6,b7)*>;

:: FINSEQ_2:modenot 1 => FINSEQ_2:mode 1
definition
  let a1 be set;
  mode FinSequenceSet of A1 means
    for b1 being set
          st b1 in it
       holds b1 is FinSequence of a1;
end;

:: FINSEQ_2:dfs 3
definiens
  let a1, a2 be set;
To prove
     a2 is FinSequenceSet of a1
it is sufficient to prove
  thus for b1 being set
          st b1 in a2
       holds b1 is FinSequence of a1;

:: FINSEQ_2:def 3
theorem
for b1, b2 being set holds
   b2 is FinSequenceSet of b1
iff
   for b3 being set
         st b3 in b2
      holds b3 is FinSequence of b1;

:: FINSEQ_2:exreg 1
registration
  let a1 be set;
  cluster non empty FinSequenceSet of a1;
end;

:: FINSEQ_2:modenot 2
definition
  let a1 be set;
  mode FinSequence-DOMAIN of a1 is non empty FinSequenceSet of a1;
end;

:: FINSEQ_2:th 104
theorem
for b1 being set holds
   b1 * is non empty FinSequenceSet of b1;

:: FINSEQ_2:funcnot 3 => FINSEQ_2:func 3
definition
  let a1 be set;
  redefine func a1 * -> non empty FinSequenceSet of a1;
end;

:: FINSEQ_2:th 105
theorem
for b1 being set
for b2 being non empty FinSequenceSet of b1 holds
   b2 c= b1 *;

:: FINSEQ_2:modenot 3 => FINSEQ_2:mode 2
definition
  let a1 be set;
  let a2 be non empty FinSequenceSet of a1;
  redefine mode Element of a2 -> FinSequence of a1;
end;

:: FINSEQ_2:th 107
theorem
for b1 being non empty set
for b2 being non empty Element of bool b1
for b3 being non empty FinSequenceSet of b2 holds
   b3 is non empty FinSequenceSet of b1;

:: FINSEQ_2:funcnot 4 => FINSEQ_2:func 4
definition
  let a1 be natural set;
  let a2 be set;
  func A1 -tuples_on A2 -> FinSequenceSet of a2 equals
    {b1 where b1 is Element of a2 *: len b1 = a1};
end;

:: FINSEQ_2:def 4
theorem
for b1 being natural set
for b2 being set holds
   b1 -tuples_on b2 = {b3 where b3 is Element of b2 *: len b3 = b1};

:: FINSEQ_2:funcreg 1
registration
  let a1 be natural set;
  let a2 be non empty set;
  cluster a1 -tuples_on a2 -> non empty;
end;

:: FINSEQ_2:th 109
theorem
for b1 being non empty set
for b2 being natural set
for b3 being Element of b2 -tuples_on b1 holds
   len b3 = b2;

:: FINSEQ_2:th 110
theorem
for b1 being set
for b2 being FinSequence of b1 holds
   b2 is Element of (len b2) -tuples_on b1;

:: FINSEQ_2:th 111
theorem
for b1 being natural set
for b2 being non empty set holds
   b1 -tuples_on b2 = Funcs(Seg b1,b2);

:: FINSEQ_2:th 112
theorem
for b1 being set holds
   0 -tuples_on b1 = {<*> b1};

:: FINSEQ_2:th 113
theorem
for b1 being set
for b2 being Element of 0 -tuples_on b1 holds
   b2 = <*> b1;

:: FINSEQ_2:th 114
theorem
for b1 being set holds
   <*> b1 is Element of 0 -tuples_on b1;

:: FINSEQ_2:th 115
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Element of 0 -tuples_on b2
for b4 being Element of b1 -tuples_on b2 holds
   b3 ^ b4 = b4 & b4 ^ b3 = b4;

:: FINSEQ_2:th 116
theorem
for b1 being non empty set holds
   1 -tuples_on b1 = {<*b2*> where b2 is Element of b1: TRUE};

:: FINSEQ_2:th 117
theorem
for b1 being non empty set
for b2 being Element of 1 -tuples_on b1 holds
   ex b3 being Element of b1 st
      b2 = <*b3*>;

:: FINSEQ_2:th 118
theorem
for b1 being non empty set
for b2 being Element of b1 holds
   <*b2*> is Element of 1 -tuples_on b1;

:: FINSEQ_2:th 119
theorem
for b1 being non empty set holds
   2 -tuples_on b1 = {<*b2,b3*> where b2 is Element of b1, b3 is Element of b1: TRUE};

:: FINSEQ_2:th 120
theorem
for b1 being non empty set
for b2 being Element of 2 -tuples_on b1 holds
   ex b3, b4 being Element of b1 st
      b2 = <*b3,b4*>;

:: FINSEQ_2:th 121
theorem
for b1 being non empty set
for b2, b3 being Element of b1 holds
<*b2,b3*> is Element of 2 -tuples_on b1;

:: FINSEQ_2:th 122
theorem
for b1 being non empty set holds
   3 -tuples_on b1 = {<*b2,b3,b4*> where b2 is Element of b1, b3 is Element of b1, b4 is Element of b1: TRUE};

:: FINSEQ_2:th 123
theorem
for b1 being non empty set
for b2 being Element of 3 -tuples_on b1 holds
   ex b3, b4, b5 being Element of b1 st
      b2 = <*b3,b4,b5*>;

:: FINSEQ_2:th 124
theorem
for b1 being non empty set
for b2, b3, b4 being Element of b1 holds
<*b2,b3,b4*> is Element of 3 -tuples_on b1;

:: FINSEQ_2:th 125
theorem
for b1, b2 being natural set
for b3 being non empty set holds
   (b1 + b2) -tuples_on b3 = {b4 ^ b5 where b4 is Element of b1 -tuples_on b3, b5 is Element of b2 -tuples_on b3: TRUE};

:: FINSEQ_2:th 126
theorem
for b1, b2 being natural set
for b3 being non empty set
for b4 being Element of (b1 + b2) -tuples_on b3 holds
   ex b5 being Element of b1 -tuples_on b3 st
      ex b6 being Element of b2 -tuples_on b3 st
         b4 = b5 ^ b6;

:: FINSEQ_2:th 127
theorem
for b1, b2 being natural set
for b3 being non empty set
for b4 being Element of b1 -tuples_on b3
for b5 being Element of b2 -tuples_on b3 holds
   b4 ^ b5 is Element of (b1 + b2) -tuples_on b3;

:: FINSEQ_2:th 128
theorem
for b1 being non empty set holds
   b1 * = union {b2 -tuples_on b1 where b2 is Element of NAT: TRUE};

:: FINSEQ_2:th 129
theorem
for b1 being natural set
for b2 being non empty set
for b3 being non empty Element of bool b2
for b4 being Element of b1 -tuples_on b3 holds
   b4 is Element of b1 -tuples_on b2;

:: FINSEQ_2:th 130
theorem
for b1, b2 being natural set
for b3 being non empty set
      st b1 -tuples_on b3 = b2 -tuples_on b3
   holds b1 = b2;

:: FINSEQ_2:th 131
theorem
for b1 being natural set holds
   idseq b1 is Element of b1 -tuples_on NAT;

:: FINSEQ_2:th 132
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Element of b2 holds
   b1 |-> b3 is Element of b1 -tuples_on b2;

:: FINSEQ_2:th 133
theorem
for b1 being natural set
for b2, b3 being non empty set
for b4 being Element of b1 -tuples_on b2
for b5 being Function-like quasi_total Relation of b2,b3 holds
   b5 * b4 is Element of b1 -tuples_on b3;

:: FINSEQ_2:th 134
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Element of b1 -tuples_on b2
for b4 being Function-like quasi_total Relation of Seg b1,Seg b1
      st proj2 b4 = Seg b1
   holds b3 * b4 is Element of b1 -tuples_on b2;

:: FINSEQ_2:th 135
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Element of b1 -tuples_on b2
for b4 being Function-like quasi_total bijective Relation of Seg b1,Seg b1 holds
   b3 * b4 is Element of b1 -tuples_on b2;

:: FINSEQ_2:th 136
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Element of b1 -tuples_on b2
for b4 being Element of b2 holds
   (b3 ^ <*b4*>) . (b1 + 1) = b4;

:: FINSEQ_2:th 137
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Element of (b1 + 1) -tuples_on b2 holds
   ex b4 being Element of b1 -tuples_on b2 st
      ex b5 being Element of b2 st
         b3 = b4 ^ <*b5*>;

:: FINSEQ_2:th 138
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Element of b1 -tuples_on b2 holds
   (idseq b1) * b3 = b3;

:: FINSEQ_2:th 139
theorem
for b1 being natural set
for b2 being non empty set
for b3, b4 being Element of b1 -tuples_on b2
      st for b5 being natural set
              st b5 in Seg b1
           holds b3 . b5 = b4 . b5
   holds b3 = b4;

:: FINSEQ_2:th 140
theorem
for b1 being natural set
for b2, b3, b4 being non empty set
for b5 being Function-like quasi_total Relation of [:b2,b3:],b4
for b6 being Element of b1 -tuples_on b2
for b7 being Element of b1 -tuples_on b3 holds
   b5 .:(b6,b7) is Element of b1 -tuples_on b4;

:: FINSEQ_2:th 141
theorem
for b1 being natural set
for b2, b3, b4 being non empty set
for b5 being Element of b2
for b6 being Function-like quasi_total Relation of [:b2,b3:],b4
for b7 being Element of b1 -tuples_on b3 holds
   b6 [;](b5,b7) is Element of b1 -tuples_on b4;

:: FINSEQ_2:th 142
theorem
for b1 being natural set
for b2, b3, b4 being non empty set
for b5 being Element of b3
for b6 being Function-like quasi_total Relation of [:b2,b3:],b4
for b7 being Element of b1 -tuples_on b2 holds
   b6 [:](b7,b5) is Element of b1 -tuples_on b4;

:: FINSEQ_2:th 143
theorem
for b1, b2 being natural set
for b3 being set holds
   (b1 + b2) |-> b3 = (b1 |-> b3) ^ (b2 |-> b3);

:: FINSEQ_2:th 144
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Element of b1 -tuples_on b2 holds
   dom b3 = Seg b1;

:: FINSEQ_2:th 145
theorem
for b1 being Relation-like Function-like set
for b2, b3 being set
      st b2 in proj1 b1 & b3 in proj1 b1
   holds <*b2,b3*> * b1 = <*b1 . b2,b1 . b3*>;

:: FINSEQ_2:th 146
theorem
for b1 being Relation-like Function-like set
for b2, b3, b4 being set
      st b2 in proj1 b1 & b3 in proj1 b1 & b4 in proj1 b1
   holds <*b2,b3,b4*> * b1 = <*b1 . b2,b1 . b3,b1 . b4*>;

:: FINSEQ_2:th 147
theorem
for b1, b2 being set holds
proj2 <*b1,b2*> = {b1,b2};

:: FINSEQ_2:th 148
theorem
for b1, b2, b3 being set holds
proj2 <*b1,b2,b3*> = {b1,b2,b3};

:: FINSEQ_2:th 149
theorem
for b1, b2, b3 being Relation-like Function-like FinSequence-like set
      st b1 c= b3 & b2 c= b3 & len b1 = len b2
   holds b1 = b2;

:: FINSEQ_2:th 150
theorem
for b1 being FinSequence of NAT
      st b1 <> {}
   holds ex b2 being FinSequence of NAT st
      ex b3 being natural set st
         b1 = <*b3*> ^ b2;

:: FINSEQ_2:condreg 1
registration
  let a1 be set;
  cluster -> functional (FinSequenceSet of a1);
end;