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