Article FINSEQ_6, MML version 4.99.1005

:: FINSEQ_6:funcreg 1
registration
  let a1, a2, a3 be set;
  cluster <*a1,a2,a3*> -> non trivial;
end;

:: FINSEQ_6:funcreg 2
registration
  let a1 be Relation-like Function-like non empty FinSequence-like set;
  cluster Rev a1 -> Relation-like Function-like non empty FinSequence-like;
end;

:: FINSEQ_6:th 3
theorem
for b1 being set
for b2 being Element of NAT
      st b1 c= Seg b2 & 1 in b1
   holds (Sgm b1) . 1 = 1;

:: FINSEQ_6:th 4
theorem
for b1 being Element of NAT
for b2 being Relation-like Function-like FinSequence-like set
      st b1 in dom b2 &
         (for b3 being Element of NAT
               st 1 <= b3 & b3 < b1
            holds b2 . b3 <> b2 . b1)
   holds (b2 . b1) .. b2 = b1;

:: FINSEQ_6:th 5
theorem
for b1, b2 being set holds
<*b1,b2*> | Seg 1 = <*b1*>;

:: FINSEQ_6:th 6
theorem
for b1, b2, b3 being set holds
<*b1,b2,b3*> | Seg 1 = <*b1*>;

:: FINSEQ_6:th 7
theorem
for b1, b2, b3 being set holds
<*b1,b2,b3*> | Seg 2 = <*b1,b2*>;

:: FINSEQ_6:th 8
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being set
      st b3 in proj2 b1
   holds b3 .. (b1 ^ b2) = b3 .. b1;

:: FINSEQ_6:th 9
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being set
      st b3 in (proj2 b1) \ proj2 b2
   holds b3 .. (b2 ^ b1) = (len b2) + (b3 .. b1);

:: FINSEQ_6:th 10
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being set
      st b3 in proj2 b1
   holds (b1 ^ b2) |-- b3 = (b1 |-- b3) ^ b2;

:: FINSEQ_6:th 11
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being set
      st b3 in (proj2 b1) \ proj2 b2
   holds (b2 ^ b1) |-- b3 = b1 |-- b3;

:: FINSEQ_6:th 12
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set holds
b1 c= b1 ^ b2;

:: FINSEQ_6:th 13
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being set
      st b3 c= dom b1
   holds (b1 ^ b2) | b3 = b1 | b3;

:: FINSEQ_6:th 14
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being set
      st b3 in proj2 b1
   holds (b1 ^ b2) -| b3 = b1 -| b3;

:: FINSEQ_6:funcreg 3
registration
  let a1 be Relation-like Function-like FinSequence-like set;
  let a2 be natural set;
  cluster a1 | Seg a2 -> Relation-like FinSequence-like;
end;

:: FINSEQ_6:th 15
theorem
for b1, b2, b3 being Relation-like Function-like FinSequence-like set
      st b1 c= b2
   holds b3 ^ b1 c= b3 ^ b2;

:: FINSEQ_6:th 16
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being Element of NAT holds
   (b1 ^ b2) | Seg ((len b1) + b3) = b1 ^ (b2 | Seg b3);

:: FINSEQ_6:th 17
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being set
      st b3 in (proj2 b1) \ proj2 b2
   holds (b2 ^ b1) -| b3 = b2 ^ (b1 -| b3);

:: FINSEQ_6:th 19
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being set
      st b1 ^ b2 just_once_values b3
   holds b3 in (proj2 b1) \+\ proj2 b2;

:: FINSEQ_6:th 20
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being set
      st b1 ^ b2 just_once_values b3 & b3 in proj2 b1
   holds b1 just_once_values b3;

:: FINSEQ_6:th 21
theorem
for b1 being Relation-like Function-like FinSequence-like set
      st proj2 b1 is not trivial
   holds b1 is not trivial;

:: FINSEQ_6:th 22
theorem
for b1 being set holds
   b1 .. <*b1*> = 1;

:: FINSEQ_6:th 23
theorem
for b1, b2 being set holds
b1 .. <*b1,b2*> = 1;

:: FINSEQ_6:th 24
theorem
for b1, b2 being set
      st b1 <> b2
   holds b2 .. <*b1,b2*> = 2;

:: FINSEQ_6:th 25
theorem
for b1, b2, b3 being set holds
b1 .. <*b1,b2,b3*> = 1;

:: FINSEQ_6:th 26
theorem
for b1, b2, b3 being set
      st b1 <> b2
   holds b2 .. <*b1,b2,b3*> = 2;

