Article FLANG_1, MML version 4.99.1005

:: FLANG_1:funcnot 1 => FLANG_1:func 1
definition
  let a1 be set;
  let a2, a3 be Element of a1 ^omega;
  redefine func a2 ^ a3 -> Element of a1 ^omega;
end;

:: FLANG_1:funcnot 2 => FLANG_1:func 2
definition
  let a1 be set;
  redefine func <%> a1 -> Element of a1 ^omega;
end;

:: FLANG_1:funcnot 3 => FLANG_1:func 3
definition
  let a1 be non empty set;
  let a2 be Element of a1;
  redefine func <%a2%> -> Element of a1 ^omega;
end;

:: FLANG_1:funcnot 4 => FLANG_1:func 4
definition
  let a1 be set;
  let a2 be Element of a1 ^omega;
  redefine func {a2} -> Element of bool (a1 ^omega);
end;

:: FLANG_1:funcnot 5 => FLANG_1:func 5
definition
  let a1 be set;
  let a2 be Function-like quasi_total Relation of NAT,bool a1;
  let a3 be natural set;
  redefine func a2 . a3 -> Element of bool a1;
end;

:: FLANG_1:th 1
theorem
for b1, b2, b3 being natural set
      st (b1 <= b2 implies b2 < b3)
   holds b2 < b1 + b3;

:: FLANG_1:th 2
theorem
for b1, b2, b3 being natural set
      st b1 + b2 <= b3 + 1 & 0 < b2
   holds b1 <= b3;

:: FLANG_1:th 3
theorem
for b1, b2 being natural set holds
   b1 + b2 = 1
iff
   (b1 = 1 & b2 = 0 or b1 = 0 & b2 = 1);

:: FLANG_1:th 4
theorem
for b1, b2 being set
for b3, b4 being Element of b2 ^omega holds
   b3 ^ b4 = <%b1%>
iff
   (b3 = <%> b2 & b4 = <%b1%> or b4 = <%> b2 & b3 = <%b1%>);

:: FLANG_1:th 5
theorem
for b1 being set
for b2 being Element of b1 ^omega
for b3, b4 being Relation-like Function-like T-Sequence-like finite set
      st b2 = b3 ^ b4
   holds b3 is Element of b1 ^omega & b4 is Element of b1 ^omega;

:: FLANG_1:th 6
theorem
for b1, b2 being set
      st <%b1%> is Element of b2 ^omega
   holds b1 in b2;

:: FLANG_1:th 7
theorem
for b1 being set
for b2 being Element of b1 ^omega
for b3 being natural set
      st len b2 = b3 + 1
   holds ex b4 being Element of b1 ^omega st
      ex b5 being Element of b1 st
         len b4 = b3 & b2 = b4 ^ <%b5%>;

:: FLANG_1:th 8
theorem
for b1 being Relation-like Function-like T-Sequence-like finite set
      st b1 <> {}
   holds ex b2 being Relation-like Function-like T-Sequence-like finite set st
      ex b3 being set st
         b1 = <%b3%> ^ b2;

:: FLANG_1:th 9
theorem
for b1 being set
for b2 being Element of b1 ^omega
for b3 being natural set
      st len b2 = b3 + 1
   holds ex b4 being Element of b1 ^omega st
      ex b5 being Element of b1 st
         len b4 = b3 & b2 = <%b5%> ^ b4;

:: FLANG_1:th 10
theorem
for b1, b2 being natural set
for b3 being Relation-like Function-like T-Sequence-like finite set
      st len b3 = b1 + b2
   holds ex b4, b5 being Relation-like Function-like T-Sequence-like finite set st
      len b4 = b1 & len b5 = b2 & b3 = b4 ^ b5;

:: FLANG_1:th 11
theorem
for b1 being set
for b2 being Element of b1 ^omega
for b3, b4 being natural set
      st len b2 = b3 + b4
   holds ex b5, b6 being Element of b1 ^omega st
      len b5 = b3 & len b6 = b4 & b2 = b5 ^ b6;

:: FLANG_1:th 12
theorem
for b1 being set
for b2 being Element of b1 ^omega
      st b2 ^ b2 = b2
   holds b2 = {};

:: FLANG_1:funcnot 6 => FLANG_1:func 6
definition
  let a1 be set;
  let a2, a3 be Element of bool (a1 ^omega);
  func A2 ^^ A3 -> Element of bool (a1 ^omega) means
    for b1 being set holds
          b1 in it
       iff
          ex b2, b3 being Element of a1 ^omega st
             b2 in a2 & b3 in a3 & b1 = b2 ^ b3;
end;

