public static void testDomainTheory(Symbol relationName, Symbol className) {
    { Surrogate renamed_Class = Logic.getDescription(className).surrogateValueInverse;
      Proposition prop = null;
      Cons consQuery = Stella.NIL;
      QueryIterator query = null;
      List instances = Logic.allClassInstances(renamed_Class).listify();
      boolean correctP = true;
      int numCorrect = 0;

      { Stella_Object instance = null;
        Cons iter000 = instances.theConsList;

        for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
          instance = iter000.value;
          consQuery = Cons.consList(Cons.cons(relationName, Cons.cons(Logic.objectName(instance), Stella.NIL)));
          prop = ((Proposition)(Logic.conceiveFormula(((Cons)(Stella_Object.copyConsTree(consQuery))))));
          correctP = true;
          if (Proposition.trueP(prop)) {
            System.out.println(consQuery + " is true");
            Proposition.helpUpdateTopLevelProposition(prop, Logic.KWD_RETRACT_TRUE);
            query = Logic.makeQuery(Stella.NIL, ((Cons)(Stella_Object.copyConsTree(Cons.list$(Cons.cons(Logic.SYM_STELLA_NOT, Cons.cons(consQuery, Cons.cons(Stella.NIL, Stella.NIL))))))), Stella.NIL, Stella.NIL);
            if (TruthValue.trueTruthValueP(Logic.callAsk(query))) {
              correctP = false;
              System.out.println("  **Theory disproves " + consQuery + " true");
            }
            query = Logic.makeQuery(Stella.NIL, ((Cons)(Stella_Object.copyConsTree(consQuery))), Stella.NIL, Stella.NIL);
            if (TruthValue.unknownTruthValueP(Logic.callAsk(query))) {
              correctP = false;
              System.out.println("  **Theory cannot prove " + consQuery);
            }
            Proposition.helpUpdateTopLevelProposition(prop, Logic.KWD_ASSERT_TRUE);
          }
          if (Proposition.falseP(prop)) {
            System.out.println(consQuery + " is false");
            Proposition.helpUpdateTopLevelProposition(prop, Logic.KWD_RETRACT_FALSE);
            query = Logic.makeQuery(Stella.NIL, ((Cons)(Stella_Object.copyConsTree(consQuery))), Stella.NIL, Stella.NIL);
            if (TruthValue.trueTruthValueP(Logic.callAsk(query))) {
              correctP = false;
              System.out.println("  **Theory proves " + consQuery + "true");
            }
            query = Logic.makeQuery(Stella.NIL, ((Cons)(Stella_Object.copyConsTree(Cons.list$(Cons.cons(Logic.SYM_STELLA_NOT, Cons.cons(consQuery, Cons.cons(Stella.NIL, Stella.NIL))))))), Stella.NIL, Stella.NIL);
            if (TruthValue.unknownTruthValueP(Logic.callAsk(query))) {
              correctP = false;
              System.out.println("  **Theory cannot disprove " + consQuery);
            }
            Proposition.helpUpdateTopLevelProposition(prop, Logic.KWD_ASSERT_FALSE);
          }
          if (correctP) {
            numCorrect = numCorrect + 1;
          }
        }
      }
      {
        System.out.println();
        System.out.println("Theory got " + numCorrect + " out of " + instances.length());
      }
;
    }
  }