| 1 | === Base Template !DifferenceOf2Classes === |

| 2 | |

| 3 | [[br]]!DifferenceOf2Classes is a template for expressing that a class is the difference, as given in ISO 15926-2, of two classes. |

| 4 | [[br]] |

| 5 | [[br]]!DifferenceOf2Classes(a, b, c) means that c is the difference of a and b. |

| 6 | [[br]] |

| 7 | [[br]]Roles: |

| 8 | [[br]]1 hasClass1 Class |

| 9 | [[br]]2 hasClass2 Class |

| 10 | [[br]]3 hasClassDifference Class |

| 11 | |

| 12 | Axiom: |

| 13 | {{{ |

| 14 | DifferenceOf2Classes(x1, x2, x3) <-> |

| 15 | Class(x1) & |

| 16 | Class(x2) & |

| 17 | Class(x3) & |

| 18 | exists y(EnumeratedSetOf2Classes(x1, x2, y) & |

| 19 | DifferenceOfSetOfClassTemplate(y, x3)) . |

| 20 | }}} |

| 21 | |

| 22 | NOTE ISO 15926-2 defines the difference of two classes a and b as (a [ b)n(a \ b). See 8.3 for further information on the representation used in this template. |