This module is based on Todd Waugh Ambridge's blog post series "Search over uniformly continuous decidable predicates on infinite collections of types" https://www.cs.bham.ac.uk/~txw467/tychonoff/
dsc : Discrete x => (Nat -> x) -> (Nat -> x) -> NatInf