abstract Predic = Categories ** { cat VType ; CType ; Verb VType ; Compl VType ; fun Vt_ : VType ; Vt : CType -> VType ; VtN : CType -> VType ; CtN, CtS, CtV, CtQ, CtA : CType ; SPredVerb : (v : VType) -> NP -> Verb v -> Compl v -> Cl ; QPredVerb : (v : VType) -> IP -> Verb v -> Compl v -> QCl ; RPredVerb : (v : VType) -> RP -> Verb v -> Compl v -> RCl ; IPredVerb : (v : VType) -> Verb v -> Compl v -> VCl ; Compl_ : Compl Vt_ ; ComplN : NP -> Compl (Vt CtN) ; ComplS : S -> Compl (Vt CtS) ; ComplQ : QS -> Compl (Vt CtQ) ; ComplA : AP -> Compl (Vt CtQ) ; ComplAdd : (c : CType) -> NP -> Compl (Vt c) -> Compl (VtN c) ; VeV1 : V -> Verb Vt_ ; VeV2 : V2 -> Verb (Vt CtN) ; VeVS : VS -> Verb (Vt CtS) ; VeV3 : V3 -> Verb (VtN CtN) ; VeV2S : V2S -> Verb (VtN CtS) ; VeV2Q : V2Q -> Verb (VtN CtQ) ; ---- etc } {- MkSlash3 : NG NtS -> VG (VtN CtN) -> CG (Vt CtN) -> Slash ; MkSlash2 : (c : CType) -> NG NtS -> VG (VtN c) -> CG (Vt c) -> Slash ; MkSlash1 : NG NtS -> VG (Vt CtN) -> Slash ; SlashQ : NG NtQ -> Slash -> SG NtQ ; -}