:: FINSEQ_6 semantic presentation

registration
let c1, c2, c3 be set ;
cluster <*a1,a2,a3*> -> non trivial ;
coherence
not <*c1,c2,c3*> is trivial
proof end;
end;

registration
let c1 be non empty FinSequence;
cluster Rev a1 -> non empty ;
coherence
not Rev c1 is empty
proof end;
end;

Lemma1: for b1, b2 being set holds rng <*b1,b2*> = {b1,b2}
proof end;

Lemma2: for b1, b2, b3 being set holds rng <*b1,b2,b3*> = {b1,b2,b3}
proof end;

theorem Th1: :: FINSEQ_6:1
canceled;

theorem Th2: :: FINSEQ_6:2
canceled;

theorem Th3: :: FINSEQ_6:3
for b1 being set
for b2 being Nat holds
( b1 c= Seg b2 & 1 in b1 implies (Sgm b1) . 1 = 1 )
proof end;

theorem Th4: :: FINSEQ_6:4
for b1 being Nat
for b2 being FinSequence holds
( b1 in dom b2 & ( for b3 being Nat holds
not ( 1 <= b3 & b3 < b1 & not b2 . b3 <> b2 . b1 ) ) implies (b2 . b1) .. b2 = b1 )
proof end;

theorem Th5: :: FINSEQ_6:5
for b1, b2 being set holds <*b1,b2*> | (Seg 1) = <*b1*>
proof end;

theorem Th6: :: FINSEQ_6:6
for b1, b2, b3 being set holds <*b1,b2,b3*> | (Seg 1) = <*b1*>
proof end;

theorem Th7: :: FINSEQ_6:7
for b1, b2, b3 being set holds <*b1,b2,b3*> | (Seg 2) = <*b1,b2*>
proof end;

theorem Th8: :: FINSEQ_6:8
for b1, b2 being FinSequence
for b3 being set holds
( b3 in rng b1 implies b3 .. (b1 ^ b2) = b3 .. b1 )
proof end;

theorem Th9: :: FINSEQ_6:9
for b1, b2 being FinSequence
for b3 being set holds
( b3 in (rng b1) \ (rng b2) implies b3 .. (b2 ^ b1) = (len b2) + (b3 .. b1) )
proof end;

theorem Th10: :: FINSEQ_6:10
for b1, b2 being FinSequence
for b3 being set holds
( b3 in rng b1 implies (b1 ^ b2) |-- b3 = (b1 |-- b3) ^ b2 )
proof end;

theorem Th11: :: FINSEQ_6:11
for b1, b2 being FinSequence
for b3 being set holds
( b3 in (rng b1) \ (rng b2) implies (b2 ^ b1) |-- b3 = b1 |-- b3 )
proof end;

theorem Th12: :: FINSEQ_6:12
for b1, b2 being FinSequence holds b1 c= b1 ^ b2
proof end;

theorem Th13: :: FINSEQ_6:13
for b1, b2 being FinSequence
for b3 being set holds
( b3 c= dom b1 implies (b1 ^ b2) | b3 = b1 | b3 )
proof end;

theorem Th14: :: FINSEQ_6:14
for b1, b2 being FinSequence
for b3 being set holds
( b3 in rng b1 implies (b1 ^ b2) -| b3 = b1 -| b3 )
proof end;

registration
let c1 be FinSequence;
let c2 be natural number ;
cluster a1 | (Seg a2) -> FinSequence-like ;
coherence
c1 | (Seg c2) is FinSequence-like
by FINSEQ_1:19;
end;

theorem Th15: :: FINSEQ_6:15
for b1, b2, b3 being FinSequence holds
( b1 c= b2 implies b3 ^ b1 c= b3 ^ b2 )
proof end;

theorem Th16: :: FINSEQ_6:16
for b1, b2 being FinSequence
for b3 being Nat holds (b1 ^ b2) | (Seg ((len b1) + b3)) = b1 ^ (b2 | (Seg b3))
proof end;

theorem Th17: :: FINSEQ_6:17
for b1, b2 being FinSequence
for b3 being set holds
( b3 in (rng b1) \ (rng b2) implies (b2 ^ b1) -| b3 = b2 ^ (b1 -| b3) )
proof end;

theorem Th18: :: FINSEQ_6:18
canceled;

theorem Th19: :: FINSEQ_6:19
for b1, b2 being FinSequence
for b3 being set holds
( b1 ^ b2 just_once_values b3 implies b3 in (rng b1) \+\ (rng b2) )
proof end;

