  
This work is sponsored by the 
Deploy Project 
 
 
  
This work is sponsored by the 
ADVANCE Project 
 
 
  
This work is licensed under a Creative Commons Attribution 3.0 Unported License
Relations 
Rodin User’s Handbook v.2.8 
 |   | 
  | 
  | 
  | 
Rodin User’s Handbook v.2.8 | 
  | 
  | 
  | 
 
 
 
3.3.5 Relations
3.3.5.1 Pairs and Cartesian product
      
    
         | 
    
     |->   | 
    
     Pair   | 
 
    
      
  | 
    
     **   | 
    
     Cartesian product   | 
 
    
    - Description
 
      denotes the pair whose first element is   and second element is  . 
   denotes the set of pairs where the first element is a member of   and second element is a member of  . 
  
    - Definition
 
      
  
    - Types
 
      with   and  .
   with   and  . 
  
    - WD
 
     
   
  
   3.3.5.2 Relations
   
    
         | 
    
     <->   | 
    
     Relations   | 
 
    
      
  | 
    
     <<->   | 
    
     Total relations   | 
 
    
      
  | 
    
     <->>   | 
    
     Surjective relations   | 
 
    
      
  | 
    
     <<->>   | 
    
     Total surjective relations   | 
 
    
    - Description
 
      is the set of relations between the two sets   and  . A relation consists of pairs where the first element is of   and the second of  .   is just an abbreviation for  . 
 A total relation is a relation which relates each element of   to at least one element of  .  A surjective relation is a relation where there is at least one element of   for each element of   such that both are related.   
    - Definition
 
     
  
  
   
  
    - Types
 
    For   and   for each operator   of  ,  ,  ,  :
     
    - WD
 
      for each operator   of  ,  ,  ,  . 
  
   3.3.5.3 Domain and Range
     
    
         | 
    
     dom   | 
    
     Domain   | 
 
    
      
  | 
    
     ran   | 
    
     Range   | 
 
    
    - Description
 
    If   is a relation between the sets   and  , the domain   is the set of the elements of   that are related to at least one element of   by  .  Likewise the range   is the set of elements of   to which at least one element of   relates by  .   
    - Definition
 
     
   
  
    - Types
 
      and   with  . 
  
    - WD
 
     
   
  
   3.3.5.4 Domain and Range Restrictions
       
    
         | 
    
     <|   | 
    
     Domain restriction  | 
 
    
      
  | 
    
     <<|   | 
    
     Domain subtraction  | 
 
    
      
  | 
    
     |>   | 
    
     Range restriction  | 
 
    
      
  | 
    
     |>>   | 
    
     Range subtraction   | 
 
    
    - Description
 
    The domain restriction   is a subset of the relation   that contains all of the pairs whose first element is in  .   is the subset where the pair’s first element is not in  .  In the same way, the range restriction   is a subset that contains all of the pairs whose second element is in   and   is the set where the pair’s second element is not in  .   
    - Definition
 
     
  
  
   
  
    - Types
 
      and   with   and  
   and   with   and   
  
    - WD
 
      for each operator   of  ,  ,  ,   
  
   3.3.5.5 Operations on relations
             
    
         | 
    
     ;   | 
    
     Relational forward composition  | 
 
    
      
  | 
    
     circ   | 
    
     Relational backward composition  | 
 
    
      
  | 
    
     <+   | 
    
     Relational override   | 
 
    
      
  | 
    
     ||   | 
    
     Parallel product   | 
 
    
      
  | 
    
     ><   | 
    
     Direct product   | 
 
    
      
  | 
    
     ~   | 
    
     Inverse   | 
 
    
    - Description
 
    An element   is related by   to an element   if there is an element   such that   relates   to   and   relates   to  .    can be written as an alternative to  . This reflects the fact that   holds for two functions   and  . 
 The relational overwrite   is equal to   except all entries in   whose first element is in the domain of   are replaced by the corresponding entries in  .  The parallel product   relates a pair   to a pair   when   relates   to   and   relates   to  .  If a relation   relates an element   to   and   relates   to  , the direct product   relates   to the pair  .  The inverse relation   relates an element   to   if the original relation   relates   to  .   
    - Definition
 
     
  
  
  
  
   
  
    - Types
 
      with   and  
   with   and  
   with   and  
   with   and  
   with   and  
   with   
  
    - WD
 
      for each operator   of  ,  ,  ,  ,  
   
  
   3.3.5.6 Relational image
     
    
         | 
    
     […]   | 
    
     Relational image   | 
 
    
    - Description
 
    The relational image   are those elements in the range of   that are mapped from  .   
    - Definition
 
      
  
    - Types
 
      with   and   
  
    - WD
 
      
  
   3.3.5.7 Constant relations
      
    
         | 
    
     id   | 
    
     Identity relation   | 
 
    
      
  | 
    
     prj1   | 
    
     First projection   | 
 
    
      
  | 
    
     prj2   | 
    
     Second projection   | 
 
    
    - Description
 
      is the identity relation that maps every element to itself. 
   is a function that maps a pair to its first element. Likewise   maps a pair to its second element. 
  ,   and   are generic definitions. Their type must be inferred from the environment. 
  
    - Definition
 
     
  
   
  
    - Types
 
      for an arbitrary type  .
   and   for arbitrary types   and  . 
  
    - WD
 
     
  
   
  
    - Example
 
    The assumption that a relation   is irreflexive can be expressed by:
     
   3.3.5.8 Sets of functions
      
    
         | 
    
     +->   | 
    
     Partial functions  | 
 
    
      
  | 
    
     –>   | 
    
     Total functions   | 
 
    
      
  | 
    
     >+>   | 
    
     Partial injections  | 
 
    
      
  | 
    
     >->   | 
    
     Total injections   | 
 
    
      
  | 
    
     +->>   | 
    
     Partial surjections  | 
 
    
      
  | 
    
     –>>   | 
    
     Total surjections   | 
 
    
      
  | 
    
     >->>   | 
    
     Bijections   | 
 
    
    - Description
 
    A partial function from   to   is a relation that maps an element of   to at most one element of  . A function is total if its domain contains all elements of  , i.e. it maps every element of   to an element of  .  A function is injective (is an injection) if two distinct elements of   are always mapped to distinct elements of  . It is also equivalent to say that the inverse of an injective function is a also a function.  A function is surjective (is a surjection) if for every element of   there exists an element in   that is mapped to it.  A function is bijective (is a bijection) if it is both injective and surjective.   
    - Definition
 
     
  
  
  
  
  
  
 
  
    - Types
 
     ,   for each operator   of  ,  ,  ,  ,  ,  ,  :
   
  
    - WD
 
    For each operator   of  ,  ,  ,  ,  ,  ,  :
     
     
 3.3.5.9 Function application
    
    
         | 
    
     (…)   | 
    
     Function application   | 
 
    
    - Description
 
    The function application   yields the value for   of the function  . It is only defined if   is in the domain of   and if   is actually a function.   
    - Definition
 
      
  
    - Types
 
      with   and   
  
    - WD
 
      with   being the type of  . 
  
   3.3.5.10 Lambda
    
    
         | 
    
     %   | 
    
     Lambda   | 
 
    
    - Description
 
      is a function that maps an “input”   to a result   such that   holds. 
   is a pattern of identifiers, parentheses and   which follows the following rules: 
  In the simplest case,   is just an identifier.   
    - Definition
 
      
  
    - Types
 
      with  ,   being a predicate and  . 
  
    - WD
 
      
  
    - Example
 
    A function   that returns the double value of a natural number:
    The dot product of two 2-dimensional vectors can be defined by:
     
    
 
 
 |