This is an archived version pinned as of the submission of my master's thesis. An up-to-date version may be found online.
Reflexive relations
module foundation.reflexive-relations where
Imports
open import foundation.binary-relations open import foundation.dependent-pair-types open import foundation.universe-levels open import foundation-core.identity-types
Idea
A reflexive relation¶ on a type A
is a
type-valued binary relation R : A → A → 𝒰
equipped with a proof r : (x : A) → R x x
.
Definitions
Reflexive relations
Reflexive-Relation : {l1 : Level} (l2 : Level) → UU l1 → UU (l1 ⊔ lsuc l2) Reflexive-Relation l2 A = Σ (Relation l2 A) (λ R → is-reflexive R) module _ {l1 l2 : Level} {A : UU l1} (R : Reflexive-Relation l2 A) where rel-Reflexive-Relation : Relation l2 A rel-Reflexive-Relation = pr1 R is-reflexive-Reflexive-Relation : is-reflexive rel-Reflexive-Relation is-reflexive-Reflexive-Relation = pr2 R
The identity reflexive relation on a type
Id-Reflexive-Relation : {l : Level} (A : UU l) → Reflexive-Relation l A Id-Reflexive-Relation A = (Id , (λ x → refl))