let A be non empty set ; :: thesis: for v being Element of Valuations_in A
for p, q being Element of CQC-WFF
for J being interpretation of A holds
( J,v |= p => q iff ( (Valid p,J) . v = FALSE or (Valid q,J) . v = TRUE ) )

let v be Element of Valuations_in A; :: thesis: for p, q being Element of CQC-WFF
for J being interpretation of A holds
( J,v |= p => q iff ( (Valid p,J) . v = FALSE or (Valid q,J) . v = TRUE ) )

let p, q be Element of CQC-WFF ; :: thesis: for J being interpretation of A holds
( J,v |= p => q iff ( (Valid p,J) . v = FALSE or (Valid q,J) . v = TRUE ) )

let J be interpretation of A; :: thesis: ( J,v |= p => q iff ( (Valid p,J) . v = FALSE or (Valid q,J) . v = TRUE ) )
A1: now
assume J,v |= p => q ; :: thesis: ( (Valid p,J) . v = FALSE or (Valid q,J) . v = TRUE )
then (Valid (p => q),J) . v = TRUE by Def12;
then (Valid ('not' (p '&' ('not' q))),J) . v = TRUE by QC_LANG2:def 2;
then 'not' ((Valid (p '&' ('not' q)),J) . v) = TRUE by Th20;
then (Valid (p '&' ('not' q)),J) . v = FALSE by MARGREL1:41;
then ((Valid p,J) . v) '&' ((Valid ('not' q),J) . v) = FALSE by Th22;
then ((Valid p,J) . v) '&' ('not' ((Valid q,J) . v)) = FALSE by Th20;
then ( (Valid p,J) . v = FALSE or 'not' ((Valid q,J) . v) = FALSE ) by MARGREL1:45;
hence ( (Valid p,J) . v = FALSE or (Valid q,J) . v = TRUE ) by MARGREL1:41; :: thesis: verum
end;
now
assume A2: ( (Valid p,J) . v = FALSE or (Valid q,J) . v = TRUE ) ; :: thesis: J,v |= p => q
A3: now
assume (Valid p,J) . v = FALSE ; :: thesis: J,v |= p => q
then ((Valid p,J) . v) '&' ((Valid ('not' q),J) . v) = FALSE by MARGREL1:45;
then (Valid (p '&' ('not' q)),J) . v = FALSE by Th22;
then 'not' ((Valid (p '&' ('not' q)),J) . v) = TRUE by MARGREL1:41;
then (Valid ('not' (p '&' ('not' q))),J) . v = TRUE by Th20;
then (Valid (p => q),J) . v = TRUE by QC_LANG2:def 2;
hence J,v |= p => q by Def12; :: thesis: verum
end;
now
assume A4: (Valid q,J) . v = TRUE ; :: thesis: J,v |= p => q
assume not J,v |= p => q ; :: thesis: contradiction
then (Valid (p => q),J) . v <> TRUE by Def12;
then (Valid (p => q),J) . v = FALSE by XBOOLEAN:def 3;
then (Valid ('not' (p '&' ('not' q))),J) . v = FALSE by QC_LANG2:def 2;
then 'not' ((Valid (p '&' ('not' q)),J) . v) = FALSE by Th20;
then (Valid (p '&' ('not' q)),J) . v = TRUE by MARGREL1:41;
then ((Valid p,J) . v) '&' ((Valid ('not' q),J) . v) = TRUE by Th22;
then ((Valid p,J) . v) '&' ('not' ((Valid q,J) . v)) = TRUE by Th20;
then ( (Valid p,J) . v = TRUE & 'not' ((Valid q,J) . v) = TRUE ) by MARGREL1:45;
hence contradiction by A4, MARGREL1:41; :: thesis: verum
end;
hence J,v |= p => q by A2, A3; :: thesis: verum
end;
hence ( J,v |= p => q iff ( (Valid p,J) . v = FALSE or (Valid q,J) . v = TRUE ) ) by A1; :: thesis: verum