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;
reserve Y for non empty set;

theorem Th19:
  for a,b,c being Function of Y,BOOLEAN holds (a 'imp' b)
  '&' (b 'imp' c) '<' (a 'imp' (b 'or' c))
proof
  let a,b,c be Function of Y,BOOLEAN;
  let z be Element of Y;
A1: ((a 'imp' b) '&' (b 'imp' c)).z =(a 'imp' b).z '&' (b 'imp' c).z by
MARGREL1:def 20
    .=('not' a 'or' b).z '&' (b 'imp' c).z by BVFUNC_4:8
    .=('not' a 'or' b).z '&' ('not' b 'or' c).z by BVFUNC_4:8
    .=(('not' a).z 'or' b.z) '&' ('not' b 'or' c).z by BVFUNC_1:def 4
    .=(('not' a).z 'or' b.z) '&' (('not' b).z 'or' c.z) by BVFUNC_1:def 4;
  assume
A2: ((a 'imp' b) '&' (b 'imp' c)).z=TRUE;
  now
    assume (a 'imp' (b 'or' c)).z<>TRUE;
A3: ('not' a).z=TRUE or ('not' a).z=FALSE by XBOOLEAN:def 3;
A4: (b.z 'or' c.z)=TRUE or (b.z 'or' c.z)=FALSE by XBOOLEAN:def 3;
A5: c.z=TRUE or c.z=FALSE by XBOOLEAN:def 3;
    (a 'imp' (b 'or' c)).z =('not' a 'or' (b 'or' c)).z by BVFUNC_4:8
      .=('not' a).z 'or' (b 'or' c).z by BVFUNC_1:def 4
      .=('not' a).z 'or' (b.z 'or' c.z) by BVFUNC_1:def 4;
    hence thesis by A2,A1,A3,A4,A5;
  end;
  hence thesis;
end;
