Könnte jemand den Unterschied zwischen abhängigen Typen und Verfeinerungstypen erklären? So wie ich es verstehe, enthält ein Verfeinerungstyp alle Werte eines Typs, der ein Prädikat erfüllt. Gibt es ein Merkmal abhängiger Typen, das sie unterscheidet?
Wenn es hilft, bin ich über das Liquid Haskell-Projekt auf verfeinerte Typen und über Coq und Agda auf abhängige Typen gestoßen. Trotzdem suche ich nach einer Erklärung, wie sich die Theorien unterscheiden.