Chapter 1: The Gallina specification language
Chapter 1: The Gallina specification language
This chapter describes Gallina, the specification language of Coq.
It allows to develop mathematical theories and to prove specifications
of programs. The theories are built from axioms, hypotheses,
parameters, lemmas, theorems and definitions of constants, functions,
predicates and sets. The syntax of logical objects involved in
theories is described in section 1.2. The language of
commands, called The Vernacular is described in section
1.3.
In Coq, logical objects are typed to ensure their logical
correctness. The rules implemented by the typing algorithm are described in
chapter 4.
About the grammars in the manual
Grammars are presented in Backus-Naur form (BNF). Terminal symbols are
set in typewriter font. In addition, there are special
notations for regular expressions.
An expression enclosed in square brackets [...] means at
most one occurrence of this expression (this corresponds to an
optional component).
The notation ``symbol sep ... sep symbol'' stands for a non empty
sequence of expressions parsed by the ``symbol'' entry and
separated by the literal ``sep''(This is similar to the
expression ``symbol { sep symbol }'' in
standard BNF, or``symbol ( sep symbol )*'' in
the syntax of regular expressions.).
Similarly, the notation ``symbol ... symbol'' stands for a non
empty sequence of expressions parsed by the ``symbol'' entry,
without any separator between.
At the end, the notation ``[symbol sep ... sep symbol]'' stands for a
possibly empty sequence of expressions parsed by the ``symbol'' entry,
separated by the literal ``sep''.
Retrieved by Memoweb from http://pauillac.inria.fr/coq/doc/node.0.0.html at 8/10/98