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

theorem
  for a,b being Function of Y,BOOLEAN,PA being a_partition of Y
  holds B_INF(a '&' b,PA)=B_INF(a,PA) '&' B_INF(b,PA)
proof
  let a,b be Function of Y,BOOLEAN;
  let PA be a_partition of Y;
    let y be Element of Y;
A1: now
      assume that
      for x being Element of Y st x in EqClass(y,PA) holds a.x=TRUE and
A2:   not(for x being Element of Y st x in EqClass(y,PA) holds b.x= TRUE);
      (B_INF(b,PA)).y = FALSE by A2,Def16;
      then (B_INF(a,PA)).y '&' (B_INF(b,PA)).y = FALSE;
      then
A3:   (B_INF(a,PA) '&' B_INF(b,PA)).y = FALSE by MARGREL1:def 20;
      consider x1 being Element of Y such that
A4:   x1 in EqClass(y,PA) and
A5:   b.x1<>TRUE by A2;
      b.x1=FALSE by A5,XBOOLEAN:def 3;
      then a.x1 '&' b.x1 = FALSE;
      then (a '&' b).x1 <>TRUE by MARGREL1:def 20;
      hence thesis by A4,A3,Def16;
    end;
A6: now
      assume that
A7:  not(for x being Element of Y st x in EqClass(y,PA) holds a.x= TRUE) and
A8:  not(for x being Element of Y st x in EqClass(y,PA) holds b.x= TRUE);
      (B_INF(b,PA)).y = FALSE by A8,Def16;
      then (B_INF(a,PA)).y '&' (B_INF(b,PA)).y = FALSE;
      then
A9:  (B_INF(a,PA) '&' B_INF(b,PA)).y = FALSE by MARGREL1:def 20;
      consider xa being Element of Y such that
A10:  xa in EqClass(y,PA) and
A11:  a.xa<>TRUE by A7;
      a.xa=FALSE by A11,XBOOLEAN:def 3;
      then a.xa '&' b.xa = FALSE;
      then (a '&' b).xa<>TRUE by MARGREL1:def 20;
      hence thesis by A10,A9,Def16;
    end;
A12: now
      assume that
A13:  for x being Element of Y st x in EqClass(y,PA) holds a.x=TRUE and
A14:  for x being Element of Y st x in EqClass(y,PA) holds b.x=TRUE;
A15:  for x being Element of Y st x in EqClass(y,PA) holds (a '&' b).x= TRUE
      proof
        let x be Element of Y;
        assume
A16:    x in EqClass(y,PA);
        then b.x=TRUE by A14;
        then a.x '&' b.x = TRUE '&' TRUE by A13,A16;
        hence thesis by MARGREL1:def 20;
      end;
      (B_INF(b,PA)).y = TRUE by A14,Def16;
      then (B_INF(a,PA)).y '&' (B_INF(b,PA)).y = TRUE '&' TRUE by A13,Def16;
      then (B_INF(a,PA) '&' B_INF(b,PA)).y = TRUE by MARGREL1:def 20;
      hence thesis by A15,Def16;
    end;
    now
      assume that
A17:  not(for x being Element of Y st x in EqClass(y,PA) holds a.x= TRUE) and
A18:  for x being Element of Y st x in EqClass(y,PA) holds b.x=TRUE;
      (B_INF(b,PA)).y = TRUE by A18,Def16;
      then (B_INF(a,PA)).y '&' (B_INF(b,PA)).y = FALSE '&' TRUE by A17,Def16;
      then
A19:  (B_INF(a,PA) '&' B_INF(b,PA)).y = FALSE by MARGREL1:def 20;
      consider x1 being Element of Y such that
A20:  x1 in EqClass(y,PA) and
A21:  a.x1<>TRUE by A17;
      a.x1=FALSE by A21,XBOOLEAN:def 3;
      then a.x1 '&' b.x1 = FALSE;
      then (a '&' b).x1 <>TRUE by MARGREL1:def 20;
      hence thesis by A20,A19,Def16;
    end;
    hence thesis by A12,A1,A6;
end;
