Perdón por el código, espero no sea incorrecta su publicación.
En el Ej 3 def :
Definition o := fun (f: X->X) (g: X->X) (x:X) => g (f x) : X.
Luego en el Ej 4 def:
Definition id : A -> A := fun (x:A) => x : A.
AL intentar def el teorema:
Theorem e4 : forall x:A, id x = o (id (id x)).
The term "id (id x)" has type "A" while it is expected to have type "Set".
Probe con distintas parentisaciones, pero simpre me da problemas de tipo ( o (id id x) genera " The term "id" has type "A -> A" while it is expected to have type "A".)
No entiendo si es un tema de sintaxis o algún concepto que no estoy entendiendo, agradecería si me pudieran dirigir.