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 Th35:
  J,v |= p => ('not' p => q)
proof
  'not' p => q = 'not'('not' p '&' 'not' q) by QC_LANG2:def 2;
  then
A1: Valid(p => ('not' p => q), J).v = Valid('not'(p '&' 'not'('not'('not' p
  '&' 'not' q))), J).v by QC_LANG2:def 2
    .= 'not'(Valid((p '&' 'not'('not'('not' p '&' 'not' q))), J).v) by Th10
    .= 'not'((Valid(p,J).v) '&' (Valid('not'('not'('not' p '&' 'not' q)), J)
  .v)) by Th12;
  Valid('not'('not'('not' p '&' 'not' q)), J).v = 'not'(Valid('not'('not'
  p '&' 'not' q), J).v) by Th10
    .= 'not' 'not'(Valid('not' p '&' 'not' q, J).v) by Th10
    .= (Valid('not' p, J).v) '&' (Valid('not' q, J).v) by Th12
    .= 'not'(Valid(p, J).v) '&' (Valid('not' q, J).v) by Th10
    .= 'not'(Valid(p, J).v) '&' 'not'(Valid(q, J).v) by Th10;
  then
A2: Valid(p => ('not' p => q), J).v = 'not'(((Valid(p,J).v) '&' 'not'(Valid(
  p, J).v)) '&' 'not'(Valid(q, J).v)) by A1,MARGREL1:16
    .= 'not'(FALSE '&' 'not'(Valid(q, J).v)) by XBOOLEAN:138;
  FALSE '&' 'not'(Valid(q, J).v) = FALSE by MARGREL1:13;
  hence Valid(p => ('not' p => q), J).v = TRUE by A2,MARGREL1:11;
end;
