public static Stella_Object helpMemoizeAccessBinaryValue(Stella_Object self, Surrogate relation) {
    { Object old$ReversepolarityP$000 = Logic.$REVERSEPOLARITYp$.get();
      Object old$Context$000 = Stella.$CONTEXT$.get();

      try {
        Native.setBooleanSpecial(Logic.$REVERSEPOLARITYp$, false);
        Native.setSpecial(Stella.$CONTEXT$, Logic.getPropertyTestContext());
        { Stella_Object result = null;
          Iterator iterator = Logic.allTrueDependentPropositions(self, relation, false);
          Proposition proposition = null;

          while (iterator.nextP()) {
            proposition = ((Proposition)(iterator.value));
            if (Stella_Object.eqlP((proposition.arguments.theArray)[0], self)) {
              result = Logic.valueOf((proposition.arguments.theArray)[1]);
              return (result);
            }
          }
          return (null);
        }

      } finally {
        Stella.$CONTEXT$.set(old$Context$000);
        Logic.$REVERSEPOLARITYp$.set(old$ReversepolarityP$000);
      }
    }
  }