theorem Th20: :: FINSEQ_6:20
for b1, b2 being FinSequence
for b3 being set holds
( b1 ^ b2 just_once_values b3 & b3 in rng b1 implies b1 just_once_values b3 )
proof end;

theorem Th21: :: FINSEQ_6:21
for b1 being FinSequence holds
not ( not rng b1 is trivial & b1 is trivial )
proof end;

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

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

theorem Th24: :: FINSEQ_6:24
for b1, b2 being set holds
( b1 <> b2 implies b2 .. <*b1,b2*> = 2 )
proof end;

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

theorem Th26: :: FINSEQ_6:26
for b1, b2, b3 being set holds
( b1 <> b2 implies b2 .. <*b1,b2,b3*> = 2 )
proof end;

theorem Th27: :: FINSEQ_6:27
for b1, b2, b3 being set holds
( b1 <> b2 & b3 <> b2 implies b2 .. <*b1,b3,b2*> = 3 )
proof end;

theorem Th28: :: FINSEQ_6:28
for b1 being set
for b2 being FinSequence holds Rev (<*b1*> ^ b2) = (Rev b2) ^ <*b1*>
proof end;

theorem Th29: :: FINSEQ_6:29
for b1 being FinSequence holds Rev (Rev b1) = b1
proof end;

theorem Th30: :: FINSEQ_6:30
for b1, b2 being set holds
( b1 <> b2 implies <*b1,b2*> -| b2 = <*b1*> )
proof end;

theorem Th31: :: FINSEQ_6:31
for b1, b2, b3 being set holds
( b1 <> b2 implies <*b1,b2,b3*> -| b2 = <*b1*> )
proof end;

theorem Th32: :: FINSEQ_6:32
for b1, b2, b3 being set holds
( b1 <> b2 & b3 <> b2 implies <*b1,b3,b2*> -| b2 = <*b1,b3*> )
proof end;

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

theorem Th34: :: FINSEQ_6:34
for b1, b2, b3 being set holds
( b1 <> b2 implies <*b1,b2,b3*> |-- b2 = <*b3*> )
proof end;

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

theorem Th36: :: FINSEQ_6:36
for b1 being set holds
( <*b1*> |-- b1 = {} & <*b1*> -| b1 = {} )
proof end;

theorem Th37: :: FINSEQ_6:37
for b1, b2 being set holds
( b1 <> b2 implies <*b1,b2*> |-- b2 = {} )
proof end;

theorem Th38: :: FINSEQ_6:38
for b1, b2, b3 being set holds
( b1 <> b2 & b3 <> b2 implies <*b1,b3,b2*> |-- b2 = {} )
proof end;

theorem Th39: :: FINSEQ_6:39
for b1, b2 being set
for b3 being FinSequence holds
( b1 in rng b3 & b2 in rng (b3 -| b1) implies (b3 -| b1) -| b2 = b3 -| b2 )
proof end;

theorem Th40: :: FINSEQ_6:40
for b1 being set
for b2, b3 being FinSequence holds
( not b1 in rng b2 implies b1 .. ((b2 ^ <*b1*>) ^ b3) = (len b2) + 1 )
proof end;

theorem Th41: :: FINSEQ_6:41
for b1 being set
for b2 being FinSequence holds
( b2 just_once_values b1 implies (b1 .. b2) + (b1 .. (Rev b2)) = (len b2) + 1 )
proof end;

theorem Th42: :: FINSEQ_6:42
for b1 being set
for b2 being FinSequence holds
( b2 just_once_values b1 implies Rev (b2 -| b1) = (Rev b2) |-- b1 )
proof end;

theorem Th43: :: FINSEQ_6:43
for b1 being set
for b2 being FinSequence holds
( b2 just_once_values b1 implies Rev b2 just_once_values b1 )
proof end;

theorem Th44: :: FINSEQ_6:44
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
( b2 in rng b3 implies b3 -: b2 = (b3 -| b2) ^ <*b2*> )
proof end;

theorem Th45: :: FINSEQ_6:45
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
( b2 in rng b3 implies b3 :- b2 = <*b2*> ^ (b3 |-- b2) )
proof end;

theorem Th46: :: FINSEQ_6:46
for b1 being non empty set
for b2 being FinSequence of b1 holds
( b2 <> {} implies b2 /. 1 in rng b2 )
proof end;

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

