reserve Al for QC-alphabet;
reserve a,b,c,d for object,
  i,k,n for Nat,
  p,q for Element of CQC-WFF(Al),
  x,y,y1 for bound_QC-variable of Al,
  A for non empty set,
  J for interpretation of Al,A,
  v,w for Element of Valuations_in(Al,A),
  f,g for Function,
  P,P9 for QC-pred_symbol of k,Al,
  ll,ll9 for CQC-variable_list of k,Al,
  l1 for FinSequence of QC-variables(Al),
  Sub,Sub9,Sub1 for CQC_Substitution of Al,
  S,S9,S1,S2 for Element of CQC-Sub-WFF(Al),
  s for QC-symbol of Al;
reserve vS,vS1,vS2 for Val_Sub of A,Al;
reserve B for Element of [:QC-Sub-WFF(Al),bound_QC-variables(Al):],
  SQ for second_Q_comp of B;
reserve B for CQC-WFF-like Element of [:QC-Sub-WFF(Al),
  bound_QC-variables(Al):],
  xSQ for second_Q_comp of [S,x],
  SQ for second_Q_comp of B;
reserve B1 for Element of [:QC-Sub-WFF(Al),bound_QC-variables(Al):];
reserve SQ1 for second_Q_comp of B1;
reserve a for Element of A;

theorem Th80:
  (for v,vS,vS1,vS2 st (for y st y in dom vS1 holds not y in
  still_not-bound_in p) & (for y st y in dom vS2 holds vS2.y = v.y) & dom vS
misses dom vS2 holds J,v.vS |= p iff J,v.(vS+*vS1+*vS2) |= p) implies for v,vS,
vS1,vS2 st (for y st y in dom vS1 holds not y in still_not-bound_in All(x,p)) &
(for y st y in dom vS2 holds vS2.y = v.y) & dom vS misses dom vS2 holds J,v.vS
  |= All(x,p) iff J,v.(vS+*vS1+*vS2) |= All(x,p)
proof
  assume
A1: for v,vS,vS1,vS2 st (for y st y in dom vS1 holds not y in
  still_not-bound_in p) & (for y st y in dom vS2 holds vS2.y = v.y) & dom vS
  misses dom vS2 holds J,v.vS |= p iff J,v.(vS+*vS1+*vS2) |= p;
  let v,vS,vS1,vS2 such that
A2: for y st y in dom vS1 holds not y in still_not-bound_in All(x,p) and
A3: ( for y st y in dom vS2 holds vS2.y = v.y)& dom vS misses dom vS2;
  set vS19 = vS1|((dom vS1) \ {x});
  set vS29 = vS2|((dom vS2) \ {x});
A4: for y st y in dom vS29 holds vS29.y = (v.vS).y by A3,Th79;
A5: dom vS29 misses {x} by XBOOLE_1:63,79;
A6: for y st y in dom vS19 holds not y in still_not-bound_in p by A2,Th78;
A7: (for a holds J,(v.vS).(x|a) |= p) implies for a holds J,(v.vS).((x|a)+*
  vS19+*vS29) |= p
  proof
    assume
A8: for a holds J,(v.vS).(x|a) |= p;
    let a;
    dom vS29 misses dom (x|a) by A5;
    then J,(v.vS).(x|a) |= p iff J,(v.vS).((x|a)+*vS19+*vS29) |= p by A1,A6,A4;
    hence thesis by A8;
  end;
A9: dom vS19 misses {x} by XBOOLE_1:63,79;
A10: for a holds (v.vS).((x|a)+*vS19+*vS29) = v.(vS+*vS1+*vS2).(x|a)
  proof
    let a;
    dom vS19 misses dom (x|a) by A9;
    then (v.vS).((x|a)+*vS19+*vS29) = (v+*vS)+*(vS19+*(x|a)+*vS29) by
FUNCT_4:35;
    then
A11: (v.vS).((x|a)+*vS19+*vS29) = (v+*vS)+*(vS19+*((x|a)+*vS29)) by FUNCT_4:14;
    dom vS29 misses dom (x|a) by A5;
    then (v.vS).((x|a)+*vS19+*vS29) = (v+*vS)+*(vS19+*(vS29+*(x|a))) by A11,
FUNCT_4:35;
    then
A12: (v.vS).((x|a)+*vS19+*vS29) = (v+*vS)+*((vS19+*vS29)+*(x|a)) by FUNCT_4:14;
A13: now
      assume x in dom vS1;
      then
