* @return LogicObject
   */
  public static LogicObject callDefdb(Cons arguments) {
    { Cons definition = Cons.cons(RDBMS.SYM_RDBMS_DEFDB, arguments.concatenate(Stella.NIL, Stella.NIL));
      Symbol dbname = null;
      Cons dbaxioms = Stella.NIL;
      Cons relationoptions = Stella.NIL;

      { Object old$Termsourcebeingparsed$000 = Logic.$TERMSOURCEBEINGPARSED$.get();

        try {
          Native.setSpecial(Logic.$TERMSOURCEBEINGPARSED$, Native.stringify(definition));
          arguments = Logic.normalizeDefobjectArguments(arguments);
          dbname = ((Symbol)(arguments.value));
          { Object [] caller_MV_returnarray = new Object[1];

            dbaxioms = RDBMS.extractRdbmsOptions(dbname, arguments.rest, caller_MV_returnarray);
            relationoptions = ((Cons)(caller_MV_returnarray[0]));
          }
          dbaxioms = Cons.cons(Cons.list$(Cons.cons(RDBMS.SYM_RDBMS_DATABASE, Cons.cons(dbname, Cons.cons(Stella.NIL, Stella.NIL)))), dbaxioms);
          arguments.rest = relationoptions.concatenate(Cons.list$(Cons.cons(RDBMS.KWD_AXIOMS, Cons.cons(dbaxioms, Cons.cons(Stella.NIL, Stella.NIL)))), Stella.NIL);
          return (Logic.callDefobject(arguments));

        } finally {
          Logic.$TERMSOURCEBEINGPARSED$.set(old$Termsourcebeingparsed$000);
        }
      }
    }
  }