let Y be non empty set ; :: thesis: for a, b, c, d being Element of Funcs Y,BOOLEAN holds (a 'imp' b) '&' (c 'imp' d) '<' (a '&' c) 'imp' (b '&' d)
let a, b, c, d be Element of Funcs Y,BOOLEAN ; :: thesis: (a 'imp' b) '&' (c 'imp' d) '<' (a '&' c) 'imp' (b '&' d)
let z be Element of Y; :: according to BVFUNC_1:def 15 :: thesis: ( not ((a 'imp' b) '&' (c 'imp' d)) . z = TRUE or ((a '&' c) 'imp' (b '&' d)) . z = TRUE )
assume A1: ((a 'imp' b) '&' (c 'imp' d)) . z = TRUE ; :: thesis: ((a '&' c) 'imp' (b '&' d)) . z = TRUE
A2: ((a 'imp' b) '&' (c 'imp' d)) . z = ((a 'imp' b) . z) '&' ((c 'imp' d) . z) by MARGREL1:def 21
.= ((('not' a) 'or' b) . z) '&' ((c 'imp' d) . z) by BVFUNC_4:8
.= ((('not' a) 'or' b) . z) '&' ((('not' c) 'or' d) . z) by BVFUNC_4:8
.= ((('not' a) . z) 'or' (b . z)) '&' ((('not' c) 'or' d) . z) by BVFUNC_1:def 7
.= ((('not' a) . z) 'or' (b . z)) '&' ((('not' c) . z) 'or' (d . z)) by BVFUNC_1:def 7 ;
now
assume A3: ((a '&' c) 'imp' (b '&' d)) . z <> TRUE ; :: thesis: ((a '&' c) 'imp' (b '&' d)) . z = TRUE
A4: ((a '&' c) 'imp' (b '&' d)) . z = (('not' (a '&' c)) 'or' (b '&' d)) . z by BVFUNC_4:8
.= (('not' (a '&' c)) . z) 'or' ((b '&' d) . z) by BVFUNC_1:def 7
.= ((('not' a) 'or' ('not' c)) . z) 'or' ((b '&' d) . z) by BVFUNC_1:17
.= ((('not' a) . z) 'or' (('not' c) . z)) 'or' ((b '&' d) . z) by BVFUNC_1:def 7
.= ((('not' a) . z) 'or' (('not' c) . z)) 'or' ((b . z) '&' (d . z)) by MARGREL1:def 21 ;
A5: ( (('not' a) . z) 'or' (('not' c) . z) = TRUE or (('not' a) . z) 'or' (('not' c) . z) = FALSE ) by XBOOLEAN:def 3;
A6: ( (b . z) '&' (d . z) = TRUE or (b . z) '&' (d . z) = FALSE ) by XBOOLEAN:def 3;
A7: ( ('not' c) . z = TRUE or ('not' c) . z = FALSE ) by XBOOLEAN:def 3;
now
per cases ( b . z = FALSE or d . z = FALSE ) by A3, A4, A6, MARGREL1:45;
case b . z = FALSE ; :: thesis: ((a '&' c) 'imp' (b '&' d)) . z = TRUE
thus ((a '&' c) 'imp' (b '&' d)) . z = TRUE by A1, A2, A4, A5, A7; :: thesis: verum
end;
case d . z = FALSE ; :: thesis: ((a '&' c) 'imp' (b '&' d)) . z = TRUE
thus ((a '&' c) 'imp' (b '&' d)) . z = TRUE by A1, A2, A4, A5, A7; :: thesis: verum
end;
end;
end;
hence ((a '&' c) 'imp' (b '&' d)) . z = TRUE ; :: thesis: verum
end;
hence ((a '&' c) 'imp' (b '&' d)) . z = TRUE ; :: thesis: verum