Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Strict symmetrizations of binary relations #1025

Merged
merged 53 commits into from
Apr 11, 2024
Merged
Show file tree
Hide file tree
Changes from 39 commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
82c2a93
start identity relations
fredrik-bakke Feb 8, 2024
e170937
factor out transitive and reflexive relations
fredrik-bakke Feb 9, 2024
3c7ba00
factor out transitive and reflexive relations
fredrik-bakke Feb 9, 2024
30c9805
strict symmetrization of binary relations
fredrik-bakke Feb 9, 2024
e8c25d9
large wild precategories
fredrik-bakke Feb 9, 2024
d5af089
fix imports
fredrik-bakke Feb 9, 2024
e046324
wild precategory of types
fredrik-bakke Feb 9, 2024
aebdf58
wild 0-pregroupoid relations
fredrik-bakke Feb 10, 2024
b0de120
strict symmetrization wild 0-pregroupoid relations
fredrik-bakke Feb 10, 2024
675d1b2
pre-commit
fredrik-bakke Feb 10, 2024
e98cdb9
fix definitions and add 0-functors
fredrik-bakke Feb 10, 2024
041ca0a
wip
fredrik-bakke Feb 11, 2024
341ef3c
pre-commit
fredrik-bakke Feb 11, 2024
c06a006
better reference formatting
fredrik-bakke Feb 14, 2024
f31af76
large reflexive graphs
fredrik-bakke Feb 15, 2024
36f0ec9
displayed large reflexive graphs
fredrik-bakke Feb 15, 2024
74d1820
"wide" displayed large reflexive graphs
fredrik-bakke Feb 16, 2024
b04bac8
higher directed graphs
fredrik-bakke Feb 16, 2024
283812a
nitpickery
fredrik-bakke Mar 15, 2024
06e3fea
wip
fredrik-bakke Mar 15, 2024
7a9fa7b
clean the board
fredrik-bakke Mar 15, 2024
162fd1e
wild 1-pregroupoidal relations
fredrik-bakke Mar 15, 2024
8be95d1
large wild 0-coherent 1-precategories
fredrik-bakke Mar 15, 2024
318fb77
Maps between large wild 0-coherent 1-precategory
fredrik-bakke Mar 15, 2024
bd240b3
large higher directed graphs
fredrik-bakke Mar 16, 2024
4dbfa37
a typo
fredrik-bakke Mar 19, 2024
2ab16ed
delete wild category theory
fredrik-bakke Mar 22, 2024
21b4d4b
outer 2-horn filler conditions binary relations
fredrik-bakke Mar 22, 2024
1dfd24f
Merge branch 'master' into identity-relations
fredrik-bakke Mar 22, 2024
85812cd
pre-commit
fredrik-bakke Mar 22, 2024
11d0b29
remove graph-theory formalizations
fredrik-bakke Mar 22, 2024
3f5930f
factor out large reflexive relations
fredrik-bakke Mar 22, 2024
f673e23
a dot
fredrik-bakke Mar 22, 2024
63bdaae
factor out large transitive relations
fredrik-bakke Mar 22, 2024
494bca3
a typo
fredrik-bakke Mar 22, 2024
9f7e5e6
undo refl and trans
fredrik-bakke Mar 22, 2024
03beb59
fixes
fredrik-bakke Mar 22, 2024
0514383
fix
fredrik-bakke Mar 22, 2024
254ce92
Merge branch 'master' into identity-relations
fredrik-bakke Mar 23, 2024
d9bc0ee
fix discrete reflexive relations
fredrik-bakke Mar 24, 2024
f001dee
a typo
fredrik-bakke Mar 24, 2024
503995f
restore reflexive and discrete relations
fredrik-bakke Mar 24, 2024
c185de9
comments strict symmetrization
fredrik-bakke Mar 24, 2024
f6f370c
Merge branch 'master' into identity-relations
fredrik-bakke Mar 24, 2024
e633ba7
comment adjunction
fredrik-bakke Mar 24, 2024
513f6eb
fix merge conflict
fredrik-bakke Mar 25, 2024
c17d3d3
Update src/foundation/outer-2-horn-filler-conditions-binary-relations…
fredrik-bakke Mar 25, 2024
5b119a4
split outer 2-horn conditions
fredrik-bakke Mar 25, 2024
b1d97ee
remark on dual strict symmetization
fredrik-bakke Mar 25, 2024
d10d1b7
fix link
fredrik-bakke Mar 25, 2024
f9d098e
Update discrete-graphs.lagda.md
fredrik-bakke Apr 11, 2024
a0be061
Update strict-symmetrization-binary-relations.lagda.md
fredrik-bakke Apr 11, 2024
d83f677
Merge branch 'master' into identity-relations
fredrik-bakke Apr 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions src/category-theory/large-precategories.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ be done with Σ-types, we must use a record type.)
```agda
record
Large-Precategory (α : Level → Level) (β : Level → Level → Level) : UUω where

field
obj-Large-Precategory :
(l : Level) → UU (α l)
Expand All @@ -45,10 +46,10 @@ record
Set (β l1 l2)

hom-Large-Precategory :
{l1 l2 : Level}
(X : obj-Large-Precategory l1)
(Y : obj-Large-Precategory l2)
UU (β l1 l2)
{l1 l2 : Level}
obj-Large-Precategory l1
obj-Large-Precategory l2 →
UU (β l1 l2)
fredrik-bakke marked this conversation as resolved.
Show resolved Hide resolved
hom-Large-Precategory X Y = type-Set (hom-set-Large-Precategory X Y)

is-set-hom-Large-Precategory :
Expand Down
3 changes: 2 additions & 1 deletion src/foundation-core/equivalence-relations.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ is-equivalence-relation :
{l1 l2 : Level} {A : UU l1} (R : Relation-Prop l2 A) → UU (l1 ⊔ l2)
is-equivalence-relation R =
is-reflexive-Relation-Prop R ×
( is-symmetric-Relation-Prop R × is-transitive-Relation-Prop R)
is-symmetric-Relation-Prop R ×
is-transitive-Relation-Prop R

equivalence-relation :
(l : Level) {l1 : Level} (A : UU l1) → UU ((lsuc l) ⊔ l1)
Expand Down
3 changes: 2 additions & 1 deletion src/foundation.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,7 @@ open import foundation.operations-span-diagrams public
open import foundation.operations-spans public
open import foundation.operations-spans-families-of-types public
open import foundation.opposite-spans public
open import foundation.outer-2-horn-filler-conditions-binary-relations public
open import foundation.pairs-of-distinct-elements public
open import foundation.partial-elements public
open import foundation.partial-functions public
Expand Down Expand Up @@ -310,7 +311,6 @@ open import foundation.pullbacks public
open import foundation.pullbacks-subtypes public
open import foundation.raising-universe-levels public
open import foundation.reflecting-maps-equivalence-relations public
open import foundation.reflexive-relations public
open import foundation.regensburg-extension-fundamental-theorem-of-identity-types public
open import foundation.relaxed-sigma-decompositions public
open import foundation.repetitions-of-values public
Expand Down Expand Up @@ -346,6 +346,7 @@ open import foundation.spans-families-of-types public
open import foundation.split-surjective-maps public
open import foundation.standard-apartness-relations public
open import foundation.standard-pullbacks public
open import foundation.strict-symmetrization-binary-relations public
open import foundation.strictly-involutive-identity-types public
open import foundation.strictly-right-unital-concatenation-identifications public
open import foundation.strongly-extensional-maps public
Expand Down
2 changes: 1 addition & 1 deletion src/foundation/binary-relations.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ module _

### The predicate of being a transitive relation valued in propositions

A relation `R` on a type `A` valued in propositions is said to be \*\*transitive
A relation `R` on a type `A` valued in propositions is said to be **transitive**
if its underlying relation is transitive.

```agda
Expand Down
1 change: 0 additions & 1 deletion src/foundation/discrete-reflexive-relations.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ module foundation.discrete-reflexive-relations where
```agda
open import foundation.contractible-types
open import foundation.dependent-pair-types
open import foundation.reflexive-relations
open import foundation.universe-levels

open import foundation-core.identity-types
Expand Down
2 changes: 1 addition & 1 deletion src/foundation/exclusive-disjunction.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ pr1 (symmetric-xor-Prop E) = type-symmetric-xor-Prop E
pr2 (symmetric-xor-Prop E) = is-prop-type-symmetric-xor-Prop E
```