:: FINSEQ_6:th 27
theorem
for b1, b2, b3 being set
      st b1 <> b2 & b3 <> b2
   holds b2 .. <*b1,b3,b2*> = 3;

:: FINSEQ_6:th 28
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set holds
   Rev (<*b1*> ^ b2) = (Rev b2) ^ <*b1*>;

:: FINSEQ_6:th 29
theorem
for b1 being Relation-like Function-like FinSequence-like set holds
   Rev Rev b1 = b1;

:: FINSEQ_6:th 30
theorem
for b1, b2 being set
      st b1 <> b2
   holds <*b1,b2*> -| b2 = <*b1*>;

:: FINSEQ_6:th 31
theorem
for b1, b2, b3 being set
      st b1 <> b2
   holds <*b1,b2,b3*> -| b2 = <*b1*>;

:: FINSEQ_6:th 32
theorem
for b1, b2, b3 being set
      st b1 <> b2 & b3 <> b2
   holds <*b1,b3,b2*> -| b2 = <*b1,b3*>;

:: FINSEQ_6:th 33
theorem
for b1, b2 being set holds
<*b1,b2*> |-- b1 = <*b2*>;

:: FINSEQ_6:th 34
theorem
for b1, b2, b3 being set
      st b1 <> b2
   holds <*b1,b2,b3*> |-- b2 = <*b3*>;

:: FINSEQ_6:th 35
theorem
for b1, b2, b3 being set holds
<*b1,b2,b3*> |-- b1 = <*b2,b3*>;

:: FINSEQ_6:th 36
theorem
for b1 being set holds
   <*b1*> |-- b1 = {} & <*b1*> -| b1 = {};

:: FINSEQ_6:th 37
theorem
for b1, b2 being set
      st b1 <> b2
   holds <*b1,b2*> |-- b2 = {};

:: FINSEQ_6:th 38
theorem
for b1, b2, b3 being set
      st b1 <> b2 & b3 <> b2
   holds <*b1,b3,b2*> |-- b2 = {};

:: FINSEQ_6:th 39
theorem
for b1, b2 being set
for b3 being Relation-like Function-like FinSequence-like set
      st b1 in proj2 b3 & b2 in proj2 (b3 -| b1)
   holds (b3 -| b1) -| b2 = b3 -| b2;

:: FINSEQ_6:th 40
theorem
for b1 being set
for b2, b3 being Relation-like Function-like FinSequence-like set
      st not b1 in proj2 b2
   holds b1 .. ((b2 ^ <*b1*>) ^ b3) = (len b2) + 1;

:: FINSEQ_6:th 41
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set
      st b2 just_once_values b1
   holds (b1 .. b2) + (b1 .. Rev b2) = (len b2) + 1;

:: FINSEQ_6:th 42
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set
      st b2 just_once_values b1
   holds Rev (b2 -| b1) = (Rev b2) |-- b1;

:: FINSEQ_6:th 43
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set
      st b2 just_once_values b1
   holds Rev b2 just_once_values b1;

:: FINSEQ_6:th 44
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b2 in proj2 b3
   holds b3 -: b2 = (b3 -| b2) ^ <*b2*>;

:: FINSEQ_6:th 45
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b2 in proj2 b3
   holds b3 :- b2 = <*b2*> ^ (b3 |-- b2);

:: FINSEQ_6:th 46
theorem
for b1 being non empty set
for b2 being FinSequence of b1
      st b2 <> {}
   holds b2 /. 1 in proj2 b2;

:: FINSEQ_6:th 47
theorem
for b1 being non empty set
for b2 being FinSequence of b1
      st b2 <> {}
   holds (b2 /. 1) .. b2 = 1;

:: FINSEQ_6:th 48
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b3 <> {} & b3 /. 1 = b2
   holds b3 -: b2 = <*b2*> & b3 :- b2 = b3;

:: FINSEQ_6:th 49
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
   (<*b2*> ^ b3) /^ 1 = b3;

:: FINSEQ_6:th 50
theorem
for b1 being non empty set
for b2, b3 being Element of b1 holds
<*b2,b3*> /^ 1 = <*b3*>;

:: FINSEQ_6:th 51
theorem
for b1 being non empty set
for b2, b3, b4 being Element of b1 holds
<*b2,b3,b4*> /^ 1 = <*b3,b4*>;

:: FINSEQ_6:th 52
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being FinSequence of b2
      st b1 in dom b3 &
         (for b4 being Element of NAT
               st 1 <= b4 & b4 < b1
            holds b3 /. b4 <> b3 /. b1)
   holds (b3 /. b1) .. b3 = b1;

