let Y be non empty set ; :: thesis: for a, b being Function of Y,BOOLEAN holds (a 'imp' b) '&' ('not' b) '<' 'not' a
let a, b be Function of Y,BOOLEAN; :: thesis: (a 'imp' b) '&' ('not' b) '<' 'not' a
let z be Element of Y; :: according to BVFUNC_1:def 12 :: thesis: ( not ((a 'imp' b) '&' ('not' b)) . z = TRUE or ('not' a) . z = TRUE )
reconsider bz = b . z as boolean object ;
A1: ((a 'imp' b) '&' ('not' b)) . z = ((a 'imp' b) . z) '&' (('not' b) . z) by MARGREL1:def 20
.= ((('not' a) 'or' b) . z) '&' (('not' b) . z) by BVFUNC_4:8
.= (('not' b) . z) '&' ((('not' a) . z) 'or' (b . z)) by BVFUNC_1:def 4
.= ((('not' b) . z) '&' (('not' a) . z)) 'or' ((('not' b) . z) '&' (b . z)) by XBOOLEAN:8
.= ((('not' b) . z) '&' (('not' a) . z)) 'or' (('not' bz) '&' bz) by MARGREL1:def 19
.= ((('not' b) . z) '&' (('not' a) . z)) 'or' FALSE by XBOOLEAN:138
.= (('not' b) . z) '&' (('not' a) . z) ;
assume A2: ((a 'imp' b) '&' ('not' b)) . z = TRUE ; :: thesis: ('not' a) . z = TRUE
now :: thesis: not ('not' a) . z <> TRUE
assume ('not' a) . z <> TRUE ; :: thesis: contradiction
then (('not' b) . z) '&' (('not' a) . z) = FALSE '&' (('not' b) . z) by XBOOLEAN:def 3
.= FALSE ;
hence contradiction by A2, A1; :: thesis: verum
end;
hence ('not' a) . z = TRUE ; :: thesis: verum