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 Th16: for F be finite Subset of LTLB_WFF,f be FinSequence of LTLB_WFF
  st rng f = (comp F)^ holds
  {}LTLB_WFF |- 'not' ((con nega f)/.(len con nega f))
  proof
    let F be finite Subset of l,f be FinSequence of l;
    defpred P[Nat] means for F be finite Subset of l st card tau F = $1
    holds (for f be FinSequence of l st rng f = (comp F)^ holds {}l |- alt(f));
    assume
A1: rng f = (comp F)^;
A2: card tau F = card tau F;
A3: now
      let k be Nat;
      assume
A4:   P[k];
      thus P[k+1]
      proof
        let G be finite Subset of l;
        assume
A5:     card tau G = k+1;
        then reconsider H = G as non empty finite Subset of l;
        let g be FinSequence of l;
        consider A such that
A6:     A in tau H and
A7:     tau ((tau H) \ {A}) = (tau H) \ {A} by Th15;
        set Fp = tau H \ {A};
        consider ff be FinSequence such that
A8:     rng ff = comp Fp
        and ff is one-to-one by FINSEQ_4:58;
        reconsider ff as FinSequence of [:l**,l**:] by A8,FINSEQ_1:def 4;
        deffunc form1(Nat) = [((ff/.$1)`1)^^<*A*>,((ff/.$1)`2)]^;
        deffunc form2(Nat) = [((ff/.$1)`1),((ff/.$1)`2)^^<*A*>]^;
        consider ff1 be FinSequence of l such that
A9:     len ff1 = len ff & for i be Nat st i in dom ff1 holds ff1/.i =
        form1(i) from FINSEQ_4:sch 2;
        consider ff2 be FinSequence of l such that
A10:    len ff2 = len ff & for i be Nat st i in dom ff2 holds ff2/.i = form2(i)
        from FINSEQ_4:sch 2;
        set fl = ff1^ff2;
A11:    now
          let i be Nat;
          set Q = ff/.i;
          assume i in dom ff1 or i in dom ff2;
          then i in dom ff by A9,A10,FINSEQ_3:29;
          then Q in comp Fp by PARTFUN2:2,A8;
          then ex R st R = Q & rng R = tau Fp & rng R`1 misses rng R`2;
          hence rng Q = tau Fp & rng Q`1 misses rng Q`2;
        end;
        tau Fp misses {A} by XBOOLE_1:79, A7;
        then A12: tau Fp misses rng <*A*> by FINSEQ_1:38;
A13:    now
          let i be Nat;
          set Q = ff/.i;
          assume i in dom ff1;
          then A14: rng Q misses rng <*A*> by A12,A11;
          hence rng Q`1 misses rng <*A*> by XBOOLE_1:7,XBOOLE_1:63;
          thus rng Q`2 misses rng <*A*> by XBOOLE_1:7,A14,XBOOLE_1:63;
        end;
A15:    now
          let i be Nat;
          set Q = ff/.i;
          assume i in dom ff2;
          then A16: rng Q misses rng <*A*> by A12,A11;
          hence rng Q`2 misses rng <*A*> by XBOOLE_1:7,XBOOLE_1:63;
          thus rng Q`1 misses rng <*A*> by XBOOLE_1:7,A16,XBOOLE_1:63;
        end;
A17:    rng fl c= (comp G)^
        proof
          let x be object;
          assume x in rng fl;
          then A18: x in rng ff1 \/ rng ff2 by FINSEQ_1:31;
          per cases by A18,XBOOLE_0:def 3;
          suppose
A19:        x in rng ff1;
            set i = x .. ff1,Q = ff/.i,P1 = [(Q`1)^^<*A*>,(Q`2)];
