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 Th13:
  for val being 10-element FinSequence holds
  V is non empty & A is_without_nonatomicND_wrt V &
  Seg 10 c= dom loc & loc|Seg 10 is one-to-one & loc,val are_different_wrt 10
  implies
  valid_Lucas_input(V,A,val,x0,y0,p0,q0,n0) ||=
  SC_Psuperpos_Seq(loc,val,Lucas_inv(A,loc,x0,y0,p0,q0,n0)).
    len SC_Psuperpos_Seq(loc,val,Lucas_inv(A,loc,x0,y0,p0,q0,n0))
  proof
    let val be 10-element FinSequence;
    set size = 10;
    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 EN = {i1,j1,n1,s1,b1,c1,p1,q1,ps1,qc1};
    set D = ND(V,A);
    set I = valid_Lucas_input(V,A,val,x0,y0,p0,q0,n0);
    set inv = Lucas_inv(A,loc,x0,y0,p0,q0,n0);
    set DS = denamingSeq(V,A,val);
    set SE = SC_Psuperpos_Seq(loc,val,inv);
    set Q1 = SC_Psuperpos(SE.8,DS.2,j);
    set P1 = SC_Psuperpos(Q1,DS.1,i);
    set inp = Lucas_input(x0,y0,p0,q0,n0);
    assume that
A1: V is non empty and
A2: A is_without_nonatomicND_wrt V and
A3: Seg 10 c= dom loc and
A4: loc|Seg 10 is one-to-one and
A5: loc,val are_different_wrt 10;
A6: Seg 10 = dom val by FINSEQ_1:89;
A7: len val = 10 by CARD_1:def 7;
A8: len SE = len val by NOMIN_8:def 9;
A9: len inp = 10 by CARD_1:def 7;
A10: len DS = 10 by NOMIN_8:def 8,A7;
A11: DS.1 = denaming(V,A,val.1) by NOMIN_8:def 8,A10;
A12: DS.2 = denaming(V,A,val.2) by NOMIN_8:def 8,A10;
A13: DS.9 = denaming(V,A,val.9) by NOMIN_8:def 8,A10;
A14: DS.10 = denaming(V,A,val.10) by NOMIN_8:def 8,A10;
A15: SE.(8+1) =
    SC_Psuperpos(SE.8,denaming(V,A,val.(len val-8)),loc/.(len val-8))
    by A7,A8,NOMIN_8:def 9
    .= Q1 by NOMIN_8:def 8,A10,A7;
A16: SE.(9+1) =
    SC_Psuperpos(SE.9,denaming(V,A,val.(len val-9)),loc/.(len val-9))
    by A7,A8,NOMIN_8:def 9
    .= P1 by NOMIN_8:def 8,A10,A7,A15;
    let d be Element of D;
    assume d in dom I & I.d = TRUE;
    then Lucas_input(x0,y0,p0,q0,n0) is_valid_input V,A,val,d
    by NOMIN_8:def 11;
    then consider d1 being NonatomicND of V,A such that
A17: d = d1 and
A18: val is_valid_wrt d1 and
A19: for n being Nat st 1 <= n <= len inp holds d1.(val.n) = inp.n;
A20: d1.i1 = inp.1 by A9,A19
     .= 0;
A21: d1.j1 = inp.2 by A9,A19
     .= 1;
A22: d1.n1 = inp.3 by A9,A19
     .= n0;
A23: d1.s1 = inp.4 by A9,A19
     .= x0;
A24: d1.b1 = inp.5 by A9,A19
     .= y0;
A25: d1.p1 = inp.7 by A9,A19
     .= p0;
A26: d1.q1 = inp.8 by A9,A19
     .= q0;
     set F = LocalOverlapSeq(A,loc,val,d1,size);
A27: len F = size by NOMIN_7:def 4;
     then
A28: loc,val,size are_correct_wrt d1 by A1,A2,A6,A18,FINSEQ_1:def 3;
A29: dom(DS.1) = {d where d is NonatomicND of V,A: i1 in dom d}
     by A11,NOMIN_1:def 18;
A30: dom P1 = {d where d is TypeSCNominativeData of V,A:
     local_overlapping(V,A,d,DS.1.d,i) in dom Q1 & d in dom(DS.1)}
     by NOMIN_2:def 11;
