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;

theorem Th25:
  for a1,b1,a2,b2 being Function of Y,BOOLEAN holds ((a1
'imp' a2) '&' (b1 'imp' b2) '&' 'not'(a2 '&' b2)) 'imp' 'not' (a1 '&' b1)=I_el(
  Y)
proof
  let a1,b1,a2,b2 be Function of Y,BOOLEAN;
  for z being Element of Y st ((a1 'imp' a2) '&' (b1 'imp' b2) '&' 'not'(
  a2 '&' b2)).z=TRUE holds ('not'( a1 '&' b1)).z=TRUE
  proof
    let z be Element of Y;
A1: ((a1 'imp' a2) '&' (b1 'imp' b2) '&' 'not'( a2 '&' b2)).z =((a1 'imp'
    a2) '&' (b1 'imp' b2)).z '&' ('not'( a2 '&' b2)).z by MARGREL1:def 20
      .=((a1 'imp' a2).z '&' (b1 'imp' b2).z) '&' ('not'( a2 '&' b2)).z by
MARGREL1:def 20
      .=(('not' a1 'or' a2).z '&' (b1 'imp' b2).z) '&' ('not'( a2 '&' b2)).z
    by BVFUNC_4:8
      .=(('not' a1 'or' a2).z '&' ('not' b1 'or' b2).z) '&' ('not' (a2 '&'
    b2)).z by BVFUNC_4:8
      .=((('not' a1).z 'or' (a2).z) '&' ('not' b1 'or' b2).z) '&' ('not'( a2
    '&' b2)).z by BVFUNC_1:def 4
      .=((('not' a1).z 'or' (a2).z) '&' (('not' b1).z 'or' (b2).z)) '&' (
    'not'( a2 '&' b2)).z by BVFUNC_1:def 4
      .=((('not' a1).z 'or' (a2).z) '&' (('not' b1).z 'or' (b2).z)) '&' ((
    'not' a2 'or' 'not' b2).z) by BVFUNC_1:14
      .=((('not' a1).z 'or' (a2).z) '&' (('not' b1).z 'or' (b2).z)) '&' ((
    'not' a2).z 'or' ('not' b2).z) by BVFUNC_1:def 4;
    assume
A2: ((a1 'imp' a2) '&' (b1 'imp' b2) '&' 'not'( a2 '&' b2)).z=TRUE;
    now
A3:   ('not' b1).z=TRUE or ('not' b1).z=FALSE by XBOOLEAN:def 3;
A4:   ('not' a1).z=TRUE or ('not' a1).z=FALSE by XBOOLEAN:def 3;
A5:   ('not'( a1 '&' b1)).z =('not' a1 'or' 'not' b1).z by BVFUNC_1:14
        .=('not' a1).z 'or' ('not' b1).z by BVFUNC_1:def 4;
      assume ('not'( a1 '&' b1)).z<>TRUE;
      then ((a1 'imp' a2) '&' (b1 'imp' b2) '&' 'not'( a2 '&' b2)).z =((b2).z
'&' (a2).z) '&' ('not' a2).z 'or' ((a2).z '&' (b2).z) '&' ('not' b2).z by A1,A5
,A4,A3,XBOOLEAN:8
        .=b2.z '&' ((a2).z '&' ('not' a2).z) 'or' (a2).z '&' ((b2).z '&' (
      'not' b2).z)
        .=b2.z '&' ((a2).z '&' 'not' (a2).z) 'or' (a2).z '&' ((b2).z '&' (
      'not' b2).z) by MARGREL1:def 19
        .=b2.z '&' ((a2).z '&' 'not' (a2).z) 'or' (a2).z '&' ((b2).z '&'
      'not' (b2).z) by MARGREL1:def 19
        .=b2.z '&' FALSE 'or' (a2).z '&' ((b2).z '&' 'not' (b2).z) by
XBOOLEAN:138
        .=FALSE 'or' FALSE '&' a2.z by XBOOLEAN:138
        .=FALSE;
      hence contradiction by A2;
    end;
    hence thesis;
  end;
 hence thesis by BVFUNC_1:16,def 12;
end;
