reserve n,m,k,k1,k2 for Nat;
reserve r,r1,r2,s,t,p for Real;
reserve seq,seq1,seq2 for Real_Sequence;
reserve x,y for set;

theorem Th21:
  seq1 is bounded_above nonnegative & seq2 is bounded_above
  nonnegative implies (seq1(#)seq2) is bounded_above &
  upper_bound (seq1 (#) seq2) <= (
  upper_bound seq1) * (upper_bound seq2)
proof
  assume that
A1: seq1 is bounded_above nonnegative and
A2: seq2 is bounded_above nonnegative;
  for n holds (seq1 (#) seq2).n <= (upper_bound seq1) * (upper_bound seq2)
  proof
    let n;
A3: (seq1 (#) seq2).n = seq1.n * seq2.n & seq1.n <= upper_bound seq1
by A1,Th7,SEQ_1:8;
A4: seq2.n >= 0 by A2;
    seq2.n <= upper_bound seq2 & seq1.n >= 0 by A1,A2,Th7;
    hence thesis by A3,A4,XREAL_1:66;
  end;
  hence thesis by Th9;
end;
