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 Th38:
  J,v |= All(x,p) => p
proof
  thus Valid(All(x,p) => p, J).v = TRUE
  proof
    assume not Valid(All(x,p) => p, J).v = TRUE;
    then
A1: Valid(All(x,p) => p, J).v = FALSE by XBOOLEAN:def 3;
    Valid(All(x,p) => p, J).v = Valid('not'(All(x,p) '&' 'not' p), J).v by
QC_LANG2:def 2
      .= 'not'(Valid(All(x,p) '&' 'not' p, J).v) by Th10
      .= 'not'((Valid(All(x,p), J).v) '&' (Valid('not' p, J).v)) by Th12
      .= 'not'((Valid(All(x,p), J).v) '&' 'not' (Valid(p, J).v)) by Th10;
    then
A2: (Valid(All(x,p), J).v) '&' 'not'(Valid(p, J).v) = TRUE by A1,MARGREL1:11;
    then 'not' (Valid(p, J).v) = TRUE by MARGREL1:12;
    then
A3: Valid(p, J).v = FALSE by MARGREL1:11;
    Valid(All(x,p), J).v=TRUE by A2,MARGREL1:12;
    then FOR_ALL(x, Valid(p,J)).v = TRUE by Lm1;
    hence thesis by A3,Th25;
  end;
end;
