reserve X for set,
        A for Subset of X,
        R,S for Relation of X;

theorem
  for X being set,G being Subset-Family of X st G is upper holds
    FinMeetCl G is upper
  proof
    let X be set, G be Subset-Family of X;
    assume
A1: G is upper;
    now
      let Y1,Y2 be Subset of X;
      assume that
A2: Y1 in FinMeetCl G and
A3: Y1 c= Y2;
      consider Z being Subset-Family of X such that
A4: Z c= G and
A5: Z is finite and
A6: Y1 = Intersect Z by A2,CANTOR_1:def 3;
      per cases;
      suppose
A7:     Z is empty;
        then Y2 = X by A6,A3,SETFAM_1:def 9;
        hence Y2 in FinMeetCl G by A7,A6,SETFAM_1:def 9,A2;
      end;
      suppose
A8:     Z is non empty;
        set Z2 = the set of all z \/ Y2 where z is Element of Z;
        set a = the Element of Z;
A9:     a \/ Y2 in Z2;
        Z2 c= bool X
        proof
          let t be object;
          assume t in Z2;
          then consider u be Element of Z such that
A10:      t = u \/ Y2;
A11:      u in Z by A8;
          u \/ Y2 c= X by XBOOLE_1:8,A11;
          hence thesis by A10;
        end;
        then reconsider Z2 as Subset-Family of X;
        now
          now
            let x be object;
            assume
A12:        x in Z2;
            then reconsider y = x as Subset of X;
            consider u be Element of Z such that
A13:        y = u \/ Y2 by A12;
            u in G by A8,A4;
            hence x in G by A13,XBOOLE_1:7,A1;
          end;
          hence Z2 c= G;
A14:      Z is finite by A5;
          deffunc F(Element of Z) = $1 \/ Y2;
A15:      {F(z) where z is Element of Z:z in Z} is finite
            from FRAENKEL:sch 21(A14);
          now
            thus {F(z) where z is Element of Z:z in Z} c= Z2
            proof
              let x be object;
              assume x in {F(z) where z is Element of Z:z in Z};
              then ex z be Element of Z st x = F(z) & z in Z;
              hence thesis;
            end;
            thus Z2 c= {F(z) where z is Element of Z:z in Z}
            proof
              let x be object;
              assume x in Z2;
              then ex z be Element of Z st x = z \/ Y2;
              hence thesis by A8;
            end;
          end;
          hence Z2 is finite by A15;
          now
            thus Y2 c= meet Z2
            proof
              let x be object;
              assume
A16:          x in Y2;
              now
                let YY be set;
                assume
A17:            YY in Z2;
                then reconsider ZZ = YY as Subset of X;
                consider u be Element of Z such that
A18:            ZZ = u \/ Y2 by A17;
                Y2 c= u \/ Y2 by XBOOLE_1:7;
                hence x in YY by A16,A18;
              end;
              hence thesis by A9,SETFAM_1:def 1;
            end;
            thus meet Z2 c= Y2
            proof
              let x be object;
              assume
A19:          x in meet Z2;
A20:          for z be Element of Z holds x in z \/ Y2
              proof
                let z be Element of Z;
                z \/ Y2 in Z2;
                hence thesis by A19,SETFAM_1:def 1;
              end;
              for z be Element of Z holds (x in z or x in Y2)
              proof
                let z be Element of Z;
                x in z \/ Y2 by A20;
                hence thesis by XBOOLE_0:def 3;
              end;
              then (for z be set st z in Z holds x in z) or x in Y2;
              then (x in meet Z) or x in Y2 by A8,SETFAM_1:def 1;
              then x in (meet Z) \/ Y2 by XBOOLE_0:def 3; then
A21:          x in Y1 \/ Y2 by A8,A6,SETFAM_1:def 9;
              Y1 \/ Y2 c= Y2 by A3,XBOOLE_1:8;
              hence thesis by A21;
            end;
          end;
          hence Y2 = Intersect Z2 by A9,SETFAM_1:def 9;
        end;
        hence Y2 in FinMeetCl G by CANTOR_1:def 3;
      end;
    end;
    hence thesis;
  end;
