reserve Y for non empty set;

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