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 Th16:
  for V being non empty set
  for loc being V-valued 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
  implies
  <* Lucas_inv(A,loc,x0,y0,p0,q0,n0),
     Lucas_loop_body(A,loc),
     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;
    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;
    assume that
A1: A is complex-containing and
A2: A is_without_nonatomicND_wrt V and
A3: 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;
    assume
A4: loc is one-to-one;
A5: Seg 10 = dom loc by FINSEQ_1:89;
A6: loc|Seg 10 = loc;
    set D = ND(V,A);
    set EN = {i,j,n,s,b,c,p,q,ps,qc};
    set inv = Lucas_inv(A,loc,x0,y0,p0,q0,n0);
    set B = Lucas_loop_body(A,loc);
    set Di = denaming(V,A,i);
    set Dj = denaming(V,A,j);
    set Dn = denaming(V,A,n);
    set Ds = denaming(V,A,s);
    set Db = denaming(V,A,b);
    set Dc = denaming(V,A,c);
    set Dp = denaming(V,A,p);
    set Dq = denaming(V,A,q);
    set Dps = denaming(V,A,ps);
    set Dqc = denaming(V,A,qc);
    set Aij = addition(A,i,j);
    set Mps = multiplication(A,p,s);
    set Mqc = multiplication(A,q,c);
    set Scs = subtraction(A,ps,qc);
    set AS1 = SC_assignment(Ds,c);
    set AS2 = SC_assignment(Db,s);
    set AS3 = SC_assignment(Mps,ps);
    set AS4 = SC_assignment(Mqc,qc);
    set AS5 = SC_assignment(Scs,b);
    set AS6 = SC_assignment(Aij,i);
    now
      let d be TypeSCNominativeData of V,A such that
A7:   d in dom inv and
A8:   inv.d = TRUE and
A9:   d in dom B and
A10:   B.d in dom inv;
      Lucas_inv_pred A,loc,x0,y0,p0,q0,n0,d by A7,A8,Def15;
      then consider d1 being NonatomicND of V,A such that
A11:  d = d1 and
A12:  EN c= dom d1 and
A13:  d1.j = 1 and
A14:  d1.n = n0 and
A15:  d1.p = p0 and
A16:  d1.q = q0 and
A17:  ex I being Nat st I = d1.i & d1.s = Lucas(x0,y0,p0,q0,I) &
      d1.b = Lucas(x0,y0,p0,q0,I+1);
A18:  i in EN by ENUMSET1:def 8;
A19:  j in EN by ENUMSET1:def 8;
A20:  n in EN by ENUMSET1:def 8;
A21:  s in EN by ENUMSET1:def 8;
A22:  b in EN by ENUMSET1:def 8;
A23:  p in EN by ENUMSET1:def 8;
A24:  q in EN by ENUMSET1:def 8;
      consider I being Nat such that
A25:  I = d1.i and
A26:  d1.s = Lucas(x0,y0,p0,q0,I) and
A27:  d1.b = Lucas(x0,y0,p0,q0,I+1) by A17;
      set prg = <*Ds,Db,Mps,Mqc,Scs,Aij*>;
      set pos = <*6,4,9,10,5,1*>;
      reconsider prg as non empty FPrg(ND(V,A))-valued FinSequence;
      set PS = PrgLocalOverlapSeq(A,loc,d1,prg,pos);
A28:  len prg = 6 by AOFA_A00:20;
A29:  len PS = len prg by NOMIN_8:def 14;
A30:  prg.1 = Ds & pos.1 = 6;
A31:  prg.2 = Db & pos.2 = 4;
A32:  prg.3 = Mps & pos.3 = 9;
A33:  prg.4 = Mqc & pos.4 = 10;
A34:  prg.5 = Scs & pos.5 = 5;
A35:  prg.6 = Aij & pos.6 = 1;
      rng loc c= EN
      proof
        let y be object;
        assume y in rng loc;
        then consider w being object such that