theorem Th48: :: FINSEQ_6:48
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
( b3 <> {} & b3 /. 1 = b2 implies ( b3 -: b2 = <*b2*> & b3 :- b2 = b3 ) )
proof end;

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

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

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

theorem Th52: :: FINSEQ_6:52
for b1 being Nat
for b2 being non empty set
for b3 being FinSequence of b2 holds
( b1 in dom b3 & ( for b4 being Nat holds
not ( 1 <= b4 & b4 < b1 & not b3 /. b4 <> b3 /. b1 ) ) implies (b3 /. b1) .. b3 = b1 )
proof end;

theorem Th53: :: FINSEQ_6:53
for b1 being non empty set
for b2, b3 being Element of b1 holds
( b2 <> b3 implies <*b2,b3*> -: b3 = <*b2,b3*> )
proof end;

theorem Th54: :: FINSEQ_6:54
for b1 being non empty set
for b2, b3, b4 being Element of b1 holds
( b2 <> b3 implies <*b2,b3,b4*> -: b3 = <*b2,b3*> )
proof end;

theorem Th55: :: FINSEQ_6:55
for b1 being non empty set
for b2, b3, b4 being Element of b1 holds
( b2 <> b3 & b4 <> b3 implies <*b2,b4,b3*> -: b3 = <*b2,b4,b3*> )
proof end;

theorem Th56: :: FINSEQ_6:56
for b1 being non empty set
for b2 being Element of b1 holds
( <*b2*> :- b2 = <*b2*> & <*b2*> -: b2 = <*b2*> )
proof end;

theorem Th57: :: FINSEQ_6:57
for b1 being non empty set
for b2, b3 being Element of b1 holds
( b2 <> b3 implies <*b2,b3*> :- b3 = <*b3*> )
proof end;

theorem Th58: :: FINSEQ_6:58
for b1 being non empty set
for b2, b3, b4 being Element of b1 holds
( b2 <> b3 implies <*b2,b3,b4*> :- b3 = <*b3,b4*> )
proof end;

theorem Th59: :: FINSEQ_6:59
for b1 being non empty set
for b2, b3, b4 being Element of b1 holds
( b2 <> b3 & b4 <> b3 implies <*b2,b4,b3*> :- b3 = <*b3*> )
proof end;

theorem Th60: :: FINSEQ_6:60
canceled;

theorem Th61: :: FINSEQ_6:61
for b1 being Nat
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2 holds
( b3 in rng b4 & b3 .. b4 > b1 implies b3 .. b4 = b1 + (b3 .. (b4 /^ b1)) )
proof end;

theorem Th62: :: FINSEQ_6:62
for b1 being Nat
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2 holds
( b3 in rng b4 & b3 .. b4 > b1 implies b3 in rng (b4 /^ b1) )
proof end;

theorem Th63: :: FINSEQ_6:63
for b1, b2 being Nat
for b3 being non empty set
for b4 being FinSequence of b3 holds
( b1 < b2 & b2 in dom b4 implies b4 /. b2 in rng (b4 /^ b1) )
proof end;

theorem Th64: :: FINSEQ_6:64
for b1 being Nat
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2 holds
( b3 in rng b4 & b3 .. b4 > b1 implies (b4 /^ b1) -: b3 = (b4 -: b3) /^ b1 )
proof end;

theorem Th65: :: FINSEQ_6:65
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
( b2 in rng b3 & b2 .. b3 <> 1 implies (b3 /^ 1) -: b2 = (b3 -: b2) /^ 1 )
proof end;

theorem Th66: :: FINSEQ_6:66
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds b2 in rng (b3 :- b2)
proof end;

theorem Th67: :: FINSEQ_6:67
for b1 being set
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2 holds
( b1 in rng b4 & b3 in rng b4 & b1 .. b4 >= b3 .. b4 implies b1 in rng (b4 :- b3) )
proof end;

theorem Th68: :: FINSEQ_6:68
for b1 being Nat
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2 holds
( b3 in rng b4 & b1 <= len b4 & b1 >= b3 .. b4 implies b4 /. b1 in rng (b4 :- b3) )
proof end;

theorem Th69: :: FINSEQ_6:69
for b1 being non empty set
for b2 being Element of b1
for b3, b4 being FinSequence of b1 holds
( b2 in rng b3 implies (b3 ^ b4) :- b2 = (b3 :- b2) ^ b4 )
proof end;

theorem Th70: :: FINSEQ_6:70
for b1 being non empty set
for b2 being Element of b1
for b3, b4 being FinSequence of b1 holds
( b2 in (rng b3) \ (rng b4) implies (b4 ^ b3) :- b2 = b3 :- b2 )
proof end;

