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