Print[":Package Title: goedel75.09a 2005 November 9 at 10:40 p.m. "]; (* :Context: Goedel` :Author: Johan G. F. Belinfante :Collaborators: Tiffany D. Goble, Claudia D. Huang :Summary: The GOEDEL program implements Goedel's algorithm for class formation, with some modifications made to avoid assuming the axiom of regularity, and Kuratowski's construction of ordered pairs. :Copyright: 2001 by Johan G. F. Belinfante :Mathematica Version: 3.0 *) (* :History: Version goedel75.08a plus rules derived in POWCHAIN.NB and RESTRICT.NB Earlier versions go back to 1996. *) (* :Keywords: class, member *) (* :Sources: Kurt Goedel, 1939 monograph on the consistency of the axiom of choice and of the generalized continuum hypothesis. *) (* :Warnings: count is an unprotected global counter used in the test suites 0 is used to represent the empty set. E is used to represent the membership relation. *) (* For debugging sometimes the following may be useful: *) (* $IterationLimit = $RecursionLimit = 20; *) (* :Limitations: The simplification rules are not confluent. It is unknown whether a Knuth Bendix completion of the present rules would terminate. Probably not. The order in which simplification rules are applied is therefore important, but no mechanism has been included for user control over this order. Mathematica's builtin Tracing commands are the only mechanism for discovering what rules were actually applied. In one of the earlier versions we had built in a mechanism for documenting which rules had been accessed, but this proved to be of limited value. *) (* :Discussion: See Goedel's monograph, pages 10-14. *) (* :Requirements: *) (* :Examples: Sample files are available in various test suites. *) (* set up the package context, including public imports *) BeginPackage["Goedel`"] (* added 2003 June 25 *) Unprotect[E]; Clear[E]; (* usage messages for the exported functions and the context itself *) Goedel::usage = "Goedel.m is a package that implements a modification of Goedel's algorithm for class formation." A::usage = "A[x] is the class obtained by intersecting all the sets that belong to x" Aclosure::usage = "Aclosure[x] is the class of all sets A[y] where y is a nonempty subset of x" ACLOSURE::usage = "ACLOSURE is the function that takes x to image[BIGCAP,P[x]]" ACYCLIC::usage = "ACYCLIC is the class of all relations that contain no cycles" ADJOIN::usage = "ADJOIN[x] is the function that takes y to union[x,y]." and::usage = "and[x,y,...] is a flat, orderless function of any number of variables" ANTISYM::usage = "ANTISYM is the class of all antisymmetric relations" ANTISYMMETRIC::usage = "ANTISYMMETRIC[x] is the statement that x is an antisymmetric relation" apply::usage = "apply[x,y] was used by Quaife to apply a function to its argument" APPLY::usage = "APPLY[x,y] is useful for applying a function to its argument" assert::usage = "assert[p] is a statement equivalent to p obtained by applying Goedel's algorithm to class[w,p]. Applying assert repeatedly sometimes simplifies a statement." ASSOC::usage = "ASSOC is the function that reassociates ordered triples" associative::usage = "associative[x] is the statement that x is an associative relation" ASSOCIATIVE::usage = "ASSOCIATIVE is the class of all associative relations" axch::usage = "axch is a flag for a set form of the axiom of choice" AxCh::usage = "AxCh is a flag that can be set equal to True if one is assumes the class form of the axiom of choice. Not protected." AxReg::usage = "AxReg is a flag that can be set equal to True if one assumes the axiom of regularity. Not protected." BIGCAP::usage = "BIGCAP is the function that takes x to A[x]" BIGCUP::usage = "BIGCUP is the function that takes x to U[x]" BIJ::usage = "BIJ is the class of one-to-one correspondences" binclosed::usage = "binclosed[x] is the class of sets y that are closed under a binary operation x" cantor::usage = "Quaife introduced cantor[x] to prove Cantor's theorem" CAP::usage = "CAP is the function that takes pair[x,y] to intersection[x,y]" CAPclosed::usage = "CAPclosed is the class of sets which are closed under binary intersection" card::usage = "card[x] is the intersection of all ordinals equipollent to x" CARD::usage = "the function CARD takes x to card[x] when both are sets" cart::usage = "cart[x,y] is the cartesian product of x and y. Note that cart is not associative." CART::usage = "CART is the function that takes pair[x,y] to cart[x,y]" CATOFUNS::usage = "CATOFUNS is the binary composition for the category of sets (mappings)" CATORELN::usage = "CATORELNS is the binary composition for the category of relations" CHOICE::usage = "the choice function takes each nonempty set x to some member of x. To use it, one needs to assign True to AxCh" choicefunction::usage = "choicefunction[f,x] is the statement that f is a choice function with domain x" CL::usage = "CL is the class of all partial order relations for complete lattices" class::usage = "class[x,p] applies Goedel's algorthm to the class of all sets x satisfying the condition p. The variable x may be an atomic variable, or of the form pair[u,v], where u and v in turn can be pairs, etc. " cliques::usage = "cliques[x] is the class of all w such that cart[w,w] is contained in x" CLIQUES::usage = "CLIQUES is the function that takes x to cliques[x]" COARSER::usage = "pair[x,y] belongs to COARSER if x is a subset of y and U[x] = U[y]" commutant::usage = "commutant[x] is the class of all sets which commute with x" commute::usage = "commute[x,y] is true if and only if the composite of x and y is the same as the composite of y and x" COMMUTE::usage = "COMMUTE is the class of pair[x,y] such that x and y commute" COMPACT::usage = "COMPACT is the class of all t such that for every set coarser than t there is a finite set that is even coarser" complement::usage = "complement[x] is the class of all sets that to not belong to x" COMPOSE::usage = "COMPOSE is the function that takes pair[x,y] to composite[x,y]" composite::usage = "composite[x,y,...] is a flat function of any number of variables" cond::usage = "cond is a flag for the thin conditional rules" core::usage = "core[x,y] is the union of all subsets of y that belong to x" CORE::usage = "CORE[x] is the function that takes u to the union of all subsets of v that belong to x" count::usage = "count is a global variable used in the test suites" COUNTABLE::usage = "COUNTABLE is the class of sets that are finite or denumerable" cross::usage = "cross[x,y] is the cross product of x and y" CROSS::usage = "CROSS is the function that takes pair[x,y] to cross[x,y]" CUP::usage = "CUP is the function that takes pair[x,y] to union[x,y]" CUPclosed::usage = "CUPclosed is the class of sets which are closed under binary union" DEDEKIND::usage = "DEDEKIND is the class of Dedekind-finite sets" DENUMERABLE::usage = "DENUMERABLE is the class of sets whose cardinality is omega" DESCENDING::usage = "DESCENDING is the class subvar[E] of all sets x with the property that for each member v of x, there is a member u of x that belongs to v" Di::usage = "The diversity relation Di is the class of ordered pairs pair[x,y] such that x is not equal to y. " diag::usage = "Quaife uses diag[x] for our complement[fix[x]]" dif::usage = "dif[x,y] is the relative complement of y in x" DIF::usage = "DIF is the function that takes pair[x,y] to intersection[x,complement[y]]" DIFclosed::usage = "DIFclosed is the class of all sets which are closed under set differences" direct::usage = "direct[x,y] is an abbreviation for the direct product of x and y" disjoint::usage = "disjoint[x,y] is the statement that x and y are disjoint, that is, their intersection is empty." DISJOINT::usage = "DISJOINT is the class of all pair[x,y] such that x and y are disjoint" DIV::usage = "DIV is the divisibility relation for natural numbers" domain::usage = "domain[x] is the domain of x" DORA::usage = "DORA is the function that takes x to pair[domain[x],range[x]" DUP::usage = "DUP is the function that takes x to pair[x,x]" E::usage = "E is the membership relation" empty::usage = "empty[x] is the statement that x is the empty set" equal::usage = "equal[x,y] is the statement that the classes x and y are equal" equality::usage = "equality is a flag governing equality substitution" EQUIDIFF::usage = "EQUIDIFF is an equivalence relation on cart[omega,omega] used to define the integers" equiv::usage = "equiv[p,q] is the statement that p and q imply each other" EQUIV::usage = "EQUIV is the function lambda[x, eqv[x]]" EQUIVALENCE::usage = "EQUIVALENCE[x] is the statement that x is an equivalence relation" EQV::usage = "EQV is the class of (small) equivalence relations" eqv::usage = "eqv[x] is the symmetric part of trv[x]" example::usage = "example[n_,string_,comment_] is used in the test suites" exists::usage = "exists[x,y,...,p] is the statement that there exist x,y,... such that p" FACTORIAL::usage = "FACTORIAL is the factorial function for natural numbers" fin::usage = "fin[x] is a wrapper for finite sets" FINITE::usage = "the class of finite sets" first::usage = "first[x] is the first argument of an ordered pair" FIRST::usage = "FIRST is the function which takes pair[x,y] to y" fix::usage = "the fixed point class fix[x] is the class of all y such that pair[y,y] belongs to x" FIX::usage = "FIX is the function that takes x to fix[x]" flags::usage = "flags shows values of all flags" flip::usage = "flip[x] is the class of all pair[pair[u,v],w] such that pair[pair[v,u],w] belongs to x" forall::usage = "forall[x,y,...,p] is the statement that p holds for all sets x,y,..." full::usage = "full[x] is the statement that every member of x is a subset of x" FULL::usage = "FULL is the class of all full sets." FUNCTION::usage = "FUNCTION[x] is the statement that x is a function" funpart::usage = "funpart[x] is the functional part of x" FUNPART::usage = "FUNPART is the function that takes x to funpart[x]" FUNS::usage = "FUNS is the class of all functions whose domains are sets" GLB::usage = "member[pair[x,y],GLB[z]] means y is a greatest lower bound for x with respect to the relation z" greatest::usage = "greatest[x,y] is the set of x-greatest elements of y" GREATEST::usage = "member[pair[x,y],GREATEST[z]] means y is a greatest element of x with respect to the relation z" H::usage = "H[x] is Jech's hereditarily functor" HC::usage = "HC in the function that takes x to H[x]" history::usage = "history[x,y] is the history of x with respect to y" HISTORY::usage = "HISTORY[x,y] is a shorthand for an expression equal to history[x,y]" hull::usage = "hull[x,y] is the intersection of all sets belonging to x that contain y" HULL::usage = "HULL[x] is the function that takes u to the intersection of all sets that contain u and belong to x" Id::usage = "Id is the identity relation" id::usage = "id[x] is the restriction of the identity relation to x" IDEM::usage = "IDEM is the class of idempotent relations" idempotent::usage = "idempotent[x] is the statement that x = composite[x,x]" IDP::usage = "IDP is a shorthand for IMAGE[DUP]" image::usage = "image[x,y] is the image of the class y under x" IMAGE::usage = "IMAGE[x] is the function that takes y to image[x,y]. When x is a set, the function IMAGE[x] is a proper class." IMG::usage = "IMG is the function that takes pair[x,y] to image[x,y]" implies::usage = "implies[x,y] is the statement that x implies y" INDUCTIVE::usage = "INDUCTIVE[x] is the statement that x is an inductive class" intadd::usage = "intadd[x,y] is the sum of of integers x and y" INTADD::usage = "member[pair[pair[x,y],z],INTADD] holds if x and y are integers and x + y = z" intersection::usage = "intersection[x,y,...] is a flat, orderless function of any number of variables" invar::usage = "invar[x] is the class of all sets which are invariant under x" INVAR::usage = "INVAR is the relation consisting all pair[x,y] such that y is invariant under x" invariant::usage = "invariant[x,y] means y is invariant under x" inverse::usage = "the relation inverse[x] is the inverse of x" INVERSE::usage = "INVERSE is the function that takes x to inverse[x]" INVFUN::usage = "INVFUN[x] is the statement that inverse[x] is a function" iterate::usage = "iterate[x,y] is the relation whose vertical sections are the generations produced using x starting with the initial generation y" K::usage = "K is the cover relation defined as the intersection of PS and the complement of composite[PS,PS]" KURA::usage = "KURA is the function that takes pair[x,y] to Kuratowski's construction of an ordered pair" lambda::usage = "lambda[x,f[x]] is the function which takes x to f[x], and lambda[pair[x,y],f[x,y] is the function that takes pair[x,y] to f[x,y], etc." LAMBHULL::usage = "LAMBHULL is the function that takes x to HULL[x]" lb::usage = "lb[x,y] is the class of all lower bounds for y with respect to the relation x" LB::usage = "member[pair[x,y],LB[z]] means y is an lower bound for x with respect to the relation z" least::usage = "least[x,y] is the set of x-least elements of y" LEAST::usage = "member[pair[x,y],LEAST[z]] means y is a least element of x with respect to the relation z" LEFT::usage = "LEFT[x] is the function which takes y to pair[x,y]" LeftPairV::usage = "LeftPairV is the function that takes x to pair[V,x]" LISTS::usage = "LISTS is the class of all lists" LUB::usage = "member[pair[x,y],LUB[z]] means y is a least upper bound for x with respect to the relation z" map::usage = "map[x,y] is the class of all functions with domain x and range contained in y" MAP::usage = "MAP is the function which takes pair[x,y] to map[x,y]" MAXIMAL::usage = "member[pair[x,y],MAXIMAL[z]] means y is a maximal element of x with respect to the relation z" member::usage = "member[x,y] is the statement that x belongs to y" MINIMAL::usage = "member[pair[x,y],MINIMAL[z]] means y is a minimal element of x with respect to the relation z" modulo::usage = "modulo[x] is the function that reduces natural numbers modulo x" monus::usage = "monus[x,y] is the floored difference of natural numbers nat[natsub[x,y]]" nat::usage = "nat[x] is x when x is a natural number, and 0 otherwise" natadd::usage = "natadd[x,y] is the sum of x and y if they are natural numbers" NATADD::usage = "member[pair[pair[x,y],z],NATADD] holds if x and y are natural numbers and x + y = z" natmod::usage = "natmod[x,y] is the remainder when the natural number x is divided by the natural number y" NATMOD::usage = "NATMOD is the function for the remainder obtained when one natural number is divided by another" natmul::usage = "natmul[x,y] is the product of x and y if they are natural numbers" NATMUL::usage = "member[pair[pair[x,y],z],NATMUL] holds if x and y are natural numbers and x y = z" natsub::usage = "natsub[x,y] is the difference of x and y if they are natural numbers and x is not less than y" not::usage = "not[p] represents the negation of p" omega::usage = "omega is the set of all natural numbers" OMEGA::usage = "OMEGA is the class of all ordinal numbers" ONEONE::usage = "ONEONE[x] is the statement that x is a one-to-one correspondence" oopart::usage = "oopart[x] is the one-to-one part of x" OOPART::usage = "OOPART = lambda[x,oopart[x]]" or::usage = "or[x,y,...] is a flat, orderless function of any number of variables" ord::usage = "ord[x] is a wrapper for ordinal numbers" P::usage = "P[x] is the power class of x, that is the class of all subsets of x" pair::argx = "Warning: pair[-,-] must have exactly 2 arguments" pair::usage = "pair[x,y] is the ordered pair of x and y." PAIR::usage = "PAIR[x,y] is the ordered pair of x and y if x and y are sets and otherwise is V" pairset::usage = "pairset[x,y] = set[x,y] is a shorthand for the union of set[x] and set[y] " PAIRSET::usage = "PAIRSET is the function that takes pair[x,y] to union[set[x],set[y]]" PARTIALORDER::usage = "PARTIALORDER[x] is the statement that x is a partial order relation" partrec::usage = "partrec[x,y] is the class of partial solutions of a recursive definition with generator x and relation y" plus::usage = "plus[x] is the non-negative integer corresponding to the natural number x" PLUS::usage = "PLUS is the function that takes each natural number to the corresponding non-negative integer" po::usage = "po[x] is a wrapper for a generic partial order relation" PO::usage = "PO is the class of all partial order relations" PointClosed::usage = "PointClosed is the class of collections of sets that satisfy the condition that points are closed" POWER::usage = "POWER is the function that takes x to P[x]" power::usage = "power[x] is the relation whose n-th vertical slice is the composite of n copies of x" PRIMES::usage = "the set of primes" PRIMESEQ::usage = "list of all primes in increasing order" PROJ::usage = "PROJ is the class of all projections, that is, idempotent functions" propersubclass::usage = "propersubclass[x,y] is the statement that x is a subclass of y but not equal to y." PS::usage = "the proper subclass relation " PSM::usage = "PSM was used in some old Otter work to define certain functions" Q::usage = "the equinumerosity relation" range::usage = "range[x] is the range of x" rank::usage = "rank[x] is the rank of x in the Zermelo-von Neumann cumulative hierarchy" RANK::usage = "RANK is the function which assigns rank[x] to x" RC::usage = "RC[x] is the function which takes any set y to its relative complement with respect to x" RCF::usage = "RCF is the function which takes any set x to RC[x]" rec::usage = "rec[x,y] is the union of the class of partial solutions of a recursive definition with generator x and relation y" RECTANGLE::usage = "RECTANGLE[x] is the predicate that x is a cartesian product" REFLEXIVE::usage = "REFLEXIVE[x] is the predicate that x is a reflexive relation" REGULAR::usage = "REGULAR is the class of all regular sets" restrict::usage = "restrict[z,x,y] is the intersection of z and cart[x,y]" RESTRICT::usage = "RESTRICT is the restriction relation" RFX::usage = "RFX is the class of all (small) reflexive relations" rfx::uage = "rfx[x] = core[RFX,x] is the reflexive core of x" RIF::usage = "RIF is a rotation-invariant function" RIGHT::usage = "RIGHT[x] is the function which takes y to pair[y,x]" RightPairV::usage = "RightPairV is the function that takes x to pair[x,V]" ROT::usage = "ROT is the function which rotates ordered triples" rotate::usage = "rotate[x] is the class obtained from x by rotating all ordered triples" RS::usage = "RS[x] is the class of all small restrictions of x" RUSSELL::usage = "RUSSELL is the class of all x that do not belong to themselves" S::usage = "S is the subset relation" second::usage = "second[x] is the second argument of an ordered pair" SECOND::usage = "SECOND is the function that maps pair[x,y] to y" SELECT::usage = "SELECT is the class of sets that admit cross-sections" set::usage = "set[x,y,z, ... ] is the set whose only members are x, y, z, ... , if these are indeed sets." setpart::usage = "setpart[x] is x when x is a set, and 0 when x is not a set" simplify::usage = "simplify is a flag that can be used to turn off certain rules" singleton::usage = "singleton[x] = set[x] is the set whose only member is x. It is the empty set if x is a proper class" SINGLETON::usage = "SINGLETON is the the function that takes x to set[x]" singlevalued::usage = "singlevalued[x] is one version of the statement that x is singlevalued" SINGVAL::usage = "SINGVAL[x] is another version of the statement that x is singlevalued" SMALLER::usage = "SMALLER is the strict numerical dominance relation" subclass::usage = "subclass[x,y] is the statement that x is contained in y" subcommutant::usage = "subcommutant[x] is the class of all y such that subclass[composite[x,y],composite[y,x]]" subcommute::usage = "subcommute[x,y] is an abbreviation for the condition subclass[composite[x,y],composite[y,x]]" SUBCOMMUTE::usage = "SUBCOMMUTE is the class of pair[x,y] such that subcommute[x,y]" subvar::usage = "subvar[x] is the class of all sets y which satisfy the condition subclass[y,image[x,y]] " SUBVAR::usage = "SUBVAR is the function which takes x to subvar[x]" subvariant::usage = "subvariant[x,y] means y is subvariant under x" succ::usage = "succ[x] is the union of x and set[x]" SUCC::usage = "SUCC is the function that takes x to succ[x]" SWAP::usage = "SWAP is the function that takes pair[x,y] to pair[y,x]" SYM::usage = "SYM is the class of all (small) symmetric relations" SYMDIF::usage = "SYMDIF is the symmetric difference function" symdif::usage = "symmdiff[x,y] is the symmetric difference of x and y" SYMMETRIC::usage = "SYMMETRIC[x] is the statement that x is a symmetric relation" T1::usage = "T1 holds all collections of sets satisfying the T1 separation condition in topology" T2::usage = "T2 holds all collections of sets satisfying the T2 separation condition in topology" tc::usage = "tc[x] is the transitive closure of x" TC::usage = "TC is the transitive closure operator" thin::usage = "thin[x] is the statement that all vertical cross sections of x are sets" thinpart::usage = "thinpart[x] is the largest thin relation obtainable as a restriction of x" times::usage = "times[x] is the function that multiplies natural numbers by x" to::usage = "to[x] is a wrapper for a total order relation" TO::usage = "TO is the class of all small total order relations" top::usage = "top[x] is a wrapper for a topology" TOPS::usage = "TOPS is the class of all topologies" TOTALORDER::usage = "TOTALORDER[x] is the statement that x is a total ordering" TRANSITIVE::usage = "TRANSITIVE[x] is the statement that x is a transitive relation" transvar::usage = "transvar[x,y] is the class of all sets z for which image[x,z] is contained in image[y,z]" transvariant::usage = "transvariant[x,y,z] is the statement that image[x,z] is contained in image[y,z]" trv::usage = "trv[x] is the least transitive relation which contains composite[Id,x]" TRV::usage = "TRV is the class of (small) transitive relations" twist::usage = "twist[x] is the class obtained from x by replacing all pair[pair[t,u],pair[v,w]] in x by switching u and v " TWIST::usage = "TWIST is a function that converts cart to cross" U::usage = "U[x] is the sum class of x, that is the union of all the sets that belong to the class x" ub::usage = "ub[x,y] is the class of all upper bounds for y with respect to the relation x" UB::usage = "member[pair[x,y],UB[z]] means y is an upper bound for x with respect to the relation z" Uclosure::usage = "Uclosure[x] is the class of all sets U[y] where y is a subset of x" UCLOSURE::usage = "UCLOSURE is the function that takes x to Uclosure[x]" union::usage = "union[x,y,...] is a flat, orderless function of any number of class variables" unsafe::usage = "unsafe is a flag used to turn on rewrite rules that are valid, but considered unsafe in because they yield unsatisfactory results for some test suite examples" V::usage = "the universal class" VERTSECT::usage = "VERTSECT[z] is the function that maps x to the vectical section image[z,set[x]]" VS::usage = "VS is the function that takes x to composite[VERTSECT[x],id[domain[x]]]" WELLFOUNDED::usage = "WELLFOUNDED[x] is the statement that x is a (strict) wellfounded relation" WELLORDER::usage = "WELLORDER[x] is the statement that x is a wellordering" WF::usage = "WF is the class of all small strict wellfounded relations" wf::usage = "wf[x] is a generic well-founded relation" WFPART::usage = "WFPART = lambda[x, wf[x]]" WO::usage = "WO is the class of all small wellordering relations" wo::usage = "wo[x] is a wrapper for a wellorder relation" X::usage = "X[x] is the set of cross-sections of x" XS::usage = "XS is the function lambda[x, X[x]]" Z::usage = "Z is the set of integers" ZN::usage = "ZN = composite[Id,U[subcommutant[inverse[E]]]]" Begin["`Private`"] (* begin the private context (implementation part) *) (* definition of auxiliary functions and local (static) variables *) Month[n_] := Part[{" Jan ", " Feb ", " Mar ", " Apr ", " May ", " Jun ", " Jul ", " Aug ", " Sep ", " Oct ", " Nov ", " Dec "}, n] PrintDate[] := Module[{date=Date[]}, Print["It is now: ", Part[date,1],Month[Part[date,2]],Part[date,3]," at ", Part[date,4],":", Part[date,5]]] PrintDate[] (* replaced 2002 November 23 based on VARLIST.NB *) varlist[x_] := {x} (* replaced 2002 November 23 based on VARLIST.NB *) varlist[pair[x_,y_]] := Union[Flatten[{x,y} /. pair -> List]] (* Is the expression x free of all variables which occur in y? *) allfreeQ[x_,y_] := Apply[And,Map[FreeQ[x,#]&,varlist[y]]] (* added 2004 June 8 to fix a nuisance with two general equality substitution rules *) noblanks[x_] := Equal[{},Position[x,Verbatim[Blank[]]]] (* definition of the exported functions *) count = 0 (* initialize counter *) example[n_,string_,comment_] := Module[{t},count++; Print["In[",n,"]:= ",string]; If[comment!="",Print[comment]]; Print[""]; t = Timing[ToExpression[string]]; Print["Out[",n,"]= ",Part[t,2]]; Print[""]; Print["Execution time = ", Round[Part[t,1]/Second]," Seconds"]; Print["\n"]] (* Goedel's algorithm for class formation. *) (* Rules that must be assigned before attributes are set. *) and[p_] := p (* added 2000 September 13 *) composite[] := Id composite[x_] := composite[Id,x] intadd[x_] := x intersection[x_] := x natadd[x_] := x (* added 2002 August 29 based on MUL-ZERO.NB *) natmul[x_] := x or[p_] := p union[x_] := x Attributes[and] = {Flat,Orderless,OneIdentity} Attributes[composite] = {Flat,OneIdentity} Attributes[disjoint] = {Orderless} Attributes[equal] = {Orderless} Attributes[intadd] = {Flat,OneIdentity,Orderless} Attributes[intersection] = {Flat,Orderless,OneIdentity} (* added 2002 July 28 based on ADD-NAT.NB *) Attributes[natadd] = {Flat,OneIdentity,Orderless} (* added 2002 August 28-19 based on MUL-SWAP.NB and MULASSOC.NB *) Attributes[natmul] = {Flat,OneIdentity,Orderless} Attributes[or] = {Flat,Orderless,OneIdentity} (* introduced 2005 January 10 in SET.NB *) Attributes[set] = {Orderless} Attributes[union] = {Flat,Orderless,OneIdentity} not[True] := False (* Truth Table *) not[False] := True not[not[p_]] := p (* Double Negation *) not[or[p_,q_]] := and[not[p],not[q]] (* DeMorgan Laws *) not[and[p_,q_]] := or[not[p],not[q]] and[True,p_] := p (* Truth Table *) and[False,p_] := False and[p_,p_] := p (* Idempotent Law *) and[not[p_],p_] := False (* Excluded Middle *) and[p_,or[q_,r_]] := or[and[p,q],and[p,r]] (* Distributive Law *) or[True,p_] := True (* Truth Table *) or[False,p_] := p or[p_,p_] := p (* Idempotent Law *) or[not[p_],p_] := True (* Dichotomy Law *) or[p_,and[p_,q_]] := p (* Absorptive Law *) (* An empirical set of simplification rules *) or[and[p_,q_],and[not[p_],q_]] := q or[p_,and[not[p_],q_]] := or[p,q] or[not[p_],and[p_,q_]] := or[not[p],q] or[and[p_,q_],and[p_,not[q_],r_]] := or[and[p,q],and[p,r]] or[and[p_,not[q_]],and[p_,q_,r_]] := or[and[p,not[q]],and[p,r]] or[and[not[p_],q_],and[p_,r_],and[q_,r_]] := or[and[not[p],q],and[p,r]] (* Rules modified 1998 September 12 *) or[and[not[p_],r_],and[not[q_],r_],and[p_,q_]] := or[and[p,q],r] or[and[p_,r_],and[not[q_],r_],and[not[p_],q_]] := or[and[not[p],q],r] or[and[p_,r_],and[q_,r_],and[not[p_],not[q_]]] := or[and[not[p],not[q]],r] (* definition of logical equivalence *) equiv[p_,q_] := and[implies[p,q],implies[q,p]] (* some predicates *) propersubclass[x_,y_] := and[subclass[x,y],not[subclass[y,x]]] singlevalued[z_] := equal[0,fix[composite[inverse[z],complement[Id],z]]] (* introduced 2004 October 26 in AXCH-AC1.NB *) class[w_,axch] := Module[{x = Unique[],y = Unique[]},class[w,forall[x, implies[not[member[0,x]],exists[y,and[FUNCTION[y],subclass[y,inverse[E]],equal[domain[y],x]]]]]]] (* introduced 2004 October 26 in AXCH.NB *) class[w_,AxCh] := class[w,and[FUNCTION[CHOICE],subclass[CHOICE,inverse[E]], equal[domain[CHOICE],complement[set[0]]]]] (* introduced 2004 December 30 in AXREG.NB *) class[w_,AxReg] := complement[image[V,complement[REGULAR]]] (* introduced 2004 March 20 in EQV-WRAP.NB *) class[z_,EQUIVALENCE[x_]] := Module[{u = Unique[],v = Unique[]},class[z, and[TRANSITIVE[x],forall[u,v,implies[member[pair[u,v],x],member[pair[v,u],x]]]]]] (* basic rules for membership *) (* Special rule used to avoid assuming axiom of regularity Goedel had used the rule member[x,x] = False. *) class[w_,member[x_,x_]] := Module[{y=Unique[]},class[w, exists[y,and[member[x,y],equal[x,y]]]]] (* Theorems A-1,A-2A and A-2B in A1 *) class[w_,member[u_,A[x_]]] := Module[{v=Unique[]},class[w,and[member[u,V], forall[v,implies[member[v,x],member[u,v]]]]]] (* corrected 2001 October 14 *) class[u_,member[v_,Aclosure[x_]]] := Module[{w=Unique[]}, class[u,and[member[v,V],exists[w,and[subclass[w,x], equal[v,A[w]]]]]]] (* added 2003 October 28 based on APPLY.NB; wrapped 2005 August 15 *) class[u_,member[w_,APPLY[x_,y_]]] := class[u,and[member[w,V], not[member[y,image[inverse[x],P[complement[set[w]]]]]]]] (* membership rule for ASSOC revised 2001 November 15 *) class[x_,member[y_,ASSOC]] := Module[{u=Unique[],v=Unique[],w=Unique[]},class[x,exists[u,v,w, equal[pair[pair[pair[u,v],w],pair[u,pair[v,w]]],y]]]] (* added 2003 July 1 based on ASSOC.NB *) class[w_,associative[x_]] := class[w,and[subclass[x,cart[cart[V,V],V]], equal[composite[x,cross[x,Id]],composite[x,cross[Id,x],ASSOC]]]] (* added 2001 December 1 *) class[u_,member[v_,card[x_]]] := Module[{w=Unique[]},class[u,and[member[v,V], forall[w,implies[and[member[w,OMEGA],member[pair[x,w],Q]],member[v,w]]]]]] class[w_,member[z_,COARSER]] := Module[{x = Unique[],y = Unique[]}, class[w,exists[x,y,and[equal[z,pair[x,y]],subclass[x,y], equal[U[x],U[y]]]]]] class[w_,member[t_,COMPACT]] := Module[{x = Unique[],y = Unique[]}, class[w,and[member[t,V],forall[x,implies[and[subclass[x,t],subclass[U[t],U[x]]], exists[y,and[member[y,FINITE],subclass[y,x],subclass[U[x],U[y]]]]]]]]] class[w_,member[z_,composite[x_,y_]]] := Module[{u = Unique[],v = Unique[]},class[w,exists[u,v, and[equal[z,pair[u,v]],member[pair[u,v],composite[x,y]]]]]] (* Theorem CO-DF2 in CO2 and Theorems CO-COM-V,CO-1A' and CO-1B' in CO4 *) class[z_,member[pair[u_,w_],composite[x_,y_]]] := Module[{v = Unique[]},class[z,exists[v, and[member[u,V],member[w,V], member[pair[u,v],y],member[pair[v,w],x]]]]] (* added 2004 April 17 *) class[u_,member[v_,core[x_,y_]]] := Module[{w = Unique[]}, class[u,exists[w,and[member[w,x],member[v,w],subclass[w,y]]]]] (* Theorems X-OP-1,X-OP-2 and X-OP-3 in X2 *) class[z_,member[w_,cross[x_,y_]]] := Module[{u1 = Unique[],u2 = Unique[],v1 = Unique[],v2 = Unique[]}, class[z,exists[u1,u2,v1,v2,and[ equal[pair[pair[u1,u2],pair[v1,v2]],w], member[pair[u1,v1],x],member[pair[u2,v2],y]]]]] (* introduced 2005 January 27 *) class[w_,member[x_,DEDEKIND]] := Module[{y = Unique[]},class[w,and[member[x,V], forall[y,implies[and[subclass[y,x],member[pair[x,y],Q]],equal[x,y]]]]]] class[w_,member[x_,DIV]] := Module[{y = Unique[]},class[w,and[member[first[x],V],exists[y, and[member[y,omega],equal[second[x],natmul[first[x],y]]]]]]] (* Theorems DO-1A',DO-1B and DO-1C in DO1. Goedel's definition 1.5 modified 9/15/96 *) class[w_,member[u_,domain[x_]]] := Module[{v = Unique[]},class[w,exists[v, and[member[u,V],member[pair[u,v],x]]]]] (* added 2001 December 18 *) class[z_,member[w_,DORA]] := Module[{u = Unique[]},class[z,exists[u, equal[pair[u,pair[domain[u],range[u]]],w]]]] (* Theorems DUP-1 and DUP-2 in DUP *) class[z_,member[w_,DUP]] := Module[{u = Unique[]},class[z,exists[u, equal[pair[u,pair[u,u]],w]]]] (* introduced 2004 May 12 *) class[w_,member[x_,eqv[y_]]]:= class[w,and[member[x,trv[y]],member[x,inverse[trv[y]]]]] (* derived 2005 November 4 in FIN-FUNP.NB *) class[w_,member[x_,fin[y_]]] := class[w,and[member[x,y],member[y,FINITE]]] class[w_,member[x_,FINITE]] := Module[{y = Unique[]},class[w,and[member[x,V], not[exists[y,and[member[x,y],subclass[y,image[PS,y]]]]]]]] (* added 2001 November 13 *) class[w_,member[x_,first[y_]]] := Module[{u = Unique[],v = Unique[]},class[w,and[member[x,V], forall[u,v,implies[equal[y,pair[u,v]],member[x,u]]]]]] (* modified 2003 June 17 *) class[w_,member[x_,fix[y_]]] := class[w,and[member[x,V],member[pair[x,x],y]]] class[x_,member[y_,funpart[z_]]] := Module[{u = Unique[],v = Unique[]},class[x,exists[u,v, and[equal[pair[u,v],y],equal[image[z,set[u]],set[v]]]]]] (* introduced 2005 September 18 *) class[w_,member[x_,GLB[y_]]] := Module[{u = Unique[],v = Unique[]}, class[w,exists[u,v,and[equal[x,pair[u,v]],member[u,V],member[v,domain[y]], subclass[u,image[y,set[v]]],subclass[intersection[domain[y],lb[y,u]],image[inverse[y],set[v]]]]]]] class[x_,member[y_,GREATEST[z_]]] := Module[{u = Unique[],v = Unique[]},class[x,exists[u,v, and[equal[y,pair[u,v]],member[v,u],subclass[cart[u,set[v]],z]]]]] (* added 2004 September 5 based on HISTORY.NB *) class[u_,member[v_,history[x_,y_]]] := class[u,and[ equal[composite[x,id[image[y,set[first[second[v]]]]]],second[second[v]]], equal[first[v],first[second[v]]],member[first[v],V], member[image[y,set[first[second[v]]]],V]]] (* added 2004 March 29 based on HULL.NB *) class[u_,member[v_,hull[x_,y_]]] := Module[{w = Unique[]}, class[u,forall[w,implies[and[member[w,x],subclass[y,w]],member[v,w]]]]] (* revised 2001 November 15 *) class[u_,member[w_,IMAGE[z_]]] := Module[{x = Unique[],y = Unique[]},class[u,exists[x,y, and[equal[pair[x,y],w],equal[image[z,x],y]]]]] class[w_,member[v_,image[z_,x_]]] := Module[{u = Unique[]},class[w,exists[u, and[member[v,V],member[u,x],member[pair[u,v],z]]]]] (* added 2003 August 9 *) class[u_,member[v_,intadd[x_,y_]]] := Module[{w=Unique[]},class[u,and[member[v,V], forall[w,implies[member[pair[pair[x,y],w],INTADD],member[v,w]]]]]] (* membership rule for INTADD added 2003 July 25 *) class[x_,member[y_,INTADD]] := Module[{u = Unique[],v = Unique[],w = Unique[]}, class[x,exists[u,v,w,and[equal[y,pair[pair[u,v],w]], member[u,Z],member[v,Z],member[w,Z],subclass[composite[u,v],w]]]]] (* restored 29 June 2003 from GOEDEL52.L72 *) class[x_,member[w_,inverse[z_]]] := Module[{u = Unique[],v = Unique[]},class[x, exists[u,v,and[equal[pair[u,v],w],member[pair[v,u],z]]]]] (* definition of iterate added 2002 April 15 *) class[w_,member[x_,iterate[y_,z_]]] := Module[{p = Unique[]},class[w,exists[p,and[member[x,p], subclass[p,union[cart[set[0],z], composite[y,p,inverse[SUCC],id[omega]]]]]]]] (* added 2000 May 24 based on VS-K.NB; wraper 2005 January 7 *) class[w_,member[x_,K]] := class[w,and[member[x,PS],not[member[x,composite[PS,PS]]]]] class[x_,member[y_,LB[z_]]] := Module[{u = Unique[],v = Unique[]},class[x,exists[u,v, and[equal[y,pair[u,v]],subclass[cart[set[v],u],z]]]]] class[x_,member[y_,LEAST[z_]]] := Module[{u = Unique[],v = Unique[]},class[x,exists[u,v, and[equal[y,pair[u,v]],member[v,u],subclass[cart[set[v],u],z]]]]] (* revised 2001 November 15 *) class[x_,member[y_,LEFT[z_]]] := Module[{u = Unique[],v = Unique[]},class[x, exists[u,v,and[equal[pair[u,pair[v,u]],y],equal[v,z]]]]] (* rules added 98/01/22 *) class[x_,member[w_,LeftPairV]] := Module[{u = Unique[],v = Unique[]},class[x, exists[u,v,and[equal[pair[u,v],w],equal[v,pair[V,u]]]]]] (* introduced 2005 September 18 *) class[w_,member[x_,LUB[y_]]] := Module[{u = Unique[],v = Unique[]}, class[w,exists[u,v,and[equal[x,pair[u,v]],member[u,V],member[v,range[y]], subclass[u,image[inverse[y],set[v]]],subclass[intersection[range[y],ub[y,u]],image[y,set[v]]]]]]] (* added 2001 April 25 *) class[z_,member[w_,map[x_,y_]]] := class[z,and[member[w,FUNS],equal[domain[w],x],subclass[w,cart[V,y]]]] class[x_,member[y_,MAXIMAL[z_]]] := Module[{u = Unique[],v = Unique[],w=Unique[]},class[x,exists[u,v, and[equal[y,pair[u,v]],member[v,u],forall[w,implies[ and[member[w,u],member[pair[v,w],z]],equal[v,w]]]]]]] class[x_,member[y_,MINIMAL[z_]]] := Module[{u = Unique[],v = Unique[],w=Unique[]},class[x,exists[u,v, and[equal[y,pair[u,v]],member[v,u],forall[w,implies[ and[member[w,u],member[pair[w,v],z]],equal[v,w]]]]]]] (* wrapped rule introduced 2005 February 12 *) class[w_,member[x_,nat[y_]]] := class[w,and[member[x,y],member[y,omega]]] (* added 2002 July 27 *) class[u_,member[v_,natadd[x_,y_]]] := Module[{w=Unique[]},class[u,and[member[v,V], forall[w,implies[member[pair[pair[x,y],w],NATADD],member[v,w]]]]]] (* added 2005 May 6 *) class[u_,member[v_,natmod[x_,y_]]] := Module[{w=Unique[]},class[u,and[member[v,V], forall[w,implies[member[w,image[image[inverse[NATADD],set[x]],image[DIV,set[y]]]],member[v,w]]]]]] (* added 2002 July 27 *) class[u_,member[v_,natmul[x_,y_]]] := Module[{w=Unique[]},class[u,and[member[v,V], forall[w,implies[member[pair[pair[x,y],w],NATMUL],member[v,w]]]]]] (* added 2002 July 27 *) class[u_,member[v_,natsub[x_,y_]]] := Module[{w=Unique[]},class[u,and[member[v,V], forall[w,implies[member[pair[pair[y,w],x],NATADD],member[v,w]]]]]] class[z_,member[x_,omega]] := Module[{w = Unique[]},class[z,forall[w,implies[and[member[0,w], subclass[image[SUCC,w],w]],member[x,w]]]]] class[w_,member[x_,OMEGA]] := class[w,and[member[x,V], subclass[intersection[P[x],FULL],succ[x]]]] (* added 2004 May 6 *) class[x_,member[y_,oopart[z_]]] := Module[{u = Unique[],v = Unique[]}, class[x,exists[u,v,and[equal[pair[u,v],y], equal[image[z,set[u]],set[v]], equal[image[inverse[z],set[v]],set[u]]]]]] class[u_,member[v_,pair[x_,y_]]] := Module[{z=Unique[]},class[u,exists[z, and[equal[pair[x,y],z],member[v,z]]]]] (* added 2004 July 29 *) class[u_,member[v_,partrec[x_,y_]]] := Module[{w = Unique[]},class[u, and[invariant[y,domain[v]],exists[w,and[equal[w,composite[id[v],inverse[FIRST]]], subclass[v,composite[x,id[composite[IMAGE[w],VERTSECT[y]]],inverse[FIRST]]]]]]]] (* definition of PointClosed added 2003 July 3 based on PTCLOSED.NB *) class[w_,member[t_,PointClosed]] := class[w,and[member[t,V],subclass[image[SINGLETON,U[t]],image[RC[U[t]],t]]]] (* definition of power added 2002 May 20 *) class[w_,member[x_,power[y_]]] := Module[{p = Unique[]},class[w,exists[p,and[member[x,p], subclass[p,union[cart[set[0],Id], composite[cross[Id,y],p,inverse[SUCC],id[omega]]]]]]]] (* revised 2002 January 8 *) class[w_,member[x_,Q]] := Module[{u = Unique[],v = Unique[],z = Unique[]}, class[w,exists[u,v,z,and[ONEONE[z],equal[pair[u,v],x], equal[u,domain[z]],equal[v,range[z]]]]]] class[w_,member[v_,range[z_]]] := Module[{u = Unique[]},class[w,exists[u, and[member[v,V],member[pair[u,v],z]]]]] (* membership rule for rank *) class[w_,member[y_,rank[x_]]] := Module[{z=Unique[]}, class[w,and[member[y,V],forall[z, implies[and[member[x,V],member[pair[z,x],ZN],member[z,OMEGA]], member[y,z]]]]]] (* relative complementation function revised 2001 November 15 *) class[z_,member[w_,RC[x_]]] := Module[{u = Unique[],v = Unique[]}, class[z,exists[u,v,and[equal[pair[u,v],w],disjoint[u,v], equal[union[u,v],x]]]]] (* added 2004 July 29 *) class[u_,member[v_,rec[x_,y_]]] := Module[{w = Unique[]},class[u, exists[w,and[member[v,w],member[w,partrec[x,y]]]]]] class[w_,member[x_,REGULAR]] := Module[{y = Unique[]},class[w, and[member[x,V],forall[y, implies[subclass[y,image[E,y]],not[member[x,y]]]]]]] (* revised 2001 November 15 *) class[x_,member[y_,RIF]] := Module[{u=Unique[],v=Unique[],w=Unique[]}, class[x,exists[u,v,w, equal[pair[pair[pair[u,w],pair[v,u]],pair[w,v]],y]]]] (* revised 2001 November 15 *) class[x_,member[y_,RIGHT[z_]]] := Module[{u = Unique[],v = Unique[]},class[x, exists[u,v,and[equal[pair[u,pair[u,v]],y],equal[v,z]]]]] (* rules added 98/01/22 *) class[x_,member[w_,RightPairV]] := Module[{u = Unique[],v = Unique[]},class[x, exists[u,v,and[equal[pair[u,v],w],equal[v,pair[u,V]]]]]] (* membership rule for ROT revised 2001 November 15 *) class[x_,member[y_,ROT]] := Module[{u = Unique[],v = Unique[],w = Unique[]}, class[x,exists[u,v,w,equal[pair[pair[pair[u,v],w], pair[pair[w,u],v]],y]]]] class[x_,member[y_,rotate[z_]]] := Module[{u = Unique[],v = Unique[],w = Unique[]},class[x, exists[u,v,w,and[member[pair[pair[u,w],v],z], equal[pair[pair[v,u],w],y]]]]] (* modified 2003 June 17 *) class[w_,member[x_,RUSSELL]] := class[w,and[member[x,V],not[member[x,x]]]] (* added 2001 November 13 *) class[w_,member[x_,second[y_]]] := Module[{u = Unique[],v = Unique[]},class[w,and[member[x,V], forall[u,v,implies[equal[y,pair[u,v]],member[x,v]]]]]] (* wrapped rule introduced 2004 May 16 *) class[w_,member[x_,setpart[y_]]] := class[w,and[member[x,y],member[y,V]]] (* added 2002 April 6 *) class[w_,member[x_,SMALLER]] := Module[{u = Unique[],v = Unique[],y=Unique[],z = Unique[]}, class[w,exists[u,v,and[equal[pair[u,v],x], exists[y,and[ONEONE[y],equal[u,domain[y]],subclass[range[y],v]]], not[exists[z,and[ONEONE[z],equal[v,domain[z]],subclass[range[z],u]]]]]]]] class[w_,member[z_,SWAP]] := Module[{u = Unique[],v = Unique[]},class[w, exists[u,v,equal[pair[pair[u,v],pair[v,u]],z]]]] (* added 2003 June 23 based on T1.NB *) class[w_,member[t_,T1]] := class[w,and[member[t,V], subclass[composite[Di,id[U[t]]],composite[complement[inverse[E]],id[t],E]]]] (* added 2003 June 23 based on T2.NB *) class[w_,member[t_,T2]] := class[w,and[member[t,V], subclass[composite[id[U[t]],Di,id[U[t]]],composite[inverse[E],id[t],DISJOINT,id[t],E]]]] (* added 2005 February 4 *) class[w_,member[y_,tc[x_]]] := Module[{u = Unique[], v = Unique[]}, class[w,exists[u,and[subclass[u,x],forall[v,implies[and[full[v],subclass[u,v]],member[y,v]]]]]]] (* added 2004 May 13 *) class[w_,member[x_,thinpart[y_]]] := class[w,and[member[x,y],member[first[x],V],member[image[y,set[first[x]]],V]]] (* revised 2003 May 23 based on DEF-CLOS.NB *) class[w_,member[x_,TOPS]] := class[w,and[equal[x,Uclosure[x]],member[x,V], subclass[image[CAP,cart[x,x]],x]]] (* revised 2004 March 29 based on HULL.NB *) class[u_,member[x_,trv[y_]]] := Module[{z = Unique[]}, class[u,exists[z,and[member[x,hull[TRV,z]],subclass[z,y],subclass[z,cart[V,V]]]]]] (* added 1999 October 10 based on TWIST.1 *) class[w_,member[z_,TWIST]] := Module[{u=Unique[],v=Unique[],x=Unique[],y=Unique[]}, class[w,exists[u,v,x,y,equal[ pair[pair[pair[u,v],pair[x,y]],pair[pair[u,x],pair[v,y]]],z]]]] class[t_,member[u_,twist[v_]]] := Module[{w = Unique[],x = Unique[],y = Unique[],z = Unique[]}, class[t,exists[w,x,y,z,and[equal[pair[pair[w,x],pair[y,z]],u], member[pair[pair[w,y],pair[x,z]],v]]]]] class[w_,member[x_,U[z_]]] := Module[{y = Unique[]},class[w,exists[y, and[member[x,y],member[y,z]]]]] class[x_,member[y_,UB[z_]]] := Module[{u = Unique[],v = Unique[]},class[x,exists[u,v, and[equal[y,pair[u,v]],subclass[cart[u,set[v]],z]]]]] (* revised 2001 November 15 *) class[x_,member[y_,VERTSECT[z_]]] := Module[{u = Unique[],v = Unique[]}, class[x,exists[u,v,and[equal[y,pair[u,v]], equal[image[z,set[u]],v]]]]] (* added 2002 November 11 *) class[w_,member[x_,Z]] := Module[{y = Unique[]}, class[w,member[x,image[VERTSECT[y],cart[omega,omega]]]]/.y->EQUIDIFF] (* added 2001 July 5 *) class[x_,member[y_,ZN]] := Module[{u = Unique[],v= Unique[],w = Unique[]}, class[x,exists[w,and[member[y,composite[Id,w]], subclass[composite[inverse[E],w],composite[inverse[E],IMAGE[w]]]]]]] (* introduced 2004 March 21 in PO-WRAP.NB *) class[w_,PARTIALORDER[x_]] := class[w,and[equal[domain[x],fix[x]],equal[fix[x],range[x]], subclass[intersection[x,inverse[x]],Id],TRANSITIVE[x]]] (* introduced 2004 March 18 in RFX-WRAP.NB *) class[w_,REFLEXIVE[x_]] := Module[{z = Unique[]},class[w,forall[z, implies[member[z,x],and[member[first[z],fix[x]],member[second[z],fix[x]]]]]]] (* Definition DF-SU-1,DF-SU-2 and DF-SU-3 in AX-A *) class[w_,subclass[x_,y_]] := Module[{u = Unique[]},class[w, forall[u,implies[member[u,x],member[u,y]]]]] (* introduced 2004 September 5 in WF-REC-4.NB *) class[w_,subvariant[x_,y_]] := Module[{z = Unique[]},class[w,forall[z,implies[member[z,y],member[z,image[x,y]]]]]] (* derived 2005 November 5 *) class[u_,member[v_,top[y_]]] := Module[{w = Unique[]},class[u,forall[w, implies[and[member[w,TOPS],subclass[setpart[y],w]],member[v,w]]]]] (* revised 2004 February 10 *) class[w_,TOTALORDER[x_]] := class[w,and[ANTISYMMETRIC[x],TRANSITIVE[x],equal[union[x,inverse[x]],cart[fix[x],fix[x]]]]] (* introduced 2004 March 20 in EQV-WRAP.NB *) class[z_,TRANSITIVE[x_]] := Module[{u = Unique[],v = Unique[],w = Unique[]}, class[z,and[subclass[x,cart[V,V]],forall[u,v,w, implies[and[member[pair[u,v],x],member[pair[v,w],x]],member[pair[u,w],x]]]]]] (* added 2003 September 27 *) class[w_,WELLFOUNDED[x_]] := Module[{y=Unique[]},class[w,and[subclass[x,cart[V,V]],forall[y,implies[subvariant[x,y],equal[0,y]]]]]] (* wrapped 2004 January 24 *) class[w_,WELLORDER[x_]] := class[w,and[REFLEXIVE[x],subclass[P[fix[x]],union[set[0],domain[funpart[LEAST[x]]]]]]] class[x_,False]:=0 class[x_,True]:=V /; AtomQ[x] class[pair[u_,v_],True] := cart[class[u,True],class[v,True]] class[z_,member[z_,x_]] := x /; And[FreeQ[x,z],AtomQ[z]] (* axiom B.1 membership relation *) class[pair[u_,v_],member[u_,v_]] := E /; And[AtomQ[u],AtomQ[v]] (* axiom B.2 intersection *) class[x_,and[p_,q_]] := intersection[class[x,p],class[x,q]] (* added 1996 July 28: *) class[x_,or[p_,q_]] := union[class[x,p],class[x,q]] (* axiom B.3 complement *) class[x_,not[p_]] := intersection[complement[class[x,p]],class[x,True]] (* axiom B.4 domain and Goedel's equation 2.8 on page 9 *) class[x_,exists[y_,p_]] := domain[class[pair[x,y],p]] (* axiom B.5 cartesian product an interpretation of Goedel's equations 2.41 and 2.7 on page 9 *) class[pair[u_,v_],p_] := cart[class[u,p],class[v,True]] /; allfreeQ[p,v] class[pair[u_,v_],p_] := cart[class[u,True],class[v,p]] /; allfreeQ[p,u] (* axiom B.6 inverse *) class[pair[u_,v_],member[v_,u_]] := inverse[E] /; And[AtomQ[u],AtomQ[v]] (* The following rules replace Goedel's rotation rules on page 9: *) (* revised 2000 January 13 *) class[pair[pair[u_,v_],w_],p_] := composite[class[pair[v,w],p],SECOND, id[cart[class[u,True],V]]] /; allfreeQ[p,u] (* revised 2000 January 13 *) class[pair[pair[u_,v_],w_],p_] := composite[class[pair[u,w],p],FIRST, id[cart[V,class[v,True]]]] /; allfreeQ[p,v] (* revised 2000 January 13 *) class[pair[w_,pair[u_,v_]],p_] := composite[id[cart[class[u,True],V]], inverse[SECOND],class[pair[w,v],p]] /; allfreeQ[p,u] (* revised 2000 January 13 *) class[pair[w_,pair[u_,v_]],p_] := composite[id[cart[V,class[v,True]]], inverse[FIRST],class[pair[w,u],p]] /; allfreeQ[p,v] (* special page 10 maneuver revised 9/15/96 *) class[u_,member[x_,y_]] := Module[{v = Unique[]}, class[u,exists[v,and[equal[x,v],member[v,y]]]]] /; FreeQ[varlist[u],x] (* new rules for equality *) class[pair[u_,v_],equal[u_,v_]] := Id /; And[AtomQ[u],AtomQ[v]] class[pair[u_,v_],equal[v_,u_]] := Id /; And[AtomQ[u],AtomQ[v]] class[x_,equal[x_,y_]] := intersection[set[y],class[x,True]] /; allfreeQ[y,x] class[x_,equal[y_,x_]] := intersection[set[y],class[x,True]] /; allfreeQ[y,x] (* AX-EQ in AX-A. Goedel's Axiom A.3 of Coextension. Revised 1996 August 23 *) class[w_,equal[x_,y_]] := intersection[class[w,subclass[x,y]], class[w,subclass[y,x]]] /; And[Or[Not[MemberQ[varlist[w],x]], Not[MemberQ[varlist[w],y]]], Not[SameQ[Head[x],pair]], Not[SameQ[Head[y],pair]]] (* corrections added 9/17/96 at 9:20 p.m. *) class[w_,equal[set[u_],set[v_]]] := class[w,equal[u,v]] /; MemberQ[varlist[w],u] || MemberQ[varlist[w],v] || member[u,V] || member[v,V] (* rules for pairs *) BadPair := Module[{},Print[pair::argx]; Abort[]] pair[] := BadPair pair[x_] := BadPair pair[x_,y_,z__] := BadPair (* rules that apply when x or y is known not to be a set *) pair[x_,y_] := pair[V,y] /; Not[V === x] && not[member[x,V]] pair[x_,y_] := pair[x,V] /; Not[V === y] && not[member[y,V]] (* rule that applies when z does not occur in varlist[u] or when z does occur in x or y. *) class[u_,equal[pair[x_,y_],z_]] := Module[{v=Unique[]}, class[u,exists[v,and[equal[pair[x,y],v],equal[v,z]]]]] /; Not[MemberQ[varlist[u],z]] || Not[FreeQ[{x,y},z]] (* First rule that applies when z does occur in varlist[w] and z does not occur in either x or y. This rule only applies in the special case when it is known somehow that x and y are sets. *) class[w_,equal[pair[x_,y_],z_]] := Module[{u=Unique[],v=Unique[]}, class[(w/.z->pair[u,v]),and[equal[x,u],equal[y,v]]]] /; And[MemberQ[varlist[w],z],FreeQ[{x,y},z], Or[member[x,V],MemberQ[varlist[w],x]], Or[member[y,V],MemberQ[varlist[w],y]]] (* next two rules were modified 1998 March 12 *) (* rule that applies when one does not know whether or not x is a set *) class[u_,equal[pair[x_,y_],z_]] := Module[{v=Unique[]}, class[u,or[and[not[member[x,V]],equal[pair[V,y],z]], exists[v,and[equal[x,v],equal[pair[v,y],z]]]]]] /; Not[MemberQ[varlist[u],x]] && UnsameQ[V,x] && Not[member[x,V] === True] (* rule that applies when one does not know whether or not y is a set *) class[u_,equal[pair[x_,y_],z_]] := Module[{v=Unique[]}, class[u,or[and[not[member[y,V]],equal[pair[x,V],z]], exists[v,and[equal[y,v],equal[pair[x,v],z]]]]]] /; Not[MemberQ[varlist[u],y]] && UnsameQ[V,y] && Not[member[y,V] === True] (* added 9/15/96 *) class[pair[u_,v_],equal[pair[V,u_],v_]] := LeftPairV class[pair[u_,v_],equal[pair[u_,V],v_]] := RightPairV (* added 1/18/98 *) class[pair[u_,v_],equal[pair[V,v_],u_]] := inverse[LeftPairV] class[pair[u_,v_],equal[pair[v_,V],u_]] := inverse[RightPairV] (* added 9/17/96 *) image[inverse[RightPairV],x_] := 0 /; composite[Id,x] == x image[inverse[LeftPairV],x_] := 0 /; composite[Id,x] == x (* rules added 1998 October 11 *) class[w_,equal[pair[V,y_],z_]] := Module[{v = Unique[]}, class[w,or[and[not[member[y,V]],equal[pair[V,V],z]], and[member[y,V],exists[v,and[equal[pair[V,v],z],equal[v,y]]]]]]] /; Not[allfreeQ[y,w]] class[w_,equal[pair[x_,V],z_]] := Module[{v = Unique[]}, class[w,or[and[not[member[x,V]],equal[pair[V,V],z]], and[member[x,V],exists[v,and[equal[pair[v,V],z],equal[v,x]]]]]]] /; Not[allfreeQ[x,w]] class[w_,equal[pair[V,V],w_]] := set[pair[V,V]] class[w_,equal[pair[V,V],x_]] := Module[{v = Unique[]}, class[w,exists[v,and[equal[pair[V,V],v],equal[v,x]]]]] /; Not[MemberQ[x,varlist[w]]] (* unconventional definition for FUNCTION revised 2001 November 24 *) class[w_,FUNCTION[x_]] := Module[{z = Unique[]}, class[w,and[subclass[x,cart[V,V]],forall[z,or[ not[member[z,x]],not[member[z,composite[Di,x]]]]]]]] Print["Loading Simplification Rules"]; (* unconditional rules *) (* Theorem A-3 in A1 *) A[0] := V (* Theorem ACL-A in ACL1 proved 2001 September 29 *) A[Aclosure[x_]] := A[x] (* derived 2004 December 10 in AP-IMG.NB *) A[cart[x_,intersection[z_,image[V,y_]]]] := union[A[cart[x,z]],complement[image[V,y]]] (* temporary rule added 2002 January 1 based on PAIR-MEM.NB *) A[cart[set[x_],set[y_]]] := PAIR[x,y] (* temporary rule added 2002 January 1 based on PAIR-MEM.NB *) A[cart[cart[set[x_],set[y_]],set[z_]]] := PAIR[PAIR[x,y],z] (* Theorem SP-A-C-A in SP3 *) A[complement[A[x_]]] := complement[image[V,x]] (* Theorem A-C-IM-V in A1 added 1998 April 19 *) A[complement[image[V,x_]]] := image[V,x] (* Theorem SR-A-C in SR1 proved 1998 October 18 *) A[complement[image[S,set[x_]]]] := complement[image[V,x]] (* Theorem DI-A-PC in DI added 1998 July 2 *) A[complement[P[x_]]] := complement[image[Di,complement[x]]] (* Theorem REG-C-A in REG2 proved 1999 March 18 *) A[complement[REGULAR]] := complement[image[V,complement[REGULAR]]] (* Corollary SP-A-C1 in SP3 proved 1998 December 8 *) A[complement[set[x_]]] := 0 (* Theorem DESC-A in REG1 proved 1999 March 18 *) A[DESCENDING] := 0 (* Theorem FIN-A in FINITE proved 2000 March 18 *) A[FINITE] := 0 (* added 2003 February 22 based on FIX-HULL.NB *) A[fix[HULL[x_]]] := A[x] (* added 2002 July 27 based on A-FP-UCL.NB *) A[fix[UCLOSURE]] := set[0] (* Theorem FUL-A-0 in FUL3 added 1998 February 7 *) A[FULL] := 0 (* added 2001 March 28 based on ADJOIN.NB *) A[image[ADJOIN[x_],y_]] := union[x,A[y],complement[image[V,set[x]]]] (* Theorem BA-A-SC in BIGCAP/BA1 proved 1998 December 9 *) A[image[BIGCAP,x_]] := A[U[x]] (* added 1999 October 5 based on CAP-CUP.1 *) A[image[CAP,x_]] := intersection[A[domain[x]],A[range[x]]] (* added 1999 October 5 based on CART.1 *) A[image[CART,x_]] := union[cart[A[domain[x]],A[range[x]]], complement[image[V,domain[x]]]] (* added 2003 October 28 based on APPLY.NB *) A[image[x_,cart[set[y_],set[z_]]]] := APPLY[x,PAIR[y,z]] (* added 2001 April 30 based on CLIQUES2.NB *) A[image[CLIQUES,x_]] := cliques[A[x]] (* added 1999 October 5 based on CAP-CUP.2 *) A[image[CUP,x_]] := complement[fix[composite[complement[inverse[E]],x,complement[E]]]] (* added 1999 October 5 based on CUP-SR.1 *) A[image[CUP,cart[x_,y_]]] := union[A[x],A[y]] (* Theorem SP-A-DI in SP3 proved 1998 October 8 *) A[image[Di,x_]] := complement[image[V,x]] (* added 2000 January 5 based on A-IM-DIF.NB *) A[image[DIF,x_]] := intersection[A[domain[x]],complement[U[range[x]]]] (* Theorem DJT-A-IM in DJT proved 1998 October 18 *) A[image[DISJOINT,x_]] := complement[image[V,x]] (* derived 2005 May 5 in S-DIV.NB *) A[image[DIV,x_]] := complement[image[V,intersection[omega,x]]] (* added 2001 April 10 based on HC-BA.NB *) A[image[HC,x_]] := H[A[x]] (* added 2001 December 03 based on HULL.NB *) A[image[HULL[x_],y_]] := A[intersection[x,image[S,y]]] (* added 2001 February 27 based on STUDY.NB *) A[image[IMAGE[id[x_]],y_]] := union[complement[image[V,y]],intersection[x,A[y]]] (* added 1999 October 7 based on FP-A.LOG *) A[image[IMAGE[inverse[DUP]],x_]] := fix[A[x]] (* derived 2005 May 17 based on NATMOD.NB *) A[image[image[inverse[NATADD],set[x_]],image[DIV,set[y_]]]] := natmod[x,y] (* added 2001 May 3 based on BA-IMG.NB *) A[image[IMAGE[inverse[POWER]],x_]] := image[inverse[POWER],A[x]] (* added 2002 February 17 based on IMG-IMG.NB *) A[image[IMAGE[SWAP],x_]] := union[complement[image[V,x]],inverse[A[x]]] (* added 2002 April 10 based on INVAR.NB *) A[image[INVAR,x_]] := complement[image[V,x]] (* added 1999 October 29 based on 1999 October 28 FIX-IDP.LOG *) A[image[inverse[IMAGE[DUP]],x_]] := fix[A[intersection[x,P[Id]]]] (* derived 2005 November 6 in IMG-THIN.NB *) A[image[inverse[IMAGE[thinpart[x_]]],y_]] := A[image[inverse[IMAGE[x]],y]] (* Theorem SR-IN-A in SR3 proved 1998 October 18 *) A[image[inverse[S],x_]] := complement[image[V,x]] (* added 1999 October 30 based on IMAGEINT.2 *) A[image[PAIRSET,x_]] := complement[fix[composite[Di,x,Di]]] (* Theorem POW-A in POW3 proved 1998 November 12 *) A[image[POWER,x_]] := P[A[x]] (* added 2000 May 9 based on Q-C-E.NB *) A[image[Q,x_]] := complement[image[V,x]] (* derived 2004 April 17 in REPLACE.NB *) A[image[RC[x_],y_]] := union[complement[image[V,intersection[y,P[x]]]], complement[image[V,set[x]]],intersection[x,complement[core[y,x]]]] (* Theorem SR-IM-A in SR3 proved 1998 August 15 *) A[image[S,x_]] := A[x] (* Theorem AP-SG-A in AP2 proved 1998 September 8 *) A[image[SINGLETON,x_]] := complement[image[Di,x]] (* added 2003 October 28 based on APPLY.NB *) A[image[x_,set[y_]]] := APPLY[x,y] (* added 2000 January 7 based on TC-CO.TXT *) A[image[TC,x_]] := A[intersection[FULL,image[S,x]]] (* Theorem A-IM-V in A1 *) A[image[V,x_]] := complement[image[V,x]] (* derived 2004 February 19 in REPLACE2.NB *) A[image[VERTSECT[x_],y_]] := ub[x,intersection[y,domain[VERTSECT[x]]]] (* added 2001 July 15 based on ZN-AGAIN.NB *) A[image[ZN,x_]] := complement[image[V,x]] (* added 2002 May 31 based on ALEPH-0.NB *) A[intersection[complement[omega],fix[CARD]]] := omega (* Theorem A-U-IMV in A1 proved 1998 December 10 *) A[intersection[x_,complement[image[V,y_]]]] := union[A[x],image[V,y]] (* Theorem SUC-IND5 in SUC-RELATION proved 1998 July 9 *) A[intersection[complement[P[complement[set[0]]]],invar[SUCC]]] := omega (* derived 2004 April 25 in ADJOIN.NB *) A[intersection[image[S,x_],image[S,y_]]] := union[A[x],A[y]] (* derived 2004 March 29 based on HULL.NB *) A[intersection[x_,image[S,set[y_]]]] := hull[x,y] (* Theorem A-I-IMV in A1 proved 1998 December 10 *) A[intersection[x_,image[V,y_]]] := union[A[x],complement[image[V,y]]] (* derived 2005 February 19 in ITR-OM-E.NB *) A[intersection[omega,complement[nat[x_]]]] := nat[x] (* added 2002 May 31 based on DICHOT.NB *) A[intersection[OMEGA,complement[omega]]] := omega (* added 2003 January 20 based on ONSUC7OT.NB *) (* singleton of 0 is the least ordinal that holds 0 *) A[intersection[OMEGA,complement[set[0]]]] := set[0] (* added 2003 January 20 based on ON-SUC-7.NB *) (* omega is the least limit ordinal *) A[intersection[OMEGA,complement[set[0]],fix[BIGCUP]]] := omega (* added 2001 July 12 based on RANK-1.NB *) A[intersection[OMEGA,image[inverse[ZN],set[x_]]]] := rank[x] (* added 2001 December 1 based on CARD-X.NB *) A[intersection[OMEGA,image[Q,set[x_]]]] := card[x] (* added 1999 August 13 based on session A-I-SS.LOG *) A[intersection[x_,set[y_]]] := union[y,complement[image[V,intersection[x,set[y]]]]] (* Theorem IVR-0-A in INVAR *) A[invar[x_]] := 0 (* Theorem OM-A in OM1 added 1998 February 7 *) A[omega] := 0 (* Theorem ON-A-DEM in ON5 added 1998 February 7 *) A[OMEGA] := 0 (* Theorem PC-A in PC1 *) A[P[x_]] := 0 (* derived 2005 February 22 in PRIMES.NB *) A[PRIMES] := succ[set[0]] (* added 1999 November 6 based on CO-2.LOG *) A[range[CART]] := 0 (* Theorem POW-RA-1 in POW5 *) A[range[POWER]] := set[0] (* Theorem SG-RA-A in SG2 proved 1998 February 3 *) A[range[SINGLETON]] := 0 (* added 2002 April 8 based on UCL-ACL.NB *) A[range[SUBVAR]] := set[0] (* Theorem REG-A in REG2 *) A[REGULAR] := 0 (* Theorem RUS-A in RUS2 *) A[RUSSELL] := 0 (* Theorem A-SS in A1 proved 1998 July 13 *) A[set[x_]] := union[x,complement[image[V,set[x]]]] (* derived 2004 August 29 in A-SS-AP.NB *) A[set[APPLY[x_,y_]]] := APPLY[x,y] (* derived 2004 August 1 in COMMON2.NB *) A[succ[set[x_]]] := intersection[x,set[x]] (* added 2001 December 9 based on EQUAL-V.NB *) A[TOPS] := set[0] (* Theorem A-7 in A1 *) A[union[x_,y_]] := intersection[A[x],A[y]] (* Theorem A-4 in A1 *) A[V] := 0 (* added 2003 February 25 based on Z.NB *) A[Z] := 0 (* Theorem ACL-0 in ACL1 proved 2001 September 29 *) Aclosure[0] := 0 (* added 2003 October 15 based on ACYCLIC.NB *) Aclosure[ACYCLIC] := ACYCLIC (* added 2002 January 17 based on ANTISYM3.NB *) Aclosure[ANTISYM] := ANTISYM (* added 2001 October 15 based on ACL-IMS.NB *) Aclosure[BIJ] := BIJ (* added 2003 May 21 based on BINCLOSE.NB *) Aclosure[binclosed[x_]] := binclosed[x] (* added 2002 May 11 based on PAIR.NB *) Aclosure[cart[set[x_],set[y_]]] := cart[set[x],set[y]] (* added 2001 October 15 based on ACL-IMS.NB *) Aclosure[cliques[x_]] := cliques[x] (* added 2003 February 23 based on ACL-CIMS.NB *) Aclosure[complement[image[S,x_]]] := complement[image[S,x]] (* added 2002 January 9 based on ACLOSURE.NB *) Aclosure[complement[P[complement[set[x_]]]]] := complement[P[complement[set[x]]]] (* added 2002 May 2 based on ACLOSED.NB *) Aclosure[EQV] := EQV (* added 2002 January 31 based on FIX-ACL.NB *) Aclosure[fix[ACLOSURE]] := fix[ACLOSURE] (* added 2002 January 18 based on CLIQUES.NB *) Aclosure[fix[composite[DISJOINT,IMAGE[x_]]]] := fix[composite[DISJOINT,IMAGE[x]]] (* added 2002 January 17 based on CLIQSWAP.NB *) Aclosure[fix[composite[DISJOINT,INVERSE]]] := fix[composite[DISJOINT,INVERSE]] (* derived 2004 May 4 in ALLCLOSED.NB *) Aclosure[fix[composite[S,IMAGE[x_],POWER]]] := fix[composite[S,IMAGE[x],POWER]] (* added 2001 October 14 based on ACL-4.NB *) Aclosure[fix[IMAGE[inverse[S]]]] := fix[IMAGE[inverse[S]]] (* added 2001 January 31 based on FIX-UCL.NB *) Aclosure[fix[UCLOSURE]] := fix[UCLOSURE] (* Corollary of Theorem IVR-FUL5 in INVAR proved 1999 December 29 *) Aclosure[FULL] := FULL (* added 2001 October 15 based on ACL-IMS.NB *) Aclosure[FUNS] := FUNS (* added 2001 October 15 based on ACL-IMS.NB *) Aclosure[FINITE] := FINITE (* added 2003 September 5 based on FIXHULL.NB *) Aclosure[fix[HULL[x_]]] := fix[HULL[x]] (* added 2001 October 15 based on ACL-IMS.NB *) Aclosure[H[FINITE]] := H[FINITE] (* added 2003 May 18 based on ACL-SQ.NB *) Aclosure[image[CART,Id]] := image[CART,Id] (* added 2003 May 18 based on ACL-SQ.NB *) Aclosure[image[CART,id[x_]]] := image[CART,id[Aclosure[x]]] (* restored 2001 October 14 based on IMS.NB *) Aclosure[image[inverse[S],x_]] := image[inverse[S],x] (* added 2003 June 22 based on HULL-RC.NB *) Aclosure[image[RC[x_],y_]] := image[RC[x],intersection[image[S,y],Uclosure[y]]] (* restored 2001 October 14 based on ACL-3.NB *) Aclosure[image[S,set[x_]]] := image[S,set[x]] (* added 2003 February 23 based on ACL-CIMS.NB *) Aclosure[image[V,x_]] := image[V,x] (* derived 2005 September 17 in ACL-DIV.NB *) Aclosure[image[VERTSECT[DIV],omega]] := image[VERTSECT[DIV],omega] (* added 2002 May 6 based on HULL-ACL.NB *) Aclosure[intersection[x_,image[S,set[y_]]]] := intersection[Aclosure[x],image[S,set[y]]] (* derived 2005 July 24 in ACL-P-OM.NB *) Aclosure[intersection[omega,x_]] := intersection[omega,x] (* derived 2005 July 24 in ACL-P-OM.NB *) Aclosure[intersection[OMEGA,x_]] := intersection[OMEGA,x] (* added 2001 October 28 based on IVR-RFX.NB *) Aclosure[intersection[RFX,SYM]] := intersection[RFX,SYM] (* Corollary of Theorem IVR-BA in INVAR proved 1999 January 9 *) Aclosure[invar[x_]] := invar[x] (* Corollary of Theorem ON-BA1 in ON5 proved 1999 December 30 *) Aclosure[OMEGA] := OMEGA (* Theorem ACL-PC1 in ACL1 proved 2001 September 29 *) Aclosure[P[x_]] := P[x] (* derived 2005 July 24 in ACL-P-OM.NB *) Aclosure[PRIMES] := PRIMES (* derived 2004 April 27 in UCL-SS.NB *) Aclosure[set[0,x_]] := set[0,x] (* added 2002 March 9 based on PO-ACL.NB *) Aclosure[PO] := PO (* restored 2001 October 14 based on RA-POW.NB *) Aclosure[range[POWER]] := range[POWER] (* derived 2005 September 8 in RAVS-DIV.NB *) Aclosure[range[VERTSECT[DIV]]] := range[VERTSECT[DIV]] (* Theorem ACL-REG in ACL1 proved 2001 September 29 *) Aclosure[REGULAR] := REGULAR (* added 2001 October 28 based on IVR-RFX.NB *) Aclosure[RFX] := RFX (* derived 2004 August 7 in RS-1.NB *) Aclosure[RS[x_]] := RS[x] (* added 2001 October 15 based on ACL-UCL.NB *) Aclosure[set[x_]] := set[x] (* added 2001 October 14 based on RA-POW.NB *) Aclosure[SYM] := SYM (* added 2003 May 21 based on BINCLOSE.NB *) Aclosure[TOPS] := TOPS (* added 2002 January 30 based on ACL-TRV.NB *) Aclosure[TRV] := TRV (* added 2002 January 9 based on ACLOSURE.NB *) Aclosure[union[x_,complement[image[V,y_]]]] := union[Aclosure[x],complement[image[V,y]]] (* added 2002 January 9 based on ACLOSURE.NB *) Aclosure[union[x_,image[V,y_]]] := union[Aclosure[x],image[V,y]] (* added 2002 May 2 based on ACLOSED.NB *) Aclosure[union[range[SINGLETON],set[0]]] := union[range[SINGLETON],set[0]] (* added 2002 November 20 based on UCL-U.NB *) Aclosure[union[x_,set[0]]] := union[Aclosure[x],set[0]] (* Theorem ACL-V-1 in ACL1 proved 2001 September 29 *) Aclosure[V] := V (* added 2003 September 29 based on WF.NB *) Aclosure[WF] := WF (* added 2003 February 26 based on ACL-Z.NB *) Aclosure[Z] := union[Z,set[0]] (* Theorem ADJ-0 in ADJ proved 1999 March 11 *) ADJOIN[0] := Id (* added 2003 February 20 based on ADJOIN-V.NB *) ADJOIN[complement[image[V,x_]]] := id[image[V,x]] (* added 2003 February 20 based on ADJOIN-V.NB *) ADJOIN[image[V,x_]] := id[complement[image[V,x]]] (* derived 2004 April 25 in ADJOIN.NB *) ADJOIN[union[x_,complement[image[V,y_]]]] := composite[id[image[V,y]],ADJOIN[x]] ADJOIN[V] := 0 (* added 2001 November 15 based on EQ-0.NB *) and[equal[0,x_],equal[y_,x_]] := and[equal[0,x],equal[0,y]] (* added 2001 November 15 based on EQ-0.NB *) and[equal[0,x_],equal[x_,y_]] := and[equal[0,x],equal[0,y]] (* added 2002 September 10 based on IMV-RULE.NB *) and[equal[0,x_],equal[0,intersection[x_,y_]]] := equal[0,x] (* added 2002 September 8 based on REPLACE.NB *) and[equal[0,x_],equal[y_,union[x_,z_]]] := and[equal[0,x],equal[y,z]] (* added 2002 December 23 based on REPLACE.NB *) and[equal[0,fix[composite[y_,inverse[x_],Di]]],subclass[x_,y_], subclass[x_,cart[V,V]]] := subclass[x,funpart[y]] (* derived 2004 April 4 in IRR-TRV.NB *) and[equal[0,fix[composite[x_,x_]]],TRANSITIVE[x_]] := and[equal[0,fix[x]],TRANSITIVE[x]] (* derived 2004 December 30 in AXREG.NB *) and[equal[0,fix[E]],member[x_,x_]] := False (* added 2002 September 7 based on REPLACE.NB *) and[equal[0,intersection[x_,y_]],equal[V,union[x_,y_]]] := equal[y,complement[x]] (* derived 2004 April 4 in IRR-TRV.NB *) and[equal[0,intersection[x_,inverse[x_]]],TRANSITIVE[x_]] := and[equal[0,fix[x]],TRANSITIVE[x]] (* derived 2005 February 6 in DESCEND.NB *) and[equal[0,intersection[x_,P[complement[x_]]]],member[x_,y_]] := and[member[x,DESCENDING],member[x,y]] (* added 2002 December 23 based on REPLACE.NB *) and[equal[0,intersection[x_,y_]],subclass[x_,z_], subclass[z_,union[x_,y_]]] := equal[x,intersection[z,complement[y]]] (* added 2002 September 8 based on REPLACE.NB *) and[equal[0,intersection[x_,y_]],subclass[x_,union[y_,z_]]] := and[equal[0,intersection[x,y]],subclass[x,z]] (* added 1998 October 3 *) and[equal[0,x_],member[y_,x_]] := False (* derived 2005 June 29 in OO-TIMES.NB *) and[equal[0,x_],member[x_,omega]] := equal[0,x] (* added 2001 October 20 based in CART-SQ.NB *) and[equal[0,x_],member[x_,V]] := equal[0,x] (* derived 2005 January 21 in SS-0.NB *) and[equal[0,x_],not[member[x_,range[SINGLETON]]]] := equal[0,x] (* added 2001 November 15 *) and[equal[0,x_],not[member[x_,V]]] := False (* added 2001 November 17 based on UNWRAP.NB *) and[equal[0,second[x_]],not[member[first[x_],V]]] := False (* added 2001 November 15 based on EQ-0.NB *) and[equal[0,x_],subclass[x_,y_]] := equal[0,x] (* added 2001 November 15 based on EQ-0.NB *) and[equal[0,x_],subclass[y_,x_]] := and[equal[0,x],equal[0,y]] (* derived 2004 June 20 in X1604-56.NB *) and[equal[cart[fix[x_],fix[x_]],union[x_,inverse[x_]]],PARTIALORDER[x_]] := TOTALORDER[x] (* derived 2004 June 26 in TOTALORD.NB removed 2004 June 27 because it causes looping and[equal[cart[fix[x_],fix[x_]],union[x_,inverse[x_]]], subclass[intersection[x_,inverse[x_]],Id],TRANSITIVE[x_]] := TOTALORDER[x] *) (* derived 2004 March 20 in EQV-WRAP.NB *) and[equal[composite[Id,x_],inverse[x_]],TRANSITIVE[composite[Id,x_]]] := EQUIVALENCE[composite[Id,x]] (* derived 2004 October 28 in X.NB *) and[equal[domain[y_],domain[funpart[x_]]],subclass[y_,funpart[x_]]] := equal[y,funpart[x]] (* added 2001 December 16 based on COMMUTE.NB *) and[equal[x_,image[S,x_]], equal[x_,image[inverse[S],x_]]] := or[equal[0,x],equal[V,x]] (* derived 2004 January 15 in RC-OP.NB *) and[equal[x_,intersection[y_,complement[z_]]], equal[z_,intersection[y_,complement[x_]]]] := and[equal[0,intersection[x,z]],equal[y,union[x,z]]] (* added 2001 December 19 based on INV-IM.NB *) and[equal[x_,intersection[y_,z_]],subclass[y_,z_]] := and[equal[x,y],subclass[x,z]] (* derived 2004 March 20 in EQV-WRAP.NB *) and[equal[x_,inverse[x_]],TRANSITIVE[x_]] := EQUIVALENCE[x] (* derived 2004 March 20 in EQV-WRAP.NB *) and[equal[x_,inverse[x_]],TRANSITIVE[composite[Id,x_]]] := EQUIVALENCE[x] (* added 2001 November 15 based on UNWRAP-1.NB *) and[equal[x_,y_],member[x_,z_],member[y_,V]] := and[equal[x,y],member[x,z]] (* derived 2003 January 3 in OO-SUC-OM.NB *) and[equal[x_,y_],member[x_,omega],member[x_,y_]] := False (* derived 2005 April 26 in TRICHOT.NB *) and[equal[x_,nat[y_]],member[x_,nat[y_]]] := False (* derived 2005 April 28 in NATORDER.NB *) and[equal[x_,nat[y_]],member[nat[y_],x_]] := False (* derived 2005 April 26 in TRICHOT.NB *) and[equal[x_,nat[y_]],not[member[x_,nat[y_]]]] := equal[x,nat[y]] (* derived 2005 July 4 in SUCC-NAT.NB *) and[equal[nat[x_],succ[y_]],member[y_,nat[x_]]] := equal[nat[x],succ[y]] (* derived 2005 May 17 based on NATMOD.NB *) and[equal[z_,natmod[x_,y_]],member[z_,V]] := and[equal[z,natmod[x,y]],member[x,omega],member[y,omega]] (* added 2003 May 24 based on DIFCLOS.NB *) and[equal[x_,y_],not[subclass[x_,y_]]] := False (* derived 2005 February 10 in X3557.NB *) and[equal[omega,x_],member[x_,V]] := equal[omega,x] (* derived 2004 July 18 in WO-PO.NB *) and[equal[P[fix[x_]],union[domain[LEAST[x_]],set[0]]],PARTIALORDER[x_]] := WELLORDER[x] (* derived 2004 July 18 in WO-PO.NB *) and[equal[P[fix[x_]],union[domain[LEAST[x_]],set[0]]],TOTALORDER[x_]] := WELLORDER[x] (* added 2001 November 15 *) and[equal[set[x_],y_],member[y_,V]] := equal[set[x],y] (* derived 2005 October 25 in TOP-WRAP.NB *) and[equal[x_,set[y_]],not[member[x_,V]]] := False (* added 2002 January 1 based on PAIR.NB *) and[equal[set[x_],set[y_]],member[x_,V]] := and[equal[x,y],member[x,V]] (* added 2000 October 4 based on NONEMPTY.LOG *) and[equal[x_,y_],subclass[x_,y_]] := equal[x,y] (* added 2001 November 16 based on INVERSE.NB *) and[equal[x_,y_],subclass[y_,x_]] := equal[x,y] (* added 2002 September 10 based on IMV-RULE.NB *) and[equal[x_,y_],subclass[x_,union[y_,z_]]] := equal[x,y] (* derived 2003 January 3 in OO-SUC-OM.NB *) and[equal[succ[x_],succ[y_]],member[x_,omega]] := and[equal[x,y],member[x,omega]] (* derived 204 August 22 in PARTREC.NB *) and[equal[V,domain[x_]],member[x_,V]] := False (* added 2001 November 22 based on THIN.NB *) and[equal[V,domain[VERTSECT[x_]]],FUNCTION[x_]] := FUNCTION[x] (* added 2001 November 27 based on IN-SS.NB *) and[equal[V,domain[VERTSECT[x_]]],FUNCTION[composite[Id,x_]]] := FUNCTION[composite[Id,x]] (* added 2001 November 15 based on EQ-V.NB *) and[equal[V,x_],equal[x_,y_]] := and[equal[V,x],equal[V,y]] (* added 2001 November 15 based on EQ-V.NB *) and[equal[V,x_],equal[y_,x_]] := and[equal[V,x],equal[V,y]] (* added 2002 September 10 based on IMV-RULE.NB *) and[equal[V,x_],equal[V,union[x_,y_]]] := equal[V,x] (* added 2001 November 15 based on EQ-V.NB *) and[equal[V,x_],member[x_,y_]] := False (* derived 2005 October 25 in TOP-WRAP.NB *) and[equal[V,x_],not[member[x_,y_]]] := equal[V,x] (* added 2001 November 15 based on EQ-V.NB *) and[equal[V,x_],subclass[x_,y_]] := and[equal[V,x],equal[V,y]] (* added 2001 November 15 based on EQ-V.NB *) and[equal[V,x_],subclass[y_,x_]] := equal[V,x] (* added 2002 September 7 based on REPLACE.NB *) and[equal[V,union[x_,y_]],member[x_,V],member[y_,V]] := False (* derived 2004 October 26 in AXCH.NB *) and[equal[V,union[x_,set[y_]]],not[member[y_,x_]]] := equal[x,complement[set[y]]] (* derived 2004 April 1 in EQV-EQ.NB *) and[EQUIVALENCE[x_],FUNCTION[x_]] := subclass[x,Id] (* derived 2004 December 5 in MAP-CO.NB *) and[FUNCTION[composite[Id,z_]],subclass[z_,cart[x_,y_]]] := and[FUNCTION[z],subclass[z,cart[x,y]]] (* derived 2004 November 12 in SETPFUNP.NB *) and[FUNCTION[x_],member[funpart[x_],y_]] := and[FUNCTION[x],member[x,y]] (* derived 2004 March 18 in RFX-WRAP.NB *) and[FUNCTION[x_],REFLEXIVE[x_]] := subclass[x,Id] (* derived 2004 November 12 in SETPFUNP.NB *) and[FUNCTION[setpart[x_]],member[x_,y_]] := and[FUNCTION[x],member[x,y]] (* derived 2004 December 5 in REPLACE.NB *) and[FUNCTION[x_],subclass[x_,cart[V,V]]] := FUNCTION[x] (* derived 2005 February 6 in DESCEND.NB *) and[member[0,x_],member[x_,DESCENDING]] := False (* derived 2004 June 19 in X14--.NB *) and[member[complement[x_],V],member[intersection[x_,y_],V]] := and[member[y,V],member[complement[x],V]] (* derived 2005 January 27 in DK-SU.NB *) and[member[x_,DEDEKIND],member[pair[x_,omega],Q]] := False (* derived 2005 January 27 in FINITE.NB *) and[member[x_,FINITE],member[pair[x_,omega],Q]] := False (* derived 2004 October 30 in MEMB-CO.NB *) and[member[first[w_],y_],member[pair[first[w_],second[w_]],x_]] := and[member[w,x],member[first[w],y]] (* revised 2003 June 2 based on SETHOOD.NB *) and[member[first[x_],y_],not[member[x_,V]]] := False (* added 2002 November 3 based on FLIP.NB *) and[member[first[x_],V],member[first[second[x_]],y_]] := member[first[second[x]],y] (* added 2001 November 16 based on INVERSE.NB *) and[member[first[x_],V],member[second[x_],y_]] := member[second[x],y] (* derived 2004 August 18 in X3080.NB *) and[member[x_,y_],member[domain[x_],V]] := member[x,y] (* derived 2004 August 18 in X3080.NB *) and[member[x_,y_],member[fix[x_],V]] := member[x,y] (* added 2002 October 8 based on INVAR-I.NB *) and[member[x_,y_],member[intersection[x_,z_],V]] := member[x,y] (* derived 2005 April 28 in NATORDER.NB *) and[member[x_,y_],member[y_,nat[z_]],not[member[x_,nat[z_]]]] := False (* derived 2005 May 26 in DIV-I.NB *) and[member[y_,x_],member[pair[x_,y_],DIV]] := and[equal[0,y],member[x,omega],not[equal[0,x]]] (* derived 2004 August 18 in X3080.NB *) and[member[x_,y_],member[range[x_],V]] := member[x,y] (* derived 2004 August 18 in X3080.NB *) and[member[x_,y_],member[rotate[x_],V]] := member[x,y] and[member[x_,y_],member[x_,V]] := member[x,y] (* derived 2005 February 13 in NAT.NB *) and[member[y_,nat[x_]],member[nat[x_],y_]] := False (* derived 2005 July 4 in SUCC-NAT.NB *) and[member[x_,nat[y_]],member[succ[x_],nat[y_]]] := member[succ[x],nat[y]] (* derived 2005 April 26 in TRICHOT.NB *) and[member[x_,nat[y_]],not[equal[x_,nat[y_]]]] := member[x,nat[y]] (* derived 2005 July 4 in SUCC-NAT.NB *) and[member[x_,nat[y_]],not[equal[nat[y_],succ[x_]]]] := member[succ[x],nat[y]] (* derived 2005 April 26 in TRICHOT.NB *) and[member[x_,nat[y_]],not[member[nat[y_],x_]]] := member[x,nat[y]] (* derived 2005 July 4 in SUCC-NAT.NB *) and[member[x_,nat[y_]],not[member[succ[x_],nat[y_]]]] := equal[nat[y],succ[x]] (* derived 2005 April 28 in NATORDER.NB *) and[member[x_,nat[y_]],not[subclass[x_,nat[y_]]]] := False (* derived 2005 June 27 in NAT-SUCC.NB *) and[member[x_,nat[y_]],subclass[x_,nat[y_]]] := member[x,nat[y]] (* derived 2005 April 28 in NATORDER.NB *) and[member[x_,nat[y_]],subclass[nat[y_],x_]] := False (* derived 2005 April 28 in NATORDER.NB *) and[member[nat[x_],y_],subclass[y_,nat[x_]]] := False (* added 2001 November 15 based on UNWRAP-1.NB *) and[member[x_,y_],not[member[x_,V]]] := False (* derived 2005 May 17 in DIVRULES.NB *) and[member[x_,omega],member[y_,image[inverse[DIV],succ[x_]]]] := and[member[x,omega],member[y,omega]] (* derived 2005 June 7 in O7COR1.NB *) and[member[x_,omega],member[x_,y_],member[y_,omega]] := and[member[x,y],member[y,omega]] (* derived 2005 April 26 in DICHOT.NB *) and[member[x_,omega],member[nat[y_],x_],not[subclass[nat[y_],x_]]] := False (* derived 2005 March 29 in DIV-SUB.NB *) and[member[x_,omega],member[pair[x_,y_],DIV]] := member[pair[x,y],DIV] (* derived 2005 March 29 in DIV-SUB.NB *) and[member[y_,omega],member[pair[x_,y_],DIV]] := member[pair[x,y],DIV] (* derived 2005 May 25 in MOD-A.NB *) and[member[y_,omega],member[pair[x_,natsub[y_,z_]],DIV]] := member[pair[x,natsub[y,z]],DIV] (* derived 2005 May 25 in MOD-A.NB *) and[member[z_,omega],member[pair[x_,natsub[y_,z_]],DIV]] := member[pair[x,natsub[y,z]],DIV] (* derived 2005 February 16 in X3730-38.NB *) and[member[x_,OMEGA],member[U[x_],OMEGA]] := member[x,OMEGA] (* derived 2005 February 19 in ITR-OM-E.NB *) and[member[x_,omega],not[equal[0,intersection[omega,x_]]]] := and[member[x,omega],not[equal[0,x]]] (* derived 2005 January 3 in ZERO.NB *) and[member[x_,omega],not[member[0,x_]]] := equal[0,x] (* derived 2005 February 17 in X3741-49.NB *) and[member[x_,OMEGA],subclass[x_,omega]] := or[equal[omega,x],member[x,omega]] (* derived 2005 February 16 in X3730-38.NB *) and[member[x_,OMEGA],subclass[U[x_],x_]] := member[x,OMEGA] (* derived 2005 January 29 in DIV.NB *) and[member[pair[x_,y_],DIV],member[pair[y_,x_],DIV]] := and[equal[x,y],member[x,omega]] (* derived 2005 May 26 in DIV-I.NB *) and[member[pair[x_,y_],DIV],not[subclass[x_,y_]]] := and[equal[0,y],member[x,omega],not[equal[0,x]]] (* derived 2005 May 25 in MOD-A.NB *) and[member[pair[x_,natsub[y_,z_]],DIV],subclass[z_,y_]] := member[pair[x,natsub[y,z]],DIV] (* derived 2005 January 21 in SS-A.NB *) and[member[x_,range[SINGLETON]],not[equal[0,x_]]] := member[x,range[SINGLETON]] (* added 2003 June 2 based on SETHOOD.NB *) and[member[second[x_],y_],not[member[x_,V]]] := False (* derived 2004 May 4 in ALLCLOSED.NB *) and[member[y_,z_],subclass[y_,domain[VERTSECT[x_]]]] := and[member[y,z],member[image[x,y],V]] (* derived 2005 January 15 in HILBERT.NB *) and[member[x_,y_],subclass[P[x_],x_]] := False (* derived 2004 May 4 in ALLCLOSED.NB *) and[member[y_,z_],subclass[P[y_],domain[VERTSECT[x_]]]] := and[member[y,z],member[image[x,P[y]],V]] (* added 2001 November 15 *) and[member[x_,y_],subclass[y_,set[x_]]] := and[equal[set[x],y],member[x,V]] (* added 2001 June 28 based on SETHOOD.NB *) and[member[x_,V],member[complement[x_],V]] := False (* added 2001 June 28 based on SETHOOD.NB *) and[member[x_,V],member[domain[x_],V]] := member[x,V] (* added 2002 November 3 based on FIRST.NB *) and[member[x_,V],member[first[x_],y_]] := member[first[x],y] (* added 2002 June 22 based on X-RO-ASS.NB *) and[member[x_,V],member[first[first[x_]],V]] := member[first[first[x]],V] (* derived 2004 March 29 based on HULL.NB *) and[member[y_,V],member[hull[x_,y_],z_]] := member[hull[x,y],z] (* derived 2004 August 1 in THINNESS.NB *) and[member[y_,V],member[image[trv[x_],y_],V]] := member[iterate[x,y],V] (* derived 2004 June 19 in X14--.NB *) and[member[x_,V],member[intersection[y_,complement[x_]],V]] := and[member[x,V],member[y,V]] (* derived 2004 April 18 in REPLACE.NB *) and[member[x_,V],member[intersection[y_,P[x_]],V]] := member[x,V] (* added 2003 January 25 based on INVAR.NB *) and[member[x_,V],member[invar[x_],V]] := False (* added 2002 October 15 based on MEMBER.NB *) and[member[u_,V],member[pair[u_,v_],composite[x_,y_]]] := member[pair[u,v],composite[x,y]] (* added 2002 October 15 based on MEMBER.NB *) and[member[v_,V],member[pair[u_,v_],composite[x_,y_]]] := member[pair[u,v],composite[x,y]] (* derived 2005 January 27 in DIV.NB *) and[member[x_,V],member[pair[x_,y_],DIV]] := member[pair[x,y],DIV] (* derived 2005 January 27 in DIV.NB *) and[member[y_,V],member[pair[x_,y_],DIV]] := member[pair[x,y],DIV] (* derived 2005 January 7 in CARD-K.NB *) and[member[x_,V],member[pair[x_,y_],K]] := member[pair[x,y],K] (* derived 2005 January 7 in CARD-K.NB *) and[member[y_,V],member[pair[x_,y_],K]] := member[pair[x,y],K] (* derived 2005 January 27 in Q.NB *) and[member[x_,V],member[pair[x_,y_],Q]] := member[pair[x,y],Q] (* derived 2005 January 27 in Q.NB *) and[member[y_,V],member[pair[x_,y_],Q]] := member[pair[x,y],Q] (* derived 2005 January 27 in ZN.NB *) and[member[x_,V],member[pair[x_,y_],ZN]] := member[pair[x,y],ZN] (* derived 2005 January 27 in ZN.NB *) and[member[y_,V],member[pair[x_,y_],ZN]] := member[pair[x,y],ZN] (* added 2001 June 28 based on SETHOOD.NB *) and[member[x_,V],member[range[x_],V]] := member[x,V] (* added 2002 November 3 based on FIRST.NB *) and[member[x_,V],member[second[x_],y_]] := member[second[x],y] (* added 2003 June 29 based on POWER.NB *) and[member[x_,V],member[U[x_],y_]] := member[U[x],y] (* added 2001 December 6 based on MEMBER.NB *) and[member[x_,V],member[y_,V],subclass[x_,y_]] := and[member[y,V],subclass[x,y]] (* derived 2004 July 22 in REPLACE.NB *) and[member[x_,V],not[equal[0,y_]],not[member[x_,A[y_]]]] := and[member[x,V],not[member[x,A[y]]]] (* added 2001 November 14 based on DI.NB *) and[member[x_,V],not[equal[V,x_]]] := member[x,V] (* derived 2005 October 6 in CL.NB *) and[member[x_,V],PARTIALORDER[x_],subclass[P[fix[x_]],domain[GLB[x_]]]] := member[x,CL] (* derived 2004 September 23 in WF-LEX.NB *) and[member[x_,V],subclass[x_,image[wf[y_],x_]]] := equal[0,x] (* added 2002 May 14 based on IND-C.NB *) and[member[x_,V],subclass[x_,omega]] := subclass[x,omega] (* derived 2004 July 25 in CANTOR.NB *) and[member[x_,V],subclass[P[domain[funpart[x_]]],range[funpart[x_]]]] := False (* added 2003 June 5 based on REG.NB *) and[member[x_,V],subclass[x_,REGULAR]] := member[x,REGULAR] (* added 2001 November 15 *) and[member[x_,V],subclass[x_,set[y_]]] := subclass[x,set[y]] (* derived 2005 June 28 in O-MUL.NB *) and[not[equal[0,nat[x_]]],not[member[set[0],nat[x_]]]] := equal[nat[x],set[0]] (* derived 2005 May 17 in NATRULES.NB *) and[not[equal[0,nat[x_]]],subclass[nat[x_],set[0]]] := equal[nat[x],set[0]] (* derived 2004 July 22 in REPLACE.NB *) and[not[equal[0,y_]],not[subclass[x_,A[y_]]]] := not[subclass[x,A[y]]] (* derived 2005 April 26 in TRICHOT.NB *) and[not[equal[nat[x_],nat[y_]]],not[member[nat[x_],nat[y_]]]] := member[nat[y],nat[x]] (* derived 2005 November 4 in CARD-SU.NB *) and[not[member[card[x_],card[y_]]],not[member[card[y_],card[x_]]]] := equal[card[x],card[y]] (* derived 2005 February 13 in NAT.NB *) and[not[member[nat[x_],nat[y_]]],not[member[nat[y_],nat[x_]]]] := equal[nat[x],nat[y]] (* derived 2004 July 25 in CANTOR.NB *) and[not[member[x_,V]],not[member[x_,y_]]] := not[member[x,V]] (* added 2003 October 7 based on WF-IND.NB *) and[not[member[x_,V]],not[member[first[x_],V]]] := not[member[x,V]] (* derived 2005 October 8 in TO-WRAP.NB *) and[PARTIALORDER[composite[Id,x_]],subclass[cart[fix[x_],fix[x_]], union[x_,inverse[x_]]]] := TOTALORDER[composite[Id,x]] (* derived 2005 April 7 in WF-TO.NB *) and[PARTIALORDER[x_],subclass[cart[fix[x_],fix[x_]],union[x_,inverse[x_]]]] := TOTALORDER[x] (* derived 2004 March 18 in RFX-WRAP.NB *) and[REFLEXIVE[composite[Id,x_]],subclass[x_,cart[V,V]]] := REFLEXIVE[x] (* derived 2005 October 1 in PO-RS.NB *) and[REFLEXIVE[composite[Id,x_]],subclass[intersection[x_,inverse[x_]],Id], TRANSITIVE[composite[Id,x_]]] := PARTIALORDER[composite[Id,x]] (* derived 2004 March 18 in RFX-TRV.NB *) and[REFLEXIVE[composite[Id,x_]],TRANSITIVE[x_]] := and[REFLEXIVE[x],TRANSITIVE[x]] (* derived 2004 March 18 in RFX-TRV.NB *) and[REFLEXIVE[x_],subclass[x_,cart[V,V]]] := REFLEXIVE[x] (* derived 2004 March 21 in PO-WRAP.NB *) and[REFLEXIVE[x_],subclass[intersection[x_,inverse[x_]],Id],TRANSITIVE[x_]] := PARTIALORDER[x] (* derived 2004 March 18 in RFX-TRV.NB *) and[REFLEXIVE[x_],TRANSITIVE[composite[Id,x_]]] := and[REFLEXIVE[x],TRANSITIVE[x]] (* added 2001 November 17 based on EQ.NB *) and[subclass[x_,cart[V,z_]],subclass[x_,cart[y_,V]]] := subclass[x,cart[y,z]] (* added 2003 September 21 based on RFX-CORE.NB *) and[subclass[x_,cart[V,V]],subclass[x_,cart[y_,z_]]] := subclass[x,cart[y,z]] (* added 2001 March 4 based on SU-IN.NB *) and[subclass[x_,cart[V,V]],subclass[inverse[x_],y_]] := subclass[x,inverse[y]] (* derived 2005 October 8 in TO-WRAP.NB *) and[subclass[x_,cart[V,V]],TOTALORDER[x_]] := TOTALORDER[x] (* derived 2004 March 18 in RFX-TRV.NB *) and[subclass[x_,cart[V,V]],TRANSITIVE[composite[Id,x_]]] := TRANSITIVE[x] (* derived 2004 March 18 in RFX-TRV.NB *) and[subclass[x_,cart[V,V]],TRANSITIVE[x_]] := TRANSITIVE[x] (* added 2003 October 7 based on WF-IND.NB *) and[subclass[x_,cart[V,V]],WELLFOUNDED[composite[Id,x_]]] := WELLFOUNDED[x] (* added 2003 July 6 based on ASSOCDEF.NB *) and[subclass[composite[u_,cross[v_,Id],inverse[ASSOC]],composite[x_,cross[y_,z_]]], subclass[image[inverse[v_],domain[domain[u_]]],cart[V,V]]] := subclass[composite[u,cross[v,Id]],composite[x,cross[y,z],ASSOC]] (* added 2001 December 20 based on SUBST-2.NB *) and[subclass[composite[Id,x_],y_],subclass[composite[Id,y_],x_]] := equal[composite[Id,x],composite[Id,y]] (* added 2002 October 25 based on ROTATE.NB *) and[subclass[composite[x_,id[w_]],y_], subclass[composite[y_,id[w_]],x_]] := equal[composite[x,id[w]],composite[y,id[w]]] (* derived 2004 March 18 in RFX-WRAP.NB *) and[subclass[domain[x_],fix[x_]],subclass[range[x_],fix[x_]]] := REFLEXIVE[composite[Id,x]] (* added 2001 April 27 based on MAP2.NB *) and[subclass[z_,FUNS],subclass[image[IMAGE[FIRST],z_],set[x_]]] := subclass[z,map[x,V]] (* derived 2004 April 20 in ID-REVU.NB *) and[subclass[x_,Id],subclass[y_,Id],subclass[domain[x_],domain[y_]]] := and[subclass[x,y],subclass[y,Id]] (* added 2001 April 27 based on MAP2.NB *) and[subclass[image[IMAGE[id[cart[V,V]]],z_],FUNS], subclass[U[z_],cart[V,V]]] := subclass[z,FUNS] (* added 2003 November 2 based on CHARHULL.NB *) and[subclass[x_,image[inverse[S],y_]],subclass[y_,image[inverse[S],x_]]] := equal[image[inverse[S],x],image[inverse[S],y]] (* added 2002 January 3 based on COMPOSE.NB *) and[subclass[intersection[x_,z_],y_],subclass[intersection[y_,z_],x_]] := equal[intersection[x,z],intersection[y,z]] (* derived 2004 March 20 in EQV-WRAP.NB *) and[subclass[inverse[x_],x_],TRANSITIVE[x_]] := EQUIVALENCE[x] (* derived 2004 March 20 in EQV-WRAP.NB *) and[subclass[x_,inverse[x_]],TRANSITIVE[x_]] := EQUIVALENCE[x] (* derived 2004 March 20 in EQV-WRAP.NB *) and[subclass[x_,inverse[x_]],TRANSITIVE[composite[Id,x_]]] := EQUIVALENCE[x] (* derived 2004 December 27 in TRV-RS.NB *) and[subclass[inverse[x_],x_],TRANSITIVE[composite[Id,x_]]] := EQUIVALENCE[composite[Id,x]] (* added 2001 April 27 based on MAP2.NB *) and[subclass[z_,map[x_,V]],subclass[U[z_],cart[V,y_]]] := subclass[z,map[x,y]] (* derived 2005 February 10 in X3557.NB *) and[subclass[x_,omega],subclass[image[BIGCUP,x_],x_]] := or[equal[omega,x],member[x,omega]] (* derived 2005 February 10 in X3557.NB *) and[subclass[x_,omega],subclass[image[inverse[SUCC],x_],x_]] := or[equal[omega,x],member[x,omega]] (* derived 2005 February 10 in X3557.NB *) and[subclass[x_,omega],subclass[image[inverse[SUCC],intersection[omega,x_]],x_]] := or[equal[omega,x],member[x,omega]] (* derived 2005 October 22 in TRANSFIN.NB *) and[subclass[x_,OMEGA],subclass[x_,image[PS,x_]]] := equal[0,x] (* added 2001 November 17 based on EQ.NB *) and[subclass[P[x_],y_],subclass[U[y_],x_]] := equal[P[x],y] and[subclass[x_,y_],subclass[y_,x_]] := equal[x,y] (* derived 2004 August 7 in RS-1.NB *) and[subclass[x_,y_],subclass[x_,cart[V,V]],subclass[composite[y_,id[domain[x_]]],x_]] := equal[x,composite[y,id[domain[x]]]] (* derived 2004 December 25 in SELCO-LT.NB *) and[subclass[x_,y_],subclass[composite[Id,x_],y_]] := subclass[x,y] (* added 2001 December 19 based on INV-IM.NB *) and[subclass[x_,y_],subclass[intersection[x_,y_],z_]] := and[subclass[x,y],subclass[x,z]] (* derived 2004 July 23 in X23--.NB *) and[subclass[x_,y_],subclass[intersection[x_,z_],y_]] := subclass[x,y] (* added 2002 October 3 based on MONOSUB2.NB *) and[subclass[x_,y_],subclass[x_,z_],subclass[y_,z_]] := and[subclass[x,y],subclass[y,z]] (* added 2001 November 16 *) and[subclass[z_,x_],subclass[z_,y_], subclass[intersection[x_,y_],z_]] := equal[intersection[x,y],z] (* added 2001 November 17 based on EQ.NB *) and[subclass[x_,z_],subclass[y_,z_],subclass[z_,union[x_,y_]]] := equal[union[x,y],z] (* derived 2005 January 5 in TC-HC.NB *) and[subclass[x_,y_],subclass[U[x_],H[y_]]] := subclass[x,H[y]] (* derived 2005 October 12 in WF-RS.NB *) and[TOTALORDER[composite[Id,x_]],WELLFOUNDED[intersection[Di,x_]]] := WELLORDER[composite[Id,x]] (* derived 2005 April 7 in WF-TO.NB *) and[TOTALORDER[x_],WELLFOUNDED[intersection[Di,x_]]] := WELLORDER[x] (* added 2002 January 17 based on ANTISYM1.NB *) ANTISYMMETRIC[x_] := and[subclass[x,cart[V,V]],subclass[intersection[x,inverse[x]],Id]] (* Definition DF-AP in AP1.DEM *) apply[x_,y_] := U[image[x,set[y]]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[0,x_] := V (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[ACLOSURE,x_] := union[Aclosure[x],complement[image[V,set[x]]]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[ADJOIN[x_],y_] := union[x,y, complement[image[V,set[x]]],complement[image[V,set[y]]]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[BIGCAP,x_] := union[A[x],complement[image[V,set[x]]]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[BIGCUP,x_] := union[complement[image[V,set[x]]],U[x]] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[CAP,PAIR[x_,y_]] := union[complement[image[V,set[x]]],complement[image[V,set[y]]],intersection[x,y]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[CARD,x_] := union[card[x],complement[image[V,intersection[OMEGA,image[Q,set[x]]]]]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[cart[x_,y_],z_] := union[A[y],complement[image[V,intersection[x,set[z]]]]] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[CART,PAIR[x_,y_]] := union[cart[x,y],complement[image[V,set[x]]],complement[image[V,set[y]]]] (* derived 2005 August 16 in AP-E-S.NB *) APPLY[complement[E],x_] := complement[image[V,set[x]]] (* derived 2005 August 16 in AP-E-S.NB *) APPLY[complement[inverse[E]],x_] := complement[image[V,set[x]]] (* derived 2005 August 16 in AP-E-S.NB *) APPLY[complement[inverse[S]],x_] := complement[image[V,set[x]]] (* derived 2005 August 16 in AP-E-S.NB *) APPLY[complement[S],x_] := union[complement[image[V,x]],complement[image[V,set[x]]]] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[COMPOSE,PAIR[x_,y_]] := union[complement[image[V,set[x]]],complement[image[V,set[y]]],composite[x,y]] (* added 2003 October 28 based on APPLY.NB *) APPLY[composite[x_,y_],z_] := A[image[x,image[y,set[z]]]] (* derived 2004 April 17 in REPLACE.NB *) APPLY[CORE[x_],y_] := union[complement[image[V,set[y]]],core[x,y]] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[CROSS,PAIR[x_,y_]] := union[complement[image[V,set[x]]],complement[image[V,set[y]]],cross[x,y]] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[cross[funpart[u_],funpart[v_]],PAIR[x_,y_]] := PAIR[APPLY[funpart[u],x],APPLY[funpart[v],y]] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[CUP,PAIR[x_,y_]] := union[x,y,complement[image[V,set[x]]],complement[image[V,set[y]]]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[Di,x_] := complement[image[V,set[x]]] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[DIF,PAIR[x_,y_]] := union[complement[image[V,set[x]]],complement[image[V,set[y]]],intersection[x,complement[y]]] (* derived 2004 December 10 in AP-IMG.NB *) APPLY[DORA,x_] := union[complement[image[V,set[x]]],PAIR[domain[x],range[x]]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[DUP,x_] := PAIR[x,x] (* derived 2005 August 16 in AP-E-S.NB *) APPLY[E,x_] := union[complement[image[V,set[x]]],set[x]] (* derived 2004 May 12 in EQUIV.NB *) APPLY[EQUIV,x_] := union[complement[image[V,set[x]]],eqv[x]] (* derived 2005 August 7 in FACT-AP.NB *) APPLY[FACTORIAL,0] := set[0] (* derived 2005 August 7 in FACT-AP.NB *) APPLY[FACTORIAL,set[0]] := set[0] (* derived 2005 August 7 in FACT-AP.NB *) APPLY[FACTORIAL,succ[set[0]]] := succ[set[0]] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[FIRST,PAIR[x_,y_]] := union[x,complement[image[V,set[x]]],complement[image[V,set[y]]]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[FUNPART,x_] := union[complement[image[V,set[x]]],funpart[x]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[HC,x_] := union[complement[image[V,set[x]]],H[x]] (* revised 2004 March 29 based on HULL.NB *) APPLY[HULL[x_],y_] := hull[x,y] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[Id,x_] := union[x,complement[image[V,set[x]]]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[id[x_],y_] := union[y,complement[image[V,intersection[x,set[y]]]]] (* derived 2004 December 10 in AP-IMG.NB *) APPLY[IMAGE[x_],y_] := union[complement[image[V,set[y]]],complement[image[V,set[image[x,y]]]],image[x,y]] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[image[inverse[NATADD],set[x_]],y_] := natsub[x,y] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[IMG,PAIR[x_,y_]] := union[complement[image[V,set[x]]],complement[image[V,set[y]]],image[x,y]] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[INTADD,PAIR[x_,y_]] := intadd[x,y] (* added 2004 July 14 based on X2530-41.NB *) APPLY[inverse[DUP],x_] := union[first[x], image[V,intersection[complement[first[x]],second[x]]], image[V,intersection[complement[second[x]],first[x]]]] (* derived 2005 August 16 in AP-E-S.NB *) APPLY[inverse[E],x_] := union[A[x],complement[image[V,set[x]]]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[inverse[plus[x_]],y_] := natsub[y,x] (* derived 2005 August 16 in AP-E-S.NB *) APPLY[inverse[S],x_] := complement[image[V,set[x]]] (* derived 2004 July 17 in AP-IN-SG.NB *) APPLY[inverse[SINGLETON],x_] := union[A[x],complement[image[V,intersection[range[SINGLETON],set[x]]]]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[LAMBHULL,x_] := union[complement[image[V,set[x]]],HULL[x]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[LEFT[x_],y_] := PAIR[x,y] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[MAP,PAIR[x_,y_]] := union[complement[image[V,set[x]]],complement[image[V,set[y]]],map[x,y]] (* derived 2005 July 18 in MODULO.NB *) APPLY[modulo[x_],y_] := natmod[y,x] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[NATADD,PAIR[x_,y_]] := natadd[x,y] (* derived 2005 May 17 based on NATMOD.NB *) APPLY[NATMOD,PAIR[x_,y_]] := natmod[x,y] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[NATMUL,PAIR[x_,y_]] := natmul[x,y] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[PAIRSET,PAIR[x_,y_]] := union[complement[image[V,set[x]]],complement[image[V,set[y]]],set[x,y]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[PLUS,x_] := union[complement[image[V,intersection[omega,set[x]]]],plus[x]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[plus[x_],y_] := natadd[x,y] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[POWER,x_] := union[complement[image[V,set[x]]],P[x]] (* derived 2005 August 17 in PRIMESEQ.NB *) APPLY[PRIMESEQ,0] := succ[set[0]] (* derived 2005 August 17 in PRIMESEQ.NB *) APPLY[PRIMESEQ,set[0]] := succ[succ[set[0]]] (* derived 2005 August 17 in PRIMESEQ.NB *) APPLY[PRIMESEQ,succ[set[0]]] := succ[succ[succ[succ[set[0]]]]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[RANK,x_] := union[complement[image[V,intersection[REGULAR,set[x]]]],rank[x]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[RC[x_],y_] := union[complement[image[V,set[x]]], image[V,intersection[y,complement[x]]],intersection[x,complement[y]]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[RCF,x_] := union[complement[image[V,set[x]]],RC[x]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[RIGHT[x_],y_] := PAIR[y,x] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[rotate[w_],PAIR[x_,y_]] := APPLY[image[inverse[w],set[x]],y] (* added 2003 October 28 based on APPLY.NB *) APPLY[S,x_] := union[x,complement[image[V,set[x]]]] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[SECOND,PAIR[x_,y_]] := union[y,complement[image[V,set[x]]],complement[image[V,set[y]]]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[SINGLETON,x_] := union[complement[image[V,set[x]]],set[x]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[SUBVAR,x_] := union[complement[image[V,set[x]]],subvar[x]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[SUCC,x_] := union[complement[image[V,set[x]]],succ[x]] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[SWAP,PAIR[x_,y_]] := PAIR[y,x] (* derived 2004 August 17 in AP-PAIR.NB *) APPLY[SYMDIF,PAIR[x_,y_]] := union[complement[image[V,set[x]]],complement[image[V,set[y]]], intersection[x,complement[y]],intersection[y,complement[x]]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[TC,x_] := union[complement[image[V,set[x]]],tc[x]] (* derived 2005 July 17 in TIMES.NB *) APPLY[times[x_],y_] := natmul[x,y] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[UCLOSURE,x_] := union[complement[image[V,set[x]]],Uclosure[x]] (* added 2003 October 28 based on APPLY.NB *) APPLY[union[x_,y_],z_] := intersection[APPLY[x,z],APPLY[y,z]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[V,x_] := complement[image[V,set[x]]] (* derived 2005 January 25 *) APPLY[VERTSECT[x_],y_] := union[complement[image[V,set[y]]],complement[image[V,set[image[x,set[y]]]]],image[x,set[y]]] (* derived 2004 August 10 in RS-3.NB *) APPLY[VERTSECT[RESTRICT],x_] := union[complement[image[V,set[x]]],RS[x]] (* added 2003 November 13 based on APPLY-SP.NB *) APPLY[VS,x_] := union[complement[image[V,set[x]]],composite[VERTSECT[x],id[domain[x]]]] (* derived 2004 September 25 in LAMB-WF.NB *) APPLY[WFPART,x_] := union[complement[image[V,set[x]]],wf[x]] (* derived 2004 November 16 in XS.NB *) APPLY[XS,x_] := union[complement[image[V,set[x]]],X[x]] (* assertions *) assert[p_] := Module[{w = Unique[]},equal[V,class[w,p]]] (* added 2003 July 1 based on ASSOC.NB *) associative[0] := True (* added 2003 July 1 based on ASSOC.NB *) associative[CAP] := True (* added 2003 July 1 based on ASSOC.NB *) associative[cart[cart[x_,x_],y_]] := True (* derived 2005 July 30 in CATORELN.NB *) associative[CATOFUNS] := True (* derived 2005 July 30 in CATORELN.NB *) associative[CATORELN] := True (* added 2003 July 1 based on ASSOC.NB *) associative[COMPOSE] := True (* added 2003 July 20 based on DIRECT12.NB *) associative[composite[CART,cross[IMAGE[FIRST],IMAGE[SECOND]]]] := True (* derived 2004 December 3 in TRVASSOC.NB *) associative[composite[COMPOSE,cross[IMAGE[id[trv[x_]]],IMAGE[id[trv[x_]]]]]] := True (* derived 2004 December 2 in PRECISE.NB *) associative[composite[COMPOSE,id[composite[inverse[IMAGE[SECOND]],IMAGE[FIRST]]]]] := True (* derived 2005 July 30 in CATORELN.NB *) associative[composite[cross[COMPOSE,FIRST],TWIST]] := True (* added 2003 August 9 based on ASS-ADDZ.NB *) associative[composite[cross[NATADD,NATADD],TWIST]] := True (* derived 2004 December 7 in ASV-DIV.NB *) associative[composite[FIRST,id[x_]]] := and[subclass[composite[x,inverse[x]],x],TRANSITIVE[composite[Id,x]]] (* added 2003 July 1 based on IN-DUP.NB *) associative[composite[id[x_],inverse[DUP]]] := True (* derived 2005 July 22 in MOD-ASS.NB *) associative[composite[modulo[x_],NATADD]] := True (* derived 2005 July 22 in MOD-ASS.NB *) associative[composite[modulo[x_],NATADD,id[cart[x_,x_]]]] := True (* derived 2005 July 22 in MOD-ASS.NB *) associative[composite[modulo[x_],NATMUL]] := True (* derived 2005 July 22 in MOD-ASS.NB *) associative[composite[modulo[x_],NATMUL,id[cart[x_,x_]]]] := True (* added 2003 July 7 based on PRGPOID.NB *) associative[composite[RIF,cross[SWAP,SWAP]]] := True (* derived 2004 December 7 in ASV-DIV.NB *) associative[composite[SECOND,id[x_]]] := and[subclass[composite[inverse[x],x],x],TRANSITIVE[composite[Id,x]]] (* added 2003 July 1 based on ASS-TRV.NB *) associative[composite[x_,SWAP]] := associative[composite[x,id[cart[V,V]]]] (* added 2003 July 13 based on ASS-1X2.NB *) associative[composite[SWAP,cross[x_,y_]]] := associative[cross[y,x]] (* added 2003 July 7 based on PRGPOID.NB *) associative[composite[SWAP,RIF]] := True (* derived 2004 December 3 in TRVASSOC.NB *) associative[composite[SWAP,RIF,id[cart[trv[x_],trv[x_]]]]] := True (* added 2003 July 13 based on ASS-1X2.NB *) associative[cross[FIRST,SECOND]] := True (* added 2003 July 13 based on ASS-1X2.NB *) associative[cross[SECOND,FIRST]] := False (* added 2003 July 1 based on ASSOC.NB *) associative[CUP] := True (* added 2003 July 1 based on ASSOC.NB *) associative[FIRST] := True (* added 2003 July 1 based on ASSOC.NB *) associative[Id] := False (* added 2003 August 9 based on ASS-ADDZ.NB *) associative[INTADD] := True (* added 2003 July 1 based on IN-DUP.NB *) associative[inverse[DUP]] := True (* added 2003 July 1 based on ASSOC.NB *) associative[NATADD] := True (* added 2003 July 1 based on ASSOC.NB *) associative[NATMUL] := True (* added 2003 July 7 based on PRGPOID.NB *) associative[RIF] := False (* added 2003 July 1 based on ASSOC.NB *) associative[SECOND] := True (* added 2003 July 1 based on ASSOC.NB *) associative[SYMDIF] := True (* added 2003 July 1 based on ASSOC.NB *) associative[V] := False (* added 2003 May 23 based on BINCLOSE.NB *) binclosed[0] := V (* added 2003 May 23 based on BINCLOSE.NB *) binclosed[cart[x_,y_]] := union[cliques[complement[x]],image[S,set[y]]] (* added 2003 May 23 based on BINCLOSE.NB *) binclosed[composite[Id,x_]] := binclosed[x] (* added 2003 May 23 based on BINCLOSE.NB *) binclosed[composite[x_,id[cart[V,V]]]] := binclosed[x] (* added 2003 May 21 based on BINCLOSE.NB *) binclosed[composite[x_,inverse[DUP]]] := invar[x] (* added 2003 May 23 based on BCL-TRV.NB *) binclosed[composite[x_,inverse[IMAGE[DUP]],E]] := invar[composite[x,E]] (* added 2003 May 23 based on BINCLOSE.NB *) binclosed[composite[SWAP,RIF]] := image[inverse[IMAGE[id[cart[V,V]]]],TRV] (* added 2003 May 23 based on BINCLOSE.NB *) binclosed[FIRST] := V (* added 2003 May 23 based on BINCLOSE.NB *) binclosed[inverse[DUP]] := V (* derived 2004 May 2 in REGULAR.NB *) binclosed[REGULAR] := P[complement[REGULAR]] (* added 2003 May 23 based on BINCLOSE.NB *) binclosed[SECOND] := V (* added 2003 May 23 based on BINCLOSE.NB *) binclosed[union[x_,y_]] := intersection[binclosed[x],binclosed[y]] (* added 2003 May 23 based on BINCLOSE.NB *) binclosed[V] := set[0] (* Definition DF-CA in DF-FP-5 *) cantor[z_] := intersection[complement[fix[composite[inverse[E],z]]], domain[z]] (* revised 2003 May23 based on DEF-CLOS.NB *) CAPclosed := binclosed[CAP] (* added 2001 December 1 based on CARD-X.NB *) card[0] := 0 (* added 2001 December 10 based on CARD-ALL.NB *) card[card[x_]] := card[x] (* derived 2005 July 22 in CARD-MUL.NB *) card[cart[nat[x_],nat[y_]]] := natmul[nat[x],nat[y]] (* derived 2005 July 22 in CARD-MUL.NB *) card[cart[x_,set[y_]]] := intersection[card[x],image[V,set[y]]] (* derived 2004 January 10 in CARD-FUN.NB *) card[domain[funpart[x_]]] := card[funpart[x]] (* derived 2004 January 10 in CARD-FUN.NB *) card[id[x_]] := card[x] (* derived 2004 January 10 in CARD-FUN.NB *) card[intersection[x_,image[V,y_]]] := intersection[card[x],image[V,y]] (* derived 2005 April 27 in CARDRANK.NB *) card[nat[x_]] := nat[x] (* derived 2005 July 16 in DBLCOUNT.NB *) card[natadd[x_,y_]] := natadd[x,y] (* derived 2005 August 6 in CARD-NAT.NB *) card[natmod[x_,y_]] := natmod[x,y] (* derived 2005 August 6 in CARD-NAT.NB *) card[natmul[x_,y_]] := natmul[x,y] (* derived 2005 August 6 in CARD-NAT.NB *) card[natsub[x_,y_]] := natsub[x,y] (* added 2002 May 29 based on ALEPH0.NB *) card[omega] := omega (* derived 2005 January 11 in SET-SUCC.NB *) card[P[succ[set[0]]]] := succ[succ[succ[set[0]]]] (* derived 2004 January 10 in CARD-FUN.NB *) card[plus[x_]] := intersection[omega,image[V,intersection[omega,set[x]]]] (* derived 2005 August 17 in PRIMESEQ.NB *) card[PRIMES] := omega (* derived 2004 January 10 in CARD-FUN.NB *) card[RC[x_]] := intersection[card[P[x]],image[V,set[x]]] (* added 2001 December 1 based on CARD-X.NB *) card[set[0]] := set[0] (* derived 2005 January 7 in CARD-ONE.NB *) card[set[x_]] := intersection[image[V,set[x]],set[0]] (* derived 2005 January 7 in CARD-OM.NB *) card[succ[omega]] := omega (* added 2001 December 2 based on CARD-FUN.NB *) card[union[x_,complement[image[V,set[y_]]]]] := union[card[x],complement[image[V,set[y]]]] (* Theorem CP-3A in CP1 *) cart[x_,0] := 0 (* Theorem CP-3B in CP1 *) cart[0,x_] := 0 (* Theorem IMV-CP01 in IM2 proved 1998 July 21 *) cart[complement[image[V,x_]],y_] := cart[V,intersection[complement[image[V,x]],y]] (* Theorem IMV-CP02 in IM2 proved 1998 July 21 *) cart[domain[x_],image[V,x_]] := cart[domain[x],V] (* Theorem IM-V-CP in IM2 proved 1998 February 5 *) cart[x_,image[V,x_]] := cart[x,V] (* Theorem IMV-CP03 in IM2 proved 1998 July 22 *) cart[image[z_,x_],image[V,x_]] := cart[image[z,x],V] (* Theorem IMV-CP04 in IM2 proved 1998 July 22 *) cart[image[z_,x_],intersection[y_,image[V,x_]]] := cart[image[z,x],y] (* Theorem IMV-CP05 in IM2 proved 1998 July 22 *) cart[image[V,x_],y_] := cart[V,intersection[image[V,x],y]] (* added 2001 November 22 based on CP-I-IMV.NB *) cart[intersection[x_,complement[image[V,y_]]],z_] := cart[x,intersection[z,complement[image[V,y]]]] (* Theorem IMV-CP06 in IM2 proved 1998 July 22 *) cart[x_,intersection[y_,image[V,x_]]] := cart[x,y] (* Theorem IMV-CP07 in IM2 proved 1998 July 22 *) cart[intersection[x_,image[V,y_]],z_] := cart[x,intersection[image[V,y],z]] (* added 2002 October 22 based on CO-ID.NB *) cart[inverse[x_],intersection[y_,image[V,domain[x_]]]] := cart[inverse[x],y] (* Theorem IMV-CP08 in IM2 proved 1998 July 22 *) cart[range[x_],image[V,x_]] := cart[range[x],V] (* dangerous rule found 2002 January 1 in PAIR-MEM.NB replaced with temporary rules for A[...] cart[set[x_],set[y_]] := set[PAIR[x,y]] *) (* added 2001 November 29 based on CO-SS.NB *) cart[union[x_,intersection[y_,complement[image[V,z_]]]],w_] := union[cart[x,w],cart[y,intersection[w,complement[image[V,z]]]]] (* added 2001 November 29 based on CO-SS.NB *) cart[union[x_,intersection[y_,image[V,z_]]],w_] := union[cart[x,w],cart[y,intersection[w,image[V,z]]]] (* introduced 2004 October 26 in AXCH.NB *) choicefunction[x_,y_] := and[FUNCTION[x],subclass[x,inverse[E]],equal[domain[x],y]] (* added 2000 December 9 based on CLIQUES.NB *) cliques[0] := set[0] (* added 2000 December 9 based on CLIQUES.NB *) cliques[cart[x_,y_]] := P[intersection[x,y]] (* added 2000 December 9 based on MORECLIQ.NB *) cliques[complement[cart[x_,y_]]] := union[P[complement[x]],P[complement[y]]] (* corrected 2002 June 4 *) cliques[complement[composite[inverse[x_],x_]]] := P[complement[domain[x]]] (* added 2000 December 14 based on CLIQUES.NB *) cliques[complement[composite[x_,inverse[x_]]]] := P[complement[range[x]]] (* derived 2004 January 13 in RA-RCF.NB *) cliques[complement[cross[x_,complement[inverse[y_]]]]] := cliques[complement[cross[inverse[x],complement[y]]]] (* added 2000 December 9 based on REPLACE.NB *) cliques[complement[cross[Di,Id]]] := image[inverse[IMAGE[SWAP]],FUNS] (* added 2000 December 9 based on CLIQUES.NB *) cliques[complement[cross[Id,Di]]] := image[inverse[IMAGE[id[cart[V,V]]]],FUNS] (* added 2000 December 17 based on Q.NB *) cliques[complement[E]] := fix[composite[DISJOINT,BIGCUP]] (* added 2000 December 17 based on Q.NB *) cliques[complement[inverse[x_]]] := cliques[complement[x]] (* added 2000 December 17 based on Q.NB *) cliques[complement[Q]] := set[0] (* derived 2004 May 2 in REGULAR.NB *) cliques[complement[REGULAR]] := P[complement[REGULAR]] (* added 2000 December 17 based on Q.NB *) cliques[complement[S]] := set[0] (* added 2000 December 9 based on CLIQUES.NB *) cliques[composite[Id,x_]] := cliques[x] (* added 2000 December 9 based on CLIQUES.NB *) cliques[composite[id[x_],y_]] := intersection[cliques[y],P[x]] (* added 2000 December 9 based on CLIQUES.NB *) cliques[composite[x_,id[y_]]] := intersection[cliques[x],P[y]] (* derived 2005 November 9 in POWCHAIN.NB *) cliques[composite[inverse[POWER],x_,POWER]] := image[inverse[IMAGE[POWER]],cliques[x]] (* added 2001 December 31 based on DORA-DJ.NB *) cliques[composite[inverse[SECOND],Di,FIRST]] := intersection[image[inverse[DORA],DISJOINT],P[cart[V,V]]] (* added 2000 December 9 based on CLIQUES.NB *) cliques[Di] := set[0] (* revised 2002 April 18 based on REPLACE.NB *) cliques[DISJOINT] := succ[set[0]] (* added 2000 December 9 based on CLIQUES.NB *) cliques[Id] := union[range[SINGLETON],set[0]] (* added 2000 December 9 based on CLIQUES.NB *) cliques[id[x_]] := union[image[SINGLETON,x],set[0]] (* added 2003 October 8 based on FS-CUP.NB *) cliques[image[inverse[CUP],FUNS]] := image[inverse[BIGCUP],FUNS] (* added 2000 December 9 based on CLIQUES.NB *) cliques[intersection[x_,y_]] := intersection[cliques[x],cliques[y]] (* added 2000 December 9 based on CLIQUES.NB *) cliques[inverse[x_]] := cliques[x] (* added 2000 December 9 based on CLIQUES.NB *) cliques[PS] := set[0] (* derived 2004 May 2 in REGULAR.NB *) cliques[REGULAR] := REGULAR (* added 2000 December 14 based on CLIQUES.NB *) cliques[S] := union[range[SINGLETON],set[0]] (* added 2002 January 17 based on ANTISYM3.NB *) cliques[union[cart[Id,V],composite[Di,SWAP,id[Di]]]] := ANTISYM (* added 2002 January 18 based on THINRULE.NB *) cliques[union[x_,complement[cart[y_,y_]]]] := image[inverse[IMAGE[id[y]]],cliques[x]] (* added 2002 April 23 based on TRICHOT.NB *) cliques[union[E,inverse[S]]] := cliques[union[S,inverse[E]]] (* added 2000 December 9 based on CLIQUES.NB *) cliques[V] := V (* derived 2004 December 21 in COMUTANT.NB *) commutant[0] := V (* derived 2004 December 21 in COMUTANT.NB *) commutant[composite[Id,x_]] := commutant[x] (* derived 2004 December 21 in COMUTANT.NB *) commutant[E] := P[complement[cart[V,V]]] (* derived 2004 December 21 in COMUTANT.NB *) commutant[Id] := V (* derived 2004 December 21 in COMUTANT.NB *) commutant[id[x_]] := P[intersection[complement[cart[x,complement[x]]],complement[cart[complement[x],x]]]] (* derived 2004 December 21 in COMUTANT.NB *) commutant[inverse[x_]] := image[inverse[IMAGE[SWAP]],commutant[x]] (* derived 2004 December 21 in COMUTANT.NB *) commutant[S] := P[complement[cart[V,V]]] (* derived 2004 December 21 in COMUTANT.NB *) commutant[V] := P[complement[cart[V,V]]] (* added 2001 May 18 *) commute[x_,y_] := equal[composite[x,y],composite[y,x]] (* Theorem C-2A in C1 *) complement[0] := V (* from ADJ-C.LOG *) complement[ADJOIN[x_]] := union[complement[cart[V,image[V,set[x]]]], composite[Di,ADJOIN[x]]] (* Theorem BA-DI2 in BIGCAP/BA1 proved 1998 December 11 *) complement[BIGCAP] := union[complement[cart[complement[set[0]],V]], composite[Di,BIGCAP]] (* Theorem BC-C in BIGCUP/BC proved 1998 December 12 *) complement[BIGCUP] := union[complement[cart[V,V]], composite[Di,BIGCUP]] (* Theorem C-1 in C1 *) complement[complement[x_]] := x (* derived 2004 April 22 in PSM-VS.NB *) complement[composite[complement[E],x_]] := union[complement[cart[V,V]],composite[S,VERTSECT[x]]] (* added 2002 October 22 based on C-CO-X.NB *) complement[composite[cross[w_,composite[id[x_],y_]],z_]] := union[complement[cart[V,cart[V,x]]],complement[composite[cross[w,y],z]]] (* added 2002 October 22 based on C-CO-X.NB *) complement[composite[cross[composite[id[w_],x_],y_],z_]] := union[complement[cart[V,cart[w,V]]],complement[composite[cross[x,y],z]]] (* added 2002 October 22 based on C-CO-X.NB *) complement[composite[w_,cross[x_,composite[y_,id[z_]]]]] := union[complement[cart[cart[V,z],V]],complement[composite[w,cross[x,y]]]] (* added 2002 October 22 based on C-CO-X.NB *) complement[composite[w_,cross[composite[x_,id[y_]],z_]]] := union[complement[cart[cart[y,V],V]],complement[composite[w,cross[x,z]]]] (* added 2000 November 26 based on GLB-LUB.NB complement[composite[x_,inverse[E]]] := union[complement[cart[V,V]],UB[complement[x]]] *) (* added 2000 November 14 based on MAX.NB *) complement[composite[complement[x_],inverse[E]]] := union[complement[cart[V,V]],UB[x]] (* Theorem DJT-DEF in DJT proved 1998 July 27 *) complement[composite[E,inverse[E]]] := union[complement[cart[V,V]],DISJOINT] (* removed 2000 November 7 complement[cross[x_,y_]] := union[complement[cart[cart[V,V],cart[V,V]]], composite[inverse[FIRST],complement[x],FIRST], composite[inverse[SECOND],complement[y],SECOND]] *) (* added 2002 October 22 based on C-CO-X.NB *) complement[cross[composite[id[w_],x_],y_]] := union[complement[cart[V,cart[w,V]]],complement[cross[x,y]]] (* added 2002 October 22 based on C-CO-X.NB *) complement[cross[w_,composite[id[x_],y_]]] := union[complement[cart[V,cart[V,x]]],complement[cross[w,y]]] (* added 2002 October 22 based on C-CO-X.NB *) complement[cross[x_,composite[y_,id[z_]]]] := union[complement[cart[cart[V,z],V]],complement[cross[x,y]]] (* added 2002 October 22 based on C-CO-X.NB *) complement[cross[composite[x_,id[y_]],z_]] := union[complement[cart[cart[y,V],V]],complement[cross[x,z]]] (* Theorem DI-C-ID in DI added 1998 July 2 *) complement[Di] := union[Id,complement[cart[V,V]]] (* Theorem DJT-C2 in DJT *) complement[DISJOINT] := union[composite[E,inverse[E]], complement[cart[V,V]]] (* added 1998 July 2 *) complement[DUP] := union[complement[cart[V,Id]], composite[DUP,Di]] (* added 1998 July 2 *) complement[FIRST] := union[complement[cart[cart[V,V],V]], composite[Di,FIRST]] (* added 1998 February 7 *) complement[fix[E]] := RUSSELL (* added 1998 July 2 *) complement[id[x_]] := union[complement[cart[x,x]],composite[id[x],Di,id[x]]] (* Theorem DI-ID-C in DI added 1998 July 2 *) complement[Id] := union[Di,complement[cart[V,V]]] (* added 1998 July 2; revised 1999 July 14; removed 2000 November 7 complement[IMAGE[z_]] := union[ complement[cart[P[domain[VERTSECT[z]]],range[IMAGE[z]]]], composite[id[range[IMAGE[z]]],Di,IMAGE[z]]] *) (* Theorem C-4B in C1 *) complement[intersection[x_,y_]] := union[complement[x],complement[y]] (* added 1998 August 11 *) complement[inverse[BIGCAP]] := union[complement[cart[V,complement[set[0]]]],composite[inverse[BIGCAP],Di]] (* added 1998 July 2 *) complement[inverse[BIGCUP]] := union[complement[cart[V,V]],composite[inverse[BIGCUP],Di]] (* added 1998 July 2 *) complement[inverse[DUP]] := union[complement[cart[Id,V]],composite[Di,inverse[DUP]]] (* added 1998 July 2 *) complement[inverse[FIRST]] := union[complement[cart[V,cart[V,V]]],composite[inverse[FIRST],Di]] (* added 2000 November 23 based on VS-3.NB *) complement[inverse[LB[x_]]] := union[complement[cart[V,V]],composite[E,complement[x]]] (* added 1998 August 11 *) complement[inverse[POWER]] := union[complement[cart[V,V]],composite[inverse[POWER],Di]] (* added 2002 May 25 based on ON-SUC-1.NB *) complement[inverse[PS]] := union[Id,complement[inverse[S]]] (* added 1998 July 2 *) complement[inverse[SECOND]] := union[complement[cart[V,cart[V,V]]],composite[inverse[SECOND],Di]] (* added 1998 July 3 *) complement[inverse[SINGLETON]] := union[complement[cart[V,V]],composite[inverse[SINGLETON],Di]] (* revised 2002 November 26 based on C-SUCC.NB *) complement[inverse[SUCC]] := union[complement[cart[range[SUCC],V]],composite[inverse[SUCC],Di]] (* derived 2005 October 22 in TO-C.NB *) complement[inverse[to[x_]]] := union[complement[cart[fix[to[x]],fix[to[x]]]],intersection[Di,to[x]]] (* added 2000 November 7 based on UB-1.NB *) complement[inverse[UB[x_]]] := union[complement[cart[V,V]],composite[E,complement[inverse[x]]]] (* derived 2005 October 22 in WO-C.NB *) complement[inverse[wo[x_]]] := union[complement[cart[fix[wo[x]],fix[wo[x]]]],intersection[Di,wo[x]]] (* added 2000 November 7 based on LB-2.NB *) complement[LB[x_]] := union[complement[cart[V,V]],composite[complement[inverse[x]],inverse[E]]] (* added 1998 August 11 *) complement[POWER] := union[complement[cart[V,V]],composite[Di,POWER]] (* Theorem PS-C1 in PS1 proved 1998 November 28 *) complement[PS] := union[Id,complement[S]] (* Theorem RUS-C in RUS/1 *) complement[RUSSELL] := fix[E] (* added 1998 July 2 *) complement[SECOND] := union[complement[cart[cart[V,V],V]],composite[Di,SECOND]] (* Theorem AP-DI-SG proved 1998 December 16 *) complement[SINGLETON] := union[complement[cart[V,V]],composite[Di,SINGLETON]] (* revised 2002 November 26 based on C-SUCC.NB *) complement[SUCC] := union[complement[cart[V,range[SUCC]]],composite[Di,SUCC]] (* added 1998 July 2; removed 2002 November 26 based on SWAP-DI.NB complement[SWAP] := union[complement[cart[cart[V,V],cart[V,V]]],composite[id[cart[V,V]],Di,SWAP]] *) (* derived 2005 October 22 in TO-C.NB *) complement[to[x_]] := union[complement[cart[fix[to[x]],fix[to[x]]]],intersection[Di,inverse[to[x]]]] (* added 2000 November 7 based on UB-1.NB *) complement[UB[x_]] := union[complement[cart[V,V]],composite[complement[x],inverse[E]]] (* derived 2005 October 22 in WO-C.NB *) complement[wo[x_]] := union[complement[cart[fix[wo[x]],fix[wo[x]]]],intersection[Di,inverse[wo[x]]]] (* Theorem C-4A in C1 *) complement[union[x_,y_]] := intersection[complement[x],complement[y]] (* Theorem C-2B in C1 *) complement[V] := 0 (* Theorem CO-0A in CO1 *) composite[0,x_] := 0 (* Theorem CO-0B in CO1 *) composite[x_,0] := 0 (* added 2001 May 10 based on ACLOSURE.NB *) composite[ACLOSURE,ACLOSURE] := ACLOSURE (* added 2002 November 20 based on UCL-U.NB *) composite[ACLOSURE,ADJOIN[set[0]]] := composite[ADJOIN[set[0]],ACLOSURE] (* added 2001 October 15 based on ACL-IMS.NB *) composite[ACLOSURE,CLIQUES] := CLIQUES (* derived 2005 February 17 in NAT-ACL.NB *) composite[ACLOSURE,id[omega]] := id[omega] (* derived 2005 February 17 in NAT-ACL.NB *) composite[ACLOSURE,id[OMEGA]] := id[OMEGA] (* added 2003 May 19 based on CAPCLOSE.NB *) composite[ACLOSURE,IMAGE[CAP],CART,DUP] := ACLOSURE (* added 2003 May 18 based on ACL-SQ.NB *) composite[ACLOSURE,IMAGE[CART],IMAGE[DUP]] := composite[IMAGE[CART],IMAGE[DUP],ACLOSURE] (* added 2001 October 2 based on IMS.NB *) composite[ACLOSURE,IMAGE[inverse[S]]] := IMAGE[inverse[S]] (* added 2003 May 19 based on ACL-IPOW.NB *) composite[ACLOSURE,IMAGE[POWER]] := composite[IMAGE[POWER],ACLOSURE] (* added 2001 May 10 based on ACLOSURE.NB *) composite[ACLOSURE,POWER] := POWER (* added 2002 April 8 based on UCL-ACL.NB *) composite[ACLOSURE,SINGLETON] := SINGLETON (* derived 2004 August 10 in RS-3.NB *) composite[ACLOSURE,VERTSECT[RESTRICT]] := VERTSECT[RESTRICT] (* added 1999 November 3 based on CURRY.NB *) composite[ADJOIN[x_],ADJOIN[y_]] := ADJOIN[union[x,y]] (* added 2002 August 18 based on DISTRIB.NB *) composite[ADJOIN[x_],CAP] := composite[CAP,cross[ADJOIN[x],ADJOIN[x]]] (* added 2000 September 22 based on LEFT.NB *) composite[ADJOIN[complement[image[V,set[x_]]]],LEFT[x_]] := LEFT[x] (* added 2000 September 22 based on LEFT.NB *) composite[ADJOIN[complement[image[V,set[x_]]]],RIGHT[x_]] := RIGHT[x] (* added 2001 May 2 based on ADJOIN.NB *) composite[ADJOIN[x_],complement[inverse[S]]] := composite[id[image[S,set[x]]],complement[inverse[S]]] (* added 1999 November 21 based on 1999/NOV/20/CUT-ADJ.NB *) composite[ADJOIN[x_],id[image[S,set[x_]]]] := id[image[S,set[x]]] (* added 2003 September 11 based on ID-IMV.NB *) composite[ADJOIN[x_],y___,id[image[V,set[x_]]]] := composite[ADJOIN[x],y] (* added 2002 May 24 based on ADJOIN.NB *) composite[ADJOIN[x_],IMAGE[id[complement[x_]]]] := ADJOIN[x] (* Theorem ADJ-CO3 in ADJ proved 1999 November 23 *) composite[ADJOIN[x_],S] := composite[id[image[S,set[x]]],S] (* added 2002 May 24 based on ADJOIN.NB *) composite[ADJOIN[set[0]],id[omega],SUCC] := composite[id[omega],SUCC] (* added 2002 May 24 based on ADJOIN.NB *) composite[ADJOIN[set[0]],IMAGE[SUCC],id[omega]] := composite[id[omega],SUCC] (* added 2001 May 20 based on IDEA.NB *) composite[ADJOIN[set[0]],POWER] := POWER (* added 2002 October 24 based on SUBVAR.NB *) composite[ADJOIN[set[0]],SUBVAR] := SUBVAR (* derived 2005 November 9 in RESTRICT.NB *) composite[ASSOC,cross[composite[id[cart[x_,y_]],inverse[FIRST]],Id]] := cross[id[x],composite[id[cart[y,V]],inverse[SECOND]]] (* derived 2005 November 9 in RESTRICT.NB *) composite[ASSOC,cross[composite[id[cart[x_,y_]],inverse[SECOND]],Id]] := composite[id[cart[x,cart[y,V]]],inverse[SECOND]] (* added 2003 May 30 based on RESTRICT.NB *) composite[ASSOC,cross[cross[x_,y_],z_]] := composite[cross[x,cross[y,z]],ASSOC] (* added 2002 June 25 based on ASSOC.NB *) composite[ASSOC,cross[inverse[FIRST],Id]] := cross[Id,inverse[SECOND]] (* added 2002 June 16 based on LEFT-ROT.NB *) composite[ASSOC,cross[RIGHT[x_],Id]] := cross[Id,LEFT[x]] (* added 2002 October 22 based on CO-ID.NB *) composite[ASSOC,id[cart[cart[V,V],V]]] := ASSOC (* derived 2004 March 23 in TRV-K.NB *) composite[ASSOC,id[cart[x_,y_]],inverse[FIRST]] := composite[cross[Id,composite[id[cart[V,y]],inverse[FIRST]]],id[x]] (* added 1999 October 17 based on ASSOC.2 *) composite[ASSOC,id[cart[V,V]]] := ASSOC (* added 1999 November 6 based on CO-4.LOG *) composite[ASSOC,inverse[FIRST]] := cross[Id,inverse[FIRST]] (* added 1999 October 31 based on ASSOC.1 *) composite[ASSOC,inverse[ROT]] := composite[SWAP,ROT] (* added 1999 November 6 based on CO-4.LOG *) composite[ASSOC,inverse[SECOND]] := composite[inverse[SECOND],inverse[SECOND]] (* added 2002 June 16 based on LEFT-ROT.NB *) composite[ASSOC,LEFT[x_]] := composite[LEFT[first[x]],LEFT[second[x]]] (* added 1999 November 3 based on ASS-DIF.TXT *) composite[ASSOC,RIGHT[x_]] := cross[Id,RIGHT[x]] (* modified 1999 December 15 based on PERMUTE.NB *) composite[ASSOC,ROT] := composite[SWAP,id[cart[cart[V,V],V]]] (* added 2001 May 10 based on UCLOS-2.NB *) composite[BIGCAP,ACLOSURE] := BIGCAP (* added 2001 May 8 based on BC-BA.NB *) composite[BIGCAP,CLIQUES] := cart[V,set[0]] (* Corollary BA-5C in BIGCAP/BA1 proved 1998 December 15 *) composite[BIGCAP,complement[inverse[S]]] := composite[inverse[S],complement[inverse[E]]] (* added 1999 December 16 based on BIGCAP.NB *) composite[BIGCAP,CUP] := union[composite[BIGCAP,inverse[LEFT[0]]], composite[BIGCAP,inverse[RIGHT[0]]], composite[CAP,cross[BIGCAP,BIGCAP]]] (* Theorem BA-E3 in BIGCAP/BA1 proved 1998 October 1 *) composite[BIGCAP,E] := inverse[S] (* added 2002 October 22 based on CO-ID.NB *) composite[BIGCAP,id[complement[set[0]]]] := BIGCAP (* derived 2004 December 15 in LB-UB-RS.NB *) composite[BIGCAP,id[intersection[x_,complement[set[0]]]]] := composite[BIGCAP,id[x]] (* derived 2005 January 27 in BA-OM.NB *) composite[BIGCAP,id[omega]] := cart[intersection[omega,complement[set[0]]],set[0]] (* derived 2005 January 27 in BA-ON.NB *) composite[BIGCAP,id[OMEGA]] := cart[intersection[OMEGA,complement[set[0]]],set[0]] (* corrected 1998 August 9 *) composite[BIGCAP,id[range[POWER]]] := cart[range[POWER],set[0]] (* added 1998 July 31 *) composite[BIGCAP,id[range[SINGLETON]]] := inverse[SINGLETON] (* added 2001 May 2 based on ADJOIN.NB *) composite[BIGCAP,IMAGE[ADJOIN[x_]]] := composite[ADJOIN[x],BIGCAP] (* added 1999 September 24 based on BIGCAP.LOG *) composite[BIGCAP,IMAGE[BIGCAP]] := composite[BIGCAP,BIGCUP] (* revised 2001 December 24 based on REPLACE.NB *) composite[BIGCAP,IMAGE[CAP]] := composite[CAP,cross[BIGCAP,BIGCAP],DORA] (* revised 2001 December 24 based on REPLACE.NB *) composite[BIGCAP,IMAGE[CART]] := composite[CART,cross[BIGCAP,BIGCAP],DORA] (* added 2001 April 30 based on CLIQUES2.NB *) composite[BIGCAP,IMAGE[CLIQUES]] := composite[CLIQUES,BIGCAP] (* revised 2001 December 24 based on BC-BA.NB *) composite[BIGCAP,IMAGE[DIF]] := composite[DIF,cross[BIGCAP,BIGCUP],DORA] (* added 2001 April 10 based on HC-BA.NB *) composite[BIGCAP,IMAGE[HC]] := composite[HC,BIGCAP] (* added 2001 March 9 based on IMG-CUT.NB *) composite[BIGCAP,IMAGE[IMAGE[id[x_]]]] := composite[IMAGE[id[x]],BIGCAP] (* added 2001 May 3 based on BA-IMG.NB *) composite[BIGCAP,IMAGE[IMAGE[inverse[DUP]]]] := composite[IMAGE[inverse[DUP]],BIGCAP] (* added 2001 May 3 based on BA-IMG.NB *) composite[BIGCAP,IMAGE[IMAGE[inverse[POWER]]]] := composite[IMAGE[inverse[POWER]],BIGCAP] (* added 2002 February 17 based on IMG-IMG.NB *) composite[BIGCAP,IMAGE[IMAGE[SWAP]]] := composite[IMAGE[SWAP],BIGCAP] (* added 2001 May 3 based on BA-IMG.NB *) composite[BIGCAP,IMAGE[inverse[IMAGE[DUP]]]] := composite[IMAGE[inverse[DUP]],BIGCAP,IMAGE[id[P[Id]]]] (* added 2000 January 18 based on BIGCAP.NB *) composite[BIGCAP,IMAGE[inverse[S]]] := cart[complement[set[0]],set[0]] (* added 1999 September 23 based on BIGCAP.LOG *) composite[BIGCAP,IMAGE[POWER]] := composite[POWER,BIGCAP] (* added 2000 January 18 based on BIGCAP.NB *) composite[BIGCAP,IMAGE[SINGLETON]] := union[id[range[SINGLETON]], cart[intersection[complement[range[SINGLETON]], complement[set[0]]],set[0]]] (* derived 2004 May 14 in REPLACE.NB *) composite[BIGCAP,IMAGE[VERTSECT[x_]]] := composite[VERTSECT[UB[x]],IMAGE[id[domain[VERTSECT[x]]]]] (* added 2003 May 12 based on APPLY.NB *) composite[BIGCAP,IMG,cross[FUNPART,SINGLETON]] := composite[inverse[SINGLETON],IMG,cross[Id,SINGLETON]] (* added 2003 June 6 based on ACL-UCL.NB *) composite[BIGCAP,inverse[ACLOSURE],E] := inverse[S] (* added 2000 December 20 based on BA-BC.NB *) composite[BIGCAP,inverse[BIGCUP]] := inverse[S] (* added 2002 April 10 based on INVAR.NB *) composite[BIGCAP,inverse[LB[INVAR]]] := INVAR (* added 2001 May 10 based on UCLOS-1.NB *) composite[BIGCAP,inverse[S]] := composite[inverse[E],ACLOSURE] (* added 2002 January 11 based on KURA.NB *) composite[BIGCAP,KURA] := composite[SINGLETON,FIRST] (* added 1999 October 6 based on CAP.1 *) composite[BIGCAP,PAIRSET] := CAP (* corrected 1998 August 9 *) composite[BIGCAP,POWER] := cart[V,set[0]] (* added 1998 July 31 *) composite[BIGCAP,SINGLETON] := Id (* added 1998 July 30 *) composite[BIGCAP,S] := union[cart[set[0],V],composite[inverse[S],BIGCAP]] (* added 2001 May 8 based on BC-BA.NB *) composite[BIGCAP,SUBVAR] := cart[V,set[0]] (* added 2001 May 10 based on UCLOS-1.NB *) composite[BIGCAP,UCLOSURE] := cart[V,set[0]] (* added 2002 January 29 based on FUNPART.NB *) composite[BIGCAP,VERTSECT[x_],id[domain[funpart[x_]]]] := funpart[x] (* added 2001 September 9 based on ACLOSURE.NB *) composite[BIGCUP,ACLOSURE] := BIGCUP (* added 2002 November 19 based on ADJOIN.NB *) composite[BIGCUP,ADJOIN[x_]] := composite[ADJOIN[U[x]],BIGCUP] (* added 2002 January 22 based on UCLUCL.NB *) composite[BIGCUP,BIGCUP,IMAGE[id[P[x_]]],VERTSECT[inverse[BIGCUP]]] := union[cart[union[complement[Uclosure[x]],set[0]],set[0]],id[Uclosure[x]]] (* added 2001 May 8 based on BC-BA.NB *) composite[BIGCUP,CLIQUES] := IMAGE[inverse[DUP]] (* added 2003 July 4 based on COARSER.NB *) composite[BIGCUP,COARSER] := BIGCUP (* Theorem POW-C-BC in POW3 proved 1998 December 15 *) composite[BIGCUP,complement[inverse[S]]] := composite[inverse[POWER],complement[inverse[S]]] (* added 1999 October 9 based on CUP-LOG.1 *) composite[BIGCUP,CUP] := composite[CUP,cross[BIGCUP,BIGCUP]] (* Theorem BC-CO-E2 in BIGCUP/BC proved 1998 February 5 *) composite[BIGCUP,E] := S (* derived 2005 February 16 in BC-OM.NB *) composite[BIGCUP,id[intersection[omega,complement[set[0]]]]] := composite[inverse[SUCC],id[omega]] (* added 2002 May 25 based on SUCC-ID.NB *) composite[BIGCUP,id[omega],SUCC] := id[omega] (* added 2002 May 25 based on SUCC-ID.NB *) composite[BIGCUP,id[OMEGA],SUCC] := id[OMEGA] composite[BIGCUP,id[P[range[SINGLETON]]]] := inverse[IMAGE[SINGLETON]] (* Theorem POW-BC10 in BC5 proved 1999 January 27 *) composite[BIGCUP,id[range[POWER]]] := inverse[POWER] (* Theorem BC-SG-5 in BIGCUP/BC proved 1998 November 20 *) composite[BIGCUP,id[range[SINGLETON]]] := inverse[SINGLETON] (* added 2001 May 11 based on ACLOS-IM.NB *) composite[BIGCUP,IMAGE[ACLOSURE]] := composite[IMAGE[BIGCAP],IMAGE[inverse[S]]] (* Corollary IMG-BC-6 in IMG4 proved 1998 November 19 *) composite[BIGCUP,IMAGE[BIGCUP]] := composite[BIGCUP,BIGCUP] (* added 2001 March 9 based on BC-IMG.TXT *) composite[BIGCUP,IMAGE[CAP],CART] := composite[CAP,cross[BIGCUP,BIGCUP]] (* added 2001 March 9 based on BC-IMG.TXT *) composite[BIGCUP,IMAGE[CART],CART] := composite[CART,cross[BIGCUP,BIGCUP]] (* derived 2004 October 4 in REPLACE.NB *) composite[BIGCUP,IMAGE[CART],IMAGE[DUP],CLIQUES] := CORE[intersection[RFX,SYM]] (* added 2001 May 4 based on CLIQUES.NB *) composite[BIGCUP,IMAGE[CLIQUES],POWER] := CLIQUES (* added 2001 March 9 based on IM-CPS.NB *) composite[BIGCUP,IMAGE[COMPOSE],CART] := composite[COMPOSE,cross[BIGCUP,BIGCUP]] (* added 2003 February 20 based on BC-IMG.NB *) composite[BIGCUP,IMAGE[CORE[x_]],POWER] := CORE[x] (* added 2001 March 9 based on BC-IMG.TXT *) composite[BIGCUP,IMAGE[CROSS],CART] := composite[CROSS,cross[BIGCUP,BIGCUP]] (* revised 2001 December 24 based on BC-BA.NB *) composite[BIGCUP,IMAGE[CUP]] := composite[CUP,cross[BIGCUP,BIGCUP],DORA] (* added 2001 March 8 based on IMAGEDIF.NB *) composite[BIGCUP,IMAGE[DIF],CART,cross[Id,SINGLETON]] := composite[DIF,cross[BIGCUP,Id]] (* added 2001 March 8 based on IMIMG.NB *) composite[BIGCUP,IMAGE[DIF],CART,cross[SINGLETON,Id]] := union[cart[cart[V,set[0]],set[0]], composite[DIF,cross[Id,BIGCAP]]] (* added 2001 April 1 based on HF-CONT.NB *) composite[BIGCUP,IMAGE[HC],POWER] := HC (* derived 2004 October 7 in BC-IM-PC.NB *) composite[BIGCUP,IMAGE[HULL[intersection[T2,TOPS]]],POWER] := HULL[intersection[T2,TOPS]] (* added 2002 February 16 based on IMG-HULL.NB *) composite[BIGCUP,IMAGE[HULL[t_]],POWER,id[image[inverse[S],t_]]] := HULL[t] (* derived 2004 October 7 in BC-IM-PC.NB *) composite[BIGCUP,IMAGE[HULL[TOPS]],POWER] := HULL[TOPS] (* added 2002 February 16 based on HULL-TRV.NB *) composite[BIGCUP,IMAGE[HULL[TRV]],POWER] := composite[HULL[TRV],IMAGE[id[cart[V,V]]]] (* added 2002 November 19 based on CORE.NB *) composite[BIGCUP,IMAGE[id[complement[set[0]]]]] := BIGCUP (* added 2003 February 20 based on BC-IMG.NB *) composite[BIGCUP,IMAGE[id[x_]],IMAGE[inverse[S]]] := composite[BIGCUP,IMAGE[CORE[x]]] (* added 2001 May 2 based on COREHULL.NB *) composite[BIGCUP,IMAGE[id[x_]],POWER] := CORE[x] (* from IMG-SG.LOG 1999 April 16 *) composite[BIGCUP,IMAGE[id[range[SINGLETON]]]] := IMAGE[inverse[SINGLETON]] (* added 1999 September 24 based on SESSION1.LOG *) composite[BIGCUP,IMAGE[IMAGE[x_]]] := composite[IMAGE[x],BIGCUP,IMAGE[id[P[domain[VERTSECT[x]]]]]] (* added 2001 March 9 based on BC-IMG.TXT *) composite[BIGCUP,IMAGE[IMG],CART] := composite[IMG,cross[BIGCUP,BIGCUP]] (* added 2001 March 9 based on BC-IMG.TXT *) composite[BIGCUP,IMAGE[inverse[BIGCUP]]] := IMAGE[inverse[S]] (* Theorem HER-CO2 in HER *) composite[BIGCUP,IMAGE[inverse[S]]] := BIGCUP (* revised 2001 December 24 based on BC-BA.NB *) composite[BIGCUP,IMAGE[PAIRSET]] := composite[CUP,DORA] (* Theorem HER-CO3 in HER added 1998 August 4 *) composite[BIGCUP,IMAGE[POWER]] := IMAGE[inverse[S]] (* added 2003 June 11 based on VS.NB *) composite[BIGCUP,IMAGE[SECOND],VS] := IMAGE[SECOND] (* Theorem IMG-BC-4 in IMG4 proved 1998 November 19 *) composite[BIGCUP,IMAGE[SINGLETON]] := Id (* derived 2004 January 22 in U-SBV-PC.NB *) composite[BIGCUP,IMAGE[SUBVAR],POWER] := SUBVAR (* added 2002 April 27 based on FULSUC-D.NB *) composite[BIGCUP,IMAGE[SUCC]] := composite[BIGCUP,SUCC] (* added 2001 May 8 based on BC-BA.NB *) composite[BIGCUP,IMAGE[SYMDIF]] := composite[CUP,intersection[ composite[inverse[FIRST],BIGCUP,IMAGE[DIF]], composite[inverse[SECOND],BIGCUP,IMAGE[DIF],IMAGE[SWAP]]]] (* added 2000 October 26 based on TC-6.NB *) composite[BIGCUP,IMAGE[TC]] := composite[BIGCUP,TC] (* added 2001 May 11 based on UCLOS-IM.NB *) composite[BIGCUP,IMAGE[UCLOSURE]] := composite[IMAGE[BIGCUP],IMAGE[inverse[S]]] (* derived 2004 May 14 in REPLACE.NB *) composite[BIGCUP,IMAGE[VERTSECT[x_]]] := IMAGE[thinpart[x]] (* derived 2004 August 14 in ZN-RULES.NB *) composite[BIGCUP,IMAGE[ZN]] := composite[IMAGE[ZN],BIGCUP] (* added 2000 December 20 based on BA-BC.NB *) composite[BIGCUP,inverse[BIGCAP]] := S (* derived 2003 December 31 in COARSER.NB *) composite[BIGCUP,inverse[COARSER]] := BIGCUP (* added 2003 February 6 based on OM-SC-2B.NB *) composite[BIGCUP,inverse[IMAGE[inverse[SUCC]]],E] := composite[S,SUCC] (* derived 2004 December 21 in COMUTANT.NB *) composite[BIGCUP,inverse[LB[COMMUTE]]] := COMMUTE (* added 2002 April 10 based on INVAR.NB *) composite[BIGCUP,inverse[LB[INVAR]]] := INVAR (* derived 2004 December 21 in SBCOMMUT.NB *) composite[BIGCUP,inverse[LB[SUBCOMMUTE]]] := SUBCOMMUTE (* added 2001 May 10 based on UCLOS-1.NB *) composite[BIGCUP,inverse[S]] := composite[inverse[E],UCLOSURE] (* derived 2004 December 21 in SBCOMMUT.NB *) composite[BIGCUP,inverse[UB[SUBCOMMUTE]]] := inverse[SUBCOMMUTE] (* added 2003 June 6 based on ACL-UCL.NB *) composite[BIGCUP,inverse[UCLOSURE],E] := S (* added 2002 January 11 based on KURA.NB *) composite[BIGCUP,KURA] := PAIRSET (* derived 2004 December 22 in UCL-COMT.NB *) composite[BIGCUP,LB[LB[COMMUTE]]] := LB[COMMUTE] (* derived 2004 December 23 in UCLSBCMT.NB *) composite[BIGCUP,LB[LB[SUBCOMMUTE]]] := UB[SUBCOMMUTE] (* derived 2004 December 24 in LB-SBCMT.NB *) composite[BIGCUP,LB[UB[SUBCOMMUTE]]] := LB[SUBCOMMUTE] (* added 2001 April 27 based on MAP3.NB *) composite[BIGCUP,MAP] := CART (* added 1999 October 6 based on CUP.1 *) composite[BIGCUP,PAIRSET] := CUP (* Theorem POW-BC4 in POW4 *) composite[BIGCUP,POWER] := Id (* follows from Theorems BC-SR-3 and BC-UB-2 in BIGCUP/BC *) composite[BIGCUP,S] := composite[inverse[POWER],S] (* Theorem BC-SG-4 in BIGCUP/BC *) composite[BIGCUP,SINGLETON] := Id (* added 2002 April 21 based on ON.NB *) composite[BIGCUP,SUCC,id[FULL]] := id[FULL] (* added 2001 April 1 based on HF-CONT.NB *) composite[BIGCUP,TC,POWER] := TC (* added 2003 January 25 based on TC-ZN.NB *) composite[BIGCUP,TC,SINGLETON] := TC (* added 2001 May 10 based on UCLOS-1.NB *) composite[BIGCUP,UCLOSURE] := BIGCUP (* derived 2004 December 24 in UCL-LBUB.NB *) composite[BIGCUP,VERTSECT[COARSER]] := composite[POWER,BIGCUP] (* added 2002 January 20 based on UU.NB *) composite[BIGCUP,VERTSECT[inverse[BIGCUP]]] := POWER (* added 2003 May 31 based on RS-CO.NB *) composite[BIGCUP,VERTSECT[RESTRICT]] := IMAGE[id[cart[V,V]]] (* added 2001 July 17 based on ZN-IMG4.NB *) composite[BIGCUP,VERTSECT[ZN]] := IMAGE[ZN] (* added 2000 September 20 based on CAP-CUP.LOG *) composite[CAP,cross[CAP,Id],inverse[ASSOC]] := composite[CAP,cross[Id,CAP]] (* added 2000 September 20 based on CAP-CUP.LOG *) composite[CAP,cross[CAP,Id],inverse[ROT]] := composite[CAP,cross[CAP,Id]] (* added 2000 September 20 based on CAP-CUP.LOG *) composite[CAP,cross[CAP,Id],ROT] := composite[CAP,cross[CAP,Id]] (* added 2001 October 9 based on TRV-1.NB *) composite[CAP,cross[CART,CART],TWIST] := composite[CART,cross[CAP,CAP]] (* added 1999 December 24 based on COMPOSE.NB *) composite[CAP,cross[CART,Id]] := composite[COMPOSE,cross[COMPOSE,Id], cross[cross[IMAGE[DUP],Id],IMAGE[DUP]],inverse[ROT]] (* added 1999 December 21 based on CROSS.NB *) composite[CAP,cross[CROSS,CROSS]] := composite[CROSS,cross[CAP,CAP],TWIST] (* derived 2003 December 26 in DISTRIB.NB *) composite[CAP,cross[CUP,CUP],TWIST,cross[DUP,Id]] := composite[CUP,cross[Id,CAP]] (* derived 2003 December 26 in DISTRIB.NB *) composite[CAP,cross[CUP,CUP],TWIST,cross[Id,DUP]] := composite[CUP,cross[CAP,Id]] (* added 1999 November 16 based on DISJOINT.NB *) composite[CAP,cross[DISJOINT,DISJOINT]] := composite[DISJOINT,CUP] (* added 1999 November 3 based on CURRY.NB *) composite[CAP,cross[Id,CAP],ASSOC] := composite[CAP,cross[CAP,Id]] (* added 1999 November 16 based on CAP-CUP.NB *) composite[CAP,cross[inverse[S],inverse[S]]] := composite[inverse[S],CAP] (* added 1999 October 5 based on ASSOC.1 *) composite[CAP,cross[SINGLETON,SINGLETON]] := union[cart[Di,set[0]],composite[SINGLETON,inverse[DUP]]] (* Added 1999 August 14 on basis of CAP-CART.LOG session *) composite[CAP,DUP] := Id (* derived 2004 May 11 in CAP-CORE.NB *) composite[CAP,id[ACLOSURE]] := composite[FIRST,id[ACLOSURE]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CAP,id[ADJOIN[x_]]] := composite[FIRST,id[ADJOIN[x]]] (* added 1999 December 19 based on CAP.NB *) composite[CAP,id[cart[set[x_],y_]]] := composite[IMAGE[id[x]], id[intersection[y,image[V,set[x]]]],inverse[LEFT[x]]] (* based on 1999/DEC/16/CAP.NB *) composite[CAP,id[cart[x_,set[y_]]]] := composite[IMAGE[id[y]], id[intersection[x,image[V,set[y]]]],inverse[RIGHT[y]]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CAP,id[cart[x_,V]],inverse[FIRST]] := composite[inverse[S],id[x]] (* added 2002 October 22 based on CO-ID.NB *) composite[CAP,id[cart[V,V]]] := CAP (* added 1999 November 3 based on CURRY.NB *) composite[CAP,id[complement[cart[V,V]]]] := 0 (* added 2003 September 21 based on RFX-CORE.NB *) composite[CAP,id[composite[CART,DUP,IMAGE[inverse[DUP]]]],inverse[FIRST]] := CORE[RFX] (* added 2001 March 31 based on HF.NB *) composite[CAP,id[composite[POWER,HC]],inverse[FIRST]] := HC (* derived 2004 May 11 in CAP-CORE.NB *) composite[CAP,id[CORE[x_]]] := composite[SECOND,id[CORE[x]]] (* added 1999 October 30 based on IM-S-DJ.NB *) composite[CAP,id[DISJOINT]] := cart[DISJOINT,set[0]] (* added 2001 November 27 based on FUNPART1.NB *) composite[CAP,id[FUNPART]] := composite[SECOND,id[FUNPART]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CAP,id[HC]] := composite[SECOND,id[HC]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CAP,id[HULL[x_]]] := composite[FIRST,id[HULL[x]]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,id[Id]] := inverse[DUP] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CAP,id[IMAGE[id[x_]]]] := composite[SECOND,id[IMAGE[id[x]]]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CAP,id[IMAGE[inverse[S]]]] := composite[FIRST,id[IMAGE[inverse[S]]]] (* added 2001 October 30 based on SYM-CORE.NB *) composite[CAP,id[IMAGE[SWAP]],inverse[FIRST]] := CORE[SYM] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CAP,id[inverse[CORE[x_]]]] := composite[FIRST,id[inverse[CORE[x]]]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CAP,id[inverse[HC]]] := composite[FIRST,id[inverse[HC]]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CAP,id[inverse[IMAGE[id[x_]]]]] := composite[FIRST,id[inverse[IMAGE[id[x]]]]] (* added 2003 November 6 based on HULL-EQV.NB *) composite[CAP,id[INVERSE],inverse[FIRST]] := composite[CORE[SYM],id[P[cart[V,V]]]] (* added 1999 December 6 based on RESTRICT.NB *) composite[CAP,id[inverse[S]]] := composite[SECOND,id[inverse[S]]] (* added 2001 March 1 based on CAP-2ND.NB *) composite[CAP,id[x_],inverse[SECOND]] := composite[CAP,id[inverse[x]],inverse[FIRST]] (* derived 2004 May 9 in OOPART.NB *) composite[CAP,id[OOPART]] := composite[SECOND,id[OOPART]] (* added 1999 November 17 based on NEWRULES.1 *) composite[CAP,id[S]] := composite[FIRST,id[S]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CAP,id[TC]] := composite[FIRST,id[TC]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CAP,id[UCLOSURE]] := composite[FIRST,id[UCLOSURE]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],CUP]]] := CAP (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],DIF]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],FIRST]]] := CAP (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],SECOND]]] := CAP (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],SYMDIF]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],CUP], composite[inverse[SECOND],CAP]]] := CAP (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],CUP], composite[inverse[SECOND],DIF]]] := DIF (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],CUP], composite[inverse[SECOND],FIRST]]] := FIRST (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],CUP], composite[inverse[SECOND],SECOND]]] := SECOND (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],CUP], composite[inverse[SECOND],SYMDIF]]] := SYMDIF (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],CAP]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],CUP]]] := DIF (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],DIF,SWAP]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],FIRST]]] := DIF (* added 1999 December 9 based on BUILDCAP.NB *) composite[CAP,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],inverse[DUP]]]] := cart[Id,set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],SECOND]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],SYMDIF]]] := DIF (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],DIF,SWAP], composite[inverse[SECOND],DIF]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],FIRST], composite[inverse[SECOND],CAP]]] := CAP (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],FIRST], composite[inverse[SECOND],CUP]]] := FIRST (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],FIRST], composite[inverse[SECOND],DIF]]] := DIF (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],FIRST], composite[inverse[SECOND],SYMDIF]]] := DIF (* derived 2004 May 9 in OOPART.NB *) composite[CAP,intersection[composite[inverse[FIRST],FUNPART], composite[inverse[SECOND],IMAGE[SWAP],FUNPART,IMAGE[SWAP]]]] := OOPART (* added 2002 May 5 based on HULL.NB *) composite[CAP,intersection[composite[inverse[FIRST],HULL[x_]], composite[inverse[SECOND],HULL[y_]]]] := composite[HULL[union[x,y]], id[intersection[image[inverse[S],x],image[inverse[S],y]]]] (* added 2001 March 1 based on CO-INE.NB *) composite[CAP,intersection[composite[inverse[FIRST],IMAGE[id[x_]]], composite[inverse[SECOND],IMAGE[id[y_]]]]] := IMAGE[id[intersection[x,y]]] (* added 1999 December 9 based on BUILDCAP.NB *) composite[CAP,intersection[composite[inverse[FIRST],inverse[DUP]], composite[inverse[SECOND],DIF]]] := cart[Id,set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],SECOND], composite[inverse[SECOND],CAP]]] := CAP (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],SECOND], composite[inverse[SECOND],CUP]]] := SECOND (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],SECOND], composite[inverse[SECOND],DIF]]] := cart[cart[V,V],set[0]] (* added 1999 December 9 based on BUILDCAP.NB *) composite[CAP,intersection[composite[inverse[FIRST],SECOND], composite[inverse[SECOND],SYMDIF]]] := composite[DIF,SWAP] (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],SYMDIF], composite[inverse[SECOND],CAP]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],SYMDIF], composite[inverse[SECOND],CUP]]] := SYMDIF (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],SYMDIF], composite[inverse[SECOND],DIF]]] := DIF (* added 1999 December 8 based on BUILDALL.TXT *) composite[CAP,intersection[composite[inverse[FIRST],SYMDIF], composite[inverse[SECOND],FIRST]]] := DIF (* Inverse of Theorem CAPCUP-2 added 2000 July 24 *) composite[CAP,inverse[CUP]] := inverse[S] (* Theorem CAP1ST-2 in CAP proved 1999 August 14 *) composite[CAP,inverse[FIRST]] := inverse[S] (* added 2001 November 11 based on PAIRSET.NB *) composite[CAP,inverse[PAIRSET]] := composite[BIGCAP,id[range[PAIRSET]]] (* Theorem CAP2ND-2 in CAP proved 1999 August 14 *) composite[CAP,inverse[SECOND]] := inverse[S] (* added 1999 September 23 based on CAP-LOG.4 *) composite[CAP,LEFT[x_]] := composite[IMAGE[id[x]],id[image[V,set[x]]]] (* added 1999 September 23 based on CAP-LOG.3 *) composite[CAP,RIGHT[x_]] := composite[IMAGE[id[x]],id[image[V,set[x]]]] (* Theorem CAP-SW in CAP proved 1999 September 23 *) composite[CAP,SWAP] := CAP (* added 2001 December 10 based on CARD-ALL.NB *) composite[CARD,CARD] := CARD (* derived 2005 July 22 in CARD-MUL.NB *) composite[CARD,CART,id[cart[FINITE,FINITE]]] := composite[NATMUL,cross[CARD,CARD]] (* derived 2005 July 22 in CARD-MUL.NB *) composite[CARD,CART,id[cart[omega,omega]]] := NATMUL (* added 2003 December 9 based on ITER-K.NB *) composite[CARD,id[FINITE]] := composite[id[omega],CARD] (* added 2002 October 22 based on CO-ID.NB *) composite[CARD,id[image[Q,OMEGA]]] := CARD (* added 2002 May 28 based on CARD-OM.NB *) composite[CARD,id[omega]] := id[omega] (* derived 2004 January 10 in CARD-FUN.NB *) composite[CARD,IMAGE[DUP]] := CARD (* derived 2004 January 10 in CARD-FUN.NB *) composite[CARD,IMAGE[FIRST],FUNPART] := composite[CARD,FUNPART] (* derived 2004 January 10 in CARD-FUN.NB *) composite[CARD,IMAGE[FIRST],id[FUNS]] := composite[CARD,id[FUNS]] (* derived 2005 August 6 in CARD-NAT.NB *) composite[CARD,inverse[plus[x_]]] := inverse[plus[x]] (* derived 2005 November 4 in CARD-SU.NB *) composite[CARD,inverse[S],id[FINITE]] := composite[id[omega],inverse[S],id[omega],CARD] (* derived 2005 November 4 in CARD-SU.NB *) composite[CARD,inverse[S],id[omega]] := composite[id[omega],inverse[S],id[omega]] (* derived 2005 November 4 in CARD-SU.NB *) composite[CARD,inverse[S],inverse[CARD],id[omega]] := composite[id[omega],inverse[S],id[omega]] (* derived 2004 January 10 in CARD-FUN.NB *) composite[CARD,LAMBHULL] := composite[CARD,IMAGE[inverse[S]]] (* derived 2005 August 6 in CARD-NAT.NB *) composite[CARD,modulo[x_]] := modulo[x] (* derived 2005 August 6 in CARD-NAT.NB *) composite[CARD,NATADD] := NATADD (* derived 2005 August 6 in CARD-NAT.NB *) composite[CARD,NATMOD] := NATMOD (* derived 2005 August 6 in CARD-NAT.NB *) composite[CARD,NATMUL] := NATMUL (* derived 2004 January 10 in CARD-FUN.NB *) composite[CARD,PLUS] := cart[omega,set[omega]] (* derived 2005 August 6 in CARD-NAT.NB *) composite[CARD,plus[x_]] := plus[x] (* added 2001 December 14 based on CARD-Q.NB *) composite[CARD,Q] := CARD (* derived 2004 January 10 in CARD-FUN.NB *) composite[CARD,RCF] := composite[CARD,POWER] (* derived 2005 August 6 in CARD-NAT.NB *) composite[CARD,rotate[NATADD]] := rotate[NATADD] (* derived 2005 January 7 in CARD-ONE.NB *) composite[CARD,SINGLETON] := cart[V,set[set[0]]] (* derived 2005 August 6 in CARD-NAT.NB *) composite[CARD,times[x_]] := times[x] (* derived 2004 January 10 in CARD-FUN.NB *) composite[CARD,VS] := composite[CARD,IMAGE[FIRST]] (* Theorem CO-IM1 in CO3 *) composite[x_,cart[y_,z_]] := cart[y,image[x,z]] (* Theorem CO-IM1' in CO3 *) composite[cart[x_,y_],z_] := cart[image[inverse[z],x],y] (* added 1999 October 5 based on SGIMCPSS.LOG *) composite[CART,cross[SINGLETON,SINGLETON]] := composite[SINGLETON,id[cart[V,V]]] (* added 2000 January 3 based on CART-DUP.NB *) composite[CART,DUP,SINGLETON] := composite[SINGLETON,DUP] (* added 1999 November 6 based on CART-OO.NB *) composite[CART,id[cart[complement[set[0]],complement[set[0]]]]] := composite[id[complement[set[0]]],CART] (* discovered 1999 December 16 in CART.NB *) composite[CART,id[cart[set[x_],y_]]] := composite[IMAGE[composite[id[cart[x,V]],inverse[SECOND]]],id[y], inverse[LEFT[x]]] (* discovered 1999 December 16 in CART.NB *) composite[CART,id[cart[x_,set[y_]]]] := composite[IMAGE[composite[id[cart[V,y]],inverse[FIRST]]],id[x], inverse[RIGHT[y]]] (* added 2002 October 22 based on CO-ID.NB *) composite[CART,id[cart[V,V]]] := CART (* added 1999 November 9 based on CART-CUR.NB *) composite[CART,LEFT[x_]] := composite[IMAGE[composite[id[cart[x,V]],inverse[SECOND]]],id[image[V,set[x]]]] (* added 1999 November 9 based on CART-CUR.NB *) composite[CART,RIGHT[x_]] := composite[IMAGE[composite[id[cart[V,x]],inverse[FIRST]]],id[image[V,set[x]]]] (* derived 2005 August 1 in CATOFUNS.NB *) composite[CATOFUNS,cross[Id,CATOFUNS],ASSOC] := composite[CATOFUNS,cross[CATOFUNS,Id]] (* derived 2005 August 1 in CATOFUNS.NB *) composite[CATORELN,cross[Id,CATORELN],ASSOC] := composite[CATORELN,cross[CATORELN,Id]] (* derived 2005 July 30 in CATORELN.NB *) composite[CATORELN,id[cart[cart[FUNS,V],cart[FUNS,V]]]] := CATOFUNS (* added 2001 April 30 based on CLIQUES2.NB *) composite[CLIQUES,CAP] := composite[CAP,cross[CLIQUES,CLIQUES]] (* added 2001 April 30 based on CLIQUES2.NB *) composite[CLIQUES,CART] := composite[CAP,cross[POWER,POWER]] (* added 2001 April 30 based on CLIQUES3.NB *) composite[CLIQUES,IMAGE[DUP]] := composite[ADJOIN[set[0]],IMAGE[SINGLETON]] (* added 2001 April 30 based on CLIQUES4.NB *) composite[CLIQUES,IMAGE[id[x_]]] := composite[IMAGE[id[cliques[x]]],CLIQUES] (* added 2001 April 30 based on CLIQUES2.NB *) composite[CLIQUES,IMAGE[SWAP]] := CLIQUES (* added 2001 April 30 based on CLIQUES2.NB *) composite[CLIQUES,INVERSE] := composite[CLIQUES,id[P[cart[V,V]]]] (* added 2003 July 4 based on COARSER.NB *) composite[COARSER,COARSER] := COARSER (* added 2003 July 4 based on COARSER.NB *) composite[COARSER,E] := E (* derived 2003 December 31 in COARSER.NB *) composite[COARSER,inverse[BIGCUP]] := inverse[BIGCUP] (* derived 2003 December 31 in COARSER.NB *) composite[COARSER,POWER] := POWER (* added 2003 July 4 based on COARSER.NB *) composite[COARSER,S] := S (* added 2001 December 26 based on COMMUTE.NB *) composite[COMMUTE,COMMUTE] := cart[V,V] (* added 2003 January 30 *) composite[COMMUTE,complement[E]] := cart[V,V] (* added 2003 January 30 *) composite[COMMUTE,complement[S]] := cart[complement[set[0]],V] (* added 2003 October 21 based on COMMUTE.NB *) composite[COMMUTE,DISJOINT] := cart[V,V] (* derived 2004 December 21 in COMUTANT.NB *) composite[COMMUTE,IMAGE[DUP]] := intersection[composite[inverse[IMAGE[SWAP]],inverse[INVAR]],inverse[INVAR]] (* added 2001 May 18 based on COMMUTE5.NB *) composite[COMMUTE,IMAGE[id[cart[V,V]]]] := COMMUTE (* added 2003 October 21 based on COMMUTE.NB *) composite[COMMUTE,inverse[S]] := cart[V,V] (* Theorem ID-C-CP1 in ID-CO proved 1998 November 19 *) composite[w_,complement[cart[x_,y_]]] := union[cart[V,image[w,complement[y]]], cart[complement[x],range[w]]] (* Theorem ID-C-CP2 in ID-CO proved 1998 November 19 *) composite[complement[cart[x_,y_]],z_] := union[cart[domain[z],complement[y]], cart[image[inverse[z],complement[x]],V]] (* derived 2004 February 17 in SU-IM-C.NB *) composite[complement[x_],complement[composite[complement[inverse[x_]],UB[x_]]]] := composite[complement[x],inverse[E]] (* added 2002 November 14 based on POW-SUC.NB *) composite[complement[composite[Di,SECOND, GREATEST[complement[cross[SUCC,SUCC]]]]], id[intersection[P[cart[omega,V]], subvar[union[cross[SUCC,SUCC],id[cart[set[0],V]]]]]],E] := rotate[composite[inverse[power[SUCC]],SWAP]] (* added 2002 November 13 based on NORM-ADD.NB *) composite[complement[composite[Di,SECOND,GREATEST[complement[cross[SUCC,SUCC]]]]], id[intersection[P[cart[omega,V]],subvar[union[cross[SUCC,SUCC], id[cart[set[0],V]]]]]],inverse[IMAGE[id[cart[V,omega]]]], inverse[IMAGE[SWAP]],E] := rotate[NATADD] (* added 2001 July 8 based on TAKEAWAY.NB *) composite[complement[composite[E,x_]]] := inverse[LB[complement[x]]] (* added 2001 July 8 based on ZN-2.NB *) composite[complement[composite[x_,inverse[E]]]] := UB[complement[x]] (* derived 2005 January 29 in DIV.NB *) composite[complement[DIV],inverse[DIV]] := composite[complement[DIV],id[omega]] (* added 1999 October 23 based on VS-S-LOG.2 but later removed composite[complement[E],x_] := union[cart[complement[domain[VERTSECT[x]]],V], composite[complement[S],VERTSECT[x]]] *) (* Theorem E-C-E-C in E-C proved 1999 March 26 *) composite[complement[E],complement[E]] := cart[V,V] (* Theorem E-C-C-IN in E-C proved 1998 September 4 *) composite[complement[E],complement[inverse[E]]] := cart[V,V] (* added 1998 August 23 on basis of ASSOC-3.LOG *) composite[complement[E],complement[inverse[S]]] := cart[V,V] (* 1999 March 25 session E-C-S-CO.LOG *) composite[complement[E],complement[S]] := cart[complement[set[0]],V] (* added 1999 October 5 based on CART.2 *) composite[complement[E],cross[inverse[E],inverse[E]]] := composite[complement[S],CART] (* Theorem E-C-DI-2 proved 1998 November 11 *) composite[complement[E],Di] := cart[V,V] (* added 1999 October 23 based on E-CO-DJT *) composite[complement[E],DISJOINT] := cart[V,V] (* added 1999 October 29 based on 1999 October 28 FIX-IDP.LOG *) composite[complement[E],DUP] := composite[inverse[IMAGE[inverse[DUP]]],complement[E]] (* Theorem SP-E-C-E in SP3 proved 1999 January 19 *) composite[complement[E],E] := cart[V,V] (* added 2002 February 4 based on RCF-NORM.NB *) composite[complement[E],id[DISJOINT],inverse[CUP]] := composite[complement[S],RCF] (* added 2001 March 31 based on HF-AGAIN.NB *) composite[complement[E],intersection[composite[inverse[S],HC],inverse[E]]] := composite[complement[S],HC] (* added 2002 April 10 based on INVAR.NB *) composite[complement[E],INVAR] := cart[V,V] (* Theorem SR-C-CO2 in SR/C *) composite[complement[E],inverse[E]] := composite[Id,complement[S]] (* added 2000 November 7 based on IMAGE.NB *) composite[complement[E],x_,inverse[E]] := union[cart[complement[P[domain[VERTSECT[x]]]],V], composite[complement[S],IMAGE[x]]] (* added 2000 August 9 based on DOROTEST.NB *) composite[complement[E],inverse[FIRST]] := cart[V,V] (* added 1999 October 17 based on STRANGE.2 *) composite[complement[E],inverse[PAIRSET],inverse[S]] := composite[complement[S],CART,DUP] (* Theorem POW-SR-C in POW3 proved 1998 November 21 *) composite[complement[E],inverse[S]] := composite[complement[S],POWER] (* added 2000 August 9 based on DOROTEST.NB *) composite[complement[E],inverse[SECOND]] := cart[V,V] (* Theorem AP-SG-C5 in AP2 proved 1998 November 20 *) composite[complement[E],inverse[SINGLETON]] := composite[complement[S],id[range[SINGLETON]]] (* added 2000 May 24 based on VS-K.NB *) composite[complement[E],K] := cart[V,V] (* added 1999 October 23 based on VS-S-LOG.2 *) composite[complement[E],PS] := cart[V,V] (* derived 2004 December 31 in IN-RK.NB *) composite[complement[E],RANK] := composite[inverse[IMAGE[inverse[RANK]]],complement[E],id[REGULAR]] (* added 2002 November 24 based on CHAL.NB *) composite[complement[E],rotate[E]] := composite[complement[S],IMG,cross[Id,SINGLETON]] (* 1999 March 25 session YET-MORE.LOG *) composite[complement[E],S] := cart[V,V] (* added 2000 September 12 based on CHAL-IMG.NB *) composite[complement[E],SWAP,inverse[rotate[composite[IMG,SWAP]]]] := cart[V,V] (* added 2003 July 5 based on PLUS-ISO.NB *) composite[complement[E],SWAP,inverse[rotate[NATADD]]] := composite[complement[S],PLUS] (* added 2002 November 16 based on EQUIDIFF.NB *) composite[complement[EQUIDIFF],EQUIDIFF] := composite[complement[EQUIDIFF],id[cart[omega,omega]]] (* derived 2004 June 6 in EQV-C.NB *) composite[complement[eqv[x_]],eqv[x_]] := composite[complement[eqv[x]],id[fix[eqv[x]]]] (* added 2002 November 12 based on VS-RULES.NB *) composite[complement[IMAGE[x_]],id[P[domain[VERTSECT[x_]]]]] := composite[Di,IMAGE[x]] (* discovered 1998 October 27 in SESSION6.LOG *) composite[complement[image[V,x_]],y_] := cart[domain[y],complement[image[V,x]]] (* discovered 1998 October 27 in SESSION6.LOG *) composite[x_,complement[image[V,y_]]] := cart[V,intersection[complement[image[V,y]],range[x]]] (* added 2003 June 23 based on INVAR.NB *) composite[complement[INVAR],CART] := intersection[composite[complement[S],SECOND],composite[E,inverse[E],FIRST]] (* added 2002 June 23 based on INVARTRV.NB *) composite[complement[INVAR],HULL[TRV],inverse[S]] := composite[Id,complement[INVAR]] (* added 2002 April 10 based on INVAR.NB *) composite[complement[INVAR],inverse[E]] := composite[complement[INVAR],BIGCUP] (* derived 2004 January 22 in INVAR.NB *) composite[complement[INVAR],inverse[S]] := composite[Id,complement[INVAR]] (* added 2003 June 23 based on INVAR.NB *) composite[complement[INVAR],SINGLETON,DUP] := 0 (* added 2003 June 23 based on INVAR.NB *) composite[complement[INVAR],SINGLETON,inverse[FIRST]] := E (* added 2003 June 23 based on INVAR.NB *) composite[complement[INVAR],SINGLETON,inverse[SECOND]] := composite[id[complement[set[0]]],complement[E]] (* added 2003 June 23 based on INVAR.NB *) composite[complement[INVAR],SINGLETON,cross[Id,E]] := composite[E,FIRST] (* derived 2004 February 17 in SU-IM-C.NB *) composite[complement[inverse[x_]],complement[composite[complement[x_],LB[x_]]]] := composite[complement[inverse[x]],inverse[E]] (* derived 2005 January 29 in DIV.NB *) composite[complement[inverse[DIV]],DIV] := composite[complement[inverse[DIV]],id[omega]] (* derived 2004 December 24 in A.NB *) composite[complement[inverse[E]],BIGCAP,inverse[LB[x_]]] := composite[complement[inverse[E]],x] (* derived 2004 December 24 in A.NB *) composite[complement[inverse[E]],BIGCAP,inverse[UB[x_]]] := composite[complement[inverse[E]],inverse[x]] (* derived 2004 December 24 in A.NB *) composite[complement[inverse[E]],BIGCUP,inverse[LB[x_]]] := cart[V,V] (* derived 2004 December 24 in A.NB *) composite[complement[inverse[E]],BIGCUP,inverse[UB[x_]]] := cart[V,V] (* added 1999 October 5 based on CAP-SR.2 *) composite[complement[inverse[E]],CAP] := union[composite[complement[inverse[E]],FIRST], composite[complement[inverse[E]],SECOND]] (* added 1999 October 5 based on CART.1 *) composite[complement[inverse[E]],CART] := union[cart[cart[V,V],complement[cart[V,V]]], composite[inverse[FIRST],complement[inverse[E]],FIRST], composite[inverse[SECOND],complement[inverse[E]],SECOND]] (* added 2003 January 30 *) composite[complement[inverse[E]],COMMUTE] := cart[V,V] (* Theorem E-C-IN-C in E2 proved 1998 September 4 *) composite[complement[inverse[E]],complement[E]] := cart[V,V] (* Added 2000 September 26 based on VERTSECT.NB *) composite[complement[inverse[E]],complement[inverse[E]]] := cart[V,V] composite[complement[inverse[E]],complement[inverse[S]]] := cart[V,V] (* added 2000 December 16 based on Q-CA.NB *) composite[complement[inverse[E]],complement[Q]] := cart[V,V] (* Theorem E-C-IN-S in E2 proved 1998 November 21 *) composite[complement[inverse[E]],complement[S]] := cart[complement[set[0]],V] (* 1998 August 25 *) composite[complement[inverse[E]],Di] := cart[V,V] (* added 1999 October 26 based on DIF-LOG.3 *) composite[complement[inverse[E]],DIF] := union[composite[complement[inverse[E]],FIRST],composite[inverse[E],SECOND]] (* inverse of Theorem DJT-E-C in DJT *) composite[complement[inverse[E]],DISJOINT] := cart[V,V] (* derived 2005 May 5 in S-DIV.NB *) composite[complement[inverse[E]],DIV] := cart[omega,V] (* Theorem DI-CO-E1 in DI added 1998 July 2 *) composite[complement[inverse[E]],E] := Di (* added 2003 April 1 based on HULL.NB *) composite[complement[inverse[E]],HULL[x_],S] := composite[complement[inverse[E]],HULL[x]] (* added 2003 May 31 based on IMAGE-DJ.NB *) composite[complement[inverse[E]],id[x_],complement[E]] := composite[inverse[E],id[image[DISJOINT,x]],E] (* added 2001 January 1 based on TC-1.NB *) composite[complement[inverse[E]],id[FULL],E] := composite[complement[inverse[E]],TC,SINGLETON] (* derived 2005 May 17 in S-OM-C-E.NB *) composite[complement[inverse[E]],id[omega],inverse[S]] := cart[V,V] (* added 2001 December 2 based on CARD-FUN.NB *) composite[complement[inverse[E]],id[OMEGA],Q] := composite[complement[inverse[E]],CARD] (* added 2003 June 18 based on CUT-CORE.NB *) composite[complement[inverse[E]],id[P[x_]],DISJOINT] := cart[V,V] (* added 2003 June 23 based on DI-RULES.NB *) composite[complement[inverse[E]],id[P[x_]],E] := composite[Di,id[x]] (* added 2001 May 2 based on COREHULL.NB *) composite[complement[inverse[E]],id[x_],S] := composite[complement[inverse[E]],HULL[x]] (* added 2000 January 10 based on PC-U.NB *) composite[complement[inverse[E]],id[range[POWER]]] := composite[complement[inverse[S]],inverse[POWER]] (* derived 2003 December 30 in T2.NB *) composite[complement[inverse[E]],id[Uclosure[x_]],complement[inverse[S]]] := composite[complement[inverse[E]],id[x],complement[inverse[S]]] (* derived 2003 December 30 in T2.NB *) composite[complement[inverse[E]],id[Uclosure[x_]],E] := composite[complement[inverse[E]],id[x],E] (* derived 2004 May 14 in REPLACE.NB *) composite[complement[inverse[E]],IMAGE[x_],E] := composite[complement[x],id[domain[VERTSECT[x]]]] (* added 2001 February 27 based on STUDY.NB *) composite[complement[inverse[E]],IMAGE[id[x_]]] := union[cart[V,complement[x]],composite[Id,complement[inverse[E]]]] (* added 2003 October 15 based on ACYCLIC.NB *) composite[complement[inverse[E]],IMAGE[inverse[DUP]],id[TRV],S] := composite[complement[inverse[E]],IMAGE[inverse[DUP]],HULL[TRV]] (* added 2003 October 7 based on WF-IND.NB *) composite[complement[inverse[E]],IMAGE[SWAP],id[TRV],S] := composite[complement[inverse[E]],INVERSE,HULL[TRV]] (* added 2002 April 10 based on INVAR.NB *) composite[complement[inverse[E]],INVAR] := cart[V,V] (* Theorem BA-E-IN3 in BIGCAP/BA1 proved 1998 December 8 *) composite[complement[inverse[E]],inverse[E]] := composite[complement[inverse[E]],BIGCAP] (* derived 2004 December 24 in A.NB *) composite[complement[inverse[E]],inverse[LB[x_]]] := cart[V,V] (* derived 2004 December 24 in A.NB *) composite[complement[inverse[E]],inverse[UB[x_]]] := cart[V,V] (* discovered 1999 December 20 in CANCEL.NB *) composite[complement[inverse[E]],inverse[POWER],S] := composite[complement[inverse[E]],BIGCUP] (* added 1998 July 31 *) composite[complement[inverse[E]],inverse[S]] := cart[V,V] (* derived 2004 December 22 in UCL-COMT.NB *) composite[complement[inverse[E]],LB[LB[x_]]] := cart[V,V] (* derived 2004 December 22 in UCL-COMT.NB *) composite[complement[inverse[E]],LB[UB[x_]]] := cart[V,V] (* Theorem POW-CO5 in POW3 proved 1998 November 12 *) composite[complement[inverse[E]],POWER] := composite[Id,complement[inverse[S]]] (* added 2000 May 9 based on Q-C-E.NB *) composite[complement[inverse[E]],Q] := cart[V,V] (* derived 2004 August 10 in RS-3.NB *) composite[complement[inverse[E]],RESTRICT] := cart[V,V] (* derived 2005 May 17 based on NATMOD.NB *) composite[complement[inverse[E]],rotate[composite[inverse[DIV],rotate[NATADD]]]] := composite[complement[inverse[E]],NATMOD,SWAP] (* derived 2005 May 17 based on NATMOD.NB *) composite[complement[inverse[E]],rotate[NATADD],cross[Id,DIV]] := composite[complement[inverse[E]],NATMOD] (* added 1998 August 23 *) composite[complement[inverse[E]],S] := composite[Id,complement[inverse[E]]] (* derived 2005 July 18 in MODULO.NB *) composite[complement[inverse[E]],SECOND,id[cart[image[DIV,set[x_]],V]],inverse[NATADD]] := composite[complement[inverse[E]],modulo[x]] (* derived 2004 May 14 in REPLACE.NB *) composite[complement[inverse[E]],VERTSECT[x_]] := composite[complement[x],id[domain[VERTSECT[x]]]] (* added 2001 July 14 based on ZN-IMG.NB *) composite[complement[inverse[E]],ZN] := cart[V,V] (* added 2003 May 10 based on APPLY.NB *) composite[complement[inverse[E]],rotate[E]] := composite[complement[inverse[E]],BIGCAP,IMG,cross[Id,SINGLETON]] (* Theorem AP-SG-C2 proved 1998 September 7 *) composite[complement[inverse[E]],SINGLETON] := Di (* added 2003 January 30 *) composite[complement[inverse[E]],SUBCOMMUTE] := cart[V,V] (* added 2000 August 16 based on DIF.NB *) composite[complement[inverse[E]],SYMDIF] := union[composite[complement[inverse[E]],CUP],composite[inverse[E],CAP]] (* added 2002 May 18 based on FUNPART.NB *) composite[complement[inverse[image[inverse[IMG],range[SINGLETON]]]],SINGLETON] := composite[inverse[FUNPART],inverse[IMAGE[FIRST]],complement[E]] (* added 2002 May 18 based on FUNPART.NB *) composite[complement[inverse[image[inverse[IMG],range[SINGLETON]]]],inverse[E],IMAGE[SINGLETON]] := composite[inverse[FUNPART],inverse[IMAGE[FIRST]],complement[S]] (* derived 2005 October 1 in PO-WRAP.NB *) composite[complement[inverse[po[x_]]],po[x_]] := composite[complement[inverse[po[x]]],id[fix[po[x]]]] (* derived 2004 December 17 in RFXTRV-C.NB *) composite[complement[inverse[rfx[trv[x_]]]],rfx[trv[x_]]] := composite[complement[inverse[rfx[trv[x]]]],id[fix[trv[x]]]] (* added 2003 January 30 *) composite[complement[inverse[S]],COMMUTE] := cart[V,complement[set[0]]] (* Theorem ID-SR-E in ID-CO proved 1998 November 28 *) composite[complement[inverse[S]],complement[E]] := cart[V,complement[set[0]]] (* 1999 March 25 session CO-C-NEW.LOG *) composite[complement[inverse[S]],complement[inverse[E]]] := cart[V,complement[set[0]]] composite[complement[inverse[S]],complement[inverse[S]]] := cart[V,complement[set[0]]] (* added 2000 December 16 based on Q-CA.NB *) composite[complement[inverse[S]],complement[Q]] := cart[V,complement[set[0]]] (* Theorem ID-SR-C in ID-CO proved 1998 November 28 *) composite[complement[inverse[S]],complement[S]] := cart[complement[set[0]],complement[set[0]]] (* added 1999 October 6 based on CAP-CUP.LOG *) composite[complement[inverse[S]],CAP] := union[composite[complement[inverse[S]],FIRST], composite[complement[inverse[S]],SECOND]] (* 1998 August 25 *) composite[complement[inverse[S]],Di] := cart[V,complement[set[0]]] (* added 1999 October 26 based on DIF-LOG.3 *) composite[complement[inverse[S]],DIF] := union[composite[complement[inverse[S]],FIRST], composite[E,inverse[E],SECOND]] (* inverse of rule found in TEST1.LOG *) composite[complement[inverse[S]],DISJOINT] := cart[V,complement[set[0]]] (* derived 2005 May 5 in S-DIV.NB *) composite[complement[inverse[S]],DIV] := cart[omega,complement[set[0]]] (* added 1998 August 23 *) composite[complement[inverse[S]],E] := composite[complement[inverse[S]],SINGLETON] (* added 2003 February 20 based on HULL-S.NB *) composite[complement[inverse[S]],HULL[x_],S] := composite[complement[inverse[S]],HULL[x]] (* added 2001 December 2 based on CARD-FUN.NB *) composite[complement[inverse[S]],id[OMEGA],Q] := composite[complement[inverse[S]],CARD] (* added 2001 May 2 based on COREHULL.NB *) composite[complement[inverse[S]],id[x_],S] := composite[complement[inverse[S]],HULL[x]] (* derived 2003 December 30 in T2.NB *) composite[complement[inverse[S]],id[Uclosure[x_]],complement[inverse[S]]] := composite[complement[inverse[S]],id[x],complement[inverse[S]]] (* derived 2003 December 30 in T2.NB *) composite[complement[inverse[S]],id[Uclosure[x_]],E] := composite[complement[inverse[S]],id[x],E] (* added 2002 April 10 based on INVAR-S.NB *) composite[complement[inverse[S]],INVAR] := cart[V,complement[set[0]]] (* Theorem BA-SR-C2 in BIGCAP/BA1 proved 1998 December 8 *) composite[complement[inverse[S]],inverse[E]] := composite[complement[inverse[S]],BIGCAP] (* added 2003 May 31 based on CUT-CO.NB *) composite[complement[inverse[S]],inverse[IMAGE[id[x_]]]] := composite[complement[inverse[S]],id[P[x]]] (* added 2000 January 10 based on PC-U.NB *) composite[complement[inverse[S]],inverse[POWER],S] := composite[complement[inverse[S]],BIGCUP] (* added 2003 May 31 based on RS-CO.NB *) composite[complement[inverse[S]],inverse[RESTRICT]] := composite[complement[inverse[S]],id[P[cart[V,V]]]] (* added 1998 July 31 *) composite[complement[inverse[S]],inverse[S]] := cart[V,complement[set[0]]] (* added 2000 May 9 based on Q-C-E.NB *) composite[complement[inverse[S]],Q] := cart[V,complement[set[0]]] (* added 2003 May 31 based on RS-CO.NB *) composite[complement[inverse[S]],RESTRICT] := cart[V,complement[set[0]]] (* Theorem SR-C-CO3 in SR/C *) composite[complement[inverse[S]],S] := composite[Id,complement[inverse[S]]] (* added 2003 January 30 *) composite[complement[inverse[S]],SUBCOMMUTE] := cart[V,complement[set[0]]] (* added 2000 August 16 based on SYMDIF.NB *) composite[complement[inverse[S]],SYMDIF] := union[composite[complement[inverse[S]],CUP],composite[E,inverse[E],CAP]] (* derived 2004 May 14 in REPLACE.NB *) composite[complement[inverse[S]],VERTSECT[x_]] := composite[E,complement[x],id[domain[VERTSECT[x]]]] (* derived 2005 January 29 in TRV-RFX.NB *) composite[complement[inverse[trv[rfx[x_]]]],trv[rfx[x_]]] := composite[complement[inverse[trv[rfx[x]]]],id[fix[x]]] (* added 2001 July 8 based on TAKEAWAY.NB *) composite[complement[omega]] := cart[V,V] (* added 2001 July 8 based on TAKEAWAY.NB *) composite[complement[OMEGA]] := cart[V,V] (* derived 2005 October 1 in PO-WRAP.NB *) composite[complement[po[x_]],inverse[po[x_]]] := composite[complement[po[x]],id[fix[po[x]]]] (* added 2000 December 16 based on Q-CA.NB *) composite[complement[Q],complement[E]] := cart[V,V] (* added 2000 December 16 based on Q-CA.NB *) composite[complement[Q],complement[S]] := cart[complement[set[0]],V] (* added 2000 December 16 based on Q-CA.NB *) composite[complement[Q],DISJOINT] := cart[V,V] (* Theorem Q-C-CO-2 in Q proved 2000 May 7 *) composite[complement[Q],Q] := composite[Id,complement[Q]] (* discovered 2000 May 7 in Q-CO.NB *) composite[complement[Q],SINGLETON] := cart[V,complement[range[SINGLETON]]] (* derived 2004 December 17 in RFXTRV-C.NB *) composite[complement[rfx[trv[x_]]],inverse[rfx[trv[x_]]]] := composite[complement[rfx[trv[x]]],id[fix[trv[x]]]] (* revised 1999 December 19 based on REVISED.NB *) composite[complement[S],ADJOIN[x_]] := union[cart[V, intersection[complement[image[S,set[x]]],image[V,set[x]]]], composite[complement[S],id[image[V,set[x]]]]] (* Theorem IMG-BC-8 in IMG4 proved 1998 November 21 *) composite[complement[S],BIGCUP] := composite[inverse[POWER],complement[S]] (* Theorem E-C-SR in E-C proved 1998 November 19 *) composite[complement[S],complement[E]] := cart[V,V] (* added 1998 August 23 on basis of ASSOC-3.LOG *) composite[complement[S],complement[inverse[E]]] := cart[V,V] (* Theorem SR-C-IN in SR-C proved 1998 November 21 *) composite[complement[S],complement[inverse[S]]] := cart[V,V] (* Theorem SR-C-SR in SR-C proved 1998 November 21 *) composite[complement[S],complement[S]] := cart[complement[set[0]],V] (* added 1999 October 6 based on CAP-CUP.LOG *) composite[complement[S],CUP] := union[composite[complement[S],FIRST],composite[complement[S],SECOND]] (* Theorem SR-C-DI1 in SR-C proved 1998 November 28 *) composite[complement[S],Di] := cart[V,V] (* Theorem SR-C-DJT in SR-C proved 1998 December 6 *) composite[complement[S],DISJOINT] := cart[V,V] (* Theorem RUS-CO-2 in RUS2 *) composite[complement[S],E] := cart[V,V] (* added 2001 May 2 based on COREHULL.NB *) composite[complement[S],id[x_],inverse[S]] := composite[complement[S],CORE[x]] (* added 2002 March 12 based on TRV.NB *) composite[complement[S],id[TRV],S] := cart[P[cart[V,V]],V] (* derived 2003 December 30 in T2.NB *) composite[complement[S],id[Uclosure[x_]],complement[E]] := composite[complement[S],id[x],complement[E]] (* derived 2003 December 30 in T2.NB *) composite[complement[S],id[Uclosure[x_]],complement[S]] := composite[complement[S],id[x],complement[S]] (* added 2002 May 16 based on IVR-NEW.NB *) composite[complement[S],IMG,id[cart[x_,y_]],inverse[SECOND]] := union[cart[intersection[y,complement[P[domain[VERTSECT[U[x]]]]]],V], composite[complement[S],IMAGE[U[x]],id[y]]] (* added 2003 January 25 based on INVAR.NB *) composite[complement[S],INVAR] := cart[V,V] (* Theorem BA-5B in BIGCAP/BA1 proved 1998 December 14 *) composite[complement[S],inverse[BIGCAP]] := composite[complement[E],S] (* Theorem POW-BC-C in POW3 proved 1998 November 21 *) composite[complement[S],inverse[BIGCUP]] := composite[complement[S],POWER] (* Theorem POW-CO6 in POW3 proved 1998 November 21 *) composite[complement[S],inverse[E]] := composite[inverse[POWER],complement[S]] (* added 2003 May 31 based on CUT-CO.NB *) composite[complement[S],inverse[IMAGE[id[x_]]],S] := cart[P[x],V] (* derived 2004 January 29 in UB-LB-CO.NB *) composite[complement[S],inverse[LB[x_]]] := composite[complement[E],x] (* Theorem SR-C-CO6 in SR/C *) composite[complement[S],inverse[S]] := composite[Id,complement[S]] (* derived 2004 January 29 in UB-LB-CO.NB *) composite[complement[S],inverse[UB[x_]]] := composite[complement[E],inverse[x]] (* Theorem SR-C-K in SR/C proved 2000 May 24 *) composite[complement[S],K] := cart[V,V] (* added 1999 October 6 based on PAIRSET.1 *) composite[complement[S],PAIRSET] := union[composite[complement[E],FIRST],composite[complement[E],SECOND]] (* added 1998 August 9 *) composite[complement[S],PS] := cart[V,V] (* added 2003 May 31 based on RS-CO.NB *) composite[complement[S],RESTRICT] := composite[complement[S],IMAGE[id[cart[V,V]]]] (* Theorem RUS-CO-1 in RUS2 *) composite[complement[S],S] := cart[V,V] (* Theorem AP-SG-C3 in AP2 *) composite[complement[S],SINGLETON] := composite[Id,complement[E]] (* derived 2004 May 14 in REPLACE.NB *) composite[complement[S],VERTSECT[x_]] := composite[complement[E],thinpart[x]] (* added 2001 July 8 based on TAKEAWAY.NB *) composite[complement[set[0]]] := cart[V,V] (* derived 2005 January 29 in TRV-RFX.NB *) composite[complement[trv[rfx[x_]]],inverse[trv[rfx[x_]]]] := composite[complement[trv[rfx[x]]],id[fix[x]]] (* derived 2004 December 12 in RESTRICT.NB *) image[COMPOSE,cart[ACYCLIC,P[Id]]] := ACYCLIC (* derived 2004 December 12 in RESTRICT.NB *) image[COMPOSE,cart[ANTISYM,P[Id]]] := ANTISYM (* derived 2004 December 12 in RESTRICT.NB *) image[COMPOSE,cart[BIJ,P[Id]]] := BIJ (* derived 2004 December 12 in RESTRICT.NB *) image[COMPOSE,cart[cliques[x_],P[Id]]] := intersection[cliques[x],P[cart[V,V]]] (* derived 2004 December 12 in RESTRICT.NB *) image[COMPOSE,cart[FINITE,P[Id]]] := intersection[FINITE,P[cart[V,V]]] (* derived 2004 December 12 in RESTRICT.NB *) image[COMPOSE,cart[image[inverse[S],x_],P[Id]]] := intersection[image[inverse[S],x],P[cart[V,V]]] (* derived 2004 December 12 in RESTRICT.NB *) image[COMPOSE,cart[REGULAR,P[Id]]] := P[cart[REGULAR,REGULAR]] (* derived 2004 December 12 in RESTRICT.NB *) image[COMPOSE,cart[TRV,P[Id]]] := TRV (* derived 2004 December 12 in RESTRICT.NB *) image[COMPOSE,cart[WF,P[Id]]] := WF (* added 2003 May 30 based on RESTRICT.NB *) composite[COMPOSE,cross[composite[COMPOSE,cross[Id,IMAGE[DUP]]],IMAGE[DUP]]] := composite[COMPOSE,cross[Id,composite[CAP,cross[IMAGE[DUP],IMAGE[DUP]]]],ASSOC] (* added 2000 September 7 based on CUT.NB *) composite[COMPOSE,cross[x_,composite[IMAGE[id[cart[V,V]]],y_]]] := composite[COMPOSE,cross[x,y]] (* added 2000 September 7 based on CUT.NB *) composite[COMPOSE,cross[composite[IMAGE[id[cart[V,V]]],x_],y_]] := composite[COMPOSE,cross[x,y]] (* added 1999 December 21 based on CROSCOMP.NB *) composite[COMPOSE,cross[CROSS,CROSS]] := composite[CROSS,cross[COMPOSE,COMPOSE],TWIST] (* revised 1999 December 15 based on CHECK-C3.TXT *) composite[COMPOSE,cross[Id,CART]] := composite[CART,SWAP,cross[IMG,Id],inverse[ASSOC],cross[Id,SWAP]] (* added 1999 December 4 based on COMPOSE.NB *) composite[COMPOSE,cross[Id,COMPOSE],ASSOC] := composite[COMPOSE,cross[COMPOSE,Id]] (* discovered 1999 December 13 in NEWIDEAS.NB *) composite[COMPOSE,cross[IMAGE[DUP],IMAGE[DUP]]] := composite[IMAGE[DUP],CAP] (* added 1999 December 25 based on COMPOSE3.NB *) composite[COMPOSE,cross[IMAGE[id[cart[V,V]]],x_]] := composite[COMPOSE,cross[Id,x]] (* added 1999 December 25 based on COMPOSE3.NB *) composite[COMPOSE,cross[x_,IMAGE[id[cart[V,V]]]]] := composite[COMPOSE,cross[x,Id]] (* added 1999 December 14 based on COMPOSE2.NB *) composite[COMPOSE,cross[CART,IMAGE[SWAP]]] := composite[CART,cross[IMG,Id],ROT] (* derived 2004 December 10 in DIV-TRV.NB *) composite[COMPOSE,cross[COMPOSE,Id],inverse[ASSOC]] := composite[COMPOSE,cross[Id,COMPOSE]] (* added 2002 December 18 based on CPS-PLUS.NB *) composite[COMPOSE,cross[composite[INVERSE,PLUS],PLUS]] := composite[VERTSECT[EQUIDIFF],id[cart[omega,omega]]] (* derived 2004 December 19 in QO-IDEM.NB *) composite[COMPOSE,DUP,CORE[RFX],HULL[TRV]] := composite[CORE[RFX],HULL[TRV]] (* derived 2004 May 12 in EQUIV.NB *) composite[COMPOSE,DUP,EQUIV] := EQUIV (* derived 2004 December 19 in QO-IDEM.NB *) composite[COMPOSE,DUP,id[intersection[RFX,TRV]]] := id[intersection[RFX,TRV]] (* added 2002 April 4 based on IDP.NB *) composite[COMPOSE,DUP,IMAGE[DUP]] := IMAGE[DUP] (* added 2001 January 28 based on GENERAL.NB *) composite[COMPOSE,DUP,IMAGE[id[cart[V,V]]]] := composite[COMPOSE,DUP] (* added 2003 May 10 based on LAMBHULL.NB *) composite[COMPOSE,DUP,LAMBHULL] := LAMBHULL (* added 2002 February 3 based on RCF.NB *) composite[COMPOSE,DUP,RCF] := composite[IMAGE[DUP],POWER] (* added 2003 May 30 based on RESTRICT.NB *) composite[COMPOSE,id[cart[x_,P[Id]]],inverse[FIRST]] := composite[RESTRICT,id[x]] (* derived 2004 December 6 in IDP.NB *) composite[COMPOSE,id[cart[P[Id],P[Id]]]] := composite[CAP,id[cart[P[Id],P[Id]]]] (* added 2003 May 30 based on RESTRICT.NB *) composite[COMPOSE,id[cart[P[Id],V]],inverse[SECOND]] := composite[IMAGE[SWAP],RESTRICT,IMAGE[SWAP]] (* derived 2004 December 10 in DIV-TRV.NB *) composite[COMPOSE,id[cart[V,x_]],inverse[FIRST],COMPOSE,id[cart[V,y_]],inverse[FIRST]] := composite[COMPOSE,id[cart[V,image[COMPOSE,cart[y,x]]]],inverse[FIRST]] (* derived 2004 December 10 in DIV-TRV.NB *) composite[COMPOSE,id[cart[x_,V]],inverse[SECOND],COMPOSE,id[cart[y_,V]],inverse[SECOND]] := composite[COMPOSE,id[cart[image[COMPOSE,cart[x,y]],V]],inverse[SECOND]] (* added 2002 October 22 based on CO-ID.NB *) composite[COMPOSE,id[cart[V,V]]] := COMPOSE (* added 1999 November 28 based on COMPOSE1.NB *) composite[COMPOSE,id[composite[IMAGE[DUP],IMAGE[FIRST]]],inverse[FIRST]] := IMAGE[id[cart[V,V]]] (* added 1999 December 25 based on COMPOSE2.NB *) composite[COMPOSE,id[composite[inverse[IMAGE[SECOND]],inverse[IMAGE[DUP]]]], inverse[SECOND]] := IMAGE[id[cart[V,V]]] (* added 2002 June 11 based on FUNPART.NB *) composite[COMPOSE,id[INVERSE],inverse[FIRST],FUNPART] := composite[IMAGE[DUP],IMAGE[SECOND],FUNPART] (* added 2002 June 11 based on FUNPART.NB *) composite[COMPOSE,id[INVERSE],inverse[FIRST],IMAGE[DUP]] := IMAGE[DUP] (* derived 2004 January 7 in VSLAMBDA.NB *) composite[COMPOSE,intersection[composite[inverse[FIRST],VS], composite[inverse[SECOND],IMAGE[DUP],IMAGE[FIRST]]]] := VS (* added 2003 July 1 based on ASS-TRV.NB *) composite[COMPOSE,inverse[FIRST],COMPOSE,inverse[FIRST]] := composite[COMPOSE,inverse[FIRST]] (* added 2003 July 1 based on ASS-TRV.NB *) composite[COMPOSE,inverse[SECOND],COMPOSE,inverse[SECOND]] := composite[COMPOSE,inverse[SECOND]] (* revised 1999 December 19 based on REVISED.NB *) composite[COMPOSE,LEFT[x_]] := composite[IMAGE[cross[Id,x]], id[image[V,set[x]]]] (* revised 1999 December 19 based on REVISED.NB *) composite[COMPOSE,RIGHT[x_]] := composite[IMAGE[cross[inverse[x],Id]], id[image[V,set[x]]]] (* added 2001 December 27 based on CP-I.NB *) composite[COMPOSE,SWAP,cross[IMAGE[DUP],IMAGE[DUP]]] := composite[CAP,cross[IMAGE[DUP],IMAGE[DUP]]] (* added 1999 January 2 based on REMOVE-X.NB *) composite[COMPOSE,SWAP,cross[x_,IMAGE[id[cart[V,V]]]]] := composite[COMPOSE,SWAP,cross[x,Id]] (* added 1999 January 2 based on REMOVE-X.NB *) composite[COMPOSE,SWAP,cross[IMAGE[id[cart[V,V]]],x_]] := composite[COMPOSE,SWAP,cross[Id,x]] (* added 2003 August 31 based on CAP-CORE.NB *) composite[CORE[Aclosure[x_]],CAP] := composite[CAP,cross[CORE[Aclosure[x]],CORE[Aclosure[x]]]] (* added 2003 August 31 based on CAP-CORE.NB *) composite[CORE[binclosed[x_]],CAP] := composite[CAP,cross[CORE[binclosed[x]],CORE[binclosed[x]]]] (* added 2002 May 3 based on CORE-UCL.NB *) composite[CORE[x_],CORE[x_]] := CORE[x] (* added 2003 September 4 based on IDEMCORE.NB *) composite[CORE[x_],CORE[intersection[x_,y_]]] := CORE[intersection[x,y]] (* added 2001 October 27 based on CORE-UCL.NB *) composite[CORE[DESCENDING],id[DESCENDING]] := id[DESCENDING] (* added 2002 November 21 based on UCLFPIMG.NB *) composite[CORE[fix[IMAGE[x_]]],id[fix[IMAGE[x_]]]] := id[fix[IMAGE[x]]] (* added 2003 March 9 based on CORE-HER.NB *) composite[CORE[fix[IMAGE[inverse[S]]]],IMAGE[inverse[S]]] := IMAGE[inverse[S]] (* added 2003 March 16 based on CORE-UCL.NB *) composite[CORE[fix[UCLOSURE]],POWER] := POWER (* derived 2004 May 4 in CRHL-FIX.NB *) composite[CORE[x_],id[x_]] := id[x] (* added 2002 May 3 based on CORE-UCL.NB *) composite[CORE[x_],id[Uclosure[x_]]] := id[Uclosure[x]] (* added 2003 September 4 based on IDEMCORE.NB *) composite[CORE[x_],IMAGE[id[U[x_]]]] := CORE[x] (* added 2003 September 4 based on IDEMCORE.NB *) composite[CORE[intersection[x_,y_]],CORE[y_]] := CORE[intersection[x,y]] (* derived 2004 October 4 in REPLACE.NB *) composite[CORE[intersection[RFX,SYM]],EQUIV] := EQUIV (* derived 2004 October 4 in REPLACE.NB *) composite[CORE[intersection[RFX,SYM]],id[EQV]] := id[EQV] (* added 2001 October 28 based on IVR-RFX.NB *) composite[CORE[intersection[RFX,SYM]],id[intersection[RFX,SYM]]] := id[intersection[RFX,SYM]] (* added 2003 August 31 based on CAP-CORE.NB *) composite[CORE[invar[x_]],CAP] := composite[CAP,cross[CORE[invar[x]],CORE[invar[x]]]] (* added 2001 October 27 based on CORE-UCL.NB *) composite[CORE[invar[x_]],id[invar[x_]]] := id[invar[x]] (* derived 2005 January 5 in CORE-ON.NB *) composite[CORE[OMEGA],HC] := CORE[OMEGA] (* derived 2005 January 5 in CORE-ON.NB *) composite[CORE[OMEGA],IMAGE[id[OMEGA]]] := CORE[OMEGA] (* added 2003 May 23 Based on DEF-CLOS.NB *) composite[CORE[range[POWER]],POWER] := POWER (* added 2003 September 24 based on PO-FACTS.NB *) composite[CORE[RFX],CAP] := composite[CAP,cross[CORE[RFX],CORE[RFX]]] (* derived 2004 December 18 in RFX-WRAP.NB *) composite[CORE[RFX],CART] := composite[CART,DUP,CAP] (* derived 2004 October 4 in RFSYMCOR.NB *) composite[CORE[RFX],CORE[SYM]] := CORE[intersection[RFX,SYM]] (* derived 2004 December 18 in RFX-WRAP.NB *) composite[CORE[RFX],CROSS] := composite[CROSS,cross[CORE[RFX],CORE[RFX]]] (* added 2001 October 28 based on IVR-RFX.NB *) composite[CORE[RFX],id[RFX]] := id[RFX] (* derived 2004 December 17 in RFX.NB *) composite[CORE[RFX],IMAGE[id[cart[V,V]]]] := CORE[RFX] (* derived 2004 December 17 in RFX.NB *) composite[CORE[RFX],IMAGE[SWAP]] := composite[INVERSE,CORE[RFX]] (* added 2001 October 27 based on CORE-UCL.NB *) composite[CORE[subvar[x_]],id[subvar[x_]]] := id[subvar[x]] (* added 2003 August 31 based on CAP-CORE.NB *) composite[CORE[SYM],CAP] := composite[CAP,cross[CORE[SYM],CORE[SYM]]] (* derived 2004 October 4 in RFSYMCOR.NB *) composite[CORE[SYM],CORE[RFX]] := CORE[intersection[RFX,SYM]] (* derived 2004 May 12 in EQUIV.NB *) composite[CORE[SYM],EQUIV] := EQUIV (* derived 2004 May 12 in EQUIV.NB *) composite[CORE[SYM],HULL[TRV]] := composite[EQUIV,id[P[cart[V,V]]]] (* added 2001 October 27 based on CORE-UCL.NB *) composite[CORE[SYM],id[SYM]] := id[SYM] (* added 2001 October 10 based on REPLACE.NB *) composite[CORE[SYM],IMAGE[id[cart[V,V]]]] := CORE[SYM] (* derived 2004 January 1 in SUB-T1.NB *) composite[CORE[T1],POWER] := POWER (* added 2003 March 16 based on REL-TOP.NB *) composite[CORE[TOPS],POWER] := POWER (* derived 2005 July 30 in CATORELN.NB *) composite[cross[COMPOSE,FIRST],TWIST,id[composite[id[composite[S,IMAGE[SECOND],id[FUNS]]], inverse[SECOND],IMAGE[FIRST],FIRST,id[composite[S,IMAGE[SECOND],id[FUNS]]]]]] := CATOFUNS (* derived 2005 July 30 in CATORELN.NB *) composite[cross[COMPOSE,FIRST],TWIST,id[composite[id[composite[S,IMAGE[SECOND],id[P[cart[V,V]]]]], inverse[SECOND],IMAGE[FIRST],FIRST,id[composite[S,IMAGE[SECOND],id[P[cart[V,V]]]]]]]] := CATORELN (* added 2003 July 14 based on X12ASSOC.NB *) composite[cross[x_,composite[y_,FIRST]],ASSOC] := composite[cross[x,y],FIRST] (* added 2003 July 1 based on ASSOC.NB *) composite[cross[x_,composite[y_,id[cart[V,V]]]],ASSOC] := composite[cross[x,y],ASSOC] (* added 2003 July 14 based on X12ASSOC.NB *) composite[cross[x_,composite[y_,SECOND]],ASSOC] := cross[composite[x,FIRST],y] (* added 2002 June 7 based on RIF-SWAP.NB *) composite[cross[composite[x_,SECOND],composite[y_,FIRST]], id[composite[inverse[SECOND],FIRST]]] := composite[RIF,cross[cross[Id,x],cross[y,Id]]] (* Theorem X-CO-2 in X3 *) composite[cross[u_,v_],cross[x_,y_]] := cross[composite[u,x],composite[v,y]] (* added 2000 September 7 based on CUT.NB *) composite[CROSS,cross[composite[IMAGE[id[cart[V,V]]],x_],y_]] := composite[CROSS,cross[x,y]] (* added 2000 September 7 based on CUT.NB *) composite[CROSS,cross[x_,composite[IMAGE[id[cart[V,V]]],y_]]] := composite[CROSS,cross[x,y]] (* added 2000 September 7 based on CUT.NB *) composite[CROSS,cross[x_,IMAGE[id[cart[V,V]]]]] := composite[CROSS,cross[x,Id]] (* added 2000 September 7 based on CUT.NB *) composite[CROSS,cross[IMAGE[id[cart[V,V]]],x_]] := composite[CROSS,cross[Id,x]] (* added 1999 November 28 based on CROSS-1.NB *) composite[CROSS,cross[IMAGE[id[cart[V,V]]],IMAGE[id[cart[V,V]]]]] := CROSS (* added 1999 October 17 based on CROSS.2 *) composite[CROSS,cross[SINGLETON,SINGLETON]] := union[ cart[union[cart[V,complement[cart[V,V]]],cart[complement[cart[V,V]],V]], set[0]],composite[SINGLETON,TWIST]] (* Theorem X-DUP-1 in X1 proved 1998 November 29 *) composite[cross[x_,y_],DUP] := intersection[composite[inverse[FIRST],x], composite[inverse[SECOND],y]] (* added 2000 September 1 based on SESSION1 *) composite[cross[x_,FIRST],ASSOC] := composite[cross[x,Id],FIRST] (* added 2001 January 20 based on COMBINAT.NB *) composite[cross[FIRST,FIRST], id[composite[inverse[SECOND],SECOND]]] := composite[RIF,cross[SWAP,Id]] (* added 2001 February 8 based on TWIST-4.NB *) composite[cross[FIRST,FIRST],id[x_], cross[inverse[SECOND],inverse[SECOND]]] := inverse[twist[x]] (* derived 2004 May 9 in OOPART.NB *) composite[cross[FIRST,FIRST],id[SWAP]] := composite[FIRST,id[SWAP]] (* added 2003 August 10 based on RODIRECT.NB *) composite[cross[FIRST,FIRST],TWIST] := composite[FIRST,id[cart[cart[V,V],cart[V,V]]]] (* added 2002 June 25 based on ASSOC.NB *) composite[cross[FIRST,Id],id[composite[inverse[FIRST],SECOND]], cross[Id,inverse[SECOND]]] := ASSOC (* added 2000 September 1 based on SESSION1 *) composite[cross[FIRST,x_],inverse[ASSOC]] := cross[Id,composite[x,SECOND]] (* added 2007 based on RIF-IN.NB *) composite[cross[x_,FIRST],inverse[RIF]] := cross[composite[x,inverse[SECOND]],Id] (* added 2002 June 7 based on RIF.NB *) composite[cross[FIRST,x_],inverse[RIF]] := composite[SWAP,inverse[rotate[composite[x,SWAP]]],SECOND] (* added 2000 September 1 based on SESSION1 *) composite[cross[FIRST,x_],inverse[ROT]] := composite[SWAP,cross[x,Id],FIRST] (* added 2000 September 1 based on SESSION1 *) composite[cross[FIRST,x_],ROT] := composite[SWAP,cross[composite[x,SECOND],Id]] (* added 2002 December 28 based on REPLACE.NB *) composite[cross[FIRST,SECOND],id[composite[inverse[FIRST],SECOND]]] := composite[RIF,cross[SWAP,SWAP]] (* added 2001 February 8 based on TWIST-4.NB *) composite[cross[FIRST,SECOND],id[x_], cross[inverse[SECOND],inverse[FIRST]]] := twist[composite[x,SWAP]] (* added 2003 July 20 based on DIRECT12.NB *) composite[cross[FIRST,SECOND],TWIST] := cross[FIRST,SECOND] (* derived 2004 January 4 in VS-IMIN.NB *) composite[cross[Id,BIGCUP],DORA,VS] := DORA (* Theorem X-CO-4 in X3 proved 2000 August 1 *) composite[cross[u_,v_],id[cart[x_,y_]]] := cross[composite[u,id[x]],composite[v,id[y]]] (* added 2003 July 17 based on DIR-PROD.NB *) composite[cross[x_,id[cart[V,V]]],TWIST] := composite[cross[x,Id],TWIST] (* added 2003 July 17 based on DIR-PROD.NB *) composite[cross[id[cart[V,V]],x_],TWIST] := composite[cross[Id,x],TWIST] (* added 1999 October 9 based on CROSS.2 *) composite[CROSS,id[cart[V,V]]] := CROSS (* discovered 1998 October 17 *) composite[cross[x_,y_],id[complement[cart[u_,v_]]]] := union[cross[x,composite[y,id[complement[v]]]],cross[composite[x,id[complement[u]]],y]] (* added 1998 September 6 *) composite[cross[x_,y_],id[Id]] := composite[intersection[composite[inverse[FIRST],x],composite[inverse[SECOND],y]],inverse[DUP]] (* derived 2004 November 23 in A8-AXCH.NB *) composite[cross[x_,y_],id[id[z_]]] := composite[intersection[composite[inverse[FIRST],x],composite[inverse[SECOND],y]],id[z],inverse[DUP]] (* added 1999 October 14 based on X-ID-CO.1 *) composite[cross[x_,y_],id[z_],inverse[FIRST]] := intersection[composite[inverse[FIRST],x],composite[inverse[SECOND],y,z]] (* added 1999 October 14 based on X-ID-CO.1 *) composite[cross[x_,y_],id[z_],inverse[SECOND]] := intersection[composite[inverse[SECOND],y],composite[inverse[FIRST],x,inverse[z]]] (* added 2003 June 11 based on VS.NB *) composite[cross[Id,inverse[SINGLETON]], inverse[rotate[composite[IMG,SWAP]]]] := union[composite[inverse[E],IMAGE[SWAP],VS], composite[LEFT[0],complement[inverse[E]],IMAGE[FIRST]]] (* derived 2004 May 9 in OOPART.NB *) composite[cross[Id,inverse[SINGLETON]], inverse[rotate[composite[inverse[SINGLETON],IMG,SWAP]]]] := composite[inverse[E],IMAGE[SWAP],FUNPART] (* added 2002 May 20 based on ITER-X.NB *) composite[cross[x_,Id],iterate[cross[Id,y_],z_]] := iterate[cross[Id,y],composite[z,inverse[x]]] (* added 2002 May 20 based on ITER-X.NB *) composite[cross[Id,x_],iterate[cross[y_,Id],z_]] := iterate[cross[y,Id],composite[x,z]] (* added 1999 December 15 based on PILFRULE.NB *) composite[cross[Id,SWAP],ASSOC] := composite[SWAP,ROT,cross[SWAP,Id]] (* added 1999 November 13 based on CARTDORA.NB *) composite[cross[u_,v_],intersection[composite[inverse[FIRST],x_], composite[inverse[SECOND],y_]]] := intersection[composite[inverse[FIRST],u,x],composite[inverse[SECOND],v,y]] (* added 2003 July 20 based on DIRECT12.NB *) composite[cross[inverse[DUP],inverse[DUP]],TWIST] := composite[id[cart[V,V]],inverse[DUP]] (* added 2000 December 9 based on REPLACE.NB *) composite[cross[x_,y_],inverse[E],IMAGE[id[cart[V,V]]]] := composite[cross[x,y],inverse[E]] (* Theorem X-1ST-IN in X3 proved 2000 August 2 *) composite[cross[x_,y_],inverse[FIRST]] := composite[id[cart[V,range[y]]],inverse[FIRST],x] (* added 2002 May 22 based on INVERSE.NB *) composite[cross[inverse[x_],Id],power[x_]] := composite[cross[Id,x],power[x]] (* Theorem X-2ND-IN in X3 proved 2000 August 2 *) composite[cross[x_,y_],inverse[SECOND]] := composite[id[cart[range[x],V]],inverse[SECOND],y] (* revised 1999 December 19 based on REVISED.NB *) composite[CROSS,LEFT[x_]] := composite[IMAGE[composite[id[composite[inverse[FIRST],x,FIRST]], cross[inverse[SECOND],inverse[SECOND]]]], id[image[V,set[x]]]] (* added 1999 November 4 based on X-CURRY.LOG *) composite[cross[x_,y_],LEFT[z_]] := composite[id[cart[image[x,set[z]],V]],inverse[SECOND],y] (* added 2002 May 21 based on RIF.NB *) composite[cross[x_,y_],RIF] := composite[RIF,cross[cross[Id,x],cross[y,Id]]] (* revised 1999 December 19 based on REVISED.NB *) composite[CROSS,RIGHT[x_]] := composite[IMAGE[composite[id[composite[inverse[SECOND],x,SECOND]], cross[inverse[FIRST],inverse[FIRST]]]], id[image[V,set[x]]]] (* added 1999 November 4 based on X-CURRY.LOG *) composite[cross[x_,y_],RIGHT[z_]] := composite[id[cart[V,image[y,set[z]]]],inverse[FIRST],x] (* added 2002 December 23 based on EQDF.NB *) composite[cross[rotate[NATADD],inverse[power[SUCC]]],inverse[RIF]] := composite[SWAP,EQUIDIFF] (* added 2002 December 23 based on RIF-TW.NB *) composite[cross[rotate[NATADD],NATADD],inverse[RIF]] := composite[SWAP,inverse[rotate[NATADD]],NATADD] (* added 2002 December 23 based on RIF-TW.NB *) composite[cross[rotate[NATADD],rotate[NATADD]],inverse[RIF]] := composite[inverse[NATADD],rotate[NATADD],SWAP] (* added 2002 December 23 based on RIF-TW.NB *) composite[cross[rotate[NATADD],composite[rotate[NATADD],SWAP]],inverse[RIF]] := composite[SWAP,EQUIDIFF] (* added 2001 December 23 based on DORA-1.NB *) composite[cross[S,S],DORA] := composite[inverse[CART],S,IMAGE[id[cart[V,V]]]] (* added 2000 September 1 based on SESSION1 *) composite[cross[x_,SECOND],ASSOC] := cross[composite[x,FIRST],Id] (* added 2001 January 20 based on RIF-2.NB *) composite[cross[SECOND,FIRST], id[composite[inverse[SECOND],FIRST]]] := RIF (* added 2001 February 8 based on TWIST-4.NB *) composite[cross[SECOND,FIRST],id[x_], cross[inverse[FIRST],inverse[SECOND]]] := twist[composite[SWAP,x]] (* added 2003 July 20 based on DIRECT12.NB *) composite[cross[SECOND,FIRST],TWIST] := composite[SWAP,cross[SECOND,FIRST]] (* added 2000 September 1 based on SESSION1 *) composite[cross[SECOND,x_],inverse[ASSOC]] := composite[cross[Id,x],SECOND] (* added 2007 based on RIF-IN.NB *) composite[cross[SECOND,x_],inverse[RIF]] := cross[Id,composite[x,inverse[FIRST]]] (* added 2002 June 7 based on RIF.NB *) composite[cross[x_,SECOND],inverse[RIF]] := composite[inverse[rotate[x]],FIRST] (* added 2000 September 1 based on SESSION1 *) composite[cross[SECOND,x_],inverse[ROT]] := composite[SWAP,cross[composite[x,FIRST],Id]] (* added 2000 September 1 based on SESSION1 *) composite[cross[SECOND,x_],ROT] := composite[cross[Id,x],FIRST] (* added 2001 January 20 based on COMBINAT.NB *) composite[cross[SECOND,SECOND], id[composite[inverse[FIRST],FIRST]]] := composite[RIF,cross[Id,SWAP]] (* added 2001 January 18 in TWIST-1.NB *) composite[cross[SECOND,SECOND],id[x_], cross[inverse[FIRST],inverse[FIRST]]] := twist[x] (* added 2003 August 10 based on RODIRECT.NB *) composite[cross[SECOND,SECOND],TWIST] := composite[SECOND,id[cart[cart[V,V],cart[V,V]]]] (* Theorem X-SW-1C in X1 proved 1999 September 11 *) composite[cross[x_,y_],SWAP] := composite[SWAP,cross[y,x]] (* added 1999 December 15 based on PILFRULE.NB *) composite[cross[SWAP,Id],inverse[ASSOC]] := composite[inverse[ROT],SWAP,cross[Id,SWAP]] (* added 1999 November 4 based on 1999/NOV/03/WORK/FLIP-ROT.2 *) composite[cross[SWAP,Id],inverse[ROT]] := composite[ROT,cross[SWAP,Id]] (* added 1999 December 15 based on PERMUTE.NB *) composite[cross[SWAP,Id],ROT] := composite[inverse[ROT],cross[SWAP,Id]] (* added 2002 December 30 based on 9-TWIST.NB *) composite[cross[TWIST,TWIST],TWIST,cross[TWIST,TWIST]] := composite[TWIST,cross[TWIST,TWIST],TWIST] (* derived 2003 December 26 in DISTRIB.NB *) composite[CUP,cross[CAP,CAP],TWIST,cross[DUP,Id]] := composite[CAP,cross[Id,CUP]] (* derived 2003 December 26 in DISTRIB.NB *) composite[CUP,cross[CAP,CAP],TWIST,cross[Id,DUP]] := composite[CAP,cross[CUP,Id]] (* derived 2003 December 27 in DISTRBIN.NB *) composite[CUP,cross[CART,CART],TWIST,cross[DUP,Id]] := composite[CART,cross[Id,CUP]] (* derived 2003 December 27 in DISTRBIN.NB *) composite[CUP,cross[CART,CART],TWIST,cross[Id,DUP]] := composite[CART,cross[CUP,Id]] (* derived 2003 December 27 in DISTRBIN.NB *) composite[CUP,cross[COMPOSE,COMPOSE],TWIST,cross[DUP,Id]] := composite[COMPOSE,cross[Id,CUP]] (* derived 2003 December 27 in DISTRBIN.NB *) composite[CUP,cross[COMPOSE,COMPOSE],TWIST,cross[Id,DUP]] := composite[COMPOSE,cross[CUP,Id]] (* added 2002 January 19 based on PO.NB *) composite[CUP,cross[composite[SINGLETON,x_],composite[SINGLETON,y_]]] := composite[PAIRSET,cross[x,y]] (* derived 2004 February 17 in AX-PRS.NB *) composite[CUP,cross[composite[SINGLETON,x_],SINGLETON]] := composite[PAIRSET,cross[x,Id]] (* derived 2003 December 27 in DISTRBIN.NB *) composite[CUP,cross[CROSS,CROSS],TWIST,cross[DUP,Id]] := composite[CROSS,cross[Id,CUP]] (* derived 2003 December 27 in DISTRBIN.NB *) composite[CUP,cross[CROSS,CROSS],TWIST,cross[Id,DUP]] := composite[CROSS,cross[CUP,Id]] (* added 2000 September 20 based on KELLEY4A.LOG *) composite[CUP,cross[CUP,Id],inverse[ASSOC]] := composite[CUP,cross[Id,CUP]] (* added 2000 September 21 based on PERMS1.NB *) composite[CUP,cross[CUP,Id],inverse[ROT]] := composite[CUP,cross[CUP,Id]] (* added 2000 September 20 based on KELLEY4A.LOG *) composite[CUP,cross[CUP,Id],ROT] := composite[CUP,cross[CUP,Id]] (* derived 2003 December 26 in DISTRIB.NB *) composite[CUP,cross[DIF,DIF],TWIST,cross[DUP,Id]] := composite[DIF,cross[Id,CAP]] (* added 1999 November 16 based on DISJOINT.NB *) composite[CUP,cross[DISJOINT,DISJOINT]] := composite[DISJOINT,CAP] (* added 1999 November 3 based on ASS-DIF.TXT *) composite[CUP,cross[Id,CUP],ASSOC] := composite[CUP,cross[CUP,Id]] (* derived 2003 December 27 in DISTRBIN.NB *) composite[CUP,cross[IMG,IMG],TWIST,cross[DUP,Id]] := composite[IMG,cross[Id,CUP]] (* derived 2003 December 27 in DISTRBIN.NB *) composite[CUP,cross[IMG,IMG],TWIST,cross[Id,DUP]] := composite[IMG,cross[CUP,Id]] (* added 1999 November 16 based on CAP-CUP.NB *) composite[CUP,cross[inverse[S],inverse[S]]] := composite[inverse[S],CUP] (* derived 2004 February 17 in AX-PRS.NB *) composite[CUP,cross[SINGLETON,composite[SINGLETON,x_]]] := composite[PAIRSET,cross[Id,x]] (* added 1999 October 2 based on PAIRSET.9 *) composite[CUP,cross[SINGLETON,SINGLETON]] := PAIRSET (* Theorem CUP-DUP2 in CUP proved 1999 August 12 *) composite[CUP,DUP] := Id (* derived 2004 May 11 in CAP-CORE.NB *) composite[CUP,id[ACLOSURE]] := composite[SECOND,id[ACLOSURE]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CUP,id[ADJOIN[x_]]] := composite[SECOND,id[ADJOIN[x]]] (* discovered 1999 December 16 in CUP.NB *) composite[CUP,id[cart[x_,set[y_]]]] := composite[ADJOIN[y],id[x],inverse[RIGHT[y]]] (* discovered 1999 December 16 in CUP.NB *) composite[CUP,id[cart[set[x_],y_]]] := composite[ADJOIN[x],id[y],inverse[LEFT[x]]] (* added 2001 March 9 based on BC-IMG.TXT *) composite[CUP,id[BIGCUP],inverse[FIRST]] := composite[BIGCUP,IMAGE[SUCC]] (* derived 2004 March 23 in TRV-K.NB *) composite[CUP,id[cart[V,FINITE]],inverse[FIRST]] := union[Id,trv[K]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CUP,id[cart[x_,V]],inverse[FIRST]] := composite[S,id[x]] (* derived 2004 March 23 in TRV-K.NB *) composite[CUP,id[cart[V,x_]],inverse[FIRST],CUP] := composite[CUP, cross[Id,composite[CUP,id[cart[V,x]],inverse[FIRST]]]] (* added 2003 November 28 based on FIN-IND.NB *) composite[CUP,id[cart[V,range[SINGLETON]]],inverse[FIRST]] := union[K,id[complement[set[0]]]] (* derived 2004 March 23 in TRV-K.NB *) composite[CUP,id[cart[V,union[range[SINGLETON],set[0]]]],inverse[FIRST]] := union[Id,K] (* added 2002 October 22 based on CO-ID.NB *) composite[CUP,id[cart[V,V]]] := CUP (* added 1999 November 3 based on ASS-DIF.TXT *) composite[CUP,id[complement[cart[V,V]]]] := 0 (* added 2000 October 26 based on TC-4.NB *) composite[CUP,id[composite[BIGCUP,TC]],inverse[FIRST]] := TC (* added 2003 September 24 based on PO-FACTS.NB *) composite[CUP,id[composite[CUP,cross[IMAGE[DUP],IMAGE[DUP]],DORA, id[P[cart[V,V]]]]],inverse[FIRST]] := HULL[RFX] (* added 2003 December 9 based on ITER-K.NB *) composite[CUP,id[composite[id[range[SINGLETON]],DISJOINT]],inverse[FIRST]] := K (* added 2002 May 24 based on ADJOIN.NB *) composite[CUP,id[composite[SINGLETON,id[x_]]],inverse[FIRST]] := composite[SUCC,id[x]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CUP,id[CORE[x_]]] := composite[FIRST,id[CORE[x]]] (* added 2000 June 2 based on DJ-U.NB *) composite[CUP,id[DISJOINT],inverse[FIRST]] := S (* added 2000 June 2 based on DJ-U.NB *) composite[CUP,id[DISJOINT],inverse[SECOND]] := S (* derived 2004 May 11 in CAP-CORE.NB *) composite[CUP,id[HC]] := composite[FIRST,id[HC]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CUP,id[HULL[x_]]] := composite[SECOND,id[HULL[x]]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CUP,id[Id]] := inverse[DUP] (* derived 2004 June 6 in EQV-TRV.NB *) composite[CUP,id[IMAGE[eqv[x_]]],inverse[FIRST]] := HULL[invar[eqv[x]]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CUP,id[IMAGE[id[x_]]]] := composite[FIRST,id[IMAGE[id[x]]]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CUP,id[IMAGE[inverse[S]]]] := composite[SECOND,id[IMAGE[inverse[S]]]] (* derived 2004 June 15 in HULIVRSW.NB *) composite[CUP,id[IMAGE[SWAP]],inverse[FIRST]] := HULL[invar[SWAP]] (* derived 2004 June 6 in EQV-TRV.NB *) composite[CUP,id[IMAGE[trv[x_]]],inverse[FIRST]] := HULL[invar[x]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CUP,id[inverse[CORE[x_]]]] := composite[SECOND,id[inverse[CORE[x]]]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CUP,id[inverse[HC]]] := composite[SECOND,id[inverse[HC]]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CUP,id[inverse[IMAGE[id[x_]]]]] := composite[SECOND,id[inverse[IMAGE[id[x]]]]] (* added 2003 November 6 based on HULL-EQV.NB *) composite[CUP,id[INVERSE],inverse[FIRST]] := HULL[SYM] (* added 1999 December 6 based on RESTRICT.NB *) composite[CUP,id[inverse[S]]] := composite[FIRST,id[inverse[S]]] (* added 2001 March 1 based on CAP-2ND.NB *) composite[CUP,id[x_],inverse[SECOND]] := composite[CUP,id[inverse[x]],inverse[FIRST]] (* added 1999 November 17 based on NEWRULES.1 *) composite[CUP,id[S]] := composite[SECOND,id[S]] (* added 2001 August 5 based on RK-U.NB *) composite[CUP,id[SINGLETON],inverse[FIRST]] := SUCC (* added 2001 August 5 based on RK-U.NB *) composite[CUP,id[SUCC],inverse[FIRST]] := SUCC (* derived 2004 May 11 in CAP-CORE.NB *) composite[CUP,id[TC]] := composite[SECOND,id[TC]] (* derived 2004 May 11 in CAP-CORE.NB *) composite[CUP,id[UCLOSURE]] := composite[SECOND,id[UCLOSURE]] (* added 1999 December 7 based on BUILD-DJ.NB *) composite[CUP,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],CUP]]] := CUP (* added 1999 December 7 based on BUILD-DJ.NB *) composite[CUP,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],DIF]]] := FIRST (* added 1999 December 7 based on BUILD-DJ.NB *) composite[CUP,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],FIRST]]] := FIRST (* added 1999 December 7 based on BUILD-DJ.NB *) composite[CUP,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],SECOND]]] := SECOND (* added 1999 December 7 based on BUILD-DJ.NB *) composite[CUP,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],SYMDIF]]] := CUP (* added 2003 September 4 based on IDEMCORE.NB *) composite[CUP,intersection[composite[inverse[FIRST],CORE[x_]], composite[inverse[SECOND],CORE[y_]]]] := CORE[union[x,y]] (* added 1999 December 7 based on BUILD-DJ.NB *) composite[CUP,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],CUP]]] := CUP (* added 1999 December 2 based on SYMDIF-2.NB *) composite[CUP,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],DIF,SWAP]]] := SYMDIF (* added 1999 December 7 based on BUILD-DJ.NB *) composite[CUP,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],FIRST]]] := FIRST (* added 1999 December 7 based on BUILD-DJ.NB *) composite[CUP,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],SECOND]]] := CUP (* added 1999 December 7 based on BUILD-DJ.NB *) composite[CUP,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],SYMDIF]]] := SYMDIF (* added 1999 December 7 based on BUILD-1.NB *) composite[CUP,intersection[composite[inverse[FIRST],FIRST], composite[inverse[SECOND],CUP]]] := CUP (* added 1999 December 7 based on BUILD-1.NB *) composite[CUP,intersection[composite[inverse[FIRST],FIRST], composite[inverse[SECOND],DIF]]] := FIRST (* added 1999 December 7 based on BUILD-DJ.NB *) composite[CUP,intersection[composite[inverse[FIRST],FIRST], composite[inverse[SECOND],SYMDIF]]] := CUP (* added 2003 September 4 based on IDEMCORE.NB *) composite[CUP,intersection[composite[inverse[FIRST],IMAGE[id[x_]]], composite[inverse[SECOND],IMAGE[id[y_]]]]] := IMAGE[id[union[x,y]]] (* added 1999 December 7 based on BUILD-1.NB *) composite[CUP,intersection[composite[inverse[FIRST],SECOND], composite[inverse[SECOND],DIF]]] := CUP (* added 1999 December 7 based on BUILD-DJ.NB *) composite[CUP,intersection[composite[inverse[FIRST],SECOND], composite[inverse[SECOND],SYMDIF]]] := CUP (* added 2002 January 10 based on PAIRSET.NB *) composite[CUP,intersection[composite[inverse[FIRST],SINGLETON,x_], composite[inverse[SECOND],SINGLETON,y_]]] := composite[PAIRSET, intersection[composite[inverse[FIRST],x],composite[inverse[SECOND],y]]] (* added 1999 December 7 based on BUILD-1.NB *) composite[CUP,intersection[composite[inverse[FIRST],SYMDIF], composite[inverse[SECOND],DIF]]] := SYMDIF (* Theorem CAPCUP-2 in CAP proved 2000 July 24 *) composite[CUP,inverse[CAP]] := S (* added 1999 October 5 based on CUP-1-2.LOG *) composite[CUP,inverse[FIRST]] := S (* added 2001 November 11 based on PAIRSET.NB *) composite[CUP,inverse[PAIRSET]] := composite[BIGCUP,id[range[PAIRSET]]] (* added 1999 October 5 based on CUP-1-2.LOG *) composite[CUP,inverse[SECOND]] := S (* added 1999 September 23 based on ADJOIN-1.LOG and CART-LOG.1 *) composite[CUP,LEFT[x_]] := ADJOIN[x] (* added 1999 September 23 based on ADJOIN-1.LOG *) composite[CUP,RIGHT[x_]] := ADJOIN[x] (* Theorem CUP-SW in CUP proved 1999 September 23 *) composite[CUP,SWAP] := CUP (* Theorem DI-C-E in DI proved 1998 December 16 *) composite[Di,complement[E]] := cart[V,V] (* derived 2004 June 12 based on X1196.NB *) composite[Di,complement[funpart[x_]]] := cart[V,V] (* Theorem E-C-DI-1 proved 1998 November 11 *) composite[Di,complement[inverse[E]]] := cart[V,V] (* Theorem SR-C-DI2 in SR-C proved 1998 December 16 *) composite[Di,complement[inverse[S]]] := cart[V,V] (* added 2000 May 25 based on K.NB *) composite[Di,complement[K]] := cart[V,V] (* 1998 August 25 *) composite[Di,complement[S]] := cart[complement[set[0]],V] (* Theorem SP-DI-DI in SP3 proved 1998 November 11 *) composite[Di,Di] := cart[V,V] (* Theorem SP-DJT-1 in SP3 proved 1998 September 3 *) composite[Di,DISJOINT] := cart[V,V] (* added 2004 July 14 based on X2530-41.NB *) composite[Di,DUP] := union[cart[V,union[Di,complement[cart[V,V]]]],composite[DUP,Di]] (* Theorem SP-DI-E in SP2 proved 1998 November 11 *) composite[Di,E] := cart[V,V] (* added 2002 May 19 based on DI-FUNP.NB *) composite[Di,funpart[x_]] := composite[complement[x],id[domain[funpart[x]]]] (* added 2002 April 10 based on INVAR.NB *) composite[Di,INVAR] := cart[V,V] (* added 1998 July 2 *) composite[Di,inverse[E]] := composite[inverse[SINGLETON],Di, id[complement[set[0]]]] (* added 1998 September 24 *) composite[Di,inverse[S]] := union[cart[V,complement[set[0]]], cart[complement[set[0]],V]] (* added 1999 August 31 based on 12-CO-DI *) composite[Di,inverse[FIRST]] := cart[V,V] (* added 1999 August 31 based on 12-CO-DI *) composite[Di,inverse[SECOND]] := cart[V,V] (* added 2001 July 15 based on FUNPART.NB *) composite[Di,inverse[ZN]] := cart[V,V] (* added 2000 May 24 based on K.NB *) composite[Di,K] := cart[V,V] (* 1998 August 25 *) composite[Di,PS] := cart[V,V] (* added 2001 July 15 based on FUNPART.NB *) composite[Di,Q] := union[cart[V,complement[set[0]]], cart[complement[set[0]],V]] (* Theorem PS-DI-SR in PS1 proved 1998 August 25 *) composite[Di,S] := cart[V,V] (* added 2000 September 5 based on CART-DIF.NB *) composite[DIF,cross[CART,CART],TWIST,cross[Id,DUP]] := composite[CART,cross[DIF,Id]] (* added 2000 September 5 based on CART-DIF.NB *) composite[DIF,cross[CART,CART],TWIST,cross[DUP,Id]] := composite[CART,cross[Id,DIF]] (* added 1999 November 3 based on ASS-DIF.TXT *) composite[DIF,cross[Id,CUP],ASSOC] := composite[DIF,cross[DIF,Id]] (* added 2002 December 23 based on REPLACE.NB *) composite[DIF,cross[Id,DIF],ASSOC] := composite[CUP, intersection[composite[inverse[FIRST],CAP,cross[FIRST,Id]], composite[inverse[SECOND],DIF,FIRST]]] (* added 1999 November 16 based on DIF.NB *) composite[DIF,cross[inverse[S],S]] := composite[inverse[S],DIF] (* added 1999 October 26 based on DIF-LOG.1 *) composite[DIF,DUP] := cart[V,set[0]] (* discovered 1999 December 16 in DIF.NB *) composite[DIF,id[cart[set[x_],y_]]] := composite[RC[x],IMAGE[id[x]],id[y],inverse[LEFT[x]]] (* discovered 1999 December 16 in DIF.NB *) composite[DIF,id[cart[x_,set[y_]]]] := composite[IMAGE[id[complement[y]]],id[x],inverse[RIGHT[y]]] (* added 1999 October 26 based on DIF-LOG.1 *) composite[DIF,id[cart[V,V]]] := DIF (* added 1999 October 26 based on DIF-LOG.2 ad hoc rule *) composite[DIF,id[complement[cart[V,V]]]] := 0 (* added 1999 December 7 based on RESTRICT.NB *) composite[DIF,id[DISJOINT]] := composite[FIRST,id[DISJOINT]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,id[Id]] := cart[Id,set[0]] (* added 1999 November 17 based on NEWRULES.1 *) composite[DIF,id[S]] := cart[S,set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],CUP]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],DIF]]] := CAP (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],FIRST]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],SECOND]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],SYMDIF]]] := CAP (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],CUP], composite[inverse[SECOND],CAP]]] := SYMDIF (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],CUP], composite[inverse[SECOND],DIF]]] := SECOND (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],CUP], composite[inverse[SECOND],FIRST]]] := composite[DIF,SWAP] (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],CUP], composite[inverse[SECOND],SECOND]]] := DIF (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],CUP], composite[inverse[SECOND],SYMDIF]]] := CAP (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],CAP]]] := DIF (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],CUP]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],DIF,SWAP]]] := DIF (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],FIRST]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],SECOND]]] := DIF (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],SYMDIF]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],DIF,SWAP], composite[inverse[SECOND],DIF]]] := composite[DIF,SWAP] (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],FIRST], composite[inverse[SECOND],CAP]]] := DIF (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],FIRST], composite[inverse[SECOND],CUP]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],FIRST], composite[inverse[SECOND],DIF]]] := CAP (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],FIRST], composite[inverse[SECOND],SYMDIF]]] := CAP (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],SECOND], composite[inverse[SECOND],CAP]]] := composite[DIF,SWAP] (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],SECOND], composite[inverse[SECOND],CUP]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],SECOND], composite[inverse[SECOND],DIF]]] := SECOND (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],SECOND], composite[inverse[SECOND],SYMDIF]]] := CAP (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],SYMDIF], composite[inverse[SECOND],CAP]]] := SYMDIF (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],SYMDIF], composite[inverse[SECOND],CUP]]] := cart[cart[V,V],set[0]] (* added 1999 December 8 based on BUILDALL.TXT *) composite[DIF,intersection[composite[inverse[FIRST],SYMDIF], composite[inverse[SECOND],DIF]]] := composite[DIF,SWAP] (* added 1999 October 28 based on MOREDIF1.NB *) composite[DIF,inverse[FIRST]] := inverse[S] (* added 1999 October 28 based on MOREDIF1.NB *) composite[DIF,inverse[SECOND]] := DISJOINT (* added 1999 October 31 based on RC-DIF.NB *) composite[DIF,LEFT[x_]] := composite[RC[x],IMAGE[id[x]]] (* revised 1999 December 19 based on REVISED.NB *) composite[DIF,RIGHT[x_]] := composite[IMAGE[id[complement[x]]], id[image[V,set[x]]]] (* added 1999 December 7 based on RESTRICT.NB *) composite[DIF,SWAP,id[DISJOINT]] := composite[SECOND,id[DISJOINT]] (* added 1999 December 6 based on RESTRICT.NB *) composite[DIF,SWAP,id[inverse[S]]] := cart[inverse[S],set[0]] (* added 2003 October 21 based on COMMUTE.NB *) composite[DISJOINT,COMMUTE] := cart[V,V] (* Theorem DJT-E-C in DJT *) composite[DISJOINT,complement[E]] := cart[V,V] (* added 1999 October 23 based on E-CO-DJT *) composite[DISJOINT,complement[inverse[E]]] := cart[V,V] (* added August 23 based on ASSOC-2.LOG *) composite[DISJOINT,complement[inverse[S]]] := cart[V,V] (* added 2000 December 16 based on Q-CA.NB *) composite[DISJOINT,complement[Q]] := cart[V,V] (* Theorem DJT-SR-C in DJT proved 1998 August 6 *) composite[DISJOINT,complement[S]] := cart[complement[set[0]],V] (* added 2000 January 2 based on DC.NB *) composite[DISJOINT,COMPOSE,inverse[FIRST]] := cart[V,V] (* added 2000 January 2 based on DC.NB *) composite[DISJOINT,COMPOSE,inverse[SECOND]] := cart[V,V] (* Theorem SP-DJT-2 in SP3 proved 1998 September 3 *) composite[DISJOINT,Di] := cart[V,V] (* Theorem DJT-DJT in DJT *) composite[DISJOINT,DISJOINT] := cart[V,V] (* Theorem DJT-CO-E in DJT proved 1998 August 23 *) composite[DISJOINT,E] := composite[Id,complement[E]] (* added 1999 December 19 based on DISJOINT.NB *) composite[DISJOINT,id[P[x_]],DISJOINT] := cart[V,V] (* added 2003 June 18 based on CUT-CORE.NB *) composite[DISJOINT,id[P[x_]],E] := composite[complement[E],id[x]] (* added 1999 December 19 based on DISJOINT.NB *) composite[DISJOINT,id[P[x_]],S]:= composite[DISJOINT,id[P[x]]] (* derived 2003 December 30 in T2.NB *) composite[DISJOINT,id[Uclosure[x_]],E] := composite[DISJOINT,id[x],E] (* added 1999 December 19 based on DISJOINT.NB *) composite[DISJOINT,IMAGE[id[x_]],S] := composite[DISJOINT,IMAGE[id[x]]] (* added 1999 November 13 based on ANTISYMM.NB *) composite[DISJOINT,IMAGE[id[union[x_,complement[cart[V,V]]]]]]:= intersection[composite[DISJOINT,IMAGE[id[x]]], composite[DISJOINT,IMAGE[id[complement[cart[V,V]]]]]] (* derived 2004 January 25 in GT-LT-CO.NB *) composite[DISJOINT,inverse[GREATEST[x_]]] := composite[complement[E],id[fix[x]]] (* added 1999 December 19 based on DISJOINT.NB *) composite[DISJOINT,inverse[IMAGE[id[x_]]]] := composite[DISJOINT,id[P[x]]] (* derived 2004 January 25 in GT-LT-CO.NB *) composite[DISJOINT,inverse[LEAST[x_]]] := composite[complement[E],id[fix[x]]] (* inverse of Theorem DJT-CO-S in DJT *) composite[DISJOINT,inverse[S]] := cart[V,V] (* derived 2004 December 22 in UCL-COMT.NB *) composite[DISJOINT,LB[LB[x_]]] := cart[V,V] (* derived 2004 December 22 in UCL-COMT.NB *) composite[DISJOINT,LB[UB[x_]]] := cart[V,V] (* Theorem Q-DJ-2 in Q proved 2000 May 12 *) composite[DISJOINT,Q] := cart[V,V] (* added 1999 December 19 based on RC-5.NB *) composite[DISJOINT,RC[x_]] := composite[inverse[IMAGE[id[x]]],inverse[S], id[intersection[image[V,set[x]],P[x]]]] (* Theorem DJT-SR-1 in DJT proved 1998 August 23 *) composite[DISJOINT,S] := DISJOINT (* Theorem SG-DJT-2 in SG1 proved 1998 September 4 *) composite[DISJOINT,SINGLETON] := composite[Id,complement[E]] (* derived 2004 December 21 in SBCOMMUT.NB *) composite[DISJOINT,SUBCOMMUTE] := cart[V,V] (* derived 2005 January 29 in DIV.NB *) composite[DIV,complement[inverse[DIV]]] := composite[id[omega],complement[inverse[DIV]]] (* added 2002 August 30 based on DIVIDES.NB *) composite[DIV,DIV] := DIV (* derived 2005 May 3 in DIV-E.NB *) composite[DIV,E] := union[cart[omega,set[0]],composite[id[omega],E]] (* derived 2005 April 21 in FACT-DIV.NB *) composite[DIV,id[intersection[omega,x_]]] := composite[DIV,id[x]] (* added 2002 October 22 based on CO-ID.NB *) composite[DIV,id[omega]] := DIV (* derived 2005 January 29 in DIV.NB *) composite[DIV,inverse[DIV]] := cart[omega,omega] (* added 2001 December 18 based on DORA.NB *) composite[DORA,CART] := union[cart[union[cart[V,set[0]], cart[set[0],V]],cart[set[0],set[0]]], id[cart[complement[set[0]],complement[set[0]]]]] (* derived 2004 December 17 in RFX.NB *) composite[DORA,CORE[RFX]] := composite[DUP,IMAGE[inverse[DUP]]] (* derived 2005 January 6 in DJ-U-Q.NB *) composite[DORA,CUP] := composite[cross[CUP,CUP],TWIST,cross[DORA,DORA]] (* added 2001 December 19 based on REPLACE.NB *) composite[DORA,id[complement[set[0]]],CART] := id[cart[complement[set[0]],complement[set[0]]]] (* derived 2005 August 7 in DORA-FIN.NB *) composite[DORA,id[intersection[BIJ,FINITE]]] := composite[id[cart[FINITE,FINITE]],DORA,id[BIJ]] (* added 2001 December 19 based on DORA-CO.NB *) composite[DORA,IMAGE[DUP]] := DUP (* added 2001 December 19 based on DORA-CO.NB *) composite[DORA,IMAGE[id[cart[V,V]]]] := DORA (* added 2001 December 19 based on DORA-CO.NB *) composite[DORA,IMAGE[SWAP]] := composite[SWAP,DORA] (* derived 2004 July 26 in IMAGDORA.NB *) composite[DORA,inverse[IMAGE[id[cart[V,V]]]]] := composite[DORA,id[P[cart[V,V]]]] (* added 2003 February 4 based on PLUS-Q.NB *) composite[DORA,PLUS] := composite[LEFT[omega],RC[omega],id[omega]] (* added 2002 February 4 based on RCF-NORM.NB *) composite[DORA,RCF] := composite[DUP,POWER] (* added 2001 December 19 based on DORA-CO.NB *) composite[DORA,SINGLETON] := union[cart[complement[cart[V,V]], cart[set[0],set[0]]],cross[SINGLETON,SINGLETON]] (* Theorem BA-IN-E2 in BIGCAP/BA1 proved 1998 November 24 *) composite[E,complement[E]] := composite[inverse[BIGCAP],complement[E]] (* Theorem SR-C-CO1 in SR/C *) composite[E,complement[inverse[E]]] := composite[Id,complement[inverse[S]]] composite[E,complement[inverse[S]]] := composite[complement[inverse[S]],POWER] (* Theorem BA-SR-C1 in BIGCAP\BA1 proved 1998 December 8 *) composite[E,complement[S]] := composite[inverse[BIGCAP],complement[S]] (* added 1998 July 2 *) composite[E,Di] := composite[id[complement[set[0]]], Di,SINGLETON] (* Theorem BC-E-2 in BIGCUP/BC *) composite[E,E] := composite[inverse[BIGCUP],E] (* added 2001 February 6 based on ROT-2.NB *) composite[E,FIRST,intersection[x_,composite[inverse[SECOND],inverse[E]]]] := inverse[fix[composite[inverse[SECOND],inverse[x],inverse[E],CART]]] (* added 2001 February 6 based on ROT-2.NB *) composite[E,SECOND,intersection[x_,composite[inverse[FIRST],inverse[E]]]] := fix[composite[inverse[FIRST],inverse[x],inverse[E],CART]] (* added 2002 November 12 based on VS-RULES.NB *) composite[E,UB[complement[x_]],id[P[domain[VERTSECT[x_]]]]] := composite[complement[inverse[S]],IMAGE[x]] (* added 2001 July 15 based on ZN-AGAIN.NB *) composite[E,UB[complement[ZN]]] := composite[Id,complement[ZN]] (* added 2002 November 16 based on EQUIDIFF.NB *) composite[EQUIDIFF,complement[EQUIDIFF]] := composite[id[cart[omega,omega]],complement[EQUIDIFF]] (* added 2002 December 19 based on EQDF-RIF.NB *) composite[EQUIDIFF,cross[NATADD,NATADD],inverse[RIF]] := EQUIDIFF (* added 2002 November 5 based on EQDF-TRV.NB *) composite[EQUIDIFF,EQUIDIFF] := EQUIDIFF (* added 2002 November 30 based on POS-NEG.NB *) composite[EQUIDIFF,id[cart[set[0],omega]]] := composite[SWAP,inverse[rotate[NATADD]],inverse[LEFT[0]]] (* added 2002 November 3 based on EQUIDIFF.NB *) composite[EQUIDIFF,id[cart[V,V]]] := EQUIDIFF (* added 2002 November 3 based on EQUIDIFF.NB *) composite[EQUIDIFF,id[complement[cart[V,V]]]] := 0 (* added 2003 August 17 based on EQDF-SUB.NB *) composite[EQUIDIFF,id[composite[id[omega],x_,id[omega]]]] := composite[EQUIDIFF,id[x]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[EQUIDIFF,id[union[S,inverse[S]]]] := EQUIDIFF (* added 2003 July 20 based on EQUIDIFF.NB *) composite[EQUIDIFF,inverse[FIRST]] := composite[id[cart[omega,V]], inverse[rotate[composite[inverse[S],NATADD]]]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[EQUIDIFF,inverse[rotate[NATADD]]] := inverse[rotate[NATADD]] (* added 2003 July 20 based on EQUIDIFF.NB *) composite[EQUIDIFF,inverse[SECOND]] := composite[SWAP,id[cart[omega,V]], inverse[rotate[composite[inverse[S],NATADD]]]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[EQUIDIFF,LEFT[0]] := composite[SWAP,inverse[rotate[NATADD]]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[EQUIDIFF,RIGHT[0]] := inverse[rotate[NATADD]] (* added 2002 November 3 based on EQUIDIFF.NB *) composite[EQUIDIFF,SWAP] := composite[SWAP,EQUIDIFF] (* derived 2004 May 12 in EQUIV.NB *) composite[EQUIV,EQUIV] := EQUIV (* derived 2004 May 12 in EQUIV.NB *) composite[EQUIV,HULL[TRV]] := composite[EQUIV,id[P[cart[V,V]]]] (* derived 2004 June 27 in X1693-97.NB *) composite[EQUIV,IMAGE[id[cart[x_,x_]]],EQUIV] := composite[IMAGE[id[cart[x,x]]],EQUIV] (* derived 2004 May 12 in EQUIV.NB *) composite[EQUIV,IMAGE[id[cart[V,V]]]] := EQUIV (* derived 2004 June 6 in EQV-C.NB *) composite[eqv[x_],complement[eqv[x_]]] := composite[id[fix[eqv[x]]],complement[eqv[x]]] (* derived 2004 May 12 in EQV-GEN.NB *) composite[eqv[x_],eqv[x_]] := eqv[x] (* derived 2004 December 16 in RFX-CORE.NB *) composite[eqv[x_],id[fix[trv[x_]]]] := eqv[x] (* derived 2005 April 21 in FACT-DIV.NB *) composite[FACTORIAL,id[intersection[omega,x_]]] := composite[FACTORIAL,id[x]] (* derived 2005 April 16 in FACTRL.NB *) composite[FACTORIAL,id[omega]] := FACTORIAL (* derived 2005 April 16 in FACTRL.NB *) composite[FACTORIAL,SUCC] := composite[NATMUL,intersection[composite[inverse[FIRST],SUCC],composite[inverse[SECOND],FACTORIAL]]] (* Theorem FIN-CO3 in FINITE proved 2000 April 20 *) composite[FINITE,x_] := cart[domain[x],V] (* Theorem FIN-CO4 in FINITE proved 2000 April 20 *) composite[x_,FINITE] := cart[V,range[x]] (* added 1999 November 4 based on ASSOC.NB *) composite[FIRST,ASSOC] := composite[FIRST,FIRST] (* added 2000 August 9 based on DOROTEST.NB *) composite[FIRST,complement[inverse[E]]] := cart[V,V] (* Theorem X-1ST-CO in X1 proved 2000 July 31 *) composite[FIRST,cross[x_,y_]] := composite[x,FIRST,id[cart[V,domain[y]]]] (* added 1999 August 31 based on 12-CO-DI *) composite[FIRST,Di] := cart[V,V] (* added 2001 December 23 based on DORA-2.NB *) composite[FIRST,DORA] := IMAGE[FIRST] (* Theorem DUP1ST-2 in DUP1 proved 1998 November 29 *) composite[FIRST,DUP] := Id (* added 2003 July 20 based on EQUIDIFF.NB *) composite[FIRST,EQUIDIFF] := composite[rotate[composite[inverse[S],NATADD]],id[cart[omega,V]]] (* added 2002 October 22 based on CO-ID.NB *) composite[FIRST,FIRST,id[cart[cart[V,V],V]]] := composite[FIRST,FIRST] (* derived 2005 July 30 in RO-ASSOC.NB *) composite[FIRST,FIRST,id[inverse[DUP]]] := composite[SECOND,id[inverse[DUP]]] (* added 2002 December 30 based on RO-ROT.NB *) composite[FIRST,FIRST,intersection[composite[x_,FIRST], composite[cross[inverse[SECOND],Id],SECOND]]] := rotate[composite[inverse[x],ROT]] (* added 2007 based on RIF-IN.NB *) composite[FIRST,id[cart[x_,y_]],inverse[RIF]] := composite[SWAP,id[inverse[x]],cross[Id,y]] (* added 2003 May 30 based on RESTRICT.NB *) composite[FIRST,id[cart[x_,P[Id]]],inverse[COMPOSE]] := composite[id[x],inverse[RESTRICT]] (* added 2003 January 12 based on ITERATE.NB *) composite[FIRST,id[cart[x_,y_]],power[z_]] := composite[id[x],iterate[inverse[z],y]] (* Inverse of Normalization Rule for RIGHT[x] added 1999 August 16 *) composite[FIRST,id[cart[y_,set[x_]]]] := composite[id[y],inverse[RIGHT[x]]] composite[FIRST,id[cart[V,V]]] := FIRST composite[FIRST,id[complement[cart[V,V]]]] := 0 (* added 2001 February 4 based on CLOSED.NB *) composite[FIRST,id[x_],complement[inverse[rotate[y_]]]] := composite[intersection[complement[y],composite[inverse[x],FIRST]],inverse[SECOND]] composite[FIRST,id[composite[Id,x_]]] := composite[FIRST,id[x]] (* derived 2005 July 30 in CATORELN.NB *) composite[FIRST,id[composite[IMAGE[DUP],IMAGE[FIRST],id[P[cart[V,V]]]]],inverse[COMPOSE]] := id[P[cart[V,V]]] (* added 1999 October 13 based on SESSION.3 *) composite[FIRST,id[x_],cross[y_,z_]] := intersection[composite[y,FIRST],composite[inverse[x],z,SECOND]] (* Theorem DUP1ST-3 in DUP1 proved 1998 November 29 *) composite[FIRST,id[Id]] := inverse[DUP] composite[FIRST,id[id[x_]]] := composite[id[x],inverse[DUP]] (* from REPLACE.LOG *) composite[FIRST,id[x_],intersection[composite[inverse[FIRST],y_], composite[inverse[SECOND],z_]]] := intersection[y,composite[inverse[x],z]] (* Theorem 1ST-CO-2 in 1ST proved 1999 August 24 *) composite[FIRST,id[x_],inverse[FIRST]] := id[domain[x]] (* derived 2004 February 10 in TO.NB *) composite[FIRST,id[INVERSE],inverse[CUP]] := inverse[HULL[SYM]] (* added 2001 February 4 based on CLOSED.NB *) composite[FIRST,id[x_],inverse[rotate[y_]]] := composite[intersection[y,composite[inverse[x],FIRST]],inverse[SECOND]] (* added 2002 April 8 based on UCL-ACL.NB *) composite[FIRST,id[inverse[E]],UB[complement[cross[E,Id]]]] := composite[complement[inverse[E]],SUBVAR] (* added 2001 May 24 based on REIFY.NB *) composite[FIRST,id[inverse[S]],intersection[composite[inverse[DIF],SECOND], composite[inverse[SECOND],FIRST]]] := composite[CUP,id[DISJOINT]] composite[FIRST,id[x_],inverse[SECOND]] := inverse[x] (* added 2001 February 3 based in IMG9B.NB *) composite[FIRST,intersection[composite[complement[inverse[rotate[x_]]],y_], composite[inverse[SECOND],z_]]] := composite[complement[x], intersection[composite[inverse[FIRST],z], composite[inverse[SECOND],y]]] (* added 2002 December 30 based on RO-TW.NB *) composite[FIRST,intersection[composite[x_,cross[Id,FIRST]], composite[inverse[SECOND],SECOND,SECOND]]] := composite[rotate[twist[x]],SWAP] (* added 2002 December 30 based on RO-TW.NB *) composite[FIRST,intersection[composite[x_,cross[Id,SECOND]], composite[inverse[SECOND],FIRST,SECOND]]] := composite[rotate[composite[SWAP,twist[x]]],SWAP] (* added 2003 May 30 based on FIX-ROT.NB *) composite[FIRST,intersection[composite[cross[inverse[FIRST],Id],FIRST], composite[SWAP,cross[Id,inverse[SECOND]],SECOND]]] := composite[RIF,cross[SWAP,SWAP]] (* added 1999 November 30 based on TRIRULES.1 *) composite[FIRST,intersection[composite[x_,FIRST], composite[inverse[SECOND],SECOND]]] := rotate[composite[inverse[x],SWAP]] (* added 2002 December 23 based on REPLACE.NB *) composite[FIRST,intersection[composite[intersection[composite[inverse[FIRST],u_], composite[inverse[SECOND],v_]],w_],composite[inverse[SECOND],x_]]] := composite[u,intersection[w,composite[inverse[v],x]]] (* added 1999 December 1 based on TRI-E.NB *) composite[FIRST,intersection[ composite[inverse[E],IMAGE[SWAP],x_], composite[inverse[SECOND],y_]]] := composite[SECOND,intersection[composite[inverse[E],x], composite[inverse[FIRST],y]]] (* added 2001 May 25 based on FUNPART.NB *) composite[FIRST,intersection[composite[inverse[IMG],SINGLETON,SECOND], composite[inverse[SECOND],SINGLETON,FIRST]]] := composite[inverse[FUNPART],E] (* added 2002 December 28 based on REPLACE.NB *) composite[FIRST,intersection[composite[inverse[RIF],x_,FIRST], composite[inverse[SECOND],y_,SECOND]]] := composite[SWAP,RIF,cross[composite[SWAP,x],composite[SWAP,y]]] (* added 2001 January 20 based on TWIST-4.NB *) composite[FIRST,intersection[composite[inverse[RIF],y_,SECOND], composite[inverse[SECOND],x_,FIRST]]] := composite[RIF,cross[x,y]] (* revised 1999 November 30 based on ROT-SWAP *) composite[FIRST,intersection[composite[inverse[SECOND],FIRST],composite[x_,SECOND]]] := composite[rotate[composite[inverse[x],SWAP]],SWAP] (* added 2002 October 29 based on RO-I.NB *) composite[FIRST,intersection[inverse[rotate[x_]],inverse[rotate[y_]]]] := composite[intersection[x,y],inverse[SECOND]] (* added 1999 November 4 based on ASSOC.NB *) composite[FIRST,inverse[ASSOC]] := cross[Id,FIRST] (* added 2000 July 24 based on CAPCUP.NB *) composite[FIRST,inverse[CAP]] := S (* added 2000 July 24 based on CAPCUP.NB *) composite[FIRST,inverse[CUP]] := inverse[S] (* added 2001 March 8 based on IMIMG.NB *) composite[FIRST,inverse[DIF]] := S (* added 2002 January 6 based on LAMBDA42.NB *) composite[FIRST,inverse[IMG],E] := composite[inverse[IMAGE[SECOND]],E] (* added 2003 August 11 based on DOROZADD.NB *) composite[FIRST,inverse[INTADD]] := cart[Z,Z] (* added 2002 June 21 based on NATADD.NB *) composite[FIRST,inverse[NATADD]] := composite[id[omega],inverse[S],id[omega]] (* derived 2005 February 18 in MUL-NORM.NB *) composite[FIRST,inverse[NATMUL]] := inverse[DIV] (* added 2001 February 1 based on RIF-1.NB *) composite[FIRST,inverse[RIF]] := composite[inverse[SECOND],FIRST] (* added 1999 September 12 based on 1999\SEP\07\ROTATE.8 *) composite[FIRST,inverse[ROT]] := cross[SECOND,Id] (* added 1999 October 17 based on 1999\OCT\15\WORK\SESSION.1 *) composite[FIRST,inverse[rotate[x_]]] := composite[x,inverse[SECOND]] (* Theorem 2ND-CO2 in 2ND proved 1998 November 5 *) composite[FIRST,inverse[SECOND]] := cart[V,V] (* added 1999 August 16 based on session NORMAL.5 *) composite[FIRST,LEFT[x_]] := cart[V,set[x]] (* added 2001 January 20 based on RIF-2.NB *) composite[FIRST,RIF] := composite[SECOND,FIRST,id[composite[inverse[SECOND],FIRST]]] (* Theorem RT-1ST in RIGHT proved 1999 August 24 *) composite[FIRST,RIGHT[x_]] := id[image[V,set[x]]] (* added 1999 September 12 based on 1999\SEP\07\ROTATE.8 *) composite[FIRST,ROT] := composite[cross[Id,FIRST],SWAP] (* added 2002 October 22 based on CO-ID.NB *) composite[FIRST,SECOND,id[cart[V,cart[V,V]]]] := composite[FIRST,SECOND] (* derived 2005 July 30 in RO-ASSOC.NB *) composite[FIRST,SECOND,id[DUP]] := composite[FIRST,id[DUP]] (* Theorem 2ND-SW-1 in 2ND proved 1998 November 3 *) composite[FIRST,SWAP] := SECOND (* added 1999 October 11 based on 1999\OCT\10\ASSOC.2 *) composite[FIRST,TWIST] := cross[FIRST,FIRST] (* added 2003 July 20 based on DIRECT12.NB *) composite[FIRST,twist[x_]] := composite[rotate[composite[FIRST,x]],SWAP] (* added 2001 November 27 based on FUNPART1.NB *) composite[FUNPART,CAP,cross[Id,FUNPART]] := composite[CAP,cross[Id,FUNPART]] (* added 2002 September 26 *) composite[FUNPART,CART] := union[cart[cart[V,complement[range[SINGLETON]]],set[0]], composite[CART,id[cart[V,range[SINGLETON]]]]] (* added 2001 November 25 based on FUNP-1.NB *) composite[FUNPART,COMPOSE,cross[Id,FUNPART]] := composite[COMPOSE,cross[FUNPART,FUNPART]] (* added 2000 September 9 based on FNP-2.NB *) composite[FUNPART,FUNPART] := FUNPART (* derived 2004 August 28 in FUNPTHIN.NB *) composite[funpart[x_],id[domain[x_]]] := funpart[x] (* derived 2004 June 19 in REPLACE.NB *) composite[funpart[x_],id[domain[oopart[x_]]]] := oopart[x] (* added 2000 September 9 based on FNP-2.NB *) composite[funpart[x_],id[domain[VERTSECT[x_]]]] := funpart[x] (* derived 2004 June 14 in FU-F-O.NB *) composite[funpart[x_],id[fix[composite[inverse[x_],Di,x_]]]] := 0 (* added 2001 November 25 based on FUNP-1.NB *) composite[FUNPART,id[FUNS]] := id[FUNS] (* derived 2005 November 5 in FIN-FUNP.NB *) composite[FUNPART,id[image[inverse[FUNPART],x_]]] := composite[id[x],FUNPART] (* derived 2004 August 28 in FUNP-VS.NB *) composite[FUNPART,IMAGE[composite[id[x_],inverse[FIRST]]]] := composite[IMAGE[composite[id[funpart[x]],inverse[FIRST]]],id[P[domain[VERTSECT[x]]]]] (* added 2002 April 6 based on FUNPART.NB *) composite[FUNPART,IMAGE[DUP]] := IMAGE[DUP] (* added 2000 September 9 based on FNP-3.NB *) composite[FUNPART,IMAGE[id[cart[V,V]]]] := FUNPART (* added 2002 April 6 based on FUNP-ROT.NB *) composite[FUNPART,IMAGE[inverse[ASSOC]],FUNPART] := composite[IMAGE[inverse[ASSOC]],FUNPART] (* derived 2004 May 9 in OOPART.NB *) composite[FUNPART,IMAGE[SWAP],FUNPART] := composite[IMAGE[SWAP],OOPART,FUNPART] (* derived 2004 May 9 in OOPART.NB *) composite[FUNPART,IMAGE[SWAP],OOPART] := composite[IMAGE[SWAP],OOPART] (* added 2000 February 5 based on FUNPART.NB *) composite[funpart[x_],inverse[x_]] := id[range[funpart[x]]] (* added 2003 May 11 based on FUNPART.NB *) composite[FUNPART,INVERSE,PLUS] := composite[INVERSE,PLUS] (* added 2003 May 11 based on FUNPART.NB *) composite[FUNPART,LAMBHULL] := LAMBHULL (* derived 2004 May 9 in OOPART.NB *) composite[FUNPART,OOPART] := OOPART (* added 2003 May 11 based on FUNPART.NB *) composite[FUNPART,PLUS] := PLUS (* added 2002 April 6 based on FUNPART.NB *) composite[FUNPART,RCF] := RCF (* derived 2004 August 28 in FUNP-VS.NB *) composite[FUNPART,RESTRICT] := composite[inverse[S],FUNPART] (* added 2001 November 27 based on IM-SS.NB *) composite[FUNPART,SINGLETON] := union[cart[complement[cart[V,V]],set[0]], composite[SINGLETON,id[cart[V,V]]]] (* added 2003 June 15 based on RA-VS.NB *) composite[FUNPART,VS] := VS (* derived 2005 October 5 in GLB-DIV.NB *) composite[GLB[DIV],id[intersection[x_,P[omega]]]] := composite[GLB[DIV],id[x]] (* derived 2005 October 2 in POLUBGLB.NB *) composite[GLB[x_],SINGLETON] := intersection[complement[composite[complement[x],inverse[x]]],inverse[x]] (* added 2000 December 24 based on LT-CO-S *) composite[GREATEST[x_],complement[E]] := composite[id[fix[x]],Di] (* derived 2004 January 25 in GT-LT-CO.NB *) composite[GREATEST[x_],DISJOINT] := composite[id[fix[x]],complement[inverse[E]]] (* added 2000 December 14 based on LT-CO-E.NB *) composite[GREATEST[x_],E] := composite[id[fix[x]],x] (* added 2002 November 16 based on FACTEQDF.NB *) composite[GREATEST[EQUIDIFF],id[cliques[EQUIDIFF]]] := GREATEST[EQUIDIFF] (* added 2002 November 16 based on FACTEQDF.NB *) composite[GREATEST[EQUIDIFF],inverse[GREATEST[EQUIDIFF]]] := EQUIDIFF (* added 2002 November 17 based on LB-UB.NB *) composite[GREATEST[x_],id[P[domain[x_]]]] := GREATEST[x] (* derived 2004 January 25 in GT-LT-CO.NB *) composite[GREATEST[x_],inverse[LB[y_]]] := composite[id[fix[x]],y] (* added 2000 December 24 based on LT-CO-S *) composite[GREATEST[x_],inverse[S]] := composite[inverse[E],IMAGE[id[fix[x]]]] (* derived 2004 January 25 in GT-LT-CO.NB *) composite[GREATEST[x_],inverse[UB[y_]]] := composite[id[fix[x]],inverse[y]] (* added 2000 December 14 based on PAIRSET.NB *) composite[GREATEST[x_],PAIRSET] := union[composite[FIRST,id[composite[inverse[x],id[fix[x]]]]], composite[SECOND,id[composite[id[fix[x]],x]]]] (* added 2000 December 18 based on LB-LB.NB *) composite[GREATEST[Q],id[cliques[Q]]] := GREATEST[Q] (* added 2000 December 18 based on LB-LB.NB *) composite[GREATEST[Q],inverse[GREATEST[Q]]] := Q (* added 2000 December 19 based on GT-S.NB *) composite[GREATEST[x_],S] := composite[id[fix[x]],UB[x]] (* added 2000 November 19 based on GT-CO-SG.NB *) composite[GREATEST[x_],SINGLETON] := id[fix[x]] (* derived 2005 October 6 in GLB-VS.NB *) composite[GREATEST[x_],VERTSECT[composite[id[domain[x_]],LB[x_]]]] := composite[GLB[x],id[domain[VERTSECT[composite[id[domain[x]],LB[x]]]]]] (* derived 2004 March 9 in IDEMLTGT.NB *) composite[GREATEST[x_],VERTSECT[GREATEST[x_]]] := GREATEST[x] (* added 2001 March 31 based on HF-IM.NB *) composite[HC,CAP] := composite[CAP,cross[HC,HC]] (* derived 2004 December 24 in CARD.NB *) composite[HC,CARD] := CARD (* derived 2005 January 5 in CORE-ON.NB *) composite[HC,CORE[OMEGA]] := CORE[OMEGA] (* added 2001 March 31 based on HF.NB *) composite[HC,HC] := HC (* added 2001 March 31 based on HF.NB *) composite[HC,id[FULL]] := id[FULL] (* added 2003 January 18 based on HC-TC-OM.NB *) composite[HC,id[omega]] := id[omega] (* added 2002 May 5 based on REPLACE.NB *) composite[HC,id[OMEGA]] := id[OMEGA] (* added 2002 May 4 based on HC-OMEGA.NB *) composite[HC,IMAGE[id[x_]]] := composite[IMAGE[id[H[x]]],HC] (* derived 2004 August 14 in ZN-RULES.NB *) composite[HC,IMAGE[ZN]] := IMAGE[ZN] (* added 2001 March 31 based on REMOVED.NB *) composite[HC,POWER] := composite[POWER,HC] (* added 2001 August 1 based on RK-TC.NB *) composite[HC,RANK] := RANK (* added 2001 March 31 based on HF.NB *) composite[HC,TC] := TC (* derived 2004 August 14 in ZN-RULES.NB *) composite[HC,VERTSECT[ZN]] := VERTSECT[ZN] (* derived 2004 October 7 in HULL-I.NB *) composite[HULL[EQV],HULL[SYM]] := HULL[EQV] (* derived 2004 October 7 in HULL-I.NB *) composite[HULL[EQV],HULL[TRV]] := HULL[EQV] (* added 2003 February 21 based on IDEMHULL.NB *) composite[HULL[x_],HULL[x_]] := HULL[x] (* derived 2004 October 7 in HULL-I.NB *) composite[HULL[x_],HULL[intersection[x_,y_]]] := HULL[intersection[x,y]] (* derived 2004 May 4 in CRHL-FIX.NB *) composite[HULL[x_],id[x_]] := id[x] (* added 2002 May 6 based on FIX-HULL.NB *) composite[HULL[x_],id[Aclosure[x_]]] := id[Aclosure[x]] (* added 2001 May 15 based on HULL-1.NB *) composite[HULL[x_],id[complement[image[inverse[S],x_]]]] := 0 (* added 2002 February 2 based on RA-HULL.NB *) composite[HULL[x_],id[domain[VERTSECT[composite[id[x_],S]]]]] := composite[BIGCAP,VERTSECT[composite[id[x],S]]] (* added 2001 May 2 based on COREHULL.NB *) composite[HULL[x_],id[image[inverse[S],x_]]] := HULL[x] (* derived 2005 October 5 in GLB-DIV.NB *) composite[HULL[image[VERTSECT[DIV],omega]],id[intersection[x_,P[omega]]]] := composite[HULL[image[VERTSECT[DIV],omega]],id[x]] (* derived 2004 October 7 in HULL-I.NB *) composite[HULL[intersection[x_,y_]],HULL[x_]] := HULL[intersection[x,y]] (* added 2003 September 24 based on PO-FACTS.NB *) composite[HULL[invar[x_]],CUP] := composite[CUP,cross[HULL[invar[x]],HULL[invar[x]]]] (* derived 2004 June 6 in EQV-TRV.NB *) composite[HULL[invar[x_]],id[P[domain[VERTSECT[x_]]]]] := HULL[invar[x]] (* derived 2004 June 6 in EQV-TRV.NB *) composite[HULL[invar[x_]],id[P[domain[VERTSECT[trv[x_]]]]]] := HULL[invar[x]] (* derived 2004 June 15 in HULIVRSW.NB *) composite[HULL[invar[SWAP]],id[P[cart[V,V]]]] := HULL[SYM] (* derived 2005 July 24 in TC-HULL.NB *) composite[HULL[omega],TC] := HULL[omega] (* added 2003 September 24 based on PO-FACTS.NB *) composite[HULL[RFX],CUP] := composite[CUP,cross[HULL[RFX],HULL[RFX]]] (* added 2003 September 24 based on PO-FACTS.NB *) composite[HULL[subvar[x_]],CUP] := composite[CUP,cross[HULL[subvar[x]],HULL[subvar[x]]]] (* added 2003 September 24 based on PO-FACTS.NB *) composite[HULL[SYM],CUP] := composite[CUP,cross[HULL[SYM],HULL[SYM]]] (* derived 2004 October 7 in HULL-I.NB *) composite[HULL[SYM],HULL[EQV]] := HULL[EQV] (* added 2003 March 5 based on TRV-CART.NB *) composite[HULL[TRV],CART] := CART (* derived 2004 October 7 in HULL-I.NB *) composite[HULL[TRV],HULL[EQV]] := HULL[EQV] (* added 2003 November 6 based on HULL-EQV.NB *) composite[HULL[TRV],HULL[SYM]] := HULL[EQV] (* added 2002 February 13 based on HULL-TRV.NB *) composite[HULL[TRV],id[P[Id]]] := id[P[Id]] (* added 2002 February 13 based on HULL-TRV.NB *) composite[HULL[TRV],id[TRV]] := id[TRV] (* added 2003 March 5 based on TRV-ID.NB *) composite[HULL[TRV],IMAGE[DUP]] := IMAGE[DUP] (* added 2003 March 5 based on TRV-IN.NB *) composite[HULL[TRV],INVERSE] := composite[INVERSE,HULL[TRV]] (* added 2003 October 15 based on ACYCLIC.NB *) composite[HULL[TRV],inverse[IMAGE[id[cart[V,V]]]]] := HULL[TRV] (* added 2002 April 4 based on TRV.NB *) composite[HULL[TRV],inverse[S],IMAGE[id[cart[V,V]]]] := composite[HULL[TRV],inverse[S]] (* added 2003 September 24 based on PO-FACTS.NB *) composite[HULL[Uclosure[x_]],CUP] := composite[CUP,cross[HULL[Uclosure[x]],HULL[Uclosure[x]]]] (* added 2003 July 26 based on HULL-Z.NB *) composite[HULL[Z],COMPOSE,cross[PLUS,PLUS]] := composite[COMPOSE,cross[PLUS,PLUS]] (* added 2003 July 25 based on INTADD.NB *) composite[HULL[Z],COMPOSE,id[cart[Z,Z]]] := INTADD (* added 2003 July 26 based on INTADDSW.NB *) composite[HULL[Z],COMPOSE,SWAP,id[cart[Z,Z]]] := INTADD (* added 2003 July 26 based on HULL-Z.NB *) composite[HULL[Z],id[Z]] := id[Z] (* added 2003 August 7 based on EQDFHULZ.NB *) composite[HULL[Z],SINGLETON] := composite[VERTSECT[EQUIDIFF],id[cart[omega,omega]]] (* added 2003 August 7 based on EQDFHULZ.NB *) composite[HULL[Z],VERTSECT[EQUIDIFF]] := VERTSECT[EQUIDIFF] (* Theorem ID-COCO1 in ID/ID-CO *) composite[Id,x_,y_] := composite[x,y] (* Theorem ID-CO9 in ID/ID-CO *) composite[x_,Id] := composite[Id,x] (* Theorem ADJ-ID in ADJ proved 1999 March 11 *) composite[Id,ADJOIN[x_]] := ADJOIN[x] (* derived 2004 December 2 in PRECISE.NB *) composite[id[x_],ASSOC] := composite[ASSOC,id[rotate[inverse[x]]]] (* added 2002 December 16 based on RS-VS.NB *) composite[id[x_],BIGCUP] := composite[BIGCUP,id[image[inverse[BIGCUP],x]]] (* added 2000 September 4 based on NEW.M *) composite[id[BIJ],INVERSE] := composite[INVERSE,id[BIJ]] (* added 2000 September 4 based on NEW.M *) composite[id[BIJ],inverse[IMAGE[id[cart[V,V]]]]] := id[BIJ] (* added 2000 September 4 based on NEW.M *) composite[id[BIJ],inverse[IMAGE[SWAP]]] := composite[INVERSE,id[BIJ]] (* added 2003 July 16 based on L-R-PAIR.NB *) composite[id[cart[cart[set[x_],set[y_]],V]], inverse[SECOND]] := LEFT[PAIR[x,y]] (* added 2002 October 22 based on CO-ID.NB *) composite[id[cart[cart[V,V],cart[V,V]]],TWIST] := TWIST (* added 2007 based on RIF-IN.NB *) composite[id[cart[x_,cart[V,V]]],inverse[RIF]] := composite[id[cart[x,V]],inverse[RIF]] (* added 2007 based on RIF-IN.NB *) composite[id[cart[cart[V,V],x_]],inverse[RIF]] := composite[id[cart[V,x]],inverse[RIF]] (* added 2002 October 22 based on CO-ID.NB *) composite[id[cart[cart[V,V],V]],inverse[FIRST],inverse[FIRST]] := composite[inverse[FIRST],inverse[FIRST]] (* added 2002 October 22 based on CO-ID.NB *) composite[id[cart[cart[V,V],V]],inverse[FIRST],inverse[SECOND]] := composite[inverse[FIRST],inverse[SECOND]] (* added 2002 October 22 based on CO-ID.NB *) composite[id[cart[cart[V,V],V]],ROT] := ROT (* Theorem X-CO-3 in X3 proved 2000 August 1 *) composite[id[cart[u_,v_]],cross[x_,y_]] := cross[composite[id[u],x],composite[id[v],y]] (* derived 2005 August 7 in DORA-FIN.NB *) composite[id[cart[FINITE,FINITE]],DORA,id[FINITE]] := composite[DORA,id[FINITE]] (* added 2002 November 2 based on PAIR-V.NB *) composite[id[cart[x_,y_]],LeftPairV] := 0 (* added 2002 June 20 based on ITERNORM.NB *) composite[id[cart[omega,V]],inverse[NATADD]] := inverse[NATADD] (* derived 2005 February 18 in MUL-NORM.NB *) composite[id[cart[omega,V]],inverse[NATMUL]] := inverse[NATMUL] (* added 2002 June 5 based on COMMUTE.NB *) composite[id[cart[omega,V]],power[SUCC]] := composite[id[cart[V,omega]],power[SUCC]] (* added 2002 November 2 based on PAIR-V.NB *) composite[id[cart[x_,y_]],RightPairV] := 0 (* added 1999 August 16 based on ASSOC.LOG *) composite[id[cart[y_,set[x_]]],inverse[FIRST]] := composite[RIGHT[x],id[y]] (* added 1999 August 16 based on ASSOC.LOG *) composite[id[cart[set[x_],y_]],inverse[SECOND]] := composite[LEFT[x],id[y]] (* added 2003 July 16 based on L-R-PAIR.NB *) composite[id[cart[V,cart[set[x_],set[y_]]]], inverse[FIRST]] := RIGHT[PAIR[x,y]] (* added 2002 October 22 based on CO-ID.NB *) composite[id[cart[V,cart[V,V]]],ASSOC] := ASSOC (* added 2002 October 22 based on CO-ID.NB *) composite[id[cart[V,cart[V,V]]],inverse[SECOND],inverse[FIRST]] := composite[inverse[SECOND],inverse[FIRST]] (* added 2002 October 22 based on CO-ID.NB *) composite[id[cart[V,cart[V,V]]],inverse[SECOND],inverse[SECOND]] := composite[inverse[SECOND],inverse[SECOND]] (* added 2003 July 16 based on LAMBPAIR.NB *) composite[id[cart[V,intersection[x_,set[y_]]]],inverse[FIRST]] := composite[RIGHT[y],id[image[V,intersection[x,set[y]]]]] (* added 2002 December 19 based on PLUSNORM.NB *) composite[id[cart[V,omega]], intersection[composite[inverse[FIRST],inverse[power[SUCC]]], composite[inverse[SECOND],SECOND]],inverse[FIRST]] := composite[SWAP,inverse[rotate[NATADD]]] (* added 2002 June 20 based on ITERNORM.NB *) composite[id[cart[V,omega]],inverse[NATADD]] := inverse[NATADD] (* added 2003 July 5 based on PLUS-ISO.NB *) composite[id[cart[V,omega]], inverse[rotate[composite[inverse[power[SUCC]],SWAP]]]] := composite[SWAP,inverse[rotate[NATADD]]] (* added 2002 June 12 based on NATADD.NB *) composite[id[cart[V,omega]],power[SUCC]] := composite[SWAP,inverse[rotate[NATADD]]] (* added 1999 October 31 based on ASSOC.1 *) composite[id[cart[V,V]],ASSOC] := ASSOC (* added 2001 December 23 based on DORA-1.NB *) composite[id[cart[V,V]],DORA] := DORA (* added 2002 November 3 based on EQUIDIFF.NB *) composite[id[cart[V,V]],EQUIDIFF] := EQUIDIFF composite[id[cart[V,V]],intersection[x_,composite[inverse[FIRST],y_]]] := intersection[x,composite[inverse[FIRST],y]] composite[id[cart[V,V]],intersection[x_,composite[inverse[SECOND],y_]]] := intersection[x,composite[inverse[SECOND],y]] (* added 1999 December 14 based on ROT-FLIP.NB *) composite[id[cart[V,V]],inverse[ASSOC]] := inverse[ASSOC] composite[id[cart[V,V]],inverse[FIRST]] := inverse[FIRST] (* added 2002 November 3 based on SIMPLIFY.NB *) composite[id[cart[V,V]],inverse[NATADD]] := inverse[NATADD] (* added 2001 February 2 based on ROTATE.NB *) composite[id[cart[V,V]],inverse[RIF]] := inverse[RIF] (* added 1999 October 12 based on ROT.5 *) composite[id[cart[V,V]],inverse[ROT]] := inverse[ROT] (* added 1999 October 17 based on 1999\OCT\15\WORK\SESSION.1 *) composite[id[cart[V,V]],inverse[rotate[x_]]] := inverse[rotate[x]] composite[id[cart[V,V]],inverse[SECOND]] := inverse[SECOND] (* added 2002 November 9 based on TW-I-FL.NB *) composite[id[cart[V,V]],inverse[twist[x_]]] := inverse[twist[x]] (* added 2002 June 4 based on PWR-COID.NB *) composite[id[cart[V,V]],iterate[cross[x_,y_],Id]] := iterate[cross[x,y],Id] (* added 1999 November 4 based on 1999/NOV/03/WORK/FLIP-ROT.1 *) composite[id[cart[V,V]],LEFT[x_]] := LEFT[x] (* added 2002 June 4 based on PWR-COID.NB *) composite[id[cart[V,V]],power[x_]] := power[x] (* added 2002 October 22 based on CO-ID.NB *) composite[id[cart[V,V]],RIF] := RIF (* added 1999 November 4 based on 1999/NOV/03/WORK/FLIP-ROT.1 *) composite[id[cart[V,V]],RIGHT[x_]] := RIGHT[x] (* added 1999 October 12 based on ROT.5 *) composite[id[cart[V,V]],ROT] := ROT (* Theorem SW-CO-5 in SW3 *) composite[id[cart[V,V]],SWAP] := SWAP (* added 1999 October 10 based on TWIST.2 *) composite[id[cart[V,V]],TWIST] := TWIST (* added 2001 January 20 based on TWIST-2.NB *) composite[id[cart[V,V]],twist[x_]] := twist[x] (* added 2002 November 16 based on FACTEQDF.NB *) composite[id[cliques[EQUIDIFF]],E] := inverse[GREATEST[EQUIDIFF]] (* added 2002 November 16 based on FACTEQDF.NB *) composite[id[cliques[EQUIDIFF]],inverse[GREATEST[EQUIDIFF]]] := inverse[GREATEST[EQUIDIFF]] (* added 2000 December 9 based on CLIQUES.NB *) composite[id[cliques[x_]],S,id[complement[cliques[x_]]]] := 0 (* added 2003 July 4 based on COARSER.NB *) composite[Id,COARSER] := COARSER (* added 2001 May 18 based on COMMUTE2.NB *) composite[Id,COMMUTE] := COMMUTE (* discovered 1998 October 17 *) composite[id[complement[cart[u_,v_]]],cross[x_,y_]] := union[cross[x,composite[id[complement[v]],y]],cross[composite[id[complement[u]],x],y]] (* added 2002 November 3 based on EQUIDIFF.NB *) composite[id[complement[cart[V,V]]],EQUIDIFF] := 0 composite[id[complement[cart[V,V]]],inverse[FIRST]] := 0 composite[id[complement[cart[V,V]]],inverse[SECOND]] := 0 (* added 2002 June 6 based on POWERADD.NB *) composite[id[complement[cart[V,V]]],power[x_]] := 0 (* added 2003 June 23 based on DI-RULES.NB *) composite[id[complement[x_]],Di,id[x_]] := cart[x,complement[x]] composite[id[complement[domain[x_]]],inverse[x_]] := 0 (* Theorem IDX-C-DO in IDX2 proved 1998 November 19 *) composite[x_,id[complement[domain[x_]]]] := 0 (* added 2002 November 2 based on PAIR-V.NB *) composite[id[complement[image[V,x_]]],y_,id[image[V,x_]]] := 0 (* derived 2005 October 2 in PO-REIF.NB *) composite[id[complement[image[V,intersection[complement[image[inverse[IMAGE[id[x_]]],PO]],image[CART,Id]]]]],x_] := po[x] (* derived 2005 October 11 in TO-REIF.NB *) composite[id[complement[image[V,intersection[complement[image[inverse[IMAGE[id[x_]]],TO]],image[CART,Id]]]]],x_] := to[x] (* added 2003 August 8 based on REPLACE.NB *) composite[id[complement[image[V,intersection[x_,complement[y_]]]]],inverse[plus[x_]],plus[y_]] := plus[natsub[y,x]] (* added 2002 July 30 based on IMIN-ADD.NB *) composite[id[complement[omega]],image[inverse[NATADD],x_]] := 0 (* added 2002 October 24 based on SUBVAR.NB *) composite[id[complement[P[complement[set[0]]]]],SUBVAR] := SUBVAR (* Theorem IDX-C-RA in IDX2 proved 1998 November 19 *) composite[id[complement[range[x_]]],x_] := 0 (* added 2003 July 25 based on INTADD.NB *) composite[id[complement[set[0]]],COMPOSE,id[cart[Z,Z]]] := composite[COMPOSE,id[cart[Z,Z]]] (* added 2002 October 22 based on CO-ID.NB *) composite[id[complement[set[0]]],E] := E (* derived 2005 April 23 in FACT-S.NB *) composite[id[complement[set[0]]],FACTORIAL] := FACTORIAL (* derived 2005 October 5 in GLB-DIV.NB *) composite[id[complement[set[0]]],HULL[image[VERTSECT[DIV],omega]]] := HULL[image[VERTSECT[DIV],omega]] (* added 1999 August 11 based on session SG-LOG.5 *) composite[id[complement[set[0]]],IMAGE[SINGLETON]] := composite[IMAGE[SINGLETON],id[complement[set[0]]]] (* added 2002 December 23 based on REPLACE.NB *) composite[id[complement[set[0]]],INVERSE,PLUS] := composite[INVERSE,PLUS] (* added 2002 October 22 based on CO-ID.NB *) composite[id[complement[set[0]]],K] := K (* added 2002 October 22 based on CO-ID.NB *) composite[id[complement[set[0]]],PS] := PS composite[id[complement[set[0]]],SINGLETON] := SINGLETON (* added 2002 May 24 based on ADJOIN.NB *) composite[id[complement[set[0]]],SUCC] := SUCC (* derived 2005 October 17 in VS-RS-DO.NB *) composite[id[complement[set[0]]],VERTSECT[x_]] := composite[VERTSECT[x],id[domain[x]]] (* derived 2004 November 26 in XSCP-MAP.NB *) composite[id[complement[set[0]]],XS] := composite[XS,id[SELECT]] (* derived 2004 September 18 in WF-WRAP.NB *) composite[id[complement[U[subvar[x_]]]],x_] := wf[x] composite[id[composite[Id,x_]],inverse[FIRST]] := composite[id[x],inverse[FIRST]] composite[id[composite[Id,x_]],inverse[SECOND]] := composite[id[x],inverse[SECOND]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[id[composite[id[omega],x_,id[omega]]],EQUIDIFF] := composite[id[x],EQUIDIFF] (* added 2001 January 20 based on COMBINAT.NB *) composite[id[composite[inverse[FIRST],FIRST]], cross[inverse[SECOND],inverse[SECOND]]] := composite[cross[Id,SWAP],inverse[RIF]] (* added 2002 December 28 based on REPLACE.NB *) composite[id[composite[inverse[FIRST],SECOND]], cross[inverse[FIRST],inverse[SECOND]]] := composite[cross[SWAP,SWAP],inverse[RIF]] (* added 2001 January 20 based on RIF-2.NB *) composite[id[composite[inverse[SECOND],FIRST]], cross[inverse[SECOND],inverse[FIRST]]] := inverse[RIF] (* added 2002 October 22 based on CO-ID.NB *) composite[id[composite[SECOND,x_,inverse[SECOND]]],twist[x_]] := twist[x] (* added 2004 April 17 based on CORE.NB *) composite[Id,core[z_,cart[x_,y_]]] := core[z,cart[x,y]] (* added 1999 October 9 based on CROSS.2 *) composite[Id,CROSS] := CROSS (* Theorem X-ID-CO in X1 proved 1998 August 4 *) composite[Id,cross[x_,y_]] := cross[x,y] (* Theorem DI-ID in DI added 1998 July 2 *) composite[Id,Di] := Di (* added 2003 June 23 based on DI-RULES.NB *) composite[id[x_],Di,id[complement[x_]]] := cart[complement[x],x] (* added 1999 October 26 based on DIF-LOG.1 *) composite[Id,DIF] := DIF (* Theorem DJT-ID in DJT *) composite[Id,DISJOINT] := DISJOINT (* added 2002 August 30 based on DIVIDES.NB *) composite[Id,DIV] := DIV (* Theorem IDX-CO4B in IDX3 *) composite[x_,id[domain[x_]]] := composite[Id,x] (* Theorem FUNP-RS2 in FU3 proved 2000 February 5 *) composite[x_,id[domain[funpart[x_]]]] := funpart[x] (* derived 2005 September 27 in LUB-SET.NB *) composite[id[domain[x_]],GLB[x_]] := GLB[x] (* derived 2005 September 27 in GLB-LUB.NB *) composite[id[domain[x_]],intersection[complement[composite[complement[x_],id[domain[x_]],LB[x_]]],LB[x_]]] := GLB[x] (* derived 2005 October 22 in IDX-CO-I.NB *) composite[id[domain[x_]],intersection[y_,inverse[x_]]] := intersection[y,inverse[x]] (* added 2002 October 22 based on CO-ID.NB *) composite[id[domain[x_]],inverse[x_]] := inverse[x] (* added 2002 November 17 based on LB-UB.NB *) composite[id[domain[x_]],LEAST[x_]] := LEAST[x] (* derived 2004 December 11 in RESTRICT.NB *) composite[x_,id[domain[oopart[x_]]]] := oopart[x] (* derived 2004 May 14 in THINPART.NB *) composite[x_,id[domain[VERTSECT[x_]]]] := thinpart[x] (* derived 2004 September 30 in EQV-THNP.NB *) composite[id[domain[VERTSECT[eqv[x_]]]],eqv[x_]] := thinpart[eqv[x]] (* derived 2004 May 14 in REPLACE.NB *) composite[id[domain[VERTSECT[x_]]],inverse[x_]] := inverse[thinpart[x]] (* added 2003 June 17 based on THINRULE.NB *) composite[id[domain[VERTSECT[x_]]],LB[x_]] := composite[inverse[VERTSECT[x]],S] (* derived 2005 October 15 in TO-THIN.NB *) composite[id[domain[VERTSECT[to[x_]]]],thinpart[to[x_]]] := thinpart[to[x]] (* derived 2005 January 26 in THPT-TRV.NB *) composite[id[domain[VERTSECT[trv[x_]]]],thinpart[trv[x_]]] := thinpart[trv[x]] (* Theorem DUP-ID in DUP1 proved 1998 November 5 *) composite[Id,DUP] := DUP (* Theorem DUP-FP3 in DUP proved 1998 November 21 *) composite[id[x_],DUP] := composite[DUP,id[fix[x]]] (* Theorem ID-CO4-E in ID/ID-CO *) composite[Id,E] := E (* added 2002 November 3 based on EQUIDIFF.NB *) composite[Id,EQUIDIFF] := EQUIDIFF (* derived 2004 May 12 in EQV-GEN.NB *) composite[Id,eqv[x_]] := eqv[x] (* derived 2003 December 22 in LOW-CARD.NB *) composite[id[FINITE],inverse[CARD]] := composite[inverse[CARD],id[omega]] (* derived 2004 March 14 in WF-WO.NB *) composite[id[FINITE],PS,id[FINITE]] := composite[id[FINITE],PS] (* added 2003 December 9 based on ITER-K.NB *) composite[id[FINITE],Q] := composite[inverse[CARD],id[omega],CARD] (* Theorem 1ST-ID in 1ST *) composite[Id,FIRST] := FIRST (* Corollary 1ST-IDX in 1ST proved 1998 November 21 *) composite[id[x_],FIRST] := composite[FIRST,id[cart[x,V]]] (* added 2002 October 22 based on CO-ID.NB *) composite[id[fix[ACLOSURE]],ACLOSURE] := ACLOSURE (* added 2002 October 22 based on CO-ID.NB *) composite[id[fix[CARD]],CARD] := CARD (* added 2001 December 17 based on Q-HAT.NB *) composite[id[fix[CARD]],inverse[CARD]] := id[fix[CARD]] (* added 2001 December 17 based on Q-HAT.NB *) composite[id[fix[CARD]],Q] := CARD (* added 1999 December 23 based on ASSOCDUP.NB *) composite[Id,fix[composite[x_,CAP]]] := fix[composite[x,CAP]] (* derived 2004 November 26 in XS-CP.NB *) composite[Id,fix[composite[x_,CART]]] := fix[composite[x,CART]] (* added 2002 December 26 based on REPLACE.NB *) composite[Id,fix[composite[cross[x_,y_],z_]]] := fix[composite[cross[x,y],z]] (* added 2002 November 10 based on FIX-SW-X.NB *) composite[Id,fix[composite[x_,cross[y_,z_]]]] := fix[composite[x,cross[y,z]]] (* added 1999 December 23 based on ASSOCDUP.NB *) composite[Id,fix[composite[x_,CUP]]] := fix[composite[x,CUP]] (* added 1999 December 23 based on ASSOCDUP.NB *) composite[Id,fix[composite[x_,DIF]]] := fix[composite[x,DIF]] composite[Id,fix[composite[x_,FIRST]]] := fix[composite[x,FIRST]] (* added 1999 September 28 based on TRI-FP.LOG *) composite[Id,fix[composite[z_,intersection[composite[x_,FIRST], composite[y_,SECOND]]]]] := fix[composite[z, intersection[composite[x,FIRST],composite[y,SECOND]]]] (* added 2002 October 22 based on CO-ID.NB *) composite[id[fix[composite[x_,y_]]],intersection[x_,inverse[y_]]] := intersection[x,inverse[y]] (* derived 2004 June 14 in FU-F-O.NB *) composite[x_,id[fix[composite[inverse[x_],Di,x_]]]] := intersection[x,composite[Di,x]] composite[Id,fix[composite[inverse[FIRST],x_]]] := fix[composite[inverse[FIRST],x]] composite[Id,fix[composite[inverse[SECOND],x_]]] := fix[composite[inverse[SECOND],x]] (* added 2000 December 3 based on IN-E.NB *) composite[Id,fix[composite[x_,PAIRSET]]] := fix[composite[x,PAIRSET]] composite[Id,fix[composite[x_,SECOND]]] := fix[composite[x,SECOND]] (* added 1998 August 11 *) composite[Id,fix[composite[SWAP,x_]]] := fix[composite[SWAP,x]] (* added 1998 August 11 *) composite[Id,fix[composite[x_,SWAP]]] := fix[composite[x,SWAP]] (* added 1999 December 23 based on ASSOCDUP.NB *) composite[Id,fix[composite[x_,SYMDIF]]] := fix[composite[x,SYMDIF]] (* derived 2004 December 16 in VS-EQV.NB *) composite[id[fix[eqv[x_]]],inverse[VERTSECT[eqv[x_]]],VERTSECT[eqv[x_]],id[fix[eqv[x_]]]] := thinpart[eqv[x]] (* derived 2004 December 16 in RFX-CORE.NB *) composite[id[fix[x_]],x_,id[fix[x_]]] := rfx[x] (* added 2002 October 22 based on CO-ID.NB *) composite[id[fix[x_]],GREATEST[x_]] := GREATEST[x] (* added 2000 January 11 based on HER-FIX1.NB *) composite[id[fix[IMAGE[inverse[S]]]],inverse[IMAGE[inverse[S]]]] := id[fix[IMAGE[inverse[S]]]] (* derived 2005 April 7 in WF-TO.NB *) composite[id[fix[x_]],intersection[Di,complement[inverse[x_]]]] := composite[id[fix[x]],complement[inverse[x]]] (* derived 2004 December 17 in RFX.NB *) composite[id[fix[x_]],inverse[x_],id[fix[x_]]] := inverse[rfx[x]] (* added 2002 October 22 based on CO-ID.NB *) composite[id[fix[x_]],LEAST[x_]] := LEAST[x] (* derived 2005 October 22 in IDX-CO-I.NB *) composite[id[fix[po[x_]]],intersection[y_,inverse[po[x_]]]] := intersection[y,inverse[po[x]]] (* derived 2005 October 22 in IDX-CO-I.NB *) composite[id[fix[po[x_]]],intersection[y_,po[x_]]] := intersection[y,po[x]] (* derived 2005 October 1 in PO-THIN.NB *) composite[id[fix[po[x_]]],inverse[VERTSECT[po[x_]]],inverse[S],VERTSECT[po[x_]],id[fix[po[x_]]]] := thinpart[po[x]] (* derived 2005 October 15 in OO-PO.NB *) composite[id[fix[po[x_]]],inverse[VERTSECT[po[x_]]],S,VERTSECT[po[x_]],id[fix[po[x_]]]] := inverse[thinpart[po[x]]] (* derived 2005 October 22 in IDX-CO-I.NB *) composite[id[fix[to[x_]]],intersection[y_,inverse[to[x_]]]] := intersection[y,inverse[to[x]]] (* derived 2005 October 22 in IDX-CO-I.NB *) composite[id[fix[to[x_]]],intersection[y_,to[x_]]] := intersection[y,to[x]] (* derived 2005 October 15 in OO-PO.NB *) composite[id[fix[to[x_]]],inverse[VERTSECT[to[x_]]],inverse[S],VERTSECT[to[x_]],id[fix[to[x_]]]] := thinpart[to[x]] (* derived 2005 October 15 in OO-PO.NB *) composite[id[fix[to[x_]]],inverse[VERTSECT[to[x_]]],S,VERTSECT[to[x_]],id[fix[to[x_]]]] := inverse[thinpart[to[x]]] (* derived 2004 December 16 in RFX-CORE.NB *) composite[id[fix[trv[x_]]],eqv[x_]] := eqv[x] (* derived 2004 December 17 in RFXTRV-C.NB *) composite[id[fix[trv[x_]]],inverse[VERTSECT[rfx[trv[x_]]]],inverse[S], VERTSECT[rfx[trv[x_]]],id[fix[trv[x_]]]] := thinpart[rfx[trv[x]]] (* derived 2005 October 15 in OORFXTRV.NB *) composite[id[fix[trv[x_]]],inverse[VERTSECT[rfx[trv[x_]]]],S,VERTSECT[rfx[trv[x_]]],id[fix[trv[x_]]]] := inverse[thinpart[rfx[trv[x]]]] (* added 2002 October 22 based on CO-ID.NB *) composite[id[fix[UCLOSURE]],UCLOSURE] := UCLOSURE (* derived 2005 October 22 in WO-DI.NB *) composite[id[fix[wo[x_]]],intersection[Di,inverse[wo[x_]]]] := intersection[Di,inverse[wo[x]]] (* derived 2005 October 22 in WO-DI.NB *) composite[id[fix[wo[x_]]],intersection[Di,wo[x_]]] := intersection[Di,wo[x]] (* derived 2005 January 5 in CORE-ON.NB *) composite[id[FULL],CORE[OMEGA]] := CORE[OMEGA] (* added 2001 March 31 based on HF.NB *) composite[id[FULL],HC] := HC (* added 2002 April 27 based on FULSUC-F.NB *) composite[id[FULL],intersection[E,complement[S]]] := 0 (* added 2000 January 8 based on REMOVED.NB *) composite[id[FULL],intersection[S,composite[complement[S],TC]]] := 0 (* added 2003 June 22 based on FP-HC.NB *) composite[id[FULL],inverse[S],HC] := composite[id[FULL],inverse[S]] (* derived 2005 February 17 in NAT-ACL.NB *) composite[id[FULL],inverse[S],id[omega]] := composite[id[omega],inverse[S],id[omega]] (* added 2002 October 22 based on CO-ID.NB *) composite[id[FULL],TC] := TC (* added 2000 September 8 based on FUNPART.LOG *) composite[Id,FUNPART] := FUNPART (* corollary of Theorem FUNPART3 in FU1 *) composite[Id,funpart[x_]] := funpart[x] (* derived 2004 June 16 in X1303.NB *) composite[id[y_],funpart[x_]] := composite[funpart[x],id[image[inverse[funpart[x]],y]]] (* added 2002 September 25 based on CONSTFNS.NB *) composite[id[FUNS],CART,cross[Id,SINGLETON]] := composite[CART,cross[Id,SINGLETON]] (* added 2000 September 9 based on FNP-2.NB *) composite[id[FUNS],FUNPART] := FUNPART (* derived 2004 November 16 in XS.NB *) composite[id[FUNS],intersection[composite[inverse[IMAGE[FIRST]],IMAGE[FIRST]],inverse[S]]] := composite[inverse[E],XS] (* added 2001 April 30 based on OP.NB *) composite[id[FUNS],intersection[composite[inverse[IMAGE[SECOND]],inverse[S]],inverse[IMAGE[FIRST]]]] := composite[inverse[E],MAP,DUP] (* added 2001 April 28 based on MAP2.NB *) composite[id[FUNS],intersection[composite[inverse[S],CART], composite[inverse[IMAGE[FIRST]],FIRST]]] := composite[inverse[E],MAP] (* added 2001 December 23 based on MAP-1.NB *) composite[id[FUNS],inverse[DORA],cross[Id,inverse[S]]] := composite[inverse[E],MAP] (* added 2000 September 4 based on NEW-Q.NB *) composite[id[FUNS],INVERSE,id[FUNS]] := composite[INVERSE,id[BIJ]] (* derived 2004 December 19 in FUNS-EQV.NB *) composite[id[FUNS],inverse[IMAGE[SWAP]]] := composite[id[FUNS],INVERSE] (* added 2003 October 8 based on FS-CUP.NB *) composite[id[FUNS],LB[LB[complement[cross[Id,Di]]]],id[FUNS]] := image[inverse[CUP],FUNS] (* derived 2004 January 4 in VS-IMIN.NB *) composite[id[FUNS],VS] := VS (* derived 2005 September 27 in GLB-LUB.NB *) composite[Id,GLB[x_]] := GLB[x] (* added 2000 November 13 based on MAX.NB *) composite[Id,GREATEST[x_]] := GREATEST[x] (* added 2000 December 29 based on GT-RS.NB *) composite[id[y_],GREATEST[x_],id[P[y_]]] := composite[GREATEST[x],id[P[y]]] (* Theorem ID-CO8 in ID/ID-CO *) composite[Id,Id] := Id composite[Id,id[x_]] := id[x] (* Theorem IDX-CO-I in IDX2 *) composite[id[x_],id[y_]] := id[intersection[x,y]] (* added 1998 July 2 *) composite[id[Id],Di,DUP] := composite[DUP,Di] composite[id[Id],inverse[FIRST]] := DUP composite[id[id[x_]],inverse[FIRST]] := composite[DUP,id[x]] composite[id[Id],inverse[SECOND]] := DUP composite[id[id[x_]],inverse[SECOND]] := composite[DUP,id[x]] (* see IMG-1DEM in IMG1.DEM *) composite[Id,IMAGE[x_]] := IMAGE[x] (* added 2002 December 16 based on RS-VS.NB *) composite[id[x_],IMAGE[y_]] := composite[IMAGE[y],id[image[inverse[IMAGE[y]],x]]] (* based on 1999 December 11 notebook CART-DUP.NB *) composite[id[image[CART,Id]],inverse[IMAGE[inverse[DUP]]]] := composite[CART,DUP] (* added 2002 October 22 based on CO-ID.NB *) composite[id[image[x_,cart[V,V]]],x_,SWAP] := composite[x,SWAP] (* added 2002 October 22 based on CO-ID.NB *) composite[id[image[x_,domain[y_]]],x_,inverse[y_]] := composite[x,inverse[y]] (* added 2002 February 5 based on DORA.NB *) composite[Id,image[DORA,x_]] := image[DORA,x] (* added 1999 October 8 based on CAP-LOG.2 *) composite[Id,image[inverse[CAP],x_]] := image[inverse[CAP],x] (* added 1999 October 5 based on CARTINIM.LOG *) composite[Id,image[inverse[CART],x_]] := image[inverse[CART],x] (* added 1999 December 4 based on COMPOSE.NB *) composite[Id,image[inverse[COMPOSE],x_]] := image[inverse[COMPOSE],x] (* added 1999 December 21 based on CROSS.NB *) composite[Id,image[inverse[CROSS],x_]] := image[inverse[CROSS],x] (* added 1999 November 17 based on NEWRULES.1 *) composite[Id,image[inverse[CUP],x_]] := image[inverse[CUP],x] (* added 1999 November 17 based on NEWRULES.1 *) composite[Id,image[inverse[DIF],x_]] := image[inverse[DIF],x] (* added 2002 October 22 based on CO-ID.NB *) composite[x_,y_,id[image[inverse[y_],domain[x_]]]] := composite[x,y] (* added 2002 October 22 based on CO-ID.NB *) composite[id[image[inverse[y_],domain[x_]]],inverse[y_],inverse[x_]] := composite[inverse[y],inverse[x]] (* based on 1999 December 10 notebook FUNPART.NB *) composite[Id,image[inverse[IMG],x_]] := image[inverse[IMG],x] (* added 2003 August 12 based on RO-ZADD.NB *) composite[Id,image[inverse[INTADD],x_]] := image[inverse[INTADD],x] (* added 2001 September 4 based on BIN-IMIN.NB *) composite[Id,image[inverse[MAP],x_]] := image[inverse[MAP],x] (* added 2002 June 18 based on NATSUB.NB *) composite[Id,image[inverse[NATADD],x_]] := image[inverse[NATADD],x] (* derived 2005 May 17 based on NATMOD.NB *) composite[Id,image[inverse[NATMOD],x_]] := image[inverse[NATMOD],x] (* added 2002 September 3 based on DIV-ONE.NB *) composite[Id,image[inverse[NATMUL],x_]] := image[inverse[NATMUL],x] (* added 2000 December 3 based on DO-LT.NB *) composite[Id,image[inverse[PAIRSET],x_]] := image[inverse[PAIRSET],x] (* added 2002 October 22 based on CO-ID.NB *) composite[id[image[x_,range[y_]]],x_,y_] := composite[x,y] (* derived 2003 December 30 in T2.NB *) composite[id[image[RC[omega],FINITE]],DISJOINT,id[image[RC[omega],FINITE]]] := 0 (* added 1999 December 4 based on 1999/DEC/03/CURRY-SD.NB *) composite[Id,image[inverse[SYMDIF],x_]] := image[inverse[SYMDIF],x] (* From ADJOIN.LOG session 1999 April 15 *) composite[id[image[S,set[x_]]],intersection[S, composite[inverse[IMAGE[id[complement[x_]]]],inverse[S]]]] := ADJOIN[x] (* added 2002 June 4 based on PWR-COID.NB *) composite[Id,image[power[x_],y_]] := image[power[x],y] (* added 2002 October 22 based on CO-ID.NB *) composite[id[image[S,set[x_]]],ADJOIN[x_]] := ADJOIN[x] (* added 1999 November 21 based on 1999/NOV/20/CUT-ADJ.NB *) composite[id[image[S,set[x_]]],inverse[IMAGE[id[complement[x_]]]]] := composite[ADJOIN[x],id[P[complement[x]]]] (* added 2003 August 8 based on REPLACE.NB *) composite[id[image[S,set[x_]]],plus[x_]] := plus[x] (* derived 2004 December 16 in VS-EQV.NB *) composite[id[IMAGE[SWAP]],inverse[FIRST],VS] := composite[id[INVERSE],inverse[FIRST],VS] composite[x_,id[image[V,x_]]] := composite[Id,x] composite[x_,y_,id[image[V,x_]]] := composite[x,y] (* added 1999 December 19 to prevent looping *) composite[id[image[V,x_]],id[image[V,y_]]] := id[intersection[image[V,x],image[V,y]]] (* added 2000 September 10 based on VS.NB *) composite[id[image[V,set[x_]]],RC[x_]] := RC[x] (* added 2001 December 17 based on Q-HAT.NB *) composite[id[image[Q,OMEGA]],CARD] := CARD (* added 2001 December 17 based on Q-HAT.NB *) composite[id[image[Q,OMEGA]],Q] := composite[inverse[CARD],CARD] (* added 1999 December 19 based on ID-IMV.NB removed 1999 December 23 because of looping in TRYTHIS.NB composite[id[image[V,x_]],y_] := composite[y,id[image[V,x]]] *) (* derived 2004 April 25 in ADJOIN.NB *) composite[id[image[V,x_]],ADJOIN[A[x_]]] := ADJOIN[A[x]] (* added 2002 November 2 based on PAIR-V.NB *) composite[id[image[V,x_]],y_,id[complement[image[V,x_]]]] := 0 (* added 2002 July 2 based on ITER-IMV.NB *) composite[id[image[V,w_]],x_,id[image[V,w_]]] := composite[id[image[V,w]],x] (* added 2003 August 8 based on REPLACE.NB *) composite[id[image[V,intersection[omega,set[x_]]]],y___,inverse[plus[x_]]] := composite[y,inverse[plus[x]]] (* derived 2005 July 18 in REPLACE.NB *) composite[id[image[V,intersection[omega,set[x_]]]],iterate[iterate[SUCC,set[x_]],set[0]]] := times[x] (* added 2003 August 8 based on REPLACE.NB *) composite[id[image[V,intersection[omega,set[x_]]]],iterate[SUCC,set[x_]]] := plus[x] (* derived 2005 July 18 in MODULO.NB *) composite[id[image[V,intersection[omega,set[x_]]]],modulo[x_]] := modulo[x] (* added 2003 August 8 based on REPLACE.NB *) composite[id[image[V,intersection[omega,set[x_]]]],y___,plus[x_]] := composite[y,plus[x]] (* derived 2005 July 17 in TIMES.NB *) composite[id[image[V,intersection[omega,set[x_]]]],y___,times[x_]] := composite[y,times[x]] (* added 2003 September 11 based on ID-IMV.NB *) composite[id[image[V,set[x_]]],y___,ADJOIN[x_]] := composite[y,ADJOIN[x]] (* added 2003 August 12 based on RO-ZADD.NB *) composite[id[image[V,set[x_]]],y___,image[inverse[INTADD],set[x_]]] := composite[y,image[inverse[INTADD],set[x]]] (* added 2003 August 8 based on REPLACE.NB *) composite[id[image[V,set[x_]]],y___,inverse[plus[x_]]] := composite[y,inverse[plus[x]]] (* added 2002 July 4 based on NATADD.NB *) composite[id[image[V,set[y_]]],iterate[x_,set[y_]]] := iterate[x,set[y]] (* added 2002 August 25 based on LEFT-MUL.NB *) composite[id[image[V,set[x_]]],y___,LEFT[x_]] := composite[y,LEFT[x]] (* added 2003 August 8 based on REPLACE.NB *) composite[id[image[V,set[x_]]],y___,plus[x_]] := composite[y,plus[x]] (* added 2003 September 11 based on ID-IMV.NB *) composite[id[image[V,set[x_]]],y___,RC[x_]] := composite[y,RC[x]] (* added 2003 September 11 based on ID-IMV.NB *) composite[id[image[V,set[x_]]],y___,RC[U[x_]]] := composite[y,RC[U[x]]] (* added 2002 August 25 based on LEFT-MUL.NB *) composite[id[image[V,set[x_]]],y___,RIGHT[x_]] := composite[y,RIGHT[x]] (* added 2001 July 12 based on RANK-1.NB *) composite[Id,intersection[complement[composite[complement[E], complement[composite[complement[inverse[E]],x_]]]], complement[composite[complement[inverse[S]],x_]]]] := VERTSECT[complement[composite[complement[inverse[E]],x]]] (* derived 2004 June 12 based on X1196.NB *) composite[id[x_],intersection[y_,complement[composite[Di,id[x_],y_]]]] := funpart[composite[id[x],y]] composite[x_,id[intersection[complement[domain[x_]],y_]]] := 0 (* derived 2004 June 14 in FU-F-O.NB *) composite[Id,intersection[x_,complement[funpart[x_]]]] := intersection[x,composite[Di,x]] (* added 2002 July 30 based on ADD-INV.NB *) composite[id[intersection[x_,complement[omega]]],image[inverse[NATADD],y_]] := 0 (* added 2002 May 27 based on ITERSUCC.NB *) composite[id[intersection[x_,complement[set[0]]]],E] := composite[id[x],E] (* derived 2004 September 18 in WF-WRAP.NB *) composite[id[intersection[x_,complement[U[subvar[y_]]]]],y_] := composite[id[x],wf[y]] composite[x_,id[intersection[domain[x_],y_]]] := composite[x,id[y]] (* derived 2004 August 10 in RS-3.NB *) composite[x_,id[intersection[y_,domain[VERTSECT[x_]]]]] := composite[thinpart[x],id[y]] (* added 2003 October 21 based on MONOPLUS.NB *) composite[id[intersection[image[S,set[x_]], image[V,intersection[omega,set[x_]]]]],plus[x_]] := plus[x] (* added 1999 December 19 based on ID-IMV.NB removed 1999 December 23 because of looping in TRYTHIS.NB composite[id[intersection[x_,image[V,y_]]],z_] := composite[id[x],z,id[image[V,y]]] *) (* derived 2005 July 21 in Q15.NB *) composite[id[intersection[x_,image[V,intersection[omega,set[y_]]]]],modulo[y_]] := composite[id[x],modulo[y]] (* derived 2004 April 26 in ANTITONE.NB *) composite[id[intersection[y_,image[V,set[x_]]]],z___,RC[x_]] := composite[id[y],z,RC[x]] composite[x_,id[intersection[image[V,x_],y_]]] := composite[x,id[y]] composite[x_,y_,id[intersection[image[V,x_],z_]]] := composite[x,y,id[z]] (* added 2002 July 4 based on NATADD.NB *) composite[id[intersection[w_,image[V,set[y_]]]], iterate[x_,set[y_]]] := composite[id[w],iterate[x,set[y]]] (* added 2002 February 3 based on RCF.NB *) composite[id[intersection[image[V,set[x_]],P[x_]]], intersection[DISJOINT,composite[S,RC[x_]]]] := RC[x] (* revised 2003 June 1 based on REPLACE.NB *) composite[id[intersection[OMEGA,complement[fix[BIGCUP]]]], inverse[IMAGE[inverse[SUCC]]]] := composite[id[OMEGA],SUCC] (* added 2003 August 8 based on REPLACE.NB *) composite[id[intersection[omega,x_]],iterate[SUCC,set[y_]]] := composite[id[x],plus[y]] (* added 2002 September 15 based on NATADDEZ.NB *) composite[id[intersection[omega,x_]],NATADD] := composite[id[x],NATADD] (* added 2003 August 8 based on REPLACE.NB *) composite[id[intersection[omega,x_]],plus[y_]] := composite[id[x],plus[y]] (* added 2002 October 22 based on CO-ID.NB *) composite[id[intersection[y_,P[x_]]],RC[x_]] := composite[id[y],RC[x]] (* derived 2004 April 25 in IDEMPOT.NB *) composite[id[intersection[y_,P[x_]]],CORE[z_],RC[x_]] := composite[id[y],CORE[z],RC[x]] composite[id[intersection[x_,range[z_]]],z_] := composite[id[x],z] (* added 2002 April 10 based on INVAR.NB *) composite[Id,INVAR] := INVAR (* Theorem ID-COIN1 in ID/ID-CO *) composite[Id,inverse[x_]] := inverse[x] (* added 2001 January 27 based on BETTER.NB *) composite[id[inverse[FIRST]],cross[Id,inverse[SECOND]]] := composite[id[inverse[FIRST]],inverse[SECOND]] (* derived 2004 December 16 in VS-EQV.NB *) composite[id[inverse[IMAGE[SWAP]]],inverse[SECOND],VS] := composite[id[INVERSE],inverse[SECOND],VS] (* added 2002 December 27 based on TWIST.NB *) composite[id[x_],inverse[ROT]] := composite[inverse[ROT],id[rotate[x]]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[id[inverse[S]],EQUIDIFF] := composite[EQUIDIFF,id[inverse[S]]] (* added 2002 April 15 based on ITERATE.NB *) composite[Id,iterate[x_,y_]] := iterate[x,y] (* added 2000 May 14 based on K-2.NB *) composite[Id,K] := K (* added 2000 November 7 based on LB-2.NB *) composite[Id,LB[x_]] := LB[x] (* added 2000 November 13 based on MAX.NB *) composite[Id,LEAST[x_]] := LEAST[x] (* added 2000 December 28 based on LT-DO-RS.NB *) composite[id[y_],LEAST[x_],id[P[y_]]] := composite[LEAST[x],id[P[y]]] (* added 1999 August 16 on basis of session NORMAL.3 *) composite[Id,LEFT[x_]] := LEFT[x] (* added 1999 December 6 based on CURRY.NB *) composite[id[x_],LEFT[y_]] := composite[LEFT[y],id[image[x,set[y]]]] (* rules added 1998 January 22 *) composite[Id,LeftPairV] := LeftPairV (* derived 2005 September 27 in GLB-LUB.NB *) composite[Id,LUB[x_]] := LUB[x] (* added 2001 April 27 based on MAP2.NB *) composite[Id,MAP] := MAP (* added 2000 November 13 based on MAX.NB *) composite[Id,MAXIMAL[x_]] := MAXIMAL[x] (* added 2000 November 13 based on MAX.NB *) composite[Id,MINIMAL[x_]] := MINIMAL[x] (* derived 2005 July 18 in MODULO.NB *) composite[Id,modulo[x_]] := modulo[x] (* added 2002 June 12 based on NATADD.NB *) composite[Id,NATADD] := NATADD (* derived 2005 February 16 in BC-OM.NB *) composite[id[omega],ADJOIN[set[0]],id[omega]] := composite[ADJOIN[set[0]],id[omega]] (* added 2001 December 14 based on CARD-Q.NB *) composite[id[OMEGA],CARD] := CARD (* added 2003 December 9 based on ITER-K.NB *) composite[id[omega],CARD,inverse[K]] := composite[inverse[SUCC],id[omega],CARD] (* added 2003 December 9 based on ITER-K.NB *) composite[id[omega],CARD,K] := composite[id[omega],SUCC,CARD] (* added 2002 November 13 based on NATMUL.NB *) composite[id[omega],complement[composite[complement[ composite[rotate[composite[inverse[power[SUCC]],SWAP]],RIF, cross[SECOND,composite[SWAP,SECOND]], id[composite[id[cart[omega,V]],inverse[FIRST],SUCC,FIRST]], cross[inverse[E],Id]]],id[composite[inverse[E], IMAGE[id[complement[cart[set[0],Id]]]]]], inverse[FIRST]]],inverse[IMAGE[cross[Id,inverse[LEFT[0]]]]], inverse[IMAGE[SWAP]],E] := rotate[NATMUL] (* added 2002 June 3 based on REPLACE.NB *) composite[id[omega],complement[E],id[omega]] := composite[id[omega],inverse[S],id[omega]] (* added 2002 June 2 based on ON-C-E-S.NB *) composite[id[OMEGA],complement[E],id[OMEGA]] := composite[id[OMEGA],inverse[S],id[OMEGA]] (* added 2002 June 3 based on REPLACE.NB *) composite[id[omega],complement[inverse[E]],id[omega]] := composite[id[omega],S,id[omega]] (* added 2002 June 2 based on ON-C-E-S.NB *) composite[id[OMEGA],complement[inverse[E]],id[OMEGA]] := composite[id[OMEGA],S,id[OMEGA]] (* added 2002 June 3 based on REPLACE.NB *) composite[id[omega],complement[inverse[S]],id[omega]] := composite[id[omega],E] (* added 2002 June 2 based on S-SUCC.NB *) composite[id[OMEGA],complement[inverse[S]],id[OMEGA]] := composite[id[OMEGA],E] (* added 2002 June 3 based on REPLACE.NB *) composite[id[omega],complement[S],id[omega]] := composite[inverse[E],id[omega]] (* added 2002 June 2 based on ON-C-E-S.NB *) composite[id[OMEGA],complement[S],id[OMEGA]] := composite[inverse[E],id[OMEGA]] (* added 2002 October 22 based on CO-ID.NB *) composite[id[omega],DIV] := DIV (* derived 2005 April 16 in FACTRL.NB *) composite[id[omega],FACTORIAL] := FACTORIAL (* added 2002 July 30 based on IMIN-ADD.NB *) composite[id[omega],image[inverse[NATADD],x_]] := image[inverse[NATADD],x] (* added 2002 August 24 based on SUCCITER.NB *) composite[id[omega],image[power[SUCC],x_]] := composite[NATADD,id[cart[V,x]],inverse[FIRST]] (* derived 2005 February 18 in MUL-NORM.NB *) composite[id[omega],intersection[complement[composite[SECOND,id[cart[V,omega]], intersection[composite[inverse[FIRST],SECOND],composite[inverse[NATMUL],complement[S],FIRST]]]], complement[rotate[composite[complement[S],NATMUL]]]],id[cart[V,omega]]] := rotate[NATMUL] (* added 2002 June 3 based on REPLACE.NB *) composite[id[omega],intersection[E,complement[inverse[E]]]] := composite[id[omega],E] (* added 2002 June 2 based on S-SUCC.NB *) composite[id[OMEGA],intersection[E,complement[inverse[E]]]] := composite[id[OMEGA],E] (* added 2002 June 3 based on REPLACE.NB *) composite[id[omega],intersection[E,complement[inverse[S]]]] := composite[id[omega],E] (* added 2002 June 2 based on S-SUCC.NB *) composite[id[OMEGA],intersection[E,complement[inverse[S]]]] := composite[id[OMEGA],E] (* added 2002 June 3 based on REPLACE.NB *) composite[id[omega],intersection[E,complement[S]]] := 0 (* added 2002 June 2 based on S-SUCC.NB *) composite[id[OMEGA],intersection[E,complement[S]]] := 0 (* added 2002 June 3 based on REPLACE.NB *) composite[id[omega],intersection[E,x_],id[omega]] := composite[id[omega],intersection[E,x]] (* added 2002 June 2 based on S-SUCC.NB *) composite[id[OMEGA],intersection[E,x_],id[OMEGA]] := composite[id[OMEGA],intersection[E,x]] (* added 2002 June 3 based on REPLACE.NB *) composite[id[omega],intersection[E,inverse[E]]] := 0 (* added 2002 June 2 based on S-SUCC.NB *) composite[id[OMEGA],intersection[E,inverse[E]]] := 0 (* added 2002 June 3 based on REPLACE.NB *) composite[id[omega],intersection[E,inverse[S]]] := 0 (* added 2002 June 2 based on S-SUCC.NB *) composite[id[OMEGA],intersection[E,inverse[S]]] := 0 (* added 2002 June 3 based on REPLACE.NB *) composite[id[omega],intersection[x_,inverse[E]],id[omega]] := composite[intersection[x,inverse[E]],id[omega]] (* added 2002 June 2 based on S-SUCC.NB *) composite[id[OMEGA],intersection[x_,inverse[E]],id[OMEGA]] := composite[intersection[x,inverse[E]],id[OMEGA]] (* added 2002 April 23 based on ON-SUCC.NB *) composite[id[OMEGA],intersection[PS,complement[E]],id[FULL]] := 0 (* added 2002 June 2 based on ON-ORD-4.NB *) composite[id[OMEGA],intersection[PS,complement[E]],id[OMEGA]] := 0 (* added 2002 May 28 based on FINITE.NB *) composite[id[omega],inverse[CARD]] := id[omega] (* added 2002 May 26 based on SUCC-ID.NB *) composite[id[omega],inverse[IMAGE[id[omega]]]] := id[omega] (* added 2002 May 26 based on SUCC-ID.NB *) composite[id[OMEGA],inverse[IMAGE[id[OMEGA]]]] := id[OMEGA] (* derived 2005 February 19 in ITR-OM-E.NB *) composite[id[omega],inverse[IMAGE[inverse[S]]],inverse[IMAGE[id[omega]]],E] := composite[id[omega],E] (* added 2002 May 26 based on COMMUTE.NB *) composite[id[omega],inverse[IMAGE[inverse[SUCC]]]] := union[cart[set[0],set[0]],composite[id[omega],SUCC]] (* added 2003 December 9 based on ITER-K.NB *) composite[id[omega],inverse[K],id[omega]] := composite[inverse[SUCC],id[omega]] (* added 2003 August 8 based on REPLACE.NB *) composite[id[omega],inverse[plus[x_]]] := inverse[plus[x]] (* added 2002 June 21 based on NATASS.NB *) composite[id[omega],inverse[S],id[omega],inverse[S],id[omega]] := composite[id[omega],inverse[S],id[omega]] (* added 2002 June 20 based on OMEGA-S.NB *) composite[id[omega],inverse[S],id[omega],S,id[omega]] := cart[omega,omega] (* added 2002 September 24 based on ADD-S.NB *) composite[id[omega],inverse[S],image[inverse[NATADD],set[x_]]] := composite[image[inverse[NATADD],set[x]],S,id[omega]] (* added 2002 April 15 based on OM-SUCC.NB *) composite[id[omega],inverse[SUCC]] := composite[inverse[SUCC],id[omega]] (* added 2002 May 26 based on SUCC-ID.NB *) composite[id[OMEGA],inverse[SUCC]] := composite[inverse[SUCC],id[OMEGA]] (* derived 2005 July 17 in TIMES.NB *) composite[id[omega],inverse[times[x_]]] := inverse[times[x]] (* derived 2005 January 5 in RANK-S.NB *) composite[id[OMEGA],inverse[ZN]] := composite[id[OMEGA],S,RANK] (* added 2002 December 23 based on REPLACE.NB *) composite[id[omega],iterate[composite[NATADD,x_],set[0]]] := iterate[composite[NATADD,x],set[0]] (* added 2002 July 5 based on NATADD-2.NB *) composite[id[omega],iterate[inverse[SUCC],x_]] := image[inverse[NATADD],x] (* derived 2005 July 18 in REPLACE.NB *) composite[id[omega],iterate[iterate[SUCC,set[x_]],set[0]]] := union[cart[set[0], intersection[complement[image[V,intersection[omega,set[x]]]],set[0]]],times[x]] (* added 2003 August 7 based on PLUS.NB *) composite[id[omega],iterate[SUCC,set[x_]]] := plus[x] (* added 2003 December 9 based on ITER-K.NB *) composite[id[omega],K,id[omega]] := composite[id[omega],SUCC] (* derived 2005 January 13 in K-ON.NB *) composite[id[OMEGA],K,id[OMEGA]] := composite[id[OMEGA],SUCC] (* derived 2005 July 18 in MODULO.NB *) composite[id[omega],modulo[x_]] := modulo[x] (* added 2002 October 22 based on CO-ID.NB *) composite[id[omega],NATADD] := NATADD (* added 2002 October 22 based on CO-ID.NB *) composite[id[omega],NATMUL] := NATMUL (* added 2003 August 8 based on REPLACE.NB *) composite[id[omega],plus[x_]] := plus[x] (* derived 2005 August 17 in PRIMESEQ.NB *) composite[id[omega],PRIMESEQ] := PRIMESEQ (* added 2002 June 3 based on REPLACE.NB *) composite[id[omega],PS,id[omega]] := composite[id[omega],E] (* added 2002 June 2 based on ON-ORD-4.NB *) composite[id[OMEGA],PS,id[OMEGA]] := composite[id[OMEGA],E] (* added 2002 May 28 based on FINITE.NB *) composite[id[omega],Q] := composite[id[omega],CARD] (* added 2002 October 22 based on CO-ID.NB *) composite[id[OMEGA],RANK] := RANK (* added 2003 July 5 based on PLUS-ISO.NB *) composite[id[omega],rotate[composite[inverse[power[SUCC]],SWAP]]] := composite[rotate[NATADD],SWAP] (* added 2002 June 12 based on NATADD.NB *) composite[id[omega],rotate[inverse[power[SUCC]]]] := NATADD (* derived 2005 November 2 in S-RS.NB *) composite[id[omega],S,id[FINITE]] := composite[id[omega],S] (* added 2002 June 20 based on OMEGA-S.NB *) composite[id[omega],S,id[omega],inverse[S],id[omega]] := cart[omega,omega] (* derived 2005 November 2 in S-RS.NB *) composite[id[omega],S,id[omega],S] := composite[id[omega],S] (* added 2003 June 2 based on ON-CO.NB *) composite[id[OMEGA],S,id[OMEGA],S,id[OMEGA]] := composite[id[OMEGA],S,id[OMEGA]] (* added 2002 June 3 based on S-ON.TXT *) composite[id[omega],S,id[omega],SUCC] := composite[id[omega],E] (* added 2003 June 2 based on ON-CO.NB *) composite[id[OMEGA],S,id[OMEGA],SUCC] := composite[id[OMEGA],E] (* added 2002 June 3 based on REPLACE.NB *) composite[id[omega],S,SUCC] := composite[id[omega],E] (* added 2002 June 2 based on S-SUCC.NB *) composite[id[OMEGA],S,SUCC] := composite[id[OMEGA],E] (* derived 2003 December 24 in UCL-ON.NB *) composite[id[OMEGA],SUCC,BIGCUP,id[OMEGA]] := composite[SUCC,BIGCUP,id[OMEGA]] (* added 2002 June 16 based on LEFT-ROT.NB *) composite[id[omega],SUCC,NATADD] := composite[SUCC,NATADD] (* added 2003 August 8 based on REPLACE.NB *) composite[id[omega],SUCC,plus[x_]] := composite[SUCC,plus[x]] (* derived 2005 August 17 in PRIMESEQ.NB *) composite[id[omega],SUCC,PRIMESEQ] := composite[SUCC,PRIMESEQ] (* added 2002 June 3 based on S-ON.TXT *) composite[id[omega],SUCC,S,id[omega]] := composite[id[omega],E] (* added 2001 December 4 based on TC-ON.NB *) composite[id[OMEGA],TC] := composite[TC,id[P[OMEGA]]] (* derived 2005 July 17 in TIMES.NB *) composite[id[omega],times[x_]] := times[x] (* added 2002 June 16 based on ADD-1ST.NB *) composite[id[omega],trv[SUCC]] := composite[id[omega],E] (* derived 2004 May 9 in OOPART.NB *) composite[Id,OOPART] := OOPART (* derived 2004 June 19 in REPLACE.NB *) composite[id[x_],oopart[y_]] := composite[oopart[y],id[image[inverse[oopart[y]],x]]] (* added 2001 November 20 based on UNWRAP.NB *) composite[id[P[cart[cart[V,V],cart[V,V]]]],CROSS] := CROSS (* added 2002 November 30 based on Z-PLUS.NB *) composite[id[P[cart[omega,omega]]],PLUS] := PLUS (* corollary of CART-RA5 in CART proved 1999 July 26 *) composite[id[P[cart[V,V]]],CART] := CART (* added 2002 October 22 based on CO-ID.NB *) composite[id[P[cart[V,V]]],COMPOSE] := COMPOSE (* derived 2004 December 17 in RFX.NB *) composite[id[P[cart[V,V]]],CORE[RFX]] := CORE[RFX] (* added 2002 January 2 based on CRSRULES.NB *) composite[id[P[cart[V,V]]],CROSS] := CROSS (* derived 2004 May 12 in EQUIV.NB *) composite[id[P[cart[V,V]]],EQUIV] := EQUIV (* added 2001 May 24 based on REIFY.NB *) composite[id[P[cart[V,V]]],FUNPART] := FUNPART (* added 2002 July 9 based on HULL-TRV.NB *) composite[id[P[cart[V,V]]],HULL[TRV]] := HULL[TRV] composite[id[P[cart[V,V]]],IMAGE[DUP]] := IMAGE[DUP] composite[id[P[cart[V,V]]],IMAGE[id[Id]]] := IMAGE[id[Id]] (* derived 2004 September 25 in WFPART.NB *) composite[id[P[cart[V,V]]],intersection[composite[S,WFPART], composite[inverse[IMAGE[SECOND]],DISJOINT,BIGCUP,SUBVAR],inverse[S]]] := WFPART (* added 2002 October 22 based on CO-ID.NB *) composite[id[P[cart[V,V]]],INVERSE] := INVERSE (* added 2000 June 14 based on IMAGE-Q.NB *) composite[id[P[cart[V,V]]],inverse[IMAGE[SWAP]]] := INVERSE (* added 2002 November 29 based on PLUS.NB *) composite[id[P[cart[V,V]]],PLUS] := PLUS (* added 2003 May 5 based on IN-E-RCF.NB *) composite[id[P[cart[V,V]]],RCF] := RCF composite[id[P[cart[V,V]]],SINGLETON,DUP] := composite[SINGLETON,DUP] (* derived 2004 January 4 in VS-IMIN.NB *) composite[id[P[cart[V,V]]],VS] := VS (* derived 2004 September 25 in LAMB-WF.NB *) composite[id[P[cart[V,V]]],WFPART] := WFPART (* derived 2004 April 25 in HULL-RC.NB *) composite[id[P[x_]],CORE[y_],id[z_],RC[x_]] := composite[CORE[y],id[z],RC[x]] (* derived 2004 April 25 in IDEMPOT.NB *) composite[id[P[x_]],CORE[y_],RC[x_]] := composite[CORE[y],RC[x]] (* added 1999 December 19 based on DISJOINT.NB *) composite[id[P[x_]],DISJOINT,IMAGE[id[x_]]] := composite[id[P[x]],DISJOINT] (* added 2002 February 4 based on RCF-NORM.NB *) composite[id[P[DISJOINT]],inverse[UB[CUP]]] := composite[inverse[S],RCF] (* added 2001 April 30 based on OP.NB *) composite[id[P[FUNS]],intersection[ composite[inverse[BIGCUP],inverse[IMAGE[SECOND]],inverse[S]], inverse[UB[IMAGE[FIRST]]]]] := composite[inverse[S],MAP,DUP] (* added 2001 December 23 based on MAP-1.NB *) composite[id[P[FUNS]],intersection[composite[inverse[UB[IMAGE[FIRST]]],FIRST], composite[inverse[BIGCUP],inverse[IMAGE[SECOND]],inverse[S],SECOND]]] := composite[inverse[S],MAP] (* added 2001 April 27 based on MAP2.NB *) composite[id[P[FUNS]],MAP] := MAP (* derived 2004 November 16 in XS.NB *) composite[id[P[FUNS]],XS] := XS (* added 2001 November 22 based on IDP.NB *) composite[id[P[Id]],inverse[IMAGE[FIRST]]] := IMAGE[DUP] (* added 1999 December 24 based on SYMDIF-2.NB *) composite[id[P[x_]],image[inverse[SYMDIF],set[x_]]] := RC[x] (* added 2002 November 12 based on VS-RULES.NB *) composite[id[P[x_]],intersection[complement[composite[complement[E],id[x_],y_]], inverse[LB[y_]]]] := VERTSECT[composite[id[x],y]] (* added 1999 November 13 based on CARTNORM.1 *) composite[id[P[x_]],intersection[y_,composite[inverse[IMAGE[id[x_]]],z_]]] := composite[id[P[x]],intersection[y,z]] (* revised 1999 December 20 based on CUP-C8.NB *) composite[id[P[x_]],intersection[DISJOINT,composite[S,RC[x_]]]] := RC[x] (* added 1999 November 21 based on 1999/NOV/20/CUT-ADJ.NB *) composite[id[P[x_]],intersection[composite[S,IMAGE[id[x_]]], inverse[S]]] := IMAGE[id[x]] (* Theorem FIX-IDP5 in FIX2 proved 1998 December 20 *) composite[id[P[Id]],inverse[IMAGE[inverse[DUP]]]] := IMAGE[DUP] composite[id[P[x_]],inverse[IMAGE[id[x_]]]] := id[P[x]] (* direction needed for Normality of IMAGE[id[x]] *) composite[id[P[x_]],inverse[S]] := composite[inverse[S],IMAGE[id[x]]] (* derived 2005 January 5 in CORE-ON.NB *) composite[id[P[OMEGA]],CORE[OMEGA]] := CORE[OMEGA] (* derived 2005 January 5 in CORE-ON.NB *) composite[id[P[OMEGA]],HC] := composite[id[OMEGA],HC] (* derived 2005 January 5 in REPLACE.NB *) composite[id[P[OMEGA]],RANK] := RANK (* added 2001 December 4 based on TC-ON.NB *) composite[id[P[OMEGA]],TC] := composite[TC,id[P[OMEGA]]] (* added 1999 October 29 based on 1999 October 28 session RC-LOG.1 *) composite[id[P[x_]],RC[x_]] := RC[x] (* added 2003 October 21 based on LAMHUL-2.NB *) composite[id[P[S]],LAMBHULL] := LAMBHULL (* derived 2005 July 24 in TC-HULL.NB *) composite[id[P[tc[x_]]],TC] := composite[TC,id[P[tc[x]]]] (* added 2003 June 24 based on INTERIOR.NB *) composite[id[P[U[t_]]],CORE[t_]] := CORE[t] (* added 1999 October 2 based on PAIRSET.4 *) composite[Id,PAIRSET] := PAIRSET (* added 2002 November 29 based on PLUS.NB *) composite[Id,PLUS] := PLUS (* added 2003 August 7 based on PLUS.NB *) composite[Id,plus[x_]] := plus[x] (* derived 2005 October 1 in PO-WRAP.NB *) composite[Id,po[x_]] := po[x] (* added 1998 August 7 *) composite[Id,POWER] := POWER (* added 2002 based on POWER.NB *) composite[Id,power[x_]] := power[x] (* Theorem POW-5-RS in POW2 proved 1999 January 26 *) composite[id[x_],POWER] := composite[POWER,id[image[inverse[POWER],x]]] (* derived 2005 August 17 in MONOPRSQ.NB *) composite[id[PRIMES],inverse[IMAGE[inverse[PRIMESEQ]]],E] := composite[PRIMESEQ,E] (* derived 2005 August 17 in PRIMESEQ.NB *) composite[id[PRIMES],PRIMESEQ] := PRIMESEQ (* Theorem PS-ID in PS1 proved 1998 November 28 *) composite[Id,PS] := PS (* Theorem Q-1B in Q proved 2000 April 25 *) composite[Id,Q] := Q (* Theorem IDX-CO3B in IDX3 *) composite[id[range[x_]],x_] := composite[Id,x] (* added 2002 October 22 based on CO-ID.NB *) composite[id[range[domain[x_]]],rotate[x_]] := rotate[x] (* added 2002 November 17 based on LB-UB.NB *) composite[id[range[x_]],GREATEST[x_]] := GREATEST[x] (* derived 2005 October 22 in IDX-CO-I.NB *) composite[id[range[x_]],intersection[x_,y_]] := composite[Id,intersection[x,y]] (* derived 2005 September 27 in GLB-LUB.NB *) composite[id[range[x_]],intersection[complement[composite[complement[inverse[x_]],id[range[x_]],UB[x_]]],UB[x_]]] := LUB[x] composite[Id,range[LeftPairV]] := 0 (* derived 2005 September 27 in LUB-SET.NB *) composite[id[range[x_]],LUB[x_]] := LUB[x] (* Theorem POW-CO4 in POW3 proved 1998 September 19 *) composite[id[range[POWER]],E] := composite[id[range[POWER]],S,POWER] (* added 1998 August 9 *) composite[id[range[POWER]],inverse[BIGCAP]] := cart[set[0],range[POWER]] (* Theorem POW-BC9 in POW5 proved 1999 January 27 *) composite[id[range[POWER]],inverse[BIGCUP]] := POWER composite[Id,range[RightPairV]] := 0 (* added 1998 July 2 *) composite[id[range[SINGLETON]],complement[E]] := composite[SINGLETON,Di] (* added 1998 July 2 *) composite[id[range[SINGLETON]],Di,SINGLETON] := composite[SINGLETON,Di] composite[id[range[SINGLETON]],E] := SINGLETON (* see 1998/SEP/24 SESSION4.LOG *) composite[id[range[SINGLETON]],inverse[BIGCAP]] := SINGLETON composite[id[range[SINGLETON]],inverse[BIGCUP]] := SINGLETON composite[id[range[SINGLETON]],inverse[IMAGE[SINGLETON]]] := composite[id[range[SINGLETON]],inverse[SINGLETON]] composite[id[range[SINGLETON]],inverse[S]] := composite[inverse[E],IMAGE[SINGLETON]] (* derived 2005 October 5 in GLB-DIV.NB *) composite[id[range[VERTSECT[DIV]]],HULL[image[VERTSECT[DIV],omega]]] := HULL[image[VERTSECT[DIV],omega]] (* derived 2004 December 11 in RESTRICT.NB *) composite[id[range[x_]],wf[x_]] := wf[x] (* derived 2004 December 11 in RESTRICT.NB *) composite[id[range[wf[x_]]],x_] := wf[x] (* Theorem RC-CO-ID in RC proved 2001 September 3 *) composite[Id,RC[x_]] := RC[x] (* derived 2005 February 8 in X1775.NB *) composite[id[REGULAR],E,inverse[E],id[DESCENDING]] := 0 (* added 2002 May 26 based on SUCC-ID.NB *) composite[id[REGULAR],inverse[IMAGE[id[REGULAR]]]] := id[REGULAR] (* Theorem REG-ID in REG2 *) composite[Id,REGULAR] := cart[REGULAR,REGULAR] (* added 2002 April 18 based on SUCC.NB *) composite[id[REGULAR],inverse[SUCC]] := composite[inverse[SUCC],id[REGULAR]] (* derived 2004 December 31 in IN-RK.NB *) composite[id[REGULAR],RANK] := RANK (* added 2003 May 30 based on RESTRICT.NB *) composite[Id,RESTRICT] := RESTRICT (* derived 2004 December 16 in RFX-CORE.NB *) composite[Id,rfx[x_]] := rfx[x] (* added 2002 December 3 based on IDX-RIF.NB *) composite[id[x_],RIF] := composite[RIF,id[composite[SWAP,cross[Id,x]]]] (* added 1999 August 16 on basis of session NORMAL.3 *) composite[Id,RIGHT[x_]] := RIGHT[x] (* added 1999 December 6 based on CURRY.NB *) composite[id[x_],RIGHT[y_]] := composite[RIGHT[y],id[image[inverse[x],set[y]]]] composite[Id,RightPairV] := RightPairV composite[Id,rotate[x_]] := rotate[x] (* Theorem ID-CO4-S in ID/ID-CO *) composite[Id,S] := S (* added 2003 August 17 based on EQDF-SUB.NB *) composite[id[S],EQUIDIFF] := composite[EQUIDIFF,id[S]] (* added 2003 February 23 based on IDXSHULL.NB *) composite[id[x_],S,HULL[x_]] := composite[id[x],S] (* Theorem 2ND-ID in 2ND *) composite[Id,SECOND] := SECOND (* Corollary 2ND-IDX in 2ND proved 1998 November 21 *) composite[id[x_],SECOND] := composite[SECOND,id[cart[V,x]]] (* derived 2004 November 26 in XSCP-MAP.NB *) composite[id[SELECT],CART] := CART (* added 1998 August 8 *) composite[Id,SINGLETON] := SINGLETON (* added 2001 October 10 based on REPLACE.NB *) composite[id[x_],SINGLETON] := composite[SINGLETON,id[image[inverse[SINGLETON],x]]] (* derived 2004 April 6 in SMALLER.NB *) composite[Id,SMALLER] := SMALLER (* added 2002 December 27 based on SBCOMMUT.NB *) composite[Id,SUBCOMMUTE] := SUBCOMMUTE (* added 2000 February 15 based on SUBVAR2.LOG *) composite[Id,SUBVAR] := SUBVAR (* Theorem SUC-ID in SUC-REL proved 1999 October 3 *) composite[Id,SUCC] := SUCC (* Corollary SW-CO-ID in SW2 proved 1998 November 2 *) composite[Id,SWAP] := SWAP (* Theorem SW-IDX2 in SW3 proved 2000 July 31 *) composite[id[x_],SWAP] := composite[SWAP,id[inverse[x]]] (* added 2000 January 7 based on TCMEMBER.NB *) composite[Id,TC] := TC (* derived 2004 May 14 in THINPART.NB *) composite[Id,thinpart[x_]] := thinpart[x] (* derived 2005 October 8 in TO-WRAP.NB *) composite[Id,to[x_]] := to[x] (* added 2002 March 24 based on TRV-1.NB *) composite[Id,trv[x_]] := trv[x] (* added 2001 January 18 based on TWIST-1.NB *) composite[Id,twist[x_]] := twist[x] (* added 2002 February 13 based on HULL-TRV.NB *) composite[Id,U[image[HULL[TRV],x_]]] := U[image[HULL[TRV],x]] (* derived 2004 September 21 in WF-X.NB *) composite[Id,U[subvar[cross[x_,y_]]]] := U[subvar[cross[x,y]]] (* added 2000 November 3 based on UB-2.NB *) composite[Id,UB[x_]] := UB[x] (* added 2002 October 22 based on CO-ID.NB *) composite[id[Uclosure[x_]],CORE[x_]] := CORE[x] (* added 2002 October 22 based on CO-ID.NB *) composite[id[union[cart[complement[set[0]],complement[set[0]]], cart[set[0],set[0]]]],DORA] := DORA (* added 2002 October 22 based on CO-ID.NB *) composite[id[union[Id,trv[x_]]],power[x_]] := power[x] (* Theorem VS-2 in VS proved 1999 July 11 *) composite[Id,VERTSECT[x_]] := VERTSECT[x] (* added 2003 June 11 based on VS.NB *) composite[Id,VS] := VS (* derived 2004 September 18 in WF-WRAP.NB *) composite[Id,wf[x_]] := wf[x] (* derived 2004 September 25 in LAMB-WF.NB *) composite[Id,WFPART] := WFPART (* derived 2005 October 16 in WO-WRAP.NB *) composite[Id,wo[x_]] := wo[x] (* added 2003 July 26 based on HULL-Z.NB *) composite[id[Z],COMPOSE,cross[PLUS,PLUS]] := composite[COMPOSE,cross[PLUS,PLUS]] (* added 2002 December 16 based on EQUIDIFF.NB *) composite[id[Z],E] := composite[VERTSECT[EQUIDIFF],id[cart[omega,omega]]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[id[Z],INVERSE,VERTSECT[EQUIDIFF]] := composite[INVERSE,VERTSECT[EQUIDIFF],id[cart[omega,omega]]] (* added 2003 July 26 based on INTADDSW.NB *) composite[id[Z],PLUS] := PLUS (* added 2003 July 25 based on INTADD.NB *) composite[id[Z],S,COMPOSE,id[cart[Z,Z]]] := INTADD (* added 2003 July 26 based on INTADDSW.NB *) composite[id[Z],S,COMPOSE,SWAP,id[cart[Z,Z]]] := INTADD (* added 2003 July 25 based on HULL-Z.NB *) composite[id[Z],S,id[complement[set[0]]]] := composite[HULL[Z],id[complement[set[0]]]] (* added 2001 July 12 based on ZN-2.NB *) composite[Id,ZN] := ZN (* added 2003 July 19 based on IMGASSOC.NB *) composite[IMAGE[ASSOC],CART,cross[CART,Id]] := composite[CART,cross[Id,CART],ASSOC] (* derived 2004 April 24 in BA-BC.NB *) composite[IMAGE[BIGCAP],IMAGE[inverse[BIGCUP]]] := IMAGE[inverse[S]] (* added 1999 November 6 based on CO-5.LOG *) composite[IMAGE[BIGCAP],IMAGE[SINGLETON]] := Id (* added 2001 May 10 based on ACLOSURE.NB *) composite[IMAGE[BIGCAP],POWER] := ACLOSURE (* turned around 2001 May 10 based on UCLOS-2.NB *) composite[IMAGE[BIGCAP],UCLOSURE] := composite[ACLOSURE,IMAGE[BIGCAP]] composite[IMAGE[BIGCUP],id[P[range[SINGLETON]]]] := inverse[IMAGE[SINGLETON]] (* added 2002 November 20 based on UCL-U.NB *) composite[IMAGE[BIGCUP],IMAGE[CUP]] := composite[IMAGE[CUP],IMAGE[cross[BIGCUP,BIGCUP]]] (* added 2002 January 20 based on UU.NB *) composite[IMAGE[BIGCUP],IMAGE[inverse[BIGCUP]]] := Id (* added 1998 August 7 *) composite[IMAGE[BIGCUP],IMAGE[POWER]] := Id composite[IMAGE[BIGCUP],IMAGE[SINGLETON]] := Id (* added 2001 May 10 based on UCLOS-1.NB *) composite[IMAGE[BIGCUP],POWER] := UCLOSURE (* added 2001 May 10 based on UCLOS-1.NB *) composite[IMAGE[BIGCUP],UCLOSURE] := composite[UCLOSURE,IMAGE[BIGCUP]] (* added 2003 May 19 based on CAPCLOSE.NB *) composite[IMAGE[CAP],CART,DUP,ACLOSURE] := ACLOSURE (* derived 2005 October 25 in TOP-WRAP.NB *) composite[IMAGE[CAP],CART,DUP,HULL[TOPS]] := HULL[TOPS] (* added 2003 May 12 based on LAMBHULL.NB *) composite[IMAGE[CAP],LAMBHULL] := IMAGE[inverse[S]] (* derived 2005 January 6 in RCF.NB *) composite[IMAGE[CAP],RCF] := cart[V,set[set[0]]] (* added 1999 January 1 based on SR-IMG-H.NB *) composite[IMAGE[CART],id[P[Id]],S] := composite[id[P[image[CART,Id]]],S,IMAGE[CART],id[P[Id]]] (* derived 2003 December 31 in COARSER.NB *) composite[IMAGE[COARSER],POWER,POWER] := composite[POWER,POWER] (* added 2001 December 22 based on DORA-2.NB *) composite[IMAGE[composite[id[FUNS],inverse[DORA]]],CART,cross[SINGLETON,POWER]] := MAP (* derived 2004 August 26 in WF-REC-3.NB *) composite[IMAGE[composite[id[w_],inverse[FIRST]]],IMAGE[id[z_]]] := IMAGE[composite[id[composite[w,id[z]]],inverse[FIRST]]] (* added 2002 November 11 based on NORMIMAG.NB *) composite[IMAGE[composite[x_,y_]],id[P[domain[VERTSECT[y_]]]]] := composite[IMAGE[x],IMAGE[y]] (* added 2001 April 29 based on CLIQUES2.NB *) composite[IMAGE[composite[inverse[DUP],inverse[CART]]],POWER] := CLIQUES (* derived 2004 December 7 in ASV-DIV.NB *) composite[IMAGE[cross[FIRST,Id]],IMAGE[composite[id[SECOND],inverse[FIRST]]]] := IMAGE[id[cart[V,V]]] (* derived 2004 December 7 in ASV-DIV.NB *) composite[IMAGE[cross[FIRST,Id]],IMAGE[cross[SWAP,Id]]] := IMAGE[cross[SECOND,Id]] (* added 2003 July 20 based on DIRECT12.NB *) composite[IMAGE[cross[FIRST,SECOND]],CROSS] := composite[CART,cross[IMAGE[FIRST],IMAGE[SECOND]]] (* added 2002 December 28 based on REPLACE.NB *) composite[IMAGE[cross[FIRST,SECOND]],IMAGE[id[composite[inverse[FIRST],SECOND]]]] := composite[IMAGE[RIF],IMAGE[cross[SWAP,SWAP]]] (* derived 2004 August 9 in RS-2.NB *) composite[IMAGE[cross[x_,Id]],IMAGE[cross[Id,thinpart[y_]]]] := IMAGE[cross[x,thinpart[y]]] (* added 2001 May 28 based on IMAGE-X.NB *) composite[IMAGE[cross[Id,x_]],IMAGE[DUP]] := IMAGE[composite[id[x],inverse[FIRST]]] (* added 2001 May 28 based on IMAGE-X.NB *) composite[IMAGE[cross[x_,Id]],IMAGE[DUP]] := IMAGE[composite[id[inverse[x]],inverse[SECOND]]] (* derived 2004 January 6 in VS-OO.NB *) composite[IMAGE[cross[Id,inverse[E]]],VS] := IMAGE[id[cart[V,V]]] (* derived 2004 August 28 in FUNP-VS.NB *) composite[IMAGE[cross[Id,inverse[SINGLETON]]],VS] := FUNPART (* added 1999 November 30 based on IMG-SWAP.LOG *) composite[IMAGE[cross[x_,y_]],IMAGE[id[cart[u_,v_]]]] := IMAGE[cross[composite[x,id[u]],composite[y,id[v]]]] (* added 2001 January 20 based on RIF-2.NB *) composite[IMAGE[cross[SECOND,FIRST]],IMAGE[id[composite[inverse[SECOND],FIRST]]]] := IMAGE[RIF] (* derived 2004 December 7 in ASV-DIV.NB *) composite[IMAGE[cross[SECOND,Id]],IMAGE[cross[SWAP,Id]]] := IMAGE[cross[FIRST,Id]] (* added 1999 December 21 based on COMPOSE.NB *) composite[IMAGE[cross[SECOND,SECOND]],IMAGE[id[composite[inverse[FIRST],FIRST]]],CART, cross[IMAGE[SWAP],Id]] := composite[COMPOSE,SWAP] (* derived 2004 December 7 in ASV-DIV.NB *) composite[IMAGE[cross[SWAP,Id]],IMAGE[cross[SWAP,Id]]] := IMAGE[id[cart[cart[V,V],V]]] (* added 1999 October 19 based on CROSS.1 *) composite[IMAGE[cross[SWAP,SWAP]],CROSS] := composite[CROSS,SWAP] (* added 1999 October 9 based on CUP-LOG.2 *) composite[IMAGE[x_],CUP] := composite[CUP,cross[IMAGE[x],IMAGE[x]]] (* added 2002 November 20 based on UCL-U.NB *) composite[IMAGE[CUP],CART,cross[POWER,POWER]] := composite[POWER,CUP] (* added 2002 November 20 based on UCL-U.NB *) composite[IMAGE[CUP],CART,cross[UCLOSURE,UCLOSURE]] := composite[UCLOSURE,CUP] (* added 2002 March 12 based on CUP.NB *) composite[IMAGE[CUP],IMAGE[cross[inverse[S],inverse[S]]]] := composite[IMAGE[inverse[S]],IMAGE[CUP]] (* added 2002 March 12 based on CUP.NB *) composite[IMAGE[CUP],IMAGE[id[cart[V,V]]]] := IMAGE[CUP] (* added 2002 March 12 based on CUP.NB *) composite[IMAGE[CUP],IMAGE[inverse[CUP]]] := Id (* added 2002 November 20 based on UCL-U.NB *) composite[IMAGE[CUP],IMAGE[RIGHT[x_]]] := IMAGE[ADJOIN[x]] (* derived 2005 January 6 in RCF.NB *) composite[IMAGE[CUP],RCF] := SINGLETON (* derived 2004 July 26 in DORAFUNS.NB *) composite[image[DORA,FUNS],image[DORA,FUNS]] := image[DORA,FUNS] (* derived 2004 July 26 in DORAFUNS.NB *) composite[image[DORA,FUNS],Q] := image[DORA,FUNS] (* derived 2004 July 26 in DORAFUNS.NB *) composite[image[DORA,FUNS],S] := union[cart[V,complement[set[0]]],cart[set[0],V]] (* derived 2004 August 12 in DORAFUNS.NB *) composite[image[DORA,P[SECOND]],Q] := image[DORA,FUNS] (* added 1999 October 17 based on CROSS.3 flipped 1999 November 28 *) composite[IMAGE[DUP],CART] := composite[CROSS,cross[IMAGE[DUP],IMAGE[DUP]]] (* Theorem FIX-IDP3 in FIX2 proved 1998 December 20 *) composite[IMAGE[DUP],IMAGE[inverse[DUP]]] := IMAGE[id[Id]] (* added 2003 January 30 *) composite[IMAGE[DUP],INVAR] := composite[id[P[Id]],SUBCOMMUTE] (* added 2002 January 19 based on PO.NB *) composite[IMAGE[DUP],PAIRSET] := composite[PAIRSET,cross[DUP,DUP]] (* added 2002 November 16 based on EQUIDIFF.NB *) composite[IMAGE[EQUIDIFF],IMAGE[EQUIDIFF]] := IMAGE[EQUIDIFF] (* added 2002 November 30 based on POS-NEG.NB *) composite[IMAGE[EQUIDIFF],IMAGE[SWAP]] := composite[IMAGE[SWAP],IMAGE[EQUIDIFF]] (* added 2002 November 16 based on EQUIDIFF.NB *) composite[IMAGE[EQUIDIFF],VERTSECT[EQUIDIFF]] := VERTSECT[EQUIDIFF] (* added 2003 June 11 based on VS.NB *) composite[IMAGE[FIRST],ADJOIN[set[0]]] := IMAGE[FIRST] (* derived 2004 October 4 in REPLACE.NB *) composite[IMAGE[FIRST],BIGCUP,IMAGE[CART],IMAGE[DUP]] := BIGCUP (* added 1999 December 24 based on FIX-CAP.NB *) composite[IMAGE[FIRST],CAP] := composite[IMAGE[inverse[DUP]],COMPOSE,cross[IMAGE[SWAP],Id]] (* added 1999 October 9 based on CART-LOG.3 *) composite[IMAGE[FIRST],CART] := union[composite[FIRST,id[cart[V,complement[set[0]]]]], cart[cart[V,set[0]],set[0]]] (* added 1999 December 25 based on COMPOSE4.NB *) composite[IMAGE[FIRST],COMPOSE] := composite[IMG,SWAP,cross[IMAGE[FIRST],IMAGE[SWAP]]] (* derived 2004 October 4 in REPLACE.NB *) composite[IMAGE[FIRST],CORE[intersection[RFX,SYM]]] := IMAGE[inverse[DUP]] (* derived 2004 December 17 in RFX.NB *) composite[IMAGE[FIRST],CORE[RFX]] := IMAGE[inverse[DUP]] (* derived 2004 October 4 in REPLACE.NB *) composite[IMAGE[FIRST],CORE[SYM]] := composite[IMAGE[inverse[DUP]],COMPOSE,DUP] (* added 1999 October 17 based on CROSS.3 *) composite[IMAGE[FIRST],CROSS] := composite[CART,cross[IMAGE[FIRST],IMAGE[FIRST]]] (* derived 2004 May 12 in EQUIV.NB *) composite[IMAGE[FIRST],EQUIV] := composite[IMAGE[inverse[DUP]],EQUIV] (* derived 2005 July 30 in CATORELN.NB *) composite[IMAGE[FIRST],FIRST,CATORELN] := composite[IMAGE[FIRST],FIRST,SECOND,id[composite[id[composite[S,IMAGE[SECOND],id[P[cart[V,V]]]]], inverse[SECOND],IMAGE[FIRST],FIRST,id[composite[S,IMAGE[SECOND],id[P[cart[V,V]]]]]]]] (* added 2003 March 3 based on DO-TRV.NB *) composite[IMAGE[FIRST],HULL[TRV]] := composite[IMAGE[FIRST],id[P[cart[V,V]]]] (* added 2001 December 19 based on REPLACE.NB *) composite[IMAGE[FIRST],id[x_],inverse[IMAGE[SECOND]]] := inverse[image[DORA,x]] composite[IMAGE[FIRST],id[P[Id]]] := inverse[IMAGE[DUP]] (* added 2001 May 29 based on IMG-RHO.NB *) composite[IMAGE[FIRST],IMAGE[composite[id[x_],inverse[FIRST]]]] := composite[IMAGE[id[domain[x]]],id[P[domain[VERTSECT[x]]]]] (* added 2001 May 29 based on IMG-RHO.NB *) composite[IMAGE[FIRST],IMAGE[composite[id[x_],inverse[SECOND]]]] := IMAGE[inverse[x]] (* added 2000 September 12 based on ASSERT.NB *) composite[IMAGE[FIRST],IMAGE[cross[x_,FIRST]]] := composite[IMAGE[x],IMAGE[FIRST],IMAGE[id[cart[V,cart[V,V]]]]] (* added 2000 September 12 based on ASSERT.NB *) composite[IMAGE[FIRST],IMAGE[cross[x_,Id]]] := composite[IMAGE[x],IMAGE[FIRST]] (* added 2000 September 12 based on ASSERT.NB *) composite[IMAGE[FIRST],IMAGE[cross[x_,SECOND]]] := composite[IMAGE[x],IMAGE[FIRST],IMAGE[id[cart[V,cart[V,V]]]]] composite[IMAGE[FIRST],IMAGE[DUP]] := Id (* added 1999 November 27 based on NEAT.NB *) composite[IMAGE[FIRST],IMAGE[id[cart[V,Id]]],CROSS] := composite[COMPOSE,SWAP,cross[Id,IMAGE[SWAP]]] composite[IMAGE[FIRST],IMAGE[id[cart[V,V]]]] := IMAGE[FIRST] composite[IMAGE[FIRST],IMAGE[id[Id]]] := IMAGE[inverse[DUP]] (* added 1999 November 30 based on IMG-SWAP.1 *) composite[IMAGE[FIRST],IMAGE[SWAP]] := IMAGE[SECOND] (* added 1999 October 12 based on INVERSE.5 *) composite[IMAGE[FIRST],INVERSE] := composite[IMAGE[SECOND],id[P[cart[V,V]]]] (* added 2001 December 18 based on DORA.NB *) composite[IMAGE[FIRST],inverse[IMAGE[SECOND]]] := union[cart[complement[set[0]],complement[set[0]]], cart[set[0],set[0]]] (* added 2000 September 4 based on NEW.M *) composite[IMAGE[FIRST],inverse[IMAGE[SWAP]]] := composite[IMAGE[SECOND],id[P[cart[V,V]]]] (* added 2000 September 4 based on NEW.M *) composite[IMAGE[FIRST],inverse[IMAGE[id[cart[V,V]]]]] := composite[IMAGE[FIRST],id[P[cart[V,V]]]] (* added 2003 May 12 based on LAMBHULL.NB *) composite[IMAGE[FIRST],LAMBHULL] := IMAGE[inverse[S]] (* added 2003 February 4 based on PLUS-Q.NB *) composite[IMAGE[FIRST],PLUS] := cart[omega,set[omega]] (* added 2002 February 3 based on RCF.NB *) composite[IMAGE[FIRST],RCF] := POWER (* derived 2004 August 10 in RS-3.NB *) composite[IMAGE[FIRST],RESTRICT] := composite[inverse[S],IMAGE[FIRST]] (* added 2003 June 11 based on VS.NB *) composite[IMAGE[FIRST],VS] := IMAGE[FIRST] (* added 2001 February 24 based on NEW.NB *) composite[IMAGE[GREATEST[x_]],POWER] := IMAGE[id[fix[x]]] (* added 1999 October 9 based on CART-LOG.1 *) composite[IMAGE[id[cart[x_,y_]]],CART] := composite[CART,cross[IMAGE[id[x]],IMAGE[id[y]]]] (* added 1999 December 23 based on CROSS-2.NB *) composite[IMAGE[id[cart[cart[u_,v_],cart[x_,y_]]]],CROSS] := composite[CROSS,cross[IMAGE[id[cart[u,x]]],IMAGE[id[cart[v,y]]]]] (* derived 2004 June 28 in X1773-1800.NB *) composite[IMAGE[id[cart[cart[V,V],V]]],IMAGE[cross[SWAP,Id]]] := IMAGE[cross[SWAP,Id]] (* added 2002 January 3 based on COMPOSE.NB *) composite[IMAGE[id[cart[x_,y_]]],COMPOSE] := composite[COMPOSE,cross[IMAGE[id[cart[V,y]]],IMAGE[id[cart[x,V]]]]] (* added 2003 June 11 based on VS.NB *) composite[IMAGE[id[cart[V,complement[set[0]]]]],VS] := VS (* derived 2004 August 9 in RS-2.NB *) composite[IMAGE[id[cart[x_,V]]],IMAGE[cross[Id,thinpart[y_]]]] := IMAGE[cross[id[x],thinpart[y]]] (* added 2003 June 11 based on VS.NB *) composite[IMAGE[id[cart[V,set[0]]]],VS] := cart[V,set[0]] (* derived 2004 December 17 in RFX.NB *) composite[IMAGE[id[cart[V,V]]],CORE[RFX]] := CORE[RFX] (* added 2001 November 20 based on UNWRAP.NB *) composite[IMAGE[id[cart[V,V]]],CROSS] := CROSS (* derived 2004 May 12 in EQUIV.NB *) composite[IMAGE[id[cart[V,V]]],EQUIV] := EQUIV (* added 2001 May 24 based on REIFY.NB *) composite[IMAGE[id[cart[V,V]]],FUNPART] := FUNPART (* added 2002 July 9 based on HULL-TRV.NB *) composite[IMAGE[id[cart[V,V]]],HULL[TRV]] := HULL[TRV] (* added 2000 September 4 based on NEW.M *) composite[IMAGE[id[cart[V,V]]],id[BIJ]] := id[BIJ] (* added 2000 September 4 based on NEW.M *) composite[IMAGE[id[cart[V,V]]],id[FUNS]] := id[FUNS] (* added 2002 November 30 based on INVERSE.NB *) composite[IMAGE[id[cart[V,V]]],id[image[INVERSE,x_]]] := id[image[INVERSE,x]] composite[IMAGE[id[cart[V,V]]],id[P[Id]]] := id[P[Id]] (* added 2003 July 26 based on INTADDSW.NB *) composite[IMAGE[id[cart[V,V]]],id[Z]] := id[Z] (* added 2002 January 10 based on MORE-PRS.NB *) composite[IMAGE[id[cart[V,V]]],IMAGE[inverse[PAIRSET]]] := IMAGE[inverse[PAIRSET]] (* added 2001 January 20 based on RIF-2.NB *) composite[IMAGE[id[cart[V,V]]],IMAGE[RIF]] := IMAGE[RIF] (* Theorem INV-CO4 in INV2 *) composite[IMAGE[id[cart[V,V]]],INVERSE] := INVERSE (* Theorem INV-CO4 in INV2 *) composite[IMAGE[id[cart[V,V]]],inverse[IMAGE[SWAP]]] := INVERSE (* derived 2004 May 9 in OOPART.NB *) composite[IMAGE[id[cart[V,V]]],OOPART] := OOPART (* added 2002 November 29 based on PLUS.NB *) composite[IMAGE[id[cart[V,V]]],PLUS] := PLUS (* added 2003 May 5 based on IN-E-RCF.NB *) composite[IMAGE[id[cart[V,V]]],RCF] := RCF (* added 2003 May 31 based on RS-CO.NB *) composite[IMAGE[id[cart[V,V]]],RESTRICT] := RESTRICT (* added 2001 May 24 based on REIFY.NB *) composite[IMAGE[id[cart[V,V]]], VERTSECT[GREATEST[complement[cross[Id,Di]]]]] := FUNPART (* added 2003 June 11 based on VS.NB *) composite[IMAGE[id[cart[V,V]]],VS] := VS (* derived 2004 September 25 in LAMB-WF.NB *) composite[IMAGE[id[cart[V,V]]],WFPART] := WFPART (* added 2002 December 16 based on REPLACE.NB *) composite[IMAGE[id[complement[x_]]],ADJOIN[x_]] := composite[IMAGE[id[complement[x]]],id[image[V,set[x]]]] (* corrected 1999 November 6 based on CO-2.LOG *) composite[IMAGE[id[complement[cart[V,V]]]],IMAGE[SWAP]] := cart[V,set[0]] (* corrected 1999 November 6 based on CO-2.LOG *) composite[IMAGE[id[complement[cart[V,V]]]],INVERSE] := cart[V,set[0]] (* added 2002 June 9 based on OMEGA.NB *) composite[IMAGE[id[complement[omega]]],id[omega]] := cart[omega,set[0]] (* added 2003 May 31 based on CUT-CO.NB *) composite[IMAGE[id[x_]],complement[S]] := composite[id[P[x]],complement[S]] (* added 2002 May 24 based on ADJOIN.NB *) composite[IMAGE[id[complement[set[0]]]],IMAGE[SUCC]] := IMAGE[SUCC] (* derived 2004 April 25 in HULL-RC.NB *) composite[IMAGE[id[x_]],CORE[y_],id[z_],RC[x_]] := composite[CORE[y],id[z],RC[x]] (* derived 2004 April 25 in IDEMPOT.NB *) composite[IMAGE[id[x_]],CORE[y_],RC[x_]] := composite[CORE[y],RC[x]] (* added 1999 December 21 based on CROSS.NB *) composite[IMAGE[id[cross[x_,y_]]],CROSS] := composite[CROSS,cross[IMAGE[id[x]],IMAGE[id[y]]]] (* added 2003 September 24 based on PO-FACTS.NB *) composite[IMAGE[id[Di]],HULL[RFX]] := composite[IMAGE[id[Di]],id[P[cart[V,V]]]] (* discovered 1999 December 16 in CUT.NB *) composite[IMAGE[id[x_]],DISJOINT] := composite[id[P[x]],DISJOINT] (* added 2003 May 5 based on IN-E-RCF.NB *) composite[IMAGE[id[DISJOINT]],RCF] := RCF (* added 2002 February 3 based on RCF.NB *) composite[IMAGE[id[DISJOINT]],VERTSECT[inverse[CUP]]] := RCF (* derived 2004 September 5 in WF-REC-4.NB *) composite[IMAGE[id[domain[VERTSECT[ZN]]]],id[domain[VERTSECT[ZN]]]] := id[domain[VERTSECT[ZN]]] (* derived 2004 September 5 in WF-REC-4.NB *) composite[IMAGE[id[domain[VERTSECT[ZN]]]],id[REGULAR]] := id[REGULAR] (* added 2001 May 28 based on REMOVED.NB *) composite[IMAGE[id[FIRST]],CART] := composite[IMAGE[composite[id[FIRST],inverse[FIRST]]], COMPOSE,cross[Id,IMAGE[DUP]]] (* added 2002 May 4 based on HC-OMEGA.NB *) composite[IMAGE[id[FULL]],id[OMEGA]] := id[OMEGA] (* added 2001 April 28 based on MAP3.NB *) composite[IMAGE[id[FUNS]],MAP] := MAP (* derived 2004 November 16 in XS.NB *) composite[IMAGE[id[FUNS]],VERTSECT[intersection[composite[inverse[IMAGE[FIRST]],IMAGE[FIRST]],inverse[S]]]] := XS (* added 2001 December 23 based on MAP-1.NB *) composite[IMAGE[id[FUNS]],VERTSECT[intersection[composite[inverse[S],CART], composite[inverse[IMAGE[FIRST]],FIRST]]],id[cart[V,V]]] := MAP (* derived 2003 December 30 in T2.NB *) composite[IMAGE[id[x_]],id[image[RC[x_],y_]]] := id[image[RC[x],y]] (* added 1999 October 13 based on NEWRULES.1 *) composite[IMAGE[id[Id]],IMAGE[SWAP]] := IMAGE[id[Id]] (* added 1999 October 13 based on NEWRULES.1 *) composite[IMAGE[id[id[x_]]],IMAGE[SWAP]] := IMAGE[id[id[x]]] (* added 2002 February 2 based on VSIN-CUP.NB *) composite[IMAGE[id[x_]],id[intersection[y_,P[x_]]]] := id[intersection[y,P[x]]] (* added 1999 October 12 based on NEWRULES.2 *) composite[IMAGE[id[Id]],INVERSE] := composite[IMAGE[id[Id]],id[P[cart[V,V]]]] (* added 1999 October 12 based on NEWRULES.2 *) composite[IMAGE[id[id[x_]]],INVERSE] := composite[IMAGE[id[id[x]]],id[P[cart[V,V]]]] composite[IMAGE[id[Id]],inverse[IMAGE[inverse[DUP]]]] := IMAGE[DUP] (* added 1999 October 13 based on NEWRULES.1 *) composite[IMAGE[id[Id]],inverse[IMAGE[SWAP]]] := composite[IMAGE[id[Id]],id[P[cart[V,V]]]] composite[IMAGE[id[x_]],id[P[x_]]] := id[P[x]] (* added 2000 September 28 based on CROSS.NB *) composite[IMAGE[id[x_]],id[P[complement[x_]]]] := cart[P[complement[x]],set[0]] (* derived 2004 April 26 in RCCORERC.NB *) composite[IMAGE[id[x_]],id[y_],RC[x_]] := composite[id[y],RC[x]] (* added 2001 December 24 based on MAP.NB *) composite[IMAGE[id[x_]],IMAGE[composite[id[P[cart[V,V]]],inverse[DORA]]]] := IMAGE[composite[id[intersection[x,P[cart[V,V]]]],inverse[DORA]]] (* Theorem IDP-CO-2 in IDP proved 1998 December 17 *) composite[IMAGE[id[x_]],IMAGE[DUP]] := composite[IMAGE[DUP],IMAGE[id[fix[x]]]] composite[IMAGE[id[x_]],IMAGE[FIRST]] := composite[IMAGE[FIRST],IMAGE[id[cart[x,V]]]] (* Theorem CUT-CO2 in CUT2 proved 1998 December 25 *) composite[IMAGE[id[x_]],IMAGE[id[y_]]] := IMAGE[id[intersection[x,y]]] composite[IMAGE[id[x_]],IMAGE[SECOND]] := composite[IMAGE[SECOND],IMAGE[id[cart[V,x]]]] (* added 1999 November 30 based on IMG-SWAP.4 *) composite[IMAGE[id[x_]],IMAGE[SWAP]] := composite[IMAGE[SWAP],IMAGE[id[inverse[x]]]] (* added 2002 June 9 based on OMEGA.NB *) composite[IMAGE[id[intersection[omega,x_]]],id[omega]] := composite[IMAGE[id[x]],id[omega]] (* added 2001 May 28 based on REMOVED.NB *) composite[IMAGE[id[inverse[FIRST]]],CART] := composite[IMAGE[SWAP], IMAGE[composite[id[FIRST],inverse[FIRST]]],COMPOSE,SWAP,cross[IMAGE[DUP],Id]] (* derived 2004 January 29 in UB-LB-CO.NB *) composite[IMAGE[id[x_]],inverse[LB[y_]]] := composite[id[P[x]],inverse[LB[y]]] (* special case of conditional rule IMG-SR-4 in IMG3 *) composite[IMAGE[id[x_]],inverse[S]] := composite[inverse[S],IMAGE[id[x]]] (* added 2001 May 28 based on REMOVED.NB *) composite[IMAGE[id[inverse[SECOND]]],CART] := composite[IMAGE[SWAP], IMAGE[composite[id[SECOND],inverse[FIRST]]],COMPOSE,cross[IMAGE[DUP],Id]] (* derived 2004 January 29 in UB-LB-CO.NB *) composite[IMAGE[id[x_]],inverse[UB[y_]]] := composite[id[P[x]],inverse[UB[y]]] (* derived 2005 January 5 in CORE-ON.NB *) composite[IMAGE[id[OMEGA]],CORE[OMEGA]] := CORE[OMEGA] (* derived 2005 January 5 in CORE-ON.NB *) composite[IMAGE[id[OMEGA]],HC] := CORE[OMEGA] (* added 2001 May 20 based on OMEGA.NB *) composite[IMAGE[id[omega]],id[omega]] := id[omega] (* added 2001 May 20 based on OMEGA.NB *) composite[IMAGE[id[OMEGA]],id[OMEGA]] := id[OMEGA] (* added 2001 May 20 based on IDEA.NB *) composite[IMAGE[id[P[cart[V,V]]]],IMAGE[CART]] := IMAGE[CART] (* added 2002 October 22 based on CO-ID.NB *) composite[IMAGE[x_],id[P[domain[VERTSECT[x_]]]]] := IMAGE[x] (* added 2001 May 2 based on IMG-PC.NB *) composite[IMAGE[id[P[x_]]],POWER] := composite[POWER,IMAGE[id[x]]] (* added 2003 September 4 based on IDEMCORE.NB *) composite[IMAGE[id[x_]],POWER,CORE[x_]] := composite[IMAGE[id[x]],POWER] (* derived 2005 August 17 in PRIMESEQ.NB *) composite[IMAGE[id[PRIMES]],PRIMESEQ] := composite[IMAGE[PRIMESEQ],id[omega]] (* added 2001 October 16 based on RA-SG.NB *) composite[IMAGE[id[range[SINGLETON]]],POWER] := IMAGE[SINGLETON] (* added 1999 November 2 based on 1999 November 1 session WORK/ASSOC.LOG *) composite[IMAGE[id[x_]],RC[x_]] := RC[x] (* added 2001 October 27 based on CORE-UCL.NB *) composite[IMAGE[id[REGULAR]],id[REGULAR]] := id[REGULAR] (* added 2001 May 2 based on IMG-PC.NB *) composite[IMAGE[id[REGULAR]],POWER] := composite[POWER,IMAGE[id[REGULAR]]] (* added 1999 December 31 based on IMG-SR-1.NB *) composite[IMAGE[id[x_]],S] := composite[id[P[x]],S,IMAGE[id[x]]] (* added 2001 May 28 based on REMOVED.NB *) composite[IMAGE[id[SECOND]],CART] := composite[IMAGE[composite[id[SECOND],inverse[FIRST]]], COMPOSE,SWAP,cross[Id,IMAGE[DUP]]] (* added 2003 June 24 based on INTERIOR.NB *) composite[IMAGE[id[U[t_]]],CORE[t_]] := CORE[t] (* added 2001 April 30 based on CUT-SC.NB *) composite[IMAGE[id[U[x_]]],id[x_]] := id[x] (* added 2001 December 20 based on Q-POW.NB *) composite[IMAGE[x_],IMAGE[id[domain[x_]]]] := IMAGE[x] (* derived 2004 May 14 in REPLACE.NB *) composite[IMAGE[x_],IMAGE[id[domain[VERTSECT[x_]]]]] := IMAGE[thinpart[x]] (* added 2003 March 13 based on IMG-CUT.NB *) composite[IMAGE[IMAGE[id[x_]]],id[P[P[x_]]]] := id[P[P[x]]] (* added 2003 March 13 based on IMG-CUT.NB *) composite[IMAGE[IMAGE[id[x_]]],IMAGE[id[P[x_]]]] := IMAGE[id[P[x]]] (* derived 2004 December 21 in SBCOMMUT.NB *) composite[IMAGE[IMAGE[SWAP]],IMAGE[IMAGE[SWAP]]] := IMAGE[IMAGE[id[cart[V,V]]]] (* added 2003 March 16 based on IMG-UCL.NB *) composite[IMAGE[IMAGE[x_]],UCLOSURE] := composite[UCLOSURE,IMAGE[IMAGE[x]]] (* added 2001 February 24 based on NEW.NB *) composite[IMAGE[inverse[BIGCUP]],POWER] := composite[POWER,POWER] (* added 2002 January 2 based on CRSRULES.NB *) composite[image[inverse[CROSS],x_],IMAGE[id[cart[V,V]]]] := image[inverse[CROSS],x] (* added 2003 June 11 based on VS.NB *) composite[IMAGE[inverse[DUP]],ADJOIN[set[0]]] := IMAGE[inverse[DUP]] (* derived 2004 October 4 in REPLACE.NB *) composite[IMAGE[inverse[DUP]],BIGCUP,IMAGE[CART],IMAGE[DUP]] := BIGCUP (* Definition DEF-CAP in CAP used in Otter 1999 August 12 *) composite[IMAGE[inverse[DUP]],CART] := CAP (* added 1999 December 24 based on FIX-CAP.NB *) composite[IMAGE[inverse[DUP]],COMPOSE,cross[IMAGE[SWAP],IMAGE[SWAP]]] := composite[IMAGE[inverse[DUP]],COMPOSE,SWAP] (* derived 2004 October 4 in REPLACE.NB *) composite[IMAGE[inverse[DUP]],CORE[intersection[RFX,SYM]]] := IMAGE[inverse[DUP]] (* added 2003 September 21 based on RFX-CORE.NB *) composite[IMAGE[inverse[DUP]],CORE[RFX]] := IMAGE[inverse[DUP]] (* derived 2004 October 4 in REPLACE.NB *) composite[IMAGE[inverse[DUP]],CORE[SYM]] := IMAGE[inverse[DUP]] (* added 1999 October 17 based on CROSS.3 *) composite[IMAGE[inverse[DUP]],CROSS] := composite[CART,cross[IMAGE[inverse[DUP]],IMAGE[inverse[DUP]]]] (* added 1999 December 21 based on FIX-DIF.NB *) composite[IMAGE[inverse[DUP]],DIF] := composite[DIF,cross[IMAGE[inverse[DUP]],IMAGE[inverse[DUP]]]] (* derived 2004 September 25 in LAMB-WF.NB *) composite[IMAGE[inverse[DUP]],HULL[TRV],WFPART] := cart[V,set[0]] (* based on 1999 December 11 notebook CART-DUP.NB *) composite[IMAGE[inverse[DUP]],id[image[CART,Id]]] := composite[inverse[DUP],inverse[CART]] composite[IMAGE[inverse[DUP]],id[P[Id]]] := inverse[IMAGE[DUP]] (* derived 2004 December 6 in IDP.NB *) composite[IMAGE[inverse[DUP]],id[P[id[x_]]]] := composite[id[P[x]],inverse[IMAGE[DUP]]] (* Theorem FIX-IDP2 in FIX2 proved 1998 December 20 *) composite[IMAGE[inverse[DUP]],IMAGE[DUP]] := Id composite[IMAGE[inverse[DUP]],IMAGE[id[x_]]] := composite[IMAGE[id[fix[x]]],IMAGE[inverse[DUP]]] (* added 1999 October 13 based on NEWRULES.1 *) composite[IMAGE[inverse[DUP]],IMAGE[SWAP]] := IMAGE[inverse[DUP]] (* added 1999 October 12 based on NEWRULES.2 *) composite[IMAGE[inverse[DUP]],INVERSE] := composite[IMAGE[inverse[DUP]],id[P[cart[V,V]]]] (* added 1998 August 23 *) composite[IMAGE[inverse[DUP]],inverse[IMAGE[id[Id]]]] := inverse[IMAGE[DUP]] (* added 2003 May 10 based on LAMBHULL.NB *) composite[IMAGE[inverse[DUP]],LAMBHULL] := ACLOSURE (* added 2002 February 4 based on RCF-NORM.NB *) composite[IMAGE[inverse[DUP]],RCF] := union[cart[complement[set[0]],set[0]],cart[set[0],set[set[0]]]] (* derived 2004 September 25 in LAMB-WF.NB *) composite[IMAGE[inverse[DUP]],WFPART] := cart[V,set[0]] (* derived 2004 September 30 in EQV-THNP.NB *) composite[image[inverse[IMG],EQV],IMAGE[composite[id[inverse[FIRST]],inverse[SECOND]]],EQUIV] := composite[INVAR,EQUIV] (* added 2001 November 25 based on FUNP-1.NB *) composite[image[inverse[IMG],x_],IMAGE[id[cart[V,V]]]] := image[inverse[IMG],x] (* derived 2004 September 30 in EQV-THNP.NB *) composite[image[inverse[IMG],TRV],IMAGE[composite[id[inverse[FIRST]],inverse[SECOND]]],HULL[TRV],IMAGE[id[cart[V,V]]]] := cart[V,V] (* added 2003 August 12 based on RO-ZADD.NB *) composite[image[inverse[INTADD],x_],id[Z]] := image[inverse[INTADD],x] (* added 2003 August 12 based on RO-ZADD.NB *) composite[image[inverse[INTADD],x_],id[intersection[y_,Z]]] := composite[image[inverse[INTADD],x],id[y]] (* added 2003 August 12 based on RO-ZADD.NB *) composite[image[inverse[INTADD],set[x_]],y___,id[image[V,set[x_]]]] := composite[image[inverse[INTADD],set[x]],y] (* added 2003 August 12 based on RO-ZADD.NB *) composite[image[inverse[INTADD],set[x_]],INVERSE, image[inverse[INTADD],set[y_]]] := image[inverse[INTADD],set[intadd[x,y]]] (* added 2002 July 30 based on IMIN-ADD.NB *) composite[image[inverse[NATADD],x_],id[complement[omega]]] := 0 (* added 2002 July 30 based on IMIN-ADD.NB *) composite[image[inverse[NATADD],x_],id[omega]] := image[inverse[NATADD],x] (* added 2002 July 5 based on NATADD-1.NB *) composite[image[inverse[NATADD],set[x_]], image[inverse[NATADD],set[x_]]] := id[range[image[inverse[NATADD],set[x]]]] (* added 2003 August 8 based on REPLACE.NB *) composite[image[inverse[NATADD],set[x_]],plus[y_]] := image[inverse[NATADD],set[natsub[x,y]]] (* added 1999 October 17 based on STRANGE.7 *) composite[IMAGE[inverse[PAIRSET]],POWER] := composite[CART,DUP] (* added 1998 August 7 *) composite[IMAGE[inverse[POWER]],IMAGE[POWER]] := Id (* derived 2005 January 4 in IMINRANK.NB *) composite[IMAGE[inverse[RANK]],id[OMEGA],SUCC] := composite[VERTSECT[ZN],id[OMEGA]] (* added 2001 October 16 based on IMS-ACL.NB *) composite[IMAGE[inverse[S]],ACLOSURE] := IMAGE[inverse[S]] (* added 2001 May 4 based on CLIQUES.NB *) composite[IMAGE[inverse[S]],CLIQUES] := CLIQUES (* added 2000 January 11 based on HER-FIX1.NB *) composite[IMAGE[inverse[S]],id[fix[IMAGE[inverse[S]]]]] := id[fix[IMAGE[inverse[S]]]] (* added 1998 August 7 *) composite[IMAGE[inverse[S]],id[range[POWER]]] := id[range[POWER]] (* added 2001 May 4 based on IMG-INS.NB *) composite[IMAGE[inverse[S]],IMAGE[CAP],CART] := composite[CAP,cross[IMAGE[inverse[S]],IMAGE[inverse[S]]]] (* added 2002 January 21 based on VS-IN-BC.TXT *) composite[IMAGE[inverse[S]],IMAGE[inverse[POWER]]] := composite[BIGCUP,IMAGE[id[range[POWER]]]] composite[IMAGE[inverse[S]],IMAGE[inverse[S]]] := IMAGE[inverse[S]] (* added 2001 February 19 based on IMINS.NB *) composite[IMAGE[inverse[S]],IMAGE[POWER],POWER] := composite[POWER,POWER] (* added 2003 March 9 based on CORE-HER.NB *) composite[IMAGE[inverse[S]],inverse[S],IMAGE[inverse[S]]] := composite[id[fix[IMAGE[inverse[S]]]],inverse[S],IMAGE[inverse[S]]] (* added 1998 August 7 *) composite[IMAGE[inverse[S]],POWER] := POWER (* added 2003 March 1 based on HER-UCL.NB *) composite[IMAGE[inverse[S]],UCLOSURE] := composite[POWER,BIGCUP] (* derived 2004 August 10 in RS-3.NB *) composite[IMAGE[inverse[S]],VERTSECT[RESTRICT]] := composite[POWER,IMAGE[id[cart[V,V]]]] (* derived 2004 May 2 in ZN.NB *) composite[IMAGE[inverse[S]],VERTSECT[ZN]] := VERTSECT[ZN] (* added 2001 October 10 based on REPLACE.NB *) composite[IMAGE[inverse[SINGLETON]],CLIQUES] := IMAGE[inverse[DUP]] (* added 1998 August 7 *) composite[IMAGE[inverse[SINGLETON]],id[range[POWER]]] := inverse[POWER] composite[IMAGE[inverse[SINGLETON]],IMAGE[inverse[S]]] := BIGCUP composite[IMAGE[inverse[SINGLETON]],IMAGE[SINGLETON]] := Id (* added 1998 August 7 *) composite[IMAGE[inverse[SINGLETON]],POWER] := Id (* added 2002 May 26 based on COMMUTE.NB *) composite[IMAGE[inverse[SUCC]],id[omega]] := union[cart[set[0],set[0]],composite[inverse[SUCC],id[omega]]] (* added 2002 May 26 based on ON-SUC-1.NB *) composite[IMAGE[inverse[SUCC]],id[OMEGA],SUCC] := id[OMEGA] (* added 1999 December 24 based on SYMDIF-2.NB *) composite[image[inverse[SYMDIF],set[x_]],id[P[x_]]] := RC[x] (* added 1999 December 24 based on SYMDIF-2.NB *) composite[image[inverse[SYMDIF],set[x_]], image[inverse[SYMDIF],set[x_]]] := id[image[V,set[x]]] (* added 1999 December 24 based on SYMDIF-2.NB *) composite[image[inverse[SYMDIF],set[x_]],RC[x_]] := id[intersection[image[V,set[x]],P[x]]] (* added 2001 March 31 based on REMOVED.NB *) composite[IMAGE[inverse[TC]],POWER] := composite[POWER,HC] (* added 2001 February 24 based on NEW.NB *) composite[IMAGE[LB[x_]],POWER] := 0 (* added 2001 February 24 based on NEW.NB *) composite[IMAGE[LEAST[x_]],POWER] := IMAGE[id[fix[x]]] (* added 2002 January 10 based on MORE-PRS.NB *) composite[IMAGE[PAIRSET],IMAGE[id[cart[V,V]]]] := IMAGE[PAIRSET] (* added 2002 May 22 based on INVERSE.NB *) composite[image[power[x_],y_],x_] := composite[x,image[power[x],y]] (* added 1998 August 7 *) composite[IMAGE[POWER],IMAGE[inverse[POWER]]] := IMAGE[id[range[POWER]]] (* added 2002 July 28 based on ADD-NAT.NB *) composite[image[power[x_],y_],image[power[x_],z_]] := image[power[x],image[NATADD,cart[y,z]]] (* reoriented 2002 June 13 based on LOOPING.NB *) composite[image[power[x_],z_],iterate[x_,y_]] := composite[iterate[x,y],image[power[SUCC],z]] (* added 2002 June 5 based on COMMUTE.NB *) composite[image[power[SUCC],x_],id[omega]] := composite[id[omega],image[power[SUCC],x]] (* derived 2004 December 31 in IN-RK.NB *) composite[IMAGE[RANK],IMAGE[inverse[RANK]]] := IMAGE[id[OMEGA]] (* added 2001 January 20 based on RIF-2.NB *) composite[IMAGE[RIF],CART] := composite[COMPOSE,SWAP,cross[IMAGE[SWAP],IMAGE[SWAP]]] (* added 2001 January 20 based on RIF-2.NB *) composite[IMAGE[RIF],CROSS] := COMPOSE (* added 2002 December 28 based on REPLACE.NB *) composite[IMAGE[RIF],IMAGE[SWAP]] := composite[IMAGE[SWAP],IMAGE[RIF],IMAGE[cross[SWAP,SWAP]]] (* added 1999 December 21 based on ROTATE.NB *) composite[IMAGE[ROT],DIF] := composite[DIF,cross[IMAGE[ROT],IMAGE[ROT]]] (* added 2002 April 6 based on FUNP-ROT.NB *) composite[IMAGE[ROT],IMAGE[SWAP]] := IMAGE[inverse[ASSOC]] (* added 2003 June 11 based on VS.NB *) composite[IMAGE[SECOND],ADJOIN[set[0]]] := IMAGE[SECOND] (* derived 2004 October 4 in REPLACE.NB *) composite[IMAGE[SECOND],BIGCUP,IMAGE[CART],IMAGE[DUP]] := BIGCUP (* added 1999 December 24 based on FIX-CAP.NB *) composite[IMAGE[SECOND],CAP] := composite[IMAGE[inverse[DUP]],COMPOSE,cross[Id,IMAGE[SWAP]]] (* added 1999 October 9 based on CART-LOG.3 *) composite[IMAGE[SECOND],CART] := union[composite[SECOND,id[cart[complement[set[0]],V]]], cart[cart[set[0],V],set[0]]] (* added 1999 December 25 based on COMPOSE4.NB *) composite[IMAGE[SECOND],COMPOSE] := composite[IMG,cross[Id,IMAGE[SECOND]]] (* derived 2004 October 4 in REPLACE.NB *) composite[IMAGE[SECOND],CORE[intersection[RFX,SYM]]] := IMAGE[inverse[DUP]] (* derived 2004 December 17 in RFX.NB *) composite[IMAGE[SECOND],CORE[RFX]] := IMAGE[inverse[DUP]] (* derived 2004 October 4 in REPLACE.NB *) composite[IMAGE[SECOND],CORE[SYM]] := composite[IMAGE[inverse[DUP]],COMPOSE,DUP] (* added 1999 October 17 based on CROSS.3 *) composite[IMAGE[SECOND],CROSS] := composite[CART,cross[IMAGE[SECOND],IMAGE[SECOND]]] (* derived 2004 May 12 in EQUIV.NB *) composite[IMAGE[SECOND],EQUIV] := composite[IMAGE[inverse[DUP]],EQUIV] (* added 2003 March 28 based on RA-TRV.NB *) composite[IMAGE[SECOND],HULL[TRV]] := composite[IMAGE[SECOND],id[P[cart[V,V]]]] (* added 2001 December 18 based on DORA.NB *) composite[IMAGE[SECOND],id[x_],inverse[IMAGE[FIRST]]] := image[DORA,x] composite[IMAGE[SECOND],id[P[Id]]] := inverse[IMAGE[DUP]] (* added 2001 May 29 based on IMG-RHO.NB *) composite[IMAGE[SECOND],IMAGE[composite[id[x_],inverse[FIRST]]]] := IMAGE[x] (* added 2001 May 29 based on IMG-RHO.NB *) composite[IMAGE[SECOND],IMAGE[composite[id[x_],inverse[SECOND]]]] := composite[IMAGE[id[range[x]]],id[P[domain[VERTSECT[inverse[x]]]]]] (* added 2000 September 12 based on ASSERT.NB *) composite[IMAGE[SECOND],IMAGE[cross[Id,x_]]] := composite[IMAGE[x],IMAGE[SECOND]] (* added 2000 September 12 based on ASSERT.NB *) composite[IMAGE[SECOND],IMAGE[cross[SECOND,x_]]] := composite[IMAGE[x],IMAGE[SECOND],IMAGE[id[cart[cart[V,V],V]]]] composite[IMAGE[SECOND],IMAGE[DUP]] := Id (* added 1999 December 21 based on COMPOSE.NB *) composite[IMAGE[SECOND],IMAGE[id[cart[Id,V]]],CROSS] := composite[COMPOSE,SWAP,cross[IMAGE[SWAP],Id]] composite[IMAGE[SECOND],IMAGE[id[cart[V,V]]]] := IMAGE[SECOND] composite[IMAGE[SECOND],IMAGE[id[Id]]] := IMAGE[inverse[DUP]] (* added 1999 November 30 based on IMG-SWAP.LOG *) composite[IMAGE[SECOND],IMAGE[SWAP]] := IMAGE[FIRST] (* added 1999 October 12 based on INVERSE.5 *) composite[IMAGE[SECOND],INVERSE] := composite[IMAGE[FIRST],id[P[cart[V,V]]]] (* added 2000 September 4 based on NEW.M *) composite[IMAGE[SECOND],inverse[IMAGE[id[cart[V,V]]]]] := composite[IMAGE[SECOND],id[P[cart[V,V]]]] (* added 2001 December 18 based on DORA-RA.NB *) composite[IMAGE[SECOND],inverse[IMAGE[FIRST]]] := union[cart[complement[set[0]],complement[set[0]]], cart[set[0],set[0]]] (* added 2000 September 4 based on NEW.M *) composite[IMAGE[SECOND],inverse[IMAGE[SWAP]]] := composite[IMAGE[FIRST],id[P[cart[V,V]]]] (* added 2003 May 12 based on LAMBHULL.NB *) composite[IMAGE[SECOND],LAMBHULL] := ACLOSURE (* added 2003 February 4 based on PLUS-Q.NB *) composite[IMAGE[SECOND],PLUS] := composite[RC[omega],id[omega]] (* added 2002 February 3 based on RCF.NB *) composite[IMAGE[SECOND],RCF] := POWER (* derived 2004 August 10 in RS-3.NB *) composite[IMAGE[SECOND],RESTRICT] := composite[IMG,inverse[FIRST]] (* derived 2004 September 14 in WF-REC-6.NB *) composite[IMAGE[SECOND],SECOND,history[x_,y_]] := composite[IMAGE[x],VERTSECT[y]] (* Theorem VS-IMG-3 in VS2 proved 1999 July 14 *) composite[IMAGE[x_],SINGLETON] := VERTSECT[x] composite[IMAGE[SINGLETON],id[range[SINGLETON]]] := composite[SINGLETON,id[range[SINGLETON]]] composite[IMAGE[SINGLETON],IMAGE[inverse[SINGLETON]]] := IMAGE[id[range[SINGLETON]]] (* added 2002 May 24 based on ADJOIN.NB *) composite[IMAGE[SUCC],id[omega]] := composite[IMAGE[id[complement[set[0]]]],id[omega],SUCC] (* added 2000 January 1 based on RA-IMG-H.NB *) composite[IMAGE[SUCC],IMAGE[inverse[SUCC]]] := IMAGE[id[range[SUCC]]] (* added 1999 September 23 based on CART-LOG.1 *) composite[IMAGE[SWAP],CART] := composite[CART,SWAP] (* added 1999 November 28 based on COMPOSE1.NB *) composite[IMAGE[SWAP],COMPOSE] := composite[COMPOSE,cross[IMAGE[SWAP],IMAGE[SWAP]],SWAP] (* derived 2004 December 17 in RFX.NB *) composite[IMAGE[SWAP],CORE[RFX]] := composite[INVERSE,CORE[RFX]] (* added 1999 November 28 based on CROSS-1.NB *) composite[IMAGE[SWAP],CROSS] := composite[CROSS,cross[IMAGE[SWAP],IMAGE[SWAP]]] (* added 1999 December 21 based on IMAGSWAP.NB *) composite[IMAGE[SWAP],DIF] := composite[DIF,cross[IMAGE[SWAP],IMAGE[SWAP]]] (* derived 2004 May 12 in EQUIV.NB *) composite[IMAGE[SWAP],EQUIV] := EQUIV (* added 2003 March 5 based on TRV-IN.NB *) composite[IMAGE[SWAP],HULL[TRV]] := composite[INVERSE,HULL[TRV]] (* added 2000 September 4 based on NEW.M *) composite[IMAGE[SWAP],id[BIJ]] := composite[INVERSE,id[BIJ]] (* added 2000 September 4 based on NEW.M *) composite[IMAGE[SWAP],id[FUNS]] := composite[INVERSE,id[FUNS]] (* added 1999 October 12 based on INVERSE.4 *) composite[IMAGE[SWAP],id[P[cart[V,V]]]] := INVERSE (* added 1999 October 13 based on NEWRULES.1 *) composite[IMAGE[SWAP],id[P[Id]]] := id[P[Id]] (* added 2001 October 30 based on SYM-CORE.NB *) composite[IMAGE[SWAP],id[SYM]] := id[SYM] (* added 2003 August 10 based on ZADD-INV.NB *) composite[IMAGE[SWAP],id[Z]] := composite[INVERSE,id[Z]] (* added 1999 October 13 based on NEWRULES.1 *) composite[IMAGE[SWAP],IMAGE[DUP]] := IMAGE[DUP] (* added 1999 December 24 based on FIX-CAP.NB *) composite[IMAGE[SWAP],IMAGE[id[cart[V,V]]]] := IMAGE[SWAP] (* derived 2004 August 6 in CONSTANT.NB *) composite[IMAGE[SWAP],IMAGE[LEFT[x_]]] := IMAGE[RIGHT[x]] (* derived 2004 August 6 in CONSTANT.NB *) composite[IMAGE[SWAP],IMAGE[RIGHT[x_]]] := IMAGE[LEFT[x]] (* Theorem INV-CO2 in INV2 *) composite[IMAGE[SWAP],IMAGE[SWAP]] := IMAGE[id[cart[V,V]]] (* added 2003 August 10 based on ZADD-INV.NB *) composite[IMAGE[SWAP],INTADD] := composite[INTADD,cross[INVERSE,INVERSE]] (* added 2000 September 4 based on NEW.M *) composite[IMAGE[SWAP],INVERSE] := id[P[cart[V,V]]] (* added 2002 January 6 based on Q-AGAIN.NB *) composite[IMAGE[SWAP],inverse[IMAGE[FIRST]]] := composite[id[P[cart[V,V]]],inverse[IMAGE[SECOND]]] (* added 2000 September 4 based on NEW.M *) composite[IMAGE[SWAP],inverse[IMAGE[id[cart[V,V]]]]] := INVERSE (* added 2002 January 6 based on Q-AGAIN.NB *) composite[IMAGE[SWAP],inverse[IMAGE[SECOND]]] := composite[id[P[cart[V,V]]],inverse[IMAGE[FIRST]]] (* added 2003 July 26 based on INTADDSW.NB *) composite[IMAGE[SWAP],PLUS] := composite[INVERSE,PLUS] (* added 2002 February 3 based on RCF.NB *) composite[IMAGE[SWAP],RCF] := RCF (* added 2003 January 25 based on TC-ZN.NB *) composite[IMAGE[TC],IMAGE[TC]] := IMAGE[TC] (* derived 2005 November 6 in IMG-THIN.NB *) composite[IMAGE[thinpart[x_]],complement[E]] := composite[IMAGE[x],complement[E]] (* derived 2005 November 6 in IMG-THIN.NB *) composite[IMAGE[thinpart[x_]],complement[S]] := composite[IMAGE[x],complement[S]] (* derived 2005 August 5 in IMG-INS.NB *) composite[IMAGE[thinpart[x_]],id[P[domain[VERTSECT[x_]]]]] := IMAGE[x] (* derived 2005 November 6 in IMG-THIN.NB *) composite[IMAGE[thinpart[x_]],inverse[S]] := composite[IMAGE[x],inverse[S]] (* derived 2004 September 5 in WF-REC-4.NB *) composite[IMAGE[thinpart[ZN]],id[REGULAR]] := composite[IMAGE[ZN],id[REGULAR]] (* added 1999 October 11 based on CROSS.1 *) composite[IMAGE[TWIST],CART] := CROSS (* added 1999 October 11 based on CROSS.1 *) composite[IMAGE[TWIST],CROSS] := composite[CART,cross[IMAGE[id[cart[V,V]]],IMAGE[id[cart[V,V]]]]] (* added 1999 October 11 based on CROSS.1 *) composite[IMAGE[TWIST],IMAGE[TWIST]] := IMAGE[id[cart[cart[V,V],cart[V,V]]]] (* added 2001 February 24 based on NEW.NB *) composite[IMAGE[UB[x_]],POWER] := 0 (* derived 2004 December 21 in UCL-A.NB *) composite[IMAGE[UCLOSURE],ACLOSURE,IMAGE[UCLOSURE]] := composite[ACLOSURE,IMAGE[UCLOSURE]] (* Theorem CO-IM-V1 in CO2 *) composite[image[V,x_],y_] := cart[domain[y],image[V,x]] (* Theorem CO-IM-V2 in CO2 *) composite[x_,image[V,y_]] := cart[V,intersection[range[x],image[V,y]]] (* added 2003 January 25 based on TC-ZN.NB *) composite[IMAGE[ZN],IMAGE[TC]] := IMAGE[ZN] (* added 2001 July 17 based on ZN-IMG1.TXT *) composite[IMAGE[ZN],IMAGE[ZN]] := IMAGE[ZN] (* added 2001 July 15 based on ZN-AGAIN.NB *) composite[IMAGE[ZN],POWER] := VERTSECT[ZN] (* added 2002 May 17 based on ZN.NB *) composite[IMAGE[ZN],SUCC] := VERTSECT[ZN] (* added 2002 May 17 based on TC.NB *) composite[IMAGE[ZN],TC] := IMAGE[ZN] (* added 2001 July 17 based on ZN-IMG4.NB *) composite[IMAGE[ZN],VERTSECT[ZN]] := VERTSECT[ZN] (* added 2001 November 29 *) composite[IMG,cross[CART,Id]] := union[cart[composite[DISJOINT,FIRST],set[0]], composite[SECOND,FIRST,id[composite[E,inverse[E],FIRST]]]] (* added 2001 May 4 based on LAMBDA.NB *) composite[IMG,cross[COMPOSE,Id]] := composite[IMG,cross[Id,IMG],ASSOC] (* added 2000 September 7 based on CUT.NB *) composite[IMG,cross[composite[IMAGE[id[cart[u_,v_]]],x_],y_]] := composite[IMAGE[id[v]],IMG,cross[x,composite[IMAGE[id[u]],y]]] (* tentative rule added 1999 November 28 based on CROSS-1.NB *) composite[IMG,cross[CROSS,Id],ROT] := composite[COMPOSE,cross[COMPOSE,IMAGE[SWAP]]] (* derived 2005 July 30 in BOYER.NB *) composite[IMG,cross[Id,IMAGE[SECOND]],id[composite[inverse[IMAGE[SECOND]],S,IMAGE[FIRST]]]] := composite[IMAGE[SECOND],FIRST,id[composite[inverse[IMAGE[SECOND]],S,IMAGE[FIRST]]]] (* added 1999 December 25 based on REMOVED.NB *) composite[IMG,cross[IMAGE[DUP],x_]] := composite[CAP,cross[Id,x]] (* added 1999 December 25 based on IMG-IDX.TXT *) composite[IMG,cross[IMAGE[id[cart[x_,y_]]],z_]] := composite[IMAGE[id[y]],IMG,cross[Id,composite[IMAGE[id[x]],z]]] (* derived 2005 November 9 in RESTRICT.NB *) composite[IMG,cross[RESTRICT,Id]] := composite[IMG,cross[Id,inverse[S]]] (* derived 2005 November 5 in IMIMG-OO.NB *) composite[IMG,id[cart[BIJ,x_]],inverse[SECOND]] := composite[Q,inverse[S],id[x]] (* derived 2005 November 5 in IM-DORA.NB *) composite[IMG,id[cart[FUNS,x_]],inverse[SECOND]] := composite[image[DORA,FUNS],inverse[S],id[x]] (* derived 2005 November 5 in IM-DORA.NB *) composite[IMG,id[cart[P[Id],x_]],inverse[SECOND]] := composite[inverse[S],id[x]] (* derived 2005 November 5 in IM-DORA.NB *) composite[IMG,id[cart[P[id[x_]],y_]],inverse[SECOND]] := composite[inverse[S],IMAGE[id[x]],id[y]] (* discovered 1999 December 16 in IMG.NB *) composite[IMG,id[cart[set[x_],y_]]] := composite[IMAGE[x],id[y],inverse[LEFT[x]]] (* discovered 1999 December 16 in IMG.NB *) composite[IMG,id[cart[x_,set[y_]]]] := composite[IMAGE[SECOND],IMAGE[id[cart[y,V]]],id[x],inverse[RIGHT[y]]] (* added 2003 June 11 based on VS.NB *) composite[IMG,id[cart[V,range[SINGLETON]]],inverse[FIRST]] := union[cart[V,set[0]],composite[inverse[E],IMAGE[SECOND],VS]] (* added 2002 October 22 based on CO-ID.NB *) composite[IMG,id[cart[V,V]]] := IMG (* added 2000 September 28 based on IMG.NB *) composite[IMG,id[composite[DISJOINT,IMAGE[FIRST]]]] := cart[composite[DISJOINT,IMAGE[FIRST]],set[0]] (* added 1999 December 27 based on IMG-1.NB *) composite[IMG,inverse[SECOND]] := composite[IMAGE[SECOND],id[P[cart[V,V]]], inverse[IMAGE[FIRST]],inverse[S]] (* revised 1999 December 19 based on REVISED.NB *) composite[IMG,LEFT[x_]] := composite[IMAGE[x],id[image[V,set[x]]]] (* revised 1999 December 19 based on REVISED.NB *) composite[IMG,RIGHT[x_]] := composite[IMAGE[SECOND],IMAGE[id[cart[x,V]]],id[image[V,set[x]]]] (* added 1999 December 25 based on REMOVED.NB *) composite[IMG,SWAP,cross[x_,IMAGE[DUP]]] := composite[CAP,cross[x,Id]] (* derived 2005 July 30 in BOYER.NB *) composite[IMG,SWAP,cross[IMAGE[FIRST],IMAGE[SWAP]],id[composite[inverse[IMAGE[SECOND]],inverse[S],IMAGE[FIRST]]]] := composite[IMAGE[FIRST],SECOND,id[composite[inverse[IMAGE[SECOND]],inverse[S],IMAGE[FIRST]]]] (* added 2003 August 9 based on ASS-ADDZ.NB *) composite[INTADD,cross[Id,INTADD],ASSOC] := composite[INTADD,cross[INTADD,Id]] (* added 2003 August 22 based on AC-TWIST.NB *) composite[INTADD,cross[INTADD,INTADD],TWIST] := composite[INTADD,cross[INTADD,INTADD]] (* added 2003 July 25 based on INTADD.NB *) composite[INTADD,id[cart[V,V]]] := INTADD (* added 2003 August 12 based on RO-ZADD.NB *) composite[INTADD,id[cart[Z,V]]] := INTADD (* added 2003 August 12 based on RO-ZADD.NB *) composite[INTADD,id[INVERSE],inverse[FIRST]] := cart[Z,set[id[omega]]] (* added 2003 August 11 based on DOROZADD.NB *) composite[INTADD,inverse[FIRST]] := cart[Z,Z] (* added 2003 August 11 based on DOROZADD.NB *) composite[INTADD,inverse[SECOND]] := cart[Z,Z] (* added 2003 August 12 based on RO-ZADD.NB *) composite[INTADD,LEFT[x_]] := composite[image[inverse[INTADD],set[x]],INVERSE] (* added 2003 August 12 based on RO-ZADD.NB *) composite[INTADD,RIGHT[x_]] := composite[image[inverse[INTADD],set[x]],INVERSE] (* added 2003 July 26 based on INTADDSW.NB *) composite[INTADD,SWAP] := INTADD (* derived 2004 May 8 in GLB-LUB.NB *) composite[intersection[BIGCUP,inverse[E]],POWER] := Id (* revised 1999 October 24 *) composite[w_,intersection[complement[cart[x_,y_]],z_]] := union[composite[w,id[complement[y]],z], composite[w,z,id[complement[x]]]] (* revised 1999 October 24 *) composite[intersection[complement[cart[x_,y_]],z_],w_] := union[composite[id[complement[y]],z,w], composite[z,id[complement[x]],w]] (* added 2002 June 3 based on REPLACE.NB *) composite[intersection[complement[E],inverse[E]],id[omega]] := composite[inverse[E],id[omega]] (* added 2002 June 3 based on REPLACE.NB *) composite[intersection[complement[inverse[S]],inverse[E]],id[omega]] := 0 (* added 2002 June 3 based on REPLACE.NB *) composite[intersection[complement[S],inverse[E]],id[omega]] := composite[inverse[E],id[omega]] (* derived 2004 January 3 in ABSTRACT.NB *) composite[intersection[x,composite[y,BIGCAP]],SINGLETON] := intersection[y,composite[x,SINGLETON]] (* added 2002 May 5 based on REPLACE.NB *) composite[intersection[composite[BIGCUP,CAP], composite[inverse[POWER],SECOND]],inverse[FIRST]] := composite[inverse[E],UCLOSURE] (* derived 2004 January 3 in ABSTRACT.NB *) composite[intersection[x_,composite[y_,BIGCUP]],SINGLETON] := intersection[y,composite[x,SINGLETON]] (* derived 2004 January 3 in ABSTRACT.NB *) composite[intersection[x_,composite[y_,DISJOINT]],SINGLETON] := intersection[composite[x,SINGLETON],composite[y,complement[E]]] (* derived 2005 May 27 in MOD-SU-2.NB *) composite[intersection[composite[E,FIRST],rotate[NATMOD]],inverse[SECOND]] := cart[omega,intersection[omega,complement[set[0]]]] (* added 2002 December 3 based on STRANGE.NB *) composite[intersection[composite[u_,FIRST],composite[v_, intersection[composite[x_,FIRST],composite[y_,SECOND]]]], inverse[SECOND]] := composite[intersection[v,composite[u,inverse[x]]],y] (* added 1998 September 6 *) composite[intersection[composite[u_,FIRST],composite[v_,SECOND]], cross[x_,y_]] := intersection[composite[u,x,FIRST],composite[v,y,SECOND]] (* Suggested 1998 October 11 in CAP-LOG.1 *) composite[intersection[composite[x_,FIRST],composite[y_,SECOND]],DUP] := composite[Id,intersection[x,y]] (* From ID-DUP.LOG *) composite[intersection[composite[x_,FIRST],composite[y_,SECOND]], id[DUP]] := composite[intersection[x,composite[y,DUP]],FIRST,id[DUP]] composite[intersection[composite[x_,FIRST],composite[y_,SECOND]], id[z_],inverse[FIRST]] := intersection[x,composite[y,z]] composite[intersection[composite[x_,FIRST],composite[y_,SECOND]], id[z_],inverse[SECOND]] := intersection[y,composite[x,inverse[z]]] (* added 2002 October 29 based on RIF-DUP.NB *) composite[intersection[composite[x_,FIRST],composite[y_,SECOND]],inverse[RIF],DUP] := composite[intersection[y,composite[x,SWAP]],inverse[FIRST]] (* added 1999 November 4 based on ASSOC.NB *) composite[intersection[composite[x_,FIRST],composite[y_,SECOND]],LEFT[z_]] := composite[id[image[x,set[z]]],y] (* added 1999 November 4 based on ASSOC.NB *) composite[intersection[composite[x_,FIRST],composite[y_,SECOND]],RIGHT[z_]] := composite[id[image[y,set[z]]],x] (* 1998 October 18 found using AssInt test *) composite[intersection[composite[x_,FIRST],y_],id[cart[V,V]]] := intersection[composite[x,FIRST],y] (* added 1998 September 6 *) composite[intersection[composite[x_,FIRST],composite[y_,SECOND]],inverse[FIRST]] := composite[id[range[y]],x] (* derived 2004 January 3 in BINCLOSE.NB *) composite[intersection[composite[x_,FIRST],composite[y_,SECOND]],inverse[rotate[z_]]] := composite[intersection[composite[x,z],composite[y,FIRST]],inverse[SECOND]] (* added 1998 September 6 *) composite[intersection[composite[x_,FIRST],composite[y_,SECOND]],inverse[SECOND]] := composite[id[range[x]],y] composite[intersection[composite[x_,FIRST],composite[y_,SECOND]],SWAP] := intersection[composite[y,FIRST],composite[x,SECOND]] (* added 1999 November 13 based on CARTNORM.1 *) composite[intersection[x_,composite[y_,IMAGE[id[z_]]]],id[P[z_]]] := composite[intersection[x,y],id[P[z]]] (* added 2002 December 30 based on RO-TW.NB *) composite[intersection[composite[w_,intersection[composite[x_,FIRST],composite[y_,SECOND]]], composite[z_,FIRST]],SWAP] := intersection[composite[w, intersection[composite[x,SECOND],composite[y,FIRST]]],composite[z,SECOND]] (* added 2001 February 4 based on IMAGEDIF.NB *) composite[intersection[composite[w_,intersection[composite[x_,FIRST],composite[y_,SECOND]]], composite[z_,SECOND]],SWAP] := intersection[composite[w, intersection[composite[x,SECOND],composite[y,FIRST]]],composite[z,FIRST]] (* added 1999 December 2 based on SYMDIF-2.NB *) composite[intersection[composite[inverse[DIF],FIRST], composite[SWAP,inverse[DIF],SECOND]],inverse[CUP]]:=inverse[SYMDIF] (* added 1999 October 14 based on ROT-FLIP.1 *) composite[intersection[composite[inverse[FIRST],x_],composite[inverse[SECOND],FIRST]], inverse[SECOND]] := inverse[rotate[x]] (* added 2001 February 2 based on ROTATE.NB *) composite[intersection[composite[inverse[FIRST],FIRST], composite[inverse[SECOND],x_]],inverse[SECOND]] := composite[SWAP,inverse[rotate[x]]] (* added 2001 May 25 based on FUNPART.NB *) composite[intersection[composite[inverse[FIRST],inverse[SINGLETON],SECOND], composite[inverse[SECOND],inverse[SINGLETON],IMG]], inverse[FIRST]] := composite[inverse[E],FUNPART] (* added 2002 December 3 based on EQDFNORM.NB *) composite[intersection[composite[inverse[FIRST],x_,RIF], composite[inverse[SECOND],y_,FIRST]],inverse[SECOND]] := composite[cross[x,y],inverse[RIF]] (* added 2002 December 3 based on IMG-EQDF.NB *) composite[intersection[composite[inverse[FIRST],u_,SECOND], composite[inverse[SECOND],v_, intersection[composite[x_,SECOND],composite[y_,FIRST]]]], id[z_],inverse[FIRST]] := composite[cross[u,v],id[composite[Id,x]], intersection[composite[inverse[FIRST],z],composite[inverse[SECOND],y]]] (* added 1999 October 14 based on ROT-FLIP.1 *) composite[intersection[composite[inverse[FIRST],SECOND],composite[inverse[SECOND],x_]],inverse[FIRST]] := composite[SWAP,inverse[rotate[composite[x,SWAP]]]] (* added 2001 October 5 based on PATHS.NB *) composite[intersection[composite[inverse[FIRST],x_,SECOND], composite[inverse[SECOND],y_,rotate[z_]]],inverse[FIRST]] := composite[cross[x,y],inverse[z]] (* added 2002 May 5 based on REPLACE.NB *) composite[intersection[composite[inverse[POWER],SECOND],composite[complement[inverse[S]],BIGCUP,CAP]], inverse[FIRST]] := composite[complement[inverse[E]],UCLOSURE] (* added 2002 September 12 based on LEFT-SUB.NB *) composite[intersection[composite[NATADD,FIRST],composite[NATADD,SECOND]], inverse[RIF]] := composite[id[omega],S,id[omega],inverse[DUP]] (* added 1999 November 23 based on ADJ-B1.NB *) composite[intersection[composite[S,IMAGE[id[complement[x_]]]],inverse[S]],id[image[S,set[x_]]]] := inverse[ADJOIN[x]] (* derived 2004 August 11 in RS-4.NB *) composite[intersection[composite[S,IMAGE[x_]],LB[LB[x_]]],SINGLETON] := VERTSECT[x] (* derived 2005 August 1 in CATOFUNS.NB *) composite[intersection[composite[S,IMAGE[SECOND]],IMAGE[FIRST]],id[FUNS]] := composite[IMAGE[FIRST],id[U[image[MAP,Id]]]] (* derived 2004 January 3 in ABSTRACT.NB *) composite[intersection[x_,composite[y_,S]],SINGLETON] := intersection[composite[x,SINGLETON],composite[y,E]] (* from COLLAPSE.LOG session 1999 April 15 *) composite[intersection[composite[w_,SECOND],composite[x_,FIRST]], intersection[composite[inverse[FIRST],y_],composite[inverse[SECOND],z_]]] := intersection[composite[w,z],composite[x,y]] (* added 2002 December 3 based on STRANGE.NB *) composite[intersection[composite[u_,SECOND],composite[v_, intersection[composite[x_,SECOND],composite[y_,FIRST]]]], inverse[FIRST]] := composite[intersection[v,composite[u,inverse[x]]],y] (* 1998 October 18 found using AssInt test *) composite[intersection[composite[x_,SECOND],y_],id[cart[V,V]]] := intersection[composite[x,SECOND],y] (* added 1999 December 7 based on FLIPRULE.NB *) composite[intersection[x_,composite[y_,SWAP]],id[cart[V,V]]] := intersection[x,composite[y,SWAP]] (* added 1999 December 7 based on FLIPRULE.NB *) composite[intersection[x_,composite[y_,SWAP]],SWAP] := intersection[y,composite[x,SWAP]] (* derived 2005 October 22 in TO-C.NB *) composite[intersection[Di,inverse[to[x_]]],inverse[to[x_]]] := intersection[Di,inverse[to[x]]] (* derived 2005 October 22 in WO-DI.NB *) composite[intersection[Di,inverse[wo[x_]]],id[fix[wo[x_]]]] := intersection[Di,inverse[wo[x]]] (* derived 2005 October 22 in WO-DI.NB *) composite[intersection[Di,inverse[wo[x_]]],inverse[wo[x_]]] := intersection[Di,inverse[wo[x]]] (* derived 2005 October 22 in CO-PO-DI.NB *) composite[intersection[Di,po[x_]],po[x_]] := intersection[Di,po[x]] (* derived 2005 October 22 in TO-C.NB *) composite[intersection[Di,to[x_]],to[x_]] := intersection[Di,to[x]] (* derived 2005 October 22 in WO-DI.NB *) composite[intersection[Di,wo[x_]],id[fix[wo[x_]]]] := intersection[Di,wo[x]] (* derived 2005 October 22 in WO-C.NB *) composite[intersection[Di,wo[x_]],wo[x_]] := intersection[Di,wo[x]] (* added 2001 March 9 based on QUICKER.NB *) composite[intersection[DISJOINT,composite[S,RC[x_]]],id[P[x_]]] := intersection[DISJOINT,composite[S,RC[x]]] (* added 2002 April 18 based on DESCEND.NB *) composite[intersection[E,inverse[E]],id[REGULAR]] := 0 (* derived 2005 April 23 in FACT-S.NB *) composite[intersection[FACTORIAL,x_],id[omega]] := intersection[FACTORIAL,x] (* derived 2005 October 22 in IDX-CO-I.NB *) composite[intersection[x_,y_],id[domain[x_]]] := composite[Id,intersection[x,y]] composite[w_,intersection[x_,image[V,y_]]] := composite[w,x,id[image[V,y]]] composite[intersection[x_,image[V,y_]],z_] := composite[x,id[image[V,y]],z] (* added 2002 October 22 based on CO-ID.NB *) composite[intersection[y_,inverse[x_]],id[fix[composite[x_,y_]]]] := intersection[y,inverse[x]] (* derived 2005 October 22 in IDX-CO-I.NB *) composite[intersection[x_,inverse[y_]],id[range[y_]]] := intersection[x,inverse[y]] (* derived 2005 October 22 in IDX-CO-I.NB *) composite[intersection[x_,inverse[po[y_]]],id[fix[po[y_]]]] := intersection[x,inverse[po[y]]] (* derived 2004 August 10 in RS-3.NB *) composite[intersection[inverse[S],UB[union[E,composite[inverse[IMAGE[FIRST]],complement[E],FIRST]]]],IMAGE[id[cart[V,V]]]] := RESTRICT (* derived 2005 October 22 in IDX-CO-I.NB *) composite[intersection[x_,inverse[to[y_]]],id[fix[to[y_]]]] := intersection[x,inverse[to[y]]] (* derived 2005 October 22 in IDX-CO-I.NB *) composite[intersection[x_,po[y_]],id[fix[po[y_]]]] := intersection[x,po[y]] (* added 1999 December 21 based on ROTATE.NB *) composite[intersection[x_,rotate[y_]],id[cart[V,V]]] := intersection[x,rotate[y]] (* added 2002 October 29 based on RO-I.NB *) composite[intersection[rotate[x_],rotate[y_]],inverse[FIRST]] := composite[SECOND,intersection[inverse[x],inverse[y]]] (* added 2002 October 29 based on RO-I.NB *) composite[intersection[rotate[x_],rotate[y_]],inverse[SECOND]] := composite[Id,fix[composite[inverse[x],y]]] (* added 2002 June 3 based on REPLACE.NB *) composite[intersection[S,inverse[E]],id[omega]] := 0 (* derived 2005 October 22 in IDX-CO-I.NB *) composite[intersection[x_,to[y_]],id[fix[to[y_]]]] := intersection[x,to[y]] (* added 2002 April 10 based on INVAR-S.NB *) composite[INVAR,ADJOIN[x_]] := composite[id[intersection[image[V,set[x]],invar[x]]],INVAR] (* added 2002 April 10 based on INVAR.NB *) composite[INVAR,CART] := union[composite[DISJOINT,FIRST],composite[S,SECOND]] (* added 2002 April 10 based on INVAR-S.NB *) composite[INVAR,complement[E]] := cart[V,V] (* derived 2004 January 22 in INVAR.NB *) composite[INVAR,complement[inverse[S]]] := cart[V,V] (* added 2002 April 10 based on INVAR-S.NB *) composite[INVAR,complement[S]] := cart[complement[set[0]],V] (* added 2002 April 10 based on INVAR.NB *) composite[INVAR,CUP] := intersection[composite[INVAR,FIRST],composite[INVAR,SECOND]] (* added 2002 April 10 based on INVAR-S.NB *) composite[INVAR,DISJOINT] := cart[V,V] (* added 2002 April 10 based on INVAR-S.NB *) composite[INVAR,E] := composite[INVAR,SINGLETON] (* added 2002 April 10 based on INVAR.NB *) composite[INVAR,IMAGE[DUP]] := cart[V,V] (* added 2002 April 10 based on INVAR.NB *) composite[INVAR,IMAGE[id[cart[V,V]]]] := INVAR (* added 2002 April 10 based on INVAR.NB *) composite[INVAR,IMAGE[id[Di]]] := INVAR (* derived 2004 January 22 in INVAR.NB *) composite[INVAR,INVAR] := cart[V,V] (* added 2002 April 10 based on INVAR-S.NB *) composite[INVAR,inverse[S]] := cart[V,V] (* added 2002 April 10 based on INVAR-S.NB *) composite[INVAR,S] := INVAR (* added 2003 June 23 based on INVAR.NB *) composite[INVAR,SINGLETON] := union[cart[complement[cart[V,V]],V], composite[E,SECOND],composite[complement[E],FIRST]] (* added 2003 January 30 *) composite[INVAR,SUBCOMMUTE] := cart[V,V] (* added 2002 May 25 based on INVAR.NB *) intersection[invar[SUCC],invar[inverse[SUCC]]] := fix[IMAGE[inverse[SUCC]]] (* inverse of Theorem ADJ-CO2 in ADJ proved 1999 March 13 *) composite[inverse[ADJOIN[x_]],inverse[S]] := composite[inverse[S],id[image[S,set[x]]]] (* revised 1999 December 19 based on REVISED.NB *) composite[inverse[ADJOIN[x_]],S] := composite[S,IMAGE[id[complement[x]]], id[image[V,set[x]]]] (* derived 2004 July 27 in ROTASSOC.NB *) composite[inverse[ASSOC],cross[x_,cross[y_,z_]],ASSOC] := cross[cross[x,y],z] (* added 2002 June 16 based on LEFT-ROT.NB *) composite[inverse[ASSOC],cross[Id,LEFT[x_]]] := cross[RIGHT[x],Id] (* derived 2004 March 23 in TRV-K.NB *) composite[inverse[ASSOC],id[cart[x_,y_]],inverse[SECOND]] := composite[cross[composite[id[cart[x,V]],inverse[SECOND]],Id],id[y]] (* added 1999 October 31 based on ASSOC.1 *) composite[inverse[ASSOC],id[cart[V,V]]] := inverse[ASSOC] (* added 1999 October 31 based on ASSOC.1 *) composite[inverse[ASSOC],inverse[ROT]] := composite[ROT,ASSOC] (* added 1999 November 3 based on CURRY.NB *) composite[inverse[ASSOC],LEFT[x_]] := cross[LEFT[x],Id] (* added 2002 June 16 based on LEFT-ROT.NB *) composite[inverse[ASSOC],RIGHT[x_]] := composite[RIGHT[second[x]],RIGHT[first[x]]] (* added 1999 October 13 based on ASSOC.1 *) composite[inverse[ASSOC],SWAP] := ROT (* derived 2004 December 31 in IN-RK.NB *) composite[inverse[BIGCUP],complement[inverse[E]]] := composite[complement[inverse[E]],IMAGE[inverse[BIGCUP]]] (* added 1998 August 9 *) composite[inverse[BIGCUP],complement[inverse[S]]] := composite[complement[inverse[S]],POWER] (* added 2001 July 21 based on LB-ZN.NB *) composite[inverse[BIGCUP],complement[ZN]] := composite[complement[ZN],POWER] (* added 1998 August 9 *) composite[inverse[BIGCUP],inverse[S]] := composite[inverse[S],POWER] (* added 2001 July 21 based on LB-ZN.NB *) composite[inverse[BIGCUP],ZN] := composite[ZN,POWER] (* added 2001 December 17 based on Q-HAT.NB *) composite[inverse[CARD],id[image[Q,OMEGA]]] := inverse[CARD] (* added 2002 May 28 based on FINITE.NB *) composite[inverse[CARD],id[OMEGA]] := inverse[CARD] (* derived 2005 November 5 in CARD.NB *) composite[inverse[CARD],intersection[E,inverse[S]],CARD] := 0 (* derived 2005 November 5 in CARD.NB *) composite[inverse[CARD],intersection[S,inverse[E]],CARD] := 0 (* added 2001 December 17 based on Q-HAT.NB *) composite[inverse[CARD],inverse[CARD]] := inverse[CARD] (* added 2001 December 17 based on Q-HAT.NB *) composite[inverse[CARD],Q] := composite[inverse[CARD],CARD] (* added 1999 October 12 based on NEWRULES.1 *) composite[INVERSE,CART] := composite[CART,SWAP] (* based on 1999 December 11 notebook CART-OO.NB *) composite[inverse[CART],CART] := union[id[cart[V,V]], cart[union[cart[V,set[0]],cart[set[0],V]], union[cart[V,set[0]],cart[set[0],V]]]] (* based on 1999 December 11 notebook CART-OO.NB *) composite[inverse[CART],id[complement[set[0]]],CART] := id[cart[complement[set[0]],complement[set[0]]]] (* added 2001 April 30 based on CLIQUES3.NB *) composite[inverse[CART],id[P[cart[V,V]]]] := inverse[CART] (* added 2001 April 24 based on RFX3.NB *) composite[inverse[CART],inverse[IMAGE[id[cart[V,V]]]]] := inverse[CART] (* added 2002 December 27 based on SBCOMMUT.NB *) composite[inverse[CART],inverse[IMAGE[RIF]]] := composite[SWAP,cross[inverse[IMAGE[SWAP]],inverse[IMAGE[SWAP]]],inverse[COMPOSE]] (* added 2001 May 8 based on MONOCART.NB *) composite[inverse[CART],S,CART] := union[cross[S,S], cart[union[cart[V,set[0]],cart[set[0],V]],cart[V,V]]] (* added 2003 October 7 based on WF-IND.NB *) composite[inverse[CART],SINGLETON] := cross[SINGLETON,SINGLETON] (* added 2001 April 30 based on CLIQUES2.NB *) composite[inverse[CLIQUES],complement[E]] := composite[complement[S],CART,DUP] (* added 2001 April 30 based on CLIQUES2.NB *) composite[inverse[CLIQUES],E] := composite[S,CART,DUP] (* derived 2003 December 31 in COARSER.NB *) composite[inverse[COARSER],COARSER] := composite[inverse[BIGCUP],BIGCUP] (* derived 2003 December 31 in COARSER.NB *) composite[inverse[COARSER],POWER] := inverse[BIGCUP] (* added 2002 November 19 based on EQV.NB *) composite[INVERSE,COMPOSE] := composite[COMPOSE,SWAP,cross[IMAGE[SWAP],IMAGE[SWAP]]] (* derived 2004 June 14 in TP-SYM.NB *) composite[INVERSE,CUP] := composite[CUP,cross[INVERSE,INVERSE]] (* derived 2005 January 29 in DIV.NB *) composite[inverse[DIV],complement[DIV]] := composite[id[omega],complement[DIV]] (* derived 2005 January 29 in DIV.NB *) composite[inverse[DIV],DIV] := cart[omega,omega] (* derived 2005 May 5 in S-DIV.NB *) composite[inverse[DIV],E] := cart[omega,intersection[omega,complement[set[0]]]] (* derived 2005 May 5 in S-DIV.NB *) composite[inverse[DIV],inverse[S]] := cart[V,omega] (* added 2001 December 23 based on DORA-1.NB *) composite[inverse[DORA],cross[inverse[S],inverse[S]]] := composite[inverse[IMAGE[id[cart[V,V]]]],inverse[S],CART] (* added 2001 December 23 based on DORA-1.NB *) composite[inverse[DORA],id[cart[V,V]]] := inverse[DORA] (* added 1999 October 29 based on 1999 October 28 FIX-IDP.LOG *) composite[inverse[DUP],complement[inverse[E]]] := composite[complement[inverse[E]],IMAGE[inverse[DUP]]] composite[inverse[DUP],cross[x_,y_]] := intersection[composite[x,FIRST],composite[y,SECOND]] composite[inverse[DUP],cross[x_,y_],DUP] := composite[Id,intersection[x,y]] (* added 2004 July 14 based on X2530-41.NB *) composite[inverse[DUP],Di] := union[cart[union[Di,complement[cart[V,V]]],V],composite[Di,inverse[DUP]]] (* Theorem DUP-CO1 in DUP1 proved 1998 November 29 *) composite[inverse[DUP],DUP] := Id composite[inverse[DUP],id[x_]] := composite[id[fix[x]],inverse[DUP]] (* Suggested 1998 October 11 in CAP-LOG.1 *) composite[inverse[DUP],intersection[composite[inverse[FIRST],x_], composite[inverse[SECOND],y_]]] := composite[Id,intersection[x,y]] (* added 2002 April 28 based on CLIQUES.NB *) composite[inverse[DUP],inverse[CART],complement[inverse[S]]] := composite[complement[inverse[E]],CLIQUES] (* added 2000 December 14 based on CHECK-H8.NB *) composite[inverse[DUP],inverse[CART],DISJOINT] := composite[inverse[POWER],DISJOINT,IMAGE[PAIRSET]] (* added 1999 October 17 based on STRANGE.7 *) composite[inverse[DUP],inverse[CART],E] := composite[S,PAIRSET] (* added 2001 April 30 based on CLIQUES2.NB *) composite[inverse[DUP],inverse[CART],inverse[S]] := composite[inverse[E],CLIQUES] composite[inverse[DUP],inverse[FIRST]] := Id composite[inverse[DUP],inverse[SECOND]] := Id (* added 2003 July 1 based on IN-DUP.NB *) composite[inverse[DUP],LEFT[x_]] := cart[set[x],set[x]] (* added 2002 October 29 based on RIF-DUP.NB *) composite[inverse[DUP],RIF,cross[x_,y_]] := composite[FIRST, intersection[composite[y,SECOND],composite[SWAP,x,FIRST]]] (* added 2002 October 29 based on RIF-DUP.NB *) composite[inverse[DUP],RIF,intersection[ composite[inverse[FIRST],x_], composite[inverse[SECOND],y_]]] := composite[FIRST,intersection[y,composite[SWAP,x]]] (* added 2003 July 1 based on IN-DUP.NB *) composite[inverse[DUP],RIGHT[x_]] := cart[set[x],set[x]] composite[inverse[DUP],SWAP] := inverse[DUP] (* added 1999 October 10 based on TWIST.3 *) composite[inverse[DUP],TWIST] := cross[inverse[DUP],inverse[DUP]] (* added 2003 June 6 based on ACL-UCL.NB *) composite[inverse[E],ACLOSURE,inverse[BIGCAP]] := S (* added 2001 May 10 based on UCLOS-1.NB *) composite[inverse[E],ACLOSURE,inverse[S]] := composite[inverse[E],ACLOSURE] (* corrected 2002 May 2 *) composite[inverse[E],ADJOIN[x_]] := union[cart[V,intersection[x,image[V,set[x]]]], composite[inverse[E],id[image[V,set[x]]]]] (* added 2000 December 14 based on CHECK-H8.NB *) composite[inverse[E],BIGCUP,DISJOINT] := cart[V,V] (* derived 2004 December 24 in UCL-LBUB.NB *) composite[inverse[E],BIGCUP,inverse[LB[x_]]] := composite[inverse[E],x] (* derived 2004 December 24 in UCL-LBUB.NB *) composite[inverse[E],BIGCUP,inverse[UB[x_]]] := composite[inverse[E],inverse[x]] (* derived 2004 December 24 in UCL-LBUB.NB *) composite[inverse[E],BIGCUP,VERTSECT[x_]] := composite[inverse[E],thinpart[x]] (* added 2000 September 12 based on CLS6-2.NB *) composite[inverse[E],CAP,cross[x_,inverse[S]]] := composite[inverse[E],CAP,cross[x,Id]] (* added 2000 September 12 based on CLS6-2.NB *) composite[inverse[E],CAP,cross[inverse[S],x_]] := composite[inverse[E],CAP,cross[Id,x]] (* added 2000 September 12 based on CLS6-2.NB *) composite[inverse[E],CAP,cross[inverse[S],inverse[S]]] := composite[inverse[E],CAP] (* derived 2004 May 12 in EQUIV.NB *) composite[inverse[E],CAP,intersection[composite[inverse[FIRST],HULL[TRV],inverse[S]], composite[inverse[SECOND],INVERSE,HULL[TRV],inverse[S]]]] := composite[inverse[E],EQUIV] (* added 2000 September 7 based on CART.NB *) composite[inverse[E],CART,cross[x_,composite[SINGLETON,y_]]] := cross[composite[inverse[E],x],y] (* added 2000 September 7 based on CART.NB *) composite[inverse[E],CART,cross[composite[SINGLETON,x_],y_]] := cross[x,composite[inverse[E],y]] (* added 2000 September 12 based on CLS6-3.NB *) composite[inverse[E],CART,cross[inverse[S],x_]] := composite[inverse[E],CART,cross[Id,x]] (* added 2000 September 12 based on CLS6-3.NB *) composite[inverse[E],CART,cross[x_,inverse[S]]] := composite[inverse[E],CART,cross[x,Id]] (* added 2000 September 12 based on CLS6-3.NB *) composite[inverse[E],CART,cross[inverse[S],inverse[S]]] := composite[inverse[E],CART] (* added 2000 September 7 based on CART.NB *) composite[inverse[E],CART,cross[x_,SINGLETON]] := cross[composite[inverse[E],x],Id] (* added 2000 September 7 based on CART.NB *) composite[inverse[E],CART,cross[SINGLETON,x_]] := cross[Id,composite[inverse[E],x]] (* added 2000 December 14 based on CHECK-H8.NB *) composite[inverse[E],CART,DUP,complement[inverse[E]]] := cart[V,cart[V,V]] (* added 2000 December 14 based on CHECK-H8.NB *) composite[inverse[E],CART,DUP,complement[inverse[S]]] := cart[V,cart[V,V]] (* added 2000 December 14 based on MORE-PRS.NB *) composite[inverse[E],CART,DUP,Di] := cart[V,cart[V,V]] (* added 2000 December 14 based on MORE-PRS.NB *) composite[inverse[E],CART,DUP,E] := cart[V,cart[V,V]] (* added 2000 December 14 based on CHECK-H8.NB *) composite[inverse[E],CART,DUP,inverse[BIGCUP]] := composite[inverse[E],CART,DUP,POWER] (* added 2000 December 14 based on MORE-PRS.NB *) composite[inverse[E],CART,DUP,inverse[S]] := composite[inverse[E],CART,DUP] (* added 2000 December 14 based on MORE-PRS.NB *) composite[inverse[E],CART,DUP,S] := cart[V,cart[V,V]] (* derived 2004 November 10 in CART-INE.NB *) composite[inverse[E],CART,inverse[FIRST]] := composite[inverse[FIRST],inverse[E]] (* derived 2004 November 10 in CART-INE.NB *) composite[inverse[E],CART,inverse[SECOND]] := composite[inverse[SECOND],inverse[E]] (* added 2003 July 4 based on COARSER.NB *) composite[inverse[E],COARSER] := composite[inverse[S],BIGCUP] (* Theorem DI-CO-E2 in DI added 1998 July 2 *) composite[inverse[E],complement[E]] := Di (* inverse of SP-E-C-E added 1999 January 19 *) composite[inverse[E],complement[inverse[E]]] := cart[V,V] composite[inverse[E],complement[inverse[S]]] := cart[V,V] (* added 1998 August 23 *) composite[inverse[E],complement[S]] := composite[inverse[SINGLETON],complement[S]] (* added 2002 November 29 based on PLUS.NB *) composite[inverse[E],COMPOSE,cross[composite[IMAGE[SWAP],PLUS],PLUS]] := EQUIDIFF (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],CORE[x_],complement[E]] := composite[inverse[E],id[x],complement[E]] (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],CORE[x_],complement[inverse[E]]] := cart[V,U[x]] (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],CORE[x_],complement[inverse[S]]] := cart[V,U[x]] (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],CORE[x_],complement[S]] := composite[inverse[E],id[x],complement[S]] (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],CORE[x_],Di] := cart[V,U[x]] (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],CORE[x_],DISJOINT] := composite[inverse[E],id[x],DISJOINT] (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],CORE[x_],E] := cart[V,U[x]] (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],CORE[x_],inverse[S]] := composite[inverse[E],CORE[x]] (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],CORE[x_],S] := cart[V,U[x]] (* added 1999 October 5 based on CUP-SR.2 *) composite[inverse[E],CUP] := union[composite[inverse[E],FIRST],composite[inverse[E],SECOND]] (* Theorem SP-E-DI in SP3 proved 1998 November 11 *) composite[inverse[E],Di] := cart[V,V] (* added 2001 March 8 based on IMIMG.NB *) composite[inverse[E],DIF,cross[Id,complement[inverse[E]]]] := composite[inverse[E],FIRST] (* added 2001 March 8 based on IMIMG.NB *) composite[inverse[E],DIF,cross[Id,inverse[E]]] := composite[inverse[E],DIF,cross[Id,BIGCAP]] (* inverse of DJT-CO-E added 1998 August 23 *) composite[inverse[E],DISJOINT] := composite[Id,complement[inverse[E]]] (* derived 2005 May 3 in IN-E-DIV.NB *) composite[inverse[E],DIV] := cart[intersection[omega,complement[set[0]]],omega] (* Theorem E-CO-IN2 in E2 *) composite[inverse[E],E] := cart[V,V] (* derived 2004 October 2 in CLIQ-EQV.NB *) composite[inverse[E],id[cliques[x_]],E] := composite[id[fix[x]],intersection[x,inverse[x]],id[fix[x]]] (* added 2002 November 16 based on FACTEQDF.NB *) composite[inverse[E],id[cliques[EQUIDIFF]]] := GREATEST[EQUIDIFF] (* added 2000 December 18 based on LB-LB.NB *) composite[inverse[E],id[cliques[Q]]] := GREATEST[Q] (* derived 2005 October 15 in OO-FIN.NB *) composite[inverse[E],id[image[IMAGE[SECOND],x_]],E] := range[U[image[CROSS,id[x]]]] (* added 2002 November 17 based on HER-Z.NB *) composite[inverse[E],id[image[inverse[S],x_]],E] := composite[inverse[E],id[x],E] (* derived 2004 October 28 in AC2.NB *) composite[inverse[E],id[intersection[x_,complement[set[0]]]]] := composite[inverse[E],id[x]] (* added 2001 May 8 based on CORE-2.NB *) composite[inverse[E],id[x_],inverse[S]] := composite[inverse[E],CORE[x]] (* derived 2005 May 3 in INE-OM-E.NB *) composite[inverse[E],id[omega],E] := cart[omega,omega] (* added 2002 June 3 based on S-ON.TXT *) composite[inverse[E],id[omega],SUCC] := composite[id[omega],inverse[S],id[omega]] (* added 2002 June 3 based on S-ON.TXT *) composite[inverse[E],id[OMEGA],SUCC] := composite[id[OMEGA],inverse[S],id[OMEGA]] (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],id[P[x_]],complement[E]] := composite[id[x],Di] (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],id[P[x_]],DISJOINT] := composite[id[x],complement[inverse[E]]] (* added 1999 October 17 based on STRANGE.3 *) composite[inverse[E],id[P[x_]],E] := cart[x,x] (* see IMG-E-3 in IMG4.DEM *) composite[x_,inverse[E],id[P[domain[VERTSECT[x_]]]]] := composite[inverse[E],IMAGE[x]] composite[inverse[E],id[range[SINGLETON]]] := inverse[SINGLETON] (* derived 2003 December 30 in T2.NB *) composite[inverse[E],id[Uclosure[x_]],complement[E]] := composite[inverse[E],id[x],complement[E]] (* derived 2003 December 30 in T2.NB *) composite[inverse[E],id[Uclosure[x_]],complement[S]] := composite[inverse[E],id[x],complement[S]] (* derived 2003 December 30 in T2.NB *) composite[inverse[E],id[Uclosure[x_]],DISJOINT] := composite[inverse[E],id[x],DISJOINT] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[inverse[E],id[Z]] := composite[id[cart[omega,omega]],inverse[VERTSECT[EQUIDIFF]]] (* derived 2004 September 29 in WF-REC-7.NB *) composite[inverse[E],IMAGE[funpart[w_]],VERTSECT[y_]] := composite[funpart[w],thinpart[y]] (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],IMAGE[id[x_]],complement[E]] := composite[id[x],Di] (* derived 2004 July 21 in TOMINMAX.NB *) composite[inverse[E],IMAGE[id[complement[x_]]],id[P[x_]]] := 0 (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],IMAGE[id[x_]],complement[inverse[E]]] := cart[V,x] (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],IMAGE[id[x_]],complement[inverse[S]]] := cart[V,x] (* added 2002 June 9 based on OMEGA.NB *) composite[inverse[E],IMAGE[id[complement[set[0]]]],id[omega],SUCC] := composite[id[intersection[omega,complement[set[0]]]],inverse[S],id[omega]] (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],IMAGE[id[x_]],Di] := cart[V,x] (* added 2000 December 9 based on REPLACE.NB *) composite[x_,inverse[E],IMAGE[id[domain[x_]]]] := composite[x,inverse[E]] (* added 2003 June 18 based on CUT-CORE.NB *) composite[inverse[E],IMAGE[id[x_]],E] := cart[V,x] (* derived 2005 February 19 in ITR-OM-E.NB *) composite[inverse[E],IMAGE[id[omega]],IMAGE[inverse[S]],id[omega]] := composite[inverse[E],id[omega]] (* derived 2004 December 24 in IMG-LBUB.NB *) composite[inverse[E],IMAGE[x_],inverse[LB[y_]]] := composite[thinpart[x],y] (* discovered 1999 December 20 in CANCEL.NB *) composite[inverse[E],IMAGE[inverse[POWER]],S] := cart[V,V] (* derived 2005 August 17 in MONOPRSQ.NB *) composite[inverse[E],IMAGE[inverse[PRIMESEQ]],PRIMESEQ] := composite[inverse[E],id[omega]] (* derived 2004 May 14 in REPLACE.NB *) composite[inverse[E],IMAGE[x_],inverse[S]] := composite[inverse[E],IMAGE[thinpart[x]]] (* added 2003 November 28 based on FIN-IND.NB *) composite[inverse[E],IMAGE[inverse[S]],IMAGE[SINGLETON]] := union[cart[complement[set[0]],set[0]],composite[inverse[E],IMAGE[SINGLETON]]] (* derived 2004 December 24 in THINPART.NB *) composite[inverse[E],IMAGE[inverse[S]],VERTSECT[x_]] := composite[inverse[S],thinpart[x]] (* derived 2004 December 24 in IMG-LBUB.NB *) composite[inverse[E],IMAGE[x_],inverse[UB[y_]]] := composite[thinpart[x],inverse[y]] (* added 2000 December 14 based on CHECK-H8.NB *) composite[inverse[E],IMAGE[PAIRSET],CART,DUP] := composite[id[range[PAIRSET]],inverse[S]] (* added 2000 December 14 based on CHECK-H8.NB *) composite[inverse[E],IMAGE[x_],POWER] := composite[x,inverse[S],id[complement[image[S,complement[domain[VERTSECT[x]]]]]]] (* added 2000 December 14 based on CHECK-H8.NB *) composite[inverse[E],IMAGE[POWER],DISJOINT] := composite[POWER,complement[inverse[E]]] (* added 2002 January 6 based on Q-TEST.NB *) composite[inverse[E],IMAGE[SWAP],id[complement[set[0]]]] := composite[inverse[E],IMAGE[SWAP]] (* added 2001 March 15 based on H-1.NB *) composite[inverse[E],IMAGE[TC],S] := cart[V,FULL] (* derived 2004 December 24 in THINPART.NB *) composite[inverse[E],IMAGE[thinpart[x_]],VERTSECT[y_]] := composite[thinpart[x],thinpart[y]] (* added 1999 December 28 based on REMOVED.NB *) composite[inverse[E],IMG,cross[x_,SINGLETON]] := composite[rotate[E],cross[x,Id]] (* added 2002 January 6 based on LAMBDA42.NB *) composite[inverse[E],IMG,inverse[FIRST]] := composite[inverse[E],IMAGE[SECOND]] (* added 1999 December 28 based on REMOVED.NB *) composite[inverse[E],IMG,SWAP,cross[SINGLETON,x_]] := composite[rotate[E],SWAP,cross[Id,x]] (* added 1999 December 27 based on IMG-1.NB composite[inverse[E],IMG,SWAP,cross[SINGLETON,x_]] := composite[rotate[composite[inverse[x],E]],SWAP] *) (* added 2003 January 25 based on INVAR.NB *) composite[inverse[E],INVAR] := cart[V,V] (* added 1998 August 23 on basis of ASSOC-4.LOG *) composite[inverse[E],inverse[BIGCAP]] := S composite[inverse[E],inverse[BIGCUP]] := inverse[S] (* derived 2005 May 5 in S-DIV.NB *) composite[inverse[E],inverse[DIV]] := union[cart[set[0],omega],composite[inverse[E],id[omega]]] (* Corollary IMG-BC-7 in IMG4 proved 1998 November 21 *) composite[inverse[E],inverse[E]] := composite[inverse[E],BIGCUP] (* added 2002 November 16 based on LB-UB.NB *) composite[inverse[E],inverse[GREATEST[x_]]] := composite[inverse[x],id[fix[x]]] (* added 2002 November 16 based on LB-UB.NB *) composite[inverse[E],inverse[LB[x_]]] := composite[Id,x] (* added 2002 November 29 based on PLUS.NB *) composite[inverse[E],INVERSE,PLUS] := inverse[rotate[NATADD]] (* discovered 1999 December 20 in CANCEL.NB *) composite[inverse[E],inverse[POWER],S] := cart[V,V] composite[inverse[E],inverse[S]] := inverse[E] (* added 2001 March 15 based on H-1.NB *) composite[inverse[E],inverse[TC]] := composite[inverse[E],id[FULL]] (* added 2002 November 16 based on LB-UB.NB *) composite[inverse[E],inverse[UB[x_]]] := inverse[x] (* Theorem K-E-IN in K proved 2000 May 25 *) composite[inverse[E],K] := cart[V,V] (* derived 2004 December 22 in UCL-COMT.NB *) composite[inverse[E],LB[LB[x_]]] := UB[x] (* derived 2004 December 22 in UCL-COMT.NB *) composite[inverse[E],LB[UB[x_]]] := LB[x] (* added 1999 October 5 based on PAIRSET.3 *) composite[inverse[E],PAIRSET] := union[FIRST,SECOND] (* added 2002 November 29 based on PLUS.NB *) composite[inverse[E],PLUS] := composite[SWAP,inverse[rotate[NATADD]]] (* Theorem POW-CO3 in POW3 *) composite[inverse[E],POWER] := inverse[S] (* added 1998 August 9 *) composite[inverse[E],PS] := cart[V,V] (* added 2001 February 27 based on DMORG.NB *) composite[inverse[E],RC[x_]] := composite[id[intersection[x,image[V,set[x]]]],complement[inverse[E]],id[P[x]]] (* derived 2005 January 6 in RCF.NB *) composite[inverse[E],RCF] := composite[id[DISJOINT],inverse[CUP]] (* derived 2004 August 10 in RS-3.NB *) composite[inverse[E],RESTRICT] := composite[inverse[E],IMAGE[id[cart[V,V]]]] (* Theorem SR-CO12 in SR2 *) composite[inverse[E],S] := cart[V,V] (* Theorem SG-4E in SG1 *) composite[inverse[E],SINGLETON] := Id (* derived 2004 January 22 in U-SBV-PC.NB *) composite[inverse[E],SUBVAR,inverse[S]] := composite[inverse[E],SUBVAR] (* added 2000 August 16 based on SYMDIF2.NB *) composite[inverse[E],SYMDIF] := union[composite[inverse[E],DIF],composite[inverse[E],DIF,SWAP]] (* added 2000 October 26 based on TC-4.NB *) composite[inverse[E],TC,inverse[S]] := composite[inverse[E],TC] (* derived 2004 December 29 in I-FUL-REG.NB *) composite[inverse[E],TC,SINGLETON] := union[Id,composite[inverse[E],TC]] (* added 2003 January 25 based on TC-ZN.NB *) composite[inverse[E],TC,ZN] := composite[ZN,inverse[E]] (* derived 2004 May 14 in REPLACE.NB *) composite[inverse[E],thinpart[ZN]] := composite[inverse[E],IMAGE[ZN]] (* added 2003 June 6 based on ACL-UCL.NB *) composite[inverse[E],UCLOSURE,inverse[BIGCUP]] := inverse[S] (* derived 2004 December 21 in COMUTANT.NB *) composite[inverse[E],UCLOSURE,inverse[LB[COMMUTE]]] := COMMUTE (* added 2001 May 10 based on UCLOS-1.NB *) composite[inverse[E],UCLOSURE,inverse[S]] := composite[inverse[E],UCLOSURE] (* derived 2004 May 14 in REPLACE.NB *) composite[inverse[E],VERTSECT[x_]] := thinpart[x] (* added 2001 July 14 based on ZN-IMG.NB *) composite[inverse[E],ZN] := composite[ZN,inverse[E]] (* derived 2004 May 12 in EQUIV.NB *) composite[INVERSE,EQUIV] := EQUIV (* derived 2005 April 23 in FACT-S.NB *) composite[inverse[FACTORIAL],id[omega]] := inverse[FACTORIAL] composite[inverse[FIRST],id[x_]] := composite[id[cart[x,V]],inverse[FIRST]] (* added 2000 February 5 based on FUNPART.NB *) composite[x_,inverse[funpart[x_]]] := id[range[funpart[x]]] (* added 2001 April 1 based on HF-CONT.NB *) composite[inverse[HC],S] := composite[S,TC] composite[inverse[x_],id[complement[range[x_]]]] := 0 (* added 2002 October 22 based on CO-ID.NB *) composite[x_,inverse[y_],id[image[y_,domain[x_]]]] := composite[x,inverse[y]] (* added 2002 October 22 based on CO-ID.NB *) composite[inverse[x_],y_,id[image[inverse[y_],range[x_]]]] := composite[inverse[x],y] (* added 2002 October 22 based on CO-ID.NB *) composite[INVERSE,id[P[cart[V,V]]]] := INVERSE (* added 1999 October 12 based on NEWRULES.1 *) composite[INVERSE,id[P[Id]]] := id[P[Id]] (* added 2002 October 22 based on CO-ID.NB *) composite[inverse[x_],id[range[x_]]] := inverse[x] (* added 2003 August 10 based on ZADD-INV.NB *) composite[INVERSE,id[Z]] := composite[id[Z],INVERSE] (* added 2000 Septermber 12 based on DOUBLINV.NB *) composite[inverse[IMAGE[BIGCUP]],inverse[BIGCUP]] := composite[inverse[BIGCUP],inverse[BIGCUP]] (* added 2001 October 5 based on IBC-TH.NB *) composite[inverse[IMAGE[BIGCUP]],inverse[S]] := composite[inverse[S],IMAGE[inverse[BIGCUP]]] (* added 1999 October 12 based on NEWRULES.1 *) composite[INVERSE,IMAGE[DUP]] := IMAGE[DUP] (* derived 2004 December 6 in IDP.NB *) composite[inverse[IMAGE[DUP]],CAP,cross[IMAGE[DUP],IMAGE[DUP]]] := CAP (* added 2001 May 18 based on COMMUTE4.NB *) composite[inverse[IMAGE[DUP]],COMMUTE,IMAGE[DUP]] := cart[V,V] (* derived 2005 July 30 in CATORELN.NB *) composite[inverse[IMAGE[DUP]],id[P[cart[V,V]]]] := inverse[IMAGE[DUP]] (* Theorem FIX-IDP4 in FIX2 proved 1998 December 20 *) composite[inverse[IMAGE[DUP]],IMAGE[id[Id]]] := IMAGE[inverse[DUP]] (* added 2001 April 29 based on CLIQUES2.NB *) composite[inverse[IMAGE[DUP]],inverse[IMAGE[CART]],inverse[S],POWER] := composite[inverse[S],CLIQUES] (* added 2000 September 12 based on DOUBLINV.NB *) composite[inverse[IMAGE[DUP]],inverse[IMAGE[FIRST]]] := Id (* added 1998 August 23 *) composite[inverse[IMAGE[DUP]],inverse[IMAGE[id[Id]]]] := inverse[IMAGE[DUP]] composite[inverse[IMAGE[DUP]],inverse[IMAGE[inverse[DUP]]]] := Id (* added 2000 September 12 based on DOUBLINV.NB *) composite[inverse[IMAGE[DUP]],inverse[IMAGE[SECOND]]] := Id (* added 2000 September 12 based on DOUBLINV.NB *) composite[inverse[IMAGE[DUP]],inverse[IMAGE[SWAP]]] := inverse[IMAGE[DUP]] (* added 1998 August 21 for Normality of FIX~ *) composite[inverse[IMAGE[DUP]],inverse[S]] := composite[inverse[S],IMAGE[inverse[DUP]]] (* added 2003 January 30 *) composite[inverse[IMAGE[DUP]],inverse[SUBCOMMUTE]] := composite[INVAR,IMAGE[SWAP]] (* derived 2004 January 13 in RA-RCF.NB *) composite[inverse[IMAGE[DUP]],RCF] := cart[set[0],set[set[0]]] (* added 2003 January 30 *) composite[inverse[IMAGE[DUP]],SUBCOMMUTE] := INVAR (* added 1999 October 12 based on INVERSE.4 *) composite[INVERSE,IMAGE[id[cart[V,V]]]] := IMAGE[SWAP] (* added 2001 May 18 based on COMMUTE5.NB *) composite[inverse[IMAGE[id[cart[V,V]]]],COMMUTE] := COMMUTE (* added 2002 January 2 based on CRSRULES.NB *) composite[inverse[IMAGE[id[cart[V,V]]]],image[inverse[CROSS],x_]] := image[inverse[CROSS],x] (* added 2000 June 14 based on IMAGE-Q.NB *) composite[inverse[IMAGE[id[cart[V,V]]]],INVERSE] := inverse[IMAGE[SWAP]] (* added 1999 December 24 based on ONCEMORE.NB *) composite[inverse[IMAGE[id[cart[V,V]]]],inverse[IMAGE[SWAP]]] := inverse[IMAGE[SWAP]] (* derived 2004 August 10 in RS-3.NB *) composite[inverse[IMAGE[id[cart[V,V]]]],inverse[VERTSECT[RESTRICT]]] := inverse[VERTSECT[RESTRICT]] (* derived 2004 December 21 in COMUTANT.NB *) composite[inverse[IMAGE[id[cart[V,V]]]],LB[COMMUTE]] := LB[COMMUTE] (* derived 2004 December 21 in SBCOMMUT.NB *) composite[inverse[IMAGE[id[cart[V,V]]]],LB[SUBCOMMUTE]] := LB[SUBCOMMUTE] (* added 2002 October 29 based on COMMUTE.NB *) composite[inverse[IMAGE[id[cart[V,V]]]],rotate[composite[COMPOSE,SWAP]]] := rotate[composite[COMPOSE,SWAP]] (* added 2003 April 30 based on SCARTDUP.NB *) composite[inverse[IMAGE[id[cart[V,V]]]],S,CART,DUP] := composite[S,CART,DUP] (* derived 2004 December 21 in SBCOMMUT.NB *) composite[inverse[IMAGE[id[cart[V,V]]]],SUBCOMMUTE] := SUBCOMMUTE (* derived 2004 December 21 in SBCOMMUT.NB *) composite[inverse[IMAGE[id[cart[V,V]]]],UB[SUBCOMMUTE]] := UB[SUBCOMMUTE] (* derived 2005 January 3 in ZN-RANK.NB *) composite[inverse[IMAGE[id[x_]]],complement[E]] := union[cart[complement[x],V],composite[Id,complement[E]]] (* added 1998 August 23 *) composite[inverse[IMAGE[id[Id]]],IMAGE[DUP]] := inverse[IMAGE[inverse[DUP]]] (* added 1998 August 23 *) composite[inverse[IMAGE[id[Id]]],inverse[IMAGE[inverse[DUP]]]] := inverse[IMAGE[inverse[DUP]]] (* added 2000 September 4 based on NEW.M *) composite[inverse[IMAGE[id[x_]]],id[P[y_]]] := inverse[IMAGE[id[x]]] /; subclass[x,y] composite[inverse[IMAGE[id[x_]]],inverse[IMAGE[id[y_]]]] := inverse[IMAGE[id[intersection[x,y]]]] (* added 1999 December 19 based on CUT-S.NB *) composite[inverse[IMAGE[id[x_]]],inverse[S],IMAGE[id[y_]]] := composite[id[P[union[y,complement[x]]]],inverse[IMAGE[id[x]]],inverse[S]] (* added 1999 December 23 based on IMINRULE.NB *) composite[inverse[IMAGE[id[x_]]],RC[x_],inverse[S]] := composite[S,RC[x],IMAGE[id[x]]] (* added 1999 December 19 based on CUT-S.NB *) composite[inverse[IMAGE[id[x_]]],S,IMAGE[id[y_]]] := composite[S,IMAGE[id[y]],id[P[union[x,complement[y]]]]] (* added 1999 December 19 based on RC-5.NB *) composite[inverse[IMAGE[id[x_]]],S,RC[x_]] := composite[S,RC[x]] (* added 1998 August 23 *) composite[inverse[IMAGE[inverse[DUP]]],inverse[IMAGE[DUP]]] := inverse[IMAGE[id[Id]]] (* rule FIX~ o S -> S o ID added 1998 August 21 for Normality of ID *) composite[inverse[IMAGE[inverse[DUP]]],S] := composite[S,IMAGE[DUP]] (* added 2002 May 18 based on FUNPART.NB *) composite[inverse[image[inverse[IMG],range[SINGLETON]]],inverse[E],IMAGE[SINGLETON]] := composite[inverse[FUNPART],inverse[IMAGE[FIRST]],E,inverse[E]] (* added 2002 May 18 based on FUNPART.NB *) composite[inverse[image[inverse[IMG],range[SINGLETON]]],SINGLETON] := composite[inverse[FUNPART],inverse[IMAGE[FIRST]],E] (* added 2002 January 10 based on MORE-PRS.NB *) composite[inverse[IMAGE[inverse[PAIRSET]]], inverse[IMAGE[id[cart[V,V]]]]] := inverse[IMAGE[inverse[PAIRSET]]] (* derived 2004 October 14 in REFINE.NB *) composite[inverse[IMAGE[inverse[S]]],COARSER, inverse[IMAGE[inverse[S]]],COARSER] := composite[inverse[IMAGE[inverse[S]]],COARSER] (* added 2000 September 12 based on DOUBLINV.NB *) composite[inverse[IMAGE[inverse[S]]],inverse[BIGCUP]] := inverse[BIGCUP] (* added 2000 September 12 based on DOUBLINV.NB *) composite[inverse[IMAGE[inverse[S]]],inverse[IMAGE[inverse[SINGLETON]]]] := inverse[BIGCUP] (* added 2003 March 9 based on CORE-HER.NB *) composite[inverse[IMAGE[inverse[S]]],inverse[S],IMAGE[inverse[S]]] := composite[inverse[S],IMAGE[inverse[S]]] (* added 2000 September 28 based on SUCC.NB *) composite[inverse[IMAGE[inverse[SUCC]]],S] := composite[S,IMAGE[SUCC]] (* added 2001 August 25 based on TC.NB *) composite[inverse[IMAGE[inverse[TC]]],S] := composite[S,IMAGE[TC]] (* derived 2004 August 11 in X2911.NB *) composite[inverse[IMAGE[LEFT[x_]]],IMAGE[LEFT[x_]]] := union[Id,cart[V,complement[image[V,set[x]]]]] (* added 2000 September 12 based on DOUBLINV.NB *) composite[inverse[IMAGE[POWER]],inverse[BIGCUP]] := inverse[IMAGE[inverse[S]]] (* derived 2004 August 11 in X2911.NB *) composite[inverse[IMAGE[RIGHT[x_]]],IMAGE[RIGHT[x_]]] := union[Id,cart[V,complement[image[V,set[x]]]]] (* added 2003 April 19 based on XSQ-RELN.NB *) composite[inverse[IMAGE[ROT]],IMAGE[ROT]] := composite[inverse[IMAGE[id[cart[cart[V,V],V]]]],IMAGE[id[cart[cart[V,V],V]]]] (* added 1999 December 26 based on ROT-E.NB *) composite[inverse[IMAGE[SINGLETON]],inverse[BIGCUP]] := Id (* added 2000 September 22 based on EXPT *) composite[inverse[IMAGE[SINGLETON]],SINGLETON] := id[range[SINGLETON]] (* added 2001 March 4 based on INVERSE2.NB *) composite[INVERSE,IMAGE[SWAP]] := IMAGE[id[cart[V,V]]] (* added 2001 May 18 based on COMMUTE5.NB *) composite[inverse[IMAGE[SWAP]],COMMUTE] := composite[COMMUTE,IMAGE[SWAP]] (* added 2002 January 3 based on COMPRULE.NB *) composite[inverse[IMAGE[SWAP]],E,cross[x_,y_],inverse[E]] := composite[E,cross[y,x],inverse[E],IMAGE[SWAP]] (* added 2001 March 4 based on INVERSE2.NB *) composite[inverse[IMAGE[SWAP]],IMAGE[SWAP]] := composite[inverse[IMAGE[id[cart[V,V]]]],IMAGE[id[cart[V,V]]]] (* derived 2004 June 17 in X1366.NB *) composite[inverse[IMAGE[SWAP]],INVAR,CROSS] := composite[INVAR,CROSS,SWAP] (* added 2001 March 4 based on INVERSE2.NB *) composite[inverse[IMAGE[SWAP]],INVERSE] := inverse[IMAGE[id[cart[V,V]]]] (* added 2002 January 3 based on COMPOSE.NB *) composite[inverse[IMAGE[SWAP]],inverse[IMAGE[FIRST]]] := inverse[IMAGE[SECOND]] (* added 2002 January 3 based on COMPOSE.NB *) composite[inverse[IMAGE[SWAP]],inverse[IMAGE[id[x_]]]] := composite[inverse[IMAGE[id[inverse[x]]]],inverse[IMAGE[SWAP]]] (* added 2002 January 3 based on COMPRULE.NB *) composite[inverse[IMAGE[SWAP]],inverse[IMAGE[SECOND]]] := inverse[IMAGE[FIRST]] (* added 1999 November 30 based on IMG-SWAP.2 *) composite[inverse[IMAGE[SWAP]],inverse[IMAGE[SWAP]]] := inverse[IMAGE[id[cart[V,V]]]] (* added 2001 March 4 based on INVERSE2.NB *) composite[inverse[IMAGE[SWAP]],inverse[S],INVERSE] := composite[inverse[IMAGE[id[cart[V,V]]]],inverse[S],id[P[cart[V,V]]]] (* derived 2004 December 21 in SBCOMMUT.NB *) composite[inverse[IMAGE[SWAP]],inverse[SUBCOMMUTE]] := composite[SUBCOMMUTE,IMAGE[SWAP]] (* added 2002 January 3 based on REPLACE.NB *) composite[inverse[IMAGE[SWAP]],LB[LB[complement[cross[x_,y_]]]]] := composite[LB[LB[complement[cross[y,x]]]],IMAGE[SWAP]] (* added 2002 January 3 based on COMPRULE.NB *) composite[inverse[IMAGE[SWAP]],LB[UB[complement[cross[x_,y_]]]]] := composite[LB[UB[complement[cross[y,x]]]],IMAGE[SWAP]] (* added 2003 April 30 based on SCARTDUP.NB *) composite[inverse[IMAGE[SWAP]],S,CART,DUP] := composite[S,CART,DUP] (* added 2002 December 27 based on SBCOMMUT.NB *) composite[inverse[IMAGE[SWAP]],SUBCOMMUTE,IMAGE[SWAP]] := inverse[SUBCOMMUTE] (* added 2001 August 25 based on TC.NB *) composite[inverse[IMAGE[TC]],DISJOINT] := composite[DISJOINT,IMAGE[inverse[TC]]] (* added 2001 March 15 based on H-2.NB *) composite[inverse[IMAGE[TC]],inverse[S]] := composite[inverse[S],IMAGE[inverse[TC]]] (* added 2003 April 19 based on XSQ-RELN.NB *) composite[inverse[IMAGE[TWIST]],IMAGE[TWIST]] := composite[inverse[IMAGE[id[cart[cart[V,V],cart[V,V]]]]], IMAGE[id[cart[cart[V,V],cart[V,V]]]]] (* added 2003 August 10 based on ZADD-INV.NB *) composite[INVERSE,INTADD] := composite[INTADD,cross[INVERSE,INVERSE]] (* added 1999 October 12 based on INVERSE.4 *) composite[INVERSE,INVERSE] := id[P[cart[V,V]]] (* added 2002 October 22 based on CO-ID.NB *) composite[inverse[y_],inverse[x_],id[image[x_,range[y_]]]] := composite[inverse[y],inverse[x]] (* added 1999 October 12 based on INVERSE.4 *) composite[INVERSE,inverse[IMAGE[id[cart[V,V]]]]] := INVERSE (* added 2001 March 4 based on INVERSE2.NB *) composite[INVERSE,inverse[IMAGE[SWAP]]] := id[P[cart[V,V]]] (* added 2001 March 4 based on INVERSE2.NB *) composite[INVERSE,inverse[S]] := composite[inverse[S],IMAGE[SWAP]] (* added 2003 July 5 based on PLUS-ISO.NB *) composite[INVERSE,inverse[UB[rotate[NATADD]]],id[omega]] := composite[inverse[S],PLUS] (* added 2000 May 24 based on K.NB *) composite[inverse[K],Di] := cart[V,V] (* Theorem K-IN-E in K proved 2000 May 25 *) composite[inverse[K],E] := cart[V,V] (* added 2000 May 16 based on K-SR.NB *) composite[inverse[K],inverse[S]] := inverse[PS] (* Theorem K-K-EQ proved 2000 May 27 *) composite[inverse[K],K] := union[Id,composite[K,inverse[K]]] (* added 2003 June 6 based on K-PS.NB *) composite[inverse[K],Q] := composite[Q,inverse[K]] (* added 2000 May 16 based on K-SR.NB *) composite[inverse[K],SINGLETON] := cart[V,set[0]] (* derived 2004 March 6 in IMAGE.NB *) composite[inverse[LB[composite[x_,inverse[E]]]], id[P[domain[VERTSECT[x_]]]]] := composite[inverse[S],IMAGE[x]] (* derived 2004 May 14 in REPLACE.NB *) composite[inverse[LB[x_]],id[domain[VERTSECT[x_]]]] := composite[inverse[S],VERTSECT[x]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[inverse[LEFT[0]],EQUIDIFF] := composite[rotate[NATADD],SWAP] (* added 1999 December 6 based on CURRY.NB *) composite[inverse[LEFT[x_]],id[y_]] := composite[id[image[y,set[x]]],inverse[LEFT[x]]] (* added 2003 August 12 based on RO-ZADD.NB *) composite[inverse[LEFT[x]],inverse[INTADD]] := composite[INVERSE,image[inverse[INTADD],set[x]]] (* added 2003 August 7 based on PLUS.NB *) composite[inverse[LEFT[x_]],inverse[NATADD]] := inverse[plus[x]] (* derived 2005 July 17 in TIMES.NB *) composite[inverse[LEFT[x_]],inverse[NATMUL]] := inverse[times[x]] (* added 1999 November 20 based on CURRY.NB *) composite[inverse[LEFT[x_]],inverse[rotate[y_]]] := inverse[image[inverse[y],set[x]]] (* added 1999 December 23 based on IMINRULE.NB *) composite[inverse[LEFT[x_]],inverse[SECOND]] := id[image[V,set[x]]] (* added 2002 May 24 based on LEFT.NB *) composite[inverse[LEFT[y_]],power[x_]] := iterate[x,set[y]] (* added 2003 January 25 based on LT-RT.NB *) composite[inverse[LEFT[x_]],RIGHT[y_]] := cart[set[x],set[y]] (* added 1999 December 6 based on CURRY.NB *) composite[inverse[LEFT[x_]],SWAP] := inverse[RIGHT[x]] (* added 2002 November 2 based on PAIR-V.NB *) composite[inverse[LeftPairV],id[cart[x_,y_]]] := 0 (* derived 2004 November 25 in MAP-SU.NB *) composite[inverse[MAP],MAP] := union[cart[cart[complement[set[0]],set[0]], cart[complement[set[0]],set[0]]],cart[cart[set[0],V],cart[set[0],V]], id[cart[complement[set[0]],complement[set[0]]]]] (* derived 2004 November 25 in MAP-SU.NB *) composite[inverse[MAP],inverse[S],MAP] := union[cart[cart[V,V],cart[complement[set[0]],set[0]]], cart[cart[set[0],V],cart[set[0],V]],cross[Id,inverse[S]]] (* derived 2004 November 25 in MAP-SU.NB *) composite[inverse[MAP],S,MAP] := union[cart[cart[complement[set[0]],set[0]],cart[V,V]], cart[cart[set[0],V],cart[set[0],V]],cross[Id,S]] (* added 2002 September 15 based on NATADDEZ.NB *) composite[inverse[NATADD],id[intersection[omega,x_]]] := composite[inverse[NATADD],id[x]] (* added 2002 December 3 based on IMG-EQDF.NB *) composite[inverse[NATADD],rotate[inverse[power[SUCC]]]] := composite[inverse[NATADD],NATADD] (* derived 2004 June 14 in TP-SYM.NB *) composite[INVERSE,PAIRSET] := composite[PAIRSET,cross[SWAP,SWAP]] (* added 2000 December 14 based on CHECK-H8.NB *) composite[inverse[PAIRSET],complement[E]] := composite[inverse[E],CART,DUP,complement[E]] (* added 2000 December 14 based on CHECK-H8.NB *) composite[inverse[PAIRSET],complement[S]] := composite[inverse[E],CART,DUP,complement[S]] (* added 2000 December 14 based on MORE-PRS.NB *) composite[inverse[PAIRSET],DISJOINT] := composite[inverse[E],CART,DUP,DISJOINT] (* added 2000 December 14 based on CHECK-H8.NB *) composite[inverse[PAIRSET],inverse[PS]] := composite[inverse[E],CART,DUP,inverse[PS]] (* added 1999 October 17 based on STRANGE.7 *) composite[inverse[PAIRSET],inverse[S]] := composite[inverse[E],CART,DUP] (* added 2002 January 10 based on PAIRSET.NB *) composite[inverse[PAIRSET],PAIRSET] := union[SWAP,id[cart[V,V]]] (* added 1999 October 18 based on PAIRSET.3 *) composite[inverse[PAIRSET],SINGLETON] := DUP (* added 2003 August 8 based on REPLACE.NB *) composite[inverse[plus[x_]],id[image[S,set[x_]]]] := inverse[plus[x]] (* added 2003 August 8 based on REPLACE.NB *) composite[inverse[plus[x_]],y___,id[image[V,intersection[omega,set[x_]]]]] := composite[inverse[plus[x]],y] (* added 2003 August 8 based on REPLACE.NB *) composite[inverse[plus[x_]],y___,id[image[V,set[x_]]]] := composite[inverse[plus[x]],y] (* added 2003 August 8 based on REPLACE.NB *) composite[inverse[plus[x_]],id[omega]] := inverse[plus[x]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[inverse[PLUS],id[Z]] := inverse[PLUS] (* added 2003 August 8 based on REPLACE.NB *) composite[inverse[plus[x_]],image[inverse[NATADD],set[y_]]] := image[inverse[NATADD],set[natsub[y,x]]] (* added 2003 August 8 based on REPLACE.NB *) composite[inverse[plus[x_]],inverse[plus[y_]]] := inverse[plus[natadd[x,y]]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[inverse[PLUS],INVERSE,VERTSECT[EQUIDIFF]] := rotate[NATADD] (* added 2002 November 29 based on PLUS.NB *) composite[inverse[PLUS],PLUS] := id[omega] (* added 2003 October 21 based on MONOPLUS.NB *) composite[inverse[plus[x_]],S,plus[x_]] := composite[id[intersection[omega,image[V,intersection[omega,set[x]]]]],S,id[omega]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[inverse[PLUS],VERTSECT[EQUIDIFF]] := composite[rotate[NATADD],SWAP] (* derived 2005 October 1 in PO-WRAP.NB *) composite[inverse[po[x_]],complement[po[x_]]] := composite[id[fix[po[x]]],complement[po[x]]] (* derived 2003 December 31 in COARSER.NB *) composite[inverse[POWER],COARSER] := BIGCUP (* added 1998 August 9 *) composite[inverse[POWER],complement[E]] := composite[Id,complement[S]] (* added 2002 November 21 based on DJ-POW.NB *) composite[inverse[POWER],DISJOINT,POWER] := 0 (* Theorem POW-CO2 in POW3 *) composite[inverse[POWER],E] := S (* added 2002 January 22 based on EQ-PC.NB *) composite[inverse[POWER],id[range[SINGLETON]]] := cart[set[set[0]],set[0]] (* added 1998 August 9 *) composite[inverse[POWER],inverse[BIGCAP]] := cart[set[0],V] (* added 1998 August 9 *) composite[inverse[POWER],inverse[BIGCUP]] := Id (* added 2000 January 10 based on POWER-2.NB *) composite[inverse[POWER],inverse[S],POWER] := inverse[S] (* added 2002 September 24 based on MONOTONE.NB *) composite[inverse[POWER],inverse[UCLOSURE]] := inverse[POWER] (* added 2003 January 12 based on ITERATE.NB *) composite[inverse[power[x_]],LEFT[y_]] := inverse[iterate[x,set[y]]] (* added 2003 January 12 based on ITERATE.NB *) composite[inverse[power[x_]],RIGHT[y_]] := inverse[iterate[inverse[x],set[y]]] (* added 1999 December 25 based on HERED.NB *) composite[inverse[POWER],S,IMAGE[POWER]] := composite[S,IMAGE[inverse[S]]] (* derived 2004 August 23 in POW-S.NB *) composite[inverse[POWER],S,IMAGE[SINGLETON]] := S (* added 2001 March 15 based on H-1.NB *) composite[inverse[POWER],S,IMAGE[TC]] := composite[inverse[POWER],S,TC] (* added 2000 January 10 based on POWER-2.NB *) composite[inverse[POWER],S,POWER] := S (* added 1999 September 26 based on TEST-LOG.1 *) composite[inverse[POWER],SINGLETON] := cart[set[0],set[0]] (* added 2002 June 24 based on NATADD.NB *) composite[inverse[power[SUCC]],id[cart[omega,V]]] := composite[rotate[NATADD],SWAP] (* added 2002 November 30 based on NATSUB.NB *) composite[inverse[power[SUCC]],id[cart[V,omega]]] := composite[rotate[NATADD],SWAP] (* added 2002 November 13 based on NORM-ADD.NB *) composite[inverse[power[SUCC]],id[cart[V,V]]] := inverse[power[SUCC]] (* added 2002 September 5 based on NORMAL.NB *) composite[inverse[power[SUCC]],SWAP,id[cart[omega,V]]] := rotate[NATADD] (* added 2002 June 24 based on NATADD.NB *) composite[inverse[power[SUCC]],SWAP,id[cart[V,omega]]] := rotate[NATADD] (* added 2001 July 15 based on ZN-AGAIN.NB *) composite[inverse[POWER],VERTSECT[ZN]] := IMAGE[ZN] (* added 1999 September 26 based on TEST-LOG.1 *) composite[inverse[PS],E] := cart[V,V] (* added 1999 September 26 based on TEST-LOG.1 *) composite[inverse[PS],SINGLETON] := cart[V,set[0]] (* derived 2004 December 31 in IN-RK.NB *) composite[inverse[RANK],complement[inverse[E]]] := composite[id[REGULAR],complement[inverse[E]],IMAGE[inverse[RANK]]] (* derived 2005 January 5 in REPLACE.NB *) composite[inverse[RANK],id[P[OMEGA]]] := inverse[RANK] (* derived 2005 January 5 in REPLACE.NB *) composite[inverse[RANK],inverse[TC]] := inverse[RANK] (* added 2003 May 5 based on IN-E-RCF.NB *) composite[INVERSE,RCF] := RCF (* derived 2005 January 6 in RCF.NB *) composite[inverse[RCF],E] := composite[CUP,id[DISJOINT]] (* added 2003 October 20 based on MONOPLUS.NB *) composite[inverse[RCF],S,RCF] := Id (* added 2003 May 31 based on RS-CO.NB *) composite[inverse[RESTRICT],complement[inverse[S]]] := composite[inverse[IMAGE[id[cart[V,V]]]],complement[inverse[S]]] (* added 2003 May 31 based on RS-CO.NB *) composite[inverse[RESTRICT],complement[S]] := cart[complement[set[0]],V] (* added 2003 May 31 based on RS-CO.NB *) composite[inverse[RESTRICT],inverse[S]] := cart[V,V] (* derived 2004 November 17 in RS-IN-CO.NB *) composite[inverse[RESTRICT],RESTRICT] := cart[V,V] (* added 2003 May 31 based on RS-CO.NB *) composite[inverse[RESTRICT],S] := composite[inverse[IMAGE[id[cart[V,V]]]],S] (* derived 2004 December 17 in RFXTRV-C.NB *) composite[inverse[rfx[trv[x_]]],complement[rfx[trv[x_]]]] := composite[id[fix[trv[x]]],complement[rfx[trv[x]]]] (* added 2007 based on RIF-IN.NB *) composite[inverse[RIF],cross[x_,y_]] := composite[cross[cross[Id,x],cross[y,Id]],inverse[RIF]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[inverse[RIGHT[0]],EQUIDIFF] := rotate[NATADD] (* added 1999 December 6 based on CURRY.NB *) composite[inverse[RIGHT[x_]],id[y_]] := composite[id[image[inverse[y],set[x]]],inverse[RIGHT[x]]] (* derived 2004 March 23 in ADJECT.NB *) composite[inverse[RIGHT[x_]],inverse[FIRST]] := id[image[V,set[x]]] (* added 2003 August 12 based on RO-ZADD.NB *) composite[inverse[RIGHT[x_]],inverse[INTADD]] := composite[INVERSE,image[inverse[INTADD],set[x]]] (* added 2003 August 7 based on PLUS.NB *) composite[inverse[RIGHT[x_]],inverse[NATADD]] := inverse[plus[x]] (* derived 2005 July 18 in MODULO.NB *) composite[inverse[RIGHT[x_]],inverse[NATMOD]] := inverse[modulo[x]] (* derived 2005 July 18 in REPLACE.NB *) composite[inverse[RIGHT[x_]],inverse[NATMUL]] := inverse[times[x]] (* added 1999 November 20 based on CURRY.NB *) composite[inverse[RIGHT[x_]],inverse[rotate[y_]]] := composite[y,LEFT[x]] (* added 2003 January 25 based on LT-RT.NB *) composite[inverse[RIGHT[x_]],LEFT[y_]] := cart[set[x],set[y]] (* added 2002 June 13 based on NATIMIN0.NB *) composite[inverse[RIGHT[y_]],power[x_]] := iterate[inverse[x],set[y]] (* added 1999 December 6 based on CURRY.NB *) composite[inverse[RIGHT[x_]],SWAP] := inverse[LEFT[x]] (* added 2002 November 2 based on PAIR-V.NB *) composite[inverse[RightPairV],id[cart[x_,y_]]] := 0 (* derived 2004 July 27 in ROTASSOC.NB *) composite[inverse[ROT],cross[cross[x_,y_],z_],ROT] := cross[cross[y,z],x] (* added 2002 December 27 based on TWIST.NB *) composite[inverse[ROT],cross[inverse[ROT],Id],inverse[ASSOC],cross[Id,SWAP]] := TWIST (* added 2002 June 16 based on LEFT-ROT.NB *) composite[inverse[ROT],cross[RIGHT[x_],Id]] := composite[SWAP,cross[Id,LEFT[x]]] (* modified 1999 December 15 based on PERMUTE.NB *) composite[inverse[ROT],inverse[ASSOC]] := composite[SWAP,id[cart[V,cart[V,V]]]] (* added 1999 October 12 based on ROT.5 *) composite[inverse[ROT],id[cart[V,V]]] := inverse[ROT] (* added 1999 October 12 based on ROT.2 *) composite[inverse[ROT],inverse[FIRST]] := composite[cross[inverse[FIRST],Id],SWAP] (* added 1999 October 12 based on ROT.1 *) composite[inverse[ROT],inverse[ROT]] := ROT (* added 1999 October 12 based on ROT.2 *) composite[inverse[ROT],inverse[SECOND]] := composite[inverse[FIRST],inverse[SECOND]] (* added 2002 June 16 based on LEFT-ROT.NB *) composite[inverse[ROT],LEFT[x_]] := composite[RIGHT[first[x]],LEFT[second[x]]] (* added 2002 June 16 based on LEFT-ROT.NB *) composite[inverse[ROT],RIGHT[x_]] := composite[SWAP,cross[Id,RIGHT[x]]] (* added 2002 June 13 based on NATIMIN0.NB *) composite[inverse[rotate[inverse[power[SUCC]]]],id[omega]] := inverse[NATADD] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[inverse[rotate[NATADD]],rotate[NATADD]] := composite[EQUIDIFF,id[inverse[S]]] (* added 2003 August 27 based on NATDIV.NB *) composite[inverse[rotate[NATMUL]],SUCC] := composite[ intersection[composite[inverse[FIRST],NATADD], composite[inverse[SECOND],SECOND]],inverse[rotate[NATMUL]]] (* revised 1999 December 19 based on REVISED.NB *) composite[inverse[S],ADJOIN[x_]] := composite[inverse[IMAGE[id[complement[x]]]], inverse[S],id[image[V,set[x]]]] (* added 2003 July 4 based on COARSER.NB *) composite[inverse[S],COARSER] := composite[inverse[S],POWER,BIGCUP] (* added 1998 July 31 *) composite[inverse[S],complement[E]] := composite[Id,complement[E]] (* 1999 March 25 session CO-C-NEW.LOG *) composite[inverse[S],complement[inverse[E]]] := cart[V,V] composite[inverse[S],complement[inverse[S]]] := cart[V,V] (* added 2000 May 25 based on K.NB *) composite[inverse[S],complement[K]] := cart[V,V] (* Theorem SR-C-CO4 in SR/C added 1998 July 31 *) composite[inverse[S],complement[S]] := composite[Id,complement[S]] (* inverse of PS-DI-SR added 1998 August 25 *) composite[inverse[S],Di] := cart[V,V] (* added 1998 August 23 on basis of ASSOC-4.LOG *) composite[inverse[S],DISJOINT] := DISJOINT (* Theorem SR-CO9 in SR2 *) composite[inverse[S],E] := cart[V,V] (* derived 2005 January 5 in REPLACE.NB *) composite[inverse[S],id[x_],complement[E]] := composite[inverse[HULL[x]],complement[E]] (* added 2003 March 9 based on REFINE.NB *) composite[inverse[S],id[fix[IMAGE[inverse[S]]]],inverse[S], IMAGE[inverse[S]]] := composite[inverse[S],IMAGE[inverse[S]]] (* added 2003 May 31 based on CUT-CO.NB *) composite[inverse[S],id[P[x_]],complement[S]] := composite[id[P[x]],complement[S]] (* added 1999 December 19 based on DISJOINT.NB *) composite[inverse[S],id[P[x_]],DISJOINT] := composite[id[P[x]],DISJOINT] (* added 1999 December 19 based on CUT-S.NB *) composite[inverse[S],id[P[x_]],S] := cart[P[x],P[x]] (* added 2002 March 12 based on TRV.NB *) composite[inverse[S],id[TRV],complement[inverse[S]]] := cart[V,P[cart[V,V]]] (* added 2003 October 15 based on ACYCLIC.NB *) composite[inverse[S],id[TRV],inverse[IMAGE[inverse[DUP]]],complement[E]] := composite[inverse[HULL[TRV]],inverse[IMAGE[inverse[DUP]]],complement[E]] (* added 2002 March 12 based on TRV.NB *) composite[inverse[S],id[TRV],S] := cart[P[cart[V,V]],P[cart[V,V]]] (* added 2003 May 31 based on CUT-CO.NB *) composite[inverse[S],IMAGE[id[x_]],complement[inverse[S]]] := cart[V,P[x]] (* added 1999 December 19 based on CUT-S.NB *) composite[inverse[S],IMAGE[id[x_]],S] := cart[V,P[x]] (* added 2001 March 4 based on INVERSE2.NB *) composite[INVERSE,S,IMAGE[SWAP]] := composite[id[P[cart[V,V]]],S,IMAGE[id[cart[V,V]]]] (* derived 2004 May 14 in REPLACE.NB *) composite[inverse[S],IMAGE[ZN]] := thinpart[ZN] (* derived 2005 November 5 in IM-DORA.NB *) composite[inverse[S],IMG] := composite[IMG,cross[inverse[S],Id]] (* added 2003 January 25 based on INVAR.NB *) composite[inverse[S],INVAR] := cart[V,V] (* inverse of Theorem ADJ-CO3 in ADJ proved 1999 November 23 *) composite[inverse[S],inverse[ADJOIN[x_]]] := composite[inverse[S],id[image[S,set[x]]]] (* added 1998 July 30 *) composite[inverse[S],inverse[BIGCAP]] := union[cart[V,set[0]],composite[inverse[BIGCAP],S]] composite[inverse[S],inverse[BIGCUP]] := composite[inverse[S],POWER] (* added 1999 December 19 based on CUT-S.NB *) composite[inverse[S],inverse[IMAGE[id[x_]]],S] := cart[P[x],V] (* added 2002 November 22 based on CHAL.NB *) composite[inverse[S],inverse[LB[x_]]] := inverse[LB[x]] (* added 1998 August 7 *) composite[inverse[S],inverse[POWER]] := composite[inverse[E],id[range[POWER]]] (* derived 2005 January 5 in RANK-S.NB *) composite[inverse[S],inverse[RANK]] := composite[inverse[RANK],inverse[S],id[OMEGA]] composite[inverse[S],inverse[S]] := inverse[S] (* derived 2004 March 9 in CO-S.NB *) composite[inverse[S],LB[x_],BIGCUP] := composite[LB[x],BIGCUP] (* derived 2004 March 9 in CO-S.NB *) composite[inverse[S],LB[composite[x_,S]]] := LB[composite[x,S]] (* derived 2004 March 9 in CO-S.NB *) composite[inverse[S],LB[LB[x_]]] := LB[LB[x]] (* derived 2004 March 9 in CO-S.NB *) composite[inverse[S],LB[UB[x_]]] := LB[UB[x]] (* discovered 1999 December 20 in CANCEL.NB *) composite[inverse[S],POWER,E] := cart[V,V] (* added 2001 February 19 based on IMINS.NB *) composite[inverse[S],POWER,inverse[S]] := composite[inverse[S],POWER] (* added 1998 August 9 *) composite[inverse[S],PS] := cart[V,V] (* added 2000 October 1 based on CANTOR.NB *) composite[inverse[S],Q] := composite[Q,inverse[S]] (* added 1999 December 19 based on RC-5.NB *) composite[inverse[S],RC[x_]] := composite[id[P[x]],DISJOINT, id[intersection[image[V,set[x]],P[x]]]] (* added 2003 May 31 based on RS-CO.NB *) composite[inverse[S],RESTRICT] := composite[inverse[S],IMAGE[id[cart[V,V]]]] (* Theorem SR-CO9 in SR2 *) composite[inverse[S],S] := cart[V,V] (* rediscovered 1999 September 24 in SESSION1.LOG *) composite[inverse[S],SINGLETON] := union[SINGLETON,cart[V,set[0]]] (* derived 2004 May 14 in REPLACE.NB *) composite[inverse[S],thinpart[ZN]] := thinpart[ZN] (* derived 2004 March 9 in CO-S.NB *) composite[inverse[S],UB[x_],BIGCUP] := composite[UB[x],BIGCUP] (* derived 2004 March 9 in CO-S.NB *) composite[inverse[S],UB[composite[x_,S]]] := UB[composite[x,S]] (* added 2001 July 14 based on ZN-IMG.NB *) composite[inverse[S],ZN] := ZN composite[inverse[SECOND],id[x_]] := composite[id[cart[V,x]],inverse[SECOND]] (* added 1999 October 17 based on CROSS.2 *) composite[INVERSE,SINGLETON] := composite[SINGLETON,SWAP] (* added 2003 October 7 based on WF-IND.NB *) composite[inverse[SINGLETON],CART] := cross[inverse[SINGLETON],inverse[SINGLETON]] (* Theorem AP-SG-C4 in AP2 added 1998 July 2 *) composite[inverse[SINGLETON],complement[E]] := Di composite[inverse[SINGLETON],complement[inverse[S]]] := composite[Id,complement[inverse[E]]] (* Theorem AP-DI-3 proved 1998 November 28 *) composite[inverse[SINGLETON],Di,SINGLETON] := Di (* added 1998 August 23 on basis of ASSOC-4.LOG *) composite[inverse[SINGLETON],DISJOINT] := composite[Id,complement[inverse[E]]] (* Theorem SG-4E-IN in SG1 *) composite[inverse[SINGLETON],E] := Id (* added 2001 October 10 based on REPLACE.NB *) composite[inverse[SINGLETON],id[x_]] := composite[id[image[inverse[SINGLETON],x]],inverse[SINGLETON]] (* added 2001 November 27 based on FUNPART1.NB *) composite[inverse[SINGLETON],image[inverse[IMG],range[SINGLETON]]] := composite[inverse[E],IMAGE[FIRST],FUNPART] (* added 2002 November 29 based on PLUS.NB *) composite[inverse[SINGLETON],IMAGE[rotate[NATADD]],INVERSE,PLUS] := id[omega] (* added 2000 September 22 based on EXPT *) composite[inverse[SINGLETON],IMAGE[SINGLETON]] := id[range[SINGLETON]] (* inverse of Theorem VS-IMG-3 in VS2 proved 1999 July 14 *) composite[inverse[SINGLETON],inverse[IMAGE[x_]]] := inverse[VERTSECT[x]] (* added 1998 August 9 *) composite[inverse[SINGLETON],inverse[BIGCAP]] := Id composite[inverse[SINGLETON],inverse[BIGCUP]] := Id (* added 2002 November 22 based on LB-UB-VS.NB *) composite[inverse[SINGLETON],inverse[LB[x_]]] := composite[Id,x] composite[inverse[SINGLETON],inverse[S]] := inverse[E] (* added 2002 November 22 based on LB-UB-VS.NB *) composite[inverse[SINGLETON],inverse[UB[x_]]] := inverse[x] (* added 2000 May 16 based on K-SR.NB *) composite[inverse[SINGLETON],K] := cart[set[0],V] (* added 1999 October 18 based on PAIRSET.3 *) composite[inverse[SINGLETON],PAIRSET] := inverse[DUP] (* added 2002 January 22 based on EQ-PC.NB *) composite[inverse[SINGLETON],POWER] := cart[set[0],set[0]] (* added 1999 September 26 based on TEST-LOG.1 *) composite[inverse[SINGLETON],PS] := cart[set[0],V] (* added 1999 September 26 based on TEST-LOG.1 *) composite[inverse[SINGLETON],S] := union[cart[set[0],V],inverse[SINGLETON]] (* added 2000 September 9 based on FNP-2.NB *) composite[inverse[SINGLETON],VERTSECT[x_]] := funpart[x] (* added 2003 January 30 *) composite[inverse[SUBCOMMUTE],IMAGE[DUP]] := inverse[INVAR] (* derived 2004 December 21 in SBCOMMUT.NB *) composite[inverse[SUBCOMMUTE],IMAGE[SWAP]] := composite[inverse[IMAGE[SWAP]],SUBCOMMUTE] (* added 2002 June 3 based on REPLACE.NB *) composite[inverse[SUCC],id[omega],E] := composite[id[omega],S,id[omega]] (* added 2002 June 3 based on REPLACE.NB *) composite[inverse[SUCC],id[OMEGA],E] := composite[id[OMEGA],S,id[OMEGA]] (* added 2002 May 26 based on ON-SUC-1.NB *) composite[inverse[SUCC],id[OMEGA],inverse[IMAGE[inverse[SUCC]]]] := id[OMEGA] (* added 2002 June 3 based on REPLACE.NB *) composite[inverse[SUCC],id[omega],inverse[S],id[omega]] := composite[inverse[E],id[omega]] (* added 2002 April 15 based on OM-SUCC.NB *) composite[inverse[SUCC],id[omega],SUCC] := id[omega] (* added 2002 May 26 based on SUCC-ID.NB *) composite[inverse[SUCC],id[OMEGA],SUCC] := id[OMEGA] (* added 2002 April 18 based on SUCC.NB *) composite[inverse[SUCC],id[REGULAR],SUCC] := id[REGULAR] (* added 2002 September 16 based on SUB-SUCC.NB *) composite[inverse[SUCC],SUCC,NATADD] := NATADD (* added 2001 March 31 based on HF-AGAIN.NB *) composite[inverse[TC],inverse[S]] := composite[inverse[S],HC] (* derived 2005 July 17 in TIMES.NB *) composite[inverse[times[x_]],id[omega]] := inverse[times[x]] (* derived 2005 July 18 in REPLACE.NB *) composite[inverse[times[x_]],S,times[x_]] := union[cart[omega,intersection[omega,complement[image[V,x]]]], composite[id[intersection[omega,image[V,intersection[omega,set[x]]]]],S,id[omega]]] (* derived 2005 October 22 in TO-C.NB *) composite[inverse[to[x_]],intersection[Di,inverse[to[x_]]]] := intersection[Di,inverse[to[x]]] (* derived 2005 January 29 in TRV-RFX.NB *) composite[inverse[trv[rfx[x_]]],complement[trv[rfx[x_]]]] := composite[id[fix[x]],complement[trv[rfx[x]]]] (* added 2002 November 9 based on TW-I-FL.NB *) composite[inverse[twist[x_]],id[cart[V,V]]] := inverse[twist[x]] (* derived 2005 October 5 in GLB-DIV.NB *) composite[inverse[VERTSECT[DIV]],HULL[image[VERTSECT[DIV],omega]]] := GLB[DIV] (* derived 2005 October 5 in GLB-DIV.NB *) composite[inverse[VERTSECT[DIV]],id[image[VERTSECT[DIV],omega]]] := composite[id[omega],inverse[VERTSECT[DIV]]] (* derived 2005 September 17 in SU-VSDIV.NB *) composite[inverse[VERTSECT[DIV]],inverse[S],VERTSECT[DIV]] := union[DIV,cart[V,complement[omega]]] (* derived 2005 September 17 in SU-VSDIV.NB *) composite[inverse[VERTSECT[DIV]],S,VERTSECT[DIV]] := union[cart[complement[omega],V],inverse[DIV]] (* derived 2005 September 17 in SU-VSDIV.NB *) composite[inverse[VERTSECT[DIV]],VERTSECT[DIV]] := union[cart[complement[omega],complement[omega]],id[omega]] (* derived 2004 May 14 in REPLACE.NB *) composite[inverse[VERTSECT[x_]],E] := inverse[thinpart[x]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[inverse[VERTSECT[EQUIDIFF]],INVERSE,PLUS] := inverse[rotate[NATADD]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[inverse[VERTSECT[EQUIDIFF]],PLUS] := composite[SWAP,inverse[rotate[NATADD]]] (* added 2002 December 16 based on EQUIDIFF.NB *) composite[inverse[VERTSECT[EQUIDIFF]],VERTSECT[EQUIDIFF]] := union[EQUIDIFF, cart[complement[cart[omega,omega]],complement[cart[omega,omega]]]] (* derived 2004 August 10 in RS-3.NB *) composite[inverse[VERTSECT[RESTRICT]],inverse[BIGCUP]] := inverse[IMAGE[id[cart[V,V]]]] (* derived 2004 August 10 in RS-3.NB *) composite[inverse[VERTSECT[RESTRICT]],VERTSECT[RESTRICT]] := composite[inverse[IMAGE[id[cart[V,V]]]],IMAGE[id[cart[V,V]]]] (* derived 2004 January 6 in VS-OO.NB *) composite[inverse[VS],VS] := composite[inverse[IMAGE[id[cart[V,V]]]],IMAGE[id[cart[V,V]]]] (* derived 2005 October 22 in WO-DI.NB *) composite[inverse[wo[x_]],intersection[Di,inverse[wo[x_]]]] := intersection[Di,inverse[wo[x]]] (* derived 2004 Agust 13 in X4015-56.NB *) composite[inverse[ZN],E] := composite[E,inverse[ZN]] (* derived 2005 January 5 in RANK-S.NB *) composite[inverse[ZN],inverse[ZN]] := inverse[ZN] (* added 2001 July 15 based on ZN-AGAIN.NB *) composite[inverse[ZN],S] := inverse[ZN] (* added 2001 July 15 based on ZN-AGAIN.NB *) composite[inverse[ZN],ZN] := cart[V,V] (* added 2003 August 8 based on REPLACE.NB *) composite[iterate[x_,y_],id[intersection[omega,z_]]] := composite[iterate[x,y],id[z]] (* added 2002 April 15 based on ITERATE.NB *) composite[iterate[x_,y_],id[omega]] := iterate[x,y] (* derived 2005 July 18 in REPLACE.NB *) composite[iterate[iterate[SUCC,set[x_]],set[0]],id[image[V,intersection[omega,set[x_]]]]] := times[x] (* added 2002 July 4 based on NATADD.NB *) composite[iterate[x_,set[y_]],id[image[V,set[y_]]]] := iterate[x,set[y]] (* added 2002 July 4 based on NATADD.NB *) composite[iterate[x_,set[y_]], id[intersection[w_,image[V,set[y_]]]]] := composite[iterate[x,set[y]],id[w]] (* added 2002 April 17 based on ITERATE.NB *) composite[iterate[x_,y_],SUCC] := composite[x,iterate[x,y]] (* added 2003 December 9 based on ITER-K.NB *) composite[K,inverse[CARD],id[omega]] := composite[inverse[CARD],id[omega],SUCC] (* added 2003 June 6 based on K-PS.NB *) composite[K,PS] := composite[PS,PS] (* Theorem Q-K-2 in Q proved 2000 May 23 *) composite[K,Q] := composite[Q,K] (* Theorem K-SR2 in K proved 2000 May 16 *) composite[K,S] := PS (* added 2002 October 22 based on CO-ID.NB *) composite[KURA,id[cart[V,V]]] := KURA (* added 2003 May 10 based on LAMBHULL.NB *) composite[LAMBHULL,ACLOSURE] := LAMBHULL (* added 2003 May 10 based on LAMBHULL.NB *) composite[LAMBHULL,CLIQUES] := composite[IMAGE[DUP],CLIQUES] (* added 2003 October 21 based on LAMHUL-2.NB *) composite[LAMBHULL,IMAGE[inverse[S]]] := composite[IMAGE[DUP],IMAGE[inverse[S]]] (* added 2003 May 10 based on LAMBHULL.NB *) composite[LAMBHULL,POWER] := composite[IMAGE[DUP],POWER] (* added 2003 October 21 based on LAMHUL-2.NB *) composite[LAMBHULL,SINGLETON] := VERTSECT[composite[id[S],inverse[SECOND]]] (* derived 2004 December 21 in COMUTANT.NB *) composite[LB[COMMUTE],IMAGE[IMAGE[id[cart[V,V]]]]] := LB[COMMUTE] (* derived 2004 December 21 in COMUTANT.NB *) composite[LB[COMMUTE],IMAGE[IMAGE[SWAP]]] := composite[inverse[IMAGE[SWAP]],LB[COMMUTE]] (* derived 2004 December 21 in COMUTANT.NB *) composite[LB[COMMUTE],inverse[BIGCUP]] := COMMUTE (* added 2000 November 10 based on UB-LB-1.LOG *) composite[LB[x_],complement[E]] := cart[V,V] (* derived 2004 January 29 in UB-LB-CO.NB *) composite[LB[x_],complement[inverse[S]]] := composite[inverse[x],complement[inverse[E]]] (* added 2000 November 10 based on UB-LB-1.LOG *) composite[LB[x_],complement[S]] := cart[complement[set[0]],V] (* added 2000 November 10 based on UB-LB-1.LOG *) composite[LB[x_],DISJOINT] := cart[V,V] (* added 2000 November 10 based on UB-LB-1.LOG *) composite[LB[x_],E] := inverse[x] (* added 2001 July 8 based on REMOVED.NB *) composite[LB[x_],id[P[y_]],E] := composite[inverse[x],id[y]] (* added 2002 November 17 based on LB-UB.NB *) composite[LB[x_],id[P[range[x_]]]] := LB[x] (* added 2002 May 18 based on LB-FUN.NB *) composite[LB[image[inverse[IMG],range[SINGLETON]]],IMAGE[SINGLETON]] := composite[inverse[FUNPART],inverse[IMAGE[FIRST]],S] (* derived 2004 December 24 in UCL-LBUB.NB *) composite[LB[x_],inverse[BIGCUP],E] := composite[inverse[x],E] (* derived 2004 January 25 in GT-LT-CO.NB *) composite[LB[x_],inverse[GREATEST[y_]]] := composite[inverse[x],id[fix[y]]] (* derived 2004 January 29 in UB-LB-CO.NB *) composite[LB[x_],inverse[IMAGE[id[y_]]]] := composite[LB[x],id[P[y]]] (* derived 2004 January 25 in GT-LT-CO.NB *) composite[LB[x_],inverse[LEAST[y_]]] := composite[inverse[x],id[fix[y]]] (* added 2000 November 10 based on UB-LB-1.LOG *) composite[LB[x_],inverse[S]] := cart[V,V] (* added 2000 December 14 based on PAIRSET.NB *) composite[LB[x_],PAIRSET] := intersection[composite[inverse[x],FIRST],composite[inverse[x],SECOND]] (* added 2000 November 10 based on UB-LB-1.LOG *) composite[LB[x_],S] := LB[x] (* added 2000 November 10 based on UB-LB-1.LOG *) composite[LB[x_],SINGLETON] := inverse[x] (* derived 2004 December 21 in SBCOMMUT.NB *) composite[LB[SUBCOMMUTE],IMAGE[IMAGE[id[cart[V,V]]]]] := LB[SUBCOMMUTE] (* derived 2004 December 21 in SBCOMMUT.NB *) composite[LB[SUBCOMMUTE],IMAGE[IMAGE[SWAP]]] := composite[inverse[IMAGE[SWAP]],UB[SUBCOMMUTE]] (* derived 2004 December 21 in SBCOMMUT.NB *) composite[LB[SUBCOMMUTE],inverse[BIGCUP]] := inverse[SUBCOMMUTE] (* added 2000 December 24 based on LT-CO-S *) composite[LEAST[x_],complement[E]] := composite[id[fix[x]],Di] (* derived 2004 January 25 in GT-LT-CO.NB *) composite[LEAST[x_],DISJOINT] := composite[id[fix[x]],complement[inverse[E]]] (* added 2000 December 14 based on LT-CO-E.NB *) composite[LEAST[x_],E] := composite[id[fix[x]],inverse[x]] (* added 2002 November 17 based on LB-UB.NB *) composite[LEAST[x_],id[P[range[x_]]]] := LEAST[x] (* derived 2004 January 25 in GT-LT-CO.NB *) composite[LEAST[x_],inverse[LB[y_]]] := composite[id[fix[x]],y] (* added 2000 December 24 based on LT-CO-S *) composite[LEAST[x_],inverse[S]] := composite[inverse[E],IMAGE[id[fix[x]]]] (* derived 2004 January 25 in GT-LT-CO.NB *) composite[LEAST[x_],inverse[UB[y_]]] := composite[id[fix[x]],inverse[y]] composite[LEAST[x_],PAIRSET] := union[composite[FIRST,id[composite[x,id[fix[x]]]]], composite[SECOND,id[composite[id[fix[x]],inverse[x]]]]] (* added 2002 December 14 based on LT-S.NB *) composite[LEAST[x_],S] := composite[id[fix[x]],LB[x]] (* added 2000 November 19 based on GT-CO-SG.NB *) composite[LEAST[x_],SINGLETON] := id[fix[x]] (* derived 2005 October 6 in GLB-VS.NB *) composite[LEAST[x_],VERTSECT[composite[id[range[x_]],UB[x_]]]] := composite[LUB[x],id[domain[VERTSECT[composite[id[range[x]],UB[x]]]]]] (* derived 2004 March 9 in IDEMLTGT.NB *) composite[LEAST[x_],VERTSECT[LEAST[x_]]] := LEAST[x] (* added 2003 September 11 based on ID-IMV.NB *) composite[LEFT[x_],y___,id[image[V,set[x_]]]] := composite[LEFT[x],y] (* added 2003 July 15 based on L-R-PAIR.NB *) composite[LEFT[x_],id[image[V,set[first[x_]]]]] := LEFT[PAIR[first[x],second[x]]] (* added 2002 August 28 based on RIGHT.NB *) composite[LEFT[x_],id[intersection[y_,image[V,set[x_]]]]] := composite[LEFT[x],id[y]] (* derived 2005 October 2 in POLUBGLB.NB *) composite[LUB[x_],SINGLETON] := composite[Id,intersection[x,complement[composite[complement[inverse[x]],x]]]] (* added 2001 April 27 based on MAP2.NB *) composite[MAP,id[cart[V,V]]] := MAP (* added 2002 October 22 based on CO-ID.NB *) composite[MAXIMAL[x_],id[complement[subvar[intersection[Di,inverse[x_]]]]]] := MAXIMAL[x] (* added 2002 October 22 based on CO-ID.NB *) composite[MINIMAL[x_],id[complement[subvar[intersection[Di,x_]]]]] := MINIMAL[x] (* derived 2005 July 18 in MODULO.NB *) composite[modulo[x_],id[omega]] := modulo[x] (* derived 2005 July 18 in MODULO.NB *) composite[modulo[x_],modulo[x_]] := modulo[x] (* derived 2005 July 18 in MODULO.NB *) composite[modulo[nat[x_]],id[nat[x_]]] := id[nat[x]] (* derived 2005 July 20 in Q10.NB *) composite[modulo[nat[x_]],times[nat[x_]]] := cart[omega,set[0]] (* derived 2005 July 22 in MOD-ASS.NB *) composite[modulo[x_],NATADD,cross[composite[modulo[x_],NATADD],Id]] := composite[modulo[x],NATADD,cross[NATADD,Id]] (* derived 2005 July 22 in MOD-ASS.NB *) composite[modulo[x_],NATADD,cross[Id,composite[modulo[x_],NATADD]],ASSOC] := composite[modulo[x],NATADD,cross[NATADD,Id]] (* derived 2005 July 20 in Q10.NB *) composite[modulo[x_],NATADD,cross[Id,modulo[x_]]] := composite[modulo[x],NATADD] (* derived 2005 July 20 in Q10.NB *) composite[modulo[x_],NATADD,cross[Id,times[x_]]] := composite[modulo[x],FIRST,id[cart[V,omega]]] (* derived 2005 July 20 in Q10.NB *) composite[modulo[x_],NATADD,cross[modulo[x_],Id]] := composite[modulo[x],NATADD] (* derived 2005 July 20 in Q10.NB *) composite[modulo[x_],NATADD,cross[modulo[x_],modulo[x_]]] := composite[modulo[x],NATADD] (* derived 2005 July 22 in MOD-ASS.NB *) composite[modulo[x_],NATMUL,cross[composite[modulo[x_],NATMUL],Id]] := composite[modulo[x],NATMUL,cross[NATMUL,Id]] (* derived 2005 July 22 in MOD-ASS.NB *) composite[modulo[x_],NATMUL,cross[Id,composite[modulo[x_],NATMUL]],ASSOC] := composite[modulo[x],NATMUL,cross[NATMUL,Id]] (* derived 2005 July 21 in Q15.NB *) composite[modulo[x_],NATMUL,cross[Id,modulo[x_]]] := composite[modulo[x],NATMUL] (* derived 2005 July 21 in Q15.NB *) composite[modulo[x_],NATMUL,cross[modulo[x_],Id]] := composite[modulo[x],NATMUL] (* derived 2005 July 21 in Q15.NB *) composite[modulo[x_],NATMUL,cross[modulo[x_],modulo[x_]]] := composite[modulo[x],NATMUL] (* derived 2005 August 5 in MODADD.NB *) composite[modulo[x_],plus[x_]] := modulo[x] (* derived 2005 July 20 in Q10.NB *) composite[modulo[x_],plus[y_],modulo[x_]] := composite[modulo[x],plus[y]] (* derived 2005 August 5 in MODADD.NB *) composite[modulo[y_],plus[natmod[x_,y_]]] := composite[modulo[y],plus[x]] (* derived 2005 July 20 in Q10.NB *) composite[modulo[y_],plus[x_],times[y_]] := cart[omega,set[natmod[x,y]]] (* derived 2005 July 21 in Q15.NB *) composite[modulo[x_],times[y_],modulo[x_]] := composite[modulo[x],times[y]] (* added 2002 June 21 based on NATASS.NB *) composite[NATADD,cross[x_,composite[id[omega],y_]]] := composite[NATADD,cross[x,y]] (* added 2002 June 21 based on NATASS.NB *) composite[NATADD,cross[composite[id[omega],x_],y_]] := composite[NATADD,cross[x,y]] (* added 2002 September 24 based on ADD-X-S.NB *) composite[NATADD,cross[composite[S,id[omega]],Id]] := composite[id[omega],S,NATADD] (* added 2002 June 16 based on LEFT-ROT.NB *) composite[NATADD,cross[Id,composite[id[omega],SUCC]]] := composite[NATADD,cross[Id,SUCC]] (* added 2001 June 18 based on COMMUTE.NB *) composite[NATADD,cross[Id,composite[S,id[omega]]]] := composite[id[omega],S,NATADD] (* added 2002 June 13 based on ASSOC.NB *) composite[NATADD,cross[Id,NATADD],ASSOC] := composite[NATADD,cross[NATADD,Id]] (* added 2002 October 31 based on ADD-SUB.NB *) composite[NATADD,cross[Id,rotate[NATADD]]] := composite[rotate[NATADD],cross[NATADD,Id], id[composite[inverse[S],SECOND]],inverse[ASSOC]] (* added 2002 June 16 based on ADD-SUCC.NB *) composite[NATADD,cross[Id,SUCC]] := composite[SUCC,NATADD] (* added 2002 June 21 based on NATASS.NB *) composite[NATADD,cross[NATADD,Id],inverse[ASSOC]] := composite[NATADD,cross[Id,NATADD]] (* added 2002 June 21 based on NATASS.NB *) composite[NATADD,cross[NATADD,Id],inverse[ROT]] := composite[NATADD,cross[NATADD,Id]] (* added 2002 June 13 based on ASSOC.NB *) composite[NATADD,cross[NATADD,Id],ROT] := composite[NATADD,cross[NATADD,Id]] (* derived 2005 March 26 in DIVDSTRB.NB *) composite[NATADD,cross[NATMUL,NATMUL],TWIST,cross[DUP,Id]] := composite[NATMUL,cross[Id,NATADD]] (* added 2002 August 29 based on BINHOM.NB *) composite[NATADD,cross[NATMUL,NATMUL],TWIST,cross[Id,DUP]] := composite[NATMUL,cross[NATADD,Id]] (* added 2002 October 31 based on ADD-SUB.NB *) composite[NATADD,cross[rotate[NATADD],Id]] := composite[rotate[NATADD],cross[NATADD,Id],id[composite[inverse[S],SECOND]],ROT] (* added 2002 June 16 based on ADD-SUCC.NB *) composite[NATADD,cross[SUCC,Id]] := composite[SUCC,NATADD] (* added 2002 October 22 based on CO-ID.NB *) composite[NATADD,id[cart[omega,omega]]] := NATADD (* added 2002 June 20 based on ITERNORM.NB *) composite[NATADD,id[cart[omega,V]]] := NATADD (* added 2002 June 16 based on ADD-1ST.NB *) composite[NATADD,id[cart[V,omega]]] := NATADD (* added 2002 June 12 based on NATADD.NB *) composite[NATADD,id[cart[V,V]]] := NATADD (* added 2002 November 3 based on SIMPLIFY.NB *) composite[NATADD,id[complement[cart[omega,omega]]]] := 0 (* added 200 October 6 based on CANCEL.NB *) composite[NATADD,id[image[inverse[NATADD],set[x_]]],inverse[FIRST]] := cart[succ[x],intersection[omega,set[x]]] (* added 200 October 6 based on CANCEL.NB *) composite[NATADD,id[image[inverse[NATADD],set[x_]]],inverse[SECOND]] := cart[succ[x],intersection[omega,set[x]]] (* derived 2005 July 17 in TIMES.NB *) composite[NATADD,id[x_],inverse[SECOND]] := composite[NATADD,id[inverse[x]],inverse[FIRST]] (* added 2002 September 5 based on NORMAL.NB *) composite[NATADD,id[union[cart[V,complement[omega]],cart[complement[omega],V]]]] := 0 (* derived 2005 July 16 in DBLCOUNT.NB *) composite[NATADD,intersection[composite[inverse[FIRST],CARD,CAP],composite[inverse[SECOND],CARD,CUP]]] := composite[NATADD,cross[CARD,CARD]] (* derived 2005 March 26 in DIVDSTRB.NB *) composite[NATADD,intersection[composite[inverse[FIRST],DIV],composite[inverse[SECOND],DIV]]] := DIV (* derived 2005 July 17 in TIMES.NB *) composite[NATADD,intersection[composite[inverse[FIRST],times[x_]],composite[inverse[SECOND],times[y_]]]] := times[natadd[x,y]] (* added 2002 June 16 based on ADD-1ST.NB *) composite[NATADD,inverse[FIRST]] := composite[id[omega],S,id[omega]] (* added 2002 June 21 based on NATADD.NB *) composite[NATADD,inverse[SECOND]] := composite[id[omega],S,id[omega]] (* added 2003 August 7 based on PLUS.NB *) composite[NATADD,LEFT[x_]] := plus[x] (* added 2003 August 7 based on PLUS.NB *) composite[NATADD,RIGHT[x_]] := plus[x] (* added 2002 June 12 based on NATADD.NB *) composite[NATADD,SWAP] := NATADD (* derived 2005 June 30 in MOD-DSTB.NB *) composite[NATMOD,cross[NATMUL,NATMUL],TWIST,cross[DUP,Id]] := composite[NATMUL,cross[Id,NATMOD]] (* derived 2005 July 17 in TIMES.NB *) composite[NATMOD,cross[times[x_],times[x_]]] := composite[times[x],NATMOD] (* derived 2005 May 21 in MOD-DUP.NB *) composite[NATMOD,DUP] := cart[omega,set[0]] (* derived 2005 May 17 based on NATMOD.NB *) composite[NATMOD,id[cart[V,V]]] := NATMOD (* derived 2005 July 18 in MODULO.NB *) composite[NATMOD,id[composite[id[omega],E]]] := composite[FIRST,id[composite[id[omega],E]]] (* derived 2005 May 21 in MOD-DUP.NB *) composite[NATMOD,id[inverse[DIV]],inverse[SECOND]] := cart[omega,set[0]] (* derived 2005 June 24 in MOD-FIX.NB *) composite[NATMOD,intersection[composite[inverse[FIRST],NATMOD],composite[inverse[SECOND],SECOND]]] := NATMOD (* derived 2005 May 21 in MOD-DUP.NB *) composite[NATMOD,intersection[composite[inverse[FIRST],NATMUL],composite[inverse[SECOND],FIRST]]] := cart[cart[omega,omega],set[0]] (* derived 2005 May 21 in MOD-DUP.NB *) composite[NATMOD,inverse[rotate[NATMUL]]] := cart[omega,set[0]] (* derived 2005 June 24 in MOD-FIX.NB *) composite[NATMOD,inverse[SECOND]] := union[cart[set[0],omega],composite[inverse[E],id[omega]]] (* derived 2005 May 17 based on NATMOD.NB *) composite[NATMOD,LEFT[0]] := cart[omega,set[0]] (* derived 2005 July 18 in MODULO.NB *) composite[NATMOD,RIGHT[x_]] := modulo[x] (* added 2002 August 29 based on MULASSOC.NB *) composite[NATMUL,cross[Id,NATMUL],ASSOC] := composite[NATMUL,cross[NATMUL,Id]] (* derived 2005 February 18 in MUL-NORM.NB *) composite[NATMUL,id[cart[x_,complement[omega]]]] := 0 (* added 2002 October 22 based on CO-ID.NB *) composite[NATMUL,id[cart[omega,omega]]] := NATMUL (* added 2002 June 30 based on MUL-DO.NB *) composite[NATMUL,id[cart[omega,V]]] := NATMUL (* added 2002 June 30 based on MUL-DO.NB *) composite[NATMUL,id[cart[V,omega]]] := NATMUL (* added 2002 June 30 based on NATMUL.NB *) composite[NATMUL,id[cart[V,V]]] := NATMUL (* derived 2005 February 18 in MUL-NORM.NB *) composite[NATMUL,id[union[cart[V,complement[omega]],cart[complement[omega],V]]]] := 0 (* added 2002 August 30 based on DIVIDES.NB *) composite[NATMUL,inverse[FIRST]] := DIV (* added 2002 August 30 based on DIVIDES.NB *) composite[NATMUL,inverse[SECOND]] := DIV (* derived 2005 July 17 in TIMES.NB *) composite[NATMUL,LEFT[x_]] := times[x] (* derived 2005 July 18 in REPLACE.NB *) composite[NATMUL,RIGHT[x_]] := times[x] (* added 2002 August 28 based on MUL-SWAP.NB *) composite[NATMUL,SWAP] := NATMUL (* added 1998 May 24 *) composite[omega,x_] := 0 composite[x_,omega] := 0 (* added 1998 May 24 *) composite[OMEGA,x_] := 0 composite[x_,OMEGA] := 0 (* derived 2004 May 9 in OOPART.NB *) composite[OOPART,IMAGE[id[cart[V,V]]]] := OOPART (* derived 2004 May 9 in OOPART.NB *) composite[OOPART,IMAGE[SWAP]] := composite[IMAGE[SWAP],OOPART] (* derived 2004 May 9 in OOPART.NB *) composite[OOPART,OOPART] := OOPART (* derived 2004 June 15 in X1235.NB *) composite[set[x_,y_]] := union[cart[set[first[x]],set[second[x]]], cart[set[first[y]],set[second[y]]]] (* Theorem PRS-DUP proved 2000 August 15 *) composite[PAIRSET,DUP] := SINGLETON (* added 1999 October 2 based on PAIRSET.5 *) composite[PAIRSET,id[cart[V,V]]] := PAIRSET (* added 1999 December 2 based on PAIRSET.1 *) composite[PAIRSET,id[Id]] := composite[SINGLETON,inverse[DUP]] (* added 2001 August 23 based on PAIRSET.NB *) composite[PAIRSET,id[SINGLETON],inverse[FIRST]] := composite[SUCC,SINGLETON] (* added 2002 January 11 based on KURA.NB *) composite[PAIRSET,intersection[composite[inverse[FIRST],PAIRSET], composite[inverse[SECOND],SINGLETON,FIRST]]] := KURA (* added 2002 January 11 based on KURA.NB *) composite[PAIRSET,intersection[composite[inverse[SECOND],PAIRSET], composite[inverse[FIRST],SINGLETON,FIRST]]] := KURA (* added 2001 March 29 based on PAIRSET.NB *) composite[PAIRSET,LEFT[x_]] := composite[ADJOIN[set[x]],SINGLETON,id[image[V,set[x]]]] (* added 2001 March 29 based on PAIRSET.NB *) composite[PAIRSET,RIGHT[x_]] := composite[ADJOIN[set[x]],SINGLETON,id[image[V,set[x]]]] (* Theorem PRS-SW proved 2000 August 15 *) composite[PAIRSET,SWAP] := PAIRSET (* added 2003 August 8 based on REPLACE.NB *) composite[plus[x_],y___,id[image[V,intersection[omega,set[x_]]]]] := composite[plus[x],y] (* added 2003 August 8 based on REPLACE.NB *) composite[plus[x_],y___,id[image[V,set[x_]]]] := composite[plus[x],y] (* added 2003 August 8 based on REPLACE.NB *) composite[plus[x_],id[intersection[y_,image[V,set[x_]]]]] := composite[plus[x],id[y]] (* added 2002 December 19 based on PLUSNORM.NB *) composite[PLUS,id[omega]] := PLUS (* added 2003 August 8 based on REPLACE.NB *) composite[plus[x_],id[omega]] := plus[x] (* added 2003 July 5 based on PLUS-ISO.NB *) composite[PLUS,NATADD] := composite[COMPOSE,cross[PLUS,PLUS]] (* added 2003 August 8 based on REPLACE.NB *) composite[plus[x_],NATADD] := composite[NATADD,cross[Id,plus[x]]] (* added 2003 August 8 based on REPLACE.NB *) composite[plus[x_],plus[y_]] := plus[natadd[x,y]] (* added 2003 August 8 based on REPLACE.NB *) composite[plus[x_],S,id[omega]] := composite[id[omega],S,plus[x]] (* added 2003 October 20 based on MONOPLUS.NB *) composite[plus[x_],S,inverse[plus[x_]]] := composite[id[omega],S,id[intersection[omega,image[S,set[x]], image[V,intersection[omega,set[x]]]]]] (* added 2003 August 8 based on REPLACE.NB *) composite[plus[x_],SUCC] := composite[SUCC,plus[x]] (* derived 2005 October 1 in PO-WRAP.NB *) composite[po[x_],complement[inverse[po[x_]]]] := composite[id[fix[po[x]]],complement[inverse[po[x]]]] (* derived 2005 October 22 in CO-PO-DI.NB *) composite[po[x_],intersection[Di,po[x_]]] := intersection[Di,po[x]] (* derived 2005 October 1 in PO-WRAP.NB *) composite[po[x_],po[x_]] := po[x] (* added 1999 October 9 based on CAP-LOG.2 *) composite[POWER,CAP] := composite[CAP,cross[POWER,POWER]] (* 1999 March 26 session POW-E-SR.LOG *) composite[POWER,complement[S]] := composite[id[range[POWER]],complement[E]] (* added 2002 May 21 based on POWER.NB *) composite[power[x_],id[omega]] := power[x] (* added 2001 July 14 based on ZN-IMG.NB *) composite[POWER,IMAGE[ZN]] := VERTSECT[ZN] (* added 2000 October 3 based on POWER-PS.NB *) composite[POWER,PS] := composite[id[range[POWER]],PS,POWER] (* added 2002 June 12 based on NATADD.NB *) composite[power[x_],rotate[inverse[power[SUCC]]]] := composite[power[x],NATADD] (* added 2000 January 10 based on POWER-2.NB replacement for Theorem POW-CO4 in POW3 *) composite[POWER,S] := composite[id[range[POWER]],S,POWER] (* derived 2005 January 9 in PC-CARD2.NB *) composite[POWER,SINGLETON] := composite[ADJOIN[set[0]],SINGLETON,SINGLETON] (* added 2002 May 21 based on POWER.NB *) composite[power[x_],SUCC] := composite[cross[Id,x],power[x]] (* derived 2005 August 17 in PRIMESEQ.NB *) composite[PRIMESEQ,id[omega]] := PRIMESEQ (* derived 2005 August 17 in PRIMESEQ.NB *) composite[PRIMESEQ,SUCC] := composite[HULL[PRIMES],SUCC,PRIMESEQ] (* added 1998 August 9 *) composite[PS,complement[E]] := cart[V,complement[set[0]]] (* added 1998 August 9 *) composite[PS,complement[S]] := cart[complement[set[0]],complement[set[0]]] (* see PS-LOG.1 added 1998 September 5 *) composite[PS,DISJOINT] := cart[V,complement[set[0]]] (* Theorem PS-CO-SG in PS1 proved 1998 September 5 *) composite[PS,E] := composite[PS,SINGLETON] (* added 1999 November 23 based on ADJ-B3.NB *) composite[PS,id[image[S,set[x_]]],S] := composite[PS,ADJOIN[x]] (* added 1998 August 9 *) composite[PS,inverse[S]] := cart[V,complement[set[0]]] (* added 2003 June 6 based on K-PS.NB *) composite[PS,K] := composite[PS,PS] (* Theorem Q-PS-CO in Q proved 2000 June 2 *) composite[PS,Q] := composite[Q,PS] (* Theorem PS-CO-1 in PS added 1998 August 9 *) composite[PS,S] := PS (* added 2001 December 17 based on Q-HAT.NB *) composite[Q,CARD] := composite[inverse[CARD],CARD] (* Theorem Q-C-E in Q proved 2000 May 9 *) composite[Q,complement[E]] := cart[V,V] (* Theorem Q-C-CO-1 in Q proved 2000 May 7 *) composite[Q,complement[Q]] := composite[Id,complement[Q]] (* added 2000 May 9 based on Q-C-E.NB *) composite[Q,complement[S]] := cart[complement[set[0]],V] (* added 2001 July 15 based on FUNPART.NB *) composite[Q,Di] := union[cart[V,complement[set[0]]], cart[complement[set[0]],V]] (* Theorem Q-DJ-1 in Q proved 2000 May 12 *) composite[Q,DISJOINT] := cart[V,V] (* added 2002 August 2 based on Q-E.NB *) composite[Q,E] := cart[V,complement[set[0]]] (* added 2003 December 9 based on ITER-K.NB *) composite[Q,id[FINITE]] := composite[inverse[CARD],id[omega],CARD] (* added 2001 December 17 based on Q-HAT.NB *) composite[Q,id[fix[CARD]]] := inverse[CARD] (* added 2001 December 17 based on Q-HAT.NB *) composite[Q,id[image[Q,OMEGA]]] := composite[inverse[CARD],CARD] (* added 2002 May 28 based on FINITE.NB *) composite[Q,id[omega]] := composite[inverse[CARD],id[omega]] (* discovered 2000 May 7 in Q-CO.NB *) composite[Q,id[range[SINGLETON]]] := cart[range[SINGLETON],range[SINGLETON]] (* derived 2004 July 26 in DORAFUNS.NB *) composite[Q,image[DORA,FUNS]] := image[DORA,FUNS] (* added 2001 December 17 based on Q-HAT.NB *) composite[Q,inverse[CARD]] := inverse[CARD] (* Theorem Q-6B in Q proved 2000 April 25 *) composite[Q,Q] := Q (* Theorem Q-CO-SG in Q proved 2000 May 7 *) composite[Q,SINGLETON] := cart[V,range[SINGLETON]] (* derived 2004 April 6 in SMALLER.NB *) composite[Q,SMALLER] := SMALLER (* derived 2004 December 24 in CARD.NB *) composite[RANK,CARD] := CARD (* added 2001 August 5 based on RK-U.NB *) composite[RANK,CUP] := composite[CUP,cross[RANK,RANK]] (* added 2001 August 13 based on RANK-SR.NB *) composite[RANK,id[complement[REGULAR]]] := 0 (* added 2001 August 1 based on RK-TC.NB *) composite[RANK,id[OMEGA]] := id[OMEGA] (* added 2002 October 22 based on CO-ID.NB *) composite[RANK,id[REGULAR]] := RANK (* added 2001 August 4 based on RK-IMS.NB *) composite[RANK,IMAGE[inverse[S]]] := RANK (* added 2001 August 12 based on RANK-1.NB *) composite[RANK,IMAGE[RANK]] := composite[RANK,IMAGE[id[REGULAR]]] (* added 2001 July 31 based on RK-ZN-IM.NB *) composite[RANK,IMAGE[ZN]] := RANK (* added 2001 August 5 based on RK-U.NB *) composite[RANK,PAIRSET] := composite[CUP, cross[composite[SUCC,RANK],composite[SUCC,RANK]]] (* added 2001 August 4 based on RK-PC.NB *) composite[RANK,POWER] := composite[SUCC,RANK] (* Theorem RK-RK-2 in RANK2 proved 2001 July 25 *) composite[RANK,RANK] := RANK (* derived 2005 January 5 in RANK-S.NB *) composite[RANK,S] := composite[id[OMEGA],S,RANK] (* added 2001 August 4 based on RK-IMS.NB *) composite[RANK,SINGLETON] := composite[SUCC,RANK] (* added 2001 August 5 based on RK-U.NB *) composite[RANK,SUCC] := composite[SUCC,RANK] (* added 2001 August 1 based on RK-TC.NB *) composite[RANK,TC] := RANK (* derived 2004 August 14 in ZN-RULES.NB *) composite[RANK,VERTSECT[ZN]] := composite[SUCC,RANK] (* derived 2003 December 25 in RC-CUP.NB *) composite[RC[x_],CUP] := composite[CAP,cross[RC[x],RC[x]]] (* added 1999 December 19 based on RC-5.NB *) composite[RC[x_],DISJOINT] := composite[id[P[x]],S,IMAGE[id[x]],id[image[V,set[x]]]] (* added 2003 September 11 based on ID-IMV.NB *) composite[RC[x_],y___,id[image[V,set[x_]]]] := composite[RC[x],y] (* derived 2004 April 26 in ANTITONE.NB *) composite[RC[x_],y___,id[intersection[z_,image[V,set[x_]]]]] := composite[RC[x],y,id[z]] (* added 2002 October 22 based on CO-ID.NB *) composite[RC[x_],id[intersection[y_,P[x_]]]] := composite[RC[x],id[y]] (* added 1999 October 29 based on 1999 October 28 session RC-LOG.1 *) composite[RC[x_],id[P[x_]]] := RC[x] (* added 1999 December 24 based on SYMDIF-2.NB *) composite[RC[x_],image[inverse[SYMDIF],set[x_]]] := id[intersection[image[V,set[x]],P[x]]] (* added 1999 November 6 based on CO-4.LOG *) composite[RC[x_],inverse[IMAGE[id[x_]]]] := RC[x] (* added 1999 December 19 based on RC-5.NB *) composite[RC[x_],inverse[S],id[P[x_]]] := composite[id[P[x]],S,RC[x]] (* added 1999 December 19 based on RC-5.NB *) composite[RC[x_],inverse[S],IMAGE[id[x_]]] := composite[RC[x],inverse[S]] (* added 1999 October 31 based on DIF-LEFT.NB *) composite[RC[x_],RC[x_]] := id[intersection[image[V,set[x]],P[x]]] (* added 1999 December 19 based on RC-5.NB *) composite[RC[x_],S] := composite[id[P[x]],DISJOINT, id[intersection[image[V,set[x]],P[x]]]] (* added 2003 September 11 based on ID-IMV.NB *) composite[RC[U[x_]],y___,id[image[V,set[x_]]]] := composite[RC[U[x]],y] (* Theorem REG-CO2 in REG2 proved 1999 March 15 *) composite[REGULAR,x_] := cart[image[inverse[x],REGULAR],REGULAR] (* Theorem REG-CO1 in REG2 proved 1999 March 15 *) composite[x_,REGULAR] := cart[REGULAR,image[x,REGULAR]] (* added 2003 May 31 based on RS-CO.NB *) composite[RESTRICT,complement[S]] := composite[id[P[cart[V,V]]],complement[S]] (* derived 2005 November 9 in RESTRICT.NB *) composite[RESTRICT,COMPOSE] := composite[COMPOSE,cross[Id,RESTRICT]] (* derived 2005 November 9 in RESTRICT.NB *) composite[RESTRICT,FUNPART] := composite[inverse[S],FUNPART] (* added 2003 May 30 based on RESTRICT.NB *) composite[RESTRICT,IMAGE[id[cart[V,V]]]] := RESTRICT (* added 2003 May 31 based on RS-CO.NB *) composite[RESTRICT,inverse[S]] := composite[inverse[S],IMAGE[id[cart[V,V]]]] (* added 2003 May 30 based on RESTRICT.NB *) composite[RESTRICT,RESTRICT] := RESTRICT (* derived 2005 November 9 in RESTRICT.NB *) composite[RESTRICT,VS] := composite[inverse[S],VS] (* derived 2004 December 19 in QO-IDEM.NB *) composite[rfx[thinpart[trv[x_]]],rfx[thinpart[trv[x_]]]] := rfx[thinpart[trv[x]]] (* derived 2004 December 17 in RFXTRV-C.NB *) composite[rfx[trv[x_]],complement[inverse[rfx[trv[x_]]]]] := composite[id[fix[trv[x]]],complement[inverse[rfx[trv[x]]]]] (* derived 2004 December 19 in QO-IDEM.NB *) composite[rfx[trv[x_]],rfx[trv[x_]]] := rfx[trv[x]] (* added 2002 December 28 based on REPLACE.NB *) composite[RIF,cross[composite[id[cart[V,V]],x_],y_]] := composite[RIF,cross[x,y]] (* added 2002 December 28 based on REPLACE.NB *) composite[RIF,cross[x_,composite[id[cart[V,V]],y_]]] := composite[RIF,cross[x,y]] (* added 2002 November 2 based on TWIST-IM.NB *) composite[RIF,cross[x_,composite[id[inverse[SECOND]],inverse[SECOND],inverse[FIRST]]]] := twist[rotate[composite[inverse[x],SWAP]]] (* added 2002 December 28 based on REPLACE.NB *) composite[RIF,cross[composite[SWAP,inverse[rotate[NATADD]]], composite[SWAP,inverse[rotate[NATADD]]]]] := composite[inverse[rotate[NATADD]],NATADD] (* added 2002 December 28 based on REPLACE.NB *) composite[RIF,cross[composite[SWAP,power[x_]],composite[SWAP,power[x_]]]] := composite[power[x],NATADD] (* added 2002 December 28 based on REPLACE.NB *) composite[RIF,cross[x_,composite[SWAP,RIF]],ASSOC] := composite[RIF,cross[composite[SWAP,RIF,cross[x,Id]],Id]] (* added 2002 December 27 based on RIF-ASS.NB *) composite[RIF,cross[x_,composite[SWAP,RIF,cross[y_,z_]]],ASSOC] := composite[RIF,cross[composite[SWAP,RIF,cross[x,y]],z]] (* added 2002 June 7 based on RIF-SWAP.NB *) composite[RIF,cross[cross[u_,v_],cross[x_,y_]],inverse[RIF]] := cross[v,composite[x,id[image[V,fix[composite[inverse[u],y]]]]]] (* added 2002 December 28 based on REPLACE.NB *) composite[RIF,cross[id[cart[V,V]],x_]] := composite[RIF,cross[Id,x]] (* added 2002 December 28 based on REPLACE.NB *) composite[RIF,cross[x_,id[cart[V,V]]]] := composite[RIF,cross[x,Id]] (* added 2001 January 20 based on TWIST-4.NB *) composite[RIF,cross[x_,inverse[FIRST]]] := cross[composite[SECOND,x],Id] (* added 2002 June 7 based on RIF.NB *) composite[RIF,cross[inverse[FIRST],x_]] := composite[inverse[SECOND],rotate[composite[inverse[x],SWAP]],SWAP] (* added 2002 December 28 based on REPLACE.NB *) composite[RIF,cross[x_,y_],inverse[ROT]] := composite[SWAP,RIF,cross[composite[SWAP,y],composite[SWAP,x]],ASSOC] (* added 2002 November 29 based on PLUS.NB *) composite[RIF,cross[inverse[rotate[NATADD]], composite[SWAP,inverse[rotate[NATADD]]]]] := composite[SWAP,EQUIDIFF] (* added 2002 December 23 based on RIF-TW.NB *) composite[RIF,cross[inverse[rotate[NATADD]],inverse[NATADD]]] := composite[inverse[NATADD],rotate[NATADD],SWAP] (* added 2002 December 23 based on RIF-TW.NB *) composite[RIF,cross[inverse[rotate[NATADD]],inverse[rotate[NATADD]]]] := composite[SWAP,inverse[rotate[NATADD]],NATADD] (* added 2001 January 20 based on TWIST-4.NB *) composite[RIF,cross[inverse[SECOND],x_]] := cross[Id,composite[FIRST,x]] (* added 2002 June 7 based on RIF.NB *) composite[RIF,cross[x_,inverse[SECOND]]] := composite[inverse[FIRST],rotate[inverse[x]]] (* added 2002 June 12 based on NATADD.NB *) composite[RIF,cross[power[x_],power[x_]]] := composite[SWAP,power[x],NATADD] (* added 2002 July 9 based on RIFASSOC.NB *) composite[RIF,cross[SWAP,inverse[rotate[x_]]]] := composite[cross[Id,x],ASSOC] (* added 2002 December 28 based on REPLACE.NB *) composite[RIF,cross[SWAP,SWAP],inverse[RIF]] := cart[Id,Id] (* added 2002 January 2 based on ASSOC2.NB *) composite[RIF,DUP] := id[Id] (* added 2007 based on RIF-IN.NB *) composite[RIF,id[cart[x_,cart[V,V]]]] := composite[RIF,id[cart[x,V]]] (* added 2007 based on RIF-IN.NB *) composite[RIF,id[cart[cart[V,V],x_]]] := composite[RIF,id[cart[V,x]]] (* added 2002 April 5 based on REIFY.NB *) composite[RIF,id[cart[x_,y_]],inverse[FIRST]] := composite[SWAP,cross[inverse[y],Id],id[x]] (* added 2002 April 5 based on REIFY.NB *) composite[RIF,id[cart[x_,y_]],inverse[SECOND]] := composite[SWAP,cross[Id,x],id[y]] (* added 2002 April 6 based on SUBST.NB *) composite[RIF,id[cart[V,cart[V,V]]]] := RIF (* added 2001 January 20 based on RIF-2.NB *) composite[RIF,id[cart[V,V]]] := RIF (* added 2002 December 19 based on IDX-RIF.NB *) composite[RIF,id[composite[id[y_],inverse[SECOND],FIRST,id[x_]]]] := composite[RIF,id[cart[x,y]]] (* added 2002 October 22 based on CO-ID.NB *) composite[RIF,id[composite[inverse[SECOND],FIRST]]] := RIF (* derived 2004 January 7 in VSLAMBDA.NB *) composite[RIF,intersection[composite[inverse[FIRST],x_], composite[inverse[SECOND],DUP,y_]]] := composite[SWAP,intersection[x,composite[inverse[FIRST],y]]] (* derived 2004 January 7 in VSLAMBDA.NB *) composite[RIF,intersection[composite[inverse[FIRST],x_], composite[inverse[SECOND],inverse[E],IMAGE[DUP]]]] := composite[SWAP,intersection[x,composite[inverse[FIRST],inverse[E]]]] (* added 2001 February 1 based on RIF-1.NB *) composite[RIF,inverse[FIRST]] := composite[inverse[FIRST],SECOND] (* added 2001 February 1 based on RIF-1.NB *) composite[RIF,inverse[SECOND]] := composite[inverse[SECOND],FIRST] (* added 2002 August 31 based on RIF.NB *) composite[RIF,LEFT[x_]] := composite[LEFT[second[x]],inverse[RIGHT[first[x]]]] (* added 2002 August 31 based on RIF.NB *) composite[RIF,RIGHT[x_]] := composite[RIGHT[first[x]],inverse[LEFT[second[x]]]] (* added 2002 December 28 based on REPLACE.NB *) composite[RIF,SWAP] := composite[SWAP,RIF,cross[SWAP,SWAP]] (* added 2001 January 20 based on RIF-2.NB *) composite[RIF,TWIST] := composite[SWAP,RIF] (* added 2003 September 11 based on ID-IMV.NB *) composite[RIGHT[x_],y___,id[image[V,set[x_]]]] := composite[RIGHT[x],y] (* added 2003 July 15 based on L-R-PAIR.NB *) composite[RIGHT[x_],id[image[V,set[first[x_]]]]] := RIGHT[PAIR[first[x],second[x]]] (* added 2002 August 28 based on RIGHT.NB *) composite[RIGHT[x_],id[intersection[y_,image[V,set[x_]]]]] := composite[RIGHT[x],id[y]] (* added 2002 December 28 based on ROT-TW.NB *) composite[ROT,cross[composite[SWAP,ROT],Id],ROT] := composite[TWIST,cross[SWAP,SWAP]] (* derived 2004 July 27 in ROTASSOC.NB *) composite[ROT,cross[cross[x_,y_],z_],inverse[ROT]] := cross[cross[z,x],y] (* added 2002 June 16 based on LEFT-ROT.NB *) composite[ROT,cross[LEFT[x_],Id]] := composite[SWAP,cross[Id,RIGHT[x]]] (* added 2002 October 22 based on CO-ID.NB *) composite[ROT,id[cart[cart[V,V],V]]] := ROT (* added 1999 August 3 *) composite[ROT,id[cart[V,V]]] := ROT (* added 1999 October 31 based on ASSOC.1 *) composite[ROT,inverse[ASSOC]] := composite[inverse[ROT],SWAP] (* added 1999 October 12 based on ROT.1 *) composite[ROT,inverse[FIRST]] := cross[inverse[SECOND],Id] (* added 1999 October 12 based on ROT.1 *) composite[ROT,inverse[SECOND]] := composite[inverse[FIRST],inverse[FIRST]] (* added 2002 June 16 based on LEFT-ROT.NB *) composite[ROT,LEFT[x_]] := composite[RIGHT[second[x]],RIGHT[first[x]]] (* added 1999 November 4 based on 1999/NOV/03/WORK/FLIP-ROT.1 *) composite[ROT,RIGHT[x_]] := cross[LEFT[x],Id] (* added 1999 September 3 based on ROTATE.3 *) composite[ROT,ROT] := inverse[ROT] (* added 1999 October 13 based on ASSOC.1 *) composite[ROT,SWAP] := inverse[ASSOC] (* derived 2005 July 30 in RO-ASSOC.NB *) composite[rotate[composite[x_,ASSOC]],ASSOC] := rotate[inverse[rotate[x]]] (* added 2002 October 27 based on NATMUL.NB *) composite[rotate[composite[complement[composite[complement[ composite[FIRST,intersection[ composite[inverse[SECOND],SECOND,SECOND,SECOND], composite[power[SUCC],SECOND,SECOND,FIRST]], id[cross[composite[id[omega],SUCC], composite[inverse[FIRST],FIRST]]],cross[inverse[E],Id]]], id[composite[inverse[E],IMAGE[id[complement[cart[set[0],Id]]]]]], inverse[FIRST]]],inverse[IMAGE[cross[Id,inverse[LEFT[0]]]]],E]], id[cart[omega,V]]] := NATMUL (* added 2002 October 27 based on NATMUL.NB *) composite[rotate[composite[complement[composite[complement[ composite[rotate[composite[inverse[power[SUCC]],SWAP]], RIF,cross[SECOND,composite[SWAP,SECOND]], id[composite[id[cart[omega,V]],inverse[FIRST],SUCC, FIRST]],cross[inverse[E],Id]]], id[composite[inverse[E],IMAGE[id[complement[cart[set[0],Id]]]]]], inverse[FIRST]]],inverse[IMAGE[cross[Id,inverse[LEFT[0]]]]],E]], id[cart[omega,V]]] := NATMUL (* added 2003 January 23 based on REIF-MUL.NB *) composite[rotate[composite[complement[composite[complement[composite[ rotate[NATADD],SWAP,RIF,cross[SECOND,composite[SWAP,SECOND]], id[composite[id[cart[omega,V]],inverse[FIRST],SUCC,FIRST]], cross[inverse[E],Id]]],id[composite[inverse[E], IMAGE[id[complement[cart[set[0],Id]]]]]],inverse[FIRST]]], inverse[IMAGE[cross[Id,inverse[LEFT[0]]]]],E]], id[cart[omega,V]]] := NATMUL (* added 2002 November 14 based on POW-SUC.NB *) composite[rotate[composite[inverse[power[SUCC]],SWAP]],id[cart[V,omega]]] := composite[rotate[NATADD],SWAP] (* derived 2005 January 29 in NATSUB.NB *) composite[rotate[composite[inverse[power[SUCC]],SWAP]],SWAP,id[cart[omega,omega]]] := rotate[NATADD] (* added 2002 November 30 based on NATSUB.NB *) composite[rotate[composite[inverse[power[SUCC]],SWAP]],SWAP,id[cart[omega,V]]] := rotate[NATADD] (* derived 2005 January 29 in NATSUB.NB *) composite[rotate[composite[inverse[power[SUCC]],SWAP]],SWAP,id[composite[id[omega],x_,id[omega]]]] := composite[rotate[NATADD],id[x]] (* revised 2002 June 19 based on ROT-DUP.NB *) composite[rotate[x_],DUP] := fix[composite[inverse[FIRST],x]] (* added 2003 May 12 based on APPLY.NB *) composite[rotate[E],cross[FUNPART,Id]] := composite[inverse[SINGLETON],IMG,cross[Id,SINGLETON]] (* added 2002 October 24 based on ROT-E.NB *) composite[rotate[E],cross[Id,inverse[E]]] := composite[inverse[E],IMG] (* added 1999 December 28 based on REMOVED.NB *) composite[rotate[E],cross[IMAGE[id[cart[V,V]]],Id]] := rotate[E] composite[rotate[x_],id[cart[V,V]]] := rotate[x] (* added 1999 December 22 based on IMINROT2.NB *) composite[rotate[x_],id[cart[y_,V]],inverse[SECOND]] := composite[Id,image[inverse[x],y]] (* added 2002 October 22 based on CO-ID.NB *) composite[rotate[x_],id[composite[FIRST,inverse[x_]]]] := rotate[x] (* added 2001 March 8 based on FUNRULE2.NB *) composite[rotate[x_],id[y_],inverse[FIRST]] := composite[SECOND, intersection[composite[inverse[FIRST],y],inverse[x]]] (* added 2001 March 8 based on FUNRULE2.NB *) composite[rotate[x_],id[y_],inverse[SECOND]] := fix[composite[inverse[FIRST],y,x]] (* added 1999 September 3 based on ROTATE.4 *) composite[rotate[x_],inverse[FIRST]] := composite[SECOND,inverse[x]] (* derived 2005 January 25 *) composite[rotate[inverse[x_]],id[cart[domain[VERTSECT[x_]],V]]] := rotate[inverse[thinpart[x]]] (* added 2002 June 24 based on NATADD.NB *) composite[rotate[inverse[power[SUCC]]],id[cart[V,omega]]] := NATADD (* added 2002 June 24 based on NATADD.NB *) composite[rotate[inverse[power[SUCC]]],SWAP,id[cart[omega,V]]] := NATADD (* derived 2005 July 30 in RO-ASSOC.NB *) composite[rotate[inverse[rotate[x_]]],id[cart[cart[V,V],V]]] := rotate[inverse[rotate[x]]] (* added 1999 September 3 based on ROTATE.4 *) composite[rotate[x_],inverse[SECOND]] := composite[Id,domain[x]] (* added 1999 November 20 based on CURRY.NB *) composite[rotate[x_],LEFT[y_]] := composite[Id,image[inverse[x],set[y]]] (* added 2002 October 29 based on ASSOC.NB *) composite[rotate[NATADD],cross[Id,rotate[NATADD]],ASSOC,cross[DUP,Id]] := composite[SECOND,id[composite[id[omega],inverse[S],id[omega]]]] (* added 2002 September 24 based on ADD-S.NB *) composite[rotate[NATADD],cross[Id,composite[S,id[omega]]]] := composite[id[omega],inverse[S],rotate[NATADD]] (* added 2002 September 17 based on SUBRECUR.NB *) composite[rotate[NATADD],cross[Id,NATADD],ASSOC] := composite[rotate[NATADD],cross[rotate[NATADD],Id]] (* added 2002 September 21 based on ROT-ADD.NB *) composite[rotate[NATADD],cross[image[inverse[NATADD],set[x_]],Id]] := composite[image[inverse[NATADD],set[x]],NATADD] (* added 2003 August 8 based on REPLACE.NB *) composite[rotate[NATADD],cross[plus[x_],plus[x_]]] := composite[id[image[V,intersection[omega,set[x]]]],rotate[NATADD]] (* added 2002 September 16 based on SUB-SUCC.NB *) composite[rotate[NATADD],cross[SUCC,SUCC]] := rotate[NATADD] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[rotate[NATADD],EQUIDIFF] := rotate[NATADD] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[rotate[NATADD],id[cart[omega,omega]]] := rotate[NATADD] (* added 2002 November 10 based on ADD-RO.NB *) composite[rotate[NATADD],id[cart[omega,V]]] := rotate[NATADD] (* derived 2005 January 29 in NATSUB.NB *) composite[rotate[NATADD],id[composite[id[omega],E]]] := 0 (* added 2002 November 30 based on NATSUB.NB *) composite[rotate[NATADD],id[composite[id[omega],inverse[S],id[omega]]]] := rotate[NATADD] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[rotate[NATADD],id[inverse[S]]] := rotate[NATADD] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[rotate[NATADD],inverse[VERTSECT[EQUIDIFF]]] := composite[inverse[PLUS],INVERSE] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[rotate[NATADD],SWAP,EQUIDIFF] := composite[rotate[NATADD],SWAP] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[rotate[NATADD],SWAP,id[cart[omega,omega]]] := composite[rotate[NATADD],SWAP] (* added 2002 November 30 based on NATSUB.NB *) composite[rotate[NATADD],SWAP,id[composite[id[omega],S,id[omega]]]] := composite[rotate[NATADD],SWAP] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[rotate[NATADD],SWAP,id[S]] := composite[rotate[NATADD],SWAP] (* added 2002 June 21 based on NATSUB.NB *) composite[rotate[NATADD],SWAP,inverse[rotate[NATADD]]] := cart[set[0],set[0]] (* derived 2005 May 21 in MOD-DUP.NB *) composite[rotate[NATMUL],inverse[NATMOD]] := cart[set[0],omega] (* added 1999 November 20 based on CURRY.NB *) composite[rotate[x_],RIGHT[y_]] := composite[inverse[LEFT[y]],inverse[x]] (* Theorem ADJ-CO2 in ADJ proved 1999 March 13 *) composite[S,ADJOIN[x_]] := composite[id[image[S,set[x]]],S] (* Theorem POW-BC6 in POW4 proved 1998 December 20 *) composite[S,BIGCUP] := composite[inverse[POWER],S] (* added 2003 July 4 based on COARSER.NB *) composite[S,COARSER] := S (* added 2003 October 21 based on COMMUTE.NB *) composite[S,COMMUTE] := cart[V,V] (* Theorem SR-CO10 in SR2 added 1998 July 31 *) composite[S,complement[E]] := cart[V,V] (* added 1998 August 23 *) composite[S,complement[inverse[E]]] := composite[inverse[POWER],complement[inverse[S]]] (* Theorem SR-C-CO5 in SR/C *) composite[S,complement[inverse[S]]] := composite[Id,complement[inverse[S]]] (* Theorem SR-CO11 in SR2 added 1998 July 31 *) composite[S,complement[S]] := cart[complement[set[0]],V] (* added 1998 September 24 based on session SR-CO-DI.LOG *) composite[S,Di] := union[cart[V,complement[set[0]]],cart[complement[set[0]],V]] (* Theorem DJT-CO-S in DJT *) composite[S,DISJOINT] := cart[V,V] (* derived 2005 May 5 in S-DIV.NB *) composite[S,DIV] := cart[omega,V] (* Theorem SR-CO5 in SR2 *) composite[S,E] := E (* added 2001 May 8 based on CORE-2.NB *) composite[S,id[x_],E] := composite[inverse[CORE[x]],E] (* derived 2005 November 2 in S-RS.NB *) composite[S,id[FINITE],S] := composite[S,id[FINITE]] (* added 2001 April 2 based on HF-X.NB *) composite[S,id[FULL],S] := composite[S,TC] (* added 2001 May 2 based on ADJOIN.NB *) composite[S,id[image[S,set[x_]]],S] := composite[id[image[S,set[x]]],S] (* derived 2005 May 17 in S-OM-C-E.NB *) composite[S,id[omega],complement[E]] := cart[V,V] (* derived 2005 November 2 in S-RS.NB *) composite[S,id[omega],S,id[omega]] := composite[S,id[omega]] (* direction needed for Normality of IMAGE[id[x]] *) composite[S,id[P[x_]]] := composite[inverse[IMAGE[id[x]]],S] composite[S,id[range[SINGLETON]]] := composite[inverse[IMAGE[SINGLETON]],E] (* derived 2004 July 26 in DORAFUNS.NB *) composite[S,image[DORA,FUNS]] := union[cart[V,complement[set[0]]],cart[set[0],V]] (* added 2000 September 19 based on NEWRULE1.LOG *) composite[S,intersection[composite[DISJOINT,DIF], composite[complement[inverse[S]],SECOND]]] := composite[complement[inverse[S]],CUP] (* added 2003 January 25 based on INVAR.NB *) composite[S,INVAR] := cart[V,V] (* added 2001 March 4 based on INVERSE2.NB *) composite[S,INVERSE] := composite[inverse[IMAGE[SWAP]],S] (* added 2003 June 6 based on ACL-UCL.NB *) composite[S,inverse[BIGCAP]] := composite[inverse[ACLOSURE],E] (* added 2002 September 24 based on MONOTONE.NB *) composite[S,inverse[BIGCUP]] := composite[inverse[UCLOSURE],E] (* added 2000 December 24 based on LT-CO-S *) composite[S,inverse[GREATEST[x_]]] := composite[inverse[IMAGE[id[fix[x]]]],E] composite[S,inverse[IMAGE[id[x_]]]] := composite[inverse[IMAGE[id[x]]],S] (* added 2000 November 22 based on VS-MEMB.NB *) composite[S,inverse[LB[x_]]] := cart[V,V] (* added 2000 December 24 based on LT-CO-S *) composite[S,inverse[LEAST[x_]]] := composite[inverse[IMAGE[id[fix[x]]]],E] (* added 2003 May 31 based on RS-CO.NB *) composite[S,inverse[RESTRICT]] := composite[inverse[IMAGE[id[cart[V,V]]]],S] (* Theorem SR-CO7 in SR2 *) composite[S,inverse[S]] := cart[V,V] (* derived 2005 February 4 in X3943.NB *) composite[S,inverse[TC],E] := composite[inverse[TC],E] (* added 2001 July 15 based on ZN-AGAIN.NB *) composite[S,inverse[ZN]] := inverse[ZN] (* Theorem K-SR1 in K proved 2000 May 16 *) composite[S,K] := PS (* added 2000 December 23 based on CO-S-LB.NB *) composite[S,LB[LB[x_]]] := cart[V,V] (* added 2000 December 23 based on CO-S-LB.NB *) composite[S,LB[UB[x_]]] := cart[V,V] (* added 2002 April 28 based on CLIQUES.NB *) composite[S,PAIRSET,complement[inverse[E]]] := composite[complement[inverse[E]],CLIQUES] (* Theorem PS-CO-2 in PS added 1998 August 9 *) composite[S,PS] := PS (* Theorem Q-SR-CO in Q proved 2000 June 2 *) composite[S,Q] := composite[Q,S] (* added 2003 May 31 based on RS-CO.NB *) composite[S,RESTRICT] := cart[V,V] (* Theorem SR-CO6 in SR2 *) composite[S,S] := S (* Theorem SG-SR2 in SG1 proved 1998 September 4 *) composite[S,SINGLETON] := E (* derived 2004 April 6 in SMALLER.NB *) composite[S,SMALLER] := SMALLER (* derived 2004 December 21 in SBCOMMUT.NB *) composite[S,SUBCOMMUTE] := cart[V,V] (* added 2001 July 14 based on ZN-IMG.NB *) composite[S,ZN] := cart[V,V] (* added 1999 November 4 based on ASSOC.NB *) composite[SECOND,ASSOC] := cross[SECOND,Id] (* derived 2005 July 30 in CATORELN.NB *) composite[SECOND,CATORELN] := composite[SECOND,FIRST,id[composite[id[composite[S,IMAGE[SECOND],id[P[cart[V,V]]]]], inverse[SECOND],IMAGE[FIRST],FIRST,id[composite[S,IMAGE[SECOND],id[P[cart[V,V]]]]]]]] (* added 2000 August 9 based on DOROTEST.NB *) composite[SECOND,complement[inverse[E]]] := cart[V,V] (* Theorem X-2ND-CO in X1 proved 2000 August 1 *) composite[SECOND,cross[x_,y_]] := composite[y,SECOND,id[cart[domain[x],V]]] (* added 1999 August 31 based on 12-CO-DI *) composite[SECOND,Di] := cart[V,V] (* added 2001 December 23 based on DORA-2.NB *) composite[SECOND,DORA] := IMAGE[SECOND] (* Theorem DUP2ND-1 in DUP1 proved 1998 November 29 *) composite[SECOND,DUP] := Id (* added 2003 July 20 based on EQUIDIFF.NB *) composite[SECOND,EQUIDIFF] := composite[rotate[composite[inverse[S],NATADD]], SWAP,id[cart[V,omega]]] (* added 2002 October 22 based on CO-ID.NB *) composite[SECOND,FIRST,id[cart[cart[V,V],V]]] := composite[SECOND,FIRST] (* derived 2005 July 30 in RO-ASSOC.NB *) composite[SECOND,FIRST,id[inverse[DUP]]] := composite[SECOND,id[inverse[DUP]]] (* added 2007 based on RIF-IN.NB *) composite[SECOND,id[cart[x_,y_]],inverse[RIF]] := composite[SWAP,id[inverse[y]],cross[inverse[x],Id]] (* added 2003 January 12 based on ITERATE.NB *) composite[SECOND,id[cart[x_,y_]],power[z_]] := composite[id[y],iterate[z,x]] (* Inverse of Normalization Rule for LEFT[x] added 1999 August 16 *) composite[SECOND,id[cart[set[x_],y_]]] := composite[id[y],inverse[LEFT[x]]] (* added 1999 December 22 based on IMINROT2.NB *) composite[SECOND,id[cart[x_,V]],inverse[rotate[y_]]] := inverse[image[inverse[y],x]] composite[SECOND,id[cart[V,V]]] := SECOND composite[SECOND,id[complement[cart[V,V]]]] := 0 composite[SECOND,id[composite[Id,x_]]] := composite[SECOND,id[x]] (* added 1999 October 13 based on SESSION.3 *) composite[SECOND,id[x_],cross[y_,z_]] := intersection[composite[z,SECOND],composite[x,y,FIRST]] (* Theorem DUP2ND-2 in DUP1 proved 1998 November 29 *) composite[SECOND,id[Id]] := inverse[DUP] composite[SECOND,id[id[x_]]] := composite[id[x],inverse[DUP]] composite[SECOND,id[x_],intersection[composite[inverse[FIRST],y_], composite[inverse[SECOND],z_]]] := intersection[z,composite[x,y]] (* added 2002 October 29 based on REIF-NAT.NB *) composite[SECOND,id[x_],intersection[composite[y_,SECOND], composite[inverse[FIRST],FIRST]]] := composite[intersection[composite[x,SECOND],rotate[inverse[y]]],SWAP] (* Theorem X-2ND1ST in X2 proved 1999 August 25 *) composite[SECOND,id[x_],inverse[FIRST]] := composite[Id,x] (* added 2002 May 16 based on ROTATE.NB *) composite[SECOND,id[x_],inverse[rotate[z_]]] := inverse[fix[composite[inverse[FIRST],x,z]]] (* Theorem 2ND-CO4 in 2ND proved 1999 August 25 *) composite[SECOND,id[x_],inverse[SECOND]] := id[range[x]] (* added 2003 May 30 based on FIX-ROT.NB *) composite[SECOND,intersection[composite[cross[Id,inverse[SECOND]],SECOND], composite[SWAP,cross[inverse[FIRST],Id],FIRST]]] := composite[RIF,cross[SWAP,SWAP]] (* revised 1999 October 13 based on SESSION.1 *) composite[SECOND,intersection[composite[x_,FIRST], composite[inverse[FIRST],SECOND]]] := rotate[inverse[x]] (* added 1999 December 2 based on 1999/DEC/01/WORK/PAIRSET.4 *) composite[SECOND,intersection[composite[inverse[CUP],x_], composite[inverse[FIRST],y_]]] := composite[FIRST,intersection[composite[inverse[CUP],x], composite[inverse[SECOND],y]]] (* added 1999 November 14 based on IMG1.NB *) composite[SECOND,intersection[composite[inverse[E],FIRST], composite[inverse[FIRST],inverse[E],SECOND]]] := composite[inverse[E],IMG] (* added 1999 December 1 based on TRI-E.NB *) composite[SECOND,intersection[composite[inverse[E],IMAGE[SWAP],x_], composite[inverse[FIRST],y_]]] := composite[FIRST,intersection[composite[inverse[E],x], composite[inverse[SECOND],y]]] (* added 2002 June 20 based on ITERNORM.NB *) composite[SECOND,intersection[composite[inverse[FIRST],x_,FIRST], composite[inverse[E],id[intersection[P[cart[omega,V]], subvar[union[cross[SUCC,SUCC],id[cart[set[0],V]]]]]], complement[composite[intersection[E, composite[inverse[IMAGE[cross[SUCC,SUCC]]],complement[E]]], inverse[SECOND],Di]],SECOND]]] := composite[rotate[inverse[power[SUCC]]],cross[x,Id]] (* added 2000 September 21 based on CROSS.NB *) composite[SECOND,intersection[composite[inverse[FIRST],x_,FIRST], composite[inverse[rotate[y_]],SECOND]]] := rotate[composite[inverse[x],y,SWAP]] (* corrected 2000 September 9 based on CORRECT.LOG *) composite[SECOND,intersection[composite[inverse[FIRST],FIRST], composite[x_,SECOND]]] := composite[rotate[inverse[x]],SWAP] (* added 2000 September 21 based on LAMBRULE.NB *) composite[SECOND,intersection[ composite[inverse[FIRST],IMAGE[SWAP],FIRST], composite[inverse[rotate[E]],inverse[E],SECOND]]] := composite[inverse[E],IMG] (* derived 2005 May 17 based on NATMOD.NB *) composite[SECOND,intersection[composite[inverse[NATADD],FIRST],composite[inverse[FIRST],x_,SECOND]]] := composite[rotate[NATADD],cross[Id,x]] (* added 2002 October 29 based on RO-I.NB *) composite[SECOND,intersection[inverse[rotate[x_]],inverse[rotate[y_]]]] := inverse[fix[composite[inverse[x],y]]] (* added 1999 November 4 based on ASSOC.NB *) composite[SECOND,inverse[ASSOC]] := composite[SECOND,SECOND] (* added 2000 July 24 based on CAPCUP.NB *) composite[SECOND,inverse[CAP]] := S (* added 2000 July 24 based on CAPCUP.NB *) composite[SECOND,inverse[CUP]] := inverse[S] (* added 2001 March 8 based on DISJOINT.NB *) composite[SECOND,inverse[DIF]] := DISJOINT (* Theorem 2ND-CO1 in 2ND proved 1998 November 5 *) composite[SECOND,inverse[FIRST]] := cart[V,V] (* added 2003 August 11 based on DOROZADD.NB *) composite[SECOND,inverse[INTADD]] := cart[Z,Z] (* added 2002 June 21 based on NATADD.NB *) composite[SECOND,inverse[NATADD]] := composite[id[omega],inverse[S],id[omega]] (* added 2001 February 1 based on RIF-1.NB *) composite[SECOND,inverse[RIF]] := composite[inverse[FIRST],SECOND] (* added 1999 September 12 based on 1999\SEP\07\ROTATE.8 *) composite[SECOND,inverse[ROT]] := composite[FIRST,FIRST] (* added 1999 October 17 based on 1999\OCT\15\WORK\SESSION.1 *) composite[SECOND,inverse[rotate[x_]]] := inverse[domain[x]] (* added 1999 August 16 based on session NORMAL.5 *) composite[SECOND,LEFT[x_]] := id[image[V,set[x]]] (* added 2001 January 20 based on RIF-2.NB *) composite[SECOND,RIF] := composite[FIRST,SECOND, id[composite[inverse[SECOND],FIRST]]] (* Theorem RT-2ND in RIGHT proved 2000 July 21 *) composite[SECOND,RIGHT[x_]] := cart[V,set[x]] (* added 1999 September 12 based on 1999\SEP\07\ROTATE.8 *) composite[SECOND,ROT] := composite[SECOND,FIRST] (* added 2002 October 22 based on CO-ID.NB *) composite[SECOND,SECOND,id[cart[V,cart[V,V]]]] := composite[SECOND,SECOND] (* derived 2005 July 30 in RO-ASSOC.NB *) composite[SECOND,SECOND,id[DUP]] := composite[FIRST,id[DUP]] (* Theorem 2ND-SW-2 in 2ND proved 1998 November 3 *) composite[SECOND,SWAP] := FIRST (* added 1999 October 11 based on 1999\OCT\10\ASSOC.2 *) composite[SECOND,TWIST] := cross[SECOND,SECOND] (* added 2003 July 20 based on DIRECT12.NB *) composite[SECOND,twist[x_]] := rotate[composite[FIRST,inverse[x]]] (* added 2001 November 29 based on CO-SS.NB *) composite[x_,set[y_]] := cart[set[first[y]],image[x,set[second[y]]]] (* added 2001 November 29 based on CO-SS.NB *) composite[set[x_],y_] := cart[image[inverse[y],set[first[x]]],set[second[x]]] composite[SINGLETON,complement[inverse[E]]] := composite[id[range[SINGLETON]],complement[inverse[S]]] (* added 2001 November 27 based on IN-SS.NB *) composite[x_,set[pair[y_,z_]]] := cart[set[y],image[x,set[z]]] (* added 2001 November 27 based on IN-SS.NB *) composite[set[pair[x_,y_]],z_] := cart[image[inverse[z],set[x]],set[y]] (* derived 2004 April 6 in SMALLER.NB *) composite[SMALLER,Q] := SMALLER (* derived 2004 April 6 in SMALLER.NB *) composite[SMALLER,S] := SMALLER (* added 2003 January 30 *) composite[SUBCOMMUTE,complement[E]] := cart[V,V] (* added 2003 January 30 *) composite[SUBCOMMUTE,complement[S]] := cart[complement[set[0]],V] (* derived 2004 December 21 in SBCOMMUT.NB *) composite[SUBCOMMUTE,DISJOINT] := cart[V,V] (* added 2003 January 30 *) composite[SUBCOMMUTE,IMAGE[DUP]] := composite[inverse[IMAGE[SWAP]],inverse[INVAR]] (* derived 2004 December 21 in SBCOMMUT.NB *) composite[SUBCOMMUTE,IMAGE[id[cart[V,V]]]] := SUBCOMMUTE (* derived 2004 December 21 in SBCOMMUT.NB *) composite[SUBCOMMUTE,inverse[S]] := cart[V,V] (* added 2003 January 30 *) composite[SUBCOMMUTE,inverse[SUBCOMMUTE]] := cart[V,V] (* added 2003 January 30 *) composite[SUBCOMMUTE,SUBCOMMUTE] := cart[V,V] (* derived 2004 January 19 in SUBVAR.NB *) composite[SUBVAR,CART,DUP] := POWER (* added 2000 February 15 based on SUBVAR4.NB *) composite[SUBVAR,IMAGE[DUP]] := POWER (* added 2000 February 15 based on SUBVAR4.NB *) composite[SUBVAR,IMAGE[id[cart[V,x_]]]] := composite[IMAGE[id[P[x]]],SUBVAR] (* derived 2004 January 19 in SUBVAR.NB *) composite[SUBVAR,LAMBHULL] := composite[POWER,ACLOSURE] (* derived 2005 February 16 in BC-OM.NB *) composite[SUCC,BIGCUP,id[omega]] := composite[ADJOIN[set[0]],id[omega]] (* Theorem OM-SUC12 in OM3 *) composite[SUCC,id[omega]] := composite[id[omega],SUCC] (* added 2002 May 25 based on SUCC-ID.NB *) composite[SUCC,id[OMEGA]] := composite[id[OMEGA],SUCC] (* added 2002 April 18 based on SUCC.NB *) composite[SUCC,id[REGULAR]] := composite[id[REGULAR],SUCC] (* derived 2005 February 17 in X3741-49.NB *) composite[SUCC,id[U[nat[x_]]]] := composite[id[nat[x]],SUCC] (* added 1999 October 13 based on SESSION.1 *) composite[SWAP,ASSOC] := inverse[ROT] (* added 2002 December 1 based on TW-RIF.NB *) composite[SWAP,cross[x_,y_],ASSOC] := composite[cross[y,x],inverse[ROT]] (* added 2002 December 28 based on REPLACE.NB *) composite[SWAP,cross[x_,y_],inverse[RIF]] := composite[cross[composite[y,SWAP],composite[x,SWAP]],inverse[RIF],SWAP] (* added 2002 December 1 based on TW-RIF.NB *) composite[SWAP,cross[x_,y_],inverse[ROT]] := composite[cross[y,x],ASSOC] (* added 2002 April 6 based on FUNP-ROT.NB *) composite[SWAP,cross[Id,inverse[SINGLETON]], inverse[rotate[composite[inverse[SINGLETON],IMG,SWAP]]]] := composite[inverse[E],FUNPART] (* added 1998 July 2 *) composite[SWAP,Di,id[cart[V,V]]] := composite[id[cart[V,V]],Di,SWAP] (* Theorem DUP-SW2 in DUP proved 1998 November 21 *) composite[SWAP,DUP] := DUP (* derived 2004 May 8 in GT-C-X.NB *) composite[SWAP,GREATEST[complement[cross[x_,y_]]]] := composite[GREATEST[complement[cross[y,x]]],IMAGE[SWAP]] (* added 2002 October 22 based on CO-ID.NB *) composite[SWAP,id[cart[V,V]]] := SWAP (* added 1999 November 30 based on IMG-SWAP.3 *) composite[SWAP,id[complement[cart[V,V]]]] := 0 (* added 2002 October 22 based on CO-ID.NB *) composite[SWAP,id[composite[Id,domain[x_]]],inverse[x_]] := composite[SWAP,inverse[x]] (* added 1999 December 15 based on REMOVEC3.LOG *) composite[SWAP,id[Id]] := id[Id] (* added 1999 December 15 based on REMOVEC3.LOG *) composite[SWAP,id[id[x_]]] := id[id[x]] (* added 2001 January 21 based on TWIST-1.NB *) composite[SWAP,id[x_],inverse[FIRST]] := composite[id[inverse[x]],inverse[SECOND]] (* added 2002 October 22 based on CO-ID.NB *) composite[x_,SWAP,id[inverse[domain[x_]]]] := composite[x,SWAP] (* added 2001 January 21 based on TWIST-1.NB *) composite[SWAP,id[x_],inverse[SECOND]] := composite[id[inverse[x]],inverse[FIRST]] (* added 1999 December 9 based on FLIP-DIF.NB *) composite[SWAP,intersection[composite[inverse[FIRST],x_],composite[inverse[SECOND],y_]]] := intersection[composite[inverse[FIRST],y],composite[inverse[SECOND],x]] (* added 1999 October 8 based on CAP-LOG.2 *) composite[SWAP,inverse[CAP]] := inverse[CAP] (* inverse of Theorem CUP-SW in CUP proved 1999 September 23 *) composite[SWAP,inverse[CUP]] := inverse[CUP] composite[SWAP,inverse[FIRST]] := inverse[SECOND] (* added 2002 October 22 based on CO-ID.NB *) composite[SWAP,inverse[x_],id[image[x_,cart[V,V]]]] := composite[SWAP,inverse[x]] (* added 2002 July 30 based on ADD-INV.NB *) composite[SWAP,inverse[NATADD]] := inverse[NATADD] (* derived 2005 February 18 in MUL-NORM.NB *) composite[SWAP,inverse[NATMUL]] := inverse[NATMUL] (* added 2002 January 10 based on PAIRSET.NB *) composite[SWAP,inverse[PAIRSET]] := inverse[PAIRSET] (* added 2002 December 28 based on REPLACE.NB *) composite[SWAP,inverse[RIF]] := composite[cross[SWAP,SWAP],inverse[RIF],SWAP] (* added 1999 October 13 based on ASSOC.1 *) composite[SWAP,inverse[ROT]] := ASSOC composite[SWAP,inverse[SECOND]] := inverse[FIRST] (* added 2002 May 20 based on ITER-X.NB *) composite[SWAP,iterate[cross[x_,y_],z_]] := iterate[cross[y,x],inverse[z]] (* added 1999 September 23 based on RL-SWAP.LOG *) composite[SWAP,LEFT[x_]] := RIGHT[x] (* added 1999 September 23 based on RL-SWAP.LOG *) composite[SWAP,RIGHT[x_]] := LEFT[x] (* Theorem SW-CO-3 in SW3 *) composite[SWAP,SWAP] := id[cart[V,V]] (* added 1999 October 10 based on TWIST.3 *) composite[SWAP,TWIST] := composite[TWIST,cross[SWAP,SWAP]] (* added 2002 June 25 based on SYMDIF.NB *) composite[SYMDIF,cross[Id,SYMDIF],ASSOC] := composite[SYMDIF,cross[SYMDIF,Id]] (* added 2002 June 25 based on SYMDIF.NB *) composite[SYMDIF,cross[SYMDIF,Id],inverse[ASSOC]] := composite[SYMDIF,cross[Id,SYMDIF]] (* added 2002 June 25 based on SYMDIF.NB *) composite[SYMDIF,cross[SYMDIF,Id],inverse[ROT]] := composite[SYMDIF,cross[SYMDIF,Id]] (* added 2002 June 25 based on SYMDIF.NB *) composite[SYMDIF,cross[SYMDIF,Id],ROT] := composite[SYMDIF,cross[SYMDIF,Id]] (* added 1999 December 2 based on SYMDIF-4.NB *) composite[SYMDIF,DUP] := cart[V,set[0]] (* added 1999 December 2 based on SYMDIF-2.NB *) composite[SYMDIF,id[cart[V,V]]] := SYMDIF (* added 2001 September 3 based in RC-DEF.NB *) composite[SYMDIF,id[DISJOINT]] := composite[CUP,id[DISJOINT]] (* added 1999 December 9 based on BUILD.TXT *) composite[SYMDIF,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],CUP]]] := SYMDIF (* added 1999 December 9 based on BUILD.TXT *) composite[SYMDIF,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],DIF]]] := FIRST (* added 1999 December 9 based on BUILD.TXT *) composite[SYMDIF,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],FIRST]]] := DIF (* added 1999 December 9 based on BUILD.TXT *) composite[SYMDIF,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],SECOND]]] := composite[DIF,SWAP] (* added 1999 December 9 based on BUILD.TXT *) composite[SYMDIF,intersection[composite[inverse[FIRST],CAP], composite[inverse[SECOND],SYMDIF]]] := CUP (* added 1999 December 9 based on BUILD.TXT *) composite[SYMDIF,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],CUP]]] := SECOND (* added 1999 December 9 based on BUILD.TXT *) composite[SYMDIF,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],DIF,SWAP]]] := SYMDIF (* added 1999 December 9 based on BUILD.TXT *) composite[SYMDIF,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],FIRST]]] := CAP (* added 1999 December 9 based on BUILD.TXT *) composite[SYMDIF,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],SECOND]]] := CUP (* added 1999 December 9 based on BUILD.TXT *) composite[SYMDIF,intersection[composite[inverse[FIRST],DIF], composite[inverse[SECOND],SYMDIF]]] := composite[DIF,SWAP] (* added 1999 December 9 based on BUILD.TXT *) composite[SYMDIF,intersection[composite[inverse[FIRST],FIRST], composite[inverse[SECOND],CUP]]] := composite[DIF,SWAP] (* added 1999 December 9 based on BUILD.TXT *) composite[SYMDIF,intersection[composite[inverse[FIRST],FIRST], composite[inverse[SECOND],DIF]]] := CAP (* added 1999 December 9 based on BUILD.TXT *) composite[SYMDIF,intersection[composite[inverse[FIRST],FIRST], composite[inverse[SECOND],SYMDIF]]] := SECOND (* added 1999 December 9 based on BUILD.TXT *) composite[SYMDIF,intersection[composite[inverse[FIRST],SECOND], composite[inverse[SECOND],DIF]]] := CUP (* added 1999 December 9 based on BUILD.TXT *) composite[SYMDIF,intersection[composite[inverse[FIRST],SYMDIF], composite[inverse[SECOND],DIF]]] := composite[DIF,SWAP] (* added 2002 May 28 based on DISJOINT.NB *) composite[SYMDIF,inverse[CAP]] := DISJOINT (* added 2002 June 25 based on SYMDIF.NB *) composite[SYMDIF,inverse[FIRST]] := cart[V,V] (* added 1999 December 24 based on SYMDIF-2.NB *) composite[SYMDIF,inverse[SECOND]] := cart[V,V] (* added 1999 December 4 based on 1999/DEC/03/CURRY-SD.NB *) composite[SYMDIF,LEFT[x_]] := image[inverse[SYMDIF],set[x]] (* added 1999 December 4 based on 1999/DEC/03/CURRY-SD.NB *) composite[SYMDIF,RIGHT[x_]] := image[inverse[SYMDIF],set[x]] (* added 1999 December 2 based on SYMDIF-4.NB *) composite[SYMDIF,SWAP] := SYMDIF (* Theorem TC-CO-BC in TC3 proved 2001 January 4 *) composite[TC,BIGCUP] := composite[BIGCUP,TC] (* derived 2004 December 24 in CARD.NB *) composite[TC,CARD] := CARD (* added 2001 January 1 based on TC-1.NB *) composite[TC,complement[inverse[S]]] := composite[id[FULL],complement[inverse[S]]] (* derived 2005 January 5 in CORE-ON.NB *) composite[TC,CORE[OMEGA]] := CORE[OMEGA] (* added 2000 October 26 based on TC-6.NB *) composite[TC,CUP] := composite[CUP,cross[TC,TC]] (* added 2001 January 1 based on TC-1.NB *) composite[TC,E] := composite[id[FULL],E] (* added 2001 March 31 based on HF.NB *) composite[TC,HC] := HC (* derived 2005 July 24 in TC-HULL.NB *) composite[TC,HULL[omega]] := HULL[omega] (* added 2000 January 8 based on TC-TC.NB *) composite[TC,id[FULL]] := id[FULL] (* added 2003 January 18 based on HC-TC-OM.NB *) composite[TC,id[omega]] := id[omega] (* added 2001 December 4 based on TC-ON.NB *) composite[TC,id[OMEGA]] := id[OMEGA] (* Theorem RK-IMG-1 in RANK7 proved 2001 October 12 *) composite[TC,IMAGE[RANK]] := composite[RANK,IMAGE[id[REGULAR]]] (* added 2002 May 17 based on ZN.NB *) composite[TC,IMAGE[ZN]] := IMAGE[ZN] (* added 2001 August 1 based on RK-TC.NB *) composite[TC,RANK] := RANK (* added 2000 January 8 based on TC-SR.NB *) composite[TC,S] := composite[id[FULL],S] (* derived 2004 September 29 in WF-REC-7.NB *) composite[TC,SINGLETON,id[omega]] := composite[id[omega],SUCC] (* derived 2004 September 29 in WF-REC-7.NB *) composite[TC,SINGLETON,inverse[SUCC],id[omega]] := id[intersection[omega,complement[set[0]]]] (* added 2000 January 8 based on TC-TC.NB *) composite[TC,TC] := TC (* derived 2004 September 29 in WF-REC-7.NB *) composite[TC,VERTSECT[inverse[SUCC]],id[omega]] := id[omega] (* added 2002 May 17 based on TC-REDO.NB *) composite[TC,VERTSECT[ZN]] := VERTSECT[ZN] (* derived 2004 December 16 in VS-EQV.NB *) composite[thinpart[eqv[x_]],id[fix[eqv[x_]]]] := thinpart[eqv[x]] (* derived 2004 August 28 in FUNPTHIN.NB *) composite[thinpart[x_],id[domain[x_]]] := thinpart[x] (* derived 2004 May 14 in THINPART.NB *) composite[thinpart[x_],id[domain[VERTSECT[x_]]]] := thinpart[x] (* derived 2004 December 17 in RFXTRV-C.NB *) composite[thinpart[rfx[trv[x_]]],id[fix[trv[x_]]]] := thinpart[rfx[trv[x]]] (* derived 2004 December 19 in QO-IDEM.NB *) composite[thinpart[rfx[trv[x_]]],thinpart[rfx[trv[x_]]]] := thinpart[rfx[trv[x]]] (* derived 2005 October 15 in TO-THIN.NB *) composite[thinpart[to[x_]],thinpart[to[x_]]] := thinpart[to[x]] (* derived 2004 May 14 in REPLACE.NB *) composite[thinpart[ZN],IMAGE[ZN]] := thinpart[ZN] (* derived 2004 August 14 in ZN-RULES.NB *) composite[thinpart[ZN],TC] := thinpart[ZN] (* derived 2005 July 17 in TIMES.NB *) composite[times[x_],DIV] := composite[DIV,times[x]] (* derived 2005 July 17 in TIMES.NB *) composite[times[x_],id[omega]] := times[x] (* derived 2005 July 17 in TIMES.NB *) composite[times[x_],NATADD] := composite[NATADD,cross[times[x],times[x]]] (* derived 2005 July 17 in TIMES.NB *) composite[times[x_],NATMUL] := composite[NATMUL,cross[Id,times[x]]] (* derived 2005 July 17 in TIMES.NB *) composite[times[x_],rotate[NATADD]] := composite[rotate[NATADD],cross[times[x],times[x]],id[inverse[S]]] (* derived 2005 July 17 in TIMES.NB *) composite[times[x_],SUCC] := composite[plus[x],times[x]] (* derived 2005 July 17 in TIMES.NB *) composite[times[x_],times[y_]] := times[natmul[x,y]] (* derived 2005 October 22 in TO-C.NB *) composite[to[x_],intersection[Di,to[x_]]] := intersection[Di,to[x]] (* derived 2005 October 8 in TO-WRAP.NB *) composite[to[x_],to[x_]] := to[x] (* added 2002 March 27 based on TRV.NB *) composite[trv[x_],x_] := composite[trv[x],trv[x]] (* added 2002 March 27 based on TRV.NB *) composite[x_,trv[x_]] := composite[trv[x],trv[x]] (* derived 2003 December 18 in RA-ITER.NB *) composite[trv[SUCC],id[omega]] := composite[id[omega],E] (* derived 2005 January 29 in TRV-RFX.NB *) composite[trv[rfx[x_]],complement[inverse[trv[rfx[x_]]]]] := composite[id[fix[x]],complement[inverse[trv[rfx[x]]]]] (* derived 2005 January 29 in TRV-RFX.NB *) composite[trv[rfx[x_]],trv[rfx[x_]]] := trv[rfx[x]] (* added 2002 December 30 based on 9-TWIST.NB *) composite[TWIST,cross[cross[u_,v_],cross[x_,y_]],TWIST] := cross[cross[u,x],cross[v,y]] (* added 2001 December 28 based on TW-DUP.NB *) composite[TWIST,cross[DUP,DUP]] := composite[DUP,id[cart[V,V]]] (* added 2003 July 17 based on DIR-PROD.NB *) composite[TWIST,cross[x_,id[cart[V,V]]]] := composite[TWIST,cross[x,Id]] (* added 2003 July 17 based on DIR-PROD.NB *) composite[TWIST,cross[id[cart[V,V]],x_]] := composite[TWIST,cross[Id,x]] (* added 1999 October 10 based on TWIST.3 *) composite[TWIST,DUP] := cross[DUP,DUP] (* added 1999 October 10 based on TWIST.2 *) composite[TWIST,id[cart[V,V]]] := TWIST (* added 2001 January 20 based on TWIST-2.NB *) composite[twist[x_],id[cart[V,V]]] := twist[x] (* added 2002 October 22 based on CO-ID.NB *) composite[twist[x_],id[composite[FIRST,x_,inverse[FIRST]]]] := twist[x] (* derived 2005 March 26 in DIVDSTRB.NB *) composite[TWIST,inverse[FIRST]] := cross[inverse[FIRST],inverse[FIRST]] (* added 2003 July 20 based on DIRECT12.NB *) composite[twist[x_],inverse[FIRST]] := composite[SWAP,inverse[rotate[composite[SECOND,x,SWAP]]]] (* added 2002 June 7 based on RIF.NB *) composite[TWIST,inverse[RIF]] := composite[inverse[RIF],SWAP] (* derived 2005 March 26 in DIVDSTRB.NB *) composite[TWIST,inverse[SECOND]] := cross[inverse[SECOND],inverse[SECOND]] (* added 2003 July 20 based on DIRECT12.NB *) composite[twist[x_],inverse[SECOND]] := inverse[rotate[composite[SECOND,inverse[x],SWAP]]] (* added 2003 July 17 based on DIR-PROD.NB *) composite[TWIST,LEFT[x_]] := cross[LEFT[first[x]],LEFT[second[x]]] (* added 2003 July 14 based on TW-LEFT.NB *) composite[TWIST,LEFT[PAIR[x_,y_]]] := cross[LEFT[x],LEFT[y]] (* added 2003 July 17 based on DIR-PROD.NB *) composite[TWIST,RIGHT[x_]] := cross[RIGHT[first[x]],RIGHT[second[x]]] (* added 2002 August 29 based on BINHOM.NB *) composite[TWIST,RIGHT[PAIR[x_,y_]]] := cross[RIGHT[x],RIGHT[y]] (* added 1999 October 10 based on TWIST.3 *) composite[TWIST,SWAP] := composite[cross[SWAP,SWAP],TWIST] (* Theorem TW-TW-CO in TWIST proved 2000 August 5 *) composite[TWIST,TWIST] := id[cart[cart[V,V],cart[V,V]]] (* added 2000 November 10 based on UB-LB-1.LOG *) composite[UB[x_],complement[E]] := cart[V,V] (* derived 2004 January 29 in UB-LB-CO.NB *) composite[UB[x_],complement[inverse[S]]] := composite[x,complement[inverse[E]]] (* added 2000 November 10 based on UB-LB-1.LOG *) composite[UB[x_],complement[S]] := cart[complement[set[0]],V] (* added 2000 December 14 based on PAIRSET.NB *) composite[UB[x_],CUP] := intersection[composite[UB[x],FIRST],composite[UB[x],SECOND]] (* added 2000 November 10 based on UB-LB-1.LOG *) composite[UB[x_],DISJOINT] := cart[V,V] (* added 2000 November 5 based on UB-2.NB *) composite[UB[x_],E] := composite[Id,x] (* added 2002 November 17 based on LB-UB.NB *) composite[UB[x_],id[P[domain[x_]]]] := UB[x] (* added 2001 July 8 based on REMOVED.NB *) composite[UB[x_],id[P[y_]],E] := composite[x,id[y]] (* added 2002 April 10 based on INVAR.NB *) composite[UB[INVAR],IMAGE[SINGLETON]] := INVAR (* derived 2004 December 24 in UCL-LBUB.NB *) composite[UB[x_],inverse[BIGCUP],E] := composite[x,E] (* derived 2004 January 25 in GT-LT-CO.NB *) composite[UB[x_],inverse[GREATEST[y_]]] := composite[x,id[fix[y]]] (* derived 2004 January 29 in UB-LB-CO.NB *) composite[UB[x_],inverse[IMAGE[id[y_]]]] := composite[UB[x],id[P[y]]] (* derived 2004 January 25 in GT-LT-CO.NB *) composite[UB[x_],inverse[LEAST[y_]]] := composite[x,id[fix[y]]] (* added 2000 November 10 based on UB-LB-1.LOG *) composite[UB[x_],inverse[S]] := cart[V,V] (* added 2000 December 14 based on PAIRSET.NB *) composite[UB[x_],PAIRSET] := intersection[composite[x,FIRST],composite[x,SECOND]] (* added 2002 October 29 based on COMMUTE.NB *) composite[UB[rotate[x_]],id[P[cart[V,V]]]] := UB[rotate[x]] (* Theorem UB-CO-SR proved 2000 November 5 *) composite[UB[x_],S] := UB[x] (* added 2000 November 10 based on UB-LB-1.LOG *) composite[UB[x_],SINGLETON] := composite[Id,x] (* derived 2004 December 21 in SBCOMMUT.NB *) composite[UB[SUBCOMMUTE],IMAGE[IMAGE[id[cart[V,V]]]]] := UB[SUBCOMMUTE] (* derived 2004 December 21 in SBCOMMUT.NB *) composite[UB[SUBCOMMUTE],IMAGE[IMAGE[SWAP]]] := composite[inverse[IMAGE[SWAP]],LB[SUBCOMMUTE]] (* derived 2004 December 21 in SBCOMMUT.NB *) composite[UB[SUBCOMMUTE],inverse[BIGCUP]] := SUBCOMMUTE (* added 2002 November 20 based on UCL-U.NB *) composite[UCLOSURE,ADJOIN[set[0]]] := UCLOSURE (* derived 2004 December 23 in UCLA-SBV.NB *) composite[UCLOSURE,BIGCAP,IMAGE[SUBVAR]] := composite[BIGCAP,IMAGE[SUBVAR]] (* derived 2004 December 21 in UCL-A.NB *) composite[UCLOSURE,BIGCAP,IMAGE[UCLOSURE]] := composite[BIGCAP,IMAGE[UCLOSURE]] (* added 2001 October 18 based on UCL-IMS.NB *) composite[UCLOSURE,CLIQUES] := composite[POWER,IMAGE[inverse[DUP]]] (* derived 2004 October 2 in UCL-U-PC.NB *) composite[UCLOSURE,CUP,cross[POWER,POWER]] := composite[POWER,CUP] (* added 2003 November 6 based on HULLTOPS.NB *) composite[UCLOSURE,HULL[binclosed[CAP]]] := HULL[TOPS] (* derived 2005 October 25 in TOP-WRAP.NB *) composite[UCLOSURE,HULL[TOPS]] := HULL[TOPS] (* derived 2005 February 16 in BC-OM.NB *) composite[UCLOSURE,id[omega]] := composite[ADJOIN[set[0]],id[omega]] (* derived 2003 December 24 in UCL-ON.NB *) composite[UCLOSURE,id[OMEGA]] := composite[SUCC,BIGCUP,id[OMEGA]] (* derived 2004 October 2 in UCL-0.NB *) composite[UCLOSURE,IMAGE[id[complement[set[0]]]]] := UCLOSURE (* added 2001 October 29 based on UCL.NB *) composite[UCLOSURE,IMAGE[id[P[x_]]]] := composite[IMAGE[id[P[x]]],UCLOSURE] (* added 2002 April 8 based on UCL-ACL.NB *) composite[UCLOSURE,IMAGE[inverse[S]]] := composite[POWER,BIGCUP] (* added 2002 April 8 based on UCL-ACL.NB *) composite[UCLOSURE,IMAGE[SINGLETON]] := POWER (* added 2001 October 23 based on TOPS.NB *) composite[UCLOSURE,SINGLETON] := composite[ADJOIN[set[0]],SINGLETON] (* added 2001 May 10 based on UCLOS-1.NB *) composite[UCLOSURE,UCLOSURE] := UCLOSURE (* added 2001 May 10 based on UCLOS-1.NB *) composite[UCLOSURE,POWER] := POWER (* added 2001 September 30 based on ACL-3.NB *) composite[UCLOSURE,SUBVAR] := SUBVAR (* derived 2004 August 10 in RS-3.NB *) composite[UCLOSURE,VERTSECT[RESTRICT]] := VERTSECT[RESTRICT] (* Theorem CO-U2 in CO1 *) composite[x_,union[y_,z_]] := union[composite[x,y],composite[x,z]] (* Theorem CO-U1 in CO1 *) composite[union[x_,y_],z_] := union[composite[x,z],composite[y,z]] (* Theorem CO-RA4 in CO2 *) composite[x_,V] := cart[V,range[x]] (* Theorem CO-DO4 in CO2 *) composite[V,x_] := cart[domain[x],V] (* added 2002 January 29 based on FUNPART.NB *) composite[VERTSECT[complement[composite[complement[inverse[E]],x_]]], id[domain[funpart[x_]]]] := funpart[x] (* derived 2004 February 25 in HULLUBLB.NB *) composite[VERTSECT[complement[composite[complement[x_],LB[x_]]]], VERTSECT[complement[composite[complement[x_],LB[x_]]]]] := VERTSECT[complement[composite[complement[x],LB[x]]]] (* derived 2004 November 23 in A8-AXCH.NB *) composite[VERTSECT[composite[z_,x_]],id[domain[VERTSECT[x_]]]] := composite[IMAGE[z],VERTSECT[x]] (* added 2003 February 4 based on PLUS-Q.NB *) composite[VERTSECT[composite[id[omega],S]],id[omega]] := composite[RC[omega],id[omega]] (* Definitin DEF-CART in CART added 1999 August 12 *) composite[VERTSECT[cross[inverse[E],inverse[E]]],id[cart[V,V]]] := CART (* derived 2005 October 5 in GLB-DIV.NB *) composite[VERTSECT[DIV],GLB[DIV]] := HULL[image[VERTSECT[DIV],omega]] (* added 2003 August 9 based on ASS-ADDZ.NB *) composite[VERTSECT[EQUIDIFF],cross[NATADD,NATADD],TWIST] := composite[INTADD,cross[VERTSECT[EQUIDIFF],VERTSECT[EQUIDIFF]]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[VERTSECT[EQUIDIFF],EQUIDIFF] := composite[VERTSECT[EQUIDIFF],id[cart[omega,omega]]] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[VERTSECT[EQUIDIFF],inverse[rotate[NATADD]]] := composite[INVERSE,PLUS] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[VERTSECT[EQUIDIFF],LEFT[0],id[omega]] := PLUS (* added 2003 August 17 based on EQDF-SUB.NB *) composite[VERTSECT[EQUIDIFF],RIGHT[0],id[omega]] := composite[INVERSE,PLUS] (* added 2003 August 17 based on EQDF-SUB.NB *) composite[VERTSECT[EQUIDIFF],SWAP] := composite[INVERSE,VERTSECT[EQUIDIFF],id[cart[V,V]]] (* derived 2004 March 9 in IDEMLTGT.NB *) composite[VERTSECT[GREATEST[x_]],VERTSECT[GREATEST[x_]]] := VERTSECT[GREATEST[x]] (* added 1999 October 16 based on 1999\OCT\15\VERTSECT.4 *) composite[VERTSECT[x_],id[complement[domain[x_]]]] := cart[complement[domain[x]],set[0]] (* derived 2005 October 17 in VS-RS-DO.NB *) composite[VERTSECT[x_],id[domain[thinpart[x_]]]] := composite[VERTSECT[x],id[domain[x]]] (* added 2000 November 22 based on VS-MEMB.NB *) composite[VERTSECT[x_],inverse[x_]] := composite[id[range[VERTSECT[x]]],E] (* derived 2004 July 23 in X23--.NB *) composite[VERTSECT[x_],inverse[thinpart[x_]]] := composite[id[range[VERTSECT[x]]],E] (* added 2000 November 22 based on VS-MEMB.NB *) composite[VERTSECT[x_],LB[x_]] := composite[id[range[VERTSECT[x]]],S] (* derived 2004 March 9 in IDEMLTGT.NB *) composite[VERTSECT[LEAST[x_]],VERTSECT[LEAST[x_]]] := VERTSECT[LEAST[x]] (* derived 2004 August 10 in RS-3.NB *) composite[VERTSECT[RESTRICT],FUNPART] := composite[POWER,FUNPART] (* derived 2004 August 10 in RS-3.NB *) composite[VERTSECT[RESTRICT],IMAGE[id[cart[V,V]]]] := VERTSECT[RESTRICT] (* derived 2005 October 17 in VS-RS-DO.NB *) composite[VERTSECT[thinpart[x_]],id[domain[thinpart[x_]]]] := composite[VERTSECT[x],id[domain[x]]] (* derived 2004 May 14 in SIMPLIFY.NB *) composite[VERTSECT[thinpart[x_]],id[domain[VERTSECT[x_]]]] := VERTSECT[x] (* added 2002 July 30 based on LAMBAPPL.NB *) composite[VERTSECT[UB[complement[composite[complement[inverse[E]],x_]]]], SINGLETON] := VERTSECT[complement[composite[complement[inverse[E]],x]]] (* added 2001 July 17 based on ZN-IMG4.NB *) composite[VERTSECT[ZN],IMAGE[ZN]] := VERTSECT[ZN] (* added 2001 July 15 based on ZN-AGAIN.NB *) composite[VERTSECT[ZN],POWER] := composite[POWER,VERTSECT[ZN]] (* derived 2004 August 14 in ZN-RULES.NB *) composite[VERTSECT[ZN],SUCC] := composite[POWER,VERTSECT[ZN]] (* added 2002 May 17 based on TC-REDO.NB *) composite[VERTSECT[ZN],TC] := VERTSECT[ZN] (* derived 2004 August 28 in FUNP-VS.NB *) composite[VS,IMAGE[composite[id[x_],inverse[FIRST]]]] := composite[IMAGE[composite[id[composite[VERTSECT[x],id[domain[x]]]],inverse[FIRST]]],id[P[domain[VERTSECT[x]]]]] (* derived 2004 August 21 in VS-RS.NB *) composite[VS,IMAGE[DUP]] := IMAGE[composite[id[SINGLETON],inverse[FIRST]]] (* derived 2004 January 6 in VS-OO.NB *) composite[VS,IMAGE[id[cart[V,V]]]] := VS (* derived 2004 August 21 in VS-RS.NB *) composite[VS,RESTRICT] := composite[inverse[S],VS] (* derived 2004 September 25 in LAMB-WF.NB *) composite[WFPART,id[WF]] := id[WF] (* derived 2004 September 25 in LAMB-WF.NB *) composite[WFPART,IMAGE[DUP]] := cart[V,set[0]] (* derived 2004 September 25 in LAMB-WF.NB *) composite[WFPART,IMAGE[id[cart[V,V]]]] := WFPART (* derived 2004 September 25 in LAMB-WF.NB *) composite[WFPART,WFPART] := WFPART (* derived 2005 October 22 in WO-C.NB *) composite[wo[x_],intersection[Di,wo[x_]]] := intersection[Di,wo[x]] (* derived 2005 October 16 in WO-WRAP.NB *) composite[wo[x_],wo[x_]] := wo[x] (* derived 2004 November 16 in XS.NB *) composite[XS,FUNPART] := composite[SINGLETON,FUNPART] (* derived 2004 November 16 in XS.NB *) composite[XS,IMAGE[DUP]] := composite[SINGLETON,IMAGE[DUP]] (* derived 2004 November 16 in XS.NB *) composite[XS,IMAGE[id[cart[V,V]]]] := XS (* added 2001 July 14 based on ZN-IMG.NB *) composite[ZN,complement[inverse[E]]] := cart[V,V] (* added 2001 July 14 based on ZN-IMG.NB *) composite[ZN,complement[inverse[S]]] := cart[V,V] (* added 2001 July 14 based on ZN-IMG.NB *) composite[ZN,Di] := cart[V,V] (* added 2001 July 14 based on ZN-IMG.NB *) composite[ZN,E] := cart[V,V] (* derived 2005 January 5 in RANK-S.NB *) composite[ZN,id[OMEGA]] := composite[inverse[RANK],inverse[S],id[OMEGA]] (* derived 2004 May 14 in REPLACE.NB *) composite[ZN,IMAGE[ZN]] := thinpart[ZN] (* added 2001 July 21 based on LB-ZN.NB *) composite[ZN,inverse[BIGCUP]] := composite[ZN,POWER] (* added 2003 January 25 based on TC-ZN.NB *) composite[ZN,inverse[E],TC] := composite[ZN,inverse[E]] (* added 2001 July 14 based on ZN-IMG.NB *) composite[ZN,inverse[S]] := ZN (* added 2001 July 15 based on ZN-AGAIN.NB *) composite[ZN,inverse[ZN]] := cart[V,V] (* added 2001 July 14 based on ZN-IMG.NB *) composite[ZN,S] := cart[V,V] (* added 2003 January 25 based on TC-ZN.NB *) composite[ZN,TC] := ZN (* derived 2004 May 14 in REPLACE.NB *) composite[ZN,thinpart[ZN]] := thinpart[ZN] (* Theorem ZN-IDEM in ZN3 proved 2001 July 9 *) composite[ZN,ZN] := ZN (* added 2001 May 2 based on COREHULL.NB *) CORE[0] := cart[V,set[0]] (* added 2004 April 17 based on CORE.NB *) core[0,x_] := 0 (* added 2004 April 17 based on CORE.NB *) core[x_,0] := 0 (* added 2003 October 15 based on ACYCLIC.NB *) CORE[ACYCLIC] := IMAGE[id[Di]] (* derived 2004 April 18 in REPLACE.NB *) core[ACYCLIC,x_] := intersection[Di,x] (* added 2002 June 4 based on CORE.NB *) CORE[ANTISYM] := IMAGE[id[cart[V,V]]] (* derived 2004 April 18 in REPLACE.NB *) core[ANTISYM,x_] := composite[Id,x] (* added 2001 October 18 based on CORE-BIJ.NB *) CORE[BIJ] := IMAGE[id[cart[V,V]]] (* derived 2004 April 18 in REPLACE.NB *) core[BIJ,x_] := composite[Id,x] (* added 2003 May 23 based on CORE-BCL.NB *) CORE[binclosed[CAP]] := Id (* derived 2004 April 18 in REPLACE.NB *) core[binclosed[CAP],x_] := x (* added 2003 May 23 based on CORE-BCL.NB *) CORE[binclosed[CUP]] := Id (* derived 2004 April 18 in REPLACE.NB *) core[binclosed[CUP],x_] := x (* added 2002 June 4 based on CORE.NB *) CORE[cliques[x_]] := IMAGE[id[fix[x]]] (* derived 2004 April 18 in REPLACE.NB *) core[cliques[x_],y_] := intersection[y,fix[x]] (* added 2002 November 19 based on CORE.NB *) CORE[complement[set[0]]] := Id (* added 2004 April 17 based on CORE.NB *) core[x_,core[x_,y_]] := core[x,y] (* added 2004 April 17 based on CORE.NB *) core[x_,core[intersection[x_,y_],z_]] := core[intersection[x,y],z] (* added 2001 October 19 based on CORE.NB *) CORE[DEDEKIND] := Id (* derived 2004 April 18 in REPLACE.NB *) core[DEDEKIND,x_] := x (* derived 2004 September 24 in COREDESC.NB *) core[DESCENDING,REGULAR] := 0 (* derived 2004 October 4 in CORE-EQV.NB *) CORE[EQV] := CORE[intersection[RFX,SYM]] (* added 2001 October 19 based on CORE.NB *) CORE[FINITE] := Id (* derived 2004 April 18 in REPLACE.NB *) core[FINITE,x_] := x (* added 2003 May 23 based on CORE-BCL.NB *) CORE[fix[ACLOSURE]] := Id (* derived 2004 April 18 in REPLACE.NB *) core[fix[ACLOSURE],x_] := x (* derived 2004 April 18 in REPLACE.NB *) core[fix[UCLOSURE],P[x_]] := P[x] (* added 2001 May 2 based on COREHULL.NB *) CORE[FULL] := HC (* added 2004 April 17 based on COR