A31: dom Q1 = {d where d is TypeSCNominativeData of V,A:
     local_overlapping(V,A,d,DS.2.d,j) in dom(SE.8) & d in dom(DS.2)}
     by NOMIN_2:def 11;
     1 in dom val by A6;
     then i1 in rng val by FUNCT_1:def 3;
     then
A32: d1 in dom(DS.1) by A18,A29;
A33: F.1 is NonatomicND of V,A by A27,NOMIN_7:def 6;
     reconsider Lqc = F.10 as NonatomicND of V,A by A27,NOMIN_7:def 6;
A34: F.1 = local_overlapping(V,A,d1,DS.1.d1,i) by A11,NOMIN_7:def 4;
A35: F.(1+1) = local_overlapping(V,A,F.1,DS.2.(F.1),j)
     by A12,A27,NOMIN_7:def 4;
A36: F.1 in dom(DS.2) by A12,A27,A28,NOMIN_8:15;
A37: dom inv = D by Def15;
     then
A38: Lqc in dom inv;
A39: size-8-1 = 1;
A40: 8+1 < size;
     local_overlapping(V,A,F.(size-1),denaming(V,A,val.len val).(F.(size-1)),
     loc/.len val) in dom inv by A37;
     then F.2 in dom(SE.8) by A12,A7,A28,A35,A39,A40,NOMIN_8:16;
     then
A41: F.1 in dom Q1 by A35,A31,A33,A36;
     hence d in dom(SE.len SE) by A34,A17,A30,A32,A7,A8,A16;
A42: Lucas_inv_pred A,loc,x0,y0,p0,q0,n0,Lqc
     proof
       take Lqc;
       thus Lqc = Lqc;
       thus {i,j,n,s,b,c,p,q,ps,qc} c= dom Lqc
       proof
A43:     i in dom Lqc by A28,NOMIN_7:9;
A44:     j in dom Lqc by A28,NOMIN_7:9;
A45:     n in dom Lqc by A28,NOMIN_7:9;
A46:     s in dom Lqc by A28,NOMIN_7:9;
A47:     b in dom Lqc by A28,NOMIN_7:9;
A48:     c in dom Lqc by A28,NOMIN_7:9;
A49:     p in dom Lqc by A28,NOMIN_7:9;
A50:     q in dom Lqc by A28,NOMIN_7:9;
A51:     ps in dom Lqc by A28,NOMIN_7:9;
         qc in dom Lqc by A28,NOMIN_7:9;
         hence {i,j,n,s,b,c,p,q,ps,qc} c= dom Lqc
         by A43,A44,A45,A46,A47,A48,A49,A50,A51,ENUMSET1:def 8;
       end;
       thus Lqc.j = d1.j1 by A3,A4,A5,A28,NOMIN_7:13
       .= 1 by A21;
       thus Lqc.n = d1.n1 by A3,A4,A5,A28,NOMIN_7:13
       .= n0 by A22;
       thus Lqc.p = d1.p1 by A3,A4,A5,A28,NOMIN_7:13
       .= p0 by A25;
       thus Lqc.q = d1.q1 by A3,A4,A5,A28,NOMIN_7:13
       .= q0 by A26;
       take 0;
       thus Lqc.i = d1.i1 by A3,A4,A5,A28,NOMIN_7:13
       .= 0 by A20;
       thus Lqc.s = d1.s1 by A3,A4,A5,A28,NOMIN_7:13
       .= x0 by A23
       .= Lucas(x0,y0,p0,q0,0) by Th5;
       thus Lqc.b = d1.b1 by A3,A4,A5,A28,NOMIN_7:13
       .= y0 by A24
       .= Lucas(x0,y0,p0,q0,0+1) by Th5;
     end;
A52: 10-9 = 1 & 10-1 = 9;
A53: 8+1 = 9 & 8 = 10-2;
A54: local_overlapping(V,A,F.9,DS.10.(F.9),qc) in dom inv by A37;
     set dy = local_overlapping(V,A,F.8,DS.9.(F.8),ps);
A55: local_overlapping(V,A,dy,DS.10.dy,qc) in dom inv by A37;
     thus (SE.len SE).d = Q1.(F.1)
     by A11,A12,A14,A7,A15,A17,A28,A34,A41,A52,A53,A54,NOMIN_8:19
     .= SE.1.(F.9) by A14,A7,A15,A28,A52,A54,NOMIN_8:17
     .= inv.Lqc by A13,A14,A7,A28,A52,A53,A54,A55,NOMIN_8:18
     .= TRUE by A38,A42,Def15;
   end;
