having issue with numbers in Polymorphic Lambda Calculus It is said that Church Numbers are encoded as following 

   c0 = λX. λs:X-&gt;X. λz:X. z;
   c1 = λX. λs:X-&gt;X. λz:X. s z;
   c2 = λX. λs:X-&gt;X. λz:X. s (s z);
   c3 = λX. λs:X-&gt;X. λz:X. s (s (s z));


The church numbers are terms, right? but the terms are given by the following syntax.

  t ::=                          terms
       x                          //variable
       λx:T.t                     //abstraction
       t t                        //application
       λX&lt;:T.t                    //type abstraction
       t [T]                      //type application


It seems church numbers do not respect the syntax of terms to me, strange. 

I think it should be like  

      c0 = λX&lt;:some type here. λs:X-&gt;X. λz:X. z


So, how to write church numbers in a consistent way?

If possible provide simple examples to explain, i.e.  2 * 2, how to write this?

source1

Thanks in advance!
The syntax you written is probably of the System F&lt;:.

However, the typed Church numerals you written are introduced in the context of System F (a.k.a. λ2) at Fig. 11 of the source pdf.

The terms of System F are defined like below in Types and programming languages (Benjamin C. Pierce, MIT press, 2002):

t ::=           terms:
      x         variable
      λx:T.t    abstraction
      t t       application
      λX.t      type abstraction
      t [T]     type application


The typed Church numerals at Fig. 11 are terms in this definition.

Moreover, in System F&lt;:, Church numerals are also well-typed and can be more generalized. Below examples are taken from Types and programming languages. Top is the maximum type.

szero = λX&lt;:Top. λS&lt;:X. λZ&lt;:X. λs:X→S. λz:Z. z;
sone  = λX&lt;:Top. λS&lt;:X. λZ&lt;:X. λs:X→S. λz:Z. s z;