A36:    w in dom loc and
A37:    loc.w = y by FUNCT_1:def 3;
A38:    w = 1 or ... or w = 10 by A5,A36,FINSEQ_1:91;
        1 in Seg 10 & ... & 10 in Seg 10;
        then loc.1 = loc/.1 & ... & loc.10 = loc/.10 by A5,PARTFUN1:def 6;
        hence thesis by A37,A38,ENUMSET1:def 8;
      end;
      then rng loc c= dom d1 by A12;
      then
A39:  loc is_valid_wrt d1;
A40:  dom AS1 = dom Ds by NOMIN_2:def 7;
A41:  dom AS2 = dom Db by NOMIN_2:def 7;
      PP_composition(PP_composition(PP_composition(PP_composition(AS1,AS2),
      AS3),AS4),AS5) = PP_composition(PP_composition(PP_composition(
      AS2*AS1,AS3),AS4),AS5) by PARTPR_2:def 1
      .= PP_composition(PP_composition(AS3*(AS2*AS1),AS4),AS5)
      by PARTPR_2:def 1
      .= PP_composition(AS4*(AS3*(AS2*AS1)),AS5) by PARTPR_2:def 1
      .= AS5*(AS4*(AS3*(AS2*AS1))) by PARTPR_2:def 1;
      then
A42:  B = AS6*(AS5*(AS4*(AS3*(AS2*AS1)))) by PARTPR_2:def 1;
A43:  AS5*AS4*AS3*AS2*AS1 = AS5*AS4*AS3*(AS2*AS1) by RELAT_1:36
      .= AS5*AS4*(AS3*(AS2*AS1)) by RELAT_1:36
      .= AS5*(AS4*(AS3*(AS2*AS1))) by RELAT_1:36;
A44:  AS5*(AS4*(AS3*(AS2*AS1))) = AS5*(AS4*AS3*(AS2*AS1)) by RELAT_1:36
      .= AS5*(AS4*AS3*AS2*AS1) by RELAT_1:36;
A45:  AS4*AS3*AS2*AS1 = AS4*AS3*(AS2*AS1) by RELAT_1:36
      .= AS4*(AS3*(AS2*AS1)) by RELAT_1:36;
A46:  AS4*(AS3*(AS2*AS1)) = AS4*(AS3*AS2*AS1) by RELAT_1:36;
A47:  AS3*AS2*AS1 = AS3*(AS2*AS1) by RELAT_1:36;
      B = AS6*(AS5*AS4*(AS3*(AS2*AS1))) by A42,RELAT_1:36
      .= AS6*(AS5*AS4*AS3*(AS2*AS1)) by RELAT_1:36
      .= AS6*(AS5*AS4*AS3*AS2*AS1) by RELAT_1:36;
      then
A48:  d in dom(AS5*AS4*AS3*AS2*AS1) by A9,FUNCT_1:11;
      then
A49:  d in dom(AS4*AS3*AS2*AS1) by A43,A44,FUNCT_1:11;
      then d in dom(AS3*AS2*AS1) by A45,A46,FUNCT_1:11;
      then
A50:  d in dom(AS2*AS1) by A47,FUNCT_1:11;
      then
A51:  (AS2*AS1).d = AS2.(AS1.d) by FUNCT_1:12;
A52:  dom Di = {d where d is NonatomicND of V,A: i in dom d}
      by NOMIN_1:def 18;
A53:  dom Dj = {d where d is NonatomicND of V,A: j in dom d}
      by NOMIN_1:def 18;
A54:  dom Ds = {d where d is NonatomicND of V,A: s in dom d}
      by NOMIN_1:def 18;
A55:  dom Db = {d where d is NonatomicND of V,A: b in dom d}
      by NOMIN_1:def 18;
A56:  dom Dc = {d where d is NonatomicND of V,A: c in dom d}
      by NOMIN_1:def 18;
A57:  dom Dp = {d where d is NonatomicND of V,A: p in dom d}
      by NOMIN_1:def 18;
