public static Cons inheritDescriptionPropositions(Vector arguments, Description description, Object [] MV_returnarray) {
    { KeyValueMap mapping = KeyValueMap.newKeyValueMap();

      { PatternVariable v = null;
        Vector vector000 = description.ioVariables;
        int index000 = 0;
        int length000 = vector000.length();
        Stella_Object arg = null;
        Vector vector001 = arguments;
        int index001 = 0;
        int length001 = vector001.length();

        for (;(index000 < length000) &&
                  (index001 < length001); index000 = index000 + 1, index001 = index001 + 1) {
          v = ((PatternVariable)((vector000.theArray)[index000]));
          arg = (vector001.theArray)[index001];
          if (!(Logic.mapAndEnqueueVariableP(v, arg, mapping))) {
            { Cons _return_temp = Stella.NIL;

              MV_returnarray[0] = null;
              return (_return_temp);
            }
          }
        }
      }
      { Proposition p = null;
        Cons iter000 = Description.getStructuralFunctionEvaluationOrder(description).theConsList;

        for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
          p = ((Proposition)(iter000.value));
          if (!(Proposition.mapFunctionalValueP(p, mapping))) {
            { Cons _return_temp = Stella.NIL;

              MV_returnarray[0] = null;
              return (_return_temp);
            }
          }
        }
      }
      { Cons propositions = Proposition.inheritAsTopLevelProposition(description.proposition, mapping);

        { ConsIterator it = propositions.allocateIterator();

          while (it.nextP()) {
            it.valueSetter(Proposition.recursivelyFastenDownPropositions(((Proposition)(it.value)), false));
          }
        }
        { Cons _return_temp = propositions;

          MV_returnarray[0] = mapping;
          return (_return_temp);
        }
      }
    }
  }