<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def main_target_requirements(self, specification, project):
 """Returns the requirement to use when declaring a main target, which are obtained by - translating all specified property paths, and - refining project requirements with the one specified for the target 'specification' are the properties xplicitly specified for a main target 'project' is the project where the main taret is to be declared."""

        assert is_iterable_typed(specification, basestring)
        assert isinstance(project, ProjectTarget)
        # create a copy since the list is being modified
        specification = list(specification)
        specification.extend(toolset.requirements())

        requirements = property_set.refine_from_user_input(
            project.get("requirements"), specification,
            project.project_module(), project.get("location"))

        return requirements