reserve A,B,C,D,p,q,r for Element of LTLB_WFF,
        F,G,X for Subset of LTLB_WFF,
        M for LTLModel,
        i,j,n for Element of NAT,
        f,f1,f2,g for FinSequence of LTLB_WFF;

theorem Th7:
  F |=0 'G' (A=>B) & F |=0 'G' (A=>('X' A)) implies F |=0 'G' (A=>('G' B))
  proof
    assume that
A1: F |=0 'G' (A=>B) and
A2: F |=0 'G' A=>('X' A);
    let M;
    assume A3: M |=0 F;
    now
      let n be Element of NAT;
      defpred P1[Nat] means
      (SAT M).[n+$1,A]=1;
      per cases by XBOOLEAN:def 3;
      suppose A4: (SAT M).[n,A]=1;
A5:     for k being Nat st P1[k] holds P1[k+1]
        proof
          let k be Nat such that
A6:       P1[k];
          reconsider kk=k as Element of NAT by ORDINAL1:def 12;
          M |=0 'G' (A=>('X' A)) by A2,A3;then
          (SAT M).[0+(n+kk),A=>('X' A)]=1 by LTLAXIO1:10;
          then (SAT M).[n+kk,A]=>(SAT M).[n+kk,'X' A]=1 by LTLAXIO1:def 11;
          then (SAT M).[n+kk+1,A]=1 by A6,LTLAXIO1:9;
          hence P1[k+1];
        end;
A7:     P1[0] by A4;
A8:     for i be Nat holds P1[i] from NAT_1:sch 2(A7,A5);
        now
          let i be Element of NAT;
          M |=0 'G' (A => B) by A1,A3;then
          (SAT M).[0+(n+i),A=>B]=1 by LTLAXIO1:10;
          then A9: (SAT M).[n+i,A]=>(SAT M).[n+i,B]=1 by LTLAXIO1:def 11;
          (SAT M).[n+i,A]=1 by A8;
          hence (SAT M).[n+i,B]=1 by A9;
        end;
        then (SAT M).[n,'G' B]=1 by LTLAXIO1:10;
        then (SAT M).[n,A]=>(SAT M).[n,'G' B]=1;
        hence (SAT M).[0+n,A=>('G' B)]=1 by LTLAXIO1:def 11;
      end;
      suppose(SAT M).[n,A]=0;
        then (SAT M).[n,A]=>(SAT M).[n,'G' B]=1;
        hence (SAT M).[0+n,A=>('G' B)]=1 by LTLAXIO1:def 11;
      end;
    end;
    hence M |=0 'G' (A=>('G' B)) by LTLAXIO1:10;
 end;
