reserve Y for non empty set;
reserve B for Subset of Y;

theorem
  for a,b being Function of Y,BOOLEAN holds B_INF(a '&' b) = B_INF
  (a) '&' B_INF(b) & B_SUP(a 'or' b) = B_SUP(a) 'or' B_SUP(b)
proof
  let a,b be Function of Y,BOOLEAN;
A1: now
    assume
A2: for x being Element of Y holds (a '&' b).x=TRUE;
A3: for x being Element of Y holds a.x = TRUE
    proof
      let x be Element of Y;
      (a '&' b).x=a.x '&' b.x by MARGREL1:def 20;
      then a.x '&' b.x = TRUE by A2;
      hence thesis by XBOOLEAN:101;
    end;
    not (for x being Element of Y holds a.x=FALSE)
    proof
      now
        assume for x being Element of Y holds a.x=FALSE;
        let x be Element of Y;
        a.x=TRUE by A3;
        hence thesis;
      end;
      hence thesis;
    end;
    then
A4: B_SUP(a) = I_el(Y) by Def14;
A5: for x being Element of Y holds b.x = TRUE
    proof
      let x be Element of Y;
      (a '&' b).x=TRUE by A2;
      then a.x '&' b.x = TRUE by MARGREL1:def 20;
      hence thesis by XBOOLEAN:101;
    end;
    not (for x being Element of Y holds b.x=FALSE)
    proof
      now
        assume for x being Element of Y holds b.x=FALSE;
        let x be Element of Y;
        b.x=TRUE by A5;
        hence thesis;
      end;
      hence thesis;
    end;
    then
A6: B_SUP(a) 'or' B_SUP(b) = I_el(Y) 'or' I_el(Y) by A4,Def14;
A7: not (for x being Element of Y holds (a 'or' b).x=FALSE)
    proof
      now
        assume for x being Element of Y holds (a 'or' b).x=FALSE;
        let x be Element of Y;
        (a 'or' b).x = a.x 'or' b.x & a.x = TRUE by A3,Def4;
        hence thesis;
      end;
      hence thesis;
    end;
    B_INF(a) '&' B_INF(b) = B_INF(a) '&' I_el(Y) by A5,Def13
      .= I_el Y '&' I_el Y by A3,Def13;
    hence thesis by A2,A7,A6,Def13,Def14;
  end;
A8: now
    assume
A9: for x being Element of Y holds (a 'or' b).x=FALSE;
A10: for x being Element of Y holds a.x = FALSE
    proof
      let x be Element of Y;
      (a 'or' b).x=FALSE by A9;
      then
A11:  a.x 'or' b.x = FALSE by Def4;
      a.x = TRUE or a.x = FALSE by XBOOLEAN:def 3;
      hence thesis by A11;
    end;
A12: not (for x being Element of Y holds (a '&' b).x=TRUE)
    proof
      now
        assume for x being Element of Y holds (a '&' b).x=TRUE;
        let x be Element of Y;
        (a '&' b).x = a.x '&' b.x & a.x = FALSE by A10,MARGREL1:def 20;
        hence thesis;
      end;
      hence thesis;
    end;
A13: for x being Element of Y holds b.x = FALSE
    proof
      let x be Element of Y;
      (a 'or' b).x=FALSE by A9;
      then
A14:  a.x 'or' b.x = FALSE by Def4;
      b.x = TRUE or b.x = FALSE by XBOOLEAN:def 3;
      hence thesis by A14;
    end;
    then B_SUP(b) = O_el(Y) by Def14;
    then
A15: B_SUP(a) 'or' B_SUP(b) = O_el(Y) 'or' O_el(Y) by A10,Def14;
    not (for x being Element of Y holds a.x=TRUE)
    proof
      now
        assume for x being Element of Y holds a.x=TRUE;
        let x be Element of Y;
        a.x=FALSE by A10;
        hence thesis;
      end;
      hence thesis;
    end;
    then
A16: B_INF(a) = O_el(Y) by Def13;
    not (for x being Element of Y holds b.x=TRUE)
    proof
      now
        assume for x being Element of Y holds b.x=TRUE;
        let x be Element of Y;
        b.x=FALSE by A13;
        hence thesis;
      end;
      hence thesis;
    end;
    then B_INF(a) '&' B_INF(b) = O_el(Y) '&' O_el(Y) by A16,Def13;
    hence thesis by A9,A15,A12,Def13,Def14;
  end;
  now
    assume that
A17: not( for x being Element of Y holds (a '&' b).x=TRUE ) and
A18: not(for x being Element of Y holds (a 'or' b).x=FALSE);
    (for x being Element of Y holds a.x = FALSE) & (for x being Element
of Y holds b.x = FALSE) implies for x being Element of Y holds (a 'or' b).x=
    FALSE
    proof
      assume that
A19:  for x being Element of Y holds a.x = FALSE and
A20:  for x being Element of Y holds b.x = FALSE;
      let x be Element of Y;
      a.x = FALSE by A19;
      then a.x 'or' b.x = FALSE by A20;
      hence thesis by Def4;
    end;
    then B_SUP(a) = I_el(Y) or B_SUP(b) = I_el(Y) by A18,Def14;
    then
A21: B_SUP(a) 'or' B_SUP(b) = I_el(Y) by Th9;
    (for x being Element of Y holds a.x = TRUE) & (for x being Element of
    Y holds b.x = TRUE) implies for x being Element of Y holds (a '&' b).x=TRUE
    proof
      assume that
A22:  for x being Element of Y holds a.x = TRUE and
A23:  for x being Element of Y holds b.x = TRUE;
      let x be Element of Y;
      a.x = TRUE by A22;
      then a.x '&' b.x = TRUE by A23;
      hence thesis by MARGREL1:def 20;
    end;
    then B_INF(a) = O_el(Y) or B_INF(b) = O_el(Y) by A17,Def13;
    then B_INF(a) '&' B_INF(b) = O_el(Y) by Th4;
    hence thesis by A17,A18,A21,Def13,Def14;
  end;
  hence thesis by A1,A8;
end;