A20:        i in dom ff1 by A19,FINSEQ_4:20;
            then A21: rng Q`1 misses rng <*A*> by A13;
            rng Q`2 misses rng <*A*> by A13,A20;
            then A22: rng P1`2 misses {A} by FINSEQ_1:38;
A23:        rng P1`1 = rng ((Q`1)^<*A*>) by LTLAXIO3:def 3,A21
            .= rng Q`1 \/ rng <*A*> by FINSEQ_1:31
            .= rng Q`1 \/ {A} by FINSEQ_1:38;
            rng Q`1 misses rng Q`2 by A11,A20;
            then A24: rng P1`1 misses rng P1`2 by XBOOLE_1:70,A22,A23;
            rng P1 = {A} \/ rng Q by XBOOLE_1:4,A23
            .= {A} \/ tau Fp by A11,A20
            .= tau G by XBOOLE_1:45, ZFMISC_1:31,A6,A7;
            then A25: P1 in comp G by A24;
            x = ff1/.i by FINSEQ_5:38,A19
            .= P1^ by A9, A19,FINSEQ_4:20;
            hence x in (comp G)^ by A25;
          end;
          suppose
A26:        x in rng ff2;
            set i = x .. ff2,Q = ff/.i,P1 = [(Q`1),(Q`2)^^<*A*>];
A27:        i in dom ff2 by A26,FINSEQ_4:20;
            then A28: rng Q`2 misses rng <*A*> by A15;
            rng Q`1 misses rng <*A*> by A15,A27;
            then A29: rng P1`1 misses {A} by FINSEQ_1:38;
A30:        rng P1`2 = rng ((Q`2)^<*A*>) by LTLAXIO3:def 3,A28
            .= rng Q`2 \/ rng <*A*> by FINSEQ_1:31
            .= rng Q`2 \/ {A} by FINSEQ_1:38;
            rng Q`2 misses rng Q`1 by A11,A27;
            then A31: rng P1`1 misses rng P1`2 by XBOOLE_1:70,A29,A30;
            rng P1 = {A} \/ rng Q by XBOOLE_1:4,A30
            .= {A} \/ tau Fp by A11,A27
            .= tau G by XBOOLE_1:45, ZFMISC_1:31,A6,A7;
            then A32: P1 in comp G by A31;
            x = ff2/.i by FINSEQ_5:38,A26
            .= P1^ by A10, A26,FINSEQ_4:20;
            hence x in (comp G)^ by A32;
          end;
        end;
        assume
A33:    rng g = (comp G)^;
        alt(fl) => (alt(g)) is ctaut
        proof
          let h be Function of l,BOOLEAN;
          set v = VAL h;
A34:      v.alt(g) = 1 or v.alt(g) = 0 by XBOOLEAN:def 3;
A35:      now
            assume that
A36:        v.alt(fl) = 1 and
A37:        v.alt(g) = 0;
            per cases;
            suppose
              len fl = 0;
              then len nega fl = 0 by LTLAXIO2:def 4;
              then con nega fl = <*TVERUM*> by LTLAXIO2:def 2;
              then alt(fl) = 'not' (<*TVERUM*>/.1) by FINSEQ_1:39
              .= 'not' TVERUM by FINSEQ_4:16;
              then v.alt(fl) = v.TVERUM => v.TFALSUM by LTLAXIO1:def 15
              .= TRUE => v.TFALSUM by LTLAXIO2:4;
              hence contradiction by A36,LTLAXIO1:def 15;
            end;
            suppose
              len fl > 0;
              v.kon(nega fl) => v.TFALSUM = 1 by A36,LTLAXIO1:def 15;
              then v.kon(nega fl) => FALSE = 1 by LTLAXIO1:def 15;
              then consider i be Nat such that
A38:          i in dom nega fl and
A39:          not v.((nega fl)/.i) = 1 by LTLAXIO2:19;
              reconsider i1 = i as Element of NAT by ORDINAL1:def 12;
              len fl = len nega fl by LTLAXIO2:def 4;
              then A40: i1 in dom fl by FINSEQ_3:29,A38;
              then A41: not v.('not' (fl/.i1)) = 1 by LTLAXIO2:8,A39;
              set j = (fl/.i1) .. g;
              v.kon(nega g) => v.TFALSUM = 0 by A37,LTLAXIO1:def 15;
              then A42: v.kon(nega g) => FALSE = 0 by LTLAXIO1:def 15;
A43:          fl/.i1 in rng fl by PARTFUN2:2,A40;
              then A44: j in dom g by A17,A33,FINSEQ_4:20;
              then j <= len g by FINSEQ_3:25;
              then A45: j <= len nega g by LTLAXIO2:def 4;
              1 <= j by A44,FINSEQ_3:25;
              then A46: j in dom nega g by A45,FINSEQ_3:25;
              (nega g)/.j = 'not' (g/.j) by LTLAXIO2:8,A44
              .= 'not' (fl/.i1) by FINSEQ_5:38, A43,A17,A33;
              hence contradiction by A42,A46,LTLAXIO2:19, A41;
            end;
          end;
          thus v.(alt(fl) => alt(g)) = v.alt(fl) => v.alt(g) by LTLAXIO1:def 15
          .= 1 by A35,A34, XBOOLEAN:def 3;
        end;
        then alt(fl) => alt(g) in LTL_axioms by LTLAXIO1:def 17;
        then A47: {}l |- alt(fl) => alt(g) by LTLAXIO1:42;
        deffunc dash(Nat)= (ff/.$1)^;
        consider fk be FinSequence of l such that
A48:    len fk = len ff & for i be Nat st i in dom fk holds fk/.i =
        dash(i) from FINSEQ_4:sch 2;
A49:    now
          let g;
          set v = VAL g;
          assume
          v.alt(fk) = 1;
          then v.kon(nega fk) => v.TFALSUM = 1 by LTLAXIO1:def 15;
          then v.kon(nega fk) => FALSE = 1 by LTLAXIO1:def 15;
          then consider i be Nat such that
