reserve Al for QC-alphabet;
reserve i,j,k for Nat,
  A,D for non empty set;
reserve f1,f2 for Element of Funcs(Valuations_in(Al,A),BOOLEAN),
  x,x1,y for bound_QC-variable of Al,
  v,v1 for Element of Valuations_in(Al,A);
reserve ll for CQC-variable_list of k,Al;
reserve p,q,s,t for Element of CQC-WFF(Al),
  J for interpretation of Al,A,
  P for QC-pred_symbol of k,Al,
  r for Element of relations_on A;
reserve u,w,z for Element of BOOLEAN;
reserve w,v2 for Element of Valuations_in(Al,A),
  z for bound_QC-variable of Al;
reserve u,w for Element of Valuations_in(Al,A);
reserve s9 for QC-formula of Al;

theorem Th33:
  J,v |= p '&' q => q '&' p
proof
  thus Valid(p '&' q => q '&' p, J).v = TRUE
  proof
    assume not Valid(p '&' q => q '&' p, J).v = TRUE;
    then
A1: Valid(p '&' q => q '&' p, J).v = FALSE by XBOOLEAN:def 3;
    Valid(p '&' q => q '&' p, J).v = Valid('not'((p '&' q) '&' 'not' (q
    '&' p)), J).v by QC_LANG2:def 2
      .= 'not'(Valid(((p '&' q) '&' 'not'(q '&' p)), J).v) by Th10
      .= 'not'((Valid(p '&' q, J).v) '&' (Valid('not' (q '&' p), J).v)) by Th12
      .= 'not'((Valid(p '&' q, J).v) '&' 'not' (Valid(q '&' p, J).v)) by Th10;
    then
A2: (Valid(p '&' q, J).v) '&' 'not'(Valid(q '&' p, J).v) = TRUE by A1,
MARGREL1:11;
    then 'not' (Valid(q '&' p, J).v) = TRUE by MARGREL1:12;
    then
A3: Valid(q '&' p, J).v = FALSE by MARGREL1:11;
    Valid(p '&' q, J).v = TRUE by A2,MARGREL1:12;
    then (Valid(p, J).v) '&' (Valid(q, J).v) = TRUE by Th12;
    hence thesis by A3,Th12;
  end;
end;
