reserve A,B,p,q,r for Element of LTLB_WFF,
  M for LTLModel,
  j,k,n for Element of NAT,
  i for Nat,
  X for Subset of LTLB_WFF,
  F for finite Subset of LTLB_WFF,
  f for FinSequence of LTLB_WFF,
  g for Function of LTLB_WFF,BOOLEAN,
  x,y,z for set,
  P,Q,R for PNPair;

theorem Th17: for P be consistent PNPair,f be FinSequence of LTLB_WFF
  st rng f = (comp P)^
  holds {}LTLB_WFF |- P^ => 'not' ((con nega f)/.(len con nega f))
  proof
    let P be consistent PNPair,f be FinSequence of l;
    set c = comp rng P;
    defpred P1a[PNPair] means rng P`1 c= rng $1`1 & rng P`2 c= rng $1`2;
    defpred P1[PNPair] means $1 is consistent & P1a[$1];
    defpred P2[PNPair] means not rng P`1 misses rng $1`2 or
    not rng P`2 misses rng $1`1;
    set c1 = {Pg where Pg is Element of c: P1[Pg]},c2 = c \ c1;
A1: c1 c= c from FRAENKEL:sch 10;
A2: c1 = comp P
    proof
      hereby
        let x be object;
        assume x in c1;
        then consider Pg be Element of c such that
A3:     Pg = x and
A4:     P1[Pg];
        reconsider Pg as consistent PNPair by A4;
        Pg in c;then
        ex Q st Q = Pg & rng Q = tau rng P & rng (Q `1) misses rng (Q `2);
        then Pg is_completion_of P by A4;
        hence x in comp P by A3;
      end;
      let x be object;
      assume x in comp P;
      then consider Q be consistent PNPair such that
A5:   Q = x and
A6:   Q is_completion_of P;
      rng Q`1 misses rng Q `2 & rng Q = tau rng P by LTLAXIO3:30,A6;
      then Q in c;
      then reconsider Q as Element of c;
      P1[Q] by A6;
      hence x in c1 by A5;
    end;
    reconsider c1 as finite Subset of [:l**,l**:] by A1,XBOOLE_1:1;
A7: c = c1 \/ c2 by XBOOLE_1:45,A1;
    consider f2 be FinSequence such that
A8: rng f2 = c2^ and
    f2 is one-to-one by FINSEQ_4:58;
    reconsider f2 as FinSequence of l by A8,FINSEQ_1:def 4;
    set r = kon(nega (f^f2)),s = kon(nega f),t = kon(nega f2);
    assume
A9: rng f = (comp P)^;
A10: now
       let x be PNPair;
       assume
A11:   x in c2;
       then reconsider x1 = x as Element of c by XBOOLE_0:def 5;
       assume P1[x];
       then x1 in c1;
       hence contradiction by A11,XBOOLE_0:def 5;
     end;
A12: now
     let pi be PNPair;
     assume
A13: pi in c2;
     then pi in comp rng P by XBOOLE_0:def 5;then
A14: ex Q st Q = pi & rng Q = tau rng P & rng Q`1 misses rng Q`2;
     per cases by A10,A13;
     suppose
A15:   pi is Inconsistent;
       'not' (pi^) => (P^ => 'not' (pi^)) is ctaut by LTLAXIO2:33;then
       'not' (pi^) => (P^ => 'not' (pi^)) in LTL_axioms by LTLAXIO1:def 17;
       then A16: {}l |- 'not' (pi^) => (P^ => 'not' (pi^)) by LTLAXIO1:42;
       {}l |- 'not' (pi^) by A15;
       hence {}l |- P^ => 'not' (pi^) by A16,LTLAXIO1:43;
     end;
     suppose
A17:   not P1a[pi];
A18:   now
         per cases by A17;
         suppose not rng P`1 c= rng pi`1;
           then consider x being object such that
A19:       x in rng P`1 and
A20:       not x in rng pi`1;
           rng P`1 c= rng P by XBOOLE_1:7;
           then rng P c= tau rng P & x in rng P by LTLAXIO3:16,A19;
           then x in rng pi`2 by A14,XBOOLE_0:def 3,A20;
           then x in rng P`1 /\ rng pi`2 by XBOOLE_0:def 4,A19;
           hence P2[pi] by XBOOLE_0:def 7;
         end;
         suppose not rng P`2 c= rng pi`2;
           then consider x being object such that