A50:      i in dom nega fk and
A51:      not v.((nega fk)/.i) = 1 by LTLAXIO2:19;
          reconsider i1 = i as Element of NAT by ORDINAL1:def 12;
A52:      1 <= i1 by FINSEQ_3:25,A50;
          i1 <= len nega fk by FINSEQ_3:25,A50;
          then A53: i1 <= len fk by LTLAXIO2:def 4;
          (nega fk)/.i = (nega fk).i1 by A50,PARTFUN1:def 6
          .= 'not' (fk/.i1) by LTLAXIO2:def 4,A53,A52;
          then
A54:      v.((nega fk)/.i) = v.(fk/.i1) => v.TFALSUM by LTLAXIO1:def 15
          .= v.(fk/.i1) => FALSE by LTLAXIO1:def 15;
A55:      v.(fk/.i1) = v.((ff/.i1)^) by A53,FINSEQ_3:25,A52,A48
          .= v.(kon((ff/.i1)`1)) '&' v.kon(nega ((ff/.i1)`2)) by LTLAXIO1:31;
          now
            dom nega ff1 c= dom ((nega ff1)^(nega ff2)) by FINSEQ_1:26;
            then A56: dom nega ff1 c= dom nega fl by LTLAXIO2:16;
            assume
            v.alt(fl) = 0;
            then v.kon(nega fl) => v.TFALSUM = 0 by LTLAXIO1:def 15;
            then A57: v.kon(nega fl) => FALSE = 0 by LTLAXIO1:def 15;
            per cases by XBOOLEAN:def 3;
            suppose
