19.3 Adding new morphisms
A morphism is nothing else than a function compatible with the
equivalence relation.
You can only replace a term by an equivalent in position of argument
of a morphism. That's why each morphism has to be
declared to the system, which will ask you to prove the accurate
compatibility lemma.
The syntax is the following :
Add Morphism f : ident
where f is the name of a term which type is a non dependent
product (the term you want to declare as a morphism) and
ident is a new identifier which will denote the
compatibility lemma.
Error messages:
-
The term term is already declared as a morphism
- The term term is not a product
- The term term should not be a dependent product
The compatibility lemma genereted depends on the setoids already
declared.