:: FINSEQ_6:th 53
theorem
for b1 being non empty set
for b2, b3 being Element of b1
      st b2 <> b3
   holds <*b2,b3*> -: b3 = <*b2,b3*>;

:: FINSEQ_6:th 54
theorem
for b1 being non empty set
for b2, b3, b4 being Element of b1
      st b2 <> b3
   holds <*b2,b3,b4*> -: b3 = <*b2,b3*>;

:: FINSEQ_6:th 55
theorem
for b1 being non empty set
for b2, b3, b4 being Element of b1
      st b2 <> b3 & b4 <> b3
   holds <*b2,b4,b3*> -: b3 = <*b2,b4,b3*>;

:: FINSEQ_6:th 56
theorem
for b1 being non empty set
for b2 being Element of b1 holds
   <*b2*> :- b2 = <*b2*> &
    <*b2*> -: b2 = <*b2*>;

:: FINSEQ_6:th 57
theorem
for b1 being non empty set
for b2, b3 being Element of b1
      st b2 <> b3
   holds <*b2,b3*> :- b3 = <*b3*>;

:: FINSEQ_6:th 58
theorem
for b1 being non empty set
for b2, b3, b4 being Element of b1
      st b2 <> b3
   holds <*b2,b3,b4*> :- b3 = <*b3,b4*>;

:: FINSEQ_6:th 59
theorem
for b1 being non empty set
for b2, b3, b4 being Element of b1
      st b2 <> b3 & b4 <> b3
   holds <*b2,b4,b3*> :- b3 = <*b3*>;

:: FINSEQ_6:th 61
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
      st b3 in proj2 b4 & b1 < b3 .. b4
   holds b3 .. b4 = b1 + (b3 .. (b4 /^ b1));

:: FINSEQ_6:th 62
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
      st b3 in proj2 b4 & b1 < b3 .. b4
   holds b3 in proj2 (b4 /^ b1);

:: FINSEQ_6:th 63
theorem
for b1, b2 being Element of NAT
for b3 being non empty set
for b4 being FinSequence of b3
      st b1 < b2 & b2 in dom b4
   holds b4 /. b2 in proj2 (b4 /^ b1);

:: FINSEQ_6:th 64
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
      st b3 in proj2 b4 & b1 < b3 .. b4
   holds (b4 /^ b1) -: b3 = (b4 -: b3) /^ b1;

:: FINSEQ_6:th 65
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b2 in proj2 b3 & b2 .. b3 <> 1
   holds (b3 /^ 1) -: b2 = (b3 -: b2) /^ 1;

:: FINSEQ_6:th 66
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
   b2 in proj2 (b3 :- b2);

:: FINSEQ_6:th 67
theorem
for b1 being set
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
      st b1 in proj2 b4 & b3 in proj2 b4 & b3 .. b4 <= b1 .. b4
   holds b1 in proj2 (b4 :- b3);

:: FINSEQ_6:th 68
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
      st b3 in proj2 b4 & b1 <= len b4 & b3 .. b4 <= b1
   holds b4 /. b1 in proj2 (b4 :- b3);

:: FINSEQ_6:th 69
theorem
for b1 being non empty set
for b2 being Element of b1
for b3, b4 being FinSequence of b1
      st b2 in proj2 b3
   holds (b3 ^ b4) :- b2 = (b3 :- b2) ^ b4;

:: FINSEQ_6:th 70
theorem
for b1 being non empty set
for b2 being Element of b1
for b3, b4 being FinSequence of b1
      st b2 in (proj2 b3) \ proj2 b4
   holds (b4 ^ b3) :- b2 = b3 :- b2;

:: FINSEQ_6:th 71
theorem
for b1 being non empty set
for b2 being Element of b1
for b3, b4 being FinSequence of b1
      st b2 in proj2 b3
   holds (b3 ^ b4) -: b2 = b3 -: b2;

:: FINSEQ_6:th 72
theorem
for b1 being non empty set
for b2 being Element of b1
for b3, b4 being FinSequence of b1
      st b2 in (proj2 b3) \ proj2 b4
   holds (b4 ^ b3) -: b2 = b4 ^ (b3 -: b2);

:: FINSEQ_6:th 73
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
   (b3 :- b2) :- b2 = b3 :- b2;

:: FINSEQ_6:th 74
theorem
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being FinSequence of b1
      st b2 in proj2 b4 & b3 in (proj2 b4) \ proj2 (b4 -: b2)
   holds b4 |-- b3 = (b4 |-- b2) |-- b3;

