let Y be non empty set ; :: thesis: for a1, b1, a2, b2 being Element of Funcs Y,BOOLEAN holds (((a1 'imp' a2) '&' (b1 'imp' b2)) '&' ('not' (a2 '&' b2))) 'imp' ('not' (a1 '&' b1)) = I_el Y
let a1, b1, a2, b2 be Element of Funcs Y,BOOLEAN ; :: thesis: (((a1 'imp' a2) '&' (b1 'imp' b2)) '&' ('not' (a2 '&' b2))) 'imp' ('not' (a1 '&' b1)) = I_el Y
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; :: thesis: ( (((a1 'imp' a2) '&' (b1 'imp' b2)) '&' ('not' (a2 '&' b2))) . z = TRUE implies ('not' (a1 '&' b1)) . z = TRUE )
assume A1: (((a1 'imp' a2) '&' (b1 'imp' b2)) '&' ('not' (a2 '&' b2))) . z = TRUE ; :: thesis: ('not' (a1 '&' b1)) . z = TRUE
A2: (((a1 'imp' a2) '&' (b1 'imp' b2)) '&' ('not' (a2 '&' b2))) . z = (((a1 'imp' a2) '&' (b1 'imp' b2)) . z) '&' (('not' (a2 '&' b2)) . z) by MARGREL1:def 21
.= (((a1 'imp' a2) . z) '&' ((b1 'imp' b2) . z)) '&' (('not' (a2 '&' b2)) . z) by MARGREL1:def 21
.= (((('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 7
.= (((('not' a1) . z) 'or' (a2 . z)) '&' ((('not' b1) . z) 'or' (b2 . z))) '&' (('not' (a2 '&' b2)) . z) by BVFUNC_1:def 7
.= (((('not' a1) . z) 'or' (a2 . z)) '&' ((('not' b1) . z) 'or' (b2 . z))) '&' ((('not' a2) 'or' ('not' b2)) . z) by BVFUNC_1:17
.= (((('not' a1) . z) 'or' (a2 . z)) '&' ((('not' b1) . z) 'or' (b2 . z))) '&' ((('not' a2) . z) 'or' (('not' b2) . z)) by BVFUNC_1:def 7 ;
now
assume A3: ('not' (a1 '&' b1)) . z <> TRUE ; :: thesis: contradiction
A4: ('not' (a1 '&' b1)) . z = (('not' a1) 'or' ('not' b1)) . z by BVFUNC_1:17
.= (('not' a1) . z) 'or' (('not' b1) . z) by BVFUNC_1:def 7 ;
A5: ( ('not' a1) . z = TRUE or ('not' a1) . z = FALSE ) by XBOOLEAN:def 3;
( ('not' b1) . z = TRUE or ('not' b1) . z = FALSE ) by XBOOLEAN:def 3;
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 A2, A3, A4, A5, 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 20
.= ((b2 . z) '&' ((a2 . z) '&' ('not' (a2 . z)))) 'or' ((a2 . z) '&' ((b2 . z) '&' ('not' (b2 . z)))) by MARGREL1:def 20
.= ((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 A1; :: thesis: verum
end;
hence ('not' (a1 '&' b1)) . z = TRUE ; :: thesis: verum
end;
then ((a1 'imp' a2) '&' (b1 'imp' b2)) '&' ('not' (a2 '&' b2)) '<' 'not' (a1 '&' b1) by BVFUNC_1:def 15;
hence (((a1 'imp' a2) '&' (b1 'imp' b2)) '&' ('not' (a2 '&' b2))) 'imp' ('not' (a1 '&' b1)) = I_el Y by BVFUNC_1:19; :: thesis: verum