reserve Y for non empty set;
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) 'imp' ((
  a 'imp' (b 'imp' c)) 'imp' (a 'imp' c)) = I_el(Y)
proof
  let a,b,c be Function of Y,BOOLEAN;
  for x being Element of Y holds ((a 'imp' b) 'imp' ((a 'imp' (b 'imp' c))
  'imp' (a 'imp' c))).x=TRUE
  proof
    let x be Element of Y;
    (a 'imp' b) 'imp' ((a 'imp' (b 'imp' c)) 'imp' (a 'imp' c)) ='not' (a
    'imp' b) 'or' ((a 'imp' (b 'imp' c)) 'imp' (a 'imp' c)) by BVFUNC_4:8
      .='not'('not' a 'or' b) 'or' ((a 'imp' (b 'imp' c)) 'imp' (a 'imp' c))
    by BVFUNC_4:8
      .='not'('not' a 'or' b) 'or' (('not' a 'or' (b 'imp' c)) 'imp' (a
    'imp' c)) by BVFUNC_4:8
      .='not'('not' a 'or' b) 'or' (('not' a 'or' ('not' b 'or' c)) 'imp' (a
    'imp' c)) by BVFUNC_4:8
      .='not'('not' a 'or' b) 'or' (('not' a 'or' ('not' b 'or' c)) 'imp' (
    'not' a 'or' c)) by BVFUNC_4:8
      .='not'('not' a 'or' b) 'or' ('not'('not' a 'or' ('not' b 'or' c))
    'or' ('not' a 'or' c)) by BVFUNC_4:8
      .=('not' 'not' a '&' 'not' b) 'or' ('not'('not' a 'or' ('not' b 'or' c
    )) 'or' ( 'not' a 'or' c)) by BVFUNC_1:13
      .=('not' 'not' a '&' 'not' b) 'or' (('not' 'not' a '&' 'not'('not' b
    'or' c)) 'or' ('not' a 'or' c)) by BVFUNC_1:13
      .=(a '&' 'not' b) 'or' (('not' 'not' a '&' ('not' 'not' b '&' 'not' c)
    ) 'or' ('not' a 'or' c)) by BVFUNC_1:13
      .=(a '&' 'not' b) 'or' ((a 'or' ('not' a 'or' c)) '&' ((b '&' 'not' c)
    'or' ('not' a 'or' c))) by BVFUNC_1:11
      .=(a '&' 'not' b) 'or' (((a 'or' 'not' a) 'or' c) '&' ((b '&' 'not' c)
    'or' ('not' a 'or' c))) by BVFUNC_1:8
      .=(a '&' 'not' b) 'or' ((I_el(Y) 'or' c) '&' ((b '&' 'not' c) 'or' (
    'not' a 'or' c))) by BVFUNC_4:6
      .=(a '&' 'not' b) 'or' (I_el(Y) '&' ((b '&' 'not' c) 'or' ('not' a
    'or' c))) by BVFUNC_1:10
      .=(a '&' 'not' b) 'or' ((b '&' 'not' c) 'or' ('not' a 'or' c)) by
BVFUNC_1:6
      .=(a '&' 'not' b) 'or' ((b 'or' ('not' a 'or' c)) '&' ('not' c 'or' (
    'not' a 'or' c))) by BVFUNC_1:11
      .=(a '&' 'not' b) 'or' ((b 'or' ('not' a 'or' c)) '&' (('not' c 'or' c
    ) 'or' 'not' a)) by BVFUNC_1:8
      .=(a '&' 'not' b) 'or' ((b 'or' ('not' a 'or' c)) '&' (I_el(Y) 'or'
    'not' a)) by BVFUNC_4:6
      .=(a '&' 'not' b) 'or' ((b 'or' ('not' a 'or' c)) '&' I_el(Y)) by
BVFUNC_1:10
      .=(a '&' 'not' b) 'or' (b 'or' ('not' a 'or' c)) by BVFUNC_1:6
      .=(a 'or' (b 'or' ('not' a 'or' c))) '&' ('not' b 'or' (b 'or' ('not'
    a 'or' c))) by BVFUNC_1:11
      .=(a 'or' (b 'or' ('not' a 'or' c))) '&' (('not' b 'or' b) 'or' ('not'
    a 'or' c)) by BVFUNC_1:8
      .=(a 'or' (b 'or' ('not' a 'or' c))) '&' (I_el(Y) 'or' ('not' a 'or' c
    )) by BVFUNC_4:6
      .=(a 'or' (b 'or' ('not' a 'or' c))) '&' I_el(Y) by BVFUNC_1:10
      .=a 'or' (b 'or' ('not' a 'or' c)) by BVFUNC_1:6
      .=a 'or' (('not' a 'or' b) 'or' c) by BVFUNC_1:8
      .=a 'or' ('not' a 'or' b) 'or' c by BVFUNC_1:8
      .=(a 'or' 'not' a) 'or' b 'or' c by BVFUNC_1:8
      .=I_el(Y) 'or' b 'or' c by BVFUNC_4:6
      .=I_el(Y) 'or' c by BVFUNC_1:10
      .=I_el(Y) by BVFUNC_1:10;
    hence thesis by BVFUNC_1:def 11;
  end;
  hence thesis by BVFUNC_1:def 11;
end;
