Built with Alectryon, running Coq+SerAPI v8.10.0+0.7.0. Coq sources are in this panel; goals and messages will appear in the other. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+β Ctrl+β to navigate, Ctrl+π±οΈ to focus.
(************************************************************************)
(* * The Coq Proof Assistant / The Coq Development Team *)
(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
(* <O___,, * (see CREDITS file for the list of authors) *)
(* \VV/ **************************************************************)
(* // * This file is distributed under the terms of the *)
(* * GNU Lesser General Public License Version 2.1 *)
(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
(* Hurkens.v *)
(************************************************************************)
Exploiting Hurkens's paradox [Hurkens95] for system U- so as to
derive various contradictory contexts.
The file is divided into various sub-modules which all follow the
same structure: a section introduces the contradictory hypotheses
and a theorem named paradox concludes the module with a proof of
False.
References:
- The Generic module contains the actual Hurkens's paradox for a
postulated shallow encoding of system U- in Coq. This is an
adaptation by Arnaud Spiwack of a previous, more restricted
implementation by Herman Geuvers. It is used to derive every
other special cases of the paradox in this file.
- The NoRetractToImpredicativeUniverse module contains a simple
and effective formulation by Herman Geuvers [Geuvers01] of a
result by Thierry Coquand [Coquand90]. It states that no
impredicative sort can contain a type of which it is a
retract. This result implies that Coq with classical logic
stated in impredicative Set is inconsistent and that classical
logic stated in Prop implies proof-irrelevance (see
ClassicalFacts.v)
- The NoRetractFromSmallPropositionToProp module is a
specialisation of the NoRetractToImpredicativeUniverse module
to the case where the impredicative sort is Prop.
- The NoRetractToModalProposition module is a strengthening of
the NoRetractFromSmallPropositionToProp module. It shows that
given a monadic modality (aka closure operator) M, the type of
modal propositions (i.e. such that M A β A) cannot be a
retract of a modal proposition. It is an example of use of the
paradox where the universes of system U- are not mapped to
universes of Coq.
- The NoRetractToNegativeProp module is the specialisation of
the NoRetractFromSmallPropositionToProp module where the
modality is double-negation. This result implies that the
principle of weak excluded middle (β A, ~~A\/~A) implies
a weak variant of proof irrelevance.
- The NoRetractFromTypeToProp module proves that Prop cannot
be a retract of a larger type.
- The TypeNeqSmallType module proves that Type is different
from any smaller type.
- The PropNeqType module proves that Prop is different from any larger Type. It is an instance of the previous result.
- [Coquand90] T. Coquand, "Metamathematical Investigations of a
Calculus of Constructions", Proceedings of Logic in Computer
Science (LICS'90), 1990.
- [Hurkens95] A. J. Hurkens, "A simplification of Girard's paradox",
Proceedings of the 2nd international conference Typed Lambda-Calculi
and Applications (TLCA'95), 1995.
- [Geuvers01] H. Geuvers, "Inconsistency of Classical Logic in Type Theory", 2001, revised 2007 (see http://www.cs.ru.nl/~herman/PUBS/newnote.ps.gz).
Set Universe Polymorphism. (* begin show *)
It relies on an axiomatisation of a shallow embedding of system U-
(i.e. types of U- are interpreted by types of Coq). The
universes are encoded in a style, due to Martin-LΓΆf, where they
are given by a set of names and a family El:NameβType which
interprets each name into a type. This allows the encoding of
universe to be decoupled from Coq's universes. Dependent products
and abstractions are similarly postulated rather than encoded as
Coq's dependent products and abstractions.
Module Generic. (* begin hide *) (* Notations used in the proof. Hidden in coqdoc. *) Reserved Notation "'ββ' x : A , B" (at level 200, x ident, A at level 200,right associativity). Reserved Notation "A 'βΆβ' B" (at level 99, right associativity, B at level 200). Reserved Notation "'Ξ»β' x , u" (at level 200, x ident, right associativity). Reserved Notation "f 'Β·β' x" (at level 5, left associativity). Reserved Notation "'ββ' A , F" (at level 200, A ident, right associativity). Reserved Notation "'Ξ»β' x , u" (at level 200, x ident, right associativity). Reserved Notation "f 'Β·β' [ A ]" (at level 5, left associativity). Reserved Notation "'ββ' x : A , B" (at level 200, x ident, A at level 200,right associativity). Reserved Notation "A 'βΆβ' B" (at level 99, right associativity, B at level 200). Reserved Notation "'Ξ»β' x , u" (at level 200, x ident, right associativity). Reserved Notation "f 'Β·β' x" (at level 5, left associativity). Reserved Notation "'ββΒΉ' A : U , F" (at level 200, A ident, right associativity). Reserved Notation "'Ξ»βΒΉ' x , u" (at level 200, x ident, right associativity). Reserved Notation "f 'Β·β' [ A ]" (at level 5, left associativity). (* end hide *) Section Paradox.
System U- has two impredicative universes. In the proof of the
paradox they are slightly asymmetric (in particular the reduction
rules of the small universe are not needed). Therefore, the
axioms are duplicated allowing for a weaker requirement than the
actual system U-.
Variable U1 : Type. Variable El1 : U1 -> Type.
Variable Forall1 : forall u:U1, (El1 u -> U1) -> U1. Notation "'ββ' x : A , B" := (Forall1 A (fun x => B)). Notation "A 'βΆβ' B" := (Forall1 A (fun _ => B)). Variable lam1 : forall u B, (forall x:El1 u, El1 (B x)) -> El1 (ββ x:u, B x). Notation "'Ξ»β' x , u" := (lam1 _ _ (fun x => u)). Variable app1 : forall u B (f:El1 (Forall1 u B)) (x:El1 u), El1 (B x). Notation "f 'Β·β' x" := (app1 _ _ f x). Variable beta1 : forall u B (f:forall x:El1 u, El1 (B x)) x, (Ξ»β y, f y) Β·β x = f x.
U1 only needs to quantify over itself.
Variable ForallU1 : (U1->U1) -> U1. Notation "'ββ' A , F" := (ForallU1 (fun A => F)). Variable lamU1 : forall F, (forall A:U1, El1 (F A)) -> El1 (ββ A, F A). Notation "'Ξ»β' x , u" := (lamU1 _ (fun x => u)). Variable appU1 : forall F (f:El1(ββ A,F A)) (A:U1), El1 (F A). Notation "f 'Β·β' [ A ]" := (appU1 _ f A). Variable betaU1 : forall F (f:forall A:U1, El1 (F A)) A, (Ξ»β x, f x) Β·β [ A ] = f A.
The small universe is an element of the large one.
Variable u0 : U1. Notation U0 := (El1 u0). Variable El0 : U0 -> Type.
U0 does not need reduction rules
Variable Forall0 : forall u:U0, (El0 u -> U0) -> U0. Notation "'ββ' x : A , B" := (Forall0 A (fun x => B)). Notation "A 'βΆβ' B" := (Forall0 A (fun _ => B)). Variable lam0 : forall u B, (forall x:El0 u, El0 (B x)) -> El0 (ββ x:u, B x). Notation "'Ξ»β' x , u" := (lam0 _ _ (fun x => u)). Variable app0 : forall u B (f:El0 (Forall0 u B)) (x:El0 u), El0 (B x). Notation "f 'Β·β' x" := (app0 _ _ f x).
Variable ForallU0 : forall u:U1, (El1 u->U0) -> U0. Notation "'ββΒΉ' A : U , F" := (ForallU0 U (fun A => F)). Variable lamU0 : forall U F, (forall A:El1 U, El0 (F A)) -> El0 (ββΒΉ A:U, F A). Notation "'Ξ»βΒΉ' x , u" := (lamU0 _ _ (fun x => u)). Variable appU0 : forall U F (f:El0(ββΒΉ A:U,F A)) (A:El1 U), El0 (F A). Notation "f 'Β·β' [ A ]" := (appU0 _ _ f A).
Ltac simplify := (* spiwack: ideally we could use [rewrite_strategy] here, but I am a tad scared of the idea of depending on setoid rewrite in such a simple file. *) (repeat rewrite ?beta1, ?betaU1); lazy beta. Ltac simplify_in h := (repeat rewrite ?beta1, ?betaU1 in h); lazy beta in h.
An inhabitant of U0 standing for False.
Variable F:U0.
Definition V : U1 := ββ A, ((A βΆβ u0) βΆβ A βΆβ u0) βΆβ A βΆβ u0. Definition U : U1 := V βΆβ u0. Definition sb (z:El1 V) : El1 V := Ξ»β A, Ξ»β r, Ξ»β a, r Β·β (zΒ·β[A]Β·βr) Β·β a. Definition le (i:El1 (UβΆβu0)) (x:El1 U) : U0 := x Β·β (Ξ»β A, Ξ»β r, Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [A] Β·β r Β·β a)). Definition le' : El1 ((UβΆβu0) βΆβ U βΆβ u0) := Ξ»β i, Ξ»β x, le i x. Definition induct (i:El1 (UβΆβu0)) : U0 := ββΒΉ x:U, le i x βΆβ i Β·β x. Definition WF : El1 U := Ξ»β z, (induct (zΒ·β[U] Β·β le')). Definition I (x:El1 U) : U0 := (ββΒΉ i:UβΆβu0, le i x βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x)) βΆβ F .
U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x : El1 u, El1 (B x)) -> El1 (ββ x : u, B x)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x : El1 u, El1 (B x)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x : El1 u, El1 (B x)) (x : El1 u), (Ξ»β y, f y) Β·β x = f xForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x, f x) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x : El0 u, El0 (B x)) -> El0 (ββ x : u, B x)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x : El0 u, El0 (B x)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0El0 (ββΒΉ i : U βΆβ u0, induct i βΆβ i Β·β WF)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x : El1 u, El1 (B x)) -> El1 (ββ x : u, B x)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x : El1 u, El1 (B x)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x : El1 u, El1 (B x)) (x : El1 u), (Ξ»β y, f y) Β·β x = f xForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x, f x) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x : El0 u, El0 (B x)) -> El0 (ββ x : u, B x)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x : El0 u, El0 (B x)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0El0 (ββΒΉ i : U βΆβ u0, induct i βΆβ i Β·β WF)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x : El1 u, El1 (B x)) -> El1 (ββ x : u, B x)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x : El1 u, El1 (B x)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x : El1 u, El1 (B x)) (x : El1 u), (Ξ»β y0, f y0) Β·β x = f xForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x, f x) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x : El0 u, El0 (B x)) -> El0 (ββ x : u, B x)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x : El0 u, El0 (B x)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0i:El1 (U βΆβ u0)y:El0 (induct i)El0 i Β·β WFU1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x : El1 u, El1 (B x)) -> El1 (ββ x : u, B x)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x : El1 u, El1 (B x)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x : El1 u, El1 (B x)) (x : El1 u), (Ξ»β y0, f y0) Β·β x = f xForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x, f x) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x : El0 u, El0 (B x)) -> El0 (ββ x : u, B x)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x : El0 u, El0 (B x)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0i:El1 (U βΆβ u0)y:El0 (induct i)El0 (le i WF)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x : El1 u, El1 (B x)) -> El1 (ββ x : u, B x)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x : El1 u, El1 (B x)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x : El1 u, El1 (B x)) (x : El1 u), (Ξ»β y0, f y0) Β·β x = f xForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x, f x) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x : El0 u, El0 (B x)) -> El0 (ββ x : u, B x)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x : El0 u, El0 (B x)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0i:El1 (U βΆβ u0)y:El0 (induct i)El0 (Ξ»β z, ββΒΉ x : U, le z Β·β [U] Β·β le' x βΆβ z Β·β [U] Β·β le' Β·β x) Β·β (Ξ»β A, Ξ»β r, Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [A] Β·β r Β·β a))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x : El1 u, El1 (B x)) -> El1 (ββ x : u, B x)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x : El1 u, El1 (B x)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x : El1 u, El1 (B x)) (x : El1 u), (Ξ»β y0, f y0) Β·β x = f xForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x, f x) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x : El0 u, El0 (B x)) -> El0 (ββ x : u, B x)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x : El0 u, El0 (B x)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0i:El1 (U βΆβ u0)y:El0 (induct i)El0 (ββΒΉ x : U, le (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) x βΆβ (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) Β·β x)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y0, f y0) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0i:El1 (U βΆβ u0)y:El0 (induct i)x:El1 Uh0:El0 (le (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) x)El0 (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) Β·β xU1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y0, f y0) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0i:El1 (U βΆβ u0)y:El0 (induct i)x:El1 Uh0:El0 (le (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) x)El0 i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y0, f y0) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0i:El1 (U βΆβ u0)y:El0 (induct i)x:El1 Uh0:El0 (le (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) x)El0 (le i (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y0, f y0) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0i:El1 (U βΆβ u0)y:El0 (induct i)x:El1 Uh0:El0 (le (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) x)El0 (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x) Β·β (Ξ»β A, Ξ»β r, Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [A] Β·β r Β·β a))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y0, f y0) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0i:El1 (U βΆβ u0)y:El0 (induct i)x:El1 Uh0:El0 (le (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) x)El0 (sb (Ξ»β A, Ξ»β r, Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [A] Β·β r Β·β a))) Β·β [U] Β·β le' Β·β xU1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y0, f y0) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0i:El1 (U βΆβ u0)y:El0 (induct i)x:El1 Uh0:El0 (le (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) x)El0 (Ξ»β A, Ξ»β r, Ξ»β a, r Β·β ((Ξ»β A0, Ξ»β r0, Ξ»β a0, i Β·β (Ξ»β v, (sb v) Β·β [A0] Β·β r0 Β·β a0)) Β·β [A] Β·β r) Β·β a) Β·β [U] Β·β le' Β·β xU1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y0, f y0) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0i:El1 (U βΆβ u0)y:El0 (induct i)x:El1 Uh0:El0 (le (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) x)El0 le' Β·β (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) Β·β xU1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y0, f y0) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0i:El1 (U βΆβ u0)y:El0 (induct i)x:El1 Uh0:El0 (le (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) x)El0 (Ξ»β i0, Ξ»β x0, le i0 x0) Β·β (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) Β·β xexact h0. Qed.U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y0, f y0) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0i:El1 (U βΆβ u0)y:El0 (induct i)x:El1 Uh0:El0 (le (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) x)El0 (le (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) x)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x : El1 u, El1 (B x)) -> El1 (ββ x : u, B x)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x : El1 u, El1 (B x)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x : El1 u, El1 (B x)) (x : El1 u), (Ξ»β y, f y) Β·β x = f xForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x, f x) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x : El0 u, El0 (B x)) -> El0 (ββ x : u, B x)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x : El0 u, El0 (B x)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0El0 (induct (Ξ»β u, I u))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x : El1 u, El1 (B x)) -> El1 (ββ x : u, B x)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x : El1 u, El1 (B x)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x : El1 u, El1 (B x)) (x : El1 u), (Ξ»β y, f y) Β·β x = f xForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x, f x) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x : El0 u, El0 (B x)) -> El0 (ββ x : u, B x)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x : El0 u, El0 (B x)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0El0 (induct (Ξ»β u, I u))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x : El1 u, El1 (B x)) -> El1 (ββ x : u, B x)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x : El1 u, El1 (B x)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x : El1 u, El1 (B x)) (x : El1 u), (Ξ»β y, f y) Β·β x = f xForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x, f x) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x : El0 u, El0 (B x)) -> El0 (ββ x : u, B x)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x : El0 u, El0 (B x)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0El0 (ββΒΉ x : U, le (Ξ»β u, I u) x βΆβ (Ξ»β u, I u) Β·β x)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)El0 (Ξ»β u, I u) Β·β xU1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)El0 (I x)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i : U βΆβ u0, le i x βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))El0 FU1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i : U βΆβ u0, le i x βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i : U βΆβ u0, le i x βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))El0 FU1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i : U βΆβ u0, le i x βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i : U βΆβ u0, le i x βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))El0 (Ξ»β u, I u) Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x) -> El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i : U βΆβ u0, le i x βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x)) -> El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))exact q'.U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i : U βΆβ u0, le i x βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))q':El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i : U βΆβ u0, le i x βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))El0 FU1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i : U βΆβ u0, le i x βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))El0 (ββΒΉ i : U βΆβ u0, le i (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x) βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β (Ξ»β v0, (sb v0) Β·β [U] Β·β le' Β·β x)))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i0 : U βΆβ u0, le i0 x βΆβ i0 Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))i:El1 (U βΆβ u0)El0 (le i (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x) βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β (Ξ»β v0, (sb v0) Β·β [U] Β·β le' Β·β x)))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i0 : U βΆβ u0, le i0 x βΆβ i0 Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))i:El1 (U βΆβ u0)h':El0 (le i (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))El0 i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β (Ξ»β v0, (sb v0) Β·β [U] Β·β le' Β·β x))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i0 : U βΆβ u0, le i0 x βΆβ i0 Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))i:El1 (U βΆβ u0)h':El0 (le i (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))El0 (le (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) x βΆβ (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x)) -> El0 i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β (Ξ»β v0, (sb v0) Β·β [U] Β·β le' Β·β x))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i0 : U βΆβ u0, le i0 x βΆβ i0 Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))i:El1 (U βΆβ u0)h':El0 (le i (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))El0 (le (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) x βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β (Ξ»β v0, (sb v0) Β·β [U] Β·β le' Β·β x))) -> El0 i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β (Ξ»β v0, (sb v0) Β·β [U] Β·β le' Β·β x))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i0 : U βΆβ u0, le i0 x βΆβ i0 Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))i:El1 (U βΆβ u0)h':El0 (le i (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))q':El0 (le (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) x βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β (Ξ»β v0, (sb v0) Β·β [U] Β·β le' Β·β x)))El0 i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β (Ξ»β v0, (sb v0) Β·β [U] Β·β le' Β·β x))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i0 : U βΆβ u0, le i0 x βΆβ i0 Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))i:El1 (U βΆβ u0)h':El0 (le i (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))q':El0 (le (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) x βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β (Ξ»β v0, (sb v0) Β·β [U] Β·β le' Β·β x)))El0 (le (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) x)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i0 : U βΆβ u0, le i0 x βΆβ i0 Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))i:El1 (U βΆβ u0)h':El0 (le i (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))El0 (le (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) x)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i0 : U βΆβ u0, le i0 x βΆβ i0 Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))i:El1 (U βΆβ u0)h':El0 (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x) Β·β (Ξ»β A, Ξ»β r, Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [A] Β·β r Β·β a))El0 (le (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) x)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i0 : U βΆβ u0, le i0 x βΆβ i0 Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))i:El1 (U βΆβ u0)h':El0 (sb (Ξ»β A, Ξ»β r, Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [A] Β·β r Β·β a))) Β·β [U] Β·β le' Β·β xEl0 (le (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) x)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i0 : U βΆβ u0, le i0 x βΆβ i0 Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))i:El1 (U βΆβ u0)h':El0 (Ξ»β A, Ξ»β r, Ξ»β a, r Β·β ((Ξ»β A0, Ξ»β r0, Ξ»β a0, i Β·β (Ξ»β v, (sb v) Β·β [A0] Β·β r0 Β·β a0)) Β·β [A] Β·β r) Β·β a) Β·β [U] Β·β le' Β·β xEl0 (le (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) x)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i0 : U βΆβ u0, le i0 x βΆβ i0 Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))i:El1 (U βΆβ u0)h':El0 le' Β·β (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) Β·β xEl0 (le (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) x)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i0 : U βΆβ u0, le i0 x βΆβ i0 Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))i:El1 (U βΆβ u0)h':El0 (Ξ»β i0, Ξ»β x0, le i0 x0) Β·β (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) Β·β xEl0 (le (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) x)exact h'. Qed.U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El1 Up:El0 (le (Ξ»β u, I u) x)q:El0 (ββΒΉ i0 : U βΆβ u0, le i0 x βΆβ i0 Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))h:El0 (I (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β x))i:El1 (U βΆβ u0)h':El0 (le (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)) x)El0 (le (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) x)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x : El1 u, El1 (B x)) -> El1 (ββ x : u, B x)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x : El1 u, El1 (B x)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x : El1 u, El1 (B x)) (x : El1 u), (Ξ»β y, f y) Β·β x = f xForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x, f x) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x : El0 u, El0 (B x)) -> El0 (ββ x : u, B x)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x : El0 u, El0 (B x)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0El0 ((ββΒΉ i : U βΆβ u0, induct i βΆβ i Β·β WF) βΆβ F)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x : El1 u, El1 (B x)) -> El1 (ββ x : u, B x)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x : El1 u, El1 (B x)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x : El1 u, El1 (B x)) (x : El1 u), (Ξ»β y, f y) Β·β x = f xForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x, f x) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x : El0 u, El0 (B x)) -> El0 (ββ x : u, B x)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x : El0 u, El0 (B x)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0El0 ((ββΒΉ i : U βΆβ u0, induct i βΆβ i Β·β WF) βΆβ F)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i : U βΆβ u0, induct i βΆβ i Β·β WF)El0 FU1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i : U βΆβ u0, induct i βΆβ i Β·β WF)El0 (I WF)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i : U βΆβ u0, induct i βΆβ i Β·β WF)h:El0 (I WF)El0 FU1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i : U βΆβ u0, induct i βΆβ i Β·β WF)El0 (I WF)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i : U βΆβ u0, induct i βΆβ i Β·β WF)El0 (Ξ»β u, I u) Β·β WF -> El0 (I WF)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i : U βΆβ u0, induct i βΆβ i Β·β WF)El0 (I WF) -> El0 (I WF)exact q.U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i : U βΆβ u0, induct i βΆβ i Β·β WF)q:El0 (I WF)El0 (I WF)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i : U βΆβ u0, induct i βΆβ i Β·β WF)h:El0 (I WF)El0 FU1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i : U βΆβ u0, induct i βΆβ i Β·β WF)h:El0 (I WF)El0 (ββΒΉ i : U βΆβ u0, le i WF βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β WF))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i : U βΆβ u0, induct i βΆβ i Β·β WF)El0 (ββΒΉ i : U βΆβ u0, le i WF βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β WF))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i0 : U βΆβ u0, induct i0 βΆβ i0 Β·β WF)i:El1 (U βΆβ u0)h0:El0 (le i WF)El0 i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β WF)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i0 : U βΆβ u0, induct i0 βΆβ i0 Β·β WF)i:El1 (U βΆβ u0)h0:El0 (le i WF)El0 (induct (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) βΆβ (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) Β·β WF) -> El0 i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β WF)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i0 : U βΆβ u0, induct i0 βΆβ i0 Β·β WF)i:El1 (U βΆβ u0)h0:El0 (le i WF)El0 (induct (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β WF)) -> El0 i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β WF)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i0 : U βΆβ u0, induct i0 βΆβ i0 Β·β WF)i:El1 (U βΆβ u0)h0:El0 (le i WF)q:El0 (induct (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β WF))El0 i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β WF)U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i0 : U βΆβ u0, induct i0 βΆβ i0 Β·β WF)i:El1 (U βΆβ u0)h0:El0 (le i WF)q:El0 (induct (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)) βΆβ i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β WF))El0 (induct (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i0 : U βΆβ u0, induct i0 βΆβ i0 Β·β WF)i:El1 (U βΆβ u0)h0:El0 (le i WF)El0 (induct (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i0 : U βΆβ u0, induct i0 βΆβ i0 Β·β WF)i:El1 (U βΆβ u0)h0:El0 WF Β·β (Ξ»β A, Ξ»β r, Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [A] Β·β r Β·β a))El0 (induct (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i0 : U βΆβ u0, induct i0 βΆβ i0 Β·β WF)i:El1 (U βΆβ u0)h0:El0 WF Β·β (Ξ»β A, Ξ»β r, Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [A] Β·β r Β·β a))El0 (induct (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i0 : U βΆβ u0, induct i0 βΆβ i0 Β·β WF)i:El1 (U βΆβ u0)h0:El0 (Ξ»β z, induct z Β·β [U] Β·β le') Β·β (Ξ»β A, Ξ»β r, Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [A] Β·β r Β·β a))El0 (induct (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)))exact h0. Qed.U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x0 : El1 u, El1 (B x0)) -> El1 (ββ x0 : u, B x0)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x0 : El1 u, El1 (B x0)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x0 : El1 u, El1 (B x0)) (x0 : El1 u), (Ξ»β y, f y) Β·β x0 = f x0ForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x0, f x0) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x0 : El0 u, El0 (B x0)) -> El0 (ββ x0 : u, B x0)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x0 : El0 u, El0 (B x0)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0x:El0 (ββΒΉ i0 : U βΆβ u0, induct i0 βΆβ i0 Β·β WF)i:El1 (U βΆβ u0)h0:El0 (induct (Ξ»β a, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β a)))El0 (induct (Ξ»β y, i Β·β (Ξ»β v, (sb v) Β·β [U] Β·β le' Β·β y)))U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x : El1 u, El1 (B x)) -> El1 (ββ x : u, B x)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x : El1 u, El1 (B x)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x : El1 u, El1 (B x)) (x : El1 u), (Ξ»β y, f y) Β·β x = f xForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x, f x) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x : El0 u, El0 (B x)) -> El0 (ββ x : u, B x)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x : El0 u, El0 (B x)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0El0 Fexact (lemma2Β·βOmega). Qed. End Paradox.U1:TypeEl1:U1 -> TypeForall1:forall u : U1, (El1 u -> U1) -> U1lam1:forall (u : U1) (B : El1 u -> U1), (forall x : El1 u, El1 (B x)) -> El1 (ββ x : u, B x)app1:forall (u : U1) (B : El1 u -> U1), El1 (ββ x : u, B x) -> forall x : El1 u, El1 (B x)beta1:forall (u : U1) (B : El1 u -> U1) (f : forall x : El1 u, El1 (B x)) (x : El1 u), (Ξ»β y, f y) Β·β x = f xForallU1:(U1 -> U1) -> U1lamU1:forall F0 : U1 -> U1, (forall A : U1, El1 (F0 A)) -> El1 (ββ A, F0 A)appU1:forall F0 : U1 -> U1, El1 (ββ A, F0 A) -> forall A : U1, El1 (F0 A)betaU1:forall (F0 : U1 -> U1) (f : forall A : U1, El1 (F0 A)) (A : U1), (Ξ»β x, f x) Β·β [A] = f Au0:U1El0:U0 -> TypeForall0:forall u : U0, (El0 u -> U0) -> U0lam0:forall (u : U0) (B : El0 u -> U0), (forall x : El0 u, El0 (B x)) -> El0 (ββ x : u, B x)app0:forall (u : U0) (B : El0 u -> U0), El0 (ββ x : u, B x) -> forall x : El0 u, El0 (B x)ForallU0:forall u : U1, (El1 u -> U0) -> U0lamU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), (forall A : El1 U0, El0 (F0 A)) -> El0 (ββΒΉ A : U0, F0 A)appU0:forall (U0 : U1) (F0 : El1 U0 -> Paradox.U0), El0 (ββΒΉ A : U0, F0 A) -> forall A : El1 U0, El0 (F0 A)F:U0El0 F
The paradox tactic can be called as a shortcut to use the paradox.
Ltac paradox h := unshelve (refine ((fun h => _) (paradox _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ))). End Generic.
There can be no retract to an impredicative Coq universe from a
smaller type. In this version of the proof, the impredicativity of
the universe is postulated with a pair of functions from the
universe to its type and back which commute with dependent product
in an appropriate way.
Module NoRetractToImpredicativeUniverse. Section Paradox. Let U2 := Type. Let U1:U2 := Type. Variable U0:U1.
Variable u22u1 : U2 -> U1. Hypothesis u22u1_unit : forall (c:U2), c -> u22u1 c.
u22u1_counit and u22u1_coherent only apply to dependent
product so that the equations happen in the smaller U1 rather
than U2. Indeed, it is not generally the case that one can
project from a large universe to an impredicative universe and
then get back the original type again. It would be too strong a
hypothesis to require (in particular, it is not true of
Prop). The formulation is reminiscent of the monadic
characteristic of the projection from a large type to Prop.
Hypothesis u22u1_counit : forall (F:U1->U1), u22u1 (forall A,F A) -> (forall A,F A). Hypothesis u22u1_coherent : forall (F:U1 -> U1) (f:forall x:U1, F x) (x:U1), u22u1_counit _ (u22u1_unit _ f) x = f x.
Variable u02u1 : U0 -> U1. Variable u12u0 : U1 -> U0. Hypothesis u12u0_unit : forall (b:U1), b -> u02u1 (u12u0 b). Hypothesis u12u0_counit : forall (b:U1), u02u1 (u12u0 b) -> b.
U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F : U1 -> U1, u22u1 (forall A : U1, F A) -> forall A : U1, F Au22u1_coherent:forall (F : U1 -> U1) (f : forall x : U1, F x) (x : U1), u22u1_counit F (u22u1_unit (forall x0 : U1, F x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bforall F : U1, FU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F : U1 -> U1, u22u1 (forall A : U1, F A) -> forall A : U1, F Au22u1_coherent:forall (F : U1 -> U1) (f : forall x : U1, F x) (x : U1), u22u1_counit F (u22u1_unit (forall x0 : U1, F x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bforall F : U1, FU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1FU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1TypeU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1?Goal0 -> TypeU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall u : ?Goal0, (?Goal1 u -> ?Goal0) -> ?Goal0U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (u : ?Goal0) (B : ?Goal1 u -> ?Goal0), (forall x : ?Goal1 u, ?Goal1 (B x)) -> ?Goal1 (?Goal2 u (fun x : ?Goal1 u => B x))U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (u : ?Goal0) (B : ?Goal1 u -> ?Goal0), ?Goal1 (?Goal2 u B) -> forall x : ?Goal1 u, ?Goal1 (B x)U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1(?Goal0 -> ?Goal0) -> ?Goal0U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall F0 : ?Goal0 -> ?Goal0, (forall A : ?Goal0, ?Goal1 (F0 A)) -> ?Goal1 (?Goal6 (fun A : ?Goal0 => F0 A))U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall F0 : ?Goal0 -> ?Goal0, ?Goal1 (?Goal6 (fun A : ?Goal0 => F0 A)) -> forall A : ?Goal0, ?Goal1 (F0 A)U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1?Goal0U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1?Goal1 ?Goal10 -> TypeU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall u : ?Goal1 ?Goal10, (?Goal11 u -> ?Goal1 ?Goal10) -> ?Goal1 ?Goal10U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall u : ?Goal0, (?Goal1 u -> ?Goal1 ?Goal10) -> ?Goal1 ?Goal10U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1?Goal1 ?Goal10U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1h:?Goal11 ?Goal18FU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (u : ?Goal0) (B : ?Goal1 u -> ?Goal0) (f : forall x : ?Goal1 u, ?Goal1 (B x)) (x : ?Goal1 u), ?Goal4 u (fun x0 : ?Goal1 u => B x0) (?Goal3 u B (fun y : ?Goal1 u => f y)) x = f xU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (F0 : ?Goal0 -> ?Goal0) (f : forall A : ?Goal0, ?Goal1 (F0 A)) (A : ?Goal0), ?Goal8 F0 (?Goal7 F0 (fun x : ?Goal0 => f x)) A = f AU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (u : ?Goal1 ?Goal10) (B : ?Goal11 u -> ?Goal1 ?Goal10), (forall x : ?Goal11 u, ?Goal11 (B x)) -> ?Goal11 (?Goal12 u (fun x : ?Goal11 u => B x))U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (u : ?Goal1 ?Goal10) (B : ?Goal11 u -> ?Goal1 ?Goal10), ?Goal11 (?Goal12 u B) -> forall x : ?Goal11 u, ?Goal11 (B x)U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (U : ?Goal0) (F0 : ?Goal1 U -> ?Goal1 ?Goal10), (forall A : ?Goal1 U, ?Goal11 (F0 A)) -> ?Goal11 (?Goal15 U (fun A : ?Goal1 U => F0 A))U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (U : ?Goal0) (F0 : ?Goal1 U -> ?Goal1 ?Goal10), ?Goal11 (?Goal15 U (fun A : ?Goal1 U => F0 A)) -> forall A : ?Goal1 U, ?Goal11 (F0 A)
Large universe
exact U1.U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1Typeexact (fun X => X).U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1U1 -> TypeU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall u : U1, ((fun X : U1 => X) u -> U1) -> U1exact (fun u F => forall x:u, F x).U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall u : U1, (u -> U1) -> U1U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (u : U1) (B : (fun X : U1 => X) u -> U1), (forall x : (fun X : U1 => X) u, (fun X : U1 => X) (B x)) -> (fun X : U1 => X) ((fun (u0 : U1) (F0 : u0 -> U1) => forall x : u0, F0 x) u (fun x : (fun X : U1 => X) u => B x))exact (fun _ _ x => x).U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (u : U1) (B : u -> U1), (forall x : u, B x) -> forall x : u, B xU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (u : U1) (B : (fun X : U1 => X) u -> U1), (fun X : U1 => X) ((fun (u0 : U1) (F0 : u0 -> U1) => forall x : u0, F0 x) u B) -> forall x : (fun X : U1 => X) u, (fun X : U1 => X) (B x)exact (fun _ _ x => x).U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (u : U1) (B : u -> U1), (forall x : u, B x) -> forall x : u, B xU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1(U1 -> U1) -> U1exact (fun F => u22u1 (forall x, F x)).U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1(U1 -> U1) -> U1U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall F0 : U1 -> U1, (forall A : U1, (fun X : U1 => X) (F0 A)) -> (fun X : U1 => X) ((fun F1 : U1 -> U1 => u22u1 (forall x : U1, F1 x)) (fun A : U1 => F0 A))exact (fun _ x => u22u1_unit _ x).U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall F0 : U1 -> U1, (forall A : U1, F0 A) -> u22u1 (forall x : U1, F0 x)U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall F0 : U1 -> U1, (fun X : U1 => X) ((fun F1 : U1 -> U1 => u22u1 (forall x : U1, F1 x)) (fun A : U1 => F0 A)) -> forall A : U1, (fun X : U1 => X) (F0 A)exact (fun _ x => u22u1_counit _ x).U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall F0 : U1 -> U1, u22u1 (forall x : U1, F0 x) -> forall A : U1, F0 A
Small universe
exact U0.U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1U1
The interpretation of the small universe is the image of
U0 in U1.
U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1(fun X : U1 => X) U0 -> Typeexact (fun X => u02u1 X).U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1U0 -> TypeU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall u : (fun X : U1 => X) U0, ((fun X : U0 => u02u1 X) u -> (fun X : U1 => X) U0) -> (fun X : U1 => X) U0exact (fun u F => u12u0 (forall x:(u02u1 u), u02u1 (F x))).U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall u : U0, (u02u1 u -> U0) -> U0U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall u : U1, ((fun X : U1 => X) u -> (fun X : U1 => X) U0) -> (fun X : U1 => X) U0exact (fun u F => u12u0 (forall x:u, u02u1 (F x))).U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall u : U1, (u -> U0) -> U0U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1(fun X : U1 => X) U0exact (u12u0 F).U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1U0U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1h:(fun X : U0 => u02u1 X) (u12u0 F)Fexact (u12u0_counit _ h).U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1h:u02u1 (u12u0 F)FU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (u : U1) (B : (fun X : U1 => X) u -> U1) (f : forall x : (fun X : U1 => X) u, (fun X : U1 => X) (B x)) (x : (fun X : U1 => X) u), (fun (u0 : U1) (B0 : u0 -> U1) (x0 : forall x0 : u0, B0 x0) => x0) u (fun x0 : (fun X : U1 => X) u => B x0) ((fun (u0 : U1) (B0 : u0 -> U1) (x0 : forall x0 : u0, B0 x0) => x0) u B (fun y : (fun X : U1 => X) u => f y)) x = f xeasy.U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (u : U1) (B : u -> U1) (f : forall x : u, B x) (x : u), f x = f xU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (F0 : U1 -> U1) (f : forall A : U1, (fun X : U1 => X) (F0 A)) (A : U1), (fun (F1 : U1 -> U1) (x : u22u1 (forall x : U1, F1 x)) => u22u1_counit F1 x) F0 ((fun (F1 : U1 -> U1) (x : forall A0 : U1, F1 A0) => u22u1_unit (forall A0 : U1, F1 A0) x) F0 (fun x : U1 => f x)) A = f AU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (F0 : U1 -> U1) (f : forall A : U1, F0 A) (A : U1), u22u1_counit F0 (u22u1_unit (forall A0 : U1, F0 A0) (fun x : U1 => f x)) A = f Anow rewrite u22u1_coherent.U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F1 : U1 -> U1, u22u1 (forall A0 : U1, F1 A0) -> forall A0 : U1, F1 A0u22u1_coherent:forall (F1 : U1 -> U1) (f0 : forall x : U1, F1 x) (x : U1), u22u1_counit F1 (u22u1_unit (forall x0 : U1, F1 x0) f0) x = f0 xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1F0:U1 -> U1f:forall A0 : U1, F0 A0A:U1u22u1_counit F0 (u22u1_unit (forall A0 : U1, F0 A0) (fun x : U1 => f x)) A = f AU2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (u : (fun X : U1 => X) U0) (B : (fun X : U0 => u02u1 X) u -> (fun X : U1 => X) U0), (forall x : (fun X : U0 => u02u1 X) u, (fun X : U0 => u02u1 X) (B x)) -> (fun X : U0 => u02u1 X) ((fun (u0 : U0) (F0 : u02u1 u0 -> U0) => u12u0 (forall x : u02u1 u0, u02u1 (F0 x))) u (fun x : (fun X : U0 => u02u1 X) u => B x))U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (u : U0) (B : u02u1 u -> U0), (forall x : u02u1 u, u02u1 (B x)) -> u02u1 (u12u0 (forall x : u02u1 u, u02u1 (B x)))exact (u12u0_unit _ x).U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x0 : U1, F0 x0) (x0 : U1), u22u1_counit F0 (u22u1_unit (forall x1 : U1, F0 x1) f) x0 = f x0u02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1u:U0B:u02u1 u -> U0x:forall x0 : u02u1 u, u02u1 (B x0)u02u1 (u12u0 (forall x0 : u02u1 u, u02u1 (B x0)))U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (u : (fun X : U1 => X) U0) (B : (fun X : U0 => u02u1 X) u -> (fun X : U1 => X) U0), (fun X : U0 => u02u1 X) ((fun (u0 : U0) (F0 : u02u1 u0 -> U0) => u12u0 (forall x : u02u1 u0, u02u1 (F0 x))) u B) -> forall x : (fun X : U0 => u02u1 X) u, (fun X : U0 => u02u1 X) (B x)U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (u : U0) (B : u02u1 u -> U0), u02u1 (u12u0 (forall x : u02u1 u, u02u1 (B x))) -> forall x : u02u1 u, u02u1 (B x)exact (u12u0_counit _ x).U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x0 : U1, F0 x0) (x0 : U1), u22u1_counit F0 (u22u1_unit (forall x1 : U1, F0 x1) f) x0 = f x0u02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1u:U0B:u02u1 u -> U0x:u02u1 (u12u0 (forall x0 : u02u1 u, u02u1 (B x0)))forall x0 : u02u1 u, u02u1 (B x0)U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (U : U1) (F0 : (fun X : U1 => X) U -> (fun X : U1 => X) U0), (forall A : (fun X : U1 => X) U, (fun X : U0 => u02u1 X) (F0 A)) -> (fun X : U0 => u02u1 X) ((fun (u : U1) (F1 : u -> U0) => u12u0 (forall x : u, u02u1 (F1 x))) U (fun A : (fun X : U1 => X) U => F0 A))U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (U : U1) (F0 : U -> U0), (forall A : U, u02u1 (F0 A)) -> u02u1 (u12u0 (forall x : U, u02u1 (F0 x)))exact (u12u0_unit _ x).U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F1 : U1 -> U1, u22u1 (forall A : U1, F1 A) -> forall A : U1, F1 Au22u1_coherent:forall (F1 : U1 -> U1) (f : forall x0 : U1, F1 x0) (x0 : U1), u22u1_counit F1 (u22u1_unit (forall x1 : U1, F1 x1) f) x0 = f x0u02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF, U:U1F0:U -> U0x:forall A : U, u02u1 (F0 A)u02u1 (u12u0 (forall x0 : U, u02u1 (F0 x0)))U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (U : U1) (F0 : (fun X : U1 => X) U -> (fun X : U1 => X) U0), (fun X : U0 => u02u1 X) ((fun (u : U1) (F1 : u -> U0) => u12u0 (forall x : u, u02u1 (F1 x))) U (fun A : (fun X : U1 => X) U => F0 A)) -> forall A : (fun X : U1 => X) U, (fun X : U0 => u02u1 X) (F0 A)U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F0 : U1 -> U1, u22u1 (forall A : U1, F0 A) -> forall A : U1, F0 Au22u1_coherent:forall (F0 : U1 -> U1) (f : forall x : U1, F0 x) (x : U1), u22u1_counit F0 (u22u1_unit (forall x0 : U1, F0 x0) f) x = f xu02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF:U1forall (U : U1) (F0 : U -> U0), u02u1 (u12u0 (forall x : U, u02u1 (F0 x))) -> forall A : U, u02u1 (F0 A)exact (u12u0_counit _ x). Qed. End Paradox. End NoRetractToImpredicativeUniverse.U2:=Type:TypeU1:=Type:U2U0:U1u22u1:U2 -> U1u22u1_unit:forall c : U2, c -> u22u1 cu22u1_counit:forall F1 : U1 -> U1, u22u1 (forall A : U1, F1 A) -> forall A : U1, F1 Au22u1_coherent:forall (F1 : U1 -> U1) (f : forall x0 : U1, F1 x0) (x0 : U1), u22u1_counit F1 (u22u1_unit (forall x1 : U1, F1 x1) f) x0 = f x0u02u1:U0 -> U1u12u0:U1 -> U0u12u0_unit:forall b : U1, b -> u02u1 (u12u0 b)u12u0_counit:forall b : U1, u02u1 (u12u0 b) -> bF, U:U1F0:U -> U0x:u02u1 (u12u0 (forall x0 : U, u02u1 (F0 x0)))forall A : U, u02u1 (F0 A)
In presence of a a monadic modality on Prop, we can define a
subset of Prop of modal propositions which is also a complete
Heyting algebra. These cannot be a retract of a modal
proposition. This is a case where the universe in system U- are
not encoded as Coq universes.
Module NoRetractToModalProposition.
Section Paradox. Variable M : Prop -> Prop. Hypothesis incr : forall A B:Prop, (A->B) -> M A -> M B.M:Prop -> Propincr:forall A B : Prop, (A -> B) -> M A -> M Bforall (A : Type) (P : A -> Prop), M (forall x : A, P x) -> forall x : A, M (P x)M:Prop -> Propincr:forall A B : Prop, (A -> B) -> M A -> M Bforall (A : Type) (P : A -> Prop), M (forall x : A, P x) -> forall x : A, M (P x)eapply incr in h; eauto. Qed.M:Prop -> Propincr:forall A0 B : Prop, (A0 -> B) -> M A0 -> M BA:TypeP:A -> Proph:M (forall x0 : A, P x0)x:AM (P x)
Definition MProp := { P:Prop | M P -> P }. Definition El : MProp -> Prop := @proj1_sig _ _.M:Prop -> Propincr:forall A B : Prop, (A -> B) -> M A -> M Bforall P : MProp, M (El P) -> El PM:Prop -> Propincr:forall A B : Prop, (A -> B) -> M A -> M Bforall P : MProp, M (El P) -> El PM:Prop -> Propincr:forall A B : Prop, (A -> B) -> M A -> M BP:Propm:M P -> PM (El (exist (fun P0 : Prop => M P0 -> P0) P m)) -> El (exist (fun P0 : Prop => M P0 -> P0) P m)exact m. Qed.M:Prop -> Propincr:forall A B : Prop, (A -> B) -> M A -> M BP:Propm:M P -> PM P -> PM:Prop -> Propincr:forall A0 B : Prop, (A0 -> B) -> M A0 -> M BA:TypeP:A -> MPropMPropM:Prop -> Propincr:forall A0 B : Prop, (A0 -> B) -> M A0 -> M BA:TypeP:A -> MPropMPropM:Prop -> Propincr:forall A0 B : Prop, (A0 -> B) -> M A0 -> M BA:TypeP:A -> MPropPropM:Prop -> Propincr:forall A0 B : Prop, (A0 -> B) -> M A0 -> M BA:TypeP:A -> MPropM ?Goal -> ?Goalexact (forall x:A, El (P x)).M:Prop -> Propincr:forall A0 B : Prop, (A0 -> B) -> M A0 -> M BA:TypeP:A -> MPropPropM:Prop -> Propincr:forall A0 B : Prop, (A0 -> B) -> M A0 -> M BA:TypeP:A -> MPropM (forall x : A, El (P x)) -> forall x : A, El (P x)M:Prop -> Propincr:forall A0 B : Prop, (A0 -> B) -> M A0 -> M BA:TypeP:A -> MProph:M (forall x0 : A, El (P x0))x:AEl (P x)eauto using modal. Defined.M:Prop -> Propincr:forall A0 B : Prop, (A0 -> B) -> M A0 -> M BA:TypeP:A -> MPropx:Ah:M (El (P ?x))El (P x)
The retract is axiomatized using logical equivalence as the
equality on propositions.
Variable bool : MProp. Variable p2b : MProp -> El bool. Variable b2p : El bool -> MProp. Hypothesis p2p1 : forall A:MProp, El (b2p (p2b A)) -> El A. Hypothesis p2p2 : forall A:MProp, El A -> El (b2p (p2b A)).
M:Prop -> Propincr:forall A B : Prop, (A -> B) -> M A -> M Bbool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))forall B : MProp, El BM:Prop -> Propincr:forall A B : Prop, (A -> B) -> M A -> M Bbool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))forall B : MProp, El BM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropEl BM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropTypeM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MProp?Goal0 -> TypeM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall u : ?Goal0, (?Goal1 u -> ?Goal0) -> ?Goal0M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (u : ?Goal0) (B0 : ?Goal1 u -> ?Goal0), (forall x : ?Goal1 u, ?Goal1 (B0 x)) -> ?Goal1 (?Goal2 u (fun x : ?Goal1 u => B0 x))M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (u : ?Goal0) (B0 : ?Goal1 u -> ?Goal0), ?Goal1 (?Goal2 u B0) -> forall x : ?Goal1 u, ?Goal1 (B0 x)M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MProp(?Goal0 -> ?Goal0) -> ?Goal0M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall F : ?Goal0 -> ?Goal0, (forall A : ?Goal0, ?Goal1 (F A)) -> ?Goal1 (?Goal6 (fun A : ?Goal0 => F A))M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall F : ?Goal0 -> ?Goal0, ?Goal1 (?Goal6 (fun A : ?Goal0 => F A)) -> forall A : ?Goal0, ?Goal1 (F A)M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MProp?Goal0M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MProp?Goal1 ?Goal10 -> TypeM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall u : ?Goal1 ?Goal10, (?Goal11 u -> ?Goal1 ?Goal10) -> ?Goal1 ?Goal10M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall u : ?Goal0, (?Goal1 u -> ?Goal1 ?Goal10) -> ?Goal1 ?Goal10M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MProp?Goal1 ?Goal10M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MProph:?Goal11 ?Goal18El BM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (u : ?Goal0) (B0 : ?Goal1 u -> ?Goal0) (f : forall x : ?Goal1 u, ?Goal1 (B0 x)) (x : ?Goal1 u), ?Goal4 u (fun x0 : ?Goal1 u => B0 x0) (?Goal3 u B0 (fun y : ?Goal1 u => f y)) x = f xM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (F : ?Goal0 -> ?Goal0) (f : forall A : ?Goal0, ?Goal1 (F A)) (A : ?Goal0), ?Goal8 F (?Goal7 F (fun x : ?Goal0 => f x)) A = f AM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (u : ?Goal1 ?Goal10) (B0 : ?Goal11 u -> ?Goal1 ?Goal10), (forall x : ?Goal11 u, ?Goal11 (B0 x)) -> ?Goal11 (?Goal12 u (fun x : ?Goal11 u => B0 x))M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (u : ?Goal1 ?Goal10) (B0 : ?Goal11 u -> ?Goal1 ?Goal10), ?Goal11 (?Goal12 u B0) -> forall x : ?Goal11 u, ?Goal11 (B0 x)M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (U : ?Goal0) (F : ?Goal1 U -> ?Goal1 ?Goal10), (forall A : ?Goal1 U, ?Goal11 (F A)) -> ?Goal11 (?Goal15 U (fun A : ?Goal1 U => F A))M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (U : ?Goal0) (F : ?Goal1 U -> ?Goal1 ?Goal10), ?Goal11 (?Goal15 U (fun A : ?Goal1 U => F A)) -> forall A : ?Goal1 U, ?Goal11 (F A)
Large universe
exact MProp.M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropTypeexact El.M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropMProp -> Typeexact (fun _ => Forall).M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall u : MProp, (El u -> MProp) -> MPropM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (u : MProp) (B0 : El u -> MProp), (forall x : El u, El (B0 x)) -> El ((fun u0 : MProp => Forall) u (fun x : El u => B0 x))exact (fun _ _ f => f).M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (u : MProp) (B0 : El u -> MProp), (forall x : El u, El (B0 x)) -> forall x : El u, El (B0 x)M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (u : MProp) (B0 : El u -> MProp), El ((fun u0 : MProp => Forall) u B0) -> forall x : El u, El (B0 x)exact (fun _ _ f => f).M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (u : MProp) (B0 : El u -> MProp), (forall x : El u, El (B0 x)) -> forall x : El u, El (B0 x)exact Forall.M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MProp(MProp -> MProp) -> MPropM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall F : MProp -> MProp, (forall A : MProp, El (F A)) -> El (Forall (fun A : MProp => F A))exact (fun _ f => f).M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall F : MProp -> MProp, (forall A : MProp, El (F A)) -> forall x : MProp, El (F x)M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall F : MProp -> MProp, El (Forall (fun A : MProp => F A)) -> forall A : MProp, El (F A)exact (fun _ f => f).M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall F : MProp -> MProp, (forall x : MProp, El (F x)) -> forall A : MProp, El (F A)
Small universe
exact bool.M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropMPropexact (fun b => El (b2p b)).M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropEl bool -> TypeM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall u : El bool, ((fun b : El bool => El (b2p b)) u -> El bool) -> El boolexact (fun _ F => p2b (Forall (fun x => b2p (F x)))).M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall u : El bool, (El (b2p u) -> El bool) -> El boolexact (fun _ F => p2b (Forall (fun x => b2p (F x)))).M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall u : MProp, (El u -> El bool) -> El boolM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropEl boolexact B.M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropMPropM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MProph:(fun b : El bool => El (b2p b)) (p2b B)El Bauto.M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MProph:El (b2p (p2b B))El BM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (u : MProp) (B0 : El u -> MProp) (f : forall x : El u, El (B0 x)) (x : El u), (fun (u0 : MProp) (B1 : El u0 -> MProp) (f0 : forall x0 : El u0, El (B1 x0)) => f0) u (fun x0 : El u => B0 x0) ((fun (u0 : MProp) (B1 : El u0 -> MProp) (f0 : forall x0 : El u0, El (B1 x0)) => f0) u B0 (fun y : El u => f y)) x = f xeasy.M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (u : MProp) (B0 : El u -> MProp) (f : forall x : El u, El (B0 x)) (x : El u), f x = f xM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (F : MProp -> MProp) (f : forall A : MProp, El (F A)) (A : MProp), (fun (F0 : MProp -> MProp) (f0 : forall x : MProp, El (F0 x)) => f0) F ((fun (F0 : MProp -> MProp) (f0 : forall A0 : MProp, El (F0 A0)) => f0) F (fun x : MProp => f x)) A = f Aeasy.M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (F : MProp -> MProp) (f : forall A : MProp, El (F A)) (A : MProp), f A = f AM:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (u : El bool) (B0 : (fun b : El bool => El (b2p b)) u -> El bool), (forall x : (fun b : El bool => El (b2p b)) u, (fun b : El bool => El (b2p b)) (B0 x)) -> (fun b : El bool => El (b2p b)) ((fun (u0 : El bool) (F : El (b2p u0) -> El bool) => p2b (Forall (fun x : El (b2p u0) => b2p (F x)))) u (fun x : (fun b : El bool => El (b2p b)) u => B0 x))auto.M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (u : El bool) (B0 : El (b2p u) -> El bool), (forall x : El (b2p u), El (b2p (B0 x))) -> El (b2p (p2b (Forall (fun x : El (b2p u) => b2p (B0 x)))))M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (u : El bool) (B0 : (fun b : El bool => El (b2p b)) u -> El bool), (fun b : El bool => El (b2p b)) ((fun (u0 : El bool) (F : El (b2p u0) -> El bool) => p2b (Forall (fun x : El (b2p u0) => b2p (F x)))) u B0) -> forall x : (fun b : El bool => El (b2p b)) u, (fun b : El bool => El (b2p b)) (B0 x)M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (u : El bool) (B0 : El (b2p u) -> El bool), El (b2p (p2b (Forall (fun x : El (b2p u) => b2p (B0 x))))) -> forall x : El (b2p u), El (b2p (B0 x))M:Prop -> Propincr:forall A B1 : Prop, (A -> B1) -> M A -> M B1bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropu:El boolB0:El (b2p u) -> El boolf:El (b2p (p2b (Forall (fun x : El (b2p u) => b2p (B0 x)))))forall x : El (b2p u), El (b2p (B0 x))M:Prop -> Propincr:forall A B1 : Prop, (A -> B1) -> M A -> M B1bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropu:El boolB0:El (b2p u) -> El boolf:El (Forall (fun x : El (b2p u) => b2p (B0 x)))forall x : El (b2p u), El (b2p (B0 x))exact f.M:Prop -> Propincr:forall A B1 : Prop, (A -> B1) -> M A -> M B1bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropu:El boolB0:El (b2p u) -> El boolf:forall x : El (b2p u), El (b2p (B0 x))forall x : El (b2p u), El (b2p (B0 x))M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (U : MProp) (F : El U -> El bool), (forall A : El U, (fun b : El bool => El (b2p b)) (F A)) -> (fun b : El bool => El (b2p b)) ((fun (u : MProp) (F0 : El u -> El bool) => p2b (Forall (fun x : El u => b2p (F0 x)))) U (fun A : El U => F A))auto.M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (U : MProp) (F : El U -> El bool), (forall A : El U, El (b2p (F A))) -> El (b2p (p2b (Forall (fun x : El U => b2p (F x)))))M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (U : MProp) (F : El U -> El bool), (fun b : El bool => El (b2p b)) ((fun (u : MProp) (F0 : El u -> El bool) => p2b (Forall (fun x : El u => b2p (F0 x)))) U (fun A : El U => F A)) -> forall A : El U, (fun b : El bool => El (b2p b)) (F A)M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B:MPropforall (U : MProp) (F : El U -> El bool), El (b2p (p2b (Forall (fun x : El U => b2p (F x))))) -> forall A : El U, El (b2p (F A))M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B, U:MPropF:El U -> El boolf:El (b2p (p2b (Forall (fun x : El U => b2p (F x)))))forall A : El U, El (b2p (F A))M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B, U:MPropF:El U -> El boolf:El (Forall (fun x : El U => b2p (F x)))forall A : El U, El (b2p (F A))exact f. Qed. End Paradox. End NoRetractToModalProposition.M:Prop -> Propincr:forall A B0 : Prop, (A -> B0) -> M A -> M B0bool:MPropp2b:MProp -> El boolb2p:El bool -> MPropp2p1:forall A : MProp, El (b2p (p2b A)) -> El Ap2p2:forall A : MProp, El A -> El (b2p (p2b A))B, U:MPropF:El U -> El boolf:forall x : El U, El (b2p (F x))forall A : El U, El (b2p (F A))
The existence in the pure Calculus of Constructions of a retract
from the negative fragment of Prop into a negative proposition
is inconsistent. This is an instance of the previous result.
Module NoRetractToNegativeProp.
Definition NProp := { P:Prop | ~~P -> P }. Definition El : NProp -> Prop := @proj1_sig _ _. Section Paradox.
The retract is axiomatized using logical equivalence as the
equality on propositions.
Variable bool : NProp. Variable p2b : NProp -> El bool. Variable b2p : El bool -> NProp. Hypothesis p2p1 : forall A:NProp, El (b2p (p2b A)) -> El A. Hypothesis p2p2 : forall A:NProp, El A -> El (b2p (p2b A)).
bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))forall B : NProp, El Bbool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))forall B : NProp, El Bbool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropEl Bbool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropProp -> Propbool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.MProp ?Goal0bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.MProp ?Goal0 -> NoRetractToModalProposition.El ?Goal0 ?Goal2bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.El ?Goal0 ?Goal2 -> NoRetractToModalProposition.MProp ?Goal0bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.MProp ?Goal0bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NProph:NoRetractToModalProposition.El ?Goal0 ?Goal7El Bbool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A B0 : Prop, (A -> B0) -> ?Goal0 A -> ?Goal0 B0bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A : NoRetractToModalProposition.MProp ?Goal0, NoRetractToModalProposition.El ?Goal0 (?Goal4 (?Goal3 A)) -> NoRetractToModalProposition.El ?Goal0 Abool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A : NoRetractToModalProposition.MProp ?Goal0, NoRetractToModalProposition.El ?Goal0 A -> NoRetractToModalProposition.El ?Goal0 (?Goal4 (?Goal3 A))exact (fun P => ~~P).bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropProp -> Propexact bool.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.MProp (fun P : Prop => ~ ~ P)exact p2b.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.MProp (fun P : Prop => ~ ~ P) -> NoRetractToModalProposition.El (fun P : Prop => ~ ~ P) boolexact b2p.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.El (fun P : Prop => ~ ~ P) bool -> NoRetractToModalProposition.MProp (fun P : Prop => ~ ~ P)exact B.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.MProp (fun P : Prop => ~ ~ P)exact h.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NProph:NoRetractToModalProposition.El (fun P : Prop => ~ ~ P) BEl Bbool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A B0 : Prop, (A -> B0) -> (fun P : Prop => ~ ~ P) A -> (fun P : Prop => ~ ~ P) B0auto.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A B0 : Prop, (A -> B0) -> ~ ~ A -> ~ ~ B0bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A : NoRetractToModalProposition.MProp (fun P : Prop => ~ ~ P), NoRetractToModalProposition.El (fun P : Prop => ~ ~ P) (b2p (p2b A)) -> NoRetractToModalProposition.El (fun P : Prop => ~ ~ P) Aauto.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A : NoRetractToModalProposition.MProp (fun P : Prop => ~ ~ P), NoRetractToModalProposition.El (fun P : Prop => ~ ~ P) (b2p (p2b A)) -> NoRetractToModalProposition.El (fun P : Prop => ~ ~ P) Abool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A : NoRetractToModalProposition.MProp (fun P : Prop => ~ ~ P), NoRetractToModalProposition.El (fun P : Prop => ~ ~ P) A -> NoRetractToModalProposition.El (fun P : Prop => ~ ~ P) (b2p (p2b A))auto. Qed. End Paradox. End NoRetractToNegativeProp.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A : NoRetractToModalProposition.MProp (fun P : Prop => ~ ~ P), NoRetractToModalProposition.El (fun P : Prop => ~ ~ P) A -> NoRetractToModalProposition.El (fun P : Prop => ~ ~ P) (b2p (p2b A))
The existence in the pure Calculus of Constructions of a retract
from Prop into a small type of Prop is inconsistent. This is a
special case of the previous result.
Module NoRetractFromSmallPropositionToProp.
Definition NProp := { P:Prop | P -> P}. Definition El : NProp -> Prop := @proj1_sig _ _. Section MParadox.
Variable bool : NProp. Variable p2b : NProp -> El bool. Variable b2p : El bool -> NProp. Hypothesis p2p1 : forall A:NProp, El (b2p (p2b A)) -> El A. Hypothesis p2p2 : forall A:NProp, El A -> El (b2p (p2b A)).
bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))forall B : NProp, El Bbool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))forall B : NProp, El Bbool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropEl Bbool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropProp -> Propbool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.MProp ?Goal0bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.MProp ?Goal0 -> NoRetractToModalProposition.El ?Goal0 ?Goal2bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.El ?Goal0 ?Goal2 -> NoRetractToModalProposition.MProp ?Goal0bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.MProp ?Goal0bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NProph:NoRetractToModalProposition.El ?Goal0 ?Goal7El Bbool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A B0 : Prop, (A -> B0) -> ?Goal0 A -> ?Goal0 B0bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A : NoRetractToModalProposition.MProp ?Goal0, NoRetractToModalProposition.El ?Goal0 (?Goal4 (?Goal3 A)) -> NoRetractToModalProposition.El ?Goal0 Abool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A : NoRetractToModalProposition.MProp ?Goal0, NoRetractToModalProposition.El ?Goal0 A -> NoRetractToModalProposition.El ?Goal0 (?Goal4 (?Goal3 A))exact (fun P => P).bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropProp -> Propexact bool.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.MProp (fun P : Prop => P)exact p2b.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.MProp (fun P : Prop => P) -> NoRetractToModalProposition.El (fun P : Prop => P) boolexact b2p.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.El (fun P : Prop => P) bool -> NoRetractToModalProposition.MProp (fun P : Prop => P)exact B.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropNoRetractToModalProposition.MProp (fun P : Prop => P)exact h.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NProph:NoRetractToModalProposition.El (fun P : Prop => P) BEl Bbool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A B0 : Prop, (A -> B0) -> (fun P : Prop => P) A -> (fun P : Prop => P) B0auto.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A B0 : Prop, (A -> B0) -> A -> B0bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A : NoRetractToModalProposition.MProp (fun P : Prop => P), NoRetractToModalProposition.El (fun P : Prop => P) (b2p (p2b A)) -> NoRetractToModalProposition.El (fun P : Prop => P) Aauto.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A : NoRetractToModalProposition.MProp (fun P : Prop => P), NoRetractToModalProposition.El (fun P : Prop => P) (b2p (p2b A)) -> NoRetractToModalProposition.El (fun P : Prop => P) Abool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A : NoRetractToModalProposition.MProp (fun P : Prop => P), NoRetractToModalProposition.El (fun P : Prop => P) A -> NoRetractToModalProposition.El (fun P : Prop => P) (b2p (p2b A))auto. Qed. End MParadox. Section Paradox.bool:NPropp2b:NProp -> El boolb2p:El bool -> NPropp2p1:forall A : NProp, El (b2p (p2b A)) -> El Ap2p2:forall A : NProp, El A -> El (b2p (p2b A))B:NPropforall A : NoRetractToModalProposition.MProp (fun P : Prop => P), NoRetractToModalProposition.El (fun P : Prop => P) A -> NoRetractToModalProposition.El (fun P : Prop => P) (b2p (p2b A))
The retract is axiomatized using logical equivalence as the
equality on propositions.
Variable bool : Prop. Variable p2b : Prop -> bool. Variable b2p : bool -> Prop. Hypothesis p2p1 : forall A:Prop, b2p (p2b A) -> A. Hypothesis p2p2 : forall A:Prop, A -> b2p (p2b A).
bool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)forall B : Prop, Bbool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)forall B : Prop, Bbool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:PropBbool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:PropNProp -> El (exist (fun x : Prop => x -> x) bool (fun x : bool => x))bool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:PropEl (exist (fun x : Prop => x -> x) bool (fun x : bool => x)) -> NPropbool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:Propforall A : NProp, El (?Goal0 (?Goal A)) -> El Abool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:Propforall A : NProp, El A -> El (?Goal0 (?Goal A))bool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:PropNProp -> El (exist (fun x : Prop => x -> x) bool (fun x : bool => x))bool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:Propp:NPropEl (exist (fun x : Prop => x -> x) bool (fun x : bool => x))bool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:Propp:NPropproj1_sig (exist (fun x : Prop => x -> x) bool (fun x : bool => x))exact (p2b (El p)).bool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:Propp:NPropboolbool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:PropEl (exist (fun x : Prop => x -> x) bool (fun x : bool => x)) -> NPropbool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:Propbool -> NPropbool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:Propb:boolNPropbool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:Propb:bool{P : Prop | P -> P}exact (fun x => x).bool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:Propb:boolb2p b -> b2p bbool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:Propforall A : NProp, El ((fun b : bool => exist (fun P : Prop => P -> P) (b2p b) (fun x : b2p b => x)) ((fun p : NProp => p2b (El p)) A)) -> El Abool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:Propforall A : NProp, b2p (p2b (El A)) -> El Abool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A0 : Prop, b2p (p2b A0) -> A0p2p2:forall A0 : Prop, A0 -> b2p (p2b A0)B, A:PropH:A -> Ab2p (p2b (El (exist (fun P : Prop => P -> P) A H))) -> El (exist (fun P : Prop => P -> P) A H)apply p2p1.bool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A0 : Prop, b2p (p2b A0) -> A0p2p2:forall A0 : Prop, A0 -> b2p (p2b A0)B, A:PropH:A -> Ab2p (p2b A) -> Abool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:Propforall A : NProp, El A -> El ((fun b : bool => exist (fun P : Prop => P -> P) (b2p b) (fun x : b2p b => x)) ((fun p : NProp => p2b (El p)) A))bool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A : Prop, b2p (p2b A) -> Ap2p2:forall A : Prop, A -> b2p (p2b A)B:Propforall A : NProp, El A -> b2p (p2b (El A))bool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A0 : Prop, b2p (p2b A0) -> A0p2p2:forall A0 : Prop, A0 -> b2p (p2b A0)B, A:PropH:A -> AEl (exist (fun P : Prop => P -> P) A H) -> b2p (p2b (El (exist (fun P : Prop => P -> P) A H)))apply p2p2. Qed. End Paradox. End NoRetractFromSmallPropositionToProp.bool:Propp2b:Prop -> boolb2p:bool -> Propp2p1:forall A0 : Prop, b2p (p2b A0) -> A0p2p2:forall A0 : Prop, A0 -> b2p (p2b A0)B, A:PropH:A -> AA -> b2p (p2b A)
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.
Variable down : Type1 -> Prop. Variable up : Prop -> Type1. Hypothesis up_down : forall (A:Type1), up (down A) = A :> Type1.
down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = Aforall P : Prop, Pdown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = Aforall P : Prop, Pdown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:PropPdown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:PropTypedown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Prop?Goal0 -> Typedown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall u : ?Goal0, (?Goal1 u -> ?Goal0) -> ?Goal0down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (u : ?Goal0) (B : ?Goal1 u -> ?Goal0), (forall x : ?Goal1 u, ?Goal1 (B x)) -> ?Goal1 (?Goal2 u (fun x : ?Goal1 u => B x))down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (u : ?Goal0) (B : ?Goal1 u -> ?Goal0), ?Goal1 (?Goal2 u B) -> forall x : ?Goal1 u, ?Goal1 (B x)down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Prop(?Goal0 -> ?Goal0) -> ?Goal0down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall F : ?Goal0 -> ?Goal0, (forall A : ?Goal0, ?Goal1 (F A)) -> ?Goal1 (?Goal6 (fun A : ?Goal0 => F A))down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall F : ?Goal0 -> ?Goal0, ?Goal1 (?Goal6 (fun A : ?Goal0 => F A)) -> forall A : ?Goal0, ?Goal1 (F A)down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Prop?Goal0down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Prop?Goal1 ?Goal10 -> Typedown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall u : ?Goal1 ?Goal10, (?Goal11 u -> ?Goal1 ?Goal10) -> ?Goal1 ?Goal10down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall u : ?Goal0, (?Goal1 u -> ?Goal1 ?Goal10) -> ?Goal1 ?Goal10down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Prop?Goal1 ?Goal10down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Proph:?Goal11 ?Goal18Pdown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (u : ?Goal0) (B : ?Goal1 u -> ?Goal0) (f : forall x : ?Goal1 u, ?Goal1 (B x)) (x : ?Goal1 u), ?Goal4 u (fun x0 : ?Goal1 u => B x0) (?Goal3 u B (fun y : ?Goal1 u => f y)) x = f xdown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (F : ?Goal0 -> ?Goal0) (f : forall A : ?Goal0, ?Goal1 (F A)) (A : ?Goal0), ?Goal8 F (?Goal7 F (fun x : ?Goal0 => f x)) A = f Adown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (u : ?Goal1 ?Goal10) (B : ?Goal11 u -> ?Goal1 ?Goal10), (forall x : ?Goal11 u, ?Goal11 (B x)) -> ?Goal11 (?Goal12 u (fun x : ?Goal11 u => B x))down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (u : ?Goal1 ?Goal10) (B : ?Goal11 u -> ?Goal1 ?Goal10), ?Goal11 (?Goal12 u B) -> forall x : ?Goal11 u, ?Goal11 (B x)down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (U : ?Goal0) (F : ?Goal1 U -> ?Goal1 ?Goal10), (forall A : ?Goal1 U, ?Goal11 (F A)) -> ?Goal11 (?Goal15 U (fun A : ?Goal1 U => F A))down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (U : ?Goal0) (F : ?Goal1 U -> ?Goal1 ?Goal10), ?Goal11 (?Goal15 U (fun A : ?Goal1 U => F A)) -> forall A : ?Goal1 U, ?Goal11 (F A)
Large universe.
exact Type1.down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:PropTypeexact (fun X => X).down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:PropType1 -> Typedown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall u : Type1, ((fun X : Type1 => X) u -> Type1) -> Type1exact (fun u F => forall x, F x).down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall u : Type1, (u -> Type1) -> Type1down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (u : Type1) (B : (fun X : Type1 => X) u -> Type1), (forall x : (fun X : Type1 => X) u, (fun X : Type1 => X) (B x)) -> (fun X : Type1 => X) ((fun (u0 : Type1) (F : u0 -> Type1) => forall x : u0, F x) u (fun x : (fun X : Type1 => X) u => B x))exact (fun _ _ x => x).down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (u : Type1) (B : u -> Type1), (forall x : u, B x) -> forall x : u, B xdown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (u : Type1) (B : (fun X : Type1 => X) u -> Type1), (fun X : Type1 => X) ((fun (u0 : Type1) (F : u0 -> Type1) => forall x : u0, F x) u B) -> forall x : (fun X : Type1 => X) u, (fun X : Type1 => X) (B x)exact (fun _ _ x => x).down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (u : Type1) (B : u -> Type1), (forall x : u, B x) -> forall x : u, B xexact (fun F => forall A:Prop, F(up A)).down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Prop(Type1 -> Type1) -> Type1down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall F : Type1 -> Type1, (forall A : Type1, (fun X : Type1 => X) (F A)) -> (fun X : Type1 => X) ((fun F0 : Type1 -> Type1 => forall A : Prop, F0 (up A)) (fun A : Type1 => F A))exact (fun F f A => f (up A)).down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall F : Type1 -> Type1, (forall A : Type1, F A) -> forall A : Prop, F (up A)down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall F : Type1 -> Type1, (fun X : Type1 => X) ((fun F0 : Type1 -> Type1 => forall A : Prop, F0 (up A)) (fun A : Type1 => F A)) -> forall A : Type1, (fun X : Type1 => X) (F A)down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall F : Type1 -> Type1, (forall A : Prop, F (up A)) -> forall A : Type1, F Adown:Type1 -> Propup:Prop -> Type1up_down:forall A0 : Type1, up (down A0) = A0P:PropF:Type1 -> Type1f:forall A0 : Prop, F (up A0)A:Type1F Adown:Type1 -> Propup:Prop -> Type1up_down:forall A0 : Type1, up (down A0) = A0P:PropF:Type1 -> Type1A:Type1f:F (up (down A))F Aexact f.down:Type1 -> Propup:Prop -> Type1up_down:forall A0 : Type1, up (down A0) = A0P:PropF:Type1 -> Type1A:Type1f:F AF Aexact Prop.down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:PropType1down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Prop(fun X : Type1 => X) Prop -> Typeexact (fun X => X).down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:PropProp -> Typedown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall u : (fun X : Type1 => X) Prop, ((fun X : Prop => X) u -> (fun X : Type1 => X) Prop) -> (fun X : Type1 => X) Propexact (fun A P => forall x:A, P x).down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall u : Prop, (u -> Prop) -> Propdown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall u : Type1, ((fun X : Type1 => X) u -> (fun X : Type1 => X) Prop) -> (fun X : Type1 => X) Propexact (fun A P => forall x:A, P x).down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall u : Type1, (u -> Prop) -> Propdown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Prop(fun X : Type1 => X) Propexact P.down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:PropPropexact h.down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Proph:(fun X : Prop => X) PPdown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (u : Type1) (B : (fun X : Type1 => X) u -> Type1) (f : forall x : (fun X : Type1 => X) u, (fun X : Type1 => X) (B x)) (x : (fun X : Type1 => X) u), (fun (u0 : Type1) (B0 : u0 -> Type1) (x0 : forall x0 : u0, B0 x0) => x0) u (fun x0 : (fun X : Type1 => X) u => B x0) ((fun (u0 : Type1) (B0 : u0 -> Type1) (x0 : forall x0 : u0, B0 x0) => x0) u B (fun y : (fun X : Type1 => X) u => f y)) x = f xeasy.down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (u : Type1) (B : u -> Type1) (f : forall x : u, B x) (x : u), f x = f xdown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (F : Type1 -> Type1) (f : forall A : Type1, (fun X : Type1 => X) (F A)) (A : Type1), (fun (F0 : Type1 -> Type1) (f0 : forall A0 : Prop, F0 (up A0)) (A0 : Type1) => let f1 := f0 (down A0) in let f2 := eq_rect (up (down A0)) (fun t : Type1 => F0 t) f1 A0 (up_down A0) in f2) F ((fun (F0 : Type1 -> Type1) (f0 : forall A0 : Type1, F0 A0) (A0 : Prop) => f0 (up A0)) F (fun x : Type1 => f x)) A = f Adown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (F : Type1 -> Type1) (f : forall A : Type1, F A) (A : Type1), eq_rect (up (down A)) (fun t : Type1 => F t) (f (up (down A))) A (up_down A) = f Adown:Type1 -> Propup:Prop -> Type1up_down:forall A0 : Type1, up (down A0) = A0P:PropF:Type1 -> Type1f:forall A0 : Type1, F A0A:Type1eq_rect (up (down A)) (fun t : Type1 => F t) (f (up (down A))) A (up_down A) = f Adown:Type1 -> Propup:Prop -> Type1up_down:forall A0 : Type1, up (down A0) = A0P:PropF:Type1 -> Type1f:forall A0 : Type1, F A0A:Type1eq_rect (up (down A)) (fun t : Type1 => F t) (f (up (down A))) (up (down A)) eq_refl = f (up (down A))reflexivity.down:Type1 -> Propup:Prop -> Type1up_down:forall A0 : Type1, up (down A0) = A0P:PropF:Type1 -> Type1f:forall A0 : Type1, F A0A:Type1f (up (down A)) = f (up (down A))down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (u : (fun X : Type1 => X) Prop) (B : (fun X : Prop => X) u -> (fun X : Type1 => X) Prop), (forall x : (fun X : Prop => X) u, (fun X : Prop => X) (B x)) -> (fun X : Prop => X) ((fun (A : Prop) (P0 : A -> Prop) => forall x : A, P0 x) u (fun x : (fun X : Prop => X) u => B x))exact (fun _ _ x => x).down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (u : Prop) (B : u -> Prop), (forall x : u, B x) -> forall x : u, B xdown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (u : (fun X : Type1 => X) Prop) (B : (fun X : Prop => X) u -> (fun X : Type1 => X) Prop), (fun X : Prop => X) ((fun (A : Prop) (P0 : A -> Prop) => forall x : A, P0 x) u B) -> forall x : (fun X : Prop => X) u, (fun X : Prop => X) (B x)exact (fun _ _ x => x).down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (u : Prop) (B : u -> Prop), (forall x : u, B x) -> forall x : u, B xdown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (U : Type1) (F : (fun X : Type1 => X) U -> (fun X : Type1 => X) Prop), (forall A : (fun X : Type1 => X) U, (fun X : Prop => X) (F A)) -> (fun X : Prop => X) ((fun (A : Type1) (P0 : A -> Prop) => forall x : A, P0 x) U (fun A : (fun X : Type1 => X) U => F A))exact (fun _ _ x => x).down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (U : Type1) (F : U -> Prop), (forall A : U, F A) -> forall x : U, F xdown:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (U : Type1) (F : (fun X : Type1 => X) U -> (fun X : Type1 => X) Prop), (fun X : Prop => X) ((fun (A : Type1) (P0 : A -> Prop) => forall x : A, P0 x) U (fun A : (fun X : Type1 => X) U => F A)) -> forall A : (fun X : Type1 => X) U, (fun X : Prop => X) (F A)exact (fun _ _ x => x). Qed. End Paradox. End NoRetractFromTypeToProp.down:Type1 -> Propup:Prop -> Type1up_down:forall A : Type1, up (down A) = AP:Propforall (U : Type1) (F : U -> Prop), (forall x : U, F x) -> forall A : U, F A
No Coq universe can be equal to one of its elements.
Module TypeNeqSmallType. Unset Universe Polymorphism. Section Paradox.
Let U := Type. Variable A:U. Hypothesis h : U=A.
The following context is actually sufficient for the paradox to
hold. The hypothesis h:U=A is only used to define down, up
and up_down.
Let down (X:U) : A := @eq_rect _ _ (fun X => X) X _ h. Let up (X:A) : U := @eq_rect_r _ _ (fun X => X) X _ h.U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall X : U, up (down X) = XU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall X : U, up (down X) = XU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall X : U, eq_rect_r (fun X0 : Type => X0) (eq_rect U (fun X0 : Type => X0) X A h) h = Xreflexivity. Qed.U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall X : U, eq_rect_r (fun X0 : Type => X0) (eq_rect U (fun X0 : Type => X0) X U eq_refl) eq_refl = XU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> UFalseU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> UFalseU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> UTypeU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> U?Goal0 -> TypeU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall u : ?Goal0, (?Goal1 u -> ?Goal0) -> ?Goal0U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (u : ?Goal0) (B : ?Goal1 u -> ?Goal0), (forall x : ?Goal1 u, ?Goal1 (B x)) -> ?Goal1 (?Goal2 u (fun x : ?Goal1 u => B x))U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (u : ?Goal0) (B : ?Goal1 u -> ?Goal0), ?Goal1 (?Goal2 u B) -> forall x : ?Goal1 u, ?Goal1 (B x)U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> U(?Goal0 -> ?Goal0) -> ?Goal0U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall F : ?Goal0 -> ?Goal0, (forall A0 : ?Goal0, ?Goal1 (F A0)) -> ?Goal1 (?Goal6 (fun A0 : ?Goal0 => F A0))U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall F : ?Goal0 -> ?Goal0, ?Goal1 (?Goal6 (fun A0 : ?Goal0 => F A0)) -> forall A0 : ?Goal0, ?Goal1 (F A0)U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> U?Goal0U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> U?Goal1 ?Goal10 -> TypeU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall u : ?Goal1 ?Goal10, (?Goal11 u -> ?Goal1 ?Goal10) -> ?Goal1 ?Goal10U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall u : ?Goal0, (?Goal1 u -> ?Goal1 ?Goal10) -> ?Goal1 ?Goal10U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> U?Goal1 ?Goal10U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Up:?Goal11 ?Goal18FalseU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (u : ?Goal0) (B : ?Goal1 u -> ?Goal0) (f : forall x : ?Goal1 u, ?Goal1 (B x)) (x : ?Goal1 u), ?Goal4 u (fun x0 : ?Goal1 u => B x0) (?Goal3 u B (fun y : ?Goal1 u => f y)) x = f xU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (F : ?Goal0 -> ?Goal0) (f : forall A0 : ?Goal0, ?Goal1 (F A0)) (A0 : ?Goal0), ?Goal8 F (?Goal7 F (fun x : ?Goal0 => f x)) A0 = f A0U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (u : ?Goal1 ?Goal10) (B : ?Goal11 u -> ?Goal1 ?Goal10), (forall x : ?Goal11 u, ?Goal11 (B x)) -> ?Goal11 (?Goal12 u (fun x : ?Goal11 u => B x))U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (u : ?Goal1 ?Goal10) (B : ?Goal11 u -> ?Goal1 ?Goal10), ?Goal11 (?Goal12 u B) -> forall x : ?Goal11 u, ?Goal11 (B x)U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (U0 : ?Goal0) (F : ?Goal1 U0 -> ?Goal1 ?Goal10), (forall A0 : ?Goal1 U0, ?Goal11 (F A0)) -> ?Goal11 (?Goal15 U0 (fun A0 : ?Goal1 U0 => F A0))U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (U0 : ?Goal0) (F : ?Goal1 U0 -> ?Goal1 ?Goal10), ?Goal11 (?Goal15 U0 (fun A0 : ?Goal1 U0 => F A0)) -> forall A0 : ?Goal1 U0, ?Goal11 (F A0)
Large universe
exact U.U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> UTypeexact (fun X=>X).U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> UU -> TypeU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall u : U, ((fun X : U => X) u -> U) -> Uexact (fun X F => forall x:X, F x).U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall u : U, (u -> U) -> UU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (u : U) (B : (fun X : U => X) u -> U), (forall x : (fun X : U => X) u, (fun X : U => X) (B x)) -> (fun X : U => X) ((fun (X : U) (F : X -> U) => forall x : X, F x) u (fun x : (fun X : U => X) u => B x))exact (fun _ _ x => x).U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (u : U) (B : u -> U), (forall x : u, B x) -> forall x : u, B xU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (u : U) (B : (fun X : U => X) u -> U), (fun X : U => X) ((fun (X : U) (F : X -> U) => forall x : X, F x) u B) -> forall x : (fun X : U => X) u, (fun X : U => X) (B x)exact (fun _ _ x => x).U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (u : U) (B : u -> U), (forall x : u, B x) -> forall x : u, B xexact (fun F => forall x:A, F (up x)).U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> U(U -> U) -> UU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall F : U -> U, (forall A0 : U, (fun X : U => X) (F A0)) -> (fun X : U => X) ((fun F0 : U -> U => forall x : A, F0 (up x)) (fun A0 : U => F A0))exact (fun _ f => fun x:A => f (up x)).U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall F : U -> U, (forall A0 : U, F A0) -> forall x : A, F (up x)U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall F : U -> U, (fun X : U => X) ((fun F0 : U -> U => forall x : A, F0 (up x)) (fun A0 : U => F A0)) -> forall A0 : U, (fun X : U => X) (F A0)U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall F : U -> U, (forall x : A, F (up x)) -> forall A0 : U, F A0U:=Type:TypeA:Uh:U = Adown:=fun X0 : U => eq_rect U (fun X1 : Type => X1) X0 A h:U -> Aup:=fun X0 : A => eq_rect_r (fun X1 : Type => X1) X0 h:A -> UF:U -> Uf:forall x : A, F (up x)X:UF XU:=Type:TypeA:Uh:U = Adown:=fun X0 : U => eq_rect U (fun X1 : Type => X1) X0 A h:U -> Aup:=fun X0 : A => eq_rect_r (fun X1 : Type => X1) X0 h:A -> UF:U -> UX:Uf:F (up (down X))F Xexact f.U:=Type:TypeA:Uh:U = Adown:=fun X0 : U => eq_rect U (fun X1 : Type => X1) X0 A h:U -> Aup:=fun X0 : A => eq_rect_r (fun X1 : Type => X1) X0 h:A -> UF:U -> UX:Uf:F XF X
Small universe
exact A.U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> UU
The interpretation of A as a universe is U.
U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> U(fun X : U => X) A -> Typeexact up.U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> UA -> TypeU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall u : (fun X : U => X) A, (up u -> (fun X : U => X) A) -> (fun X : U => X) Aexact (fun _ F => down (forall x, up (F x))).U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall u : A, (up u -> A) -> AU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall u : U, ((fun X : U => X) u -> (fun X : U => X) A) -> (fun X : U => X) Aexact (fun _ F => down (forall x, up (F x))).U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall u : U, (u -> A) -> AU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> U(fun X : U => X) Aexact (down False).U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> UAU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Up:up (down False)Falseexact p.U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Up:FalseFalseU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (u : U) (B : (fun X : U => X) u -> U) (f : forall x : (fun X : U => X) u, (fun X : U => X) (B x)) (x : (fun X : U => X) u), (fun (u0 : U) (B0 : u0 -> U) (x0 : forall x0 : u0, B0 x0) => x0) u (fun x0 : (fun X : U => X) u => B x0) ((fun (u0 : U) (B0 : u0 -> U) (x0 : forall x0 : u0, B0 x0) => x0) u B (fun y : (fun X : U => X) u => f y)) x = f xeasy.U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (u : U) (B : u -> U) (f : forall x : u, B x) (x : u), f x = f xU:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (F : U -> U) (f : forall A0 : U, (fun X : U => X) (F A0)) (A0 : U), (fun (F0 : U -> U) (f0 : forall x : A, F0 (up x)) (X : U) => let f1 := f0 (down X) in let f2 := eq_rect (up (down X)) (fun u : U => F0 u) f1 X (up_down X) in f2) F ((fun (F0 : U -> U) (f0 : forall A1 : U, F0 A1) (x : A) => f0 (up x)) F (fun x : U => f x)) A0 = f A0U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (F : U -> U) (f : forall A0 : U, F A0) (A0 : U), eq_rect (up (down A0)) (fun u : U => F u) (f (up (down A0))) A0 (up_down A0) = f A0U:=Type:TypeA:Uh:U = Adown:=fun X0 : U => eq_rect U (fun X1 : Type => X1) X0 A h:U -> Aup:=fun X0 : A => eq_rect_r (fun X1 : Type => X1) X0 h:A -> UF:U -> Uf:forall A0 : U, F A0X:Ueq_rect (up (down X)) (fun u : U => F u) (f (up (down X))) X (up_down X) = f XU:=Type:TypeA:Uh:U = Adown:=fun X0 : U => eq_rect U (fun X1 : Type => X1) X0 A h:U -> Aup:=fun X0 : A => eq_rect_r (fun X1 : Type => X1) X0 h:A -> UF:U -> Uf:forall A0 : U, F A0X:Ueq_rect (up (down X)) (fun u : U => F u) (f (up (down X))) (up (down X)) eq_refl = f (up (down X))reflexivity.U:=Type:TypeA:Uh:U = Adown:=fun X0 : U => eq_rect U (fun X1 : Type => X1) X0 A h:U -> Aup:=fun X0 : A => eq_rect_r (fun X1 : Type => X1) X0 h:A -> UF:U -> Uf:forall A0 : U, F A0X:Uf (up (down X)) = f (up (down X))U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (u : (fun X : U => X) A) (B : up u -> (fun X : U => X) A), (forall x : up u, up (B x)) -> up ((fun (u0 : A) (F : up u0 -> A) => down (forall x : up u0, up (F x))) u (fun x : up u => B x))U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (u : A) (B : up u -> A), (forall x : up u, up (B x)) -> up (down (forall x : up u, up (B x)))U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uu:AB:up u -> Af:forall x : up u, up (B x)up (down (forall x : up u, up (B x)))exact f.U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uu:AB:up u -> Af:forall x : up u, up (B x)forall x : up u, up (B x)U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (u : (fun X : U => X) A) (B : up u -> (fun X : U => X) A), up ((fun (u0 : A) (F : up u0 -> A) => down (forall x : up u0, up (F x))) u B) -> forall x : up u, up (B x)U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (u : A) (B : up u -> A), up (down (forall x : up u, up (B x))) -> forall x : up u, up (B x)U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uu:AB:up u -> Af:up (down (forall x : up u, up (B x)))forall x : up u, up (B x)exact f.U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uu:AB:up u -> Af:forall x : up u, up (B x)forall x : up u, up (B x)U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (U0 : U) (F : (fun X : U => X) U0 -> (fun X : U => X) A), (forall A0 : (fun X : U => X) U0, up (F A0)) -> up ((fun (u : U) (F0 : u -> A) => down (forall x : u, up (F0 x))) U0 (fun A0 : (fun X : U => X) U0 => F A0))U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (U0 : U) (F : U0 -> A), (forall A0 : U0, up (F A0)) -> up (down (forall x : U0, up (F x)))U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> UU0:UF:U0 -> Af:forall A0 : U0, up (F A0)up (down (forall x : U0, up (F x)))exact f.U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> UU0:UF:U0 -> Af:forall A0 : U0, up (F A0)forall x : U0, up (F x)U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (U0 : U) (F : (fun X : U => X) U0 -> (fun X : U => X) A), up ((fun (u : U) (F0 : u -> A) => down (forall x : u, up (F0 x))) U0 (fun A0 : (fun X : U => X) U0 => F A0)) -> forall A0 : (fun X : U => X) U0, up (F A0)U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> Uforall (U0 : U) (F : U0 -> A), up (down (forall x : U0, up (F x))) -> forall A0 : U0, up (F A0)U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> UU0:UF:U0 -> Af:up (down (forall x : U0, up (F x)))forall A0 : U0, up (F A0)exact f. Qed. End Paradox. End TypeNeqSmallType.U:=Type:TypeA:Uh:U = Adown:=fun X : U => eq_rect U (fun X0 : Type => X0) X A h:U -> Aup:=fun X : A => eq_rect_r (fun X0 : Type => X0) X h:A -> UU0:UF:U0 -> Af:forall x : U0, up (F x)forall A0 : U0, up (F A0)
Special case of TypeNeqSmallType.
Module PropNeqType.Prop <> TypeProp <> Typeh:Prop = TypeFalseh:Prop = TypeTypeh:Prop = TypeType = ?Goalexact Prop.h:Prop = TypeTypeeasy. Qed. End PropNeqType. (* end show *)h:Prop = TypeType = Prop