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 Th34:
  J,v |= ('not' p => p) => p
proof
  'not' p => p = 'not'('not' p '&' 'not' p) by QC_LANG2:def 2;
  then
A1: Valid(('not' p => p) => p, J).v = Valid('not'('not'('not' p '&' 'not' p)
  '&' 'not' p), J).v by QC_LANG2:def 2
    .= 'not'(Valid('not'('not' p '&' 'not' p) '&' 'not' p, J).v) by Th10
    .= 'not'((Valid('not'('not' p '&' 'not' p), J).v) '&' (Valid('not' p, J)
  .v)) by Th12;
  Valid('not'('not' p '&' 'not' p), J).v = 'not'(Valid('not' p '&' 'not' p
  , J).v) by Th10
    .= 'not'(Valid('not' p, J).v) by Th22
    .= 'not' 'not'(Valid(p, J).v) by Th10
    .= Valid(p, J).v;
  then
  Valid(('not' p => p) => p, J).v='not'((Valid(p, J).v) '&' 'not' (Valid(p
  , J).v)) by A1,Th10
    .= TRUE by XBOOLEAN:102;
  hence Valid(('not' p => p) => p, J).v = TRUE;
end;
