public static void runUpdateEquivalencePropositionDemon(Proposition proposition, Keyword updatemode) {
    { Stella_Object term1 = (proposition.arguments.theArray)[0];
      Stella_Object term2 = (proposition.arguments.theArray)[1];
      NamedDescription description = (Logic.functionOutputSkolemP(term1) ? Logic.getDescription(((Surrogate)(((Skolem)(term1)).definingProposition.operator))) : ((Logic.functionOutputSkolemP(term2) ? Logic.getDescription(((Surrogate)(((Skolem)(term2)).definingProposition.operator))) : ((NamedDescription)(null)))));
      Stella_Object demoncomputation = ((description != null) ? Logic.accessBinaryValue(description, Logic.SGT_PL_KERNEL_KB_UPDATE_PROPOSITION_DEMON) : ((Stella_Object)(null)));

      if (demoncomputation != null) {
        { java.lang.reflect.Method functioncode = ComputedProcedure.functionCodeFromProcedure(((ComputedProcedure)(demoncomputation)));

          if (functioncode != null) {
            edu.isi.stella.javalib.Native.funcall(functioncode, null, new java.lang.Object [] {proposition, updatemode});
          }
        }
      }
    }
  }