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

theorem
  for a,b,c being Function of Y,BOOLEAN holds (a 'eqv' b) '<' (a
  '&' c) 'eqv' (b '&' c)
proof
  let a,b,c be Function of Y,BOOLEAN;
  let z be Element of Y;
A1: (a 'eqv' b).z =((a 'imp' b) '&' (b 'imp' a)).z by BVFUNC_4:7
    .=(a 'imp' b).z '&' (b 'imp' a).z by MARGREL1:def 20;
  assume
A2: (a 'eqv' b).z=TRUE;
  then (a 'imp' b).z=TRUE by A1,MARGREL1:12;
  then
A3: 'not' a.z 'or' b.z = TRUE by BVFUNC_1:def 8;
  (b 'imp' a).z=TRUE by A2,A1,MARGREL1:12;
  then
A4: 'not' b.z 'or' a.z = TRUE by BVFUNC_1:def 8;
A5: ((a '&' c) 'eqv' (b '&' c)).z =(((a '&' c) 'imp' (b '&' c)) '&' ((b '&'
  c) 'imp' (a '&' c))).z by BVFUNC_4:7
    .=((a '&' c) 'imp' (b '&' c)).z '&' ((b '&' c) 'imp' (a '&' c)).z by
MARGREL1:def 20
    .=('not' (a '&' c).z 'or' (b '&' c).z) '&' ((b '&' c) 'imp' (a '&' c)).z
  by BVFUNC_1:def 8
    .=('not' (a '&' c).z 'or' (b '&' c).z) '&' ('not' (b '&' c).z 'or' (a
  '&' c).z) by BVFUNC_1:def 8
    .=('not'( a.z '&' c.z) 'or' (b '&' c).z) '&' ('not' (b '&' c).z 'or'
  (a '&' c).z) by MARGREL1:def 20
    .=('not'( a.z '&' c.z) 'or' (b.z '&' c.z)) '&' ('not' (b '&' c).
  z 'or' (a '&' c).z) by MARGREL1:def 20
    .=('not'( a.z '&' c.z) 'or' (b.z '&' c.z)) '&' ('not'( b.z '&'
  c.z) 'or' (a '&' c).z) by MARGREL1:def 20
    .=(('not' a.z 'or' 'not' c.z) 'or' (b.z '&' c.z)) '&' (('not' (b
  ).z 'or' 'not' c.z) 'or' (a.z '&' c.z)) by MARGREL1:def 20;
A6: a.z=TRUE or a.z=FALSE by XBOOLEAN:def 3;
A7: (b 'imp' a).z = 'not' b.z 'or' a.z by BVFUNC_1:def 8;
A8: b.z=TRUE or b.z=FALSE by XBOOLEAN:def 3;
  now
    per cases by A3,A8;
    case
A9:   'not' a.z=TRUE;
      then
      a.z=FALSE;
      then 'not' b.z=TRUE by A4;
      then
      ((a '&' c) 'eqv' (b '&' c)).z =((TRUE 'or' 'not' c.z) 'or' FALSE)
      '&' ((TRUE 'or' 'not' c.z) 'or' FALSE) by A5,A9
        .=(TRUE 'or' 'not' c.z) '&' (TRUE 'or' 'not' c.z)
        .=TRUE;
      hence thesis;
    end;
    case
      b.z=TRUE;
      then 'not' b.z=FALSE;
      then
      ((a '&' c) 'eqv' (b '&' c)).z =((FALSE 'or' 'not' c.z) 'or' c.z
      ) '&' ((FALSE 'or' 'not' c.z) 'or' c.z) by A2,A1,A7,A6,A5
        .=('not' c.z 'or' c.z) '&' ('not' c.z 'or' c.z)
        .=TRUE by XBOOLEAN:102;
      hence thesis;
    end;
  end;
  hence thesis;
end;
