elemSmallerThanBound : (n : Fin m) -> LT (finToNat n) m
A Fin's underlying natural number is smaller than the bound
Totality: total
Visibility: exportfinToNatLastIsBound : finToNat last = n
Last's underlying natural number is the bound's predecessor
Totality: total
Visibility: exportfinToNatWeakenNeutral : finToNat (weaken n) = finToNat n
Weaken does not modify the underlying natural number
Totality: total
Visibility: exportfinToNatWeakenNNeutral : (0 m : Nat) -> (k : Fin n) -> finToNat (weakenN m k) = finToNat k
WeakenN does not modify the underlying natural number
Totality: total
Visibility: exportfinToNatShift : (k : Nat) -> (a : Fin n) -> finToNat (shift k a) = k + finToNat a
`Shift k` shifts the underlying natural number by `k`.
Totality: total
Visibility: exportcomplementSpec : (i : Fin n) -> (1 + finToNat i) + finToNat (complement i) = n
- Totality: total
Visibility: export complementWeakenIsFS : (m : Fin n) -> complement (weaken m) = FS (complement m)
The inverse of a weakened element is the successor of its inverse
Totality: total
Visibility: exportcomplementLastIsFZ : complement last = FZ
- Totality: total
Visibility: export complementInvolutive : (m : Fin n) -> complement (complement m) = m
`complement` is involutive (i.e. applied twice it is the identity)
Totality: total
Visibility: exportstrengthenWeakenIsRight : (n : Fin m) -> strengthen (weaken n) = Just n
It's possible to strengthen a weakened element of Fin **m**.
Totality: total
Visibility: exportstrengthenLastIsLeft : strengthen last = Nothing
It's not possible to strengthen the last element of Fin **n**.
Totality: total
Visibility: exportstrengthenNotLastIsRight : (m : Fin n) -> strengthen (complement (FS m)) = Just (complement m)
It's possible to strengthen the inverse of a successor
Totality: total
Visibility: exportstrengthen' : (m : Fin (S n)) -> Either (m = last) (m' : Fin n ** finToNat m = finToNat m')
Either tightens the bound on a Fin or proves that it's the last.
Totality: total
Visibility: exportweakenNZeroIdentity : (k : Fin n) -> weakenN 0 k ~~~ k
- Totality: total
Visibility: export shiftFSLinear : (m : Nat) -> (f : Fin n) -> shift m (FS f) ~~~ FS (shift m f)
- Totality: total
Visibility: export shiftLastIsLast : (m : Nat) -> shift m last ~~~ last
- Totality: total
Visibility: export