I am currently learning about model checking (modal logic, LTL, CTL, SAL model checker, etc.) and in my spare time I am learning about Idris which is a strongly typed functional programming language that supports dependent types. Since I am looking at both model checking and Idris, I start to get curious about how Idris relates to Formal Methods and model checking.
When learning about model checking, it feels like most examples brought up is either about verifying systems written in an imperative manner or hardware components. So I am puzzled about the relevance of model checking in strongly typed functional programming languages and especially in a dependently typed language such as Idris where it seems to me that the type checker already does a fantastic job at verifying correctness. My intuition, however, tells me that model checking maybe is relevant for partial functions that doesn't give any promises of termination.
Is model checking relevant when using a strongly and dependent typed programming language such as Idris?