# The homotopy preorder of types ```agda module foundation.homotopy-preorder-of-types where ``` <details><summary>Imports</summary> ```agda open import foundation.dependent-pair-types open import foundation.empty-types open import foundation.identity-types open import foundation.mere-functions open import foundation.propositional-truncations open import foundation.propositions open import foundation.sets open import foundation.universe-levels open import order-theory.large-preorders open import order-theory.posets open import order-theory.preorders ``` </details> ## Idea The {{#concept "homotopy preorder of types" Agda=Homotopy-Type-Large-Preorder}} is the [(large) preorder](order-theory.large-preorders.md) whose objects are types, and whose ordering relation is defined by [mere functions](foundation.mere-functions.md), i.e. by the [propositional truncation](foundation.propositional-truncations.md) of the function types: ```text A ≤ B := ║(A → B)║₋₁. ``` ## Definitions ### The large homotopy preorder of types ```agda Homotopy-Type-Large-Preorder : Large-Preorder lsuc (_⊔_) Homotopy-Type-Large-Preorder = λ where .type-Large-Preorder l → UU l .leq-prop-Large-Preorder → prop-mere-function .refl-leq-Large-Preorder → refl-mere-function .transitive-leq-Large-Preorder X Y Z → transitive-mere-function ``` ### The small homotopy preorder of types ```agda Homotopy-Type-Preorder : (l : Level) → Preorder (lsuc l) l Homotopy-Type-Preorder = preorder-Large-Preorder Homotopy-Type-Large-Preorder ```