A14:  vS19 +* (x .--> vS1.x) = vS1 by Th2;
A15:  now
        assume not x in dom vS2;
        then vS29 = vS2|(dom vS2) by ZFMISC_1:57;
        then vS29 = vS2;
        then
A16:    vS29 +* {} = vS2;
        dom {} c= dom (x|a) & dom (x .--> vS1.x) = dom (x|a);
        hence
        (v.vS).((x|a)+*vS19+*vS29) = (v+*vS)+*((vS1+*vS2)+*(x|a)) by A12,A14
,A16,Th1;
      end;
      now
A17:    dom (x .--> vS2.x) = dom (x|a);
A18:    dom (x .--> vS1.x) = dom (x|a);
        assume x in dom vS2;
        then vS29 +* (x .--> vS2.x) = vS2 by Th2;
        hence
        (v.vS).((x|a)+*vS19+*vS29) = (v+*vS)+*((vS1+*vS2)+*(x|a)) by A12,A14
,A18,A17,Th1;
      end;
      hence (v.vS).((x|a)+*vS19+*vS29) = (v+*vS)+*((vS1+*vS2)+*(x|a)) by A15;
    end;
    now
A19:  dom {} c= dom (x|a);
      assume not x in dom vS1;
      then vS19 = vS1|(dom vS1) by ZFMISC_1:57;
      then
A20:  vS19 = vS1;
      then
A21:  vS19 +* {} = vS1;
A22:  now
A23:    dom (x .--> vS2.x) = dom (x|a);
        assume x in dom vS2;
        then vS29 +* (x .--> vS2.x) = vS2 by Th2;
        hence
        (v.vS).((x|a)+*vS19+*vS29) = (v+*vS)+*((vS1+*vS2)+*(x|a)) by A12,A21
,A19,A23,Th1;
      end;
      now
        assume not x in dom vS2;
        then vS29 = vS2|(dom vS2) by ZFMISC_1:57;
        hence
        (v.vS).((x|a)+*vS19+*vS29) = (v+*vS)+*((vS1+*vS2)+*(x|a)) by A12,A20;
      end;
      hence (v.vS).((x|a)+*vS19+*vS29) = (v+*vS)+*((vS1+*vS2)+*(x|a)) by A22;
    end;
    then (v.vS).((x|a)+*vS19+*vS29) = (v+*vS)+*(vS1+*vS2)+*(x|a) by A13,
FUNCT_4:14;
    then (v.vS).((x|a)+*vS19+*vS29) = ((v+*vS)+*vS1+*vS2)+*(x|a) by FUNCT_4:14;
    then (v.vS).((x|a)+*vS19+*vS29) = (v+*(vS+*vS1)+*vS2)+*(x|a) by FUNCT_4:14;
    hence thesis by FUNCT_4:14;
  end;
A24: (for a holds J,v.(vS+*vS1+*vS2).(x|a) |= p) implies for a holds J,(v.vS
  ).((x|a)+*vS19+*vS29) |= p
  proof
    assume
A25: for a holds J,v.(vS+*vS1+*vS2).(x|a) |= p;
    let a;
    (v.vS).((x|a)+*vS19+*vS29) = v.(vS+*vS1+*vS2).(x|a) by A10;
    hence thesis by A25;
  end;
A26: (for a holds J,(v.vS).((x|a)+*vS19+*vS29) |= p) implies for a holds J,(
  v.vS).(x|a) |= p
  proof
    assume
A27: for a holds J,(v.vS).((x|a)+*vS19+*vS29) |= p;
    let a;
    dom vS29 misses dom (x|a) by A5;
    then J,(v.vS).(x|a) |= p iff J,(v.vS).((x|a)+*vS19+*vS29) |= p by A1,A6,A4;
    hence thesis by A27;
  end;
  (for a holds J,(v.vS).((x|a)+*vS19+*vS29) |= p) implies for a holds J,v
  .(vS+*vS1+*vS2).(x|a) |= p
  proof
    assume
A28: for a holds J,(v.vS).((x|a)+*vS19+*vS29) |= p;
    let a;
    (v.vS).((x|a)+*vS19+*vS29) = v.(vS+*vS1+*vS2).(x|a) by A10;
    hence thesis by A28;
  end;
  hence thesis by A7,A26,A24,Th50;
end;
