By certificate system here we mean something rather specific. We presuppose a collection
of objects with abstract names, whose contents we call Texts. We further presuppose
that Texts can contain object identifiers, so an object can point to other objects.
Although it is important for computer supported logics to be able to update certificates,
we approximate the idea by a simplification in which certificates can never be changed
once they are created.
-
There is a determinate criterion for whether an object is or is not a certificate.
-
With each certificate is associated a program in a "native language" executable by the
certificate system (which can be supplied with arguments) and which can operate with
side effects on the
collection of objects, and which returns a Text as result.
-
This program may be considered the "kind" of the certificate, and presumably
there will be many individual certificates of the same kind.
-
This program is the creation procedure for certificates of that kind. Any individual
certificate was created by applying its creation procedure to some arguments,
having whatever side effects on the object collection, and the result Text becomes
the content of that new certificate (along with an indication of the certificate kind).
-
This is the only way a certificate can be created. Further, if the content (Text) of
an object is changed, then every certificate pointing to it, even indirectly is deleted
(in this simplified system).
Users can create, modify and delete non-certificates, but certificates are not modifiable
by users, although they can be deleted by users, and users can request the certificate system
to try to create a new certificate of a given kind.
-
This is the basis of making claims about the contents of objects based upon the existence of
a certificate.
(elaboration)