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

Incidence algebras #1221

Merged
merged 10 commits into from
Nov 14, 2024
1 change: 1 addition & 0 deletions src/order-theory.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ open import order-theory.homomorphisms-meet-semilattices public
open import order-theory.homomorphisms-meet-sup-lattices public
open import order-theory.homomorphisms-sup-lattices public
open import order-theory.ideals-preorders public
open import order-theory.incidence-algebras public
open import order-theory.inhabited-finite-total-orders public
open import order-theory.interval-subposets public
open import order-theory.join-semilattices public
Expand Down
49 changes: 49 additions & 0 deletions src/order-theory/incidence-algebras.lagda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Incidence algebras

```agda
module order-theory.incidence-algebras where
```

<details><summary>Imports</summary>

```agda
open import commutative-algebra.commutative-rings

open import foundation.dependent-pair-types
open import foundation.inhabited-types
open import foundation.universe-levels

open import foundation-core.cartesian-product-types

open import order-theory.interval-subposets
open import order-theory.locally-finite-posets
open import order-theory.posets
```

</details>

## Idea

For a [locally finite poset](order-theory.locally-finite-posets.md) 'P' and
Copy link
Collaborator

@fredrik-bakke fredrik-bakke Nov 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey! I just wanted to point out that inline code needs to be escaped with backticks (`) and not apostrophes (').

Cf. how the current version is rendered on our website:
https://unimath.github.io/agda-unimath/order-theory.incidence-algebras.html

Much appreciated if you would fix this issue in your next contribution! :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh! My bad. I'll do that next PR, yes.

[commutative ring](commutative-algebra.commutative-rings.md) 'R', there is a
canonical 'R'-associative algebra whose underlying 'R'-module are the set-maps
from the nonempty [intervals](order-theory.interval-subposets.md) of 'P' to 'R'
(which we constructify as the inhabited intervals), and whose multiplication is
given by a "convolution" of maps. This is the **incidence algebra** of 'P' over
'R'.

## Definition

```agda
module _
{l1 l2 l3 : Level} (P : Poset l1 l2) (loc-fin : is-locally-finite-Poset P)
(x y : type-Poset P) (R : Commutative-Ring l3)
where

interval-map : UU (l1 ⊔ l2 ⊔ l3)
interval-map = inhabited-interval P → type-Commutative-Ring R
```

WIP: complete this definition after _R-modules_ have been defined. Defining
convolution of maps would be aided as well with a lemma on 'unordered' addition
in abelian groups over finite sets.
24 changes: 24 additions & 0 deletions src/order-theory/interval-subposets.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,13 @@ module order-theory.interval-subposets where
<details><summary>Imports</summary>

```agda
open import foundation.dependent-pair-types
open import foundation.inhabited-types
open import foundation.propositions
open import foundation.universe-levels

open import foundation-core.cartesian-product-types

open import order-theory.posets
open import order-theory.subposets
```
Expand All @@ -36,3 +40,23 @@ module _
poset-interval-Subposet : Poset (l1 ⊔ l2) l2
poset-interval-Subposet = poset-Subposet X is-in-interval-Poset
```

### The predicate of an interval being inhabited

```agda
module _
{l1 l2 : Level} (X : Poset l1 l2) (x y : type-Poset X)
where

is-inhabited-interval : UU (l1 ⊔ l2)
is-inhabited-interval =
is-inhabited (type-Poset (poset-interval-Subposet X x y))

module _
{l1 l2 : Level} (X : Poset l1 l2)
where

inhabited-interval : UU (l1 ⊔ l2)
inhabited-interval =
Σ (type-Poset X × type-Poset X) λ (p , q) → (is-inhabited-interval X p q)
```
Loading