reserve k,n for Element of NAT,
  a,Y for set,
  D,D1,D2 for non empty set,
  p,q for FinSequence of NAT;
reserve F,F1,G,G1,H,H1,H2 for CTL-formula;
reserve sq,sq9 for FinSequence;
reserve V for CTLModel;
reserve Kai for Function of atomic_WFF,the BasicAssign of V;
reserve f,f1,f2 for Function of CTL_WFF,the carrier of V;
reserve S for non empty set;
reserve R for total Relation of S,S;
reserve s,s0,s1 for Element of S;
reserve BASSIGN for non empty Subset of ModelSP(S);
reserve kai for Function of atomic_WFF,the BasicAssign of BASSModel(R,BASSIGN);

theorem Th46:
  for f,g being Assign of BASSModel(R,BASSIGN), s being Element of
  S holds s|= f EU g iff s|= Foax(g,f,f EU g)
proof
  let f,g be Assign of BASSModel(R,BASSIGN);
  let s be Element of S;
A1: s|= Foax(g,f,f EU g) implies s|= f EU g
  proof
    assume
A2: s|= Foax(g,f,f EU g);
    per cases by A2,Th17;
    suppose
A3:   s |= g;
      set m = 0;
      consider pai be inf_path of R such that
A4:   pai.0 = s by Th25;
      for j being Element of NAT st j<m holds pai.j |= f;
      hence thesis by A3,A4,Th16;
    end;
    suppose
A5:   s |= Fax(f,f EU g);
      set h = f EU g;
      s |= EX h by A5,Th13;
      then consider pai be inf_path of R such that
A6:   pai.0 = s and
A7:   (pai.1) |= h by Th14;
      consider pai1 be inf_path of R such that
A8:   pai1.0 = pai.1 and
A9:   ex m being Element of NAT st (for j being Element of NAT st j<m
      holds pai1.j |= f) & pai1.m |= g by A7,Th16;
      set PAI = PathConc(pai,pai1,1);
      reconsider PAI as inf_path of R by A8,Th38;
A10:  PAI.0 = PathChange(pai,pai1,1,0) by Def69
        .= s by A6,Def68;
      consider m be Element of NAT such that
A11:  for j being Element of NAT st j<m holds pai1.j |= f and
A12:  pai1.m |= g by A9;
      set m1 = m + 1;
A13:  not m1 < 1 by NAT_1:11;
A14:  s |= f by A5,Th13;
A15:  for k being Element of NAT st k<m1 holds PAI.k |= f
      proof
        let k be Element of NAT such that
A16:    k < m1;
        per cases;
        suppose
          k < 1;
          hence thesis by A14,A10,NAT_1:14;
        end;
        suppose
A17:      not k < 1;
          set k0 = k-1;
          reconsider k0 as Element of NAT by A17,NAT_1:21;
          (k-1) +1 <= m by A16,INT_1:7;
          then
A18:      k0 < m by NAT_1:13;
          PAI.k = PathChange(pai,pai1,1,k) by Def69
            .= pai1.k0 by A17,Def68;
          hence thesis by A11,A18;
        end;
      end;
      PAI.m1 = PathChange(pai,pai1,1,m1) by Def69
        .= pai1.(m1-1) by A13,Def68
        .= pai1.m;
      hence thesis by A12,A10,A15,Th16;
    end;
  end;
  s|= f EU g implies s|= Foax(g,f,f EU g)
  proof
    assume s|= f EU g;
    then consider pai be inf_path of R such that
A19: pai.0 = s and
A20: ex m being Element of NAT st (for j being Element of NAT st j<m
    holds pai.j |= f) & pai.m |= g by Th16;
    consider m be Element of NAT such that
A21: for j being Element of NAT st j<m holds pai.j |= f and
A22: pai.m |= g by A20;
    per cases;
    suppose
      m = 0;
      hence thesis by A19,A22,Th17;
    end;
    suppose
A23:  m >0;
      set k = m-1;
      reconsider k as Element of NAT by A23,NAT_1:20;
      set h = f EU g;
      set pai1 = PathShift(pai,1);
A24:  pai1.k = pai.(k+1) by Def67
        .= pai.m;
A25:  for j being Element of NAT st j<k holds pai1.j |= f
      proof
        let j be Element of NAT;
        assume j<k;
        then j +1 <= k by INT_1:7;
        then j+1 < k+1 by NAT_1:13;
        then pai.(j+1) |= f by A21;
        hence thesis by Def67;
      end;
      pai1.0 = pai.(0+1) by Def67
        .= pai.1;
      then pai.1 |= h by A22,A24,A25,Th16;
      then
A26:  s |= EX h by A19,Th14;
      s |= f by A19,A21,A23;
      then s |= Fax(f,h) by A26,Th13;
      hence thesis by Th17;
    end;
  end;
  hence thesis by A1;
end;
