In category theory, a **faithful functor** is a functor that is injective on hom-sets, and a **full functor** is surjective on hom-sets. A functor that has both properties is called a **fully faithful functor**.

Explicitly, let *C* and *D* be (locally small) categories and let *F* : *C* → *D* be a functor from *C* to *D*. The functor *F* induces a function

for every pair of objects *X* and *Y* in *C*. The functor *F* is said to be

**faithful**if*F*_{X,Y}is injective^{[1]}^{[2]}**full**if*F*_{X,Y}is surjective^{[2]}^{[3]}**fully faithful**(=**full and faithful**) if*F*_{X,Y}is bijective

for each *X* and *Y* in *C*.

A faithful functor need not be injective on objects or morphisms. That is, two objects *X* and *X*′ may map to the same object in *D* (which is why the range of a full and faithful functor is not necessarily isomorphic to *C*), and two morphisms *f* : *X* → *Y* and *f*′ : *X*′ → *Y*′ (with different domains/codomains) may map to the same morphism in *D*. Likewise, a full functor need not be surjective on objects or morphisms. There may be objects in *D* not of the form *FX* for some *X* in *C*. Morphisms between such objects clearly cannot come from morphisms in *C*.

A full and faithful functor is necessarily injective on objects up to isomorphism. That is, if *F* : *C* → *D* is a full and faithful functor and then .

- The forgetful functor
*U*:**Grp**→**Set**maps groups to their underlying set, "forgetting" the group operation.*U*is faithful because two group homomorphisms with the same domains and codomains are equal if they are given by the same functions on the underlying sets. This functor is not full as there are functions between the underlying sets of groups that are not group homomorphisms. A category with a faithful functor to**Set**is (by definition) a concrete category; in general, that forgetful functor is not full. - The inclusion functor
**Ab**→**Grp**is fully faithful, since**Ab**(the category of abelian groups) is by definition the full subcategory of**Grp**induced by the abelian groups.

The notion of a functor being 'full' or 'faithful' does not translate to the notion of a (∞, 1)-category. In an (∞, 1)-category, the maps between any two objects are given by a space only up to homotopy. Since the notion of injection and surjection are not homotopy invariant notions (consider an interval embedding into the real numbers vs. an interval mapping to a point), we do not have the notion of a functor being "full" or "faithful." However, we can define a functor of quasi-categories to be *fully faithful* if for every *X* and *Y* in *C,* the map is a weak equivalence.