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

theorem
  for a,b being Function of Y,BOOLEAN holds a 'xor' b = (a 'or' b)
  '&' ('not' a 'or' 'not' b)
proof
  let a,b be Function of Y,BOOLEAN;
    let x be Element of Y;
    ((a 'or' b) '&' ('not' a 'or' 'not' b)).x =(a 'or' b).x '&' ('not' a
    'or' 'not' b).x by MARGREL1:def 20
      .=(a.x 'or' b.x) '&' ('not' a 'or' 'not' b).x by BVFUNC_1:def 4
      .=(a.x 'or' b.x) '&' (('not' a).x 'or' ('not' b).x) by BVFUNC_1:def 4
      .=(('not' a).x '&' (a.x 'or' b.x)) 'or' ((a.x 'or' b.x) '&' (
    'not' b).x) by XBOOLEAN:8
      .=(('not' a).x '&' a.x 'or' ('not' a).x '&' b.x) 'or' (('not' b).x
    '&' (a.x 'or' b.x)) by XBOOLEAN:8
      .=(('not' a).x '&' a.x 'or' ('not' a).x '&' b.x) 'or' (('not' b).x
    '&' a.x 'or' ('not' b).x '&' b.x) by XBOOLEAN:8
      .=('not' a.x '&' a.x 'or' ('not' a).x '&' b.x) 'or' (('not' b).x
    '&' a.x 'or' ('not' b).x '&' b.x) by MARGREL1:def 19
      .=('not' a.x '&' a.x 'or' ('not' a).x '&' b.x) 'or' (('not' b).x
    '&' a.x 'or' 'not' b.x '&' b.x) by MARGREL1:def 19
      .=(FALSE 'or' ('not' a).x '&' b.x) 'or' (('not' b).x '&' a.x 'or'
    'not' b.x '&' b.x) by XBOOLEAN:138
      .=(FALSE 'or' ('not' a).x '&' b.x) 'or' (('not' b).x '&' a.x 'or'
    FALSE) by XBOOLEAN:138
      .=(('not' a).x '&' b.x) 'or' (('not' b).x '&' a.x 'or' FALSE)
      .=(('not' a).x '&' b.x) 'or' (a.x '&' ('not' b).x)
      .=('not' a '&' b).x 'or' (a.x '&' ('not' b).x) by MARGREL1:def 20
      .=('not' a '&' b).x 'or' (a '&' 'not' b).x by MARGREL1:def 20
      .=('not' a '&' b 'or' a '&' 'not' b).x by BVFUNC_1:def 4
      .=(a 'xor' b).x by BVFUNC_4:9;
    hence thesis;
end;
