reserve Y for non empty set;

theorem
  for a,b being Function of Y,BOOLEAN holds (a 'imp' b)=I_el(Y)
  iff ('not' b 'imp' 'not' a)=I_el(Y)
proof
  let a,b be Function of Y,BOOLEAN;
A1: now
    assume
A2: ('not' b 'imp' 'not' a)=I_el(Y);
    for x being Element of Y holds (a 'imp' b).x=TRUE
    proof
      let x be Element of Y;
      ('not' b 'imp' 'not' a).x=TRUE by A2,BVFUNC_1:def 11;
      then ('not' ('not' b).x) 'or' ('not' a).x=TRUE by BVFUNC_1:def 8;
      then ('not' 'not' b.x) 'or' ('not' a).x=TRUE by MARGREL1:def 19;
      then
A3:   ('not' 'not' b.x) 'or' 'not' a.x=TRUE by MARGREL1:def 19;
A4:   ('not' a.x)=TRUE or ('not' a.x)=FALSE by XBOOLEAN:def 3;
      now
        per cases by A3,A4,BINARITH:3;
        case
          ('not' a.x)=TRUE;
          then (a 'imp' b).x =TRUE 'or' b.x by BVFUNC_1:def 8
            .=TRUE by BINARITH:10;
          hence thesis;
        end;
        case
          b.x=TRUE;
          then (a 'imp' b).x =('not' a.x) 'or' TRUE by BVFUNC_1:def 8
            .=TRUE by BINARITH:10;
          hence thesis;
        end;
      end;
      hence thesis;
    end;
    hence a 'imp' b=I_el(Y) by BVFUNC_1:def 11;
  end;
  now
    assume
A5: (a 'imp' b)=I_el(Y);
    for x being Element of Y holds ('not' b 'imp' 'not' a).x=TRUE
    proof
      let x be Element of Y;
      (a 'imp' b).x=TRUE by A5,BVFUNC_1:def 11;
      then
A6:   ('not' a.x) 'or' b.x=TRUE by BVFUNC_1:def 8;
A7:   ('not' a.x)=TRUE or ('not' a.x)=FALSE by XBOOLEAN:def 3;
      now
        per cases by A6,A7,BINARITH:3;
        case
A8:       ('not' a.x)=TRUE;
          ('not' b 'imp' 'not' a).x =('not' ('not' b).x) 'or' ('not' a).x
          by BVFUNC_1:def 8
            .=('not' ('not' b).x) 'or' TRUE by A8,MARGREL1:def 19
            .=TRUE by BINARITH:10;
          hence thesis;
        end;
        case
A9:       b.x=TRUE;
          ('not' b).x='not' b.x by MARGREL1:def 19;
          then ('not' b 'imp' 'not' a).x =('not' 'not' b.x) 'or' ('not' a).x
          by BVFUNC_1:def 8
            .=TRUE by A9,BINARITH:10;
          hence thesis;
        end;
      end;
      hence thesis;
    end;
    hence 'not' b 'imp' 'not' a=I_el(Y) by BVFUNC_1:def 11;
  end;
  hence thesis by A1;
end;
