Article REVROT_1, MML version 4.99.1005

:: REVROT_1:attrnot 1 => REVROT_1:attr 1
definition
  let a1 be non empty set;
  let a2 be FinSequence of a1;
  redefine attr a2 is constant means
    for b1, b2 being Element of NAT
          st b1 in dom a2 & b2 in dom a2
       holds a2 /. b1 = a2 /. b2;
end;

:: REVROT_1:dfs 1
definiens
  let a1 be non empty set;
  let a2 be FinSequence of a1;
To prove
     a1 is constant
it is sufficient to prove
  thus for b1, b2 being Element of NAT
          st b1 in dom a2 & b2 in dom a2
       holds a2 /. b1 = a2 /. b2;

:: REVROT_1:def 1
theorem
for b1 being non empty set
for b2 being FinSequence of b1 holds
      b2 is constant
   iff
      for b3, b4 being Element of NAT
            st b3 in dom b2 & b4 in dom b2
         holds b2 /. b3 = b2 /. b4;

:: REVROT_1:th 1
theorem
for b1 being non empty set
for b2 being FinSequence of b1
      st b2 just_once_values b2 /. len b2
   holds (b2 /. len b2) .. b2 = len b2;

:: REVROT_1:th 2
theorem
for b1 being non empty set
for b2 being FinSequence of b1 holds
   b2 /^ len b2 = {};

:: REVROT_1:th 3
theorem
for b1 being non empty set
for b2 being non empty FinSequence of b1 holds
   b2 /. len b2 in proj2 b2;

:: REVROT_1:prednot 1 => REVROT_1:pred 1
definition
  let a1 be non empty set;
  let a2 be FinSequence of a1;
  let a3 be set;
  redefine pred A2 just_once_values A3 means
    ex b1 being set st
       b1 in dom a2 &
        a3 = a2 /. b1 &
        (for b2 being set
              st b2 in dom a2 & b2 <> b1
           holds a2 /. b2 <> a3);
end;

:: REVROT_1:dfs 2
definiens
  let a1 be non empty set;
  let a2 be FinSequence of a1;
  let a3 be set;
To prove
     a2 just_once_values a3
it is sufficient to prove
  thus ex b1 being set st
       b1 in dom a2 &
        a3 = a2 /. b1 &
        (for b2 being set
              st b2 in dom a2 & b2 <> b1
           holds a2 /. b2 <> a3);

:: REVROT_1:def 2
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3 being set holds
      b2 just_once_values b3
   iff
      ex b4 being set st
         b4 in dom b2 &
          b3 = b2 /. b4 &
          (for b5 being set
                st b5 in dom b2 & b5 <> b4
             holds b2 /. b5 <> b3);

:: REVROT_1:th 4
theorem
for b1 being non empty set
for b2 being FinSequence of b1
      st b2 just_once_values b2 /. len b2
   holds b2 -: (b2 /. len b2) = b2;

:: REVROT_1:th 5
theorem
for b1 being non empty set
for b2 being FinSequence of b1
      st b2 just_once_values b2 /. len b2
   holds b2 :- (b2 /. len b2) = <*b2 /. len b2*>;

:: REVROT_1:th 6
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
   1 <= len (b3 :- b2);

:: REVROT_1:th 7
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 len (b3 :- b2) <= len b3;

:: REVROT_1:th 8
theorem
for b1 being non empty set
for b2 being non empty circular FinSequence of b1 holds
   Rev b2 is circular(b1);

