reserve Y for non empty set;
reserve Y for non empty set;
reserve Y for non empty set;

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