reserve x,y,P,Q for Integer;
reserve a,b,n for Nat;
reserve V,A for set;
reserve val for Function;
reserve loc for V-valued Function;
reserve d1 for NonatomicND of V,A;
reserve p for SCPartialNominativePredicate of V,A;
reserve d for object;
reserve z for Element of V;
reserve T for TypeSCNominativeData of V,A;
reserve size for non zero Nat;
reserve x0, y0, p0, q0 for Integer;
reserve n0 for Nat;

theorem Th18:
  for V being non empty set
  for loc being V-valued 10-element FinSequence holds
  for val being 10-element FinSequence holds
  A is complex-containing & A is_without_nonatomicND_wrt V &
   (for T being TypeSCNominativeData of V,A
     holds loc/.1 is_a_value_on T & loc/.2 is_a_value_on T &
    loc/.4 is_a_value_on T & loc/.6 is_a_value_on T &
    loc/.7 is_a_value_on T & loc/.8 is_a_value_on T &
    loc/.9 is_a_value_on T & loc/.10 is_a_value_on T) &
   loc is one-to-one & loc,val are_different_wrt 10
  implies
  <* valid_Lucas_input(V,A,val,x0,y0,p0,q0,n0),
     Lucas_main_part(A,loc,val),
     PP_and(Equality(A,loc/.1,loc/.3),Lucas_inv(A,loc,x0,y0,p0,q0,n0)) *>
  is SFHT of ND(V,A)
  proof
    let V be non empty set;
    let loc be V-valued 10-element FinSequence;
    let val be 10-element FinSequence;
    set i = loc/.1, j = loc/.2, n = loc/.3, s = loc/.4, b = loc/.5, c = loc/.6;
    set p = loc/.7, q = loc/.8, ps = loc/.9, qc = loc/.10;
    set i1 = val.1, j1 = val.2, n1 = val.3, s1 = val.4, b1 = val.5, c1 = val.6;
    set p1 = val.7, q1 = val.8, ps1 = val.9, qc1 = val.10;
    set D = ND(V,A);
    set P = valid_Lucas_input(V,A,val,x0,y0,p0,q0,n0);
    set f = initial_assignments(A,loc,val,10);
    set g = Lucas_main_loop(A,loc);
    set Q = Lucas_inv(A,loc,x0,y0,p0,q0,n0);
    set R = PP_and(Equality(A,i,n),Lucas_inv(A,loc,x0,y0,p0,q0,n0));
    assume that
A1: A is complex-containing & A is_without_nonatomicND_wrt V &
    (for T being TypeSCNominativeData of V,A
     holds i is_a_value_on T & j is_a_value_on T &
    s is_a_value_on T & c is_a_value_on T & p is_a_value_on T &
    q is_a_value_on T & ps is_a_value_on T & qc is_a_value_on T) and
A2: loc is one-to-one and
A3: loc,val are_different_wrt 10;
A4: Seg 10 c= dom loc by FINSEQ_1:89;
    loc|Seg 10 is one-to-one by A2;
    then
A5: <*P,f,Q*> is SFHT of D by A1,A3,A4,Th14;
A6: <*Q,g,R*> is SFHT of D by A1,A2,Th17;
    <*PP_inversion(Q),g,R*> is SFHT of D by NOMIN_3:19;
    hence thesis by A5,A6,NOMIN_3:25;
  end;
