reserve v for object;
reserve V,A for set;
reserve f for SCBinominativeFunction of V,A;
reserve d for TypeSCNominativeData of V,A;
reserve d1 for NonatomicND of V,A;
reserve a,b,c,z for Element of V;
reserve x,y for object;
reserve p,q,r,s for SCPartialNominativePredicate of V,A;
reserve x0,y0 for Nat;

theorem Th23:
  V is non empty & A is_without_nonatomicND_wrt V & a <> b &
   A is complex-containing &
   (for d holds a is_complex_on d) & (for d holds b is_complex_on d) implies
  <*gcd_inv(V,A,a,b,x0,y0),
    gcd_main_loop(V,A,a,b),
    PP_and(Equality(A,a,b),gcd_inv(V,A,a,b,x0,y0))*> is SFHT of ND(V,A)
  proof
    set p = gcd_inv(V,A,a,b,x0,y0);
    set r = PP_not(Equality(A,a,b));
    set f = gcd_loop_body(V,A,a,b);
    assume V is non empty & A is_without_nonatomicND_wrt V & a <> b &
    A is complex-containing &
    (for d holds a is_complex_on d) & (for d holds b is_complex_on d);
    then <*p,f,p*> is SFHT of ND(V,A) by Th21;
    then
A2: <*PP_and(r,p),f,p*> is SFHT of ND(V,A) by NOMIN_3:4,15;
    <*PP_inversion(p),f,p*> is SFHT of ND(V,A) by NOMIN_3:19;
    then <*PP_and(r,PP_inversion(p)),f,p*> is SFHT of ND(V,A) by NOMIN_3:4,15;
    hence thesis by A2,NOMIN_3:26;
  end;
