# What are the implications of Lean not having the type Set?

In Coq we have an impredicative base type, called Prop, and a predicative base type, called Set, both of type Type 0.

On the other hand, in Lean we only have an impredicative base type. We do not have an equivalent to Set. Instead we use directly Type 0(a synonym of Sort 1).

What are the implications of this design decision?

• I think this almost answers it. Would you agree?
– chi
Commented Jul 12, 2018 at 22:43
• @chi Nice reference, but, in my limited understanding, I do not think this answers the question. I understand what is the purpose of Prop. The real question is what power adds to the system the introduction of Set (as in Coq) while using Type 0 directly (as in Lean) is sufficient. Maybe it has some relation with Coq having cumulative universes while Lean having not. Commented Jul 13, 2018 at 0:54
• I would agree. I think the main reason of having Prop is just predicativity. What other reasons do you think there might be? Commented Jul 13, 2018 at 3:27
• @xuq01 Both of you are right, but this question is not about Prop but about the presence/absence of Set. What are the advantages of having it (Coq) when you can live without it (Lean)? It increases the complexity of the system (this is a big thing for a theorem prover) so there must be a reason. Commented Jul 13, 2018 at 9:15
• The linked answer still answers it. Set is predicative, so it has large elimination; Prop is impredicative, so it does not have large elimination. Commented Jul 13, 2018 at 9:34

In Coq Set behaves basically like the smallest possible Type. Unlike Coq however, Lean lets you select the "level" of the type manually, such as Type 9 (or Sort 10), something which is not allowed in Coq - meaning that you do not need Set in Lean, you can just use Type 0 (or just Type, or Sort 1) instead as it is basically the same thing. I should also note that in Lean Prop is the same as Sort 0 (or Sort) (which does not have large elimination) and Type n (for n : nat) is the same as Sort (n + 1) (which has large elimination).
TL;DR: Type (with no "arguments") is the Set of Lean
• But in Coq Prop and Set are of the same type while in Lean they are not; in Lean one of them is in fact an element of the other. Does this have any significance to the logic theory behind? Commented Sep 30, 2018 at 22:08