A58:          v.A = 1;
              i1 <= len nega ff1 by A9,A48,A53,LTLAXIO2:def 4;
              then A59: i in dom nega ff1 by A52,FINSEQ_3:25;
              set a = ((ff/.i1)`1)^^<*A*>, b = (ff/.i1)`2;
              i1 in dom ff1 by A52, A9,A48,A53,FINSEQ_3:25;
              then rng ((ff/.i1)`1) misses rng <*A*> by A13;
              then A60: a = ((ff/.i1)`1)^<*A*> by LTLAXIO3:def 3;
A61:          (nega fl)/.i1 = ((nega ff1)^(nega ff2))/.i by LTLAXIO2:16
              .= (nega ff1)/.i by FINSEQ_4:68,A59
              .= (nega ff1).i1 by PARTFUN1:def 6,A59
              .= 'not' (ff1/.i1) by LTLAXIO2:def 4, A52, A9,A48,A53;
A62:          1 = v.((nega fl)/.i1) by A57, A59,A56,LTLAXIO2:19
              .= v.(ff1/.i1) => v.TFALSUM by LTLAXIO1:def 15,A61
              .= v.(ff1/.i1) => FALSE by LTLAXIO1:def 15;
              v.(ff1/.i1) = v.([a,b]^) by A9, A52,A48,A53,FINSEQ_3:25
              .= v.kon(a) '&' v.kon(nega b) by LTLAXIO1:31
              .= v.kon((ff/.i1)`1) '&' v.kon(<*A*>) '&' v.kon(nega b)
              by LTLAXIO2:17,A60
              .= v.kon((ff/.i1)`1) '&' v.A '&' v.kon(nega b) by LTLAXIO2:11
              .= 1 by A54, A51,XBOOLEAN:def 3,A58,A55;
              hence contradiction by A62;
            end;
            suppose
A63:          v.A = 0;
              set b = ((ff/.i1)`2)^^<*A*>, a = (ff/.i1)`1;
              i1 in dom ff2 by A52, A53, A10,A48,FINSEQ_3:25;then
              rng ((ff/.i1)`2) misses rng <*A*> by A15;then
A64:          nega (((ff/.i1)`2)^<*A*>) =
              (nega (((ff/.i1)`2)))^(nega (<*A*>)) & b = ((ff /.i1)`2)^<*A*>
              by LTLAXIO2:16,LTLAXIO3:def 3;
              nega <*A*> = <*'not' A*> by LTLAXIO2:14;
              then v.kon(nega <*A*>) = v.('not' A) by LTLAXIO2:11
              .= v.A => v.TFALSUM by LTLAXIO1:def 15
              .= 1 by A63;then
A65:          v.kon(nega b) = v.kon((nega ((ff/.i1)`2))) '&' TRUE
              by A64,LTLAXIO2:17;
              reconsider j = len ff1 + i1 as Element of NAT;
A66:          j = len nega ff1 + i1 by LTLAXIO2:def 4;
              i1 <= len nega ff2 by A53, A10,A48,LTLAXIO2:def 4;
              then A67: i1 in dom nega ff2 by FINSEQ_3:25, A52;
A68:          j in dom fl by FINSEQ_1:28, A52, A53, A10,A48,FINSEQ_3:25;
              then j <= len fl by FINSEQ_3:25;
              then A69: j <= len nega fl by LTLAXIO2:def 4;
A70:          (nega fl)/.j = ((nega ff1)^(nega ff2))/.j by LTLAXIO2:16
              .= (nega ff2)/.i1 by FINSEQ_4:69,A67,A66
              .= (nega ff2).i1 by PARTFUN1:def 6,A67
              .= 'not' (ff2/.i1) by LTLAXIO2:def 4, A52, A53, A10,A48;
              1 <= j by A68,FINSEQ_3:25;
              then j in dom nega fl by A69,FINSEQ_3:25;
              then A71: 1 = v.((nega fl)/.j) by A57,LTLAXIO2:19
              .= v.(ff2/.i1) => v.TFALSUM by LTLAXIO1:def 15,A70
              .= v.(ff2/.i1) => FALSE by LTLAXIO1:def 15;
              v.(ff2/.i1) = v.([a,b]^) by A10, A52, A53,A48,FINSEQ_3:25
              .= v.kon(a) '&' v.kon(nega b) by LTLAXIO1:31
              .= 1 by A54, A51,XBOOLEAN:def 3,A55,A65;
              hence contradiction by A71;
            end;
          end;
          hence v.alt(fl) = 1 by XBOOLEAN:def 3;
        end;
        alt(fk) => (alt(fl)) is ctaut
        proof
          let g;
          set v = VAL g;
          now
            assume v.(alt(fk) => (alt(fl))) = 0;
            then A72: v.alt(fk) => v.alt(fl) = 0 by LTLAXIO1:def 15;
            v.alt(fl) = 1 or v.alt(fl) = 0 by XBOOLEAN:def 3;
            hence contradiction by A72,A49;
          end;
          hence v.(alt(fk) => (alt(fl))) = 1 by XBOOLEAN:def 3;
        end;
        then alt(fk) => (alt(fl)) in LTL_axioms by LTLAXIO1:def 17;
        then A73: {}l |- alt(fk) => (alt(fl)) by LTLAXIO1:42;
A74:    rng fk = (comp Fp)^
        proof
          hereby
            let x be object;
            assume
A75:        x in rng fk;
            then reconsider x1 = x as Element of l;
            set i = x1 .. fk;
            i in dom fk by A75,FINSEQ_4:20;
            then i in dom ff by A48,FINSEQ_3:29;
            then A76: ff/.i in comp Fp by A8,PARTFUN2:2;
            x1 = fk/.i by A75,FINSEQ_5:38
            .= (ff/.i)^ by A48, A75,FINSEQ_4:20;
            hence x in (comp Fp)^ by A76;
          end;
          let x be object;
          assume x in (comp Fp)^;
          then consider P1 be PNPair such that
A77:      x = P1^ and
A78:      P1 in comp Fp;
          set i = P1 .. ff;
          i in dom ff by FINSEQ_4:20, A8,A78;
          then A79: i in dom fk by FINSEQ_3:29,A48;
          then fk/.i = (ff/.i)^ by A48
          .= x by A77,FINSEQ_5:38, A8,A78;
          hence x in rng fk by PARTFUN2:2,A79;
        end;
        card tau Fp = k by STIRL2_1:55,A6,A7,A5;
        then {}l |- alt(fk) by A74,A4;
        then {}l |- alt(fl) by A73,LTLAXIO1:43;
        hence {}l |- alt(g) by A47,LTLAXIO1:43;
      end;
    end;
A80: P[0]
     proof
       let F be finite Subset of l;
       assume card tau F = 0;
       then A81: F = {}l;
       let f be FinSequence of l;
       assume
A82:   rng f = (comp F)^;
       then A83: f/.1 in rng f by FINSEQ_6:42,RELAT_1:38;
A84:   1 in dom f by A82,FINSEQ_3:32;
       alt(f) is ctaut
       proof
         let g;
         set v = VAL g;
         v.(f/.1) = v.(TVERUM '&&' TVERUM)
         by TARSKI:def 1,Th11,A82,Th12,A81,A83
         .= v.TVERUM '&' v.TVERUM by LTLAXIO1:31
         .= 1 by LTLAXIO2:4;
         hence v.alt(f) = 1 by XBOOLEAN:def 3,LTLAXIO2:20,A84;
       end;
       then alt(f) in LTL_axioms by LTLAXIO1:def 17;
       hence {}l |- alt(f) by LTLAXIO1:42;
     end;
     for k be Nat holds P[k] from NAT_1:sch 2(A80,A3);
     hence {}l |- alt(f) by A2,A1;
   end;
