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:
  1. The term term is already declared as a morphism
  2. The term term is not a product
  3. The term term should not be a dependent product
The compatibility lemma genereted depends on the setoids already declared.