let rec term_type (s : t_subst) = function 
  | Atm n -> var_type n
  | Var n -> 
      (match valeur n s with 
         | Var n -> var_type n 
         | t -> term_type s t)
  | PInv Atm n -> 
      (match var_type n with 
         | 1 -> 2
         | 2 -> 1
         | _ -> 0)
  | PInv Var n -> 
      (match term_type s (valeur n s) with 
         | 1 -> 2
         | 2 -> 1
         | _ -> 0)
  | _ -> 0