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

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

let J be interpretation of Al,A; :: thesis: ( J,v |= p => q iff ( (Valid (p,J)) . v = FALSE or (Valid (q,J)) . v = TRUE ) )
A1: now :: thesis: ( ( (Valid (p,J)) . v = FALSE or (Valid (q,J)) . v = TRUE ) implies J,v |= p => q )
A2: now :: thesis: ( (Valid (q,J)) . v = TRUE implies J,v |= p => q )
assume A3: (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 ;
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 Th10;
then (Valid ((p '&' ('not' q)),J)) . v = TRUE by MARGREL1:11;
then ((Valid (p,J)) . v) '&' ((Valid (('not' q),J)) . v) = TRUE by Th12;
then ((Valid (p,J)) . v) '&' ('not' ((Valid (q,J)) . v)) = TRUE by Th10;
then 'not' ((Valid (q,J)) . v) = TRUE by MARGREL1:12;
hence contradiction by A3, MARGREL1:11; :: thesis: verum
end;
A4: now :: thesis: ( (Valid (p,J)) . v = FALSE implies J,v |= p => q )
assume (Valid (p,J)) . v = FALSE ; :: thesis: J,v |= p => q
then ((Valid (p,J)) . v) '&' ((Valid (('not' q),J)) . v) = FALSE by MARGREL1:12;
then (Valid ((p '&' ('not' q)),J)) . v = FALSE by Th12;
then 'not' ((Valid ((p '&' ('not' q)),J)) . v) = TRUE by MARGREL1:11;
then (Valid (('not' (p '&' ('not' q))),J)) . v = TRUE by Th10;
then (Valid ((p => q),J)) . v = TRUE by QC_LANG2:def 2;
hence J,v |= p => q ; :: thesis: verum
end;
assume ( (Valid (p,J)) . v = FALSE or (Valid (q,J)) . v = TRUE ) ; :: thesis: J,v |= p => q
hence J,v |= p => q by A4, A2; :: thesis: verum
end;
now :: thesis: ( not J,v |= p => q or (Valid (p,J)) . v = FALSE or (Valid (q,J)) . v = TRUE )
assume J,v |= p => q ; :: thesis: ( (Valid (p,J)) . v = FALSE or (Valid (q,J)) . v = TRUE )
then (Valid ((p => q),J)) . v = TRUE ;
then (Valid (('not' (p '&' ('not' q))),J)) . v = TRUE by QC_LANG2:def 2;
then 'not' ((Valid ((p '&' ('not' q)),J)) . v) = TRUE by Th10;
then (Valid ((p '&' ('not' q)),J)) . v = FALSE by MARGREL1:11;
then ((Valid (p,J)) . v) '&' ((Valid (('not' q),J)) . v) = FALSE by Th12;
then ((Valid (p,J)) . v) '&' ('not' ((Valid (q,J)) . v)) = FALSE by Th10;
then ( (Valid (p,J)) . v = FALSE or 'not' ((Valid (q,J)) . v) = FALSE ) by MARGREL1:12;
hence ( (Valid (p,J)) . v = FALSE or (Valid (q,J)) . v = TRUE ) by MARGREL1:11; :: thesis: verum
end;
hence ( J,v |= p => q iff ( (Valid (p,J)) . v = FALSE or (Valid (q,J)) . v = TRUE ) ) by A1; :: thesis: verum