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
  F\/{A}|=B iff F|=('G' A)=>B
 proof
  hereby assume A1: F\/{A}|=B;
   thus F|=('G' A)=>B
   proof
    let M;
    assume A2: M|=F;
    thus M|=('G' A)=>B
    proof
     let n;
     per cases by XBOOLEAN:def 3;
     suppose A3: (SAT M).[n,'G' A]=0;
      thus(SAT M).[n,('G' A)=>B]=(SAT M).[n,'G' A]=>(SAT M).[n,B] by Def11
       .=1 by A3;
     end;
     suppose A4: (SAT M).[n,'G' A]=1;
      now let j;
       (SAT M).[n+j,A]=1 by A4,Th10;
       hence (SAT(M^\n)).[j,A]=1 by Th28;
      end;
      then A5: M^\n|={A} by Th23,Def12;
      M^\n|=F by A2,Th29;
      then M^\n|=F\/{A} by A5,Th22;
      then (SAT(M^\n)).[0,B]=1 by Def12,A1;
      then A6: (SAT M).[n+0,B]=1 by Th28;
      thus(SAT M).[n,('G' A)=>B]=(SAT M).[n,'G' A]=>(SAT M).[n,B] by Def11
       .=1 by A6;
     end;
    end;
   end;
  end;
  assume A7: F|=('G' A)=>B;
  let M;
  assume A8: M|=F\/{A};
  let i;
  M|={A} by A8,Th22;
  then for j holds(SAT M).[i+j,A]=1 by Def12,Th23;
  then A9: (SAT M).[i,'G' A]=1 by Th10;
  M|=F by A8,Th22;
  then (SAT M).[i,('G' A)=>B]=1 by Def12,A7;
  then (SAT M).[i,('G' A)]=>(SAT M).[i,B]=1 by Def11;
  hence (SAT M).[i,B]=1 by A9;
 end;
