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 Th39:
  f2=f^f1 & 1<=len f & 1<=len f1 &
  (for i be Nat st 1<=i & i<=len f holds prc f,X,i) &
  (for i be Nat st 1<=i & i<=len f1 holds prc f1,X,i) implies
  for i be Nat st 1<=i & i<=len f2 holds prc f2,X,i
 proof
  assume that
   A1: f2=f^f1 and
   1<=len f and
   1<=len f1 and
   A2: for i be Nat st 1<=i & i<=len f holds prc f,X,i and
   A3: for i be Nat st 1<=i & i<=len f1 holds prc f1,X,i;
  A4: len f2=len f+len f1 by A1,FINSEQ_1:22;
  A5: for k be Nat st 1<=k & k<=len f1 holds f1.k=f2.(k+len f) by A1,
FINSEQ_1:65;
  let i be Nat;
  assume that
   A6: 1<=i and
   A7: i<=len f2;
  per cases by NAT_1:13;
  suppose A8: i<=len f;
   then A9: f/.i=f.i by A6,Lm1
    .=f2.i by A1,A6,A8,FINSEQ_1:64
    .=f2/.i by A6,A7,Lm1;
   per cases by A2,A6,A8,Def29;
   suppose f.i in LTL_axioms;
    then f2.i in LTL_axioms by A1,A6,A8,FINSEQ_1:64;
    hence prc f2,X,i;
   end;
   suppose f.i in X;
    then f2.i in X by A1,A6,A8,FINSEQ_1:64;
    hence prc f2,X,i;
   end;
   suppose ex j,k be Nat st 1<=j & j<i & 1<=k & k<i & (f/.j,f/.k MP_rule f/.i
or f/.j,f/.k IND_rule f/.i);
    then consider j,k be Nat such that
     A10: 1<=j and
     A11: j<i and
     A12: 1<=k and
     A13: k<i and
     A14: f/.j,f/.k MP_rule f/.i or f/.j,f/.k IND_rule f/.i;
    A15: k<=len f by A8,A13,XXREAL_0:2;
    then A16: k<=len f2 by A4,NAT_1:12;
    A17: f/.k=f.k by A12,A15,Lm1
     .=f2.k by A1,A12,A15,FINSEQ_1:64
     .=f2/.k by A12,A16,Lm1;
    A18: j<=len f by A8,A11,XXREAL_0:2;
    then A19: j<=len f2 by A4,NAT_1:12;
    f/.j=f.j by A10,A18,Lm1
     .=f2.j by A1,A10,A18,FINSEQ_1:64
     .=f2/.j by A10,A19,Lm1;
    hence prc f2,X,i by A9,A10,A11,A12,A13,A14,A17;
   end;
   suppose ex j be Nat st 1<=j & j<i & f/.j NEX_rule f/.i;
    then consider j be Nat such that
     A20: 1<=j and
     A21: j<i and
     A22: f/.j NEX_rule f/.i;
    A23: j<=len f by A8,A21,XXREAL_0:2;
    then A24: j<=len f2 by A4,NAT_1:12;
    f/.j=f.j by A20,A23,Lm1
     .=f2.j by A1,A20,A23,FINSEQ_1:64
     .=f2/.j by A20,A24,Lm1;
    hence prc f2,X,i by A9,A20,A21,A22;
   end;
  end;
  suppose A25: len f+1<=i;
   set i1=i-' len f;
   i<=len f+len f1 by A1,A7,FINSEQ_1:22;
   then i-' len f<=len f+len f1-' len f by NAT_D:42;
   then A26: i1<=len f1 by NAT_D:34;
   1<=i1 by A25,NAT_D:55;
   then prc f2,X,i1+len f by A3,A4,A5,A26,Th38;
   hence prc f2,X,i by A25,NAT_D:43,55;
  end;
 end;
