let get_domain_elements (domain_size: int) : term list =

  let rec get_domain_elements (current_domain_size: int) : term list =
    if current_domain_size > domain_size then
      []
    else
      (get_domain_element current_domain_size)
      ::
      (get_domain_elements (current_domain_size + 1))
  in
    if domain_size <= 0 then
      failwith "Finite_domain.get_domain_elements"
    else
      get_domain_elements 1