A21:       x in rng P`2 and
A22:       not x in rng pi`2;
           rng P`2 c= rng P by XBOOLE_1:7;
           then rng P c= tau rng P & x in rng P by LTLAXIO3:16,A21;
           then x in rng pi`1 by A14,XBOOLE_0:def 3,A22;
           then x in rng P`2 /\ rng pi`1 by XBOOLE_0:def 4,A21;
           hence P2[pi] by XBOOLE_0:def 7;
         end;
       end;
A23:   now
         per cases by A18;
         suppose
A24:       not rng P`1 misses rng pi`2;
           set Q1 = [P`1,pi`2],p = kon(Q1`1),q = kon(nega Q1`2);
           not rng Q1`1 misses rng Q1`2 by A24;
           then Q1 is Inconsistent by LTLAXIO3:30;
           then A25: {}l |- 'not' (Q1^);
A26:       'not' (kon(P`1) '&&' kon(nega pi`2)) => 'not' (P^ '&&' (pi^))
           is ctaut by LTLAXIO2:42;
           'not' (Q1^) => 'not' (P^ '&&' (pi^)) in LTL_axioms
           by A26,LTLAXIO1:def 17;then
           {}l |- 'not' (Q1^) => 'not' (P^ '&&' (pi^)) by LTLAXIO1:42;
           hence {}l |- 'not' (P^ '&&' (pi^)) by LTLAXIO1:43,A25;
         end;
         suppose
A27:       not rng P`2 misses rng pi`1;
           set Q2 = [pi`1,P`2],p = kon(Q2`1),q = kon(nega Q2`2);
           not rng Q2`2 misses rng Q2`1 by A27;
           then Q2 is Inconsistent by LTLAXIO3:30;
           then A28: {}l |- 'not' (Q2^);
A29:       'not' (kon(pi`1) '&&' kon(nega P`2)) => 'not' (P^ '&&' (pi^))
           is ctaut by LTLAXIO2:41;
           'not' (Q2^) => 'not' (P^ '&&' (pi^)) in LTL_axioms
           by A29,LTLAXIO1:def 17;then
           {}l |- 'not' (Q2^) => 'not' (P^ '&&' (pi^)) by LTLAXIO1:42;
           hence {}l |- 'not' (P^ '&&' (pi^)) by LTLAXIO1:43,A28;
         end;
       end;
       'not' (P^ '&&' (pi^)) => (P^ => 'not' (pi^)) is ctaut by LTLAXIO2:37;
       then 'not' (P^ '&&' (pi^)) => (P^ => 'not' (pi^)) in LTL_axioms
       by LTLAXIO1:def 17;then
       {}l |- 'not' (P^ '&&' (pi^)) => (P^ => 'not' (pi^)) by LTLAXIO1:42;
       hence {}l |- P^ => 'not' (pi^) by LTLAXIO1:43,A23;
     end;
   end;
A30: for p st p in c2^ holds {}l |- P^ => 'not' p
     proof
       let p;
       assume p in c2^;
       then ex Q st p = Q^ & Q in c2;
       hence {}l |- P^ => 'not' p by A12;
     end;
A31: now
       per cases;
       suppose
A32:     len f2 = 0;
         P^ => TVERUM is ctaut
         proof
           let g;
           set v = VAL g;
           thus v.(P^ => TVERUM) = v.(P^) => v.TVERUM by LTLAXIO1:def 15
           .= v.(P^) => TRUE by LTLAXIO2:4
           .= 1;
         end;
         then A33: P^ => TVERUM in LTL_axioms by LTLAXIO1:def 17;
         len nega f2 = 0 by A32,LTLAXIO2:def 4;
         then nega f2 = {};
         hence {}l |- P^ => t by A33,LTLAXIO1:42,LTLAXIO2:10;
       end;
       suppose
A34:     len f2 > 0;
         set t1 = con nega f2;
A35:     len nega f2 > 0 by A34,LTLAXIO2:def 4;
         then reconsider lt1 = len t1 as non zero Nat by LTLAXIO2:def 2;
         defpred P3[Nat] means $1 <= len t1 implies{}l |- P^ => (t1/.$1);
A36:     now
           let k be non zero Nat such that
