public static boolean rewrapIthArgumentP(Stella_Object argument, Proposition proposition, int i) {
    { Surrogate testValue000 = Stella_Object.safePrimaryType(argument);

      if (Surrogate.subtypeOfP(testValue000, Logic.SGT_LOGIC_LOGIC_OBJECT)) {
        { LogicObject argument000 = ((LogicObject)(argument));

          return (false);
        }
      }
      else if (Surrogate.subtypeOfP(testValue000, Logic.SGT_LOGIC_PROPOSITION)) {
        { Proposition argument000 = ((Proposition)(argument));

          return (false);
        }
      }
      else if (Surrogate.subtypeOfSurrogateP(testValue000)) {
        { Surrogate argument000 = ((Surrogate)(argument));

          return (false);
        }
      }
      else if (Surrogate.subtypeOfP(testValue000, Logic.SGT_STELLA_THING)) {
        { Thing argument000 = ((Thing)(argument));

          return (false);
        }
      }
      else if (Surrogate.subtypeOfKeywordP(testValue000)) {
        { Keyword argument000 = ((Keyword)(argument));

          return (false);
        }
      }
      else {
        return ((!Stella_Object.isaP(argument, Logic.SGT_LOGIC_BACKLINKS_MIXIN)) &&
            (Logic.$BACKLINK_ALL_PROPOSITION_ARGUMENTSp$ ||
             (Stella.getQuotedTree("((:PREDICATE :FUNCTION) \"/LOGIC\")", "/LOGIC").memberP(proposition.kind) &&
              NamedDescription.indexIthDomainP(Logic.getDescription(((Surrogate)(proposition.operator))), i))));
      }
    }
  }