reserve A for QC-alphabet;
reserve p, q, r, s, p1, q1 for Element of CQC-WFF(A),
  X, Y, Z, X1, X2 for Subset of CQC-WFF(A),
  h for QC-formula of A,
  x, y for bound_QC-variable of A,
  n for Element of NAT;

theorem Th50:
  p <==> q iff p => q is valid & q => p is valid
proof
A1: now
    assume that
A2: p => q is valid and
A3: q => p is valid;
A4: {}(CQC-WFF(A)) |- q => p by A3,CQC_THE1:def 9;
    {}(CQC-WFF(A)) |- p => q by A2,CQC_THE1:def 9;
    then {}(CQC-WFF(A)) |- (p => q) '&' (q => p) by A4,Lm2;
    then (p => q) '&' (q => p) is valid by CQC_THE1:def 9;
    then p <=> q is valid by QC_LANG2:def 4;
    hence p <==> q;
  end;
  now
    assume p <==> q;
    then p <=> q is valid;
    then (p => q) '&' (q => p) is valid by QC_LANG2:def 4;
    then
A5: {}(CQC-WFF(A)) |- (p => q) '&' (q => p) by CQC_THE1:def 9;
    then
A6: {}(CQC-WFF(A)) |- q => p by Lm3;
    {}(CQC-WFF(A)) |- p => q by A5,Lm3;
    hence p => q is valid & q => p is valid by A6,CQC_THE1:def 9;
  end;
  hence thesis by A1;
end;
