<?xml version="1.0"?>
<!-- $Id: poly1p.tfb,v 1.1.1.1 2002/10/04 12:50:39 taka Exp $ -->
<CD>
<CDName> poly1p </CDName>
<CDURL> http://www.math.kobe-u.ac.jp/OCD/poly1p.tfb </CDURL>
<CDReviewDate> 2003-08-08 </CDReviewDate>
<CDStatus> experimental </CDStatus>
<CDDate> 2002-08-08 </CDDate>
<CDVersion> 1 </CDVersion>
<CDRevision> 0 </CDRevision>
<CDUses>
 <!-- private cd's -->
  <CDName>linalg1p</CDName>
  <CDName>poly1p</CDName>
  <CDName>set1p</CDName>
  <CDName>logic1p</CDName>
 <!-- official cd's  -->
  <CDName>arith1</CDName>
  <CDName>fns1</CDName>
  <CDName>interval1</CDName>
  <CDName>linalg1</CDName>
  <CDName>linalg4</CDName>
  <CDName>relation1</CDName>
  <CDName>set1</CDName>
</CDUses>

<Description> 
This CD defines symbols for concerning multi-index and indexed variables.
</Description>


<CDDefinition>
<Name> multi_power </Name>
<Description>
  multi_power is for using the multi-index notation.
</Description>
<CMP> <tex> $\prod_{i=1}^n x_i ^ {e_i}$ </tex> </CMP>
<FMP>
<tfb>
poly1p.multi_power(x,e) ~relation1.eq~
arith1.product(
  interval1.integer_interval(1,linalg4.size(x)),
  OMLBIND( OMBVAR(i),
    arith1.power(linalg1.vector_selector(i,x),
                 linalg1.vector_selector(i,e))));
</tfb>
</FMP>
</CDDefinition>

<CDDefinition>
<Name> index </Name>
<Description>
  index returns the index of a given indexed variable.
</Description>
</CDDefinition>


<CDDefinition>
<Name> indexed_variable </Name>
<Description>
  indexed_variable(x,i) returns the variable x_i
</Description>
<CMP> index(indexed_variable(x,i)) = i </CMP>
<FMP>
<tfb>
index(indexed_variable(x,i)) ~relation1.eq~ i;
</tfb>
</FMP>

<CMP> index(indexed_variable(x,[1,2])) = [1,2] </CMP>
<FMP>
<tfb>
index(indexed_variable(x,linalg2.vector(1,2))) ~relation1.eq~
      linalg2.vector(1,2);
</tfb>
</FMP>
</CDDefinition>

<CDDefinition>
<Name> vector_of_indexed_variables </Name>
<Description>
  vector_of_indexed_variables(x,n) returns the vector of variables
  (x_1, ..., x_n).
  vector_of_indexed_variables(x,[m,n]) returns the vector of variables
  (x_{1,1}, ..., x_{m,n}).
  Any vector of numbers can be given as an argument.
</Description>
<CMP> i-th element of vector_of_indexed_variable(x,n)  is
      indexed_variable(x,i)
</CMP>
<FMP>
<tfb>
  linalg1.vector_selector(i,vector_of_indexed_variables(x,n)) 
  ~relation1.eq~ indexed_variable(x,i);
</tfb>
</FMP>
</CDDefinition>

<CDDefinition>
<Name> sorted_set_of_indexed_variables </Name>
<Description>
  sorted_set_of_indexed_variables(x,s) returns the vector of variables
  indexed by the sorted set s.
</Description>
<CMP> m-element of sorted_set_of_indexed_variables(x,s)  is
      indexed_variable(x,m)
</CMP>
<FMP>
<tfb>
  set1p.index_set_selector(m,sorted_set_of_indexed_variables(x,s))
  ~relation1.eq~ indexed_variable(x,m);
</tfb>
</FMP>
<!--<bug> sorted_set_selector has not yet been  defined. </bug>-->
</CDDeinition>



</CD>
