Accessible elements with respect to relations
Content created by Daniel Gratzer, Egbert Rijke, Elisabeth Stenholm and Fredrik Bakke.
Created on 2023-11-27.
Last modified on 2024-04-11.
module order-theory.accessible-elements-relations where
Imports
open import foundation.action-on-identifications-functions open import foundation.binary-relations open import foundation.dependent-pair-types open import foundation.function-extensionality open import foundation.universe-levels open import foundation-core.negation open import foundation-core.propositions
Idea
Given a type X
with a binary relation
_<_ : X → X → Type
we say that x : X
is accessible if y
is accessible
for all y < x
. Note that the predicate of being an accessible element is a
recursive condition. The accessibility predicate is therefore implemented as an
inductive type with one constructor:
access : ((y : X) → y < x → is-accessible y) → is-accessible x
Definitions
The predicate of being an accessible element with respect to a relation
module _ {l1 l2} {X : UU l1} (_<_ : Relation l2 X) where data is-accessible-element-Relation (x : X) : UU (l1 ⊔ l2) where access : ({y : X} → y < x → is-accessible-element-Relation y) → is-accessible-element-Relation x
Accessible elements with respect to relations
module _ {l1 l2 : Level} {X : UU l1} (_<_ : Relation l2 X) where accessible-element-Relation : UU (l1 ⊔ l2) accessible-element-Relation = Σ X (is-accessible-element-Relation _<_)
Properties
Any element in relation to an accessible element is accessible
module _ {l1 l2 : Level} {X : UU l1} (_<_ : Relation l2 X) where is-accessible-element-is-related-to-accessible-element-Relation : {x : X} → is-accessible-element-Relation _<_ x → {y : X} → y < x → is-accessible-element-Relation _<_ y is-accessible-element-is-related-to-accessible-element-Relation (access f) = f
An induction principle for accessible elements
module _ {l1 l2 l3 : Level} {X : UU l1} (_<_ : Relation l2 X) (P : X → UU l3) where ind-accessible-element-Relation : ( {x : X} → is-accessible-element-Relation _<_ x → ({y : X} → y < x → P y) → P x) → {x : X} → is-accessible-element-Relation _<_ x → P x ind-accessible-element-Relation IH (access f) = IH (access f) (λ H → ind-accessible-element-Relation IH (f H))
Accessibility is a property
Proof: Consider an element x : X
of a type X
equipped with a binary
relation _<_
. We prove by double induction that any two elements of
is-accessible-element-Relation _<_ x
are equal. It therefore suffices to prove
that access f = access f'
for any two elements
f f' : {y : X} → y < x → is-accessible-element-Relation _<_ y
The induction hypotheses asserts that any two elements of type
is-accessible-element-Relation _<_ y
are equal for any y < x
. The induction
hypothesis therefore implies that any two elements in the type
{y : X} → y < x → is-accessible-element-Relation _<_ y
are equal. Therefore it follows that f = f'
, and we conclude that
access f = access f'
.
module _ {l1 l2} {X : UU l1} (_<_ : Relation l2 X) where all-elements-equal-is-accessible-element-Relation : (x : X) → all-elements-equal (is-accessible-element-Relation _<_ x) all-elements-equal-is-accessible-element-Relation x (access f) (access f') = ap ( access) ( eq-htpy-implicit ( λ y → eq-htpy ( λ H → all-elements-equal-is-accessible-element-Relation y ( f H) ( f' H)))) is-prop-is-accessible-element-Relation : (x : X) → is-prop (is-accessible-element-Relation _<_ x) is-prop-is-accessible-element-Relation x = is-prop-all-elements-equal ( all-elements-equal-is-accessible-element-Relation x) is-accessible-element-prop-Relation : (x : X) → Prop (l1 ⊔ l2) pr1 (is-accessible-element-prop-Relation x) = is-accessible-element-Relation _<_ x pr2 (is-accessible-element-prop-Relation x) = is-prop-is-accessible-element-Relation x
If x
is an <
-accessible element, then <
is antisymmetric at x
module _ {l1 l2 : Level} {X : UU l1} (_<_ : Relation l2 X) where is-asymmetric-is-accessible-element-Relation : {x : X} → is-accessible-element-Relation _<_ x → {y : X} → x < y → ¬ (y < x) is-asymmetric-is-accessible-element-Relation (access f) H K = is-asymmetric-is-accessible-element-Relation (f K) K H
If x
is an <
-accessible element, then <
is irreflexive at x
module _ {l1 l2 : Level} {X : UU l1} (_<_ : Relation l2 X) where is-irreflexive-is-accessible-element-Relation : {x : X} → is-accessible-element-Relation _<_ x → ¬ (x < x) is-irreflexive-is-accessible-element-Relation a H = is-asymmetric-is-accessible-element-Relation _<_ a H H
Recent changes
- 2024-04-11. Fredrik Bakke. Strict symmetrizations of binary relations (#1025).
- 2023-11-27. Elisabeth Stenholm, Daniel Gratzer and Egbert Rijke. Additions during work on material set theory in HoTT (#910).