A58:  dom Dq = {d where d is NonatomicND of V,A: q in dom d}
      by NOMIN_1:def 18;
A59:  dom Dps = {d where d is NonatomicND of V,A: ps in dom d}
      by NOMIN_1:def 18;
A60:  dom Dqc = {d where d is NonatomicND of V,A: qc in dom d}
      by NOMIN_1:def 18;
A61:  d in dom AS1 by A48,FUNCT_1:11;
      then reconsider Ad = Ds.d1 as TypeSCNominativeData of V,A
      by A40,A11,PARTFUN1:4,NOMIN_1:39;
      reconsider L1 = local_overlapping(V,A,d1,Ad,c) as NonatomicND of V,A
      by NOMIN_2:9;
A62:  PS.1 = L1 by A28,A30,NOMIN_8:def 14;
A63:  AS1.d = L1 by A11,A61,NOMIN_2:def 7;
      then
A64:  L1 in dom AS2 by A50,FUNCT_1:11;
      then reconsider DbL1 = Db.L1 as TypeSCNominativeData of V,A
      by A41,PARTFUN1:4,NOMIN_1:39;
      reconsider L2 = local_overlapping(V,A,L1,DbL1,s) as NonatomicND of V,A
      by NOMIN_2:9;
A65:  2=1+1 & 3=2+1 & 4=3+1 & 5=4+1 & 6=5+1;
A66:  PS.2 = L2 by A65,A28,A29,A31,A62,NOMIN_8:def 14;
A67:  AS2.L1 = L2 by A64,NOMIN_2:def 7;
A68:  dom L1 = {c} \/ dom d1 by A2,NOMIN_4:4;
A69:  dom L2 = {s} \/ dom L1 by A2,NOMIN_4:4;
A70:  d1 in dom Ds by A12,A21,A54;
A71:  dom PS = dom prg by A29,FINSEQ_3:29;
A72:  s in dom L2
      by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A31,A66,NOMIN_8:25;
      then
A73:  L2 in dom Ds by A54;
A74:  p in dom L1 by A12,A23,A68,XBOOLE_0:def 3;
      then
A75:  p in dom L2 by A69,XBOOLE_0:def 3;
      then L2 in dom Dp by A57;
      then L2 in dom Ds /\ dom Dp by A73,XBOOLE_0:def 4;
      then
A76:  L2 in dom <:Dp,Ds:> by FUNCT_3:def 7;
      then
A77:  <:Dp,Ds:>.L2 = [Dp.L2,Ds.L2] by FUNCT_3:def 7;
A78:  dom(multiplication(A)) = [:A,A:] by A1,FUNCT_2:def 1;
      p is_a_value_on L2 & s is_a_value_on L2 by A3;
      then [Dp.L2,Ds.L2] in [:A,A:] by ZFMISC_1:87;
      then
A79:  L2 in dom Mps by A76,A78,A77,FUNCT_1:11;
      then reconsider MpsL2 = Mps.L2 as TypeSCNominativeData of V,A
      by PARTFUN1:4,NOMIN_1:39;
      reconsider L3 = local_overlapping(V,A,L2,MpsL2,ps) as NonatomicND of V,A
      by NOMIN_2:9;
A80:  PS.3 = L3 by A65,A28,A29,A32,A66,NOMIN_8:def 14;
A81:  dom L3 = {ps} \/ dom L2 by A2,NOMIN_4:4;
A82:  s in dom L3
      by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A31,A80,NOMIN_8:25;
A83:  q in dom L1 by A12,A24,A68,XBOOLE_0:def 3;
      then
A84:  q in dom L2 by A69,XBOOLE_0:def 3;
      then
A85:  q in dom L3 by A81,XBOOLE_0:def 3;
A86:  c in dom L1
      by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A62,NOMIN_8:25;
A87:  c in dom L2
      by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A66,NOMIN_8:25;
A88:  c in dom L3
      by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A80,NOMIN_8:25;
