reserve k,n,m for Nat,
  a,x,X,Y for set,
  D,D1,D2,S for non empty set,
  p,q for FinSequence of NAT;
reserve F,F1,G,G1,H,H1,H2 for LTL-formula;
reserve sq,sq9 for FinSequence;
reserve L,L9 for FinSequence;
reserve j for Nat;
reserve j1 for Element of NAT;
reserve V for LTLModel;
reserve Kai for Function of atomic_LTL,the BasicAssign of V;
reserve f,f1,f2 for Function of LTL_WFF,the carrier of V;
reserve BASSIGN for non empty Subset of ModelSP(Inf_seq(S));
reserve t for Element of Inf_seq(S);
reserve f,g for Assign of Inf_seqModel(S,BASSIGN);
reserve r for Element of Inf_seq(AtomicFamily);

theorem Th75:
  r|= H1 'U' H2 iff r|=H2 'or' (H1 '&' ('X' (H1 'U' H2)))
proof
A1: r|=H2 'or' (H1 '&' ('X' (H1 'U' H2))) implies r|= H1 'U' H2
  proof
    assume
A2: r|=H2 'or' (H1 '&' ('X' (H1 'U' H2)));
    now
      per cases by A2,Th66;
      suppose
A3:     r|=H2;
        ex m being Nat st (for j being Nat st j<m holds Shift(r,j) |= H1)
        & Shift(r,m) |= H2
        proof
          take 0;
          thus thesis by A3,Lm28;
        end;
        hence thesis by Th68;
      end;
      suppose
A4:     r|=H1 '&' ('X' (H1 'U' H2));
        set r1 = Shift(r,1);
        r|='X' (H1 'U' H2) by A4,Th65;
        then Shift(r,1) |= H1 'U' H2 by Th67;
        then consider m be Nat such that
A5:     for j being Nat st j<m holds Shift(r1,j) |= H1 and
A6:     Shift(r1,m) |= H2 by Th68;
        set m1= m+1;
A7:     r|=H1 by A4,Th65;
A8:     for j being Nat st j<m1 holds Shift(r,j) |= H1
        proof
          let j be Nat such that
A9:       j<m1;
          now
            per cases;
            suppose
              j=0;
              hence thesis by A7,Lm28;
            end;
            suppose
A10:          j>0;
              set j1= j-1;
              reconsider j1 as Nat by A10,NAT_1:20;
              j-1<m1-1 by A9,XREAL_1:14;
              then Shift(r1,j1) |= H1 by A5;
              then Shift(r,j1+1) |= H1 by Lm29;
              hence thesis;
            end;
          end;
          hence thesis;
        end;
        Shift(r,m1) |= H2 by A6,Lm29;
        hence thesis by A8,Th68;
      end;
    end;
    hence thesis;
  end;
  r|= H1 'U' H2 implies r|=H2 'or' (H1 '&' ('X' (H1 'U' H2)))
  proof
    assume r|= H1 'U' H2;
    then consider m be Nat such that
A11: for j being Nat st j<m holds Shift(r,j) |= H1 and
A12: Shift(r,m) |= H2 by Th68;
    per cases;
    suppose
      m = 0;
      then r|=H2 by A12,Lm28;
      hence thesis by Th66;
    end;
    suppose
A13:  m >0;
      set k = m-1;
      reconsider k as Nat by A13,NAT_1:20;
      set r1= Shift(r,1);
A14:  for j being Nat st j<k holds Shift(r1,j) |= H1
      proof
        let j be Nat;
        assume j<k;
        then
A15:    j+1<k+1 by XREAL_1:8;
        Shift(r,j+1) = Shift(r1,j) by Lm29;
        hence thesis by A11,A15;
      end;
      Shift(r,k+1) = Shift(r1,k) by Lm29;
      then r1|= H1 'U' H2 by A12,A14,Th68;
      then
A16:  r |= 'X' (H1 'U' H2) by Th67;
      Shift(r,0)= r by Lm28;
      then r|=H1 by A11,A13;
      then r |= H1 '&' ('X' (H1 'U' H2) ) by A16,Th65;
      hence thesis by Th66;
    end;
  end;
  hence thesis by A1;
end;
