Large apartness relations
Content created by Fredrik Bakke and Louis Wasserman.
Created on 2025-02-12.
Last modified on 2025-02-12.
module foundation.large-apartness-relations where
Imports
open import foundation.cartesian-product-types open import foundation.disjunction open import foundation.identity-types open import foundation.large-binary-relations open import foundation.negated-equality open import foundation.negation open import foundation.propositions open import foundation.universe-levels
Idea
A
large apartness relation¶
on a family of types indexed by universe levels A
is a
large binary relation R
which is
- Antireflexive: For any
a : A
we have¬ (R a a)
- Symmetric: For any
a b : A
we haveR a b → R b a
- Cotransitive: For any
a b c : A
we haveR a b → R a c ∨ R b c
.
This is analogous to the notion of small apartness relations.
Definitions
record Large-Apartness-Relation {α : Level → Level} (β : Level → Level → Level) (A : (l : Level) → UU (α l)) : UUω where field apart-prop-Large-Apartness-Relation : Large-Relation-Prop β A antirefl-Large-Apartness-Relation : is-antireflexive-Large-Relation-Prop A apart-prop-Large-Apartness-Relation symmetric-Large-Apartness-Relation : is-symmetric-Large-Relation-Prop A apart-prop-Large-Apartness-Relation cotransitive-Large-Apartness-Relation : is-cotransitive-Large-Relation-Prop A apart-prop-Large-Apartness-Relation apart-Large-Apartness-Relation : Large-Relation β A apart-Large-Apartness-Relation a b = type-Prop (apart-prop-Large-Apartness-Relation a b) consistent-Large-Apartness-Relation : {l : Level} → (a b : A l) → a = b → ¬ (apart-Large-Apartness-Relation a b) consistent-Large-Apartness-Relation a .a refl = antirefl-Large-Apartness-Relation a open Large-Apartness-Relation public
Type families equipped with large apartness relations
record Type-Family-With-Large-Apartness (α : Level → Level) (β : Level → Level → Level) : UUω where field type-family-Type-Family-With-Large-Apartness : (l : Level) → UU (α l) large-apartness-relation-Type-Family-With-Large-Apartness : Large-Apartness-Relation β type-family-Type-Family-With-Large-Apartness large-rel-Type-Family-With-Large-Apartness : Large-Relation-Prop β type-family-Type-Family-With-Large-Apartness large-rel-Type-Family-With-Large-Apartness = Large-Apartness-Relation.apart-prop-Large-Apartness-Relation large-apartness-relation-Type-Family-With-Large-Apartness open Type-Family-With-Large-Apartness public
Properties
If two elements are apart, then they are nonequal
module _ {α : Level → Level} {β : Level → Level → Level} {A : (l : Level) → UU (α l)} (R : Large-Apartness-Relation β A) where nonequal-apart-Large-Apartness-Relation : {l : Level} {a b : A l} → apart-Large-Apartness-Relation R a b → a ≠ b nonequal-apart-Large-Apartness-Relation {a = a} p refl = antirefl-Large-Apartness-Relation R a p
External links
- Apartness relation at Mathswitch
Recent changes
- 2025-02-12. Louis Wasserman and Fredrik Bakke. Apartness for real numbers (#1296).