(def-quasi-constructor m-composition "lambda(f:[ind_2,ind_3],g:[ind_1,ind_2], lambda(x:ind_1, f(g(x))))" (language pure-generic-theory-3) (fixed-theories the-kernel-theory))
(def-quasi-constructor m-domain "lambda(f:[ind_1,ind_2], indic(x:ind_1, #(f(x))))" (language pure-generic-theory-2) (fixed-theories the-kernel-theory))
(def-quasi-constructor m-range "lambda(f:[ind_1,ind_2], indic(y:ind_2, forsome(x:ind_1, y=f(x))))" (language pure-generic-theory-2) (fixed-theories the-kernel-theory))
(def-quasi-constructor m-image "lambda(f:[ind_1,ind_2],a:sets[ind_1], indic(y:ind_2, forsome(x:ind_1, (x in a) and y=f(x))))" (language pure-generic-theory-2) (fixed-theories the-kernel-theory))
(def-quasi-constructor m-inverse-image "lambda(f:[ind_1,ind_2],b:sets[ind_2], b oo f)" (language pure-generic-theory-2) (fixed-theories the-kernel-theory))
(def-quasi-constructor m-inverse "lambda(f:[ind_1,ind_2], lambda(x:ind_2, iota(y:ind_1, f(y)=x)))" (language pure-generic-theory-2) (fixed-theories the-kernel-theory))
(def-quasi-constructor m-id "lambda(a:sets[ind_1], lambda(x:ind_1, if(x in a, x, ?ind_1)))" (language pure-generic-theory-1) (fixed-theories the-kernel-theory))
(def-quasi-constructor m-restrict "lambda(f:[ind_1,ind_2],a:sets[ind_1], lambda(x:ind_1, if(x in a, f(x), ?ind_2)))" (language pure-generic-theory-2) (fixed-theories the-kernel-theory))
(def-quasi-constructor m-restrict2 "lambda(f:[ind_1,ind_2,ind_3],a:sets[ind_1],b:sets[ind_2], lambda(x:ind_1,y:ind_2, if(x in a and y in b, f(x,y), ?ind_3)))" (language pure-generic-theory-3) (fixed-theories the-kernel-theory))
(def-quasi-constructor m-surjective? "lambda(f:[ind_1,ind_2], forall(x:ind_1, x in dom(f)) and forall(y:ind_2, y in ran(f)))" (language pure-generic-theory-2) (fixed-theories the-kernel-theory))
(def-quasi-constructor m-injective? "lambda(f:[ind_1,ind_2], forall(x_1,x_2:ind_1, f(x_1)=f(x_2) implies x_1=x_2))" (language pure-generic-theory-2) (fixed-theories the-kernel-theory))
(def-quasi-constructor m-bijective? "lambda(f:[ind_1,ind_2], surjective_q(f) and injective_q(f))" (language pure-generic-theory-2) (fixed-theories the-kernel-theory))
(def-quasi-constructor m-surjective-on? "lambda(f:[ind_1,ind_2],a:sets[ind_1],b:sets[ind_2], dom(f)=a and ran(f)=b)" (language pure-generic-theory-2) (fixed-theories the-kernel-theory))
(def-quasi-constructor m-injective-on? "lambda(f:[ind_1,ind_2],a:sets[ind_1], forall(x_1,x_2:ind_1, ((x_1 in a) and (x_2 in a) and f(x_1)=f(x_2)) implies x_1=x_2))" (language pure-generic-theory-2) (fixed-theories the-kernel-theory))
(def-quasi-constructor m-bijective-on? "lambda(f:[ind_1,ind_2],a:sets[ind_1],b:sets[ind_2], surjective_on_q(f,a,b) and injective_on_q(f,a))" (language pure-generic-theory-2) (fixed-theories the-kernel-theory))