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 Th43:
  X|-p & X|-p=>q implies X|-q
 proof
  assume X|-p;
  then consider f such that
   A1: f.len f=p and
   A2: 1<=len f and
   A3: for i be Nat st 1<=i & i<=len f holds prc f,X,i;
  set j=len f;
  assume X|-p=>q;
  then consider f1 such that
   A4: f1.len f1=p=>q and
   A5: 1<=len f1 and
   A6: for i be Nat st 1<=i & i<=len f1 holds prc f1,X,i;
  A7: 1<=len f+len f1 by A2,NAT_1:12;
  set g=f^f1^<*q*>;
  A8: g=f^(f1^<*q*>) by FINSEQ_1:32;
  A9: for i be Nat st 1<=i & i<=len f1 holds g.(len f+i)=f1.i
  proof
   let i be Nat;
   assume that
    A10: 1<=i and
    A11: i<=len f1;
   len(f1^<*q*>)=len f1+len<*q*> by FINSEQ_1:22
    .=len f1+1 by FINSEQ_1:39;
   then i<=len(f1^<*q*>) by A11,NAT_1:12;
   hence g.(len f+i)=(f1^<*q*>).i by A8,A10,FINSEQ_1:65
    .=f1.i by A10,A11,FINSEQ_1:64;
  end;
  A12: len g=len(f^f1)+len<*q*> by FINSEQ_1:22
   .=len(f^f1)+1 by FINSEQ_1:39;
  then A13: len g=len f+len f1+1 by FINSEQ_1:22;
  then len g=len f+(len f1+1);
  then A14: j<len g by NAT_1:16;
  then A15: g/.j=g.j by A2,Lm1
   .=p by A1,A2,A8,FINSEQ_1:64;
  set k=len f+len f1;
  A16: 1<=k by A2,NAT_1:12;
  g.len g=q & 1<=len g by A12,FINSEQ_1:42,NAT_1:11;
  then A17: g/.len g=q by Lm1;
  A18: k<len g by A13,NAT_1:16;
  then g/.k=g.k by A2,Lm1,NAT_1:12
   .=p=>q by A4,A5,A9;
  then g/.j,g/.k MP_rule g/.len g by A15,A17;
  then A19: len(f^f1)=len f+len f1 & prc g,X,len g by A2,A14,A16,A18,
FINSEQ_1:22;
  for i be Nat st 1<=i & i<=len(f^f1) holds prc f^f1,X,i by A2,A3,A5,A6,Th39;
  hence X|-q by A7,A19,Th40;
 end;
