Type systems, and the proof assistants based on them, are frequently divided into predicative and impredicative.
What exactly does this mean? I've heard the slogan "impredicativity means you can't quantify over things you haven't defined yet", but I don't know how to apply this definition to a type system.
Predicativity is mentioned here in this answer to this question. I don't really understand predicativity and don't understand how the concept in a classical setting lines up with or doesn't line up with the concept in a proof assistant setting.
This question form the Mathematics Stack Exchange and its answer describe what predicativity is when applied to the axiom schema of separation in ZFC.
I'll do something a little nonstandard in the notation and always split the variable intepretations fed to $\varphi(\vec{p}; \vec{x})$ into parameters $\vec{p}$ and ordinary variables $\vec{x}$.
The impredicative version is the ordinary one, given below.
$$ \forall x \exists y \forall z \mathop. (z \in y) \leftrightarrow ((z \in x) \land \varphi(\vec{p}; z)) \;\; \text{is impredicative separation} $$
The predicative version is similar, but $\varphi(\vec{p}; z)$ is constrained to contain exclusively quantifiers bound by a parameter, i.e. $\forall x \in q \mathop. \square$ and $\exists x \in q \mathop. \square$ where $q$ is in $\vec{p}$ or is bound by an earlier quantifier.
Based on my understanding on the text quoted in the linked answer, this does not constitute a complete ban on impredicative quantification since the axiom schema of predicative separation itself contains unbound quantifiers $\forall x \exists y \forall z \mathop. \square$ in its prenex that cannot be paraphrased away.
So in this case, "predicativity" applies only to the value of the metavariable $\varphi(\cdots)$ and a set theory with this axiom would still be an "impredicative theory". (Maybe?)
Changing gears a little bit, if I look at the inference rules of the calculus of constructions, on which the proof assistant Coq is based, I'm not sure how to assess whether the formalism is predicative or not.
Here are the rules for convenience.
$K$ and $L$ range over $\{P, T\}$.
$$ \frac{}{\Gamma \vdash P : T} \;\; \text{$P$ is a large type} $$
$$ \frac{}{\Gamma, x: A, \Gamma' \vdash x : A} $$
$$ \frac{\Gamma \vdash A : K \;\;\text{and}\;\; \Gamma, x : A \vdash B:L}{\Gamma \vdash (\forall x : A \mathop. B) : L} \;\; \text{is universal introduction}$$
$$ \frac{\Gamma \vdash A : K \;\;\text{and}\;\; \Gamma, x: A \vdash N :B}{\Gamma \vdash (\lambda x: A \mathop. N):(\forall x : A \mathop. B)} \;\; \text{is function introdction} $$
$$ \frac{\Gamma \vdash M : (\forall x : A \mathop. B) \;\; \text{and}\;\; \Gamma \vdash N:A }{\Gamma \vdash M(N) : B[x:=N]} \;\; \text{is function elimination (but dependent!)} $$
$$ \frac{\Gamma \vdash M:A \;\;\text{and} \;\; A=_\beta B \;\;\text{and}\;\; \Gamma \vdash B:K}{\Gamma \vdash M : B } $$
In CoC, the "quantifiers" are always bound, but the text of the article implies that the calculus of inductive constructions is impredicative, perhaps suggesting that CoC itself is too.
Some of its variants include the calculus of inductive constructions (which adds inductive types), the calculus of (co)inductive constructions (which adds coinduction), and the predicative calculus of inductive constructions (which removes some impredicativity).
foundations
might be appropriate, though. $\endgroup$