A89:  L3 in dom Dq by A85,A58;
      L3 in dom Dc by A88,A56;
      then L3 in dom Dq /\ dom Dc by A89,XBOOLE_0:def 4;
      then
A90:  L3 in dom <:Dq,Dc:> by FUNCT_3:def 7;
      then
A91:  <:Dq,Dc:>.L3 = [Dq.L3,Dc.L3] by FUNCT_3:def 7;
      q is_a_value_on L3 & c is_a_value_on L3 by A3;
      then [Dq.L3,Dc.L3] in [:A,A:] by ZFMISC_1:87;
      then
A92:  L3 in dom Mqc by A90,A78,A91,FUNCT_1:11;
      then reconsider MqcL3 = Mqc.L3 as TypeSCNominativeData of V,A
      by PARTFUN1:4,NOMIN_1:39;
      reconsider L4 = local_overlapping(V,A,L3,MqcL3,qc) as NonatomicND of V,A
      by NOMIN_2:9;
A93:  PS.4 = L4 by A65,A28,A29,A33,A80,NOMIN_8:def 14;
A94:  dom L4 = {qc} \/ dom L3 by A2,NOMIN_4:4;
A95:  qc in dom L4
      by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A33,A93,NOMIN_8:25;
A96:  ps in dom L3
      by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A32,A80,NOMIN_8:25;
A97:  ps in dom L4
      by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A32,A93,NOMIN_8:25;
A98:  b in dom L1 by A12,A22,A68,XBOOLE_0:def 3;
A99:  L4 in dom Dps by A97,A59;
      L4 in dom Dqc by A95,A60;
      then L4 in dom Dps /\ dom Dqc by A99,XBOOLE_0:def 4;
      then
A100:  L4 in dom <:Dps,Dqc:> by FUNCT_3:def 7;
      then
A101: <:Dps,Dqc:>.L4 = [Dps.L4,Dqc.L4] by FUNCT_3:def 7;
A102: dom(subtraction(A)) = [:A,A:] by A1,FUNCT_2:def 1;
      ps is_a_value_on L4 & qc is_a_value_on L4 by A3;
      then [Dps.L4,Dqc.L4] in [:A,A:] by ZFMISC_1:87;
      then
A103: L4 in dom Scs by A100,A102,A101,FUNCT_1:11;
      then reconsider ScsL4 = Scs.L4 as TypeSCNominativeData of V,A
      by PARTFUN1:4,NOMIN_1:39;
      reconsider L5 = local_overlapping(V,A,L4,ScsL4,b) as NonatomicND of V,A
      by NOMIN_2:9;
A104: PS.5 = L5 by A65,A28,A29,A34,A93,NOMIN_8:def 14;
A105: dom L5 = {b} \/ dom L4 by A2,NOMIN_4:4;
A106: i in dom L1 by A12,A18,A68,XBOOLE_0:def 3;
      then
A107: i in dom L2 by A69,XBOOLE_0:def 3;
      then
A108: i in dom L3 by A81,XBOOLE_0:def 3;
      then
A109: i in dom L4 by A94,XBOOLE_0:def 3;
      then
A110: i in dom L5 by A105,XBOOLE_0:def 3;
      then
A111: L5 in dom Di by A52;
A112: j in dom L1 by A12,A19,A68,XBOOLE_0:def 3;
      then
A113: j in dom L2 by A69,XBOOLE_0:def 3;
      then
A114: j in dom L3 by A81,XBOOLE_0:def 3;
      then
A115: j in dom L4 by A94,XBOOLE_0:def 3;
      then
A116: j in dom L5 by A105,XBOOLE_0:def 3;
      then
A117: L5 in dom Dj by A53;
      L5 in dom Di /\ dom Dj by A111,A117,XBOOLE_0:def 4;
      then
A118: L5 in dom <:Di,Dj:> by FUNCT_3:def 7;
      then
