blob: f7c4441026e00b75c17befb1fc670fb2fc33dcf4 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ContentDescription xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.5/uma.ecore"
xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.0" xmi:id="-fZn4nTBQjy1YPY8BQSTvJg"
name="new_guideline,_x_5XgH9iEd26h9j0X6pKmw" guid="-fZn4nTBQjy1YPY8BQSTvJg" changeDate="2008-09-10T11:05:45.140-0700">
<mainDescription>&lt;p>&#xD;
Criteria in rule is true or false. So when combining criteria together to build the condition part of a rule we need to&#xD;
clearly understand the Boolean logic, and its operations.&#xD;
&lt;/p>&#xD;
&lt;h5>&#xD;
AND / Conjunction&#xD;
&lt;/h5>&#xD;
&lt;p>&#xD;
We will use the following notation the dot as operator for AND so A.B is equivalent to A&amp;nbsp;AND B. The conjunction of&#xD;
two propositions is true when both propositions are true. The truth table is&#xD;
&lt;/p>&lt;br />&#xD;
&lt;br />&#xD;
&lt;table title=&quot;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;85%&quot; border=&quot;1&quot;>&#xD;
&lt;tbody>&#xD;
&lt;tr>&#xD;
&lt;td>&#xD;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;strong>AND&amp;nbsp;&amp;nbsp;&amp;nbsp; A&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;strong>B&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;strong>True&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;strong>False&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;/tr>&#xD;
&lt;tr>&#xD;
&lt;td>&#xD;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;strong>True&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;em>True&lt;/em>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;em>False&lt;/em>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;/tr>&#xD;
&lt;tr>&#xD;
&lt;td>&#xD;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;strong>False&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;em>False&lt;/em>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;em>False&lt;/em>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;/tr>&#xD;
&lt;/tbody>&#xD;
&lt;/table>&amp;nbsp;&lt;br />&#xD;
&lt;br />&#xD;
&lt;h5>&#xD;
OR&amp;nbsp; / Disjunction&#xD;
&lt;/h5>&#xD;
&lt;p>&#xD;
We use the + operator for A OR B like A + B. Disjunction of two propositions is false when both propositions are false.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
&lt;br />&#xD;
&lt;/p>&#xD;
&lt;table title=&quot;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;85%&quot; border=&quot;1&quot;>&#xD;
&lt;tbody>&#xD;
&lt;tr>&#xD;
&lt;td>&#xD;
&lt;p>&#xD;
&lt;strong>OR&amp;nbsp;&amp;nbsp; A&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
&lt;strong>B&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;strong>True&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;strong>False&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;/tr>&#xD;
&lt;tr>&#xD;
&lt;td>&#xD;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;strong>True&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;em>True&lt;/em>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;em>True&lt;/em>&#xD;
&lt;/td>&#xD;
&lt;/tr>&#xD;
&lt;tr>&#xD;
&lt;td>&#xD;
&lt;p dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;strong>False&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;em>True&lt;/em>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;em>False&lt;/em>&#xD;
&lt;/td>&#xD;
&lt;/tr>&#xD;
&lt;/tbody>&#xD;
&lt;/table>&lt;br />&#xD;
&lt;br />&#xD;
&lt;h5>&#xD;
NOT / Negation&#xD;
&lt;/h5>&#xD;
&lt;table title=&quot;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;85%&quot; border=&quot;1&quot;>&#xD;
&lt;tbody>&#xD;
&lt;tr>&#xD;
&lt;td>&#xD;
&lt;strong>A&lt;/strong>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;strong>NOT A&lt;/strong>&#xD;
&lt;/td>&#xD;
&lt;/tr>&#xD;
&lt;tr>&#xD;
&lt;td>&#xD;
&lt;strong>True&lt;/strong>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;em>False&lt;/em>&#xD;
&lt;/td>&#xD;
&lt;/tr>&#xD;
&lt;tr>&#xD;
&lt;td>&#xD;
&lt;strong>False&lt;/strong>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;em>True&lt;/em>&#xD;
&lt;/td>&#xD;
&lt;/tr>&#xD;
&lt;/tbody>&#xD;
&lt;/table>&lt;br />&#xD;
&lt;br />&#xD;
&lt;h5>&#xD;
Implication&#xD;
&lt;/h5>&#xD;
&lt;p>&#xD;
A-&amp;gt; B, implication is a binary operation which is false when A is true and&amp;nbsp;B is false. A -&amp;gt; B can be&#xD;
expressed as NOT A OR B.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
&lt;br />&#xD;
&lt;/p>&#xD;
&lt;table title=&quot;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;85%&quot; border=&quot;1&quot;>&#xD;
&lt;tbody>&#xD;
&lt;tr>&#xD;
&lt;td>&#xD;
&lt;p>&#xD;
&lt;strong>A -&amp;gt;&#xD;
B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xD;
A&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
&lt;strong>B&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;strong>True&lt;/strong>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;strong>False&lt;/strong>&#xD;
&lt;/td>&#xD;
&lt;/tr>&#xD;
&lt;tr>&#xD;
&lt;td>&#xD;
&lt;strong>True&lt;/strong>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;em>True&lt;/em>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;em>True&lt;/em>&#xD;
&lt;/td>&#xD;
&lt;/tr>&#xD;
&lt;tr>&#xD;
&lt;td>&#xD;
&lt;strong>False&lt;/strong>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;em>False&lt;/em>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;em>True&lt;/em>&#xD;
&lt;/td>&#xD;
&lt;/tr>&#xD;
&lt;/tbody>&#xD;
&lt;/table>&lt;br />&#xD;
&lt;br />&#xD;
&lt;h5>&#xD;
XOR or exclusive OR&#xD;
&lt;/h5>&#xD;
&lt;p>&#xD;
Exclusive-or of two propositions is true just when exactly one of the propositions is true&lt;br />&#xD;
&lt;br />&#xD;
&lt;/p>&#xD;
&lt;table title=&quot;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;85%&quot; border=&quot;1&quot;>&#xD;
&lt;tbody>&#xD;
&lt;tr>&#xD;
&lt;td>&#xD;
&lt;p>&#xD;
&lt;strong>XOR&amp;nbsp;&amp;nbsp;&amp;nbsp; A&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
&lt;strong>B&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;strong>True&lt;/strong>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;strong>False&lt;/strong>&#xD;
&lt;/td>&#xD;
&lt;/tr>&#xD;
&lt;tr>&#xD;
&lt;td>&#xD;
&lt;strong>True&lt;/strong>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;em>False&lt;/em>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;em>True&lt;/em>&#xD;
&lt;/td>&#xD;
&lt;/tr>&#xD;
&lt;tr>&#xD;
&lt;td>&#xD;
&lt;strong>False&lt;/strong>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;em>True&lt;/em>&#xD;
&lt;/td>&#xD;
&lt;td>&#xD;
&lt;em>False&lt;/em>&#xD;
&lt;/td>&#xD;
&lt;/tr>&#xD;
&lt;/tbody>&#xD;
&lt;/table>&#xD;
&lt;h5>&#xD;
De Morgan's Law&#xD;
&lt;/h5>&#xD;
&lt;p>&#xD;
De Morgan's law are rules in formal logic relating pairs of dual logical operators in a systematic manner expressed in&#xD;
terms of negation:&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
&amp;nbsp; NOT (A AND B) = NOT A OR NOT B&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
&amp;nbsp;&amp;nbsp;NOT (A OR B) = NOT A AND NOT B&lt;br />&#xD;
&lt;br />&#xD;
It is important to leverage the De Morgan's law to improve rule writing during&amp;nbsp;the rule transformation.&lt;br />&#xD;
&lt;br />&#xD;
&amp;nbsp;&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
&lt;br />&#xD;
&amp;nbsp;&#xD;
&lt;/p></mainDescription>
</org.eclipse.epf.uma:ContentDescription>