# RE: [discussion@2uworks.org] RE: [wg@2uworks.org] 3C + 2U = xP?

From: Tony Simons (A.Simons@dcs.shef.ac.uk)
Date: Sat 07 Sep 2002 - 13:16:52 BST

```Hi Joaquin,

I think this may relate to what theoreticians in algebra and category
theory refer to as the "initial algebra" semantics (as opposed to
"final algebra" semantics).

If I've remembered these the right way, then all semantic elements in
an initial algebra are assumed to be distinct unless you can prove,
using axioms, that they are equal.  In a final algebra, it's the other
way around - you assume that elements are potentially equivalent,
unless you can prove that they are distinct.

(There are many-to-one mappings from elements in initial algebras
onto elements in final algebras, which is why I think that things
which are distinct in an initial algebra are equivalent in a final
algebra.  If I have this the wrong way round, someone let me know).

It sounds as if this statement is being made about the semantic
domain, not the UML model elements.  The semantic domain is the
underlying mathematical (eg set-theoretic) model on which the concrete
syntax of the UML model is based and interpreted.  The idea is that
the meaning of the UML model is made plain in terms of well-understood
math constructs in the semantic model.

For example, it is possible to say that the meaning of a standard type
declaration  x : T  is that there exists a T-set of which x is a member.
Semanticists write something like:

[[ x : T ]] == x' in T'

where x, T are syntactic elements from the concrete model and
x' is an element and T' is a set in the semantic domain.  The double
brackets [[ ]] denote "the meaning of" the enclosed expression.
This gives a simple set-theoretic semantics for the notion of type.

Technically a semantic domain is more than just a set.  Domains are
constructed to have certain properties, for example, Scott domains
are sets whose elements are partially ordered and in which you can
construct a complete lattice of elements according to the < less
than relation.  This kind of domain is useful for interpreting
the meaning of things like functional programs, since you can show
that recursion will eventually terminate, if the meanings of the
original argument and the argument of the recursive call can be
shown to be ordered in the lattice (the latter must be "less than"
the former).  In ordered domains, there is always a "bottom"
element that is less than any other element, where algorithms
halt.

If what you report 2U as saying follows this kind of reasoning, then
the consequences for UML models are that you must provide explicit
equivalences (in OCL) to assert that model elements are the same,
otherwise you must always assume they are distinct.

--Tony

==========================================================================

> X-Sender: miller%joaquin.net@pop3.joaquin.net
> Date: Fri, 06 Sep 2002 12:52:02 -0700
> To: wg@2uworks.org, discussion@2uworks.org
> From: Joaquin Miller <miller@joaquin.net>
> Subject: RE: [discussion@2uworks.org] RE: [wg@2uworks.org] 3C + 2U = xP?
> Cc: pUML <puml-list@cs.york.ac.uk>
> Mime-Version: 1.0
> X-Loop: puml-list@cs.york.ac.uk
> X-Scanner: exiscan@shef.ac.uk *17nQVm-0001j1-00*
http://duncanthrax.net/exiscan/
>
>  From a 2U draft:
>
> >A consequence of the semantic domain design principles is that the
> >semantic domain should not contain equivalences; i.e. all semantic
> >elements denote distinct concepts.
>
> I'm sorry, but i need to ask what that means.
>
> Are the semantic elements those in the UML model or those in the semantic
> domain, or ...?
>
> Which are the concepts that the semantic elements denote?
> Where are those concepts found?
> What do those concepts denote?
> Where do we find the meaning of those concepts?
>
>
>
> PGP Fingerprint:
> CA23 6BCA ACAB 6006 E3C3 0E79 2122 94B4 E5FD 42C3

==========================================================================

Dr Anthony J H Simons                   a.simons@dcs.shef.ac.uk
Senior Lecturer in Computer Science     http://www.dcs.shef.ac.uk/~ajhs
Director of Teaching

Department of Computer Science          tel:  (+44) 114 22 21838
University of Sheffield                 dept: (+44) 114 22 21800
Regent Court, 211 Portobello Street     fax:  (+44) 114 22 21810
SHEFFIELD, S1 4DP                       univ: (+44) 114 22 22000
United Kingdom

==========================================================================
```