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

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