reserve Y for non empty set;
reserve Y for non empty set;

theorem
  for a,b being Function of Y,BOOLEAN holds (a 'imp' b) '&' ('not'
  a 'imp' b) = b
proof
  let a,b be Function of Y,BOOLEAN;
    let x be Element of Y;
A1: ((a 'imp' b) '&' ('not' a 'imp' b)).x =(a 'imp' b).x '&' ('not' a
    'imp' b).x by MARGREL1:def 20
      .=('not' a.x 'or' b.x) '&' ('not' a 'imp' b).x by BVFUNC_1:def 8
      .=('not' a.x 'or' b.x) '&' ('not' ('not' a).x 'or' b.x) by
BVFUNC_1:def 8
      .=('not' a.x 'or' b.x) '&' (a.x 'or' b.x) by MARGREL1:def 19;
    now
      per cases by XBOOLEAN:def 3;
      case
        a.x=TRUE;
        then ((a 'imp' b) '&' ('not' a 'imp' b)).x =(FALSE 'or' b.x) '&' (
        TRUE 'or' b.x) by A1
          .=(FALSE 'or' b.x) '&' TRUE
          .=TRUE '&' b.x
          .=b.x;
        hence thesis;
      end;
      case
        a.x=FALSE;
        then ((a 'imp' b) '&' ('not' a 'imp' b)).x =(TRUE 'or' b.x) '&' (
        FALSE 'or' b.x) by A1
          .=TRUE '&' (FALSE 'or' b.x)
          .=TRUE '&' b.x
          .=b.x;
        hence thesis;
      end;
    end;
    hence thesis;
end;
