reserve Y for non empty set;
reserve Y for non empty set;
reserve Y for non empty set;
reserve Y for non empty set,
  a,b,c,d,e,f,g for Function of Y,BOOLEAN;

theorem
  a 'imp' b '<' (a '&' c) 'imp' (b '&' c)
proof
  let z be Element of Y;
A1: (a 'imp' b).z =('not' a 'or' b).z by BVFUNC_4:8
    .=('not' a).z 'or' b.z by BVFUNC_1:def 4;
  assume
A2: (a 'imp' b).z=TRUE;
  now
    assume ((a '&' c) 'imp' (b '&' c)).z<>TRUE;
    then ((a '&' c) 'imp' (b '&' c)).z=FALSE by XBOOLEAN:def 3;
    then ('not'( a '&' c) 'or' (b '&' c)).z=FALSE by BVFUNC_4:8;
    then ('not'( a '&' c)).z 'or' (b '&' c).z=FALSE by BVFUNC_1:def 4;
    then ('not' a 'or' 'not' c) .z 'or' (b '&' c).z=FALSE by BVFUNC_1:14;
    then (('not' c).z 'or' ('not' a).z) 'or' (b '&' c).z=FALSE by
BVFUNC_1:def 4;
    then ('not' c).z 'or' (('not' a).z 'or' (b '&' c).z)=FALSE;
    then
A3: ('not' c).z 'or' (('not' a).z 'or' (b.z '&' c.z))=FALSE by MARGREL1:def 20;
    ('not' c).z 'or' ((('not' a).z 'or' b.z) '&' (('not' a).z 'or' c.z))
    =('not' c).z 'or' c.z 'or' ('not' a).z by A2,A1
      .='not' c.z 'or' c.z 'or' ('not' a).z by MARGREL1:def 19
      .=TRUE 'or' ('not' a).z by XBOOLEAN:102
      .=TRUE;
    hence contradiction by A3,XBOOLEAN:9;
  end;
  hence thesis;
end;
