let request_literal ?(insert_db:bool = true) (sign: bool) (term: term) : literal =
  let new_literal = {
    sign = sign;
    atom = term;
    literal_in_db = insert_db;
  }
  in
    try
      LiteralTableBase.find global.literals new_literal
    with
      | Not_found ->
          if insert_db then begin
            LiteralTableBase.add global.literals new_literal;
          end;
           new_literal