### Second definition of exclusiove disjunction
### Second definition of exclusive disjunction

```agda
module _
Expand Down
118 changes: 57 additions & 61 deletions src/foundation/large-binary-relations.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,89 +19,86 @@ open import foundation-core.propositions

## Idea

A **large binary relation** on a family of types indexed by universe levels `A`
is a family of types `R x y` depending on two variables `x : A l1` and
`y : A l2`. In the special case where each `R x y` is a
[proposition](foundation-core.propositions.md), we say that the relation is
valued in propositions. Thus, we take a general relation to mean a
_proof-relevant_ relation.
A
{{#concept "large binary relation" Disambiguation="valued in types" Agda=Large-Relation}}
on a family of types indexed by universe levels `A` is a family of types `R x y`
depending on two variables `x : A l1` and `y : A l2`. In the special case where
each `R x y` is a [proposition](foundation-core.propositions.md), we say that
the relation is valued in propositions. Thus, we take a general relation to mean
a _proof-relevant_ relation.

## Definition

### Large relations valued in types

```agda
Large-Relation :
(α : Level → Level) (β : Level → Level → Level)
(A : (l : Level) → UU (α l)) → UUω
Large-Relation α β A = {l1 l2 : Level} → A l1 → A l2 → UU (β l1 l2)
module _
{α : Level → Level} (β : Level → Level → Level)
(A : (l : Level) → UU (α l))
where