:: FINSEQ_6:th 75
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b2 in proj2 b3
   holds proj2 b3 = (proj2 (b3 -: b2)) \/ proj2 (b3 :- b2);

:: FINSEQ_6:th 76
theorem
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being FinSequence of b1
      st b2 in proj2 b4 & b3 in (proj2 b4) \ proj2 (b4 -: b2)
   holds (b4 :- b2) :- b3 = b4 :- b3;

:: FINSEQ_6:th 77
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b2 in proj2 b3
   holds b2 .. (b3 -: b2) = b2 .. b3;

:: FINSEQ_6:th 78
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being FinSequence of b2 holds
   (b3 | b1) | b1 = b3 | b1;

:: FINSEQ_6:th 79
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b2 in proj2 b3
   holds (b3 -: b2) -: b2 = b3 -: b2;

:: FINSEQ_6:th 80
theorem
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being FinSequence of b1
      st b2 in proj2 b4 & b3 in proj2 (b4 -: b2)
   holds (b4 -: b2) -: b3 = b4 -: b3;

:: FINSEQ_6:th 81
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b2 in proj2 b3
   holds (b3 -: b2) ^ ((b3 :- b2) /^ 1) = b3;

:: FINSEQ_6:th 82
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1
      st b2 <> {}
   holds (b2 ^ b3) /^ 1 = (b2 /^ 1) ^ b3;

:: FINSEQ_6:th 83
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b2 in proj2 b3 & b2 .. b3 <> 1
   holds b2 in proj2 (b3 /^ 1);

:: FINSEQ_6:th 84
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
   b2 .. (b3 :- b2) = 1;

:: FINSEQ_6:th 86
theorem
for b1 being Element of NAT
for b2 being non empty set holds
   (<*> b2) /^ b1 = <*> b2;

:: FINSEQ_6:th 87
theorem
for b1, b2 being Element of NAT
for b3 being non empty set
for b4 being FinSequence of b3 holds
   b4 /^ (b1 + b2) = (b4 /^ b1) /^ b2;

:: FINSEQ_6:th 88
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
      st b3 in proj2 b4 & b1 < b3 .. b4
   holds (b4 /^ b1) :- b3 = b4 :- b3;

:: FINSEQ_6:th 89
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b2 in proj2 b3 & b2 .. b3 <> 1
   holds (b3 /^ 1) :- b2 = b3 :- b2;

:: FINSEQ_6:th 90
theorem
for b1, b2 being Element of NAT
for b3 being non empty set
for b4 being FinSequence of b3
      st b1 + b2 = len b4
   holds Rev (b4 /^ b2) = (Rev b4) | b1;

:: FINSEQ_6:th 91
theorem
for b1, b2 being Element of NAT
for b3 being non empty set
for b4 being FinSequence of b3
      st b1 + b2 = len b4
   holds Rev (b4 | b2) = (Rev b4) /^ b1;

:: FINSEQ_6:th 92
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b3 just_once_values b2
   holds Rev (b3 |-- b2) = (Rev b3) -| b2;

:: FINSEQ_6:th 93
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b3 just_once_values b2
   holds Rev (b3 :- b2) = (Rev b3) -: b2;

:: FINSEQ_6:th 94
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b3 just_once_values b2
   holds Rev (b3 -: b2) = (Rev b3) :- b2;

:: FINSEQ_6:attrnot 1 => FINSEQ_6:attr 1
definition
  let a1 be non empty set;
  let a2 be FinSequence of a1;
  attr a2 is circular means
    a2 /. 1 = a2 /. len a2;
end;

:: FINSEQ_6:dfs 1
definiens
  let a1 be non empty set;
  let a2 be FinSequence of a1;
To prove
     a2 is circular
it is sufficient to prove
  thus a2 /. 1 = a2 /. len a2;

:: FINSEQ_6:def 1
theorem
for b1 being non empty set
for b2 being FinSequence of b1 holds
      b2 is circular(b1)
   iff
      b2 /. 1 = b2 /. len b2;

:: FINSEQ_6:funcnot 1 => FINSEQ_6:func 1
definition
  let a1 be non empty set;
  let a2 be FinSequence of a1;
  let a3 be Element of a1;
  func Rotate(A2,A3) -> FinSequence of a1 equals
    (a2 :- a3) ^ ((a2 -: a3) /^ 1)
    if a3 in proj2 a2
    otherwise a2;
end;

:: FINSEQ_6:def 2
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3 being Element of b1 holds
   (b3 in proj2 b2 implies Rotate(b2,b3) = (b2 :- b3) ^ ((b2 -: b3) /^ 1)) &
    (b3 in proj2 b2 or Rotate(b2,b3) = b2);

