public static void assertKeywordAxiom(Stella_Object self, Symbol selfname, Keyword key, Stella_Object value) {
    { Stella_Object axiom = null;
      Cons iter000 = Logic.combineAxiomLists(Stella.NIL, Logic.helpDefineKeywordAxioms(selfname, key, value));

      for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
        axiom = iter000.value;
        { Cons props = Logic.updateProposition(axiom, Logic.KWD_ASSERT_TRUE);

          if (props != null) {
            { Proposition p = null;
              Cons iter001 = props;

              for (;!(iter001 == Stella.NIL); iter001 = iter001.rest) {
                p = ((Proposition)(iter001.value));
                { Surrogate testValue000 = Stella_Object.safePrimaryType(self);

                  if (Surrogate.subtypeOfP(testValue000, Logic.SGT_LOGIC_LOGIC_OBJECT)) {
                    { LogicObject self000 = ((LogicObject)(self));

                      Logic.linkOriginatedProposition(self000, p);
                    }
                  }
                  else if (Surrogate.subtypeOfP(testValue000, Logic.SGT_LOGIC_PROPOSITION)) {
                    { Proposition self000 = ((Proposition)(self));

                      Logic.linkOriginatedProposition(self000, p);
                    }
                  }
                  else {
                  }
                }
              }
            }
          }
        }
      }
    }
  }