reserve A for non empty set,
  a for Element of A;
reserve A for set;
reserve B,C for Element of Fin DISJOINT_PAIRS A,
  x for Element of [:Fin A, Fin A:],
  a,b,c,d,s,t,s9,t9,t1,t2,s1,s2 for Element of DISJOINT_PAIRS A,
  u,v,w for Element of NormForm A;
reserve K,L for Element of Normal_forms_on A;
reserve f,f9 for (Element of Funcs(DISJOINT_PAIRS A, [:Fin A,Fin A:])),
  g,h for Element of Funcs(DISJOINT_PAIRS A, [A]);

theorem Th20:
  (for c st c in u ex b st b in v & b c= c \/ a) implies ex b st b
  in @u =>> @v & b c= a
proof
  defpred P[Element of DISJOINT_PAIRS A,Element of [:Fin A, Fin A:]] means $2
  in @v & $2 c= $1 \/ a;
  assume
A1: for b st b in u ex c st c in v & c c= b \/ a;
A2: now
    let b;
    assume b in @u;
    then consider c such that
A3: c in v & c c= b \/ a by A1;
    reconsider c as Element of [:Fin A, Fin A:];
    take x = c;
    thus P[b,x] by A3;
  end;
  consider f9 such that
A4: b in @u implies P[b,f9.b] from FRAENKEL:sch 27(A2);
  set d = FinPairUnion(@u,pair_diff A.:(f9,incl DISJOINT_PAIRS A));
A5: now
    let s;
    assume s in u;
    then
A6: f9.s c= a \/ s by A4;
    (pair_diff A.:(f9,incl DISJOINT_PAIRS A)).s = f9.s \ s by Lm5;
    hence (pair_diff A.: (f9,incl DISJOINT_PAIRS A)).s c= a by A6,NORMFORM:15;
  end;
  then reconsider d as Element of DISJOINT_PAIRS A by NORMFORM:21,26;
  take d;
  b in u implies f9.b in v by A4;
  then f9.:(@u) c= v by SETWISEO:10;
  then d in { FinPairUnion(@u,pair_diff A.:(f,incl DISJOINT_PAIRS A)) : f.:@u
  c= v };
  hence d in @u =>> @v by XBOOLE_0:def 4;
  thus thesis by A5,NORMFORM:21;
end;