:: FINSEQ_6:funcreg 4
registration
  let a1 be non empty set;
  let a2 be non empty FinSequence of a1;
  let a3 be Element of a1;
  cluster Rotate(a2,a3) -> non empty;
end;

:: FINSEQ_6:exreg 1
registration
  let a1 be non empty set;
  cluster Relation-like Function-like non empty finite FinSequence-like trivial circular FinSequence of a1;
end;

:: FINSEQ_6:exreg 2
registration
  let a1 be non empty set;
  cluster Relation-like Function-like non empty finite FinSequence-like non trivial circular FinSequence of a1;
end;

:: FINSEQ_6:th 95
theorem
for b1 being non empty set
for b2 being FinSequence of b1 holds
   Rotate(b2,b2 /. 1) = b2;

:: FINSEQ_6:funcreg 5
registration
  let a1 be non empty set;
  let a2 be Element of a1;
  let a3 be non empty circular FinSequence of a1;
  cluster Rotate(a3,a2) -> circular;
end;

:: FINSEQ_6:th 96
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b3 is circular(b1) & b2 in proj2 b3
   holds proj2 Rotate(b3,b2) = proj2 b3;

:: FINSEQ_6:th 97
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b2 in proj2 b3
   holds b2 in proj2 Rotate(b3,b2);

:: FINSEQ_6:th 98
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b2 in proj2 b3
   holds (Rotate(b3,b2)) /. 1 = b2;

:: FINSEQ_6:th 99
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
   Rotate(Rotate(b3,b2),b2) = Rotate(b3,b2);

:: FINSEQ_6:th 100
theorem
for b1 being non empty set
for b2 being Element of b1 holds
   Rotate(<*b2*>,b2) = <*b2*>;

:: FINSEQ_6:th 101
theorem
for b1 being non empty set
for b2, b3 being Element of b1 holds
Rotate(<*b2,b3*>,b2) = <*b2,b3*>;

:: FINSEQ_6:th 102
theorem
for b1 being non empty set
for b2, b3 being Element of b1 holds
Rotate(<*b2,b3*>,b3) = <*b3,b3*>;

:: FINSEQ_6:th 103
theorem
for b1 being non empty set
for b2, b3, b4 being Element of b1 holds
Rotate(<*b2,b3,b4*>,b2) = <*b2,b3,b4*>;

:: FINSEQ_6:th 104
theorem
for b1 being non empty set
for b2, b3, b4 being Element of b1
      st b2 <> b3
   holds Rotate(<*b2,b3,b4*>,b3) = <*b3,b4,b3*>;

:: FINSEQ_6:th 105
theorem
for b1 being non empty set
for b2, b3, b4 being Element of b1
      st b2 <> b3
   holds Rotate(<*b4,b2,b3*>,b3) = <*b3,b2,b3*>;

:: FINSEQ_6:th 106
theorem
for b1 being non empty set
for b2 being non trivial circular FinSequence of b1 holds
   proj2 (b2 /^ 1) = proj2 b2;

:: FINSEQ_6:th 107
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
   proj2 (b3 /^ 1) c= proj2 Rotate(b3,b2);

:: FINSEQ_6:th 108
theorem
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being FinSequence of b1
      st b2 in (proj2 b4) \ proj2 (b4 -: b3)
   holds Rotate(Rotate(b4,b3),b2) = Rotate(b4,b2);

:: FINSEQ_6:th 109
theorem
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being FinSequence of b1
      st b2 .. b4 <> 1 & b2 in (proj2 b4) \ proj2 (b4 :- b3)
   holds Rotate(Rotate(b4,b3),b2) = Rotate(b4,b2);

:: FINSEQ_6:th 110
theorem
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being FinSequence of b1
      st b2 in proj2 (b4 /^ 1) & b4 just_once_values b2
   holds Rotate(Rotate(b4,b3),b2) = Rotate(b4,b2);

:: FINSEQ_6:th 111
theorem
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being FinSequence of b1
      st b4 is circular(b1) & b4 just_once_values b2
   holds Rotate(Rotate(b4,b3),b2) = Rotate(b4,b2);

:: FINSEQ_6:th 112
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
      st b3 is circular(b1) & b3 just_once_values b2
   holds Rev Rotate(b3,b2) = Rotate(Rev b3,b2);

:: FINSEQ_6:th 113
theorem
for b1 being non empty set
for b2 being trivial FinSequence of b1
      st b2 is not empty
   holds ex b3 being Element of b1 st
      b2 = <*b3*>;