theorem Th71: :: FINSEQ_6:71
for b1 being non empty set
for b2 being Element of b1
for b3, b4 being FinSequence of b1 holds
( b2 in rng b3 implies (b3 ^ b4) -: b2 = b3 -: b2 )
proof end;

theorem Th72: :: FINSEQ_6:72
for b1 being non empty set
for b2 being Element of b1
for b3, b4 being FinSequence of b1 holds
( b2 in (rng b3) \ (rng b4) implies (b4 ^ b3) -: b2 = b4 ^ (b3 -: b2) )
proof end;

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

theorem Th74: :: FINSEQ_6:74
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being FinSequence of b1 holds
( b2 in rng b4 & b3 in (rng b4) \ (rng (b4 -: b2)) implies b4 |-- b3 = (b4 |-- b2) |-- b3 )
proof end;

theorem Th75: :: FINSEQ_6:75
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
( b2 in rng b3 implies rng b3 = (rng (b3 -: b2)) \/ (rng (b3 :- b2)) )
proof end;

theorem Th76: :: FINSEQ_6:76
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being FinSequence of b1 holds
( b2 in rng b4 & b3 in (rng b4) \ (rng (b4 -: b2)) implies (b4 :- b2) :- b3 = b4 :- b3 )
proof end;

theorem Th77: :: FINSEQ_6:77
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
( b2 in rng b3 implies b2 .. (b3 -: b2) = b2 .. b3 )
proof end;

theorem Th78: :: FINSEQ_6:78
for b1 being Nat
for b2 being non empty set
for b3 being FinSequence of b2 holds (b3 | b1) | b1 = b3 | b1
proof end;

theorem Th79: :: FINSEQ_6:79
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
( b2 in rng b3 implies (b3 -: b2) -: b2 = b3 -: b2 )
proof end;

theorem Th80: :: FINSEQ_6:80
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being FinSequence of b1 holds
( b2 in rng b4 & b3 in rng (b4 -: b2) implies (b4 -: b2) -: b3 = b4 -: b3 )
proof end;

theorem Th81: :: FINSEQ_6:81
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
( b2 in rng b3 implies (b3 -: b2) ^ ((b3 :- b2) /^ 1) = b3 )
proof end;

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

theorem Th83: :: FINSEQ_6:83
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
( b2 in rng b3 & b2 .. b3 <> 1 implies b2 in rng (b3 /^ 1) )
proof end;

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

Lemma77: for b1 being Nat
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2 holds
( b3 in rng b4 & b3 .. b4 > b1 implies b1 + (b3 .. (b4 /^ b1)) = b3 .. b4 )
proof end;

theorem Th85: :: FINSEQ_6:85
canceled;

theorem Th86: :: FINSEQ_6:86
for b1 being Nat
for b2 being non empty set holds (<*> b2) /^ b1 = <*> b2
proof end;

theorem Th87: :: FINSEQ_6:87
for b1, b2 being Nat
for b3 being non empty set
for b4 being FinSequence of b3 holds b4 /^ (b1 + b2) = (b4 /^ b1) /^ b2
proof end;

theorem Th88: :: FINSEQ_6:88
for b1 being Nat
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2 holds
( b3 in rng b4 & b3 .. b4 > b1 implies (b4 /^ b1) :- b3 = b4 :- b3 )
proof end;

theorem Th89: :: FINSEQ_6:89
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
( b2 in rng b3 & b2 .. b3 <> 1 implies (b3 /^ 1) :- b2 = b3 :- b2 )
proof end;

theorem Th90: :: FINSEQ_6:90
for b1, b2 being Nat
for b3 being non empty set
for b4 being FinSequence of b3 holds
( b1 + b2 = len b4 implies Rev (b4 /^ b2) = (Rev b4) | b1 )
proof end;

theorem Th91: :: FINSEQ_6:91
for b1, b2 being Nat
for b3 being non empty set
for b4 being FinSequence of b3 holds
( b1 + b2 = len b4 implies Rev (b4 | b2) = (Rev b4) /^ b1 )
proof end;

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

theorem Th93: :: FINSEQ_6:93
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
( b3 just_once_values b2 implies Rev (b3 :- b2) = (Rev b3) -: b2 )
proof end;

theorem Th94: :: FINSEQ_6:94
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
( b3 just_once_values b2 implies Rev (b3 -: b2) = (Rev b3) :- b2 )
proof end;

