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 Th18: for Q be Element of untn P holds {}LTLB_WFF |- P^ => 'X'(Q^)
  proof
    let Q be Element of untn P;
    set p = 'X' kon(Q`1), q = 'X' kon(nega Q`2);
    Q in untn P;then
A1: ex Q1 be PNPair st
    Q=Q1 & rng Q1`1 = untn rng P`1 & rng Q1`2 = untn rng P `2;
    now
      let i be Nat;
      assume
A2:   i in dom nex nega Q`2;
A3:   len nex nega Q`2 = len nega Q`2 by LTLAXIO2:def 5;
      then len nex nega Q`2 = len Q`2 by LTLAXIO2:def 4;
      then A4: i in dom Q`2 by FINSEQ_3:29,A2;
      then Q`2/.i in untn rng P`2 by PARTFUN2:2,A1;
      then consider A,B such that
A5:   Q`2/.i = untn(A,B) and
A6:   A 'U' B in rng P`2;
      i in dom nega Q`2 by A3,A2,FINSEQ_3:29;
      then A7: (nex nega Q`2)/.i = 'X' ((nega Q`2)/.i) by LTLAXIO2:9
      .= 'X' ('not' (Q`2/.i)) by LTLAXIO2:8,A4;
      {}l |- 'not' (A 'U' B) => ('X' 'not' untn(A,B)) & {}l |- P^ => 'not'
      (A 'U' B) by LTLAXIO2:63, LTLAXIO3:29,A6;
      hence {}l |- P^ => (nex nega Q`2)/.i by A7,LTLAXIO1:47, A5;
    end;
    then {}l |- kon(nex nega Q`2) => q & {}l |- P^ => kon(nex nega Q`2)
    by LTLAXIO2:60,LTLAXIO2:56;
    then A8: {}l |- P^ => q by LTLAXIO1:47;
    now
      let i be Nat;
      assume
A9:   i in dom nex Q`1;
      len Q`1 = len nex Q`1 by LTLAXIO2:def 5;
      then A10: i in dom Q`1 by A9,FINSEQ_3:29;
      then Q`1/.i in untn rng P`1 by PARTFUN2:2,A1;
      then consider A,B such that
A11:  Q`1/.i = untn(A,B) and
A12:  A 'U' B in rng P`1;
A13:  {}l |- P^ => (A 'U' B) by LTLAXIO3:28,A12;
      (A 'U' B) => (('X' B) 'or' ('X' (A '&&' (A 'U' B)))) in LTL_axioms
      by LTLAXIO1:def 17;then
A14:  {}l |- (A 'U' B) => (('X' B) 'or' ('X' (A '&&' (A 'U' B))))
      by LTLAXIO1:42;
      {}l |- (('X' B) 'or' ('X' (A '&&' (A 'U' B)))) => 'X' untn(A,B)
      by LTLAXIO2:61;
      then A15: {}l |- (A 'U' B) => 'X' untn(A,B) by LTLAXIO1:47,A14;
      (nex Q`1)/.i = 'X' untn(A,B) by A11,LTLAXIO2:9,A10;
      hence {}l |- P^ => (nex Q`1)/.i by A15,LTLAXIO1:47,A13;
    end;then
    {}l |- kon(nex Q`1) => p & {}l |- P^ => kon(nex Q`1)
    by LTLAXIO2:60,56;
    then A16: {}l |- P^ => p by LTLAXIO1:47;
    P^ => p => ((P^ => q) => (P^ => (p '&&' q))) is ctaut by LTLAXIO2:40;
    then P^ => p => ((P^ => q) => (P^ => (p '&&' q))) in LTL_axioms
    by LTLAXIO1:def 17;then
    {}l |- P^ => p => ((P^ => q) => (P^ => (p '&&' q))) by LTLAXIO1:42;
    then {}l |- ((P^ => q) => (P^ => (p '&&' q))) by LTLAXIO1:43,A16;
    then A17: {}l |- P^ => (p '&&' q) by LTLAXIO1:43,A8;
    {}l |- (('X' (kon(Q`1))) '&&' ('X' (kon(nega Q`2)))) => ('X' (Q^))
    by LTLAXIO1:53;
    hence {}l |- P^ => 'X'(Q^) by LTLAXIO1:47,A17;
  end;
