public static void unitsEvaluator(Proposition self) {
    { Stella_Object magnitude = Logic.valueOf((self.arguments.theArray)[0]);
      Stella_Object units = Logic.valueOf((self.arguments.theArray)[1]);
      Stella_Object dimNumber = Logic.valueOf((self.arguments.theArray)[2]);
      DimNumberLogicWrapper value1 = Units.helpGetUnitValue(magnitude, units);

      if (value1 != null) {
        { Surrogate testValue000 = Stella_Object.safePrimaryType(dimNumber);

          if (Surrogate.subtypeOfP(testValue000, Units.SGT_LOGIC_SKOLEM)) {
            { Skolem dimNumber000 = ((Skolem)(dimNumber));

              Skolem.bindSkolemToValue(dimNumber000, value1, false);
            }
          }
          else if (Surrogate.subtypeOfP(testValue000, Units.SGT_UNIT_SUPPORT_DIM_NUMBER_LOGIC_WRAPPER)) {
            { DimNumberLogicWrapper dimNumber000 = ((DimNumberLogicWrapper)(dimNumber));

              if (!(Stella_Object.eqlP(((DimNumber)(value1.wrapperValue)), ((DimNumber)(dimNumber000.wrapperValue))))) {
                Proposition.signalUnificationClash(self, value1, dimNumber000);
              }
            }
          }
          else if (Surrogate.subtypeOfP(testValue000, Units.SGT_TIMEPOINT_SUPPORT_DATE_TIME_LOGIC_WRAPPER)) {
            { edu.isi.powerloom.extensions.timepoint.DateTimeLogicWrapper dimNumber000 = ((edu.isi.powerloom.extensions.timepoint.DateTimeLogicWrapper)(dimNumber));

              { DimNumberLogicWrapper theDim = Units.helpGetDimNumber(dimNumber000);

                if (!((theDim != null) &&
                    Stella_Object.eqlP(((DimNumber)(value1.wrapperValue)), ((DimNumber)(theDim.wrapperValue))))) {
                  Proposition.signalUnificationClash(self, value1, dimNumber000);
                }
              }
            }
          }
          else {
            Proposition.signalUnificationClash(self, value1, dimNumber);
          }
        }
      }
    }
  }