packages feed

dedukti-1.0.0: t/testcomplet.eu

Uset : Type.
Uprop : Type.
Utype : Type.

eprop : x : Uprop -> Type.
eset : x : Uset -> Type.
etype : x : Utype -> Type.

dotset : Utype.
dotprop : Utype.

dotpipp : x : Uprop -> y : (eprop x -> Uprop) -> Uprop.
dotpips : x : Uprop -> y : (eprop x -> Uset)  -> Uset.
dotpipt : x : Uprop -> y : (eprop x -> Utype) -> Utype.
dotpisp : x : Uset  -> y : (eset x  -> Uprop) -> Uprop.
dotpitp : x : Utype -> y : (etype x -> Uprop) -> Uprop.
dotpist : x : Uset  -> y : (eset  x -> Utype) -> Utype.
dotpits : x : Utype -> y : (etype x -> Uset)  -> Uset.
dotpiss : x : Uset  -> y : (eset x  -> Uset)  -> Uset.
dotpitt : x : Utype -> y : (etype x -> Utype) -> Utype.


[x:Uprop, y : eprop x -> Uprop]
              eprop (dotpipp x y) --> w : eprop x -> eprop (y w).

[x:Uset, y : eset x -> Uprop]
              eprop (dotpisp x y) --> w : eset x -> eprop (y w).

[x:Utype, y : etype x -> Uprop]
              eprop (dotpitp x y) --> w : etype x -> eprop (y w).

[x:Uprop, y : eprop x -> Uset]
              eset (dotpips x y) --> w : eprop x -> eset (y w).

[x:Utype, y : etype x -> Uset]
              eset (dotpits x y) --> w : etype x -> eset (y w).

[x:Uset, y : eset x -> Uset]
              eset (dotpiss x y) --> w : eset x -> eset (y w).

[x:Uset, y : eset x -> Utype]
              etype (dotpist x y) --> w : eset x -> etype (y w).

[x:Utype, y : etype x -> Utype]
              etype (dotpitt x y) --> w : etype x -> etype (y w).

[x:Uprop, y : eprop x -> Utype]
              etype (dotpipt x y) --> w : eprop x -> etype (y w).


[] (etype dotset)  --> Uset.
[] (etype dotprop) --> Uprop.
simple :  (P : Uprop ->  (_ :  (eprop P)  ->  (eprop P) ) ) .
[] simple -->  (P :  (etype dotprop)  =>  (H :  (eprop P)  => H) ) .
K :  (P : Uprop ->  (Q : Uprop ->  (_ :  (eprop P)  ->  (_ :  (eprop Q)  ->  (eprop P) ) ) ) ) .
[] K -->  (P :  (etype dotprop)  =>  (Q :  (etype dotprop)  =>  (H :  (eprop P)  =>  (H0 :  (eprop Q)  =>  ( (simple P)  H) ) ) ) ) .
S :  (P : Uprop ->  (Q : Uprop ->  (R : Uprop ->  (_ :  (_ :  (eprop P)  ->  (_ :  (eprop Q)  ->  (eprop R) ) )  ->  (_ :  (_ :  (eprop P)  ->  (eprop Q) )  ->  (_ :  (eprop P)  ->  (eprop R) ) ) ) ) ) ) .
[] S -->  (P :  (etype dotprop)  =>  (Q :  (etype dotprop)  =>  (R :  (etype dotprop)  =>  (H :  (eprop  ( (dotpipp P)   (_ :  (eprop P)  =>  ( (dotpipp Q)   (_ :  (eprop Q)  => R) ) ) ) )  =>  (H0 :  (eprop  ( (dotpipp P)   (_ :  (eprop P)  => Q) ) )  =>  (H1 :  (eprop P)  =>  ( (H H1)   (H0 H1) ) ) ) ) ) ) ) .
I :  (P : Uprop ->  (_ :  (eprop P)  ->  (eprop P) ) ) .
[] I -->  (P :  (etype dotprop)  =>  ( ( ( ( (S P)   ( (dotpipp P)   (_ :  (eprop P)  => P) ) )  P)   ( (K P)   ( (dotpipp P)   (_ :  (eprop P)  => P) ) ) )   ( (K P)  P) ) ) .