module Data.Wellfounded.Properties where

It was mentioned in the definition of Acc that being accessible is a proposition, but this has not yet been established. We can do so using, as usual, induction:

Acc-is-prop :  x  is-prop (Acc R x)
Acc-is-prop x (acc s) (acc t) =
  ap acc (ext λ y y<x  Acc-is-prop y (s y y<x) (t y y<x))

Wf-is-prop : is-prop (Wf R)
Wf-is-prop = Π-is-hlevel 1 Acc-is-prop

Instances🔗

The usual induction principle for the natural numbers is equivalent to saying that the relation is well-founded. Additionally, the relation on the natural numbers is well-founded.

suc-wf : Wf  x y  y  suc x)
suc-wf = Induction-wf  x y  y  suc x) λ P m 
  Nat-elim P
    (m 0 λ y 0=suc  absurd (zero≠suc 0=suc))
    λ {n} Pn  m (suc n)  y s  subst P (suc-inj s) Pn)

<-wf : Wf _<_
<-wf x = go x x ≤-refl where
  go : (x y : Nat)  .(y  x)  Acc _<_ y
  go x zero w = acc λ _ ()
  go (suc x) (suc y) w = acc k' where
    k' :  x  x < suc y  Acc _<_ x
    k' x' w' = go x x' (≤-trans (≤-peel w') (≤-peel w))