reserve a,b,c for boolean object;
reserve p,q,r,s,A,B,C for Element of LTLB_WFF,
        F,G,X,Y for Subset of LTLB_WFF,
        i,j,k,n for Element of NAT,
        f,f1,f2,g for FinSequence of LTLB_WFF;
reserve M for LTLModel;

theorem Th57:
  F\/{p}|-q implies F|-('G' p)=>q
 proof
  set G=F\/{p};
  assume G|-q;
  then consider f such that
   A1: f.len f=q and
   A2: 1<=len f and
   A3: for i be Nat st 1<=i & i<=len f holds prc f,G,i;
  defpred P[Nat] means
   1<=$1 & $1<=len f implies F|-('G' p)=>f/.$1;
  A4: for i being Nat st for j being Nat st j<i holds P[j] holds P[i]
  proof
   let i be Nat;
   assume A5: for j be Nat st j<i holds P[j];
   per cases by NAT_1:14;
   suppose i=0;
    hence P[i];
   end;
   suppose not i<1;
    assume that
     A6: 1<=i and
     A7: i<=len f;
    per cases by A3,A6,A7,Def29;
    suppose A8: f.i in LTL_axioms;
     set t=f/.i;
     t=>(('G' p)=>t) in LTL_axioms by Th34;
     then A9: F|-t=>(('G' p)=>t) by Th42;
     f/.i in LTL_axioms by A6,A7,A8,Lm1;
     then F|-t by Th42;
     hence thesis by A9,Th43;
    end;
    suppose A10: f.i in G;
     per cases by A10,XBOOLE_0:def 3;
     suppose A11: f.i in F;
      set t=f/.i;
      t=>(('G' p)=>t) in LTL_axioms by Th34;
      then A12: F|-t=>(('G' p)=>t) by Th42;
      f/.i in F by A6,A7,A11,Lm1;
      then F|-t by Th42;
      hence thesis by A12,Th43;
     end;
     suppose A13: f.i in {p};
      ('G' p)=>(p '&&'('X'('G' p))) in LTL_axioms by Def17;
      then A14: F|-('G' p)=>(p '&&'('X'('G' p))) by Th42;
      f.i=p by A13,TARSKI:def 1;
      then f/.i=p by A6,A7,Lm1;
      hence thesis by A14,Th46;
     end;
    end;
    suppose ex j,k be Nat st 1<=j & j<i & 1<=k & k<i & (f/.j,f/.k MP_rule f/.i
or f/.j,f/.k IND_rule f/.i);
     then consider j,k be Nat such that
      A15: 1<=j and
      A16: j<i and
      A17: 1<=k and
      A18: k<i and
      A19: f/.j,f/.k MP_rule f/.i or f/.j,f/.k IND_rule f/.i;
     j<=len f by A7,A16,XXREAL_0:2;
     then A20: F|-('G' p)=>f/.j by A5,A15,A16;
     k<=len f by A7,A18,XXREAL_0:2;
     then A21: F|-('G' p)=>f/.k by A5,A17,A18;
     per cases by A19;
     suppose A22: f/.j,f/.k MP_rule f/.i;
      set t3=(('G' p)=>(f/.j=>f/.i))=>((('G' p)=>f/.j)=>(('G' p)=>f/.i));
      t3 in LTL_axioms by Th35;
      then A23: F|-t3 by Th42;
      F|-('G' p)=>(f/.j=>f/.i) by A21,A22;
      then F|-((('G' p)=>f/.j)=>(('G' p)=>f/.i)) by A23,Th43;
      hence F|-('G' p)=>f/.i by A20,Th43;
     end;
     suppose f/.j,f/.k IND_rule f/.i;
      then consider A,B such that
       A24: f/.j=A=>B and
       A25: f/.k=A=>('X' A) and
       A26: f/.i=A=>('G' B);
      set Gp='G' p,XGp='X' 'G' p,XA='X' A,Xq='X' q,GB='G' B;
      Gp=>(p '&&' XGp) in LTL_axioms by Def17;
      then F|-Gp=>(p '&&' XGp) by Th42;
      then A27: F|-Gp=>XGp by Th46;
      F|-(Gp '&&' A)=>XA by A21,A25,Th48;
      then A28: F|-(Gp '&&' A)=>(XGp '&&' XA) by A27,Th50;
      F|-(XGp '&&' XA)=>('X'(Gp '&&' A)) by Th53;
      then A29: F|-(Gp '&&' A)=>('X'(Gp '&&' A)) by A28,Th47;
      F|-(Gp '&&' A)=>B by A20,A24,Th48;
      then F|-(Gp '&&' A)=>GB by A29,Th45;
      hence thesis by A26,Th49;
     end;
    end;
    suppose A30: ex j be Nat st 1<=j & j<i & f/.j NEX_rule f/.i;
     ('G' p)=>(p '&&'('X'('G' p))) in LTL_axioms by Def17;
     then F|-('G' p)=>(p '&&'('X'('G' p))) by Th42;
     then A31: F|-('G' p)=>('X'('G' p)) by Th46;
     consider j be Nat,q,r such that
      A32: 1<=j and
      A33: j<i and
      A34: f/.j NEX_rule f/.i by A30;
     ('X'(('G' p)=>f/.j))=>(('X'('G' p))=>'X' f/.j) in LTL_axioms by Def17;
     then A35: F|-('X'(('G' p)=>f/.j))=>(('X'('G' p))=>'X' f/.j) by Th42;
     j<=len f by A7,A33,XXREAL_0:2;
     then F|-'X'(('G' p)=>f/.j) by A5,A32,A33,Th44;
     then A36: F|-('X'('G' p))=>'X' f/.j by A35,Th43;
     f/.i='X' f/.j by A34;
     hence thesis by A36,A31,Th47;
    end;
   end;
  end;
  A37: for i be Nat holds P[i] from NAT_1:sch 4(A4);
  q=f/.len f by A1,A2,Lm1;
  hence F|-('G' p)=>q by A2,A37;
 end;
