﻿<?xml-stylesheet type="text/xsl" href="../../templates/doc.xsl"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:doc="http://www.lepus.org.uk/doc" xmlns:classz="http://www.lepus.org.uk/classz" xmlns:fopl="http://www.lepus.org.uk/fopl" xml:lang="EN">

	<head>
		<!--<link rel="stylesheet" type="text/css" href="http://www.lepus.org.uk/templates/doc.css" />-->
		<link rel="stylesheet" type="text/css" href="../../templates/doc.css" />
		<title>Part II: Sample Models</title>
		<meta http-equiv="Content-Style-Type" content="text/css" />
		<meta name="Author" content="Amnon H Eden, Jonathan Nicholson, Epameinondas Gasparis" />
		<style type="text/css">
			
			@media print {
				div.example {
					page-break-after: always;
				}
			}
			
			th { background-color:transparent; }
			table.counter { background-color:#E9C2A6; }
		</style>
	</head>

	<body>
		<p class="pagetitle">
			Sample Models
		</p>
		
		<p class="subtitle">
			Part II of: 
			Verification of LePUS3/Class-Z Specifications: Sample models and Abstract Semantics for Java 1.4</p>

		<p class="subtitle">
			Technical Report CSM-471, ISSN 1744-8050
		</p>
		
		<p><a href="verif.pdf" style="border:0px">
				<img alt="Print this document" src="../../site/print.gif" />
			</a>
		</p>


		<p>
			<a href="http://www.nicholsonweb.co.uk/">Jonathan Nicholson</a>,
			<a href="http://www.eden-study.org/">Amnon H Eden</a>,
			Epameinondas Gasparis 
			<br />
			Department of Computer Science, University of Essex, United Kingdom
		</p>
		<p>
			31 December 2007</p>
		<!-- <p>Draft: 14 August 2007</p> -->
		<p>See also: <a href="1java_as.xml">Part I, Verification of LePUS3/Class-Z Specifications</a></p>
		
		<div class="abstract">
			<h3>Abstract</h3>
			This documents demonstrates how Class-Z specifications are verified 
			using case studies. The class of design models which satisfy each 
			sample specification is demonstrated via one or more such design models, possibly also using 
			one or more counter examples. As there is a far greater set of 
			design models that do not satisfy a given specification, this document is limited to a selection of design models where verification succeeds 
			(or fails, as specified for each). <br />
			<br />
			Throughout this document we assume that entity
			<fopl:entity value="cls" />
			is the interpretation of the constant 
			<classz:constant value="cls" />, that is:
			<fopl:row>
				<fopl:interpretation>
					<classz:constant value="cls" />
				</fopl:interpretation>
				<fopl:identicalto />
				<fopl:entity value="cls" />
			</fopl:row>
    	</div>
		<div>
			<doc:toc />
		</div>
		<div>
<!-- ===== ===== ===== ===== DECLARATIONS ===== ===== ===== ===== -->
			<h1>Terms</h1>
			See the LePUS3 and Class-Z reference manuals section on <a href="http://www.lepus.org.uk/ref/refman/refman.xml#Terms">Terms</a>
			[<a href="#References">Eden et al. 2007</a>] for more information.
			<div>
<!-- ===== ===== ===== ===== CLASS ===== ===== ===== ===== -->
				<h2>Class</h2>
				See <a href="http://www.lepus.org.uk/ref/refman/refman.xml#definition3">Definition III</a> [<a href="#References">Eden et al. 2007</a>].
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td>
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="aClass" />
											<classz:type value="CLASS" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="Cls" />
											<classz:type value="CLASS" exponent="1" />
										</classz:declare>
									</classz:declarations>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="aClass" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:entity value="Cls" />
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
												<fopl:entity value="cls" subscript="3" />
											</fopl:set>
										</td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
			</div>
			<div>
<!-- ===== ===== ===== ===== HIERARCHY ===== ===== ===== ===== -->
				<h2>Hierarchy</h2>
				See <a href="http://www.lepus.org.uk/ref/refman/refman.xml#definition4">Definition IV</a> [<a href="#References">Eden et al. 2007</a>].
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="3">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="H" />
											<classz:type value="HIERARCHY" />
										</classz:declare>
									</classz:declarations>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="root" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:entity value="H" />
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="root" />
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /><fopl:entity value="root" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /><fopl:entity value="root" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="root" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="middle" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="bottom" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:entity value="H" />
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="root" />
												<fopl:entity value="middle" />
												<fopl:entity value="bottom" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="bottom" /><fopl:entity value="middle" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="middle" /><fopl:entity value="root" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit" /></td>
									</tr>
									</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="aClass" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="root" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:entity value="H" />
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="root" />
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /><fopl:entity value="aClass" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /><fopl:entity value="aClass" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="aClass" /><fopl:entity value="root" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit" /></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
			</div>
			<div>
<!-- ===== ===== ===== ===== SIGNATURE ===== ===== ===== ===== -->
				<h2>Signature</h2>
				<p>
					For simplicity the <code>()</code> characters are omitted from both methods and signatures (in both the schemas and
					design models) when there are no arguments present.
				</p>
				<p>
					See <a href="http://www.lepus.org.uk/ref/refman/refman.xml#definition5">Definition V</a> [<a href="#References">Eden et al. 2007</a>].
				</p>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td>
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="aSignature" />
											<classz:type value="SIGNATURE" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="Sig" />
											<classz:type value="SIGNATURE" exponent="1" />
										</classz:declare>
									</classz:declarations>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="aSignature" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="sig(Object)" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="sig(Integer)" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:entity value="Sig" />
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="sig(Object)" />
												<fopl:entity value="sig(Integer)" />
												<fopl:entity value="sig" />
											</fopl:set>
										</td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
			</div>
		</div>
		<div>
<!-- ===== ===== ===== ===== RELATIONS ===== ===== ===== ===== -->
			<h1>Ground formulas</h1>
			<div>
			See the LePUS3 and Class-Z reference manuals section on the
				<a href="../refman/refman.xml#satisfaction_ground">satisfaction 
				of ground formulas</a> [<a href="#References">Eden et al. 2007</a>]
			for more information.
			</div>
			<div>
<!-- ===== ===== ===== ===== METHOD ===== ===== ===== ===== -->
				<h2>Method Relation Symbol</h2>
				See <a href="http://www.lepus.org.uk/ref/refman/refman.xml#definition9">Definition IX</a> (Superimpositions) [<a href="#References">Eden et al. 2007</a>]
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="3">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="cls" />
											<classz:type value="CLASS" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="sig" />
											<classz:type value="SIGNATURE" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:relationsymbol value="Method" />
											<classz:superimposition><classz:constant value="sig"/><classz:constant value="cls"/></classz:superimposition>
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /><fopl:entity value="mth" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" /><fopl:entity value="mth" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="superClass" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /><fopl:entity value="mth" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="superClass" /><fopl:entity value="mth" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inheritable" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" /><fopl:entity value="superClass" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Not satisfied by
							</td>
							<td>
								<doc:enum>Counter example</doc:enum>
								A close inspection of This case reveals that the method <fopl:entity value="mth" subscript="1" /> 
								is overridden by a non-inheritable method <fopl:entity value="mth" subscript="2" />. This is a case
								of method hiding. In Java this is impossible as the visibility of a method cannot be reduced.
								<table class="designmodel counter">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="superClass" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="superClass" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="sig" /><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="superClass" subscript="1" /><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="superClass" subscript="2" /><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inheritable" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" /><fopl:entity value="superClass" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="superClass" subscript="2" /><fopl:entity value="superClass" subscript="1" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit" /></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
			</div>
			<div>
<!-- ===== ===== ===== ===== ABSTRACT ===== ===== ===== ===== -->
				<h2>Abstract Relation Symbol</h2>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td>
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="cls" />
											<classz:type value="CLASS" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="sig" />
											<classz:type value="SIGNATURE" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:relationsymbol value="Abstract" />
											<classz:constant value="cls"/>
										</classz:formula>
										<classz:formula>
											<classz:relationsymbol value="Abstract" />
											<classz:superimposition><classz:constant value="sig"/><classz:constant value="cls"/></classz:superimposition>
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="cls" />
													<fopl:entity value="mth" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Abstract" /></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
			</div>
			<div>
<!-- ===== ===== ===== ===== INHERIT ===== ===== ===== ===== -->
				<h2>Inherit Relation Symbol</h2>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="2">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="subClass" />
											<classz:constant value="superClass" />
											<classz:type value="CLASS" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:relationsymbol value="Inherit" />
											<classz:constant value="subClass" />
											<classz:constant value="superClass" />
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="subClass" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="superClass" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="subClass" /><fopl:entity value="superClass" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="subClass" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="superClass" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="aClass" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="subClass" /><fopl:entity value="aClass" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="aClass" /><fopl:entity value="superClass" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit" /></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
			</div>
			<div>
<!-- ===== ===== ===== ===== MEMBER ===== ===== ===== ===== -->
				<h2>Member Relation Symbol</h2>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="3">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="container" />
											<classz:constant value="field" />
											<classz:type value="CLASS" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:relationsymbol value="Member" />
											<classz:constant value="container" />
											<classz:constant value="field" />
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="container" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="field" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="container" /><fopl:entity value="field" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								this is an example for <a href="../refman/refman.xml#Subtyping">subtyping</a> in LePUS3: the formula
								<classz:formula>
									<classz:relationsymbol value="Member" />
									<classz:constant value="container" />
									<classz:constant value="field" />
								</classz:formula>
								is satisfied here by class
								<classz:constant value="subcls" />
								which inherits (is a subclass of)
								<classz:constant value="field" />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="container" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="field" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="subClass" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="subClass" />
													<fopl:entity value="field" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="container" />
													<fopl:entity value="subClass" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								As <fopl:relation value="Aggregate" /><fopl:deduce /><fopl:relation value="Member" />, see 
								<a href="#example8a">Example 8 : A</a> and <a href="#example8b">Example 8 : B</a>.
							</td>
						</tr>
					</table>
				</div>
			</div>
			<div>
<!-- ===== ===== ===== ===== Aggregate ===== ===== ===== ===== -->
				<h2>Aggregate Relation Symbol</h2>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="2">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="container" />
											<classz:constant value="element" />
											<classz:type value="CLASS" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:relationsymbol value="Aggregate" />
											<classz:constant value="container" />
											<classz:constant value="element" />
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="container" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="element" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="container" /><fopl:entity value="element" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Aggregate" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								this is an example for <a href="../refman/refman.xml#Subtyping">subtyping</a> in LePUS3: the formula
								<classz:formula>
									<classz:relationsymbol value="Aggregate" />
									<classz:constant value="container" />
									<classz:constant value="element" />
								</classz:formula>
								is satisfied here by class
								<classz:constant value="subcls" />
								which inherits (is a subclass of)
								<classz:constant value="element" />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="container" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="element" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="subClass" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="subClass" />
													<fopl:entity value="element" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="element" />
													<fopl:entity value="subClass" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Aggregate" /></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
			</div>
			<div>
<!-- ===== ===== ===== ===== Call ===== ===== ===== ===== -->
				<h2>Call Relation Symbol</h2>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="2">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="orig" />
											<classz:constant value="dest" />
											<classz:type value="CLASS" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="sig" />
											<classz:type value="SIGNATURE" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:relationsymbol value="Call" />
											<classz:superimposition><classz:constant value="sig" /><classz:constant value="orig" /></classz:superimposition>
											<classz:superimposition><classz:constant value="sig" /><classz:constant value="dest" /></classz:superimposition>
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="orig" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="dest" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="caller" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="called" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" />
												<fopl:entity value="caller" /></fopl:tuple>
											</fopl:set>
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" />
												<fopl:entity value="called" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="orig" />
												<fopl:entity value="caller" /></fopl:tuple>
											</fopl:set>
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="dest" />
												<fopl:entity value="called" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="caller" /><fopl:entity value="called" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Call" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								As <fopl:relation value="Forward" /><fopl:deduce /><fopl:relation value="Call" />, see 
								<a href="#example10a">Example 11 : A</a>.
							</td>
						</tr>
					</table>
				</div>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="2">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="orig" />
											<classz:constant value="dest" />
											<classz:type value="CLASS" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="sig" />
											<classz:type value="SIGNATURE" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:relationsymbol value="Call" />
											<classz:superimposition><classz:constant value="sig" /><classz:constant value="orig" /></classz:superimposition>
											<classz:constant value="dest" />
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="orig" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="dest" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="caller" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="called" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="anotherSig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" />
												<fopl:entity value="caller" /></fopl:tuple>
											</fopl:set>
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="anotherSig" />
												<fopl:entity value="called" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="orig" />
												<fopl:entity value="caller" /></fopl:tuple>
											</fopl:set>
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="dest" />
												<fopl:entity value="called" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="caller" /><fopl:entity value="called" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Call" /></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
			</div>
			<div>
<!-- ===== ===== ===== ===== FORWARD ===== ===== ===== ===== -->
				<h2>Forward Relation Symbol</h2>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td>
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="orig" />
											<classz:constant value="dest" />
											<classz:type value="CLASS" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="sig" />
											<classz:type value="SIGNATURE" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:relationsymbol value="Forward" />
											<classz:superimposition><classz:constant value="sig" /><classz:constant value="orig" /></classz:superimposition>
											<classz:superimposition><classz:constant value="sig" /><classz:constant value="dest" /></classz:superimposition>
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="orig" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="dest" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="caller" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="called" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" />
												<fopl:entity value="caller" /></fopl:tuple>
											</fopl:set>
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" />
												<fopl:entity value="called" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="orig" />
												<fopl:entity value="caller" /></fopl:tuple>
											</fopl:set>
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="dest" />
												<fopl:entity value="called" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="caller" /><fopl:entity value="called" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Forward" /></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
			</div>
			<div>
<!-- ===== ===== ===== ===== CREATE ===== ===== ===== ===== -->
				<h2>Create Relation Symbol</h2>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="3">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="cls" />
											<classz:type value="CLASS" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="sig" />
											<classz:type value="SIGNATURE" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:relationsymbol value="Create" />
											<classz:superimposition><classz:constant value="sig" /><classz:constant value="created" /></classz:superimposition>
											<classz:constant value="created" />
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="created" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="created" />
													<fopl:entity value="mth" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" /><fopl:entity value="created" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Create" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="subClass" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="created" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="created" />
													<fopl:entity value="mth" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="subClass" /><fopl:entity value="created" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" /><fopl:entity value="subClass" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Create" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								As <classz:relationsymbol value="Produce" /><fopl:deduce/><classz:relationsymbol value="Create" />, 
								see <a href="#example14a">Example 14 : A</a> and <a href="#example14b">Example 14 : B</a>.
							</td>
						</tr>
					</table>
				</div>
			</div>
			<div>
<!-- ===== ===== ===== ===== RETURN ===== ===== ===== ===== -->
				<h2>Return Relation Symbol</h2>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="3">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="returned" />
											<classz:type value="CLASS" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="sig" />
											<classz:type value="SIGNATURE" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:relationsymbol value="Return" />
											<classz:superimposition><classz:constant value="sig" /><classz:constant value="returned" /></classz:superimposition>
											<classz:constant value="returned" />
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="returned" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="returned" />
													<fopl:entity value="mth" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" /><fopl:entity value="returned" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Return" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="returned" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="subClass" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="returned" />
													<fopl:entity value="mth" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="subClass" /><fopl:entity value="returned" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" /><fopl:entity value="subClass" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Return" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								As <classz:relationsymbol value="Produce" /><fopl:deduce/><classz:relationsymbol value="Return" />, 
								see <a href="#example14a">Example 14 : A</a> and <a href="#example14b">Example 14 : B</a>.
							</td>
						</tr>
					</table>
				</div>
			</div>
			<div>
<!-- ===== ===== ===== ===== PRODUCE ===== ===== ===== ===== -->
				<h2>Produce Relation Symbol</h2>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="2">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="produced" />
											<classz:type value="CLASS" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="sig" />
											<classz:type value="SIGNATURE" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:relationsymbol value="Produce" />
											<classz:superimposition><classz:constant value="sig" /><classz:constant value="produced" /></classz:superimposition>
											<classz:constant value="produced" />
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="produced" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="factory" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="factory" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="produced" />
													<fopl:entity value="factory" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="factory" /><fopl:entity value="produced" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Produce" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="produced" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="subClass" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="factory" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="factory" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="produced" />
													<fopl:entity value="factory" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="subClass" /><fopl:entity value="produced" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="factory" /><fopl:entity value="subClass" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Produce" /></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
			</div>
		</div>
		<div>
<!-- ===== ===== ===== ===== PREDICATES ===== ===== ===== ===== -->
			<h1>Predicate formulas</h1>
			<div>
			See the LePUS3 and Class-Z reference manuals section on the
				<a href="../refman/refman.xml#Predicates">satisfaction 
				of predicate formulas</a> (Definitions 
				<a href="../refman/refman.xml#definition17">XVII</a>, 
				<a href="../refman/refman.xml#definition18">XVIII</a> and 
				<a href="../refman/refman.xml#definition19">XIX</a>)
			[<a href="#References">Eden et al. 2007</a>] for more information.
			</div>
			<div>
<!-- ===== ===== ===== ===== ALL ===== ===== ===== ===== -->
				<h2>All Predicate Symbol</h2>
				See <a href="http://www.lepus.org.uk/ref/refman/refman.xml#definition17">Definition XVII</a> [<a href="#References">Eden et al. 2007</a>].
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td>
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="cls" />
											<classz:type value="CLASS" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="sig" />
											<classz:type value="SIGNATURE" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:predicatesymbol value="All" />
											<classz:relationsymbol value="Abstract" />
											<fopl:set><classz:superimposition><classz:constant value="sig" /><classz:constant value="cls" /></classz:superimposition></fopl:set>
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<a href="#example5a">Example 5 : A
							</a>
							</td>
						</tr>
					</table>
				</div>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="2">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="cls" />
											<classz:type value="CLASS" exponent="1" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:predicatesymbol value="All" />
											<classz:relationsymbol value="Abstract" />
											<classz:constant value="cls" />
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="cls" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
												<fopl:entity value="cls" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Abstract" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Not satisfied by
							</td>
							<td>
								<doc:enum>Counter example</doc:enum>
								One of the entities in <fopl:entity value="cls" /> is not abstract
								<table class="designmodel counter">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="cls" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
												<fopl:entity value="cls" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Abstract" /></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="3">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="cls" />
											<classz:type value="CLASS" exponent="1" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="sig" />
											<classz:type value="SIGNATURE" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:predicatesymbol value="All" />
											<classz:relationsymbol value="Method" />
											<classz:superimposition><classz:constant value="sig" /><classz:constant value="cls" /></classz:superimposition>
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="cls" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
												<fopl:entity value="cls" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="sig" /><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="sig" /><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="cls" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
												<fopl:entity value="cls" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /><fopl:entity value="mth" subscript="1" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="2" /><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /><fopl:entity value="cls" subscript="1" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inheritable" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /><fopl:entity value="mth" subscript="1" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Not satisfied by
							</td>
							<td>
								<doc:enum>Counter example</doc:enum>
								<fopl:entity value="cls" subscript="3" />, or its superclass, does not define a method with signature <fopl:entity value="sig" /> 
								<table class="designmodel counter">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="cls" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
												<fopl:entity value="cls" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="sig" /><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
			</div>
			<div>
<!-- ===== ===== ===== ===== TOTAL ===== ===== ===== ===== -->
				<h2>Total Predicate Symbol</h2>
				See <a href="http://www.lepus.org.uk/ref/refman/refman.xml#definition18">Definition XVIII</a>  [<a href="#References">Eden et al. 2007</a>].
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td>
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="cls"  subscript="1" />
											<classz:constant value="cls"  subscript="2" />
											<classz:type value="CLASS" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="sig" />
											<classz:type value="SIGNATURE" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:predicatesymbol value="Total" />
											<classz:relationsymbol value="Call" />
											<fopl:set><classz:superimposition><classz:constant value="sig" /><classz:constant value="cls" subscript="1" /></classz:superimposition></fopl:set>
											<fopl:set><classz:superimposition><classz:constant value="sig" /><classz:constant value="cls" subscript="2" /></classz:superimposition></fopl:set>
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<a href="#example9a">Example 9 : A</a> and <a href="#example9b">Example 9 : B</a>
							</td>
						</tr>
					</table>
				</div>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="2">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="A" />
											<classz:constant value="B" />
											<classz:type value="CLASS" exponent="1" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:predicatesymbol value="Total" />
											<classz:relationsymbol value="Inherit" />
											<classz:constant value="A" />
											<classz:constant value="B" />
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="a" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="a" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="b" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="b" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="b" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="A" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="a" subscript="1" />
												<fopl:entity value="a" subscript="2" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="B" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="b" subscript="1" />
												<fopl:entity value="b" subscript="2" />
												<fopl:entity value="b" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="a" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="b" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Abstract"/></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="a" subscript="1" /><fopl:entity value="a" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="a" subscript="2" /><fopl:entity value="b" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="a" subscript="2" /><fopl:entity value="b" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit"/></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Not satisfied by
							</td>
							<td>
								<doc:enum>Counter example</doc:enum>
								There is no tuple in the required relation between one of the members of the domain and a member of the range.
								<table class="designmodel counter">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="a" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="a" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="b" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="b" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="b" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="A" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="a" subscript="1" />
												<fopl:entity value="a" subscript="2" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="B" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="b" subscript="1" />
												<fopl:entity value="b" subscript="2" />
												<fopl:entity value="b" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="a" subscript="1" /><fopl:entity value="b" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="a" subscript="1" /><fopl:entity value="b" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="a" subscript="1" /><fopl:entity value="b" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit"/></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="3">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="cls" />
											<classz:type value="CLASS" exponent="1" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="sig" />
											<classz:type value="SIGNATURE" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:predicatesymbol value="Total" />
											<classz:relationsymbol value="Call" />
											<classz:superimposition><classz:constant value="sig" /><classz:constant value="cls" /></classz:superimposition>
											<classz:superimposition><classz:constant value="sig" /><classz:constant value="cls" /></classz:superimposition>
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="cls" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
												<fopl:entity value="cls" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="cls" subscript="1" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="2" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="3" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /><fopl:entity value="mth" subscript="3" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /><fopl:entity value="mth" subscript="1" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Call"/></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="cls" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
												<fopl:entity value="cls" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="cls" subscript="1" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="2" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="3" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Abstract"/></td>
									</tr>
									<tr>
											<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="1" /><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Call"/></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								Every class in <fopl:entity value="cls" /> defines a method with the correct signature, which are all abstract
								mathematically satisfying the given relation.
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="cls" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
												<fopl:entity value="cls" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="cls" subscript="1" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="2" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="3" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Abstract"/></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
			</div>
			<div>
<!-- ===== ===== ===== ===== ISOMORPHIC ===== ===== ===== ===== -->
				<h2>Isomorphic Predicate Symbol</h2>
				See <a href="http://www.lepus.org.uk/ref/refman/refman.xml#definition19">Definition XIX</a> [<a href="#References">Eden et al. 2007</a>].
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="2">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="cls"  subscript="1" />
											<classz:constant value="cls"  subscript="2" />
											<classz:type value="CLASS" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:predicatesymbol value="Isomorphic" />
											<classz:relationsymbol value="Member" />
											<fopl:set>
												<classz:constant value="cls"  subscript="1" />
											</fopl:set>
											<fopl:set>
												<classz:constant value="cls"  subscript="2" />
											</fopl:set>
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="cls" subscript="1" />
													<fopl:entity value="cls" subscript="2" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no" />
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Abstract" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								&nbsp;</td>
							<td>
								&nbsp;</td>
						</tr>
					</table>
				</div>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="2">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="cls"  subscript="1" />
											<classz:constant value="cls"  subscript="2" />
											<classz:type value="CLASS" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="sig" />
											<classz:type value="SIGNATURE" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:predicatesymbol value="Isomorphic" />
											<classz:relationsymbol value="Call" />
											<fopl:set><classz:superimposition><classz:constant value="sig" /><classz:constant value="cls" subscript="1" /></classz:superimposition></fopl:set>
											<fopl:set><classz:superimposition><classz:constant value="sig" /><classz:constant value="cls" subscript="2" /></classz:superimposition></fopl:set>
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
											</fopl:set>
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
											</fopl:set>
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no" />
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Abstract" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Call" /></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
											</fopl:set>
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
											</fopl:set>
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Abstract" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Call" /></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="3">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="Cls" />
											<classz:type value="CLASS" exponent="1" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="sig" />
											<classz:type value="SIGNATURE" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:predicatesymbol value="Isomorphic" />
											<classz:relationsymbol value="Call" />
											<classz:superimposition><classz:constant value="sig" /><classz:constant value="Cls" /></classz:superimposition>
											<classz:superimposition><classz:constant value="sig" /><classz:constant value="Cls" /></classz:superimposition>
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="Cls" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
												<fopl:entity value="cls" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="cls" subscript="1" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="2" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="3" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Call"/></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="Cls" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
												<fopl:entity value="cls" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="cls" subscript="1" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="2" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="3" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Abstract"/></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Call"/></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Not satisfied by
							</td>
							<td>
								<doc:enum>Counter example</doc:enum>
								There exists a method in the range that is not called by a member of the domain, and visa versa. This violates the definition of the <classz:predicatesymbol value="Isomorphic" />
								predicate.
								<table class="designmodel counter">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="Cls" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
												<fopl:entity value="cls" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="cls" subscript="1" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="2" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="3" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Call"/></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="3">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="Factories" />
											<classz:type value="CLASS" exponent="1" />
										</classz:declare>
										<classz:declare>
											<classz:constant value="sig" />
											<classz:type value="SIGNATURE" exponent="0" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:predicatesymbol value="Isomorphic" />
											<classz:relationsymbol value="Create" />
											<classz:superimposition>
												<classz:constant value="sig" />
												<classz:constant value="Factories" />
											</classz:superimposition>
											<classz:constant value="Factories" />
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="Factories" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
												<fopl:entity value="cls" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="cls" subscript="1" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="2" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="3" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Create"/></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="subClass" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="Factories" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
												<fopl:entity value="cls" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="cls" subscript="1" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="2" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="3" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="subClass" /><fopl:entity value="cls" subscript="1" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit"/></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /><fopl:entity value="subClass" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Create"/></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="subClass" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class" /></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="Factories" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="cls" subscript="1" />
												<fopl:entity value="cls" subscript="2" />
												<fopl:entity value="cls" subscript="3" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Method" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="sig" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Signature" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="sig" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="SignatureOf" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple>
													<fopl:entity value="cls" subscript="1" />
													<fopl:entity value="mth" subscript="1" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="2" />
													<fopl:entity value="mth" subscript="2" />
												</fopl:tuple>
												<fopl:tuple>
													<fopl:entity value="cls" subscript="3" />
													<fopl:entity value="mth" subscript="3" />
												</fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Member" /></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="subClass" /><fopl:entity value="cls" subscript="1" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit"/></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="cls" subscript="1" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Abstract"/></td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="mth" subscript="1" /><fopl:entity value="subClass" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="2" /><fopl:entity value="cls" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="mth" subscript="3" /><fopl:entity value="cls" subscript="3" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Create"/></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
				<div class="example">
					<table class="definition">
						<tr>
							<th style="width:300px;">Schema</th>
							<th style="width:100px;"/>
							<th>Design models</th>
						</tr>
						<tr>
							<td rowspan="2">
								<classz:schema title="&Psi;">
									<classz:declarations>
										<classz:declare>
											<classz:constant value="A" />
											<classz:constant value="B" />
											<classz:type value="CLASS" exponent="1" />
										</classz:declare>
									</classz:declarations>
									<classz:formulas>
										<classz:formula>
											<classz:predicatesymbol value="Isomorphic" />
											<classz:relationsymbol value="Inherit" />
											<classz:constant value="A" />
											<classz:constant value="B" />
										</classz:formula>
									</classz:formulas>
								</classz:schema>
							</td>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="a" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="a" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="b" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="b" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class"/></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="A" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="a" subscript="1" />
												<fopl:entity value="a" subscript="2" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="B" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="b" subscript="1" />
												<fopl:entity value="b" subscript="2" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="a" subscript="1" /><fopl:entity value="b" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="a" subscript="2" /><fopl:entity value="b" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit"/></td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td style="text-align:center;">
								Satisfied by
							</td>
							<td>
								<doc:enum />
								<table class="designmodel">
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="a" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="a" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="b" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="b" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Class"/></td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="A" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="a" subscript="1" />
												<fopl:entity value="a" subscript="2" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain"><fopl:entity value="B" /></td>
										<td class="operator"><fopl:equals /></td>
										<td class="range">
											<fopl:set vertical="no">
												<fopl:entity value="b" subscript="1" />
												<fopl:entity value="b" subscript="2" />
											</fopl:set>
										</td>
									</tr>
									<tr>
										<td class="domain">
											<fopl:set vertical="no">
												<fopl:tuple><fopl:entity value="a" subscript="1" /><fopl:entity value="b" subscript="1" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="a" subscript="2" /><fopl:entity value="b" subscript="2" /></fopl:tuple>
												<fopl:tuple><fopl:entity value="b" subscript="1" /><fopl:entity value="b" subscript="2" /></fopl:tuple>
											</fopl:set>
										</td>
										<td class="operator"><fopl:equals /></td>
										<td class="range"><fopl:relation value="Inherit"/></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</div>
			</div>
		</div>
		<h1>References</h1>
		<ul>
			<li>Amnon H. Eden, Jonathan Nicholson, Epameinondas Gasparis. 
				&ldquo;<a href="../refman/refman.xml">The LePUS3 and Class-Z Reference manual</a>.&rdquo; 
				Technical report CSM-474, ISSN 1744-8050 (2007), Department of Computer Science, University of 
				Essex. [<a href="../refman/refman.pdf">.pdf</a>]</li>
			<li>Jonathan Nicholson, Amnon H Eden, Epameinondas Gasparis. &quot;Verification of LePUS3/Class-Z 
				Specifications: Sample models and Abstract Semantics for Java 1.4 (<a href="1java_as.xml">Part 
				I</a>; <a href="2case_studies.xml">Part II</a>).&quot; Department of 
				Computer Science, University of Essex, Tech. Rep. CSM-471, ISSN 1744-8050 
				(2007). [<a href="verif.pdf">.pdf</a>]</li>
		</ul>
	</body>
</html>
