reserve Y for non empty set;

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