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