:: FLANG_1:def 1
theorem
for b1 being set
for b2, b3, b4 being Element of bool (b1 ^omega) holds
   b4 = b2 ^^ b3
iff
   for b5 being set holds
         b5 in b4
      iff
         ex b6, b7 being Element of b1 ^omega st
            b6 in b2 & b7 in b3 & b5 = b6 ^ b7;

:: FLANG_1:th 13
theorem
for b1 being set
for b2, b3 being Element of bool (b1 ^omega) holds
   b2 ^^ b3 = {}
iff
   (b2 = {} or b3 = {});

:: FLANG_1:th 14
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
   b2 ^^ {<%> b1} = b2 & {<%> b1} ^^ b2 = b2;

:: FLANG_1:th 15
theorem
for b1 being set
for b2, b3 being Element of bool (b1 ^omega) holds
   b2 ^^ b3 = {<%> b1}
iff
   b2 = {<%> b1} & b3 = {<%> b1};

:: FLANG_1:th 16
theorem
for b1 being set
for b2, b3 being Element of bool (b1 ^omega) holds
   <%> b1 in b2 ^^ b3
iff
   <%> b1 in b2 & <%> b1 in b3;

:: FLANG_1:th 17
theorem
for b1 being set
for b2, b3 being Element of bool (b1 ^omega)
      st <%> b1 in b2
   holds b3 c= b3 ^^ b2 & b3 c= b2 ^^ b3;

:: FLANG_1:th 18
theorem
for b1 being set
for b2, b3, b4, b5 being Element of bool (b1 ^omega)
      st b2 c= b3 & b4 c= b5
   holds b2 ^^ b4 c= b3 ^^ b5;

:: FLANG_1:th 19
theorem
for b1 being set
for b2, b3, b4 being Element of bool (b1 ^omega) holds
(b2 ^^ b3) ^^ b4 = b2 ^^ (b3 ^^ b4);

:: FLANG_1:th 20
theorem
for b1 being set
for b2, b3, b4 being Element of bool (b1 ^omega) holds
b2 ^^ (b3 /\ b4) c= (b2 ^^ b3) /\ (b2 ^^ b4) &
 (b3 /\ b4) ^^ b2 c= (b3 ^^ b2) /\ (b4 ^^ b2);

:: FLANG_1:th 21
theorem
for b1 being set
for b2, b3, b4 being Element of bool (b1 ^omega) holds
(b2 ^^ b3) \/ (b2 ^^ b4) = b2 ^^ (b3 \/ b4) &
 (b3 ^^ b2) \/ (b4 ^^ b2) = (b3 \/ b4) ^^ b2;

:: FLANG_1:th 22
theorem
for b1 being set
for b2, b3, b4 being Element of bool (b1 ^omega) holds
(b2 ^^ b3) \ (b2 ^^ b4) c= b2 ^^ (b3 \ b4) &
 (b3 ^^ b2) \ (b4 ^^ b2) c= (b3 \ b4) ^^ b2;

:: FLANG_1:th 23
theorem
for b1 being set
for b2, b3, b4 being Element of bool (b1 ^omega) holds
(b2 ^^ b3) \+\ (b2 ^^ b4) c= b2 ^^ (b3 \+\ b4) &
 (b3 ^^ b2) \+\ (b4 ^^ b2) c= (b3 \+\ b4) ^^ b2;

:: FLANG_1:funcnot 7 => FLANG_1:func 7
definition
  let a1 be set;
  let a2 be Element of bool (a1 ^omega);
  let a3 be natural set;
  func A2 |^ A3 -> Element of bool (a1 ^omega) means
    ex b1 being Function-like quasi_total Relation of NAT,bool (a1 ^omega) st
       it = b1 . a3 &
        b1 . 0 = {<%> a1} &
        (for b2 being natural set holds
           b1 . (b2 + 1) = (b1 . b2) ^^ a2);
end;

:: FLANG_1:def 2
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being natural set
for b4 being Element of bool (b1 ^omega) holds
      b4 = b2 |^ b3
   iff
      ex b5 being Function-like quasi_total Relation of NAT,bool (b1 ^omega) st
         b4 = b5 . b3 &
          b5 . 0 = {<%> b1} &
          (for b6 being natural set holds
             b5 . (b6 + 1) = (b5 . b6) ^^ b2);

:: FLANG_1:th 24
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being natural set holds
   b2 |^ (b3 + 1) = (b2 |^ b3) ^^ b2;

:: FLANG_1:th 25
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
   b2 |^ 0 = {<%> b1};

:: FLANG_1:th 26
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
   b2 |^ 1 = b2;

