Hi,
I am trying to wrap my head around calculus of inductive constructions, but I stuck at η-reduction, I don’t understand why it is illegal. Here is my train of thought:
If there is a term (as I interpret it: a function that can be applied to a term of type Type(2)
and produces a term of type Type(1)
):
then there is no way to construct the term:
λ x : Type ( 1 ) , ( f x ) : ∀ x : Type ( 1 ) , Type ( 1 )because this lambda abstraction’s argument is of type Type(1)
and f
expects the parameter of type Type(2)
.
Could anyone show flaws in my reasoning?