
theorem Th34:
  for X be RealNormSpace-Sequence,
      x be Element of product X,
      Y be RealNormSpace,
      y be Point of Y
  holds
    x ^ <*y*> is Point of product(X ^ <*Y*>)
  proof
    let X be RealNormSpace-Sequence,
        x be Element of product X,
        Y be RealNormSpace,
        y be Point of Y;

    set CX = carr X;
    set CY = the carrier of Y;

    A1: product X = NORMSTR(# product(carr X),
                              zeros X,
                              [:(addop X):],
                              [:(multop X):],
                              productnorm X #) by PRVECT_2:6;

    product(X ^ <*Y*>) = NORMSTR(# product(carr(X ^ <*Y*>)),
                                   zeros(X ^ <*Y*>),
                                   [:addop(X ^ <*Y*>):],
                                   [:multop(X ^ <*Y*>):],
                                   productnorm(X ^ <*Y*>) #) by PRVECT_2:6;
    then

    A2: the carrier of product(X ^ <*Y*>)
     = product((carr X) ^ carr <*Y*>) by Th30
    .= product(CX ^ <*CY*>) by Th31;

    A3: ex x1 be Function
        st x = x1
         & dom x1 = dom CX
         & for i be object st i in dom CX
           holds x1.i in CX.i by A1,CARD_3:def 5;

    A4: len (x ^ <*y*>)
     = len x + len <*y*> by FINSEQ_1:22
    .= len x + 1 by FINSEQ_1:40;

    A5: dom x = Seg len CX by A3,FINSEQ_1:def 3;
    then
    A6: len x = len CX by FINSEQ_1:def 3;

    A7: len(CX ^ <*CY*>)
     = len CX + len <*CY*> by FINSEQ_1:22
    .= len CX + 1 by FINSEQ_1:40;

    A8: dom(x ^ <*y*>)
     = Seg len(x ^ <*y*>) by FINSEQ_1:def 3
    .= Seg len(CX ^ <*CY*>) by A4,A5,A7,FINSEQ_1:def 3
    .= dom(CX ^ <*CY*>) by FINSEQ_1:def 3;

    for i be object st i in dom (CX ^ <*CY*>)
    holds (x ^ <*y*>).i in (CX ^ <*CY*>).i
    proof
      let i be object;
      assume
      A9: i in dom(CX ^ <*CY*>);
      then
      A10: i in Seg len(CX ^ <*CY*>) by FINSEQ_1:def 3;
      reconsider i1 = i as Nat by A9;

      per cases;
      suppose
        A11: i1 <= len x;
        1 <= i1 & i1 <= len(CX ^ <*CY*>) by A10,FINSEQ_1:1;
        then
        A12: i1 in Seg len x by A11;
        then i1 in dom x by FINSEQ_1:def 3;
        then
        A13: (x ^ <*y*>).i1 = x.i1 by FINSEQ_1:def 7;
        A15: i1 in dom CX by A3,FINSEQ_1:def 3,A12;
        i1 in dom x by A12,FINSEQ_1:def 3; then
        x.i1 in CX.i1 by A3;
        hence (x ^ <*y*>).i in (CX ^ <*CY*>).i
          by A13,A15,FINSEQ_1:def 7;
      end;
      suppose
        len x < i1;
        then
        A17: len x + 1 <= i1 by NAT_1:13;
        1 <= i1 & i1 <= len(CX ^ <*CY*>) by A10,FINSEQ_1:1;
        then
        A19: i1 = len x + 1 by A6,A7,A17,XXREAL_0:1;
        then
        A20: (x ^ <*y*>).i1 = y by FINSEQ_1:42;
        (CX ^ <*CY*>).i1 = CY by A6,A19,FINSEQ_1:42;
        hence (x ^ <*y*>).i in (CX ^ <*CY*>).i by A20;
      end;
    end;
    hence thesis by A2,A8,CARD_3:def 5;
  end;