total-space-Large-Relation :
{α : Level → Level} {β : Level → Level → Level}
(A : (l : Level) → UU (α l)) → Large-Relation α β A → UUω
total-space-Large-Relation A R =
(l1 l2 : Level) → Σ (A l1 × A l2) (λ (a , a') → R a a')
Large-Relation : UUω
Large-Relation = {l1 l2 : Level} → A l1 → A l2 → UU (β l1 l2)

total-space-Large-Relation : Large-Relation → UUω
total-space-Large-Relation R =
(l1 l2 : Level) → Σ (A l1 × A l2) (λ (a , a') → R a a')
```

### Large relations valued in propositions

```agda
is-prop-Large-Relation :
{α : Level → Level} {β : Level → Level → Level}
(A : (l : Level) → UU (α l)) → Large-Relation α β A → UUω
(A : (l : Level) → UU (α l)) → Large-Relation β A → UUω
is-prop-Large-Relation A R =
{l1 l2 : Level} (x : A l1) (y : A l2) → is-prop (R x y)

Large-Relation-Prop :
(α : Level → Level) (β : Level → Level → Level)
{α : Level → Level} (β : Level → Level → Level)
(A : (l : Level) → UU (α l)) →
UUω
Large-Relation-Prop α β A = {l1 l2 : Level} → A l1 → A l2 → Prop (β l1 l2)
Large-Relation-Prop β A = {l1 l2 : Level} → A l1 → A l2 → Prop (β l1 l2)

type-Large-Relation-Prop :
{α : Level → Level} {β : Level → Level → Level}
(A : (l : Level) → UU (α l)) →
Large-Relation-Prop α β A → Large-Relation α β A
type-Large-Relation-Prop A R x y = pr1 (R x y)

is-prop-type-Large-Relation-Prop :
module _
{α : Level → Level} {β : Level → Level → Level}
(A : (l : Level) → UU (α l))
(R : Large-Relation-Prop α β A) →
is-prop-Large-Relation A (type-Large-Relation-Prop A R)
is-prop-type-Large-Relation-Prop A R x y = pr2 (R x y)
(R : Large-Relation-Prop β A)
where

total-space-Large-Relation-Prop :
{α : Level → Level} {β : Level → Level → Level}
(A : (l : Level) → UU (α l))
(R : Large-Relation-Prop α β A) →
UUω
total-space-Large-Relation-Prop A R =
(l1 l2 : Level) →
Σ (A l1 × A l2) (λ (a , a') → type-Large-Relation-Prop A R a a')
large-relation-Large-Relation-Prop : Large-Relation β A
large-relation-Large-Relation-Prop x y = type-Prop (R x y)

is-prop-large-relation-Large-Relation-Prop :
is-prop-Large-Relation A large-relation-Large-Relation-Prop
is-prop-large-relation-Large-Relation-Prop x y = is-prop-type-Prop (R x y)

total-space-Large-Relation-Prop : UUω
total-space-Large-Relation-Prop =
(l1 l2 : Level) →
Σ (A l1 × A l2) (λ (a , a') → large-relation-Large-Relation-Prop a a')
```

## Small relations from large relations

```agda
relation-Large-Relation :
module _
{α : Level → Level} {β : Level → Level → Level}
(A : (l : Level) → UU (α l)) (R : Large-Relation α β A)
(l : Level) → Relation (β l l) (A l)
relation-Large-Relation A R l x y = R x y
(A : (l : Level) → UU (α l))
where

relation-prop-Large-Relation-Prop :
{α : Level → Level} {β : Level → Level → Level}
(A : (l : Level) → UU (α l)) (R : Large-Relation-Prop α β A)
(l : Level) → Relation-Prop (β l l) (A l)
relation-prop-Large-Relation-Prop A R l x y = R x y
relation-Large-Relation :
(R : Large-Relation β A) (l : Level) → Relation (β l l) (A l)
relation-Large-Relation R l x y = R x y

relation-Large-Relation-Prop :
{α : Level → Level} {β : Level → Level → Level}
(A : (l : Level) → UU (α l)) (R : Large-Relation-Prop α β A)
(l : Level) → Relation (β l l) (A l)
relation-Large-Relation-Prop A R =
relation-Large-Relation A (type-Large-Relation-Prop A R)
relation-prop-Large-Relation-Prop :
(R : Large-Relation-Prop β A) (l : Level) → Relation-Prop (β l l) (A l)
relation-prop-Large-Relation-Prop R l x y = R x y

relation-Large-Relation-Prop :
(R : Large-Relation-Prop β A) (l : Level) → Relation (β l l) (A l)
relation-Large-Relation-Prop R =
relation-Large-Relation (large-relation-Large-Relation-Prop A R)
```

## Specifications of properties of binary relations
Expand All @@ -110,12 +107,11 @@ relation-Large-Relation-Prop A R =
module _
{α : Level → Level} {β : Level → Level → Level}
(A : (l : Level) → UU (α l))
(R : Large-Relation α β A)
(R : Large-Relation β A)
where

is-reflexive-Large-Relation : UUω
is-reflexive-Large-Relation =
{l : Level} → is-reflexive (relation-Large-Relation A R l)
is-reflexive-Large-Relation = {l : Level} (x : A l) → R x x

is-symmetric-Large-Relation : UUω
is-symmetric-Large-Relation =
Expand All @@ -132,24 +128,24 @@ module _
module _
{α : Level → Level} {β : Level → Level → Level}
(A : (l : Level) → UU (α l))
(R : Large-Relation-Prop α β A)
(R : Large-Relation-Prop β A)
where

is-reflexive-Large-Relation-Prop : UUω
is-reflexive-Large-Relation-Prop =
is-reflexive-Large-Relation A (type-Large-Relation-Prop A R)
is-reflexive-Large-Relation A (large-relation-Large-Relation-Prop A R)

is-large-symmetric-Large-Relation-Prop : UUω
is-large-symmetric-Large-Relation-Prop =
is-symmetric-Large-Relation A (type-Large-Relation-Prop A R)
is-symmetric-Large-Relation-Prop : UUω
is-symmetric-Large-Relation-Prop =
is-symmetric-Large-Relation A (large-relation-Large-Relation-Prop A R)

is-transitive-Large-Relation-Prop : UUω
is-transitive-Large-Relation-Prop =
is-transitive-Large-Relation A (type-Large-Relation-Prop A R)
is-transitive-Large-Relation A (large-relation-Large-Relation-Prop A R)

is-antisymmetric-Large-Relation-Prop : UUω
is-antisymmetric-Large-Relation-Prop =
is-antisymmetric-Large-Relation A (type-Large-Relation-Prop A R)
is-antisymmetric-Large-Relation A (large-relation-Large-Relation-Prop A R)
```

## See also
Expand Down
2 changes: 0 additions & 2 deletions src/foundation/large-locale-of-subtypes.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,13 @@ module _

leq-prop-powerset-Large-Locale :
Large-Relation-Prop
( λ l2 → l1 ⊔ lsuc l2)
( λ l2 l3 → l1 ⊔ l2 ⊔ l3)
( type-powerset-Large-Locale A)
leq-prop-powerset-Large-Locale =
leq-prop-Large-Locale (powerset-Large-Locale A)

leq-powerset-Large-Locale :
Large-Relation
( λ l2 → l1 ⊔ lsuc l2)
( λ l2 l3 → l1 ⊔ l2 ⊔ l3)
( type-powerset-Large-Locale A)
leq-powerset-Large-Locale =
Expand Down
Loading
Loading