module Cat.Instances.OFE.Discrete where

Discrete OFEsπŸ”—

Given a set we can make it into a discrete OFE by equipping it with the relation that takes one step to approximate equality: is trivial, but is defined to be no matter what is.

Discrete-OFE : βˆ€ {β„“} (A : Type β„“) β†’ is-set A β†’ OFE-on β„“ A
Discrete-OFE A A-set .within zero x y = Lift _ ⊀
Discrete-OFE A A-set .within (suc n) x y = x ≑ y
Discrete-OFE A A-set .has-is-ofe .has-is-prop zero _ _ _ _ _ = _
Discrete-OFE A A-set .has-is-ofe .has-is-prop (suc n) = A-set

Discrete-OFE A A-set .has-is-ofe .β‰ˆ-refl zero = _
Discrete-OFE A A-set .has-is-ofe .β‰ˆ-refl (suc n) = refl

Discrete-OFE A A-set .has-is-ofe .β‰ˆ-sym zero = _
Discrete-OFE A A-set .has-is-ofe .β‰ˆ-sym (suc n) p = sym p

Discrete-OFE A A-set .has-is-ofe .β‰ˆ-trans zero = _
Discrete-OFE A A-set .has-is-ofe .β‰ˆ-trans (suc n) p q = q βˆ™ p

Discrete-OFE A A-set .has-is-ofe .bounded = _
Discrete-OFE A A-set .has-is-ofe .step zero = _
Discrete-OFE A A-set .has-is-ofe .step (suc n) x y p = p
Discrete-OFE A A-set .has-is-ofe .limit x y Ξ± = Ξ± 1