from typing import Dict


def first_subset_second(first: Dict, second: Dict) -> bool:
    """
    Return true if first is a subset of second, false otherwise.

    :param first: first dict
    :param second: second dict
    :return: true if all elements in first are in second,
             and are mapped to same value, else false
    A subset S is a dictionary D such that all key-value pairs in S are in D.

    >>> subset = {"a": 1, "b": 5}
    >>> superset = {"a": 1, "b": 5, "c": 10}
    >>> first_subset_second(subset, superset)
    True
    >>> not_subsets = [{"a": 1, "b": 10}, {"a": 1, "d": 11}]
    >>> any(first_subset_second(s, superset) for s in not_subsets)
    False
    >>> first_subset_second({}, superset)
    True
    """
    return all(k in second and first[k] == second[k] for k in first)