A119: <:Di,Dj:>.L5 = [Di.L5,Dj.L5] by FUNCT_3:def 7;
A120: dom(addition(A)) = [:A,A:] by A1,FUNCT_2:def 1;
      i is_a_value_on L5 & j is_a_value_on L5 by A3;
      then [Di.L5,Dj.L5] in [:A,A:] by ZFMISC_1:87;
      then
A121: L5 in dom Aij by A120,A118,A119,FUNCT_1:11;
      then reconsider AijL5 = Aij.L5 as TypeSCNominativeData of V,A
      by PARTFUN1:4,NOMIN_1:39;
      reconsider L6 = local_overlapping(V,A,L5,AijL5,i) as NonatomicND of V,A
      by NOMIN_2:9;
A122: PS.6 = L6 by A28,A29,A35,A104,NOMIN_8:def 14;
A123: dom L6 = {i} \/ dom L5 by A2,NOMIN_4:4;
A124: d in dom(AS3*(AS2*AS1)) by A45,A49,FUNCT_1:11;
      then L2 in dom AS3 by A51,A63,A67,FUNCT_1:11;
      then
A125: AS3.L2 = L3 by NOMIN_2:def 7;
A126: (AS3*(AS2*AS1)).d = AS3.((AS2*AS1).d) by A124,FUNCT_1:12;
      then L3 in dom AS4 by A49,A45,A125,A67,A51,A63,FUNCT_1:11;
      then
A127: AS4.L3 = L4 by NOMIN_2:def 7;
A128: (AS4*(AS3*(AS2*AS1))).d = AS4.((AS3*(AS2*AS1)).d) by A49,A45,FUNCT_1:12;
      then L4 in dom AS5 by A43,A48,A127,A125,A67,A63,A126,A51,FUNCT_1:11;
      then
A129: AS5.L4 = L5 by NOMIN_2:def 7;
A130: (AS5*(AS4*(AS3*(AS2*AS1)))).d = AS5.((AS4*(AS3*(AS2*AS1))).d)
      by A43,A48,FUNCT_1:12;
      B = AS6*AS5*(AS4*(AS3*(AS2*AS1))) by A42,RELAT_1:36
      .= AS6*AS5*AS4*(AS3*(AS2*AS1)) by RELAT_1:36
      .= AS6*AS5*AS4*AS3*(AS2*AS1) by RELAT_1:36
      .= AS6*AS5*AS4*AS3*AS2*AS1 by RELAT_1:36;
      then AS1.d in dom(AS6*AS5*AS4*AS3*AS2) by A9,FUNCT_1:11;
      then AS2.L1 in dom(AS6*AS5*AS4*AS3) by A63,FUNCT_1:11;
      then AS3.L2 in dom(AS6*AS5*AS4) by A67,FUNCT_1:11;
      then AS4.L3 in dom(AS6*AS5) by A125,FUNCT_1:11;
      then AS5.L4 in dom AS6 by A127,FUNCT_1:11;
      then
A131: L6 = AS6.L5 by A129,NOMIN_2:def 7
      .= B.d by A129,A127,A125,A67,A63,A51,A130,A128,A126,A9,A42,FUNCT_1:12;
      Lucas_inv_pred A,loc,x0,y0,p0,q0,n0,L6
      proof
        take L6;
        thus L6 = L6;
A132:   i in dom L6 by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A35,A122,
        NOMIN_8:25;
A133:   j in dom L6 by A116,A123,XBOOLE_0:def 3;
A134:   n in dom L1 by A12,A20,A68,XBOOLE_0:def 3;
        then
A135:   n in dom L2 by A69,XBOOLE_0:def 3;
        then
A136:   n in dom L3 by A81,XBOOLE_0:def 3;
        then
A137:   n in dom L4 by A94,XBOOLE_0:def 3;
        then
A138:   n in dom L5 by A105,XBOOLE_0:def 3;
        then
A139:   n in dom L6 by A123,XBOOLE_0:def 3;
A140:   s in dom L4 by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A31,A93,
        NOMIN_8:25;
A141:   s in dom L5 by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A31,A104,
        NOMIN_8:25;
