let nb_sub_hom1_f e s =
  
  (** loop1: on n'est pas dans une suite de 'e' *)

  let rec loop1 s =
    match s with
        [] -> 0
      | e'::s' -> 
          if (e' = e) then (loop2 s)
          else (loop1 s')
  
  (** loop2 on est dans une suite de 'e' *)

  and loop2 s =
    match s with
        [] -> 1
      | [e'] -> 1
      | e'::s' ->
          if (e' = e) then (loop2 s')
          else 1 + (loop1 s)
  in
    (loop1 s)