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 Th18:
  (SAT M).[n,('G' B)=>(B '&&'('X'('G' B)))]=1
 proof
  A1: (SAT M).[n,('G' B)=>(B '&&'('X'('G' B)))]=(SAT M).[n,('G' B)]=>(SAT M).[n
,B '&&'('X'('G' B))] by Def11;
  per cases by XBOOLEAN:def 3;
  suppose(SAT M).[n,('G' B)]=0;
   hence thesis by A1;
  end;
  suppose A2: (SAT M).[n,('G' B)]=1;
   now let i be Element of NAT;
    (SAT M).[n+(i+1),B]=1 by A2,Th10;
    hence (SAT M).[n+1+i,B]=1;
   end;
   then (SAT M).[n+1,'G' B]=1 by Th10;
   then A3: (SAT M).[n,'X'('G' B)]=1 by Th9;
   (SAT M).[n+0,B]=1 by A2,Th10;
   then (SAT M).[n,B '&&'('X'('G' B))]=1 by A3,Th7;
   hence thesis by A1;
  end;
 end;
