public static Proposition conjoinTwoPropositions(Proposition prop1, Proposition prop2) {
    if (prop1 == null) {
      return (prop2);
    }
    else if (prop2 == null) {
      return (prop1);
    }
    else if (Proposition.duplicateAndOrArgumentsP(prop1, prop2)) {
      return (prop1);
    }
    else {
      { Proposition andproposition = Logic.createProposition(Logic.SYM_STELLA_AND, 2);

        (andproposition.arguments.theArray)[0] = prop1;
        (andproposition.arguments.theArray)[1] = prop2;
        if (((BooleanWrapper)(KeyValueList.dynamicSlotValue(prop1.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTIVEp, Stella.FALSE_WRAPPER))).wrapperValue) {
          KeyValueList.setDynamicSlotValue(andproposition.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTIVEp, Stella.TRUE_WRAPPER, Stella.FALSE_WRAPPER);
        }
        return (andproposition);
      }
    }
  }