reserve n for Element of NAT,
  p,q,r,s for Element of HP-WFF;
reserve V for SetValuation;
reserve P for Permutation of V;

theorem
  p in HP_TAUT implies p is canonical
proof
  set X = {q: q is canonical};
  X c= HP-WFF
  proof
    let x be object;
    assume x in X;
    then ex p st p = x & p is canonical;
    hence thesis;
  end;
  then reconsider X as Subset of HP-WFF;
  X is Hilbert_theory
  proof
    thus VERUM in X;
    let p,q,r;
    thus p => (q => p) in X;
    thus (p => (q => r)) => ((p => q) => (p => r)) in X;
    thus (p '&' q) => p in X;
    thus (p '&' q) => q in X;
    thus p => (q => (p '&' q)) in X;
    assume p in X;
    then
A1: ex s st s = p & s is canonical;
    assume p => q in X;
    then ex s st s = p => q & s is canonical;
    then q is canonical by A1,Th40;
    hence thesis;
  end;
  then
A2: HP_TAUT c= X by HILBERT1:13;
  assume p in HP_TAUT;
  then p in X by A2;
  then ex q st p = q & q is canonical;
  hence thesis;
end;
