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