A37:       P3[k];
           thus P3[k+1]
           proof
             set a = t1/.k,b = (nega f2)/.(k+1);
             reconsider k1 = k as non empty Element of NAT by ORDINAL1:def 12;
             assume
A38:         k+1 <= len t1;
            P^ => a => (P^ => b => (P^ => (a '&&' b))) is ctaut by LTLAXIO2:40;
            then P^ => a => (P^ => b => (P^ => (a '&&' b))) in LTL_axioms
            by LTLAXIO1:def 17;
            then {}l |- P^ => a => (P^ => b => (P^ => (a '&&' b)))
            by LTLAXIO1:42;then
A39:        {}l |- P^ => b => (P^ => (a '&&' b))
            by LTLAXIO1:43,A38,NAT_1:13,A37;
A40:        k+1 <= len nega f2 by A38,LTLAXIO2:def 2,A35;
            then k+1 <= len f2 by LTLAXIO2:def 4;
            then A41: k1+1 in dom f2 by NAT_1:12,FINSEQ_3:25;
            then {}l |- P^ => 'not' f2/.(k+1) by PARTFUN2:2,A8,A30;
            then {}l |- P^ => b by LTLAXIO2:8,A41;
          then 1 <= k1 & {}l |- P^ => (a '&&' b) by NAT_1:25,A39,LTLAXIO1:43;
          hence {}l |- P^ => (t1/.(k+1)) by LTLAXIO2:7, NAT_1:13,A40;
        end;
      end;
A42:  P3[1]
      proof
        assume 1 <= len t1;
        1 <= len f2 by A34,NAT_1:25;
        then A43: 1 in dom f2 by FINSEQ_3:25;
        t1/.1 = (nega f2)/.1 by A35,LTLAXIO2:6
        .= 'not' f2/.1 by LTLAXIO2:8,A43;
        hence thesis by PARTFUN2:2,A43,A8,A30;
      end;
      for k being non zero Nat holds P3[k] from NAT_1:sch 10(A42, A36 );
      then {}l |- P^ => (t1/.lt1);
      hence {}l |- P^ => t;
    end;
  end;
A44: nega (f^f2) = (nega f) ^ (nega f2) by LTLAXIO2:16;
     now
       let g;
       set v = VAL g;
A45:   v.r = FALSE or v.r = TRUE by XBOOLEAN:def 3;
A46:   v.r = v.s '&' v.t by LTLAXIO2:17,A44;
       thus v.('not' r => ('not' (s '&&' t)))
       = v.('not' r) => v.('not' (s '&&' t)) by LTLAXIO1:def 15
       .= v.r => v.TFALSUM => (v.('not' (s '&&' t))) by LTLAXIO1:def 15
       .= v.r => FALSE => (v.('not' (s '&&' t))) by LTLAXIO1:def 15
       .= v.r => FALSE => (v.(s '&&' t) => v.TFALSUM) by LTLAXIO1:def 15
       .= v.r => FALSE => (v.(s '&&' t) => FALSE) by LTLAXIO1:def 15
       .= 1 by A45,A46,LTLAXIO1:31;
     end;
     then 'not' r => ('not' (s '&&' t)) is ctaut;then
     'not' r => ('not' (s '&&' t)) in LTL_axioms by LTLAXIO1:def 17;
     then A47: {}l |- 'not' r => ('not' (s '&&' t)) by LTLAXIO1:42;
     'not' (s '&&' t) => (P^ => t => (P^ => 'not' s)) is ctaut by LTLAXIO2:39;
     then 'not' (s '&&' t) => (P^ => t => (P^ => 'not' s)) in LTL_axioms
     by LTLAXIO1: def 17;
     then A48: {}l |- 'not' (s '&&' t) => (P^ => t => (P^ => 'not' s))
     by LTLAXIO1: 42;
     rng (f^f2) = rng f \/ rng f2 by FINSEQ_1:31
     .= c^ by A7,Th10, A9,A2,A8;
     then {}l |- 'not' r by Th16;
     then {}l |- 'not' (s '&&' t) by A47,LTLAXIO1:43;
     then {}l |- P^ => t => (P^ => 'not' s) by A48,LTLAXIO1:43;
     hence {}l |- P^ => 'not' s by LTLAXIO1:43,A31;
   end;
