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;
reserve x,y for set;

theorem ct:
  F |= A implies F |- A
  proof
    assume
A0: F |= A & not F |- A;then
    consider G such that
A1: F \/ {'not' A} c= G and
A1a: G is consistent and
A1b: G is maximal by th37,th34;
    set M = {Prop n where n is Element of NAT: Prop n in G};
    M c= props
    proof
      let a be object;
      assume a in M;then
      consider k such that
A7:   Prop k = a & Prop k in G;
      thus a in props by A7,defprops;
    end;then
    reconsider M as PLModel;
    defpred P[Element of PL-WFF] means ($1 in G iff M |= $1);
H0: P[FaLSUM]
    proof
      hereby assume FaLSUM in G;then
        G |- FaLSUM & G |- 'not' FaLSUM by thaa,th42;
        hence M |= FaLSUM by A1a;
      end;
      assume M |= FaLSUM;
      hence thesis by Def11;
    end;
H1: for n holds P[Prop n]
    proof
      let n;
      hereby assume Prop n in G;then
        Prop n in M;
        hence M |= Prop n by Def11;
      end;
      assume M |= Prop n;then
      Prop n in M by Def11;then
      consider k such that
A6:   Prop n = Prop k & Prop k in G;
      thus Prop n in G by A6;
    end;
H2: for r,s st P[r] & P[s] holds P[r => s]
    proof
      let r,s;
      assume
A10:  P[r] & P[s];
      per cases;
      suppose
S1:     r => s in G;
        hereby assume
A11:      r=>s in G;
          per cases;
          suppose r in G;then
A12:        G |- r by th42;
            G |- r=>s by A11,th42;then
            G |- s by A12,th43;then
            M |= s by A10,inder,A1a,A1b;then
            (SAT M).r => (SAT M).s = 1;
            hence M |= r=>s by Def11;
          end;
          suppose not r in G;then
            not M |= r by A10;then
            (SAT M).r = 0 by XBOOLEAN:def 3;then
            (SAT M).r => (SAT M).s = 1;
            hence M |= r=>s by Def11;
          end;
        end;
        assume M |= r=>s;
        thus r=>s in G by S1;
    end;
    suppose
S2:   not r => s in G;
        thus r=>s in G implies M |= r=>s by S2;
        assume
A14:    M |= r=>s;
        'not' (r=>s) in G by S2,A1b;then
A16:    G |- 'not' (r=>s) by th42;
        now
          assume s in G;then
A17:      G |- s by th42;
          s=> (r=>s) in PL_axioms by withplax;then
          G |- s=> (r=>s) by th42;then
          G |- (r=>s) by th43,A17;
          hence contradiction by A16,A1a;
        end;then
A13:    not M |= s by A10;
        now
          assume 'not' r in G;then
A15:      G |- 'not' r by th42;
          G |- 'not' r => (r =>s) by naab;then
          G |- r=>s by th43,A15;
          hence contradiction by A16,A1a;
        end;then
        M |= r by A10,A1b;then
        not (SAT M).r => (SAT M).s = 1 by A13;
        hence r=>s in G by A14,Def11;
    end;
    end;
A2: for B holds P[B] from PLInd(H0,H1,H2);
A4: F c= G by XBOOLE_1:11,A1;
A3: M |= F by A4,A2;
    {'not' A} c= G by A1,XBOOLE_1:11;then
    M |= 'not' A by A2,ZFMISC_1:31;then
    not M |= A by semnot;
    hence contradiction by A0,A3;
end;