:: REVROT_1:th 9
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 & 1 <= b1 & b1 <= len (b4 :- b3)
   holds (Rotate(b4,b3)) /. b1 = b4 /. ((b1 -' 1) + (b3 .. b4));

:: REVROT_1:th 10
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 & b3 .. b4 <= b1 & b1 <= len b4
   holds b4 /. b1 = (Rotate(b4,b3)) /. ((b1 + 1) -' (b3 .. b4));

:: REVROT_1:th 11
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)) /. len (b3 :- b2) = b3 /. len b3;

:: REVROT_1:th 12
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 & len (b4 :- b3) < b1 & b1 <= len b4
   holds (Rotate(b4,b3)) /. b1 = b4 /. ((b1 + (b3 .. b4)) -' len b4);

:: REVROT_1:th 13
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 & 1 < b1 & b1 <= b3 .. b4
   holds b4 /. b1 = (Rotate(b4,b3)) /. ((b1 + len b4) -' (b3 .. b4));

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

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

:: REVROT_1:th 16
theorem
for b1 being non empty set
for b2 being circular FinSequence of b1
for b3 being Element of b1
      st for b4 being Element of NAT
              st 1 < b4 & b4 < len b2
           holds b2 /. b4 <> b2 /. 1
   holds Rotate(Rotate(b2,b3),b2 /. 1) = b2;

:: REVROT_1:th 17
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being circular FinSequence of b2
      st b3 in proj2 b4 & len (b4 :- b3) <= b1 & b1 <= len b4
   holds (Rotate(b4,b3)) /. b1 = b4 /. ((b1 + (b3 .. b4)) -' len b4);

:: REVROT_1:th 18
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being circular FinSequence of b2
      st b3 in proj2 b4 & 1 <= b1 & b1 <= b3 .. b4
   holds b4 /. b1 = (Rotate(b4,b3)) /. ((b1 + len b4) -' (b3 .. b4));

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

:: REVROT_1:funcreg 1
registration
  let a1 be non trivial set;
  let a2 be Element of a1;
  let a3 be non constant circular FinSequence of a1;
  cluster Rotate(a3,a2) -> non constant;
end;

:: REVROT_1:th 19
theorem
for b1 being non empty Element of NAT holds
   0.REAL b1 <> 1.REAL b1;

:: REVROT_1:funcreg 2
registration
  let a1 be non empty Element of NAT;
  cluster TOP-REAL a1 -> non trivial strict TopSpace-like;
end;

:: REVROT_1:th 20
theorem
for b1, b2 being FinSequence of the carrier of TOP-REAL 2
      st proj2 b1 c= proj2 b2
   holds proj2 X_axis b1 c= proj2 X_axis b2;

:: REVROT_1:th 21
theorem
for b1, b2 being FinSequence of the carrier of TOP-REAL 2
      st proj2 b1 = proj2 b2
   holds proj2 X_axis b1 = proj2 X_axis b2;

:: REVROT_1:th 22
theorem
for b1, b2 being FinSequence of the carrier of TOP-REAL 2
      st proj2 b1 c= proj2 b2
   holds proj2 Y_axis b1 c= proj2 Y_axis b2;

:: REVROT_1:th 23
theorem
for b1, b2 being FinSequence of the carrier of TOP-REAL 2
      st proj2 b1 = proj2 b2
   holds proj2 Y_axis b1 = proj2 Y_axis b2;

:: REVROT_1:funcreg 3
registration
  let a1 be Element of the carrier of TOP-REAL 2;
  let a2 be circular special FinSequence of the carrier of TOP-REAL 2;
  cluster Rotate(a2,a1) -> special;
end;

:: REVROT_1:th 24
theorem
for b1 being Element of NAT
for b2 being Element of the carrier of TOP-REAL 2
for b3 being FinSequence of the carrier of TOP-REAL 2
      st b2 in proj2 b3 & 1 <= b1 & b1 < len (b3 :- b2)
   holds LSeg(Rotate(b3,b2),b1) = LSeg(b3,(b1 -' 1) + (b2 .. b3));

:: REVROT_1:th 25
theorem
for b1 being Element of NAT
for b2 being Element of the carrier of TOP-REAL 2
for b3 being FinSequence of the carrier of TOP-REAL 2
      st b2 in proj2 b3 & b2 .. b3 <= b1 & b1 < len b3
   holds LSeg(b3,b1) = LSeg(Rotate(b3,b2),(b1 -' (b2 .. b3)) + 1);

:: REVROT_1:th 26
theorem
for b1 being Element of the carrier of TOP-REAL 2
for b2 being circular FinSequence of the carrier of TOP-REAL 2 holds
   Incr X_axis b2 = Incr X_axis Rotate(b2,b1);

:: REVROT_1:th 27
theorem
for b1 being Element of the carrier of TOP-REAL 2
for b2 being circular FinSequence of the carrier of TOP-REAL 2 holds
   Incr Y_axis b2 = Incr Y_axis Rotate(b2,b1);

:: REVROT_1:th 28
theorem
for b1 being Element of the carrier of TOP-REAL 2
for b2 being non empty circular FinSequence of the carrier of TOP-REAL 2 holds
   GoB Rotate(b2,b1) = GoB b2;

:: REVROT_1:th 29
theorem
for b1 being Element of the carrier of TOP-REAL 2
for b2 being non constant non empty circular special unfolded s.c.c. standard FinSequence of the carrier of TOP-REAL 2 holds
   Rev Rotate(b2,b1) = Rotate(Rev b2,b1);

:: REVROT_1:th 30
theorem
for b1 being circular s.c.c. FinSequence of the carrier of TOP-REAL 2
      st 4 < len b1
   holds (LSeg(b1,(len b1) -' 1)) /\ LSeg(b1,1) = {b1 /. 1};

:: REVROT_1:th 31
theorem
for b1 being Element of NAT
for b2 being Element of the carrier of TOP-REAL 2
for b3 being circular FinSequence of the carrier of TOP-REAL 2
      st b2 in proj2 b3 & len (b3 :- b2) <= b1 & b1 < len b3
   holds LSeg(Rotate(b3,b2),b1) = LSeg(b3,(b1 + (b2 .. b3)) -' len b3);

:: REVROT_1:funcreg 4
registration
  let a1 be Element of the carrier of TOP-REAL 2;
  let a2 be circular s.c.c. FinSequence of the carrier of TOP-REAL 2;
  cluster Rotate(a2,a1) -> s.c.c.;
end;

:: REVROT_1:funcreg 5
registration
  let a1 be Element of the carrier of TOP-REAL 2;
  let a2 be non constant non empty circular special unfolded s.c.c. standard FinSequence of the carrier of TOP-REAL 2;
  cluster Rotate(a2,a1) -> unfolded;
end;

:: REVROT_1:th 32
theorem
for b1 being Element of NAT
for b2 being Element of the carrier of TOP-REAL 2
for b3 being circular FinSequence of the carrier of TOP-REAL 2
      st b2 in proj2 b3 & 1 <= b1 & b1 < b2 .. b3
   holds LSeg(b3,b1) = LSeg(Rotate(b3,b2),(b1 + len b3) -' (b2 .. b3));

:: REVROT_1:th 33
theorem
for b1 being Element of the carrier of TOP-REAL 2
for b2 being circular FinSequence of the carrier of TOP-REAL 2 holds
   L~ Rotate(b2,b1) = L~ b2;

:: REVROT_1:th 34
theorem
for b1 being Element of the carrier of TOP-REAL 2
for b2 being circular FinSequence of the carrier of TOP-REAL 2
for b3 being non empty-yielding tabular X_equal-in-line Y_equal-in-column Y_increasing-in-line X_increasing-in-column FinSequence of (the carrier of TOP-REAL 2) * holds
      b2 is_sequence_on b3
   iff
      Rotate(b2,b1) is_sequence_on b3;

:: REVROT_1:funcreg 6
registration
  let a1 be Element of the carrier of TOP-REAL 2;
  let a2 be non empty circular standard FinSequence of the carrier of TOP-REAL 2;
  cluster Rotate(a2,a1) -> standard;
end;

:: REVROT_1:th 35
theorem
for b1 being non constant non empty circular special unfolded s.c.c. standard FinSequence of the carrier of TOP-REAL 2
for b2 being Element of the carrier of TOP-REAL 2
for b3 being Element of NAT
      st b2 in proj2 b1 & 1 <= b3 & b3 < b2 .. b1
   holds left_cell(b1,b3) = left_cell(Rotate(b1,b2),(b3 + len b1) -' (b2 .. b1));

:: REVROT_1:th 36
theorem
for b1 being Element of the carrier of TOP-REAL 2
for b2 being non constant non empty circular special unfolded s.c.c. standard FinSequence of the carrier of TOP-REAL 2 holds
   LeftComp Rotate(b2,b1) = LeftComp b2;

:: REVROT_1:th 37
theorem
for b1 being Element of the carrier of TOP-REAL 2
for b2 being non constant non empty circular special unfolded s.c.c. standard FinSequence of the carrier of TOP-REAL 2 holds
   RightComp Rotate(b2,b1) = RightComp b2;

:: REVROT_1:funcreg 7
registration
  let a1 be Element of the carrier of TOP-REAL 2;
  let a2 be non constant non empty circular special unfolded s.c.c. standard clockwise_oriented FinSequence of the carrier of TOP-REAL 2;
  cluster Rotate(a2,a1) -> clockwise_oriented;
end;

:: REVROT_1:th 38
theorem
for b1 being non constant non empty circular special unfolded s.c.c. standard FinSequence of the carrier of TOP-REAL 2
      st b1 is not clockwise_oriented
   holds Rev b1 is clockwise_oriented;