Article ZF_FUND1, MML version 4.99.1005

:: ZF_FUND1:funcnot 1 => ZF_FUND1:func 1
definition
  let a1, a2 be set;
  func A1 (#) A2 -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2, b3, b4 being set st
             b1 = [b2,b4] & [b2,b3] in a1 & [b3,b4] in a2;
end;

:: ZF_FUND1:def 1
theorem
for b1, b2, b3 being set holds
   b3 = b1 (#) b2
iff
   for b4 being set holds
         b4 in b3
      iff
         ex b5, b6, b7 being set st
            b4 = [b5,b7] & [b5,b6] in b1 & [b6,b7] in b2;

:: ZF_FUND1:funcnot 2 => ZF_FUND1:func 2
definition
  let a1 be non empty universal set;
  let a2, a3 be Element of a1;
  redefine func a2 (#) a3 -> Element of a1;
end;

:: ZF_FUND1:funcnot 3 => ZF_FUND1:func 3
definition
  func decode -> Function-like quasi_total Relation of omega,VAR means
    for b1 being Element of omega holds
       it . b1 = x. card b1;
end;

:: ZF_FUND1:def 2
theorem
for b1 being Function-like quasi_total Relation of omega,VAR holds
      b1 = decode
   iff
      for b2 being Element of omega holds
         b1 . b2 = x. card b2;

:: ZF_FUND1:funcnot 4 => ZF_FUND1:func 4
definition
  let a1 be Element of VAR;
  func x". A1 -> Element of NAT means
    x. it = a1;
end;

:: ZF_FUND1:def 3
theorem
for b1 being Element of VAR
for b2 being Element of NAT holds
      b2 = x". b1
   iff
      x. b2 = b1;

:: ZF_FUND1:funcnot 5 => ZF_FUND1:func 5
definition
  let a1 be finite Element of bool VAR;
  func code A1 -> finite Element of bool omega equals
    decode " .: a1;
end;

:: ZF_FUND1:def 4
theorem
for b1 being finite Element of bool VAR holds
   code b1 = decode " .: b1;

:: ZF_FUND1:funcnot 6 => ZF_FUND1:func 6
definition
  let a1 be ZF-formula-like FinSequence of NAT;
  redefine func Free a1 -> finite Element of bool VAR;
end;

:: ZF_FUND1:funcnot 7 => ZF_FUND1:func 7
definition
  let a1 be ZF-formula-like FinSequence of NAT;
  let a2 be non empty set;
  func Diagram(A1,A2) -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2 being Function-like quasi_total Relation of VAR,a2 st
             b1 = (b2 * decode) | code Free a1 &
              b2 in St(a1,a2);
end;

:: ZF_FUND1:def 5
theorem
for b1 being ZF-formula-like FinSequence of NAT
for b2 being non empty set
for b3 being set holds
      b3 = Diagram(b1,b2)
   iff
      for b4 being set holds
            b4 in b3
         iff
            ex b5 being Function-like quasi_total Relation of VAR,b2 st
               b4 = (b5 * decode) | code Free b1 &
                b5 in St(b1,b2);

:: ZF_FUND1:attrnot 1 => ZF_FUND1:attr 1
definition
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
  attr a2 is closed_wrt_A1 means
    for b1 being Element of a1
          st b1 in a2
       holds {{[0-element_of a1,b2],[1-element_of a1,b3]} where b2 is Element of a1, b3 is Element of a1: b2 in b3 & b2 in b1 & b3 in b1} in a2;
end;

:: ZF_FUND1:dfs 6
definiens
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
To prove
     a2 is closed_wrt_A1
it is sufficient to prove
  thus for b1 being Element of a1
          st b1 in a2
       holds {{[0-element_of a1,b2],[1-element_of a1,b3]} where b2 is Element of a1, b3 is Element of a1: b2 in b3 & b2 in b1 & b3 in b1} in a2;

:: ZF_FUND1:def 6
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1 holds
      b2 is closed_wrt_A1(b1)
   iff
      for b3 being Element of b1
            st b3 in b2
         holds {{[0-element_of b1,b4],[1-element_of b1,b5]} where b4 is Element of b1, b5 is Element of b1: b4 in b5 & b4 in b3 & b5 in b3} in b2;

:: ZF_FUND1:attrnot 2 => ZF_FUND1:attr 2
definition
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
  attr a2 is closed_wrt_A2 means
    for b1, b2 being Element of a1
          st b1 in a2 & b2 in a2
       holds {b1,b2} in a2;
end;

:: ZF_FUND1:dfs 7
definiens
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
To prove
     a2 is closed_wrt_A2
it is sufficient to prove
  thus for b1, b2 being Element of a1
          st b1 in a2 & b2 in a2
       holds {b1,b2} in a2;

:: ZF_FUND1:def 7
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1 holds
      b2 is closed_wrt_A2(b1)
   iff
      for b3, b4 being Element of b1
            st b3 in b2 & b4 in b2
         holds {b3,b4} in b2;

:: ZF_FUND1:attrnot 3 => ZF_FUND1:attr 3
definition
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
  attr a2 is closed_wrt_A3 means
    for b1 being Element of a1
          st b1 in a2
       holds union b1 in a2;
end;

:: ZF_FUND1:dfs 8
definiens
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
To prove
     a2 is closed_wrt_A3
it is sufficient to prove
  thus for b1 being Element of a1
          st b1 in a2
       holds union b1 in a2;

:: ZF_FUND1:def 8
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1 holds
      b2 is closed_wrt_A3(b1)
   iff
      for b3 being Element of b1
            st b3 in b2
         holds union b3 in b2;

:: ZF_FUND1:attrnot 4 => ZF_FUND1:attr 4
definition
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
  attr a2 is closed_wrt_A4 means
    for b1, b2 being Element of a1
          st b1 in a2 & b2 in a2
       holds {{[b3,b4]} where b3 is Element of a1, b4 is Element of a1: b3 in b1 & b4 in b2} in a2;
end;

:: ZF_FUND1:dfs 9
definiens
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
To prove
     a2 is closed_wrt_A4
it is sufficient to prove
  thus for b1, b2 being Element of a1
          st b1 in a2 & b2 in a2
       holds {{[b3,b4]} where b3 is Element of a1, b4 is Element of a1: b3 in b1 & b4 in b2} in a2;

:: ZF_FUND1:def 9
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1 holds
      b2 is closed_wrt_A4(b1)
   iff
      for b3, b4 being Element of b1
            st b3 in b2 & b4 in b2
         holds {{[b5,b6]} where b5 is Element of b1, b6 is Element of b1: b5 in b3 & b6 in b4} in b2;

:: ZF_FUND1:attrnot 5 => ZF_FUND1:attr 5
definition
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
  attr a2 is closed_wrt_A5 means
    for b1, b2 being Element of a1
          st b1 in a2 & b2 in a2
       holds {b3 \/ b4 where b3 is Element of a1, b4 is Element of a1: b3 in b1 & b4 in b2} in a2;
end;

:: ZF_FUND1:dfs 10
definiens
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
To prove
     a2 is closed_wrt_A5
it is sufficient to prove
  thus for b1, b2 being Element of a1
          st b1 in a2 & b2 in a2
       holds {b3 \/ b4 where b3 is Element of a1, b4 is Element of a1: b3 in b1 & b4 in b2} in a2;

:: ZF_FUND1:def 10
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1 holds
      b2 is closed_wrt_A5(b1)
   iff
      for b3, b4 being Element of b1
            st b3 in b2 & b4 in b2
         holds {b5 \/ b6 where b5 is Element of b1, b6 is Element of b1: b5 in b3 & b6 in b4} in b2;

:: ZF_FUND1:attrnot 6 => ZF_FUND1:attr 6
definition
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
  attr a2 is closed_wrt_A6 means
    for b1, b2 being Element of a1
          st b1 in a2 & b2 in a2
       holds {b3 \ b4 where b3 is Element of a1, b4 is Element of a1: b3 in b1 & b4 in b2} in a2;
end;

:: ZF_FUND1:dfs 11
definiens
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
To prove
     a2 is closed_wrt_A6
it is sufficient to prove
  thus for b1, b2 being Element of a1
          st b1 in a2 & b2 in a2
       holds {b3 \ b4 where b3 is Element of a1, b4 is Element of a1: b3 in b1 & b4 in b2} in a2;

:: ZF_FUND1:def 11
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1 holds
      b2 is closed_wrt_A6(b1)
   iff
      for b3, b4 being Element of b1
            st b3 in b2 & b4 in b2
         holds {b5 \ b6 where b5 is Element of b1, b6 is Element of b1: b5 in b3 & b6 in b4} in b2;

:: ZF_FUND1:attrnot 7 => ZF_FUND1:attr 7
definition
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
  attr a2 is closed_wrt_A7 means
    for b1, b2 being Element of a1
          st b1 in a2 & b2 in a2
       holds {b3 (#) b4 where b3 is Element of a1, b4 is Element of a1: b3 in b1 & b4 in b2} in a2;
end;

:: ZF_FUND1:dfs 12
definiens
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
To prove
     a2 is closed_wrt_A7
it is sufficient to prove
  thus for b1, b2 being Element of a1
          st b1 in a2 & b2 in a2
       holds {b3 (#) b4 where b3 is Element of a1, b4 is Element of a1: b3 in b1 & b4 in b2} in a2;

:: ZF_FUND1:def 12
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1 holds
      b2 is closed_wrt_A7(b1)
   iff
      for b3, b4 being Element of b1
            st b3 in b2 & b4 in b2
         holds {b5 (#) b6 where b5 is Element of b1, b6 is Element of b1: b5 in b3 & b6 in b4} in b2;

:: ZF_FUND1:attrnot 8 => ZF_FUND1:attr 8
definition
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
  attr a2 is closed_wrt_A1-A7 means
    a2 is closed_wrt_A1(a1) & a2 is closed_wrt_A2(a1) & a2 is closed_wrt_A3(a1) & a2 is closed_wrt_A4(a1) & a2 is closed_wrt_A5(a1) & a2 is closed_wrt_A6(a1) & a2 is closed_wrt_A7(a1);
end;

:: ZF_FUND1:dfs 13
definiens
  let a1 be non empty universal set;
  let a2 be non empty Element of bool a1;
To prove
     a2 is closed_wrt_A1-
it is sufficient to prove
  thus a2 is closed_wrt_A1(a1) & a2 is closed_wrt_A2(a1) & a2 is closed_wrt_A3(a1) & a2 is closed_wrt_A4(a1) & a2 is closed_wrt_A5(a1) & a2 is closed_wrt_A6(a1) & a2 is closed_wrt_A7(a1);

:: ZF_FUND1:def 13
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1 holds
      b2 is closed_wrt_A1-(b1)
   iff
      b2 is closed_wrt_A1(b1) & b2 is closed_wrt_A2(b1) & b2 is closed_wrt_A3(b1) & b2 is closed_wrt_A4(b1) & b2 is closed_wrt_A5(b1) & b2 is closed_wrt_A6(b1) & b2 is closed_wrt_A7(b1);

:: ZF_FUND1:th 1
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1
for b3, b4 being set holds
b2 c= b1 & (b3 in b2 implies b3 is Element of b1) & (b3 in b4 & b4 in b2 implies b3 is Element of b1);

:: ZF_FUND1:th 2
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1
for b3, b4 being set
      st b2 is closed_wrt_A1-(b1)
   holds (b3 in b2 implies {b3} in b2) & ({b3} in b2 implies b3 in b2) & (b4 in b2 implies union b4 in b2);

:: ZF_FUND1:th 3
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1
      st b2 is closed_wrt_A1-(b1)
   holds {} in b2;

:: ZF_FUND1:th 4
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1
for b3, b4 being set
      st b2 is closed_wrt_A1-(b1) & b3 in b2 & b4 in b2
   holds b3 \/ b4 in b2 & b3 \ b4 in b2 & b3 (#) b4 in b2;

:: ZF_FUND1:th 5
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1
for b3, b4 being set
      st b2 is closed_wrt_A1-(b1) & b3 in b2 & b4 in b2
   holds b3 /\ b4 in b2;

:: ZF_FUND1:th 6
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1
for b3, b4 being set
      st b2 is closed_wrt_A1-(b1) & b3 in b2 & b4 in b2
   holds {b3,b4} in b2 & [b3,b4] in b2;

:: ZF_FUND1:th 7
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1
      st b2 is closed_wrt_A1-(b1)
   holds omega c= b2;

:: ZF_FUND1:th 8
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1
for b3 being finite Element of bool omega
      st b2 is closed_wrt_A1-(b1)
   holds Funcs(b3,omega) c= b2;

:: ZF_FUND1:th 9
theorem
for b1 being non empty universal set
for b2 being Element of b1
for b3 being non empty Element of bool b1
for b4 being finite Element of bool omega
      st b3 is closed_wrt_A1-(b1) & b2 in b3
   holds Funcs(b4,b2) in b3;

:: ZF_FUND1:th 10
theorem
for b1 being non empty universal set
for b2, b3 being Element of b1
for b4 being non empty Element of bool b1
for b5 being finite Element of bool omega
      st b4 is closed_wrt_A1-(b1) & b2 in Funcs(b5,omega) & b3 in b4
   holds {b2 (#) b6 where b6 is Element of b1: b6 in b3} in b4;

:: ZF_FUND1:th 11
theorem
for b1 being non empty universal set
for b2, b3 being Element of b1
for b4 being non empty Element of bool b1
for b5 being Element of omega
for b6 being finite Element of bool omega
      st b4 is closed_wrt_A1-(b1) & b5 in b6 & b2 in b4 & b3 in b4 & b3 c= Funcs(b6,b2)
   holds {b7 where b7 is Element of b1: b7 in Funcs(b6 \ {b5},b2) &
    (ex b8 being set st
       {[b5,b8]} \/ b7 in b3)} in b4;

:: ZF_FUND1:th 12
theorem
for b1 being non empty universal set
for b2, b3 being Element of b1
for b4 being non empty Element of bool b1
for b5 being Element of omega
for b6 being finite Element of bool omega
      st b4 is closed_wrt_A1-(b1) & not b5 in b6 & b2 in b4 & b3 in b4 & b3 c= Funcs(b6,b2)
   holds {{[b5,b7]} \/ b8 where b7 is Element of b1, b8 is Element of b1: b7 in b2 & b8 in b3} in b4;

:: ZF_FUND1:th 13
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1
for b3 being set
      st b2 is closed_wrt_A1-(b1) &
         b3 is finite &
         (for b4 being set
               st b4 in b3
            holds b4 in b2)
   holds b3 in b2;

:: ZF_FUND1:th 14
theorem
for b1 being non empty universal set
for b2 being Element of b1
for b3 being non empty Element of bool b1
for b4 being set
for b5 being finite Element of bool omega
      st b3 is closed_wrt_A1-(b1) & b4 c= b3 & b2 in Funcs(b5,b4)
   holds b2 in b3;

:: ZF_FUND1:th 15
theorem
for b1 being non empty universal set
for b2, b3 being Element of b1
for b4 being non empty Element of bool b1
for b5 being Element of omega
for b6 being finite Element of bool omega
      st b4 is closed_wrt_A1-(b1) & not b5 in b6 & b2 in b4 & b2 c= b4 & b3 in Funcs(b6,b2)
   holds {{[b5,b7]} \/ b3 where b7 is Element of b1: b7 in b2} in b4;

:: ZF_FUND1:th 16
theorem
for b1 being non empty universal set
for b2, b3, b4 being Element of b1
for b5 being non empty Element of bool b1
for b6 being Element of omega
for b7 being finite Element of bool omega
      st b5 is closed_wrt_A1-(b1) & not b6 in b7 & b2 in b5 & b2 c= b5 & b3 in Funcs(b7,b2) & b4 c= Funcs(b7 \/ {b6},b2) & b4 in b5
   holds {b8 where b8 is Element of b1: b8 in b2 &
    {[b6,b8]} \/ b3 in b4} in b5;

:: ZF_FUND1:th 17
theorem
for b1 being non empty universal set
for b2 being Element of b1
for b3 being non empty Element of bool b1
      st b3 is closed_wrt_A1-(b1) & b2 in b3
   holds {{[0-element_of b1,b4],[1-element_of b1,b4]} where b4 is Element of b1: b4 in b2} in b3;

:: ZF_FUND1:th 18
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1
for b3 being non empty set
   st b2 is closed_wrt_A1-(b1) & b3 in b2
for b4, b5 being Element of VAR holds
Diagram(b4 '=' b5,b3) in b2 & Diagram(b4 'in' b5,b3) in b2;

:: ZF_FUND1:th 19
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1
for b3 being non empty set
   st b2 is closed_wrt_A1-(b1) & b3 in b2
for b4 being ZF-formula-like FinSequence of NAT
      st Diagram(b4,b3) in b2
   holds Diagram('not' b4,b3) in b2;

:: ZF_FUND1:th 20
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1
for b3 being non empty set
   st b2 is closed_wrt_A1-(b1) & b3 in b2
for b4, b5 being ZF-formula-like FinSequence of NAT
      st Diagram(b4,b3) in b2 & Diagram(b5,b3) in b2
   holds Diagram(b4 '&' b5,b3) in b2;

:: ZF_FUND1:th 21
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1
for b3 being non empty set
   st b2 is closed_wrt_A1-(b1) & b3 in b2
for b4 being ZF-formula-like FinSequence of NAT
for b5 being Element of VAR
      st Diagram(b4,b3) in b2
   holds Diagram(All(b5,b4),b3) in b2;

:: ZF_FUND1:th 22
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1
for b3 being non empty set
for b4 being ZF-formula-like FinSequence of NAT
      st b2 is closed_wrt_A1-(b1) & b3 in b2
   holds Diagram(b4,b3) in b2;

:: ZF_FUND1:th 23
theorem
for b1 being non empty universal set
for b2 being non empty Element of bool b1
for b3 being Element of omega
      st b2 is closed_wrt_A1-(b1)
   holds b3 in b2 & 0-element_of b1 in b2 & 1-element_of b1 in b2;

:: ZF_FUND1:th 24
theorem
for b1, b2, b3 being set holds
{[b1,b2],[b2,b2]} (#) {[b2,b3]} = {[b1,b3],[b2,b3]};

:: ZF_FUND1:th 25
theorem
for b1, b2, b3, b4, b5, b6 being set
      st b1 <> b2
   holds {[b3,b1],[b4,b2]} (#) {[b1,b5],[b2,b6]} = {[b3,b5],[b4,b6]};

:: ZF_FUND1:th 27
theorem
for b1, b2 being Element of VAR holds
code {b1} = {x". b1} &
 code {b1,b2} = {x". b1,x". b2};

:: ZF_FUND1:th 28
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set holds
      proj1 b3 = {b1,b2}
   iff
      b3 = {[b1,b3 . b1],[b2,b3 . b2]};

:: ZF_FUND1:th 29
theorem
dom decode = omega & rng decode = VAR & decode is one-to-one & decode " is one-to-one & proj1 (decode ") = VAR & proj2 (decode ") = omega;

:: ZF_FUND1:th 30
theorem
for b1 being finite Element of bool VAR holds
   b1,code b1 are_equipotent;

:: ZF_FUND1:th 31
theorem
for b1 being Element of omega holds
   b1 = x". x. card b1;

:: ZF_FUND1:th 32
theorem
for b1 being finite Element of bool omega
for b2 being non empty set
for b3 being Function-like quasi_total Relation of VAR,b2 holds
   dom ((b3 * decode) | b1) = b1 & rng ((b3 * decode) | b1) c= b2 & (b3 * decode) | b1 in Funcs(b1,b2) & dom (b3 * decode) = omega;

:: ZF_FUND1:th 33
theorem
for b1 being non empty set
for b2 being Function-like quasi_total Relation of VAR,b1
for b3 being Element of VAR holds
   decode . x". b3 = b3 &
    decode " . b3 = x". b3 &
    (b2 * decode) . x". b3 = b2 . b3;

:: ZF_FUND1:th 34
theorem
for b1 being set
for b2 being finite Element of bool VAR holds
      b1 in code b2
   iff
      ex b3 being Element of VAR st
         b3 in b2 & b1 = x". b3;

:: ZF_FUND1:th 35
theorem
for b1, b2 being finite Element of bool VAR holds
code (b1 \/ b2) = (code b1) \/ code b2 &
 code (b1 \ b2) = (code b1) \ code b2;

:: ZF_FUND1:th 36
theorem
for b1 being non empty set
for b2 being Function-like quasi_total Relation of VAR,b1
for b3 being Element of VAR
for b4 being ZF-formula-like FinSequence of NAT
      st b3 in Free b4
   holds ((b2 * decode) | code Free b4) . x". b3 = b2 . b3;

:: ZF_FUND1:th 37
theorem
for b1 being non empty set
for b2 being ZF-formula-like FinSequence of NAT
for b3, b4 being Function-like quasi_total Relation of VAR,b1
      st (b3 * decode) | code Free b2 = (b4 * decode) | code Free b2 &
         b3 in St(b2,b1)
   holds b4 in St(b2,b1);

:: ZF_FUND1:th 38
theorem
for b1 being set
for b2 being finite Element of bool omega
for b3 being non empty set
      st b1 in Funcs(b2,b3)
   holds ex b4 being Function-like quasi_total Relation of VAR,b3 st
      b1 = (b4 * decode) | b2;