reserve A for set, x,y,z for object,
  k for Element of NAT;
reserve n for Nat,
  x for object;
reserve V, C for set;

theorem
  for X being non empty set, A being finite Subset of X,
      a being Element of X st not a in A
  for B being finite Subset of X st B = {a} \/ A
  for R being Order of X st R linearly_orders B
  for k being Element of NAT st k + 1 in
  dom(SgmX(R,B)) & SgmX(R,B)/.(k+1) = a holds SgmX(R,B) = Ins(SgmX(R,A),k,a)
proof
  let X be non empty set, A be finite Subset of X, a be Element of X;
  assume
A1: not a in A;
  let B be finite Subset of X;
  assume
A2: B = {a} \/ A;
  let R be Order of X;
  assume
A3: R linearly_orders B;
  let k be Element of NAT;
  assume that
A4: k+1 in dom(SgmX(R,B)) and
A5: SgmX(R,B)/.(k+1) = a;
  set sgb = SgmX(R,B), sga = Ins(SgmX(R,A),k,a);
A6: dom sgb = Seg(len sgb) by FINSEQ_1:def 3;
  then k + 1 <= len sgb by A4,FINSEQ_1:1;
  then
A7: k + 1 -1 <= len sgb -1 by XREAL_1:9;
A8: k + 1 - 1 = k + (0 qua Nat);
A9: len sgb = card B by A3,Th10
    .= card A + 1 by A1,A2,CARD_2:41
    .= len SgmX(R,A) + 1 by A2,A3,Lm6,Th10;
  then
A10: dom sgb = Seg(len sga) by A6,FINSEQ_5:69
    .= dom sga by FINSEQ_1:def 3;
A11: for i being Nat st 1 <= i & i <= len sgb holds sgb.i = sga.i
  proof
    let i be Nat;
    assume that
A12: 1 <= i and
A13: i <= len sgb;
A14: i in Seg(len sgb) by A12,A13,FINSEQ_1:1;
A15: i in dom sgb by FINSEQ_3:25,A12,A13;
A16: i in dom sga by A10,A14,FINSEQ_1:def 3;
    per cases;
    suppose
A17:  i = k + 1; then
      a = sgb.i by A5,PARTFUN1:def 6,A15;
      hence sgb.i = sga.(k+1) by A9,A7,FINSEQ_5:73
        .= sga.i by A17;
    end;
    suppose
A18:  i <> k + 1;
      now
        per cases;
        case
          i < k + 1; then
A19:      i <= k by NAT_1:13;
          SgmX(R,A)|(Seg k) is FinSequence by FINSEQ_1:15;
          then dom(SgmX(R,A)|(Seg k)) = Seg k by A9,A7,FINSEQ_1:17;
          then SS: i in dom(SgmX(R,A)|(Seg k)) by A12,A19,FINSEQ_1:1;
          then
A20:      i in dom(SgmX(R,A)|k) by FINSEQ_1:def 16;
A:        i in dom SgmX(R,A) by RELAT_1:57,SS;
          thus sgb.i = sgb/.i by A15,PARTFUN1:def 6
            .= SgmX(R,A)/.i by A1,A2,A3,A4,A5,A8,A12,A14,A19,Th76
            .= SgmX(R,A).i by PARTFUN1:def 6,A
            .= sga.i by A20,FINSEQ_5:72;
        end;
        case
A21:      k + 1 <= i; then
a21:      k+1 < i by A18,XXREAL_0:1;
          1 - 1 <= i - 1 by A12,XREAL_1:9;
          then reconsider i9 = i - 1 as Element of NAT by INT_1:3;
A22:      i9 + 1 = i + (0 qua Nat);
F:        1 <= k+1 by FINSEQ_3:25,A4;
          k + 1 < i9 + 1 by a21; then
          1 < i9+1 by F,XXREAL_0:2; then
          1 + 1 <= i9 + 1 by NAT_1:13; then
F1:       1 <= i9 by XREAL_1:6;
Z2:       i9 + 1 in dom sga by A16; then
          i9+1 <= len sga by FINSEQ_3:25; then
          i9+1 <= len SgmX(R,A) + 1 by FINSEQ_5:69; then
          i9 <= len SgmX(R,A) by XREAL_1:6; then
F2:       i9 in dom SgmX(R,A) by FINSEQ_3:25,F1;
          k + 1 < i by A18,A21,XXREAL_0:1;
          then
A23:      k + 1 <= i9 by A22,NAT_1:13;
A24:      i9 <= len sgb - 1 by A13,XREAL_1:9;
          thus sgb.i = sgb/.(i9+1) by A15,PARTFUN1:def 6
            .= SgmX(R,A)/.i9 by A1,A2,A3,A4,A5,A9,A24,A23,Th77
            .= SgmX(R,A).i9 by PARTFUN1:def 6,F2
            .= sga.(i9+1) by A9,A24,A23,FINSEQ_5:74
            .= sga/.(i9+1) by Z2,PARTFUN1:def 6
            .= sga.i by A16,PARTFUN1:def 6;
        end;
      end;
      hence thesis;
    end;
  end;
  len sgb = len sga by A9,FINSEQ_5:69;
  hence thesis by A11,FINSEQ_1:14;
end;