definition
let c1 be non empty set ;
let c2 be FinSequence of c1;
attr a2 is circular means :Def1: :: FINSEQ_6:def 1
a2 /. 1 = a2 /. (len a2);
end;

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

definition
let c1 be non empty set ;
let c2 be FinSequence of c1;
let c3 be Element of c1;
func Rotate c2,c3 -> FinSequence of a1 equals :Def2: :: FINSEQ_6:def 2
(a2 :- a3) ^ ((a2 -: a3) /^ 1) if a3 in rng a2
otherwise a2;
correctness
coherence
( ( c3 in rng c2 implies (c2 :- c3) ^ ((c2 -: c3) /^ 1) is FinSequence of c1 ) & ( not c3 in rng c2 implies c2 is FinSequence of c1 ) )
;
consistency
for b1 being FinSequence of c1 holds
verum
;
;
end;

:: deftheorem Def2 defines Rotate FINSEQ_6:def 2 :
for b1 being non empty set
for b2 being FinSequence of b1
for b3 being Element of b1 holds
( ( b3 in rng b2 implies Rotate b2,b3 = (b2 :- b3) ^ ((b2 -: b3) /^ 1) ) & ( not b3 in rng b2 implies Rotate b2,b3 = b2 ) );

registration
let c1 be non empty set ;
let c2 be non empty FinSequence of c1;
let c3 be Element of c1;
cluster Rotate a2,a3 -> non empty ;
coherence
not Rotate c2,c3 is empty
proof end;
end;

registration
let c1 be non empty set ;
cluster non empty trivial circular FinSequence of a1;
existence
ex b1 being FinSequence of c1 st
( b1 is circular & not b1 is empty & b1 is trivial )
proof end;
cluster non empty non trivial circular FinSequence of a1;
existence
ex b1 being FinSequence of c1 st
( b1 is circular & not b1 is empty & not b1 is trivial )
proof end;
end;

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

registration
let c1 be non empty set ;
let c2 be Element of c1;
let c3 be non empty circular FinSequence of c1;
cluster Rotate a3,a2 -> non empty circular ;
coherence
Rotate c3,c2 is circular
proof end;
end;

theorem Th96: :: FINSEQ_6:96
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
( b3 is circular & b2 in rng b3 implies rng (Rotate b3,b2) = rng b3 )
proof end;

theorem Th97: :: FINSEQ_6:97
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
( b2 in rng b3 implies b2 in rng (Rotate b3,b2) )
proof end;

theorem Th98: :: FINSEQ_6:98
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
( b2 in rng b3 implies (Rotate b3,b2) /. 1 = b2 )
proof end;

theorem Th99: :: FINSEQ_6:99
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
proof end;

theorem Th100: :: FINSEQ_6:100
for b1 being non empty set
for b2 being Element of b1 holds Rotate <*b2*>,b2 = <*b2*>
proof end;

theorem Th101: :: FINSEQ_6:101
for b1 being non empty set
for b2, b3 being Element of b1 holds Rotate <*b2,b3*>,b2 = <*b2,b3*>
proof end;

theorem Th102: :: FINSEQ_6:102
for b1 being non empty set
for b2, b3 being Element of b1 holds Rotate <*b2,b3*>,b3 = <*b3,b3*>
proof end;

theorem Th103: :: FINSEQ_6:103
for b1 being non empty set
for b2, b3, b4 being Element of b1 holds Rotate <*b2,b3,b4*>,b2 = <*b2,b3,b4*>
proof end;

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

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

theorem Th106: :: FINSEQ_6:106
for b1 being non empty set
for b2 being non trivial circular FinSequence of b1 holds rng (b2 /^ 1) = rng b2
proof end;

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

theorem Th108: :: FINSEQ_6:108
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being FinSequence of b1 holds
( b2 in (rng b4) \ (rng (b4 -: b3)) implies Rotate (Rotate b4,b3),b2 = Rotate b4,b2 )
proof end;

theorem Th109: :: FINSEQ_6:109
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being FinSequence of b1 holds
( b2 .. b4 <> 1 & b2 in (rng b4) \ (rng (b4 :- b3)) implies Rotate (Rotate b4,b3),b2 = Rotate b4,b2 )
proof end;

theorem Th110: :: FINSEQ_6:110
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being FinSequence of b1 holds
( b2 in rng (b4 /^ 1) & b4 just_once_values b2 implies Rotate (Rotate b4,b3),b2 = Rotate b4,b2 )
proof end;

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

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