A142:   s in dom L6 by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A31,A122,
        NOMIN_8:25;
A143:   b in dom L5 by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A34,A104,
        NOMIN_8:25;
A144:   b in dom L6 by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A34,A122,
        NOMIN_8:25;
A145:   c in dom L6
        by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A30,A28,A122,NOMIN_8:25;
A146:   p in dom L3 by A75,A81,XBOOLE_0:def 3;
        then
A147:   p in dom L4 by A94,XBOOLE_0:def 3;
        then
A148:   p in dom L5 by A105,XBOOLE_0:def 3;
        then
A149:   p in dom L6 by A123,XBOOLE_0:def 3;
A150:   q in dom L4 by A85,A94,XBOOLE_0:def 3;
        then
A151:   q in dom L5 by A105,XBOOLE_0:def 3;
        then
A152:   q in dom L6 by A123,XBOOLE_0:def 3;
A153:   ps in dom L6 by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A32,A122,
        NOMIN_8:25;
        qc in dom L6 by A1,A2,A3,A5,A9,A11,Th15,A39,A71,A70,A28,A30,A33,A122,
        NOMIN_8:25;
        hence EN c= dom L6
        by A132,A133,A139,A142,A144,A145,A149,A152,A153,ENUMSET1:def 8;
A154:   L5.j = L4.j by A2,A4,A5,A6,A115,NOMIN_5:3,NOMIN_7:1
        .= L3.j by A2,A4,A5,A6,A114,NOMIN_5:3,NOMIN_7:1
        .= L2.j by A2,A4,A5,A6,A113,NOMIN_5:3,NOMIN_7:1
        .= L1.j by A2,A4,A5,A6,A112,NOMIN_5:3,NOMIN_7:1
        .= 1 by A2,A4,A5,A6,A12,A13,A19,NOMIN_5:3,NOMIN_7:1;
        hence L6.j = 1 by A2,A4,A5,A6,A116,NOMIN_5:3,NOMIN_7:1;
        thus L6.n = L5.n by A2,A4,A5,A6,A138,NOMIN_5:3,NOMIN_7:1
        .= L4.n by A2,A4,A5,A6,A137,NOMIN_5:3,NOMIN_7:1
        .= L3.n by A2,A4,A5,A6,A136,NOMIN_5:3,NOMIN_7:1
        .= L2.n by A2,A4,A5,A6,A135,NOMIN_5:3,NOMIN_7:1
        .= L1.n by A2,A4,A5,A6,A134,NOMIN_5:3,NOMIN_7:1
        .= n0 by A2,A4,A5,A6,A12,A14,A20,NOMIN_5:3,NOMIN_7:1;
        thus L6.p = L5.p by A2,A4,A5,A6,A148,NOMIN_5:3,NOMIN_7:1
        .= L4.p by A2,A4,A5,A6,A147,NOMIN_5:3,NOMIN_7:1
        .= L3.p by A2,A4,A5,A6,A146,NOMIN_5:3,NOMIN_7:1
        .= L2.p by A2,A4,A5,A6,A75,NOMIN_5:3,NOMIN_7:1
        .= L1.p by A2,A4,A5,A6,A74,NOMIN_5:3,NOMIN_7:1
        .= p0 by A2,A4,A5,A6,A12,A15,A23,NOMIN_5:3,NOMIN_7:1;
        thus L6.q = L5.q by A2,A4,A5,A6,A151,NOMIN_5:3,NOMIN_7:1
        .= L4.q by A2,A4,A5,A6,A150,NOMIN_5:3,NOMIN_7:1
        .= L3.q by A2,A4,A5,A6,A85,NOMIN_5:3,NOMIN_7:1
        .= L2.q by A2,A4,A5,A6,A84,NOMIN_5:3,NOMIN_7:1
        .= L1.q by A2,A4,A5,A6,A83,NOMIN_5:3,NOMIN_7:1
        .= q0 by A2,A4,A5,A6,A12,A16,A24,NOMIN_5:3,NOMIN_7:1;
        take I1 = I+1;