:: FLANG_1:th 27
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
   b2 |^ 2 = b2 ^^ b2;

:: FLANG_1:th 28
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being natural set holds
      b2 |^ b3 = {}
   iff
      0 < b3 & b2 = {};

:: FLANG_1:th 29
theorem
for b1 being set
for b2 being natural set holds
   {<%> b1} |^ b2 = {<%> b1};

:: FLANG_1:th 30
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being natural set holds
      b2 |^ b3 = {<%> b1}
   iff
      (b3 = 0 or b2 = {<%> b1});

:: FLANG_1:th 31
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being natural set
      st <%> b1 in b2
   holds <%> b1 in b2 |^ b3;

:: FLANG_1:th 32
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being natural set
      st <%> b1 in b2 |^ b3 & 0 < b3
   holds <%> b1 in b2;

:: FLANG_1:th 33
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being natural set holds
   (b2 |^ b3) ^^ b2 = b2 ^^ (b2 |^ b3);

:: FLANG_1:th 34
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3, b4 being natural set holds
b2 |^ (b3 + b4) = (b2 |^ b3) ^^ (b2 |^ b4);

:: FLANG_1:th 35
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3, b4 being natural set holds
(b2 |^ b3) |^ b4 = b2 |^ (b3 * b4);

:: FLANG_1:th 36
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being natural set
      st <%> b1 in b2 & 0 < b3
   holds b2 c= b2 |^ b3;

:: FLANG_1:th 37
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3, b4 being natural set
      st <%> b1 in b2 & b4 < b3
   holds b2 |^ b4 c= b2 |^ b3;

:: FLANG_1:th 38
theorem
for b1 being set
for b2, b3 being Element of bool (b1 ^omega)
for b4 being natural set
      st b2 c= b3
   holds b2 |^ b4 c= b3 |^ b4;

:: FLANG_1:th 39
theorem
for b1 being set
for b2, b3 being Element of bool (b1 ^omega)
for b4 being natural set holds
   (b2 |^ b4) \/ (b3 |^ b4) c= (b2 \/ b3) |^ b4;

:: FLANG_1:th 40
theorem
for b1 being set
for b2, b3 being Element of bool (b1 ^omega)
for b4 being natural set holds
   (b2 /\ b3) |^ b4 c= (b2 |^ b4) /\ (b3 |^ b4);

:: FLANG_1:th 41
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3, b4 being Element of b1 ^omega
for b5, b6 being natural set
      st b3 in b2 |^ b5 & b4 in b2 |^ b6
   holds b3 ^ b4 in b2 |^ (b5 + b6);

:: FLANG_1:funcnot 8 => FLANG_1:func 8
definition
  let a1 be set;
  let a2 be Element of bool (a1 ^omega);
  func A2 * -> Element of bool (a1 ^omega) equals
    union {b1 where b1 is Element of bool (a1 ^omega): ex b2 being natural set st
       b1 = a2 |^ b2};
end;

:: FLANG_1:def 3
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
   b2 * = union {b3 where b3 is Element of bool (b1 ^omega): ex b4 being natural set st
      b3 = b2 |^ b4};

:: FLANG_1:th 42
theorem
for b1, b2 being set
for b3 being Element of bool (b1 ^omega) holds
      b2 in b3 *
   iff
      ex b4 being natural set st
         b2 in b3 |^ b4;

:: FLANG_1:th 43
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being natural set holds
   b2 |^ b3 c= b2 *;

:: FLANG_1:th 44
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
   b2 c= b2 *;

:: FLANG_1:th 45
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
   b2 ^^ b2 c= b2 *;

:: FLANG_1:th 46
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3, b4 being Element of b1 ^omega
      st b3 in b2 * & b4 in b2 *
   holds b3 ^ b4 in b2 *;

:: FLANG_1:th 47
theorem
for b1 being set
for b2, b3, b4 being Element of bool (b1 ^omega)
      st b2 c= b3 * & b4 c= b3 *
   holds b2 ^^ b4 c= b3 *;

:: FLANG_1:th 48
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
      b2 * = {<%> b1}
   iff
      (b2 = {} or b2 = {<%> b1});

:: FLANG_1:th 49
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
   <%> b1 in b2 *;

:: FLANG_1:th 50
theorem
for b1, b2 being set
for b3 being Element of bool (b2 ^omega)
      st b3 * = {b1}
   holds b1 = <%> b2;

:: FLANG_1:th 51
theorem
for b1, b2 being set
for b3 being Element of bool (b1 ^omega)
for b4 being natural set
      st b2 in b3 |^ (b4 + 1)
   holds b2 in b3 * ^^ b3 & b2 in b3 ^^ (b3 *);

