reserve Al for QC-alphabet;
reserve a,b,c,d for object,
  i,j,k,m,n for Nat,
  p,q,r for Element of CQC-WFF(Al),
  x,y,y0 for bound_QC-variable of Al,
  X for Subset of CQC-WFF(Al),
  A for non empty set,
  J for interpretation of Al,A,
  v,w for Element of Valuations_in(Al,A),
  Sub for CQC_Substitution of Al,
  f,f1,g,h,h1 for FinSequence of CQC-WFF(Al);
reserve fin,fin1 for FinSequence;
reserve PR,PR1 for FinSequence of [:set_of_CQC-WFF-seq(Al),Proof_Step_Kinds:];
reserve a for Element of A;

theorem
  |- f^<*q*> implies |- f^<*p 'or' q*>
proof
  set f1 = f^<*'not' p '&' 'not' q*>^<*'not' p '&' 'not' q*>;
  assume
A1: |- f^<*q*>;
A2: Ant(f1) = f^<*'not' p '&' 'not' q*> by Th5;
  len f+1 = len f + len <*'not' p '&' 'not' q*> by FINSEQ_1:39;
  then len f+1 = len Ant(f1) by A2,FINSEQ_1:22;
  then
A3: len f+1 in dom Ant(f1) by A2,Th10;
A4: Suc(f1) = 'not' p '&' 'not' q by Th5;
  (Ant(f1)).(len f+1) = 'not' p '&' 'not' q by A2,FINSEQ_1:42;
  then Suc(f1) is_tail_of Ant(f1) by A4,A3,Lm2;
  then |- f^<*'not' p '&' 'not' q*>^<*'not' q*> by A2,A4,Th33,Th41;
  then |- f^<*q*>^<*'not' ('not' p '&' 'not' q)*> by Th49;
  then
A5: |- f^<*q*>^<*p 'or' q*> by QC_LANG2:def 3;
  1 <= len (f^<*q*>) by Th10;
  then |- Ant(f^<*q*>)^<*p 'or' q*> by A1,A5,Th45;
  hence thesis by Th5;
end;
