reserve p,q,r,s,A,B for Element of PL-WFF,
  F,G,H for Subset of PL-WFF,
  k,n for Element of NAT,
  f,f1,f2 for FinSequence of PL-WFF;
reserve M for PLModel;

theorem Th17:
 ('not' q => 'not' p) => (('not' q => p) => q) is tautology
 proof
   let M;
   thus (SAT M).(('not' q => 'not' p) => (('not' q => p)=>q))
   = (SAT M).('not' q => 'not' p) => (SAT M).(('not' q => p)=>q) by Def11
   .= ((SAT M).('not' q) => (SAT M).('not' p)) =>
   (SAT M).(('not' q => p)=>q) by Def11
   .= (('not' (SAT M).q) => ((SAT M).('not' p))) =>
   (SAT M).(('not' q => p)=>q) by semnot2
   .= (('not' (SAT M).q) => ('not' (SAT M).p)) =>
   (SAT M).(('not' q => p)=>q) by semnot2
   .= (('not' (SAT M).q) => ('not' (SAT M).p)) =>
   ((SAT M).('not' q => p)=>(SAT M).q) by Def11
   .= (('not' (SAT M).q) => ('not' (SAT M).p)) =>
   (((SAT M).('not' q) => (SAT M).p)=>(SAT M).q) by Def11
   .= (('not' (SAT M).q) => ('not' (SAT M).p)) =>
   ((('not' (SAT M).q) => (SAT M).p)=>(SAT M).q) by semnot2
   .=1 by Th17a;
 end;
