End NoRetractFromSmallPropositionToProp.
(** * Large universes are not retracts of [Prop]. *)
(** The existence in the Calculus of Constructions with universes of a retract from some [Type] universe into [Prop] is inconsistent. *)
(* Note: Assuming the context [down:Type->Prop; up:Prop->Type; forth: forall (A:Type), A -> up (down A); back: forall (A:Type), up (down A) -> A; H: forall (A:Type) (P:A->Type) (a:A), P (back A (forth A a)) -> P a] is probably enough.  *)
Module NoRetractFromTypeToProp.
Definition Type2 := Type.
Definition Type1 := Type : Type2.
Section Paradox.
(** ** Assumption of a retract from Type into Prop *)
Variable down : Type1 -> Prop.
Variable up : Prop -> Type1.
Hypothesis up_down : forall (A:Type1), up (down A) = A :> Type1.
(** ** Paradox *)

(* Specifications: *)
Theorem paradox : forall P:Prop, P.
End Paradox.