:: FLANG_1:th 52
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being natural set holds
   b2 |^ (b3 + 1) c= b2 * ^^ b2 &
    b2 |^ (b3 + 1) c= b2 ^^ (b2 *);

:: FLANG_1:th 53
theorem
for b1, b2 being set
for b3 being Element of bool (b1 ^omega)
      st (b2 in b3 * ^^ b3 or b2 in b3 ^^ (b3 *))
   holds b2 in b3 *;

:: FLANG_1:th 54
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
   b2 * ^^ b2 c= b2 * & b2 ^^ (b2 *) c= b2 *;

:: FLANG_1:th 55
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
      st <%> b1 in b2
   holds b2 * = b2 * ^^ b2 & b2 * = b2 ^^ (b2 *);

:: FLANG_1:th 56
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being natural set
      st <%> b1 in b2
   holds b2 * = b2 * ^^ (b2 |^ b3) & b2 * = (b2 |^ b3) ^^ (b2 *);

:: FLANG_1:th 57
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
   b2 * = {<%> b1} \/ (b2 ^^ (b2 *)) &
    b2 * = {<%> b1} \/ (b2 * ^^ b2);

:: FLANG_1:th 58
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
   b2 ^^ (b2 *) = b2 * ^^ b2;

:: FLANG_1:th 59
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being natural set holds
   (b2 |^ b3) ^^ (b2 *) = b2 * ^^ (b2 |^ b3);

:: FLANG_1:th 60
theorem
for b1 being set
for b2, b3 being Element of bool (b1 ^omega)
for b4 being natural set
      st b2 c= b3 *
   holds b2 |^ b4 c= b3 *;

:: FLANG_1:th 61
theorem
for b1 being set
for b2, b3 being Element of bool (b1 ^omega)
      st b2 c= b3 *
   holds b2 * c= b3 *;

:: FLANG_1:th 62
theorem
for b1 being set
for b2, b3 being Element of bool (b1 ^omega)
      st b2 c= b3
   holds b2 * c= b3 *;

:: FLANG_1:th 63
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
   b2 * * = b2 *;

:: FLANG_1:th 64
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
   b2 * ^^ (b2 *) = b2 *;

:: FLANG_1:th 65
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being natural set holds
   (b2 |^ b3) * c= b2 *;

:: FLANG_1:th 66
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being natural set holds
   b2 * |^ b3 c= b2 *;

:: FLANG_1:th 67
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being natural set
      st 0 < b3
   holds b2 * |^ b3 = b2 *;

:: FLANG_1:th 68
theorem
for b1 being set
for b2, b3 being Element of bool (b1 ^omega)
      st b2 c= b3 *
   holds b3 * = (b3 \/ b2) *;

:: FLANG_1:th 69
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
for b3 being Element of b1 ^omega
      st b3 in b2 *
   holds b2 * = (b2 \/ {b3}) *;

:: FLANG_1:th 70
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
   b2 * = (b2 \ {<%> b1}) *;

:: FLANG_1:th 71
theorem
for b1 being set
for b2, b3 being Element of bool (b1 ^omega) holds
b2 * \/ (b3 *) c= (b2 \/ b3) *;

:: FLANG_1:th 72
theorem
for b1 being set
for b2, b3 being Element of bool (b1 ^omega) holds
(b2 /\ b3) * c= b2 * /\ (b3 *);

:: FLANG_1:th 73
theorem
for b1, b2 being set
for b3 being Element of bool (b1 ^omega) holds
      <%b2%> in b3 *
   iff
      <%b2%> in b3;

:: FLANG_1:funcnot 9 => FLANG_1:func 9
definition
  let a1 be set;
  func Lex A1 -> Element of bool (a1 ^omega) means
    for b1 being set holds
          b1 in it
       iff
          ex b2 being Element of a1 st
             b2 in a1 & b1 = <%b2%>;
end;

:: FLANG_1:def 4
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega) holds
      b2 = Lex b1
   iff
      for b3 being set holds
            b3 in b2
         iff
            ex b4 being Element of b1 st
               b4 in b1 & b3 = <%b4%>;

:: FLANG_1:th 74
theorem
for b1 being set
for b2 being Element of b1 ^omega holds
   b2 in (Lex b1) |^ len b2;

:: FLANG_1:th 75
theorem
for b1 being set holds
   (Lex b1) * = b1 ^omega;

:: FLANG_1:th 76
theorem
for b1 being set
for b2 being Element of bool (b1 ^omega)
      st b2 * = b1 ^omega
   holds Lex b1 c= b2;