public static Proposition findEquatingProposition(Stella_Object directobject, LogicObject indirectobject) {
    { Stella_Object indirectobjectvalue = Logic.valueOf(indirectobject);
      Stella_Object backlinkedindirectobject = indirectobjectvalue;

      if (!Stella_Object.isaP(backlinkedindirectobject, Logic.SGT_LOGIC_LOGIC_OBJECT)) {
        backlinkedindirectobject = indirectobject;
      }
      { Proposition value000 = null;

        { Proposition prop = null;
          Iterator iter000 = ((Iterator)((Logic.descriptionModeP() ? Logic.unfilteredDependentPropositions(backlinkedindirectobject, Logic.SGT_PL_KERNEL_KB_EQUIVALENT).allocateIterator() : Logic.allTrueDependentPropositions(backlinkedindirectobject, Logic.SGT_PL_KERNEL_KB_EQUIVALENT, false))));

          loop000 : while (iter000.nextP()) {
            prop = ((Proposition)(iter000.value));
            if ((prop.operator == Logic.SGT_PL_KERNEL_KB_EQUIVALENT) &&
                ((Stella_Object.eqlP((prop.arguments.theArray)[0], directobject) &&
                Stella_Object.eqlP(Logic.valueOf((prop.arguments.theArray)[1]), indirectobjectvalue)) ||
                 (Stella_Object.eqlP((prop.arguments.theArray)[1], directobject) &&
                  Stella_Object.eqlP(Logic.valueOf((prop.arguments.theArray)[0]), indirectobjectvalue)))) {
              value000 = prop;
              break loop000;
            }
          }
        }
        { Proposition value001 = value000;

          return (value001);
        }
      }
    }
  }