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) '&' (a
  'imp' 'not' b) = 'not' a
proof
  let a,b be Function of Y,BOOLEAN;
    let x be Element of Y;
A1: ((a 'imp' b) '&' (a 'imp' 'not' b)).x =(a 'imp' b).x '&' (a 'imp'
    'not' b).x by MARGREL1:def 20
      .=('not' a.x 'or' b.x) '&' (a 'imp' 'not' b).x by BVFUNC_1:def 8
      .=('not' a.x 'or' b.x) '&' ('not' a.x 'or' ('not' b).x) by
BVFUNC_1:def 8
      .=('not' a.x 'or' b.x) '&' ('not' a.x 'or' 'not' b.x) by
MARGREL1:def 19;
    now
      per cases by XBOOLEAN:def 3;
      case
        b.x=TRUE;
        then
        ((a 'imp' b) '&' (a 'imp' 'not' b)).x =('not' a.x 'or' TRUE) '&'
        ('not' a.x 'or' FALSE) by A1
          .=('not' a.x 'or' TRUE) '&' 'not' a.x
          .=TRUE '&' 'not' a.x
          .='not' a.x
          .=('not' a).x by MARGREL1:def 19;
        hence thesis;
      end;
      case
        b.x=FALSE;
        then ((a 'imp' b) '&' (a 'imp' 'not' b)).x =('not' a.x 'or' FALSE)
        '&' ('not' a.x 'or' TRUE) by A1
          .='not' a.x '&' ('not' a.x 'or' TRUE)
          .=TRUE '&' 'not' a.x
          .='not' a.x
          .=('not' a).x by MARGREL1:def 19;
        hence thesis;
      end;
    end;
    hence thesis;
end;
