reserve x,y,X,Y for set,
  k,l,n for Nat,
  i,i1,i2,i3,j for Integer,
  G for Group,
  a,b,c,d for Element of G,
  A,B,C for Subset of G,
  H,H1,H2, H3 for Subgroup of G,
  h for Element of H,
  F,F1,F2 for FinSequence of the carrier of G,
  I,I1,I2 for FinSequence of INT;

theorem
  len I = n implies (n |-> 1_G) |^ I = n |-> 1_G
proof
  defpred P[Nat] means
for I st len I = $1 holds ($1 |-> 1_G) |^ I = $1 |-> 1_G;
A1: for k st P[k] holds P[k + 1]
  proof
    let k;
    assume
A2: P[k];
    let I;
    reconsider J = I | Seg k as FinSequence of INT by FINSEQ_1:18;
    assume
A3: len I = k + 1;
    then
A4: len J = k by FINSEQ_3:53;
    then
A5: (k |-> 1_G) |^ J = k |-> 1_G by A2;
A6: rng I c= INT by FINSEQ_1:def 4;
    1 <= k + 1 by NAT_1:12;
    then k + 1 in dom I by A3,FINSEQ_3:25;
    then I.(k + 1) in rng I by FUNCT_1:def 3;
    then reconsider i = I.(k + 1) as Integer by A6;
A7: len<* 1_G *> = 1 & len<* @i *> = 1 by FINSEQ_1:40;
A8: (k + 1) |-> 1_G = (k |-> 1_G) ^ <* 1_G *> & len(k |-> 1_G) = k by
CARD_1:def 7,FINSEQ_2:60;
    I = J ^ <* @i *> by A3,FINSEQ_3:55;
    then
    ((k + 1) |-> 1_G) |^ I = ((k |-> 1_G) |^ J) ^ (<* 1_G *> |^ <* @i *>)
    by A4,A8,A7,Th19
      .= (k |-> 1_G) ^ <* (1_G) |^ i *> by A5,Th22
      .= (k |-> 1_G) ^ <* 1_G *> by GROUP_1:31;
    hence thesis by FINSEQ_2:60;
  end;
A9: P[0]
  proof
    let I;
    assume len I = 0;
    then
A10: I = <*> INT;
    {} = <*> the carrier of G;
    hence thesis by A10,Th21;
  end;
  for k holds P[k] from NAT_1:sch 2(A9,A1);
  hence thesis;
end;
