reserve Y for non empty set;

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