Quelqu'un pourrait-il expliquer la différence entre les types dépendants et les types de raffinement? Si je comprends bien, un type de raffinement contient toutes les valeurs d’un type satisfaisant un prédicat. Existe-t-il une caractéristique des types dépendants qui les distingue?
Si cela peut aider, je suis tombé sur les types raffinés via le projet Liquid Haskell et les types dépendants via Coq et Agda. Cela dit, je cherche une explication sur la différence entre les théories.