reserve Y for non empty set;

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