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;
reserve T for pnptree of P,t for Node of T;

theorem F |= A implies F |- A
  proof
A1: now
      let p;
      set PN = [<*> l,<*p*>],tv = TVERUM;
      assume {}l |= p;
      then not tv '&&' 'not' p is satisfiable by Th3,Th4;
      then not PN^ is satisfiable by Th7;
      then PN is Inconsistent;
      then {} l |- 'not' (PN^);
      then A2: {} l |- 'not' (tv '&&' 'not' p) by Th7;
      ('not' (tv '&&' 'not' p)) => p is ctaut by LTLAXIO2:38;
      then ('not' (tv '&&' 'not' p)) => p in LTL_axioms by LTLAXIO1:def 17;
      then {}l |- ('not' (tv '&&' 'not' p)) => p by LTLAXIO1:42;
      hence {}l |- p by LTLAXIO1:43,A2;
    end;
    assume
A3: F |= A;
    now
      consider f be FinSequence such that
A4:   rng f = F
      and
      f is one-to-one by FINSEQ_4:58;
      reconsider f as FinSequence of l by A4,FINSEQ_1:def 4;
      assume
A5:   not F is empty;
      then A6: 1 <= len f by RELAT_1:38,A4,FINSEQ_1:20;
      then 1 <= len impg(f,A) by LTLAXIO2:def 3;
      then A7: impg(f,A)/.1 = impg(f,A).1 by FINSEQ_4:15;
      defpred P[Nat] means
      1 <= $1 & $1 <= len f implies rng (f /^ $1) |= impg(f,A)/.$1;
a8:   1 in dom f by A6,FINSEQ_3:25;
      rng (f|1) = rng <*f.1*> by FINSEQ_5:20, RELAT_1:38,A4,A5
        .= rng <*f/.1*> by a8,PARTFUN1:def 6; then
A8:   rng (f /^ 1) \/ {f/.1} = rng (f|1) \/ rng (f /^ 1) by FINSEQ_1:38
      .= rng ((f|1) ^ (f /^ 1)) by FINSEQ_1:31
      .= rng f by RFINSEQ:8;
A9:   len impg(f,A) = len f by A6,LTLAXIO2:def 3;
A10:  now
        let i;
A11:      i in NAT by ORDINAL1:def 12;
        assume
A12:    P[i];
        thus P[i + 1]
        proof
          assume that
A13:      1 <= i+1 and
A14:      i+1 <= len f;
          per cases by NAT_1:25;
          suppose
A15:        i = 0;
            ('G' f/.1) => A = impg(f,A).1 by LTLAXIO2:def 3,A6
            .= impg(f,A)/.1 by FINSEQ_4:15,A9,A6;
            hence rng (f /^ (i+1)) |= impg(f,A)/.(i+1)
            by A8,A4,A3,LTLAXIO1:30,A15;
          end;
          suppose
A16:        1 <= i;
            i+1 in dom f by FINSEQ_3:25,A13,A14;then
            rng (<*f/.(i+1)*>^(f /^ (i+1))) |= impg(f,A)/.i
            by A12,A16,NAT_1:13,A14,FINSEQ_5:31;then
            rng <*f/.(i+1)*> \/ rng (f /^ (i+1)) |= impg(f,A)/.i
            by FINSEQ_1:31;then
A17:        rng (f /^ (i+1)) \/ {f/.(i+1)} |= impg(f,A)/.i by FINSEQ_1:38;
A18:        i < len f by NAT_1:13,A14;
            impg(f,A)/.(i+1) = impg(f,A).(i+1) by FINSEQ_4:15,A13,A14,A9
            .= ('G' f/.(i+1)) => impg(f,A)/.i by LTLAXIO2:def 3,A16,A18,A11;
            hence rng (f /^ (i+1)) |= impg(f,A)/.(i+1) by A17,LTLAXIO1:30;
          end;
        end;
      end;
A19:  P[0];
      for i holds P[i] from NAT_1:sch 2(A19,A10);
      then rng (f /^ (len f)) |= impg(f,A)/.(len f) by A6;
      then {} l |= impg(f,A)/.(len f) by RFINSEQ:27,RELAT_1:38;
      then A20: {} l |- impg(f,A)/.(len f) by A1;
      defpred P[Nat] means
      $1 < len f implies rng (f /^ (len f -' $1)) |- impg(f,A)/.(len f -' $1);
A21:  now
        let i;
        assume
A22:    P[i];
        thus P[i+1]
        proof
          set j = len f -' (i+1);
          assume
A23:      i + 1 < len f;
          then A24: i + 1 + (- (i +1)) < len f + (-(i + 1)) by XREAL_1:8;
          then A25: j = len f - (i+1) by XREAL_0:def 2;
          then A26: 1 <= j by NAT_1:25, A24;
          i < len f by A23,NAT_1:12;
          then len f + (-i) > i + (-i) by XREAL_1:8;
          then A27: len f - i > 0;
A28:      j + 1 = len f - (i + 1) + 1 by XREAL_0:def 2, A24
          .= len f -' i by XREAL_0:def 2,A27;
A29:      len f + (-i) <= len f by XREAL_1:32;
          then j + 1 <= len f by A25;
          then A30: j < len f by NAT_1:16,XXREAL_0:2;
          j + 1 <= len impg(f,A) by A29,A25,LTLAXIO2:def 3;then
          impg(f,A)/.(len f -' i) = impg(f,A).(j + 1)
          by A28,FINSEQ_4:15, NAT_1:11
          .= ('G' (f/.(j + 1))) => impg(f,A)/.j by LTLAXIO2:def 3,A26, A30;
          then (rng (f /^ (len f -' i))) \/ {f/.(j + 1)} |- impg(f,A)/.j
          by LTLAXIO1:59,A22,NAT_1:12,A23;then
          (rng <*f/.(j + 1)*>) \/ rng (f /^ (len f -' i)) |- impg(f,A)/.j
          by FINSEQ_1:38;then
A31:      rng (<*f/.(j + 1)*>^(f /^ (len f -' i))) |- impg(f,A)/.j
          by FINSEQ_1:31;
          j + 1 in dom f by FINSEQ_3:25, NAT_1:11, A29,A25;
          hence rng (f /^ j) |- impg(f,A)/.j by A31,FINSEQ_5:31, A28;
        end;
      end;
      1 + (-1) <= len f + (-1) by XREAL_1:6,FINSEQ_1:20,RELAT_1:38,A4,A5;
      then len f -' 1 = len f - 1 by XREAL_0:def 2;
      then reconsider i = len f -1 as Element of NAT;
A32:  len f + (- 1) < len f by XREAL_1:37;
      len f - 0 >= 1 by RELAT_1:38,A4,A5,FINSEQ_1:20;
      then len f -' 0 = len f by XREAL_0:def 2;
      then A33: P[0] by A20, RELAT_1:38,RFINSEQ:27;
A34:  for i holds P[i] from NAT_1:sch 2(A33,A21);
      len f -' i = len f - i by XREAL_0:def 2 .= 1;
      then rng (f /^ 1) |- impg(f,A)/.1 by A34,A32;
      then rng (f /^ 1) |- ('G' f/.1) => A by LTLAXIO2:def 3,A7, A6;
      hence F |- A by A4,A8,LTLAXIO1:59;
    end;
    hence F |- A by A1,A3;
  end;