A155:   L5.i = L4.i by A2,A4,A5,A6,A109,NOMIN_5:3,NOMIN_7:1
        .= L3.i by A2,A4,A5,A6,A108,NOMIN_5:3,NOMIN_7:1
        .= L2.i by A2,A4,A5,A6,A107,NOMIN_5:3,NOMIN_7:1
        .= L1.i by A2,A4,A5,A6,A106,NOMIN_5:3,NOMIN_7:1
        .= I by A2,A4,A5,A6,A12,A18,A25,NOMIN_5:3,NOMIN_7:1;
        thus L6.i = Aij.L5 by NOMIN_2:10
        .= I1 by A1,A121,A110,A116,A154,A155,NOMIN_5:4;
A156:   L1 in dom Db by A55,A98;
A157:   L2.s = Db.L1 by NOMIN_2:10
        .= denaming(b,L1) by A156,NOMIN_1:def 18
        .= L1.b by A98,NOMIN_1:def 12
        .= Lucas(x0,y0,p0,q0,I1)
        by A2,A4,A5,A6,A27,A12,A22,NOMIN_5:3,NOMIN_7:1;
        thus L6.s = L5.s by A2,A4,A5,A6,A141,NOMIN_5:3,NOMIN_7:1
        .= L4.s by A2,A4,A5,A6,A140,NOMIN_5:3,NOMIN_7:1
        .= L3.s by A2,A4,A5,A6,A82,NOMIN_5:3,NOMIN_7:1
        .= Lucas(x0,y0,p0,q0,I1) by A2,A4,A5,A6,A72,A157,NOMIN_5:3,NOMIN_7:1;
A158:   L2.p = L1.p by A2,A4,A5,A6,A74,NOMIN_5:3,NOMIN_7:1
        .= p0 by A2,A4,A5,A6,A12,A15,A23,NOMIN_5:3,NOMIN_7:1;
A159:   L4.ps = L3.ps by A2,A4,A5,A6,A96,NOMIN_5:3,NOMIN_7:1
        .= Mps.L2 by NOMIN_2:10
        .= p0*Lucas(x0,y0,p0,q0,I1) by A1,A79,A75,A72,A157,A158,NOMIN_5:5;
A160:   L3.q = L2.q by A2,A4,A5,A6,A84,NOMIN_5:3,NOMIN_7:1
        .= L1.q by A2,A4,A5,A6,A83,NOMIN_5:3,NOMIN_7:1
        .= q0 by A2,A4,A5,A6,A12,A16,A24,NOMIN_5:3,NOMIN_7:1;
A161:   L3.c = L2.c by A2,A4,A5,A6,A87,NOMIN_5:3,NOMIN_7:1
        .= L1.c by A2,A4,A5,A6,A86,NOMIN_5:3,NOMIN_7:1
        .= Ds.d1 by NOMIN_2:10
        .= denaming(s,d1) by A70,NOMIN_1:def 18
        .= Lucas(x0,y0,p0,q0,I) by A12,A21,A26,NOMIN_1:def 12;
A162:   L4.qc = Mqc.L3 by NOMIN_2:10
        .= q0*Lucas(x0,y0,p0,q0,I) by A1,A92,A88,A85,A160,A161,NOMIN_5:5;
A163:   I1+1 = I+2;
        thus L6.b = L5.b by A2,A4,A5,A6,A143,NOMIN_7:1,NOMIN_5:3
        .= Scs.L4 by NOMIN_2:10
        .= p0*Lucas(x0,y0,p0,q0,I1)-q0*Lucas(x0,y0,p0,q0,I)
        by A1,A103,A97,A95,A159,A162,NOMIN_4:15
        .= Lucas(x0,y0,p0,q0,I1+1) by Th5,A163;
      end;
      hence inv.(B.d) = TRUE by A10,A131,Def15;
    end;
    hence thesis by NOMIN_3:28;
  end;
