 reserve j for set;
 reserve p,r for Real;
 reserve S,T,F for RealNormSpace;
 reserve x0 for Point of S;
 reserve g for PartFunc of S,T;
 reserve c for constant sequence of S;
 reserve R for RestFunc of S,T;
 reserve G for RealNormSpace-Sequence;
 reserve i for Element of dom G;
 reserve f for PartFunc of product G,F;
 reserve x for Element of product G;
reserve G for RealNormSpace-Sequence;
reserve F for RealNormSpace;
reserve i for Element of dom G;
reserve f,f1,f2 for PartFunc of product G, F;
reserve x for Point of product G;
reserve X for set;

theorem Th47:
for G be RealNormSpace-Sequence, i be Element of dom G,
    y be Point of product G, q be Point of G.i
  st q = proj(i).y holds y = reproj(i,y).q
proof
   let G be RealNormSpace-Sequence, i be Element of dom G,
       y be Point of product G, q be Point of G.i;
   assume A1: q = proj(i).y;
   reconsider z1 = reproj(i,y).q as (len G)-element FinSequence;
   reconsider z2 = y as (len G)-element FinSequence;
A2:dom z1 = Seg len G by FINSEQ_1:89 .= dom z2 by FINSEQ_1:89;
   for k be Nat st k in dom z1 holds z1.k = z2.k
   proof
    let k be Nat;
    assume k in dom z1;
    product G = NORMSTR(# product carr G,zeros G,[:addop G:],[:multop
    G:], productnorm G #) by PRVECT_2:6; then
A3: q = y.i by A1,Def3;
    per cases;
    suppose A4: k = i; then
     (y +*(i,q)).k = q by A3,FUNCT_7:35;
     hence z1.k = z2.k by A4,A3,Def4;
    end;
    suppose k <> i; then
     (y +*(i,q)).k = y.k by FUNCT_7:32;
     hence z1.k = z2.k by Def4;
    end;
   end;
   hence thesis by A2,FINSEQ_1:13;
end;
