| <?xml version="1.0" encoding="UTF-8"?> |
| <typerules:RuleSet xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:typerules="http:///typerules.ecore"> |
| <typerules operator="Or"> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Bool || Bool = Bool" firstOperand="datatypes.Boolean" secondOperand="datatypes.Boolean"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="TOP || * = Bool" firstOperand="TOP" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="* || TOP = Bool" firstOperand="*" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM || * -> TOP" firstOperand="BOTTOM" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* || BOTTOM -> TOP" firstOperand="*" secondOperand="BOTTOM"/> |
| </typerules> |
| <typerules operator="And"> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Bool && Bool=Bool" firstOperand="datatypes.Boolean" secondOperand="datatypes.Boolean"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="* && TOP = Bool" firstOperand="*" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="TOP && * = Bool" firstOperand="TOP" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM && * -> TOP" firstOperand="BOTTOM" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* && BOTTOM -> TOP" firstOperand="*" secondOperand="BOTTOM"/> |
| </typerules> |
| <typerules operator="XOr"> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Bool xor Bool = Bool" firstOperand="datatypes.Boolean" secondOperand="datatypes.Boolean"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="TOP xor * = Bool" firstOperand="TOP" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="* xor TOP = Bool" firstOperand="*" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM xor * -> TOP" firstOperand="BOTTOM" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* xor BOTTOM -> TOP" firstOperand="*" secondOperand="BOTTOM"/> |
| </typerules> |
| <typerules operator="Equals"> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="TOP == * -> Boolean" firstOperand="TOP" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="* == TOP -> Boolean" firstOperand="*" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM == * -> TOP" firstOperand="BOTTOM" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* == BOTTOM -> TOP" firstOperand="*" secondOperand="BOTTOM"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="MODELELEMENT == MODELELEMENT -> Boolean" firstOperand="MODELELEMENT" secondOperand="MODELELEMENT"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="ENTITY == ENTITY -> Boolean" firstOperand="ENTITY" secondOperand="ENTITY"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="RELATION == RELATION -> Boolean" firstOperand="RELATION" secondOperand="RELATION"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="String == String -> Boolean" firstOperand="datatypes.String" secondOperand="datatypes.String"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Boolean == Boolean -> Boolean" firstOperand="datatypes.Boolean" secondOperand="datatypes.Boolean"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Integer == Integer -> Boolean" firstOperand="datatypes.Integer" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Double == Double -> Boolean" firstOperand="datatypes.Double" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Integer == Double -> Boolean" firstOperand="datatypes.Integer" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Double == Integer -> Boolean" firstOperand="datatypes.Double" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="MultiplicityKind == MultiplicityKind -> Boolean" firstOperand="datatypes.MultiplicityKind" secondOperand="datatypes.MultiplicityKind"/> |
| </typerules> |
| <typerules operator="NotEquals"> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="TOP != * -> Bool" firstOperand="TOP" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="* != TOP -> Bool" firstOperand="*" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM != * -> TOP" firstOperand="BOTTOM" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* != BOTTOM -> TOP" firstOperand="*" secondOperand="BOTTOM"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="MODELELEMENT != MODELELEMENT -> Boolean" firstOperand="MODELELEMENT" secondOperand="MODELELEMENT"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="ENTITY != ENTITY -> Boolean" firstOperand="ENTITY" secondOperand="ENTITY"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="RELATION != RELATION -> Boolean" firstOperand="RELATION" secondOperand="RELATION"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="String != String -> Boolean" firstOperand="datatypes.String" secondOperand="datatypes.String"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Boolean != Boolean -> Boolean" firstOperand="datatypes.Boolean" secondOperand="datatypes.Boolean"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Integer != Integer -> Boolean" firstOperand="datatypes.Integer" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Double != Double -> Boolean" firstOperand="datatypes.Double" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Integer != Double -> Boolean" firstOperand="datatypes.Integer" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Double != Integer -> Boolean" firstOperand="datatypes.Double" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="MultiplicityKind != MultiplicityKind -> Boolean" firstOperand="datatypes.MultiplicityKind" secondOperand="datatypes.MultiplicityKind"/> |
| </typerules> |
| <typerules operator="GreaterThan"> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="TOP > * = Bool" firstOperand="TOP" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="* > TOP = Bool" firstOperand="*" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM > * -> TOP" firstOperand="BOTTOM" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* > BOTTOM -> TOP" firstOperand="*" secondOperand="BOTTOM"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Integer > Integer = Boolean" firstOperand="datatypes.Integer" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Double > Double = Boolean" firstOperand="datatypes.Double" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Integer > Double = Boolean" firstOperand="datatypes.Integer" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Double > Integer = Boolean" firstOperand="datatypes.Double" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="MultiplicityKind > MultiplicityKind -> Boolean" firstOperand="datatypes.MultiplicityKind" secondOperand="datatypes.MultiplicityKind"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="String > String -> Boolean" firstOperand="datatypes.String" secondOperand="datatypes.String"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="Boolean" name="String > Double -> Boolean" firstOperand="String" secondOperand="Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="Boolean" name="String > Integer -> Boolean" firstOperand="String" secondOperand="Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="Boolean" name="Double > String -> Boolean" firstOperand="Double" secondOperand="String"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="Boolean" name="Integer > String -> Boolean" firstOperand="Integer" secondOperand="String"/> |
| </typerules> |
| <typerules operator="GreaterThanOrEqualTo"> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="TOP >= * = Bool" firstOperand="TOP" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="* >= TOP = Bool" firstOperand="*" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM >= * -> TOP" firstOperand="BOTTOM" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* >= BOTTOM -> TOP" firstOperand="*" secondOperand="BOTTOM"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Integer >= Integer = Boolean" firstOperand="datatypes.Integer" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Double >= Double = Boolean" firstOperand="datatypes.Double" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Integer >= Double = Boolean" firstOperand="datatypes.Integer" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Double >= Integer = Boolean" firstOperand="datatypes.Double" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="MultiplicityKind >= MultiplicityKind -> Boolean" firstOperand="datatypes.MultiplicityKind" secondOperand="datatypes.MultiplicityKind"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="String >= String -> Boolean" firstOperand="datatypes.String" secondOperand="datatypes.String"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="String >= Double -> Boolean" firstOperand="datatypes.String" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="String >= Integer -> Boolean" firstOperand="datatypes.String" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Double >= String -> Boolean" firstOperand="datatypes.Double" secondOperand="datatypes.String"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Integer >= String -> Boolean" firstOperand="datatypes.Integer" secondOperand="datatypes.String"/> |
| </typerules> |
| <typerules operator="LessThan"> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="TOP < * = Bool" firstOperand="TOP" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="* < TOP = Bool" firstOperand="*" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM < * -> TOP" firstOperand="BOTTOM" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* < BOTTOM -> TOP" firstOperand="*" secondOperand="BOTTOM"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Integer < Integer = Boolean" firstOperand="datatypes.Integer" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Double < Double = Boolean" firstOperand="datatypes.Double" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Integer < Double = Boolean" firstOperand="datatypes.Integer" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Double < Integer = Boolean" firstOperand="datatypes.Double" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="MultiplicityKind < MultiplicityKind -> Boolean" firstOperand="datatypes.MultiplicityKind" secondOperand="datatypes.MultiplicityKind"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="String < String -> Boolean" firstOperand="datatypes.String" secondOperand="datatypes.String"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="String < Double -> Boolean" firstOperand="datatypes.String" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="String < Integer -> Boolean" firstOperand="datatypes.String" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Double < String -> Boolean" firstOperand="datatypes.Double" secondOperand="datatypes.String"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Integer < String -> Boolean" firstOperand="datatypes.Integer" secondOperand="datatypes.String"/> |
| </typerules> |
| <typerules operator="LessThanOrEqualTo"> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="TOP <= * = Bool" firstOperand="TOP" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="* <= TOP = Bool" firstOperand="*" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM <= * -> TOP" firstOperand="BOTTOM" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* <= BOTTOM -> TOP" firstOperand="*" secondOperand="BOTTOM"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Integer <= Integer = Boolean" firstOperand="datatypes.Integer" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Double <= Double = Boolean" firstOperand="datatypes.Double" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Integer <= Double = Boolean" firstOperand="datatypes.Integer" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Double <= Integer = Boolean" firstOperand="datatypes.Double" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="MultiplicityKind <= MultiplicityKind -> Boolean" firstOperand="datatypes.MultiplicityKind" secondOperand="datatypes.MultiplicityKind"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="String <= String -> Boolean" firstOperand="datatypes.String" secondOperand="datatypes.String"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="String <= Double -> Boolean" firstOperand="datatypes.String" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="String <= Integer -> Boolean" firstOperand="datatypes.String" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Double <= String -> Boolean" firstOperand="datatypes.Double" secondOperand="datatypes.String"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Boolean" name="Integer <= String -> Boolean" firstOperand="datatypes.Integer" secondOperand="datatypes.String"/> |
| </typerules> |
| <typerules operator="Plus"> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.String" name="String +* = String" firstOperand="datatypes.String" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.String" name="* + String = String" firstOperand="*" secondOperand="datatypes.String"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="TOP + TOP= TOP" firstOperand="TOP" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="TOP + Boolean = TOP" firstOperand="TOP" secondOperand="datatypes.Boolean"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="Boolean + TOP= TOP" firstOperand="datatypes.Boolean" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="TOP + Integer = TOP" firstOperand="TOP" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="Integer + TOP= TOP" firstOperand="datatypes.Integer" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="TOP + Double = TOP" firstOperand="TOP" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="Double + TOP= TOP" firstOperand="datatypes.Double" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="TOP + MultiplicityKind = TOP" firstOperand="TOP" secondOperand="datatypes.MultiplicityKind"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="MultiplicityKind + TOP= TOP" firstOperand="datatypes.MultiplicityKind" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM + BOTTOM= TOP" firstOperand="BOTTOM" secondOperand="BOTTOM"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM + Boolean = TOP" firstOperand="BOTTOM" secondOperand="datatypes.Boolean"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="Boolean + BOTTOM= TOP" firstOperand="datatypes.Boolean" secondOperand="BOTTOM"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM + Integer = TOP" firstOperand="BOTTOM" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="Integer + BOTTOM= TOP" firstOperand="datatypes.Integer" secondOperand="BOTTOM"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM + Double = TOP" firstOperand="BOTTOM" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="Double + BOTTOM= TOP" firstOperand="datatypes.Double" secondOperand="BOTTOM"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM + MultiplicityKind = TOP" firstOperand="BOTTOM" secondOperand="datatypes.MultiplicityKind"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="MultiplicityKind + BOTTOM= TOP" firstOperand="datatypes.MultiplicityKind" secondOperand="BOTTOM"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Integer" name="Integer + Integer = Integer" firstOperand="datatypes.Integer" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Double" name="Double + Double = Double" firstOperand="datatypes.Double" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Double" name="Double + Integer = Double" firstOperand="datatypes.Double" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Double" name="Integer + Double = Double" firstOperand="datatypes.Integer" secondOperand="datatypes.Double"/> |
| </typerules> |
| <typerules operator="Minus"> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="TOP - * = TOP" firstOperand="TOP" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* - TOP = TOP" firstOperand="*" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM - * -> TOP" firstOperand="BOTTOM" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* - BOTTOM -> TOP" firstOperand="*" secondOperand="BOTTOM"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Integer" name="Integer - Integer = Integer" firstOperand="datatypes.Integer" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Double" name="Double - Double = Double" firstOperand="datatypes.Double" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Double" name="Double - Integer = Double" firstOperand="datatypes.Double" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Double" name="Integer - Double = Double" firstOperand="datatypes.Integer" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="-TOP = TOP" operand="TOP"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="-BOTTOM = TOP" operand="BOTTOM"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Integer" name="-Integer = Integer" operand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Double" name="-Double = Double" operand="datatypes.Double"/> |
| </typerules> |
| <typerules operator="Multiply"> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="TOP * * = TOP" firstOperand="TOP" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* * TOP = TOP" firstOperand="*" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM * * -> TOP" firstOperand="BOTTOM" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* * BOTTOM -> TOP" firstOperand="*" secondOperand="BOTTOM"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Integer" name="Integer * Integer = Integer" firstOperand="datatypes.Integer" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Double" name="Double * Double = Double" firstOperand="datatypes.Double" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Double" name="Double * Integer = Double" firstOperand="datatypes.Double" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Double" name="Integer * Double = Double" firstOperand="datatypes.Integer" secondOperand="datatypes.Double"/> |
| </typerules> |
| <typerules operator="Division"> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="TOP / * = TOP" firstOperand="TOP" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* / TOP = TOP" firstOperand="*" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM / * -> TOP" firstOperand="BOTTOM" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* / BOTTOM -> TOP" firstOperand="*" secondOperand="BOTTOM"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Integer" name="Integer / Integer = Integer" firstOperand="datatypes.Integer" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Double" name="Double / Double = Double" firstOperand="datatypes.Double" secondOperand="datatypes.Double"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Double" name="Double / Integer = Double" firstOperand="datatypes.Double" secondOperand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Double" name="Integer / Double = Double" firstOperand="datatypes.Integer" secondOperand="datatypes.Double"/> |
| </typerules> |
| <typerules operator="Remainder"> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="TOP % * = TOP" firstOperand="TOP" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* % TOP = TOP" firstOperand="*" secondOperand="TOP"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="BOTTOM % * -> TOP" firstOperand="BOTTOM" secondOperand="*"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="TOP" name="* % BOTTOM -> TOP" firstOperand="*" secondOperand="BOTTOM"/> |
| <judgements xsi:type="typerules:BinaryTypeJudgement" result="datatypes.Integer" name="Integer % Integer = Integer" firstOperand="datatypes.Integer" secondOperand="datatypes.Integer"/> |
| </typerules> |
| <typerules operator="Aggregate"> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Boolean" name="aggregation(RELATION) = Boolean" operand="RELATION"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="aggergation(BOTTOM) = TOP" operand="BOTTOM"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Boolean" name="aggregation(TOP) = Boolean" operand="TOP"/> |
| </typerules> |
| <typerules operator="Source"> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Boolean" name="source(RELATION) = MODELELEMENT" operand="MODELELEMENT"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="source(BOTTOM) = TOP" operand="BOTTOM"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="MODELELEMENT" name="source(TOP) = MODELELEMENT" operand="TOP"/> |
| <judgements xsi:type="typerules:CustomTypeJudgement" name="typeSource"> |
| <operands>operand</operands> |
| </judgements> |
| </typerules> |
| <typerules operator="Target"> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="MODELELEMENT" name="target(RELATION) = MODELELEMENT" operand="RELATION"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="target(BOTTOM) = TOP" operand="BOTTOM"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="MODELELEMENT" name="target(TOP) = MODELELEMENT" operand="TOP"/> |
| <judgements xsi:type="typerules:CustomTypeJudgement" name="typeTarget"> |
| <operands>operand</operands> |
| </judgements> |
| </typerules> |
| <typerules operator="ElementReference"> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="MODELELEMENT" name="ref(String) = MODELELEMENT" operand="datatypes.String"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="ref(BOTTOM) = TOP" operand="BOTTOM"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="MODELELEMENT" name="ref(TOP) = MODELELEMENT" operand="TOP"/> |
| <judgements xsi:type="typerules:CustomTypeJudgement" name="typeElementReference"> |
| <operands>operand</operands> |
| </judgements> |
| </typerules> |
| <typerules operator="FullyQualifiedName"> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.String" name="fqn(MODELELEMENT) = String" operand="MODELELEMENT"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="fqn(BOTTOM) = TOP" operand="BOTTOM"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.String" name="fqn(TOP) = String" operand="TOP"/> |
| </typerules> |
| <typerules operator="Name"> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.String" name="name(MODELELEMENT) = String" operand="MODELELEMENT"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="name(BOTTOM) = TOP" operand="BOTTOM"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.String" name="name(TOP) = String" operand="TOP"/> |
| </typerules> |
| <typerules operator="Value"> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.String" name="value(ENTITY) = String" operand="ENTITY"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="value(BOTTOM) = TOP" operand="BOTTOM"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.String" name="value(TOP) = String" operand="TOP"/> |
| </typerules> |
| <typerules operator="Inverse"> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="RELATION" name="inverse(RELATION) = RELATION" operand="RELATION"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="source(BOTTOM) = TOP" operand="BOTTOM"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Boolean" name="source(TOP) = Boolean" operand="TOP"/> |
| <judgements xsi:type="typerules:CustomTypeJudgement" result="" name="typeInverse"> |
| <operands>operand</operands> |
| </judgements> |
| </typerules> |
| <typerules operator="Multiplicity"> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.MultiplicityKind" name="aggregation(RELATION) = MultiplicityKind" operand="RELATION"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="aggergation(BOTTOM) = TOP" operand="BOTTOM"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.MultiplicityKind" name="aggregation(TOP) = MultiplicityKind" operand="TOP"/> |
| </typerules> |
| <typerules operator="ToString"> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.String" name="toString(*) = String" operand="*"/> |
| </typerules> |
| <typerules operator="ToInt"> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Integer" name="toInt(TOP) = Integer" operand="TOP"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Integer" name="toInt(Integer) = Integer" operand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Integer" name="toInt(String) = Integer" operand="datatypes.String"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Integer" name="toInt(Double) = Integer" operand="datatypes.Double"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="toInt(BOTTOM) = TOP" operand="BOTTOM"/> |
| </typerules> |
| <typerules operator="ToDouble"> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Double" name="toDouble(TOP) = Double" operand="TOP"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Double" name="toDouble(Integer) = Double" operand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Double" name="toDouble(String) = Double" operand="datatypes.String"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Double" name="toDouble(Double) = Double" operand="datatypes.Double"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="toDouble(BOTTOM) = TOP" operand="BOTTOM"/> |
| </typerules> |
| <typerules operator="ToBoolean"> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Boolean" name="toBoolean(TOP) = Boolean" operand="TOP"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Boolean" name="toBoolean(Integer) = Boolean" operand="datatypes.Integer"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Boolean" name="toBoolean(String) = Boolean" operand="datatypes.String"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Boolean" name="toBoolean(Double) = Boolean" operand="datatypes.Double"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Boolean" name="toBoolean(Boolean) = Boolean" operand="datatypes.Boolean"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="toBoolean(BOTTOM) = TOP" operand="BOTTOM"/> |
| </typerules> |
| <typerules operator="ToMultiplicity"> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.MultiplicityKind" name="toMultiplicity(TOP) = MultiplicityKind" operand="TOP"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.MultiplicityKind" name="toMultiplicity(MultiplicityKind) = MultiplicityKind" operand="datatypes.MultiplicityKind"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.MultiplicityKind" name="toMultiplicity(String) = MultiplicityKind" operand="datatypes.String"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Integer" name="toInt(Double) = Integer" operand="datatypes.Double"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="toMultiplicity(BOTTOM) = TOP" operand="BOTTOM"/> |
| </typerules> |
| <typerules operator="Not"> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Boolean" name="!Boolean = Boolean" operand="datatypes.Boolean"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="datatypes.Boolean" name="!TOP = Boolean" operand="TOP"/> |
| <judgements xsi:type="typerules:UnaryTypeJudgement" result="TOP" name="!BOTTOM = TOP" operand="BOTTOM"/> |
| </typerules> |
| </typerules:RuleSet> |