reserve Y for non empty set;

theorem
  for a,b,c being Function of Y,BOOLEAN holds (c 'imp' a) 'imp' ((
  c 'imp' b) 'imp' (c 'imp' (a '&' b)))=I_el(Y)
proof
  let a,b,c be Function of Y,BOOLEAN;
  for x being Element of Y holds ((c 'imp' a) 'imp' ((c 'imp' b) 'imp' (c
  'imp' (a '&' b)))).x=TRUE
  proof
    let x be Element of Y;
    ((c 'imp' a) 'imp' ((c 'imp' b) 'imp' (c 'imp' (a '&' b)))).x ='not' (
c 'imp' a).x 'or' ((c 'imp' b) 'imp' (c 'imp' (a '&' b))).x by BVFUNC_1:def 8
      .='not'( 'not' c.x 'or' a.x) 'or' ((c 'imp' b) 'imp' (c 'imp' (a
    '&' b))).x by BVFUNC_1:def 8
      .='not'( 'not' c.x 'or' a.x) 'or' ('not' (c 'imp' b).x 'or' (c
    'imp' (a '&' b)).x) by BVFUNC_1:def 8
      .='not'( 'not' c.x 'or' a.x) 'or' ('not'( 'not' c.x 'or' b.x)
    'or' (c 'imp' (a '&' b)).x) by BVFUNC_1:def 8
      .='not'( 'not' c.x 'or' a.x) 'or' ('not'( 'not' c.x 'or' b.x)
    'or' ('not' c.x 'or' (a '&' b).x)) by BVFUNC_1:def 8
      .=(c.x '&' 'not' a.x) 'or' (('not' 'not' c.x '&' 'not' b.x)
    'or' ('not' c.x 'or' (a.x '&' b.x))) by MARGREL1:def 20
      .=(c.x '&' 'not' a.x) 'or' ((c.x '&' 'not' b.x) 'or' (('not' (
    c).x 'or' a.x) '&' ('not' c.x 'or' b.x))) by XBOOLEAN:9
      .=(c.x '&' 'not' a.x) 'or' (((c.x '&' 'not' b.x) 'or' ('not' (
    c).x 'or' a.x)) '&' ((c.x '&' 'not' b.x) 'or' ('not' c.x 'or' 'not'
    'not' b.x))) by XBOOLEAN:9
      .=(c.x '&' 'not' a.x) 'or' (TRUE '&' ((c.x '&' 'not' b.x) 'or'
    ('not' c.x 'or' a.x))) by XBOOLEAN:102
      .=((c.x '&' 'not' a.x) 'or' 'not'( c.x '&' 'not' a.x)) 'or' ((
    c).x '&' 'not' b.x)
      .=TRUE 'or' (c.x '&' 'not' b.x) by XBOOLEAN:102
      .=TRUE;
    hence thesis;
  end;
  hence thesis by BVFUNC_1:def 11;
end;
