public static void runGoesUnknownDemons(Proposition proposition) {
    { Keyword testValue000 = proposition.kind;

      if (testValue000 == Logic.KWD_ISA) {
        { Stella_Object argument = (proposition.arguments.theArray)[0];

          if (Surrogate.subtypeOfP(Stella_Object.safePrimaryType(argument), Logic.SGT_LOGIC_SKOLEM)) {
            { Skolem argument000 = ((Skolem)(argument));

              { Surrogate skolemtype = argument000.skolemType;

                if ((skolemtype == ((Surrogate)(proposition.operator))) &&
                    (!(skolemtype == Logic.SGT_STELLA_THING))) {
                  {
                    System.out.println("Can't retract skolem type of `" + argument000 + "' equaling `" + skolemtype.symbolName + "'.");
                    System.out.println();
                  }
;
                }
              }
            }
          }
          else {
          }
        }
        Proposition.runTruthChangeDemon(proposition, Logic.SGT_PL_KERNEL_KB_GOES_UNKNOWN_DEMON);
      }
      else if ((testValue000 == Logic.KWD_PREDICATE) ||
          (testValue000 == Logic.KWD_FUNCTION)) {
        Proposition.runTruthChangeDemon(proposition, Logic.SGT_PL_KERNEL_KB_GOES_UNKNOWN_DEMON);
      }
      else if (testValue000 == Logic.KWD_IMPLIES) {
        Description.dropTaxonomyImpliesSubsumesLink(((Description)((proposition.arguments.theArray)[0])), ((Description)((proposition.arguments.theArray)[1])));
        Proposition.reviseEquivalences(proposition, false);
        { Proposition p = ((Proposition)(KeyValueList.dynamicSlotValue(proposition.dynamicSlots, Logic.SYM_LOGIC_MASTER_PROPOSITION, null)));

          if ((p != null) &&
              Proposition.trueP(p)) {
            Proposition.deassignTruthValue(p, Logic.KWD_RETRACT_TRUE);
          }
        }
      }
      else if (testValue000 == Logic.KWD_FORALL) {
        { Proposition p = null;
          Cons iter000 = proposition.satellitePropositions().theConsList;

          for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
            p = ((Proposition)(iter000.value));
            Proposition.deassignTruthValue(p, Logic.KWD_RETRACT_TRUE);
          }
        }
      }
      else {
      }
    }
    return;
  }