The Set of Primitive Recursive Functions 1

合集下载

NADPH氧化酶NOX家族与疾病的关系

NADPH氧化酶NOX家族与疾病的关系

第30卷第6期2010年12月国际病理科学与临床杂志 http ://www.g jb.l netIn ternati onal Journal ofPat h ol ogy and C li n i calM ed ici ne Vo.l 30 N o .6Dec . 2010收稿日期:2010-10-08 修回日期:2010-11-24作者简介:韩晓燕,硕士研究生,主要从事肿瘤对射线敏感性的研究。

通信作者:刘箐,E m ai:l ci qq@l s ohu.co m基金项目:国家自然科学基金(30870586)。

This w ork was supported by Nati onalNat ural Scie n ce Foundati on ofCh i na (30870586).NADP H 氧化酶NOX 家族与疾病的关系韩晓燕1 综述 高丽萍1,刘箐2 审校(1.兰州大学基础医学院生物化学与分子生物学教研室;2.中国科学院近代物理研究所重离子辐照生物医学研究中心,兰州730000)[摘要] 还原型烟酰胺腺嘌呤二核苷酸磷酸(nicoti na m i de aden i ne di nucleo ti de phosphate ,NA DPH )氧化酶的非吞噬细胞氧化酶(non phagocy tic cell ox i dase ,NOX )家族是许多非吞噬细胞中活性氧(reacti ve ox yg en spec ies ,RO S)的主要来源。

正常状态下,通过该途径产生的ROS 作为信号分子参与了细胞分化、增殖、凋亡等的调节,但在环境胁迫下,NOX 蛋白家族在感受细胞外信息刺激时,能够迅速活化产生过量的ROS ,引起的氧化压力会诱导机体多种疾病的发生、发展。

本文主要从NADPH 氧化酶NOX 家族蛋白的结构、活化、功能及与疾病发生、发展的关系等方面进行简述。

[关键词]还原型烟酰胺腺嘌呤二核苷酸磷酸氧化酶; 非吞噬细胞氧化酶家族; 活性氧; 疾病do:i 10.3969/.j issn .1673 2588.2010.06.012NOX fa m il y of NADPH oxi dase and diseasesHAN X iaoyan 1,GAO L i p i n g 1,L I U Q i n g2(1.De part m e n t of B ioche m istry and M olec u l ar B iology,S c hool of B asic M e d ic a lS cience ,Lanzh ou Un iversit y,L anzhou 730000;2.H e avy Ion Irrad i a tion C e n te r for B io m e d ic a lR esearc h,Institute ofM odern P hysics ,Chinese A c ade my of S ciences ,L anzhou 730000,Ch i na )[Abstract] Non phagocy tic ce ll ox i d ase (NOX )fa m ily of n icoti n a m i d e aden i n e d i n ucleotidephosphate (NADP H )ox idase is the m ajor sources of reactive oxygen species (ROS)i n a num ber of non phygocy tic cells ,NOX derived ROS functi o ns as a m essenger mo lecule to partc i p ate in the m odulation o fcell differentiation ,pr o liferation and apoptosis .NOX pr o te i n fa m ily can be activated quick l y under patho physi o log ica l cond itions l e ad i n g to h i g h producti o n o f ROS ,w h i c h contri b utes to ox i d ative stress and a w ide range o f d iseases .In th is rev ie w,w e summ arized the literatures on NOX pr o te i n construction ,acti vati o n ,functi o n ,and its corre lati o n w ith t h e developm ent o f d iseases .[Key words] nicotina m ide adenine d i n ucleo ti d e phosphate ox idase ; non phagocy tic ce ll ox i dase fa m ily ; reactive oxygen spec ies ; d isease[Int J Pathol C linM ed ,2010,30(6):0513 05]还原型烟酰胺腺嘌呤二核苷酸磷酸(n icoti n a m ide adenine dinuc leoti d e phosphate ,NADPH )在很多生物体的化学反应中起递氢体的作用,对机体具有重要的意义,而NADP H 氧化酶是细胞内一组具有氧化活性的蛋白,早期研究认为NADP H 氧化酶特异地存在于吞噬细胞,是由催化亚基gp91phox[即第6期国际病理科学与临床杂志 http://www.g j b.l net第30卷非吞噬细胞氧化酶2(non phagocy tic ce ll ox idase2, N ox2)],跨膜亚基p22p h ox,胞浆亚基p47phox,p67phox, p40p h ox和小分子三磷酸鸟苷(guanosi n e tri p hosphate, GTP)酶结合蛋白Ras癌基因相关蛋白1 (R as re lat ed prote i n1 ,Rap1 ),Ras相关的C3肉毒素底物2 (Ras related C3botu li n um tox i n substrate2,R ac2),细胞分裂周期蛋白42(ce ll dev ision cycle42,Cdc42)以及最新发现的p29过氧化物酶等组成的酶复合体[1](gp表示糖蛋白,phox代表吞噬细胞氧化酶成分),该酶通过产生活性氧(reactive oxygen species, ROS)清除入侵的病原微生物进而参与宿主防御[2 3]。

荣格 集体潜意识的原型

荣格 集体潜意识的原型

CARL JUNG “ARCHETYPES OF THE COLLECTIVE UNCONSCIOUS” (1934) Jung, Carl. "Archetypes of the Collective Unconscious." The Archetypes and the Collective Unconscious. Vol. 9i of Collected Works. Ed. Herbert Read, Michael Fordham, and Gerhard Adler. Trans. R. F. C. Hull. 20 Vols. London: Routledge and Kegan Paul, 1953-1978.3-41.Jung draws a distinction between Freud’s notion of the “personal unconscious” (3) (henceforth, PU) and his own notion of the “collective unconscious”(3) (CU). He describes the PU as the “gathering place of forgotten or repressed contents” (3) and as derived from “personal experience” (642). However, the PU “rests upon a deeper layer” (3), the CU. The latter is “not individual but universal” (3): it is “identical in all men” (4), consisting of a “common psyche substrate of a suprapersonal nature which is present in every one of us” (4). Secondly, it is “not a personal acquisition but is inborn” (3), that is, it is biologically inherited rather than, as is the case with the PU, something produced during the formative stages of human development in the course of which the infant is ‘socialised’and acquires a gendered and sexualised identity.Where the contents of the PU are the instincts or drives (as Freud’s German term is more accurately and more often translated today), that is, those repressed desires which are socially incompatible with the dominant mores of human society, the contents of the CU are the “archetypes” (4). These are, according to Jung’s definition, “archaic or . . . primordial types” (5), that is, “universal images that have existed since the remotest times” (5), which are retained at unconscious levels of the psyche and which are passed on from generation to generation as part of the psychic inheritance of all humans. In short, Jung defines the archetype as the psychic residue of repeated patterns of experience, handed down from generation to generation since time immemorial, which prestructureour experiences in the present. An archetype is an “immediate datum of psychic experience” (5) that has “not yet been submitted to conscious elaboration” (5). It is an “unconscious content”(5) that is only subsequently “altered by becoming conscious and by being perceived, and takes its colour from the individual consciousness in which it happens to appear” (5).Archetypes are expressed in a number of ways: especially in primitive tribal lore or myths (where they are “no longer contents of the unconscious, but have already been changed into conscious formulae taught according to tradition” [643]), fairytales and dreams which are, like myths, a particularly fertile source of study for understanding the archetypes found in the human psyche.Myths, Jung claims, are essentially “psychic phenomena that reveal the nature of the soul” (6): primitive man desperately needed toassimilate all outer sense experience to inner, psychic events. It is notenough for the primitive to see the sun rise and set; this externalobservation must at the same time be a psychic happening: the sun in itscourse must represent the fate of a god or hero who, in the last analysis,dwells nowhere except in the soul of man. All the mythologised processes ofnature, such as summer and winter, the phases of the moon, the rainyseasons, and so forth . . . are the symbolic expressions of the inner,unconscious drama of the psyche which becomes accessible to man’sconsciousness by way of projection--that is, mirrored in the events of nature.(6)In short, myths “refer to something psychic” (644) within human beings, being “involuntary statements about unconscious psychic happenings” (645) on the part ofprimitive man. The psyche contains, Jung asserts, all the “images that have ever given rise to myths” (644): our “unconscious is an acting and suffering subject with an inner drama which primitive man rediscovers, by means of analogy, in the processes of nature”(644).。

数学专业英语翻译2-3

数学专业英语翻译2-3
我们用专用记号来表示x是S的元素或者x属于S。如果x不属于
S,我们记为。
如果方便,我们可以用在大括号中列出元素的方式来表示集合。 例如,小于10的正偶数的集合表示为{2,4,6,8},而所有正偶数 的集合表示为{2,4,6,…}, 三个圆点表示 “等等”。
The dots are used only when the meaning of “and so on” is clear. The method of listing the members of a set within braces is sometimes referred to as the roster notation.
In fact, the empty set contains no elements, whereas the set has one element. Sets consisting of exactly one element are sometimes called one-element sets.
一个给定的集合S可以产生新的集合,这些集合叫做S的子集。 例如,由可被4除尽的并且小于10的正整数所组成的集合是 小于10的所有偶数所组成集合的子集。一般来说,我们有如 下定义。
In all our applications of set theory, we have a fixed set S given in advance, and we are concerned only with subsets of this given set. The underlying set S may vary from one application to another; it will be referred to as the universal set of each particular discourse. (35页第二段)

Documenta Math. 279 Essential Dimension a Functorial Point of View

Documenta Math. 279 Essential Dimension a Functorial Point of View

Abstract. In these notes we develop a systematic study of the essential dimension of functors. This approach is due to A. Merkurjev and can be found in his unpublished notes [12]. The notion of essential dimension was earlier introduced for finite groups by J. Buhler and Z. Reichstein in [3] and for an arbitrary algebraic group over an algebraically closed field by Z. Reichstein in [14]. This is a numerical invariant depending on the group G and the field k . This number is denoted by edk (G). In this paper we insist on the behaviour of the essential dimension under field extension k /k and try to compute edk (G) for any k . This will be done in particular for the group Z/n when n ≤ 5 and for the circle group. Along the way we define the essential dimension of functor with versal pairs and prove that all the different notions of essential dimension agree in the case of algebraic groups. Applications to finite groups are given. Finally we give a proof of the so-called homotopy invariance, that is edk (G) = edk(t) (G), for an algebraic group G defined over an infinite field k . 2000 Mathematics Subject Classification: 11E72, 12G05, 14L15, 14L30. Keywords and Phrases: Essential dimension, algebraic groups, Galois cohomology, cohomological invariants, group scheme actions, torsors. Acknowledgements The authors would warmly thank P. Chabloz, R. Garibaldi, M. Ojanguren and J.-P. Serre for helpful comments and A. Merkurjev for providing us his private notes. The first named author also gratefully acknowledges support from the Swiss National Science Fundation, grant No 2100-065128.01/1.

lecture2

lecture2

MASSACHVSETTS INSTITVTE OF TECHNOLOGYDepartment of Electrical Engineering and Computer Science6.081—Introduction to EECS ISpring Semester,2007Lecture2NotesThe Functional StyleIn the functional programming style,one tries to use a very small set of primitives and means of combination.We’ll see that recursion is a very powerful primitive,which could allow us to dispense with all other looping constructs(while and for)and result in code with a certain beauty. Another element of functional programming style is the idea of functions asfirst-class objects.That means that we can treat functions or procedures in much the same way we treat numbers or strings in our programs:we can pass them as arguments to other procedures and return them as the results from procedures.This will let us capture important common patterns of abstraction and will also be an important element of object-oriented programming.BasicsBut let’s begin at the beginning.The primitive elements in the functional programming style are basic functions.They’re combined via function composition:so,for instance f(x,g(x,2))is a composition of functions.To abstract away from the details of an implementation,we can define a functiondef square(x):return x*xOrdef average(a,b):return(a+b)/2.0And now,having defined those functions,we can use them exactly as if they were primitives.So, for example,we could compute the mean square of two values asaverage(square(7),square(11))Here’s a more interesting example.What if you wanted to compute the square root of a number? Here’s a procedure that will do it:def sqrt(x):def goodEnough(guess):return abs(x-square(guess))<.0001guess=1.0while not goodEnough(guess):guess=average(guess,x/guess)return guess>>>sqrt(2)1.4142156862745097This is an ancient algorithm,due to Hero of Alexandria.1It is an iterative algorithm:it starts with a guess about the square root,and repeatedly asks whether the guess is good enough.It’s good enough if,when we square the guess,we are close to the number,x,that we’re trying to take the square root of.If the guess isn’t good enough,we need to try to improve it.We do that by making a new guess,which is the average of the original guess and x/guess.How do we know that this procedure is ever going tofinish?We have to convince ourself that, eventually,the guess will be good enough.The mathematical details of how to make such an argument are more than we want to get into here,but you should at least convince yourself that the new guess is closer to x than the previous one was.This style of computation is generally quite useful.We’ll see later in this chapter how to capture this common pattern of function definition and re-use it easily.Note also that we’ve defined a function,goodEnough,inside the definition of another function.We did it because it’s a function that we don’t expect to be using elsewhere;it’s just here to help out in sqrt.We’ll study this style of definition in detail in the next chapter.For now,it’s important to notice that the variable x inside goodEnough is the same x that was passed into the sqrt function. RecursionIn the previous example,we defined a sqrt function,and now we can use it without remembering or caring about the details of how it is implemented.We sometimes say that we can treat it as a black box,meaning that it is unnecessary to look inside it to use it.This is crucial for maintaining sanity when building complex pieces of software.An even more interesting case is when we can think of the procedure that we’re in the middle of defining as a black box.That’s what we do when we write a recursive procedure.Recursive procedures are ways of doing a lot of work.The amount of work to be done is controlled by one or more arguments to the procedure.The way we are going to do a lot of work is by calling the procedure,over and over again,from inside itself!The way we make sure this process actually terminates is by being sure that the argument that controls how much work we do gets smaller every time we call the procedure again.The argument might be a number that counts down to zero,or a string or list that gets shorter.There are two parts to writing a recursive procedure:the base case(s)and the recursive case. The base case happens when the thing that’s controlling how much work you do has gotten to its smallest value;usually this is0or the empty string or list,but it can be anything,as long as you know it’s sure to happen.In the base case,you just compute the answer directly(no more calls to the recursive function!)and return it.Otherwise,you’re in the recursive case.In the recursive case, you try to be as lazy as possible,and foist most of the work offon another call to this function,but 1Hero of Alexandria is involved in this course in multiple ways.We’ll be studying feedback later on in the course, and Hero was the inventor of several devices that use feedback,including a self-filling wine goblet.Maybe we’ll assign that as afinal project...with one of its arguments getting smaller.Then,when you get the answer back from the recursive call,you do some additional work and return the result.Here’s an example recursive procedure that returns a string of n1’s:def bunchaOnes(n):if n==0:return""else:return bunchaOnes(n-1)+"1"The thing that’s getting smaller is n.In the base case,we just return the empty string.In the recursive case,we get someone else tofigure out the answer to the question of n-1ones,and then we just do a little additional work(adding one more"1"to the end of the string)and return it. Here’s another example.It’s kind of a crazy way to do multiplication,but logicians love it.def mult(a,b):if a==0:return0else:return b+mult(a-1,b)Trace through an example of what happens when you call mult(3,1),by adding a print statement as thefirst line of the function that prints out its arguments,and seeing what happens.Here’s a more interesting example of recursion.Imagine we wanted to compute the binary repre-sentation of an integer.For example,the binary representation of145is’10010001’.Our procedure will take an integer as input,and return a string of1’s and0’s.def bin(n):if n==0:return’0’elif n==1:return’1’else:return bin(n/2)+bin(n%2)The easy cases(base cases)are when we’re down to a1or a0,in which case the answer is obvious. If we don’t have an easy case,we divide up our problem into two that are easier.So,if we convert n/2into a string of digits,we’ll have all but the last digit.And n%2is1or0depending on whether the number is even or odd,so one more call of bin will return a string of’0’or’1’.The other thing that’s important to remember is that the+operation here is being used for string concatenation, not addition of numbers.How do we know that this procedure is going to terminate?We know that the number it’s operating on is getting smaller and smaller,and will eventually be either a1or a0,which can be handled by the base case.You can also do recursion on lists.Here’s another way to do our old favorite addList:def addList6(list):if list==[]:return0else:return list[0]+addList6(list[1:])There’s a new bit of syntax here:list[1:]gives all but thefirst element of list.Go read the section in the Python documentation on subscripts to see how to do more things with list subscripts. The addList procedure consumed a list and produced a number.The incrementElements1pro-cedure below shows how to use recursion to do something to every element of a list and make a new list containing the results.def incrementElements1(elts):if elts==[]:return[]else:return[elts[0]+1]+incrementElements1(elts[1:])Higher-order functionsWe’ve been talking about the fundamental principles of software engineering as being modularity and abstraction.But another important principle is laziness!Don’t ever do twice what you could do only once.2This standardly means writing a procedure whenever you are going to do the same computation more than once.In this section,we’ll explore ways of using procedures to capture common patterns in ways that might be new to you.What if wefind that we’re often wanting to perform the same procedure twice on an argument? That is,we seem to keep writing square(square(x)).If it were always the same procedure we were applying twice,we could just write a new functiondef squaretwice(x):return square(square(x))But what if it’s different functions?The usual strategies for abstraction seem like they won’t work. In the functional programming style,we treat functions asfirst-class objects.So,for example,we can do:>>>m=square>>>m(7)49And so we can write a procedure that consumes a function as an argument.So,now we could write:2Okay,so the main reason behind this rule isn’t laziness.It’s that if you write the same thing more than once,it will make it harder to write,read,debug,and modify your code reliably.def doTwice(f,x):return f(f(x))This is cool,because we can apply it to any function and argument.So,if we wanted to square twice,we could do:>>>doTwice(square,2)16Another way to do this is:def doTwiceMaker(f):return lambda x:f(f(x))This is a procedure that returns a procedure!The expression lambda y:y+y returns a function of a single variable;in this case that function returns a value that doubles its argument.For reasons that defy explanation,in Python,lambda doesn’t require a return expression,and it can only be used with a single expression;you can’t have if or for inside a lambda expression.If you need to put those in a function that you’re going to return,you have to name that function explicitly.So,for example,you could write it this way:def doTwiceMaker(f):def twoF(x):return f(f(x))return twoFNow,to use doTwiceMaker,we could do:>>>twoSquare=doTwiceMaker(square)>>>twoSquare(2)16>>>doTwiceMaker(square)(2)16A somewhat deeper example of capturing common patterns is sums.Mathematicians have invented a notation for writing sums of series,such as100i=1i or100i=1i2.Here’s one that gives us a way to computeπ:π2/8=100i=1,3,5,...1i2.It would be easy enough to write a procedure to compute any one of them.But even better is to write a higher-order procedure that allows us to compute any of them,simply:def sum(low,high,f,next):s=0x=lowwhile x<high:s=s+f(x)x=next(x)return sThis procedure takes integers specifying the lower and upper bounds of the index of the sum,the function of the index that is supposed to be added up,and a function that computes the next value of the index from the previous one.This last feature actually makes this notation more expressive than the usual mathematical notation,because you can specify any function you’d like for incrementing the index.Now,given that definition for sum,we can do all the special cases we described in mathematical notatation above:def sumint(low,high):return sum(low,high,lambda x:x,lambda x:x+1)def sumsquares(low,high):return sum(low,high,lambda x:x**2,lambda x:x+1)def piSum(low,high):return sum(low,high,lambda x:1.0/x**2,lambda x:x+2)>>>(8*piSum(1,1000000))**0.53.1415920169700393Now,we can use this to build an even cooler higher-order procedure.You’ve seen the idea of approximating an integral using a sum.We can express it easily in Python,using our sum higher-order function,asdef integral(f,a,b):dx=0.0001return dx*sum(a,b,f,lambda(x):x+dx)>>>integral(lambda x:x**3,0,1)0.2500500024999337We’ll do one more example of a very powerful higher-order procedure.Early in this chapter,we saw an iterative procedure for computing square roots.We can see that as a special case of a more general process of computing thefixed-point of a function.Thefixed point of a function f,called f∗,is defined as the value such that f∗=f(f∗).Fixed points can be computed by starting at an initial value x,and iteratively applying f:f∗=f(f(f(f(f(...f(x)))))).A function may have manyfixed points,and which one you’ll get may depend on the x you start with.We can capture this idea in Python with:def closeEnough(g1,g2):return abs(g1-g2)<.0001def fixedPoint(f,guess):next=f(guess)while not closeEnough(guess,next):guess=nextnext=f(next)return nextAnd now,we can use this to write the square root procedure much more compactly:def sqrt(x):return fixedPoint(lambda g:average(g,x/g),1.0)Another way to think of square roots is that to compute the square root of x,we need tofind the y that solves the equationx=y2,or,equivalently,y2−x=0.We can try to solve this equation using Newton’s method forfinding roots,which is another instance of afixed-point computation.3In order tofind a solution to the equation f(x)=0,we canfind a fixed point of a different function,g,whereg(x)=x−f(x)Df(x).Thefirst step toward turning this into Python code is to write a procedure for computing derivatives. We’ll do it by approximation here,though there are algorithms that can compute the derivative of a function analytically,for some kinds of functions(that is,they know things like that the derivative of x3is3x2.)dx=1.e-4def deriv(f):return lambda x:(f(x+dx)-f(x))/dx>>>deriv(square)<function<lambda>at0x00B96AB0>>>>deriv(square)(10)20.000099999890608Now,we can describe Newton’s method as an instance of our fixedPoint higher-order procedure. def newtonsMethod(f,firstGuess):return fixedPoint(lambda x:x-f(x)/deriv(f)(x),firstGuess) 3Actually,this is Raphson’s improvement on Newton’s method,so it’s often called the Newton-Raphson method.How do we know it is going to terminate?The answer is,that we don’t really.There are theorems that state that if the derivative is continuous at the root and if you start with an initial guess that’s close enough,then it will converge to the root,guaranteeing that eventually the guess will be close enough to the desired value.To guard against runawayfixed point calculations,we might put in a maximum number of iterations:def fixedPoint(f,guess,maxIterations=200):next=f(guess)count=0while not closeEnough(guess,next)and count<maxIterations:guess=nextnext=f(next)count=count+1if count==0:print"fixedPoint terminated without desired convergence"return nextThe maxIterations=200is a handy thing in Python:an optional argument.If you supply a third value when you call this procedure,it will be used as the value of maxIterations;otherwise, 200will be used.Now,having defined fixedPoint as a black box and used it to define newtonsMethod,we can use newtonsMethod as a black box and use it to define sqrt:def sqrt(x):return newtonsMethod(lambda y:y**2-x,1.0)So,now,we’ve shown you two different ways to compute square root as an iterative process:directly as afixed point,and indirectly using Newton’s method as a solution to an equation.Is one of these methods better?Not necessarily.They’re roughly equivalent in terms of computational efficiency. But we’ve articulated the ideas in very general terms,which means we’ll be able to re-use them in the future.We’re thinking more efficiently.We’re thinking about these computations in terms of more and more general methods,and we’re expressing these general methods themselves as procedures in our computer language.We’re capturing common patterns as things that we can manipulate and name.The importance of this is that if you can name something,it becomes an idea you can use. You have power over it.You will often hear that there are any ways to compute the same thing. That’s true,but we are emphasizing a different point:There are many ways of expressing the same computation.It’s the ability to choose the appropriate mode of expression that distinguishes the master programmer from the novice.MapWhat if,instead of adding1to every element of a list,you wanted to divide it by2?You could write a special-purpose procedure:def halveElements(list):if list==[]:return[]else:return[list[0]/2.0]+halveElements(list[1:])First,you might wonder why we divided by2.0rather than2.The answer is that Python,by default,given two integers does integer division.So1/2is equal to0.Watch out for this,and if you don’t want integer division,make sure that you divide by afloat.So,back to the main topic:halveElements works justfine,but it’s really only a tiny variation on incrementElements1.We’d rather be lazy,and apply the principles of modularity and abstraction so we don’t have to do the work more than once.So,instead,we write a generic procedure,called map,that will take a procedure as an argument,apply it to every element of a list,and return a list made up of the results of each application of the procedure.def map(func,list):if list==[]:return[]else:return[func(list[0])]+map(func,list[1:])Now,we can use it to define halveElements:def halveElements(list):return map(lambda x:x/2.0,list)Is this better than the previous methods?Yes,if youfind it clearer or more likely to get right. Otherwise,no.List ComprehensionsPython has a very nice built-in facility for doing many of the things you can do with map,called list comprehensions.The general template is[expr for var in list]where var is a single variable,list is an expression that results in a list,and expr is an expression that uses the variable var.The result is a list,of the same length as list,which is obtained by successively letting var take values from list,and then evaluating expr,and collecting the results into a list.Whew.It’s probably easier to understand it by example.>>>[x/2.0for x in[4,5,6]][2.0,2.5,3.0]>>>[y**2+3for y in[1,10,1000]][4,103,1000003]>>>[a[0]for a in[[’Hal’,’Abelson’],[’Jacob’,’White’],\[’Leslie’,’Kaelbling’]]][’Hal’,’Jacob’,’Leslie’]>>>[a[0]+’!’for a in[[’Hal’,’Abelson’],[’Jacob’,’White’],\[’Leslie’,’Kaelbling’]]][’Hal!’,’Jacob!’,’Leslie!’]>>>[div2(x)for x in[4,5,6]][2.0,2.5,3.0]ReduceAnother cool thing you can do with higher-order programming is to use the reduce function. Reduce takes a binary function and a list,and returns a single value,which is obtained by repeatedly applying the binary function to pairs of elements in the list.So,if the list contains elements x1...x n, and the function is f,the result will be f(...,f(f(x1,x2),x3),...,x n).This would let us write another version of addList:def addList7(list):return reduce(add,list)You can also use reduce to concatenate a list of lists.Remembering that the addition operation on two lists concatenates them,we have this possibly suprising result:>>>reduce(add,[[1,2,3],[4,5],[6],[]])[1,2,3,4,5,6]>>>addList7([[1,2,3],[4,5],[6],[]])[1,2,3,4,5,6]。

Abstract

Abstract

Group Signatures:Provable Security,Efficient Constructions and Anonymity from Trapdoor-HoldersAggelos Kiayias∗Computer Science&Engineering University of ConnecticutStorrs,CT,USA aggelos@Moti YungRSA Laboratories,Bedford,MA,USA,andColumbia UniversityNew York,NY,USAmoti@ AbstractTo date,a group signature construction which is efficient,scalable,allows dynamic adversar-ial joins,and proven secure in a formal model has not been suggested.In this work we give the first such construction in the random oracle model.The demonstration of an efficient construction proven secure in a formal model that captures all intuitive security properties of a certain primitive is a basic goal in cryptographic design.To this end we adapt a formal model for group signatures capturing all the basic requirements that have been identified as desirable in the area and we con-struct an efficient scheme and prove its security.Our construction is based on the Strong-RSA assumption(as in the work of Ateniese et al.).In our system,due to the requirements of provable security in a formal model,we give novel constructions as well as innovative extensions of the un-derlying mathematical requirements and properties.Our task,in fact,requires the investigation of some basic number-theoretic techniques for arguing security over the group of quadratic residues modulo a composite when its factorization is known.Along the way we discover that in the basic construction,anonymity does not depend on factoring-based assumptions,which,in turn,allows the natural separation of user join management and anonymity revocation authorities.Anonymity can,in turn,be shown even against an adversary controlling the join manager.∗Research partly supported by NSF Career Award CNS-0447808.1Contents1Introduction3 2Preliminaries6 3DDH over QR(n)with known Factorization7 4PK-Encryption over QR(n)with split n11 5Group Signatures:Model and Definitions16 6Building a Secure Group Signature206.1The Construction (22)6.2Correctness and Security of the Construction (25)7Separability:Anonymity vs.the GM29 A Generalized Forking Lemma3321IntroductionThe notion of group signature is a central anonymity primitive that allows users to have anonymous non-repudiable credentials.The primitive was introduced by Chaum and Van Heyst[13]and it involves a group of users,each holding a membership certificate that allows a user to issue a publicly verifiable signature which hides the identity of the signer within the group.The public-verification procedure employs only the public-key of the group.Furthermore,in a case of any dispute or abuse,it is possible for the group manager(GM)to“open”an individual signature and reveal the identity of its originator.Constructing an efficient and scalable group signature has been a research target for many years since its introduction with quite a slow progress,see e.g.,[14,12,10,11,8,27,3,2,9,24,7].In many of the early works the signature size was related to the group size.Thefirst construction that appeared to provide sufficient heuristic security and efficiency properties and where user joins are performed by a manager that is not trusted to know their keys,was the scalable scheme of Ateniese,Camenisch,Joye and Tsudik[2].It provided constant signature size and resistance to attacks by coalitions of users.This scheme was based on a novel use of the DDH assumption combined with the Strong-RSA assumption over groups of intractable order.Recently,Bellare,Micciancio and Warinschi[4],noticing that the work of[2]claims a collection of individual intuitive security properties,advocated the need for a formal model for arguing the security of group signature.This basic observation is in line with the development of solid security notions in modern cryptography,where a formal model that captures the properties of a primitive is defined and a scheme implementation is formally proven(in some model)to satisfy the security definitions. They also offered a model of a relaxed group signature primitive and a generic construction in that model.Generic constructions are inefficient and many times are simpler than efficient constructions (that are based on specific number theoretic problems).This is due to the fact that generic constructions can employ(as a black box)the available heavy and powerful machinery of general zero-knowledge protocols and general secure multi-party computations.Thus,generic constructions typically serve only as plausibility results for the existence of a cryptographic primitive,cf.[20].The relaxation in the model of[4]amounts to replacing the dynamic adversarial join protocols of[2]where users get individual keys with a trusted party that generates and distributes keys securely(relevant in some settings but perhaps unlikely in others).The above state of affairs([2,4])indicates that there exists a gap in the long progression of research efforts regarding the group signature primitive.This gap is typical in cryptography and is formed by a difference between prohibitively expensive constructions secure in a formal sense on the one hand, and efficient more ad-hoc constructions with intuitive claims on the other.In many cases,as indicated above,it is easier to come up with provably secure generic inefficient constructions or to design efficient ad-hoc constructions.It is often much harder to construct an efficient implementation that is proven secure within a formal model(that convincingly captures all desired intuitive security properties).To summarize the above,it is apparent that the following question remained open by earlier works: Design an efficient group signature with dynamic joins(and no trusted parties)which isprovably secure within a formal model.One of our contributions is solving the above open question by,both,adapting a new model for group signatures(based on the model of traceable signatures of[23]),which follows the paradigm of [22]for the security of signature schemes,as well as providing an efficient provably secure construction (in the sense of the scheme of[2]),and a comprehensive security proof.These contributions reveal many subtleties regarding the exact construction parameters,and in particular issues regarding what intractability assumptions are actually necessary for achieving the3security properties.For example,the anonymity property in our treatment is totally disassociated from any factoring related assumption.We note that,methodologically,in order to reveal such issues,a complete proof is needed following a concrete model.This has not been done in the realm of(efficient) group signatures and concrete proof and model are unique to our work.(We note that even though we try to build our constructions on prior assumptions and systems as much as possible,we need to modify them extensively as required by the constraints imposed by following formal model and arguments).Our investigation also reveals delicate issues regarding the proper formal modeling of the group signature primitive with regards to the work of[4].For example,the need of formalizing security against attacks by any internal or external entity that is active in the scheme(i.e.,no trusted parties). Lack of such treatment,while proper for the non-dynamic setting of[4],is insufficient for proving the security of schemes that follow the line of work of[2](i.e.,where there are no trusted key generators). Our Contributions.Below,we outline what this work achieves in more details.1.M ODELING.To model schemes like the scheme of[2]with dynamic(yet sequential)joins and no trusted parties we adapt the model of[23]which is thefirst formal model in the area of group signing without added trusted parties.In particular,our model has the three types of attacks that involve the GM and the users similarly to[23].We extend the model to allow adversarial opening of signatures(see the next paragraph).All the attacks are modeled as games between the adversaries and a party called the interface.The interface represents the system in a real environment and simulates the behavior of the system(a probabilistic polynomial time simulator)in the security proof.The attacker gets oracle query capabilities to probe the state of the system and is also challenged with an attack task.We note that this follows the basic approach of[22]for modeling security of digital signatures,yet in the complicated system with various parties,a few attacks which can co-exist are possible,and needed to be described as part of the system security.2.A DVERSARIAL O PENING IN E FFICIENT S CHEMES.As mentioned above,our formal model ex-tends the security requirements given by the list of security properties of[2]by allowing the adversary to request that the system opens signatures of its choice.In the work of[2],opening of signatures was implicitly assumed to be an internal operation of the GM.We note that such stronger adversarial capability was put forth for thefirst time in the formal model of[4].For achieving an efficient scheme with adversarial opening we needed to develop novel cryptographic constructs.(Note that adversarial opening can also be applied to strengthen the notion of traceable signatures).3.S TRONGER A NONYMITY P ROPERTY.In the scheme of[2]anonymity is claimed against an ad-versary that is not allowed to corrupt the GM.This is a natural choice since in their scheme the GM holds the trapdoor which provides the opening capability,namely an ElGamal key.The GM also holds the trapdoor that is required to enroll users to the group,namely the factorization of an RSA-modulus. However,pragmatically,there is no need to combine the GM function that manages group members and allow them to join the group(which in real life can be run by e.g.,a commercial company)with the opening authority function(which in real life can be run by a government entity).To manage members the GM who is the“Join Manager”still needs to know the factorization.The opening authority,on the other hand,must know the ElGamal key.This split of functions(separation of authorities)is not a relaxation of group signatures but rather a constraining of the primitive.One should observe that the introduction of such additional functionalities in a primitive potentially leads to new attacks and to a change in the security model.Indeed in the separated authorities setting,we must allow the anonymity adversary to corrupt the GM as well.4.N UMBER-T HEORETIC R ESULTS AND C RYPTOGRAPHIC P RIMITIVES.The last two contributions above required building cryptographic primitives over the set of quadratic residues modulo n=pq that remain secure when the factorization(into two strong primes)p,q is known to the adversary.4To this end,we investigate the Decisional Diffie Hellman Assumption over the quadratic residues modulo n and we prove that it appears to be hard even if the adversary knows the factorization.In particular,we prove that any adversary that knows the factorization p,q and solves the DDH problem over the quadratic residues modulo a composite n=pq,can be turned into a DDH-distinguisher for quadratic-residues modulo a prime number.This result is of independent interest since it suggests that the DDH over QR(n)does not depend to the factorization problem at all.Also,the present work requires a cca2(chosen ciphertext attack)secure encryption mechanism that operates over the quadratic residues modulo n so that(i)encryption should not use the factorization of n,(i.e.,the factorization need not be a part of the public-key),but on the other hand(ii)the factorization is known to the attacker.In this work we derive such a primitive in the form of an ElGamal variant following the general approach of twin encryption,cf.[29,16,19]which is cca2secure under the DDH assumption in the Random Oracle model(note that our efficient group signature requires the random oracle anyway since it is derived from the Fiat-Shamir transform,cf.[18,1]).5.E FFICIENT C ONSTRUCTION.We provide an efficient construction of a group signature that is proven secure in our model.While,we would like to note that our scheme is motivated by[2](and originally we tried to rely on it as much as possible),our scheme,nevertheless,possesses many subtle and important differences.These differences enable the proof of security of our scheme whereas the scheme presented by[2]claims security in heuristic arguments that are not complete and,in particular, cannot be proven secure in our model:There are many reasons for this,e.g.,the scheme of[2]lacks an appropriate cca2secure identity embedding mechanism.Moreover,our efficient construction can support formally(if so desired),the separation of group management and opening capability–some-thing not apparent in the prior scheme of[2].Finally,we note that a syntactically degenerated version of our construction(that retains its efficiency)can be proven secure in the model of[4](and is,in fact, a non-dynamic group signature scheme of the type they have suggested).An interesting technical result with respect to anonymity compared to previous work is highlighted in our investigation.Anonymity was argued in the work of[2]to be based on the decisional Diffie-Hellman Assumption over Quadratic Residues modulo a composite and given that the GM was assumed to be uncorrupted,the key-issuing trapdoor(the factorization of the modulus)was not meant to be known to the adversary.As argued above,we prove that anonymity still holds when the adversary is given the factorization trapdoor.Thus,we disassociate anonymity from the factoring problem.Taking this result independently it also implies the separability between the opening authority and the group manager.In addition,we note that many other technical and subtle details are different in our provable scheme from prior designs.An extended abstract of the present paper appeared in[26].Organization.In section2we present some background,useful tools and the intractability assump-tions.In section3we investigate the behavior of the DDH assumption over the quadratic residues modulo a composite which is multiple of two strong primes,when the factorization is known to the distinguisher.In section4we discuss the kind of cca2security that will be required in our setting (over QR(n)but with known factorization)and we present an efficient and provably secure construc-tion based on the ElGamal twin-encryption paradigm.In section5we present our security model and definitions and in section6we give our construction and its proofs of correctness and security.In sec-tion7we present group signatures with separated authorities(i.e.,the Group Manager(GM)and the Opening Authority(OA)).52PreliminariesN OTATIONS .We will write PPT for probabilistic polynomial-time.If D 1and D 2are two probability distributions defined over the same support that is parameterized by νwe will write dist A (D 1,D 2)to denote the computational distance |Prob x ←D 1[A (x )=1]−Prob x ←D 2[A (x )=1]|.Note thattypically dist A will be expressed as a function of ν.Similarly,we will write dist(D 1,D 2)to denote the maximum distance among all PPT predicates A .Note that the statistical distance of the distribu-tions D 1,D 2,namely 12 x |Prob D 1[x ]−Prob D 2[x ]|might be much larger than the computationaldistance.If n is any number,we will denote by [n ]the set {1,..., n }.If we write a ≡n b for two integers a,b we mean that n divides a −b or equivalently that a,b are the same element within Z n .A function f :I N →R will be called negligible if for all c >0there exists a νc such that for all ν≥νc ,f (ν)<ν−c .In this case we will write f (ν)=negl (ν).PPT will stand for “probabilistic polynomial time.”Throughout the paper (unless noted otherwise)we will work over the group of quadratic residues modulo n ,denoted by QR (n ),where n =pq and p =2p +1and q =2q +1and p,q,p ,q prime numbers.All operations are to be interpreted as modulo n (unless noted otherwise).In general we will use the letter νto denote the security parameter (i.e.,this value will be polynomially related to the sizes of all quantities involved).Next we define the cryptographic intractability assumptions that will be relevant in proving the security properties of our constructions.The first assumption is the Strong-RSA assumption.It is similar in nature to the assumption of the difficulty of finding e -th roots of arbitrary elements in Z ∗n with the difference that the exponent e is not fixed (i.e.,it is not part of the instance).Definition 1Strong-RSA .Given a composite n (as described above),and z ∈QR (n ),it is infeasibleto find u ∈Z ∗n and e >1such that u e =z (mod n ),in time polynomial in ν.Note that the variant we employ above restricts the input z to be a quadratic residue.This variant of Strong-RSA has been discussed before,cf.[15],and by restricting the exponent solutions to be only odd numbers we have that (i)it cannot be easier than the standard unrestricted Strong-RSA problem,but also (ii)it enjoys a random-self reducibility property (see [15]).The second assumption that we employ is the Decisional Diffie-Hellman Assumption (see e.g.,[6]for a survey).We state it below for a general group G and later on in definition 5we will specialize this definition to two specific groups.Decisional Diffie-Hellman Given a description of a cyclic (sub)group G that includes a generator g ,a DDH distinguisher A is a polynomial in νtime PPT that distinguishes the family of triples of the form g x ,g y ,g z from the family of triples of the form g x ,g y ,g xy ,where x,y,z ∈R #G .The DDH assumption suggests that this advantage is a negligible function in ν.Finally,we will employ the discrete-logarithm assumption over the quadratic residues modulo n with known factorization (note that the discrete-logarithm problem is assumed to be hard even when the factorization is known,assuming of course that the factors of n are large primes p,q and where p −1and q −1are non-smooth).Definition 2Range-bounded Discrete-Logarithm with known factorization .Given two values a,b that belong to the set of quadratic residues modulo n with known factorization n =pq ,so that there is an x ∈Λ⊆[p q ]:a x =b ,p,q are safe primes,#Λ=Θ(n )for a given constant >0,it is infeasible to find in time polynomial in νthe integer x so that a x =b (mod n ).63DDH over QR(n)with known FactorizationOur constructions will require the investigation of the number-theoretic results presented in this sec-tion that albeit entirely elementary they have not being observed in the literature to the best of our knowledge.In particular we will show that DDH over QR(n)does not depend on the hardness of factoring.Let n be a composite,n=pq with p=2p +1and q=2q +1(p,q,p ,q primes).Recall that elements of Z∗n are in a1-1correspondence with the set Z∗p×Z∗q.Indeed,given b,c ∈Z∗p×Z∗q, consider the system of equations x≡b(mod p)and x≡c(mod q).Using Chinese remaindering we can construct a solution of the above system since gcd(p,q)=1and the solution will be unique inside Z∗n.Alternatively for any a∈Z∗n we canfind the corresponding pair b,c in Z∗p×Z∗q by computing b=a(mod p)and c=a(mod q)(note that gcd(a,n)=1implies that b≡0(mod p)and c≡0(mod q).The mappingρfrom Z∗p×Z∗q to Z∗n is called the Chinese remaindering mapping. Observe thatρpreserves quadratic residuosity:ρ(QR(p)×QR(q))=QR(n).The following two lemmas will be useful in the sequel.They show(1)how the Chinese remainder-ing mapping behaves when given inputs expressed as powers inside the two groups QR(p)and QR(q), and(2)how discrete-logarithms over QR(n)can be decomposed.Lemma3Let g1,g2be generators of the groups QR(p)and QR(q)respectively,where the groups are defined as above.Then,ifβ=ρ(g x11,g x22),whereρis the Chinese remaindering mapping,it holds thatβ=αq x1+p x2(mod n)whereα=ρ(g(q )−11,g(p )−12)is a generator of QR(n).Proof.First we show thatαis a generator of QR(n).Assume without loss of generality that p >q .Then it holds that q ∈Z∗p and as a result q is an invertible element of Z∗p.It follows that g 1=g(q )−1 1is well defined and is a generator of QR(p)(since g1is a generator of QR(p)).Furthermorep (mod q )∈Z∗qsince it cannot be the case that p ≡q 0as this would mean that either p =q or p isnot prime.It follows that p has an inverse modulo q and as a result g 2=g(p )−12is well defined and isa generator of QR(q)(since g2is a generator of QR(q)).Finally we remark that if g1,g2are randomly selected generators of QR(p),QR(q)respectively,it holds that g 1,g 2are uniformly distributed over all generators.Sinceα=ρ(g 1,g 2),it follows thatα≡p g 1(p)andα≡q g 2(q).It is easy to see thatαmust be a generator unless the order ofαinside Z∗n is divisible by either p or q ;but this can only happen if α≡p1orα≡q1something not possible unless either g 1≡p1or g 2≡q1.This case is excluded given that g 1,g 2are generators of their respective groups QR(p)and QR(q).This completes the argument thatαis a generator of QR(n).Now,sinceβ=ρ(g x11,g x22)it follows thatβ≡g x11(p)andβ≡g x22(q);Using this fact together with the properties ofαwe have:αq x1+p x2≡pαq x1≡p(g(q )−11)q x1≡p g x11αq x1+p x2≡qαp x2≡p(g(p )−12)p x2≡p g x22Due to the uniqueness of the Chinese remaindering solution inside Z∗n it follows thatβ=αq x1+p x2(mod n)is the solution of the system.Lemma4Fix a generatorαof QR(n)and an integer t∈I N.The mappingτα:Z p ×Z q →QR(n),withτα(x1,x2)=α(q )t x1+(p )t x2is a bijection.The inverse mappingτ−1αis defined asτ−1α(αx)=(q )−t x mod p ,(p )−t x mod q .7Proof.Let x1,x2 , x 1,x 2 ∈Z p ×Z q be two tuples withτ(x1,x2)=τ(x 1,x 2).It follows that (q )t x1+(p )t x2≡order(α)(q )t x 1+(p )t x 2;sinceαis a generator,p q |(q )t(x1−x 1)+(p )t(x2−x 2), from which we have p |(q )t(x1−x 1)which implies p |x1−x 1,i.e.,x1=x 1.In a similar fashion we show that x2=x 2.The onto property follows immediately from the number of elements of the domain and the range.Regarding the inverse,define q∗,p∗to be integers in Z p ,Z q respectively,so that q∗(q )t≡p 1and p∗(p )t≡q 1.Moreover let y1=q∗x mod p and y2=p∗x mod q .Letπ1,π2be integers so that q∗x=π1p +y1and p∗x=π2q +y2.We will show that(q )t y1+(p )t y2≡p q x which will complete the proof.In order for p q to divide(q )t y1+(p )t y2−x it should hold that both p ,q divide(q )t y1+(p )t y2−x.Indeed,p divides(q )t y1+(p )t y2−x since(q )t y1+(p )t y2−x=(q )t(q∗x−π1p )+p y2−x≡p (q )t q∗x−x≡p 0.In a similar fashion we show that q divides(q )t y1+(p )t y2−x.From these two facts it follows immediately thatτ(τ−1(αx))=τ( y1,y2 )=αx.Let desc(1ν)be a PPT algorithm,called a group descriptor,that on input1νit outputs a description of a cyclic group G denoted by˜d G.Depending on the group,˜d G may have many entries;in our setting it will include a generator of G,denoted by˜d G.gen and the order of G denoted by˜d G.ord.We require that2ν−1≤˜d G.ord<2ν,i.e.,the order of G is aν-bit number with thefirst bit set.Additionally ˜dGcontains the necessary information that is required to implement multiplication over G.We will be interested in the following two group descriptors:•desc p:Given1νfind aν-bit prime p >2ν−1for which it holds that p=2p +1and p is also prime.Let g be any non-trivial quadratic residue modulo p.We set QR(p)to be the group of quadratic residues modulo p(which in this case is of order p and is generated by g).The descriptor desc p returns g,p,p and it holds that if˜d←desc p(1ν),˜d.ord=p and˜d.gen=g.•desc c:Givenνfind two distinct primes p ,q of bit-lengthν/2so that p q is aν-bit number that is greater than2ν−1and so that there exist primes p,q such that p=2p +1and q= 2q +1.The descriptor desc c returns α,n,p,q,p ,q and it holds that if˜d←desc c(1ν),˜d.ord=p q and˜d.gen=α.The implementation of descc that we will employ is the following:execute desc p twice,to obtain˜d1= g1,p,p and˜d2= g2,q,q with p=q,and set˜d=g,n=pq,p,q,p ,q whereα=ρ(g(q )−11,g(p )−12).For such a description˜d we will call thedescriptions˜d1and˜d2,the prime coordinates of˜d.Note that in the(unlikely)event p=q the procedure is repeated.Definition5A Decisional Diffie Hellman(DDH)distinguisher for a group descriptor desc is a PPT algorithm A with range the set{0,1};the advantage of the distinguisher is defined as follows:Adv DDHdesc,A (ν)=dist A(D descν,R descν)where D descνcontains elements of the form ˜d,g x,g y,g x·y where˜d←desc(1ν),g=˜d.gen andx,y←R[˜d.ord],and R descνcontains elements of the form ˜d,g x,g y,g z where˜d←desc(1ν),g=˜d.gen and x,y,z←R[˜d.ord].Finally we define the overall advantage quantified over all distinguishersas follows:Adv DDHdesc (ν)=max P P T A Adv DDHdesc,A(ν).The main result of this section is the theorem below that shows that the DDH over QR(n)with known factorization is essentially no easier than the DDH over the prime coordinates of QR(n).The proof of the theorem is based on the construction of a mapping of DDH triples drawn from the two prime coordinate groups of QR(n)into DDH triples of QR(n)that is shown in the following lemma:8Lemma6Let˜d←desc c(1ν)with˜d1,˜d2←desc p(1ν/2),its two prime coordinates,such that˜d1= g1,p,p and˜d2= g2,q,q .Consider a mappingρ∗defined as follows:ρ∗( ˜d1,A1,B1,C1 , ˜d2,A2,B2,C2 )=df ˜d,ρ(A1,A2),ρ(B1,B2),ρ((C1)q,(C2)p)⊥so that the⊥output is given if and only if˜d1.ord=˜d2.ord.Then it holds,thatρ∗satisfies the properties(i)dist(ρ∗(D desc pν/2,D desc pν/2),D desc cν)≤3log2·ν2ν/2and(ii)dist(ρ∗(R desc pν/2,R desc pν/2),R desc cν)≤3log2·ν2ν/2.Proof.Observe that if A1=g x11,B1=g y11,C1=g x1y11and A2=g x22,B2=g y22,C2=g x2y21,basedon the properties of the mappingρshown in lemma3it follows thatρ(A1,A2)=αq x1+p x2andρ(B1,B2)=αq y1+p y2ρ((C1)q ,(C2)p )=α(q )2x1y1+(p )2x2y2Now we show that if A1,B1,C1 is a DDH triple from˜d1,and A2,B2,C2 is a DDH triple from˜d2 then A,B,C is a DDH triple from˜d that has˜d1and˜d2as its two prime coordinates:αlogαA logαB=α(q x1+p x2)(q y1+p y2)=α(q )2x1y1+(p )2x2y2+p q (x1y2+x2y1)≡nα(q )2x1y1+(p )2x2y2=CFrom the above and lemma4and standard results on the distribution of primes we can deduce easily thatdist(ρ∗(D desc pν/2,D desc pν/2),D desc cν)≤3log2·ν2ν/2,i.e.,the two distributions are statistically indistinguishable.We conclude that the distribution defined byρ∗when applied to two distributions of DDH triples fromD desc pν/2over the respective groups is statistically close to the distribution D desc cν.This completes theproof for property(i)of the lemma.Regarding property(ii),observe that if A1=g x11,B1=g y11,C1= g z11and A2=g x22,B2=g y22,C2=g z21,based on the properties of the mappingρshown in lemma3it follows thatρ(A1,A2)=αq x1+p x2andρ(B1,B2)=αq y1+p y2ρ((C1)q ,(C2)p )=α(q )2z1+(p )2z2and thus,using lemma4,dist(ρ∗(R desc pν/2,R desc pν/2),R desc cν)≤3log2·ν2ν/2,i.e.,the two distributions arestatistically indistinguishable.The lemma is used for the proof of the theorem below:Theorem7Adv DDHdesc c (ν)≤2Adv DDHdesc p(ν/2)+(6log2·ν)/2ν/2.Proof.Let A be any DDH-distinguisher for desc ing property(i)of lemma6,we have thatdist A(D desc cν,ρ∗(D desc pν/2,D desc pν/2))≤3log2·ν2ν/2and given thatdist A(ρ∗(D desc pν/2,D desc pν/2),ρ∗(R desc pν/2,D desc pν/2))≤≤Adv DDHdesc p(ν/2)9we obtain(Fact1)dist A(D desc cν,ρ∗(R desc pν/2,D desc pν/2))≤≤Adv DDHdesc p (ν/2)+3log2·ν2Now using property(ii)of lemma6we have thatdist A(R desc cν,ρ∗(R desc pν/2,R desc pν/2))≤3log2·ν2ν/2and given thatdist A(ρ∗(R desc pν/2,D desc pν/2),ρ∗(R desc pν/2,R desc pν/2))≤≤Adv DDHdesc p(ν/2) we obtain(Fact2)dist A(ρ∗(R desc pν/2,D desc pν/2),R desc cν)==Adv DDHdesc p (ν/2)+3log2·ν2ν/2Finally by applying the triangle inequality to facts1and2above,we obtain:Adv DDHA,desc c (ν)=dist A(D desc cν,R desc cν)≤≤2·Adv DDHdesc p (ν/2)+6log2·ν2ν/2Since the above holds for an arbitrary choice of A the statement of the theorem follows.We proceed to state explicitly the two variants of the DDH assumption:Definition8The following are two Decisional Diffie Hellman Assumptions:•The DDH assumption over quadratic residues modulo a safe prime(DDH-Prime)asserts that:Adv DDHdesc p (ν)=negl(ν).•The DDH assumption over quadratic residues modulo a safe composite with known Factorization (DDH-Comp-KF)asserts that:Adv DDHdesc c(ν)=negl(ν).We conclude the section with the following theorem(where=⇒stands for logical implication): Theorem9DDH-Prime=⇒DDH-Comp-KF.Proof.An immediate corollary of theorem7and the easy fact that if f1,f2are negligible functions in νthen2·f1(ν)+f2(ν)is also a negligible function.10。

几个逻辑相关的英语单词

几个逻辑相关的英语单词逻辑 logic数理逻辑 mathematical logic模型论 model theory集合论 set theory递归论 recursion theory证明论 proof theory非标准分析 nonstandard analysis反推数学 reverse mathematics元数学 metamathematics二阶算术的子系统 subsystems of the second-order arithmetic 直觉主义 intuitionism构造性数学 constructive mathematics语言 language元语言 metalanguage元定理 metatheorem公理 axiom定理 theorem命题 proposition命题演算 propositional calculus 谓词演算 predicate calculus合取 conjunction析取 disjunction非,否定 negation量词 quantifier全称量词 universal quantifier 存在量词 existential quantifier 关系 relation函数 function常量 constant变元,变量 variable项 term公式 formula原子公式 atomic formula句子,命题 sentence永真命题 tautology前束标准型 prenex normal form 理论 theory可满足的 satisfiable和谐性,相容性 consistency句法 syntax语义 semantics可靠性定理 soundness theorem完备性定理 completeness theorem 紧致性定理 compactness theorem可公理化 axiomatizable有限可公理化 finitely axiomatizable 同构 isomorphism同态 homomorphism初等等价 elementary equivalent 初等嵌入 elementary embedding 初等子模型 elementary submodel 初等扩张 elementary extension图象 diagram正图象 positive diagram初等图象 elementary diagram模型 model可数模型 countable model不可数模型 uncountable model原子模型 atomic model素模型 prime model齐性模型 homogeneous model万有模型 universal model饱和模型 saturated model特殊模型 special model递归饱和模型 recursively saturated model 布尔值模型 boolean-valued model格值模型 lattice-valued model超滤 ultrafilter超积 ultraproduct超幂 ultrapower模型完备 model complete子模型完备 submodel complete量词消去 quantifier elimination稳定性理论 stable theory集,集合 set子集 subset幂集 power set空集 empty set有限集 finite set无限集 infinite set可数集 countable set不可数集 uncountable set 有限集 finite set无限集 infinite set序数 ordinal极限序数 limit ordinal后继序数 successor ordinal 基数 cardinal大基数 large cardinal可测基数 measurable cardinal正则基数 regular cardinal奇异基数 singular cardinal不可达基数 inaccessible力迫法 forcing连续统假设 Continuum Hypothesis 选择公理 Axiom of Choice决定性公理 Axiom of Determinacy 归纳法 induction超限归纳法 transfinite induction 超限递归 transfinite recursion递归 recursion原始递归 primitive recursive递归函数 recursive function递归可枚举 recursively enumerable递归可判定 recursively decidable 递归不可分 recursively inseparable 递归集 recursive set算术集 arithmetical set解析集 analytic set单纯集 simple set创造集 creative set多一归约 many-one reducible一一归约 one-one reducible图灵归约 Turing reducible不可解度 degree of unsolvability 图灵度 Turing degree一阶逻辑 first-order logic二阶逻辑 second-order logic高阶逻辑 higher-order logic非古典逻辑 non-classical logic 无穷逻辑 infinitary logic古典逻辑 classical logic直觉主义逻辑 intuitionistic logic 模态逻辑 modal logic多值逻辑 many-valued logic。

1普通语言学


Visual symbols: gestures,
signal flags, and traffic lights;
Auditory symbols: drum beats, bugle calls and
whistle but not vocal (they are not produced by speech organs).
1.2 Definition of language
a
system of arbitrary vocal symbols
used for human communication.
System :language consists of a set of
rules. Elements are arranged according to certain rules; they cannot be combined at will. ? He eats a table arbitrary no intrinsic connection b/w the word pen and the thing we use to write with. A rose by any name would smell as sweet. vocal symbol Words are symbols, because they have concrete signs-sounds, which can represent a certain meaning. Language is vocal because the primary medium is sound. human Language is human-specific.
我在吃饭。 在我吃饭?

Overlap


¯ and ψ are Dirac fermions and the mass matrix M is infinite. It has a single zero ψ mode but its adjoint has no zero modes. As long as MM† > 0 this setup is stable under small deformations of the mass matrix implying that radiative corrections will not wash the zero mode away. Kaplan’s domain wall suggests the following realization: M = −∂s − f (s), (2)
where s ∈ (−∞, ∞) and f is fixed at −Λ′ for negative s and at Λ for positive s (Λ′ , Λ > 0. There is no mathematical difficulty associated with the discontinuity at s = 0. The infinite path integral over the fermions is easily “done”: on the positive and negative segments of the real line respectively one has propagation with an s-independent “Hamiltonian”. The infinite extent means that at s = 0 the path integrals produce the overlap (inner product) between the two ground states of the many fermion systems corresponding to each side of the origin in s. The infinite extent also means infinite exponents linearly proportional to the respective energies - these factors are subtracted. One is left 2

机械CADChapter 4 Modelling of Solids(2)


4.4.2 Boolean Operators
A solid can be considered as the result of applying Boolean operators to a set of instantiated and transformed CSG primitives. However, simple set operators may create problems as discussed in regularized Boolean operators. Let us just use set operations on following example.
A CSG tree is defined as an inverted ordered binary tree whose leafs are primitives and interior nodes are regularized set operations. The procedure to build the bracket with Boolean operators can be written as: union(diff(trans(block 1), trans(cylinder)), trans(block2)) , where union(A,B) and diff(A,B) are the union and difference of A and B, and trans( ) indicates appropriate transformations This procedure can be converted to a CSG tree of the design, as shown in Fig. 4. 16.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JOURNAL OF FORMALIZED MATHEMATICSV olume13,Released2001,Published2003Inst.of Computer Science,Univ.of BiałystokThe Set of Primitive Recursive Functions1Grzegorz Bancerek University of Białystok Shinshu University,NaganoPiotr Rudnicki University of Alberta EdmontonSummary.We follow[31]in defining the set of primitive recursive functions.The important helper notion is the homogeneous function fromfinite sequences of natural numbersinto natural numbers where homogeneous means that all the sequences in the domain areof the same length.The set of all such functions is then used to define the notion of a setclosed under composition of functions and under primitive recursion.We call a set primitivelyrecursively closed iff it contains the initial functions(nullary constant function returning0,unary successor and projection functions for all arities)and is closed under composition andprimitive recursion.The set of primitive recursive functions is then defined as the smallest setof functions which is primitive recursively closed.We show that this set can be obtained byprimitive recursive approximation.Wefinish with showing that some simple and well knownfunctions are primitive recursive.MML Identifier:COMPUT_1.WWW:/JFM/Vol13/comput_1.htmlThe articles[25],[11],[30],[27],[1],[32],[33],[8],[6],[12],[24],[16],[26],[9],[13],[3],[22], [4],[21],[29],[10],[19],[15],[18],[5],[7],[14],[28],[20],[17],[23],and[2]provide the notation and terminology for this paper.1.P RELIMINARIESFor simplicity,we adopt the following rules:i,j,k,c,m,n denote natural numbers,a,x,y,z,X,Y denote sets,D,E denote non empty sets,R denotes a binary relation,f,g denote functions,and p, q denotefinite sequences.Let X be a non empty set,let n be a natural number,let p be an element of X n,let i be a natural number,and let x be an element of X.Then p+·(i,x)is an element of X n.Let n be a natural number,let t be an element of N n,and let i be a natural number.Then t(i)is an element of N.The following propositions are true:(3)1 x,y +·(1,z)= z,y and x,y +·(2,z)= x,z .(5)2If f+·(a,x)=g+·(a,y),then f+·(a,z)=g+·(a,z).(6)(p+·(i,x)) i=p i.(7)If p+·(i,a)=q+·(i,a),then p i=q i.1This work has been supported by NSERC Grant OGP9207,NATO CRG951368and TYPES grantIST-1999-29001.1The propositions(1)and(2)have been removed.2The proposition(4)has been removed.1c Association of Mizar Users(8)X0={/0}.(9)If n=0,then/0n=/0.(10)If/0∈rng f,then∏∗f=/0.(11)If rng f=D,then rng∏∗ f =D1.(12)If1≤i and i≤n+1,then for every element p of D n+1holds p i∈D n.(13)For every set X and for every set Y offinite sequences of X holds Y⊆X∗.2.S ETS OF C OMPATIBLE F UNCTIONSLet X be a set.We say that X is compatible if and only if:(Def.1)For all functions f,g such that f∈X and g∈X holds f≈g.Let us observe that there exists a set which is non empty,functional,and compatible.X is function-like and relation-like.Let X be a functional compatible set.One can check thatNext we state the propositionX is a function.(14)X is functional and compatible iffLet X,Y be sets.Note that there exists a non empty set of partial functions from X to Y which is non empty and compatible.One can prove the following propositions:X= {dom f:f ranges(15)For every non empty functional compatible set X holds domover elements of X}.X(16)Let X be a functional compatible set and f be a function.If f∈X,then dom f⊆domX)(x)=f(x).and for every set x such that x∈dom f holds(X= {rng f:f ranges over(17)For every non empty functional compatible set X holds rngelements of X}.Let us consider X,Y.Note that every non empty set of partial functions from X to Y is functional.The following proposition is trueP is a partial(18)Let P be a compatible non empty set of partial functions from X to Y.Thenfunction from X to Y.3.H OMOGENEOUS R ELATIONSLet f be a binary relation.We introduce f is into N as a synonym of f is natural-yielding.Let f be a binary relation.We say that f is from tuples on N if and only if:(Def.2)dom f⊆N∗.Let us note that there exists a function which is from tuples on N and into N.Let f be a binary relation from tuples on N.We say that f is length total if and only if: (Def.3)For allfinite sequences x,y of elements of N such that len x=len y and x∈dom f holds y∈dom f.Let f be a binary relation.We say that f is homogeneous if and only if:(Def.4)For allfinite sequences x,y such that x∈dom f and y∈dom f holds len x=len y.One can prove the following proposition(19)If dom R⊆D n,then R is homogeneous.One can check that/0is homogeneous.Let p be afinite sequence and let x be a set.Observe that{p}−→x is non empty and homoge-neous.One can verify that there exists a function which is non empty and homogeneous.Let f be a homogeneous function and let g be a function.One can verify that g·f is homoge-neous.Let X,Y be sets.One can check that there exists a partial function from X∗to Y which is homogeneous.Let X,Y be non empty sets.One can check that there exists a partial function from X∗to Y which is non empty and homogeneous.Let X be a non empty set.Observe that there exists a partial function from X∗to X which is non empty,homogeneous,and quasi total.Let us observe that there exists a function from tuples on N which is non empty,homogeneous, into N,and length total.Let us mention that every partial function from N∗to N is into N and from tuples on N.Let us observe that every partial function from N∗to N which is quasi total is also length total.Next we state the proposition(20)Every length total function from tuples on N into N is a quasi total partial function fromN∗to N.Let f be a homogeneous binary relation.The functor arity f yields a natural number and is defined by:(Def.5)(i)For everyfinite sequence x such that x∈dom f holds arity f=len x if there exists a finite sequence x such that x∈dom f,(ii)arity f=0,otherwise.Next we state several propositions:(21)arity/0=0.(22)For every homogeneous binary relation f such that dom f={/0}holds arity f=0.(23)For every homogeneous partial function f from X∗to Y holds dom f⊆X arity f.(24)For every homogeneous function f from tuples on N holds dom f⊆N arity f.(25)Let f be a homogeneous partial function from X∗to X.Then f is quasi total and non emptyif and only if dom f=X arity f.(26)Let f be a homogeneous function into N and from tuples on N.Then f is length total andnon empty if and only if dom f=N arity f.(27)For every non empty homogeneous partial function f from D∗to D and for every n suchthat dom f⊆D n holds arity f=n.(28)For every homogeneous partial function f from D∗to D and for every n such that dom f=D n holds arity f=n.Let R be a binary relation.We say that R has the same arity if and only if the condition(Def.6) is satisfied.(Def.6)Let f,g be functions such that f∈rng R and g∈rng R.Then(i)if f is empty,then g is empty or dom g={/0},and(ii)if f is non empty and g is non empty,then there exists a natural number n and there existsa non empty set X such that dom f⊆X n and dom g⊆X n.Let us mention that/0has the same arity.Observe that there exists afinite sequence which has the same arity.Let X be a set.One can check that there exists afinite sequence of elements of X which has the same arity and there exists an element of X∗which has the same arity.Let F be a binary relation with the same arity.The functor arity F yields a natural number and is defined by:(Def.7)(i)For every homogeneous function f such that f∈rng F holds arity F=arity f if there exists a homogeneous function f such that f∈rng F,(ii)arity F=0,otherwise.The following proposition is true(29)For everyfinite sequence F with the same arity such that len F=0holds arity F=0.Let X be a set.The functor HFuncs X yields a non empty set of partial functions from X∗to X and is defined as follows:(Def.8)HFuncs X={f;f ranges over elements of X∗˙→X:f is homogeneous}.We now state the proposition(30)/0∈HFuncs X.Let X be a non empty set.Observe that there exists an element of HFuncs X which is non empty, homogeneous,and quasi total.Let X be a set.Observe that every element of HFuncs X is homogeneous.Let X be a non empty set and let S be a non empty subset of HFuncs X.Note that every element of S is homogeneous.The following propositions are true:(31)Every homogeneous function into N and from tuples on N is an element of HFuncs N.(32)Every length total homogeneous function from tuples on N into N is a quasi total elementof HFuncs N.(33)Let X be a non empty set and F be a binary relation such that rng F⊆HFuncs X and for allhomogeneous functions f,g such that f∈rng F and g∈rng F holds arity f=arity g.Then F has the same arity.Let n,m be natural numbers.The functor const n(m)yielding a homogeneous function into N and from tuples on N is defined by:(Def.9)const n(m)=N n−→m.One can prove the following proposition(34)const n(m)∈HFuncs N.Let n,m be natural numbers.Note that const n(m)is length total and non empty.One can prove the following propositions:(35)arityconst n(m)=n.(36)For every element t of N n holds(const n(m))(t)=m.Let n,i be natural numbers.The functor succ n(i)yields a homogeneous function into N and from tuples on N and is defined as follows:(Def.10)domsucc n(i)=N n and for every element p of N n holds(succ n(i))(p)=p i+1.The following proposition is true(37)succ n(i)∈HFuncs N.Let n,i be natural numbers.One can check that succ n(i)is length total and non empty.The following proposition is true(38)aritysucc n(i)=n.Let n,i be natural numbers.The functor proj n(i)yields a homogeneous function into N and from tuples on N and is defined as follows:(Def.11)proj n(i)=proj(n→N,i).We now state two propositions:(39)proj n(i)∈HFuncs N.(40)domproj n(i)=N n and if1≤i and i≤n,then rngproj n(i)=N.Let n,i be natural numbers.Observe that proj n(i)is length total and non empty.One can prove the following two propositions:(41)arityproj n(i)=n.(42)For every element t of N n holds(proj n(i))(t)=t(i).Let X be a set.One can check that HFuncs X is functional.Next we state three propositions:(43)Let F be a function from D into HFuncs E.Suppose rng F is compatible and for everyelement x of D holds dom F(x)⊆E n.Then there exists an element f of HFuncs E such thatF and dom f⊆E n.f=(44)For every function F from N into HFuncs D such that for every i holds F(i)⊆F(i+1)F∈HFuncs D.holds(45)For everyfinite sequence F of elements of HFuncs D with the same arity holds dom∏∗F⊆D arity F.Let X be a non empty set and let F be afinite sequence of elements of HFuncs X with the same arity.Observe that∏∗F is homogeneous.Next we state the proposition(46)Let f be an element of HFuncs D and F be afinite sequence of elements of HFuncs D withthe same arity.Then dom(f·∏∗F)⊆D arity F and rng(f·∏∗F)⊆D and f·∏∗F∈HFuncs D.Let X,Y be non empty sets,let P be a non empty set of partial functions from X to Y,and let S be a non empty subset of P.We see that the element of S is an element of P.Let f be a homogeneous function from tuples on N.Observe that f has the same arity.We now state several propositions:(47)For every homogeneous function f into N and from tuples on N holds arity f =arity f.(48)Let f,g be non empty elements of HFuncs N and F be afinite sequence of elements ofHFuncs N with the same arity.If g=f·∏∗F,then arity g=arity F.(49)Let f be a non empty quasi total element of HFuncs D and F be afinite sequence of ele-ments of HFuncs D with the same arity.Suppose arity f=len F and F is non empty and for every element h of HFuncs D such that h∈rng F holds h is quasi total and non empty.Then f·∏∗F is a non empty quasi total element of HFuncs D and dom(f·∏∗F)=D arity F.(50)Let f be a quasi total element of HFuncs D and F be afinite sequence of elements ofHFuncs D with the same arity.Suppose arity f=len F and for every element h of HFuncs D such that h∈rng F holds h is quasi total.Then f·∏∗F is a quasi total element of HFuncs D.(51)For all non empty quasi total elements f,g of HFuncs D such that arity f=0and arity g=0and f(/0)=g(/0)holds f=g.(52)Let f,g be non empty length total homogeneous functions from tuples on N into N.Ifarity f=0and arity g=0and f(/0)=g(/0),then f=g.4.P RIMITIVE R ECURSIVENESSWe adopt the following convention:f1,f2denote non empty homogeneous functions into N and from tuples on N,e1,e2denote homogeneous functions into N and from tuples on N,and p denotes an element of N arity f1+1.Let g,f1,f2be homogeneous functions into N and from tuples on N and let i be a natural number.We say that g is primitive recursively expressed by f1,f2and i if and only if the condition (Def.12)is satisfied.(Def.12)There exists a natural number n such that(i)dom g⊆N n,(ii)i≥1,(iii)i≤n,(iv)arity f1+1=n,(v)n+1=arity f2,and(vi)for everyfinite sequence p of elements of N such that len p=n holds p+·(i,0)∈dom g iff p i∈dom f1and if p+·(i,0)∈dom g,then g(p+·(i,0))=f1(p i)and for every natural number n holds p+·(i,n+1)∈dom g iff p+·(i,n)∈dom g and(p+·(i,n)) g(p+·(i,n)) ∈dom f2and if p+·(i,n+1)∈dom g,then g(p+·(i,n+1))=f2((p+·(i,n)) g(p+·(i,n)) ).Let f1,f2be homogeneous functions into N and from tuples on N,let i be a natural number, and let p be afinite sequence of elements of N.The functor primrec(f1,f2,i,p)yields an element of HFuncs N and is defined by the condition(Def.13).(Def.13)There exists a function F from N into HFuncs N such that(i)primrec(f1,f2,i,p)=F(p i),(ii)if i∈dom p and p i∈dom f1,then F(0)={p+·(i,0)}−→f1(p i),(iii)if i/∈dom p or p i/∈dom f1,then F(0)=/0,and(iv)for every natural number m holds if i∈dom p and p+·(i,m)∈dom F(m)and(p+·(i,m)) F(m)(p+·(i,m)) ∈dom f2,then F(m+1)=F(m)+·({p+·(i,m+1)}−→f2((p+·(i,m)) F(m)(p+·(i,m)) ))and if i/∈dom p or p+·(i,m)/∈dom F(m)or (p+·(i,m)) F(m)(p+·(i,m)) /∈dom f2,then F(m+1)=F(m).The following propositions are true:(53)For allfinite sequences p,q of elements of N such that q∈domprimrec(e1,e2,i,p)thereexists k such that q=p+·(i,k).(54)For everyfinite sequence p of elements of N such that i/∈dom p holds primrec(e1,e2,i,p)=/0.(55)For allfinite sequences p,q of elements of N holds primrec(e1,e2,i,p)≈primrec(e1,e2,i,q).(56)For everyfinite sequence p of elements of N holds domprimrec(e1,e2,i,p)⊆N1+arity e1.(57)For everyfinite sequence p of elements of N such that e1is empty holds primrec(e1,e2,i,p)is empty.(58)If f1is length total and f2is length total and arity f1+2=arity f2and1≤i and i≤1+arity f1,then p∈domprimrec(f1,f2,i,p).Let f1,f2be homogeneous functions into N and from tuples on N and let i be a natural number.The functor primrec(f1,f2,i)yielding an element of HFuncs N is defined as follows:G (Def.14)There exists a function G from N arity f1+1into HFuncs N such that primrec(f1,f2,i)= and for every element p of N arity f1+1holds G(p)=primrec(f1,f2,i,p).We now state a number of propositions:(59)If e1is empty,then primrec(e1,e2,i)is empty.(60)domprimrec(f1,f2,i)⊆N arity f1+1.(61)If f1is length total and f2is length total and arity f1+2=arity f2and1≤i and i≤1+arity f1,then domprimrec(f1,f2,i)=N arity f1+1and arityprimrec(f1,f2,i)=arity f1+1.(62)If i∈dom p,then p+·(i,0)∈domprimrec(f1,f2,i)iff p i∈dom f1.(63)If i∈dom p and p+·(i,0)∈domprimrec(f1,f2,i),then(primrec(f1,f2,i))(p+·(i,0))=f1(p i).(64)If i∈dom p and f1is length total,then(primrec(f1,f2,i))(p+·(i,0))=f1(p i).(65)If i∈dom p,then p+·(i,m+1)∈domprimrec(f1,f2,i)iff p+·(i,m)∈domprimrec(f1,f2,i)and(p+·(i,m)) (primrec(f1,f2,i))(p+·(i,m)) ∈dom f2.(66)If i∈dom p and p+·(i,m+1)∈domprimrec(f1,f2,i),then(primrec(f1,f2,i))(p+·(i,m+1))=f2((p+·(i,m)) (primrec(f1,f2,i))(p+·(i,m)) ).(67)Suppose f1is length total and f2is length total and arity f1+2=arity f2and1≤i and i≤1+arity f1.Then(primrec(f1,f2,i))(p+·(i,m+1))=f2((p+·(i,m))(primrec(f1,f2,i))(p+·(i,m)) ).(68)If arity f1+2=arity f2and1≤i and i≤arity f1+1,then primrec(f1,f2,i)is primitiverecursively expressed by f1,f2and i.(69)Suppose1≤i and i≤arity f1+1.Let g be an element of HFuncs N.If g is primitiverecursively expressed by f1,f2and i,then g=primrec(f1,f2,i).5.T HE S ET OF P RIMITIVE R ECURSIVE F UNCTIONSLet X be a set.We say that X is composition closed if and only if the condition(Def.15)is satisfied.(Def.15)Let f be an element of HFuncs N and F be afinite sequence of elements of HFuncs N with the same arity.If f∈X and arity f=len F and rng F⊆X,then f·∏∗F∈X.We say that X is primitive recursion closed if and only if the condition(Def.16)is satisfied.(Def.16)Let g,f1,f2be elements of HFuncs N and i be a natural number.Suppose g is primitive recursively expressed by f1,f2and i and f1∈X and f2∈X.Then g∈X.Let X be a set.We say that X is primitive recursively closed if and only if the conditions(Def.17) are satisfied.(Def.17)(i)const0(0)∈X,(ii)succ1(1)∈X,(iii)for all natural numbers n,i such that1≤i and i≤n holds proj n(i)∈X,and(iv)X is composition closed and primitive recursion closed.Next we state the proposition(70)HFuncs N is primitive recursively closed.Let us note that there exists a subset of HFuncs N which is primitive recursively closed and non empty.In the sequel P is a primitive recursively closed non empty subset of HFuncs N .The following propositions are true:(71)For every element g of HFuncs N such that e 1=/0and g is primitive recursively expressed by e 1,e 2and i holds g =/0.(72)Let g be an element of HFuncs N ,f 1,f 2be quasi total elements of HFuncs N ,and i be anatural number.Suppose g is primitive recursively expressed by f 1,f 2and i .Then g is quasi total and if f 1is non empty,then g is non empty.(73)const n (c )∈P .(74)If 1≤i and i ≤n ,then succ n (i )∈P .(75)/0∈P .(76)Let f be an element of P and F be a finite sequence of elements of P with the same arity.If arity f =len F ,then f ·∏∗F ∈P .(77)Let f 1,f 2be elements of P .Suppose arity f 1+2=arity f 2.Let i be a natural number.If1≤i and i ≤arity f 1+1,then primrec (f 1,f 2,i )∈P .The subset PrimRec of HFuncs N is defined as follows:(Def.18)PrimRec ={R ;R ranges over elements of 2HFuncs N :R is primitive recursively closed }.One can prove the following proposition(78)For every subset X of HFuncs N such that X is primitive recursively closed holds PrimRec ⊆X .One can verify that PrimRec is non empty and primitive recursively closed.Let us observe that every element of PrimRec is homogeneous.Let x be a set.We say that x is primitive recursive if and only if:(Def.19)x ∈PrimRec .Let us observe that every set which is primitive recursive is also relation-like and function-like.Let us observe that every binary relation which is primitive recursive is also homogeneous,into N ,and from tuples on N .Let us note that every element of PrimRec is primitive recursive.One can check that there exists a function which is primitive recursive and there exists an ele-ment of HFuncs N which is primitive recursive.The initial functions constitute a subset of HFuncs N defined by:(Def.20)The initial functions ={const 0(0),succ 1(1)}∪{proj n (i );n ranges over natural numbers,iranges over natural numbers:1≤i ∧i ≤n }.Let Q be a subset of HFuncs N .The primitive recursion closure of Q is a subset of HFuncs N and is defined by the condition (Def.21).(Def.21)The primitive recursion closure of Q =Q ∪{g ;g ranges over elements of HFuncs N : f 1,f 2:element of HFuncs N i :natural number (f 1∈Q ∧f 2∈Q ∧g is primitive recursively ex-pressed by f 1,f 2and i )}.The composition closure of Q is a subset of HFuncs N and is defined by the condition (Def.22).(Def.22)The composition closure of Q=Q∪{f·∏∗F;f ranges over elements of HFuncs N,F ranges over elements of(HFuncs N)∗with the same arity:f∈Q∧arity f=len F∧rng F⊆Q}.The function PrimRec≈from N into2HFuncs N is defined by the conditions(Def.23).(Def.23)(i)PrimRec≈(0)=the initial functions,and(ii)for every natural number m holds PrimRec≈(m+1)=(the primitive recursion closure of PrimRec≈(m))∪(the composition closure of PrimRec≈(m)).Next we state four propositions:(79)If m≤n,then PrimRec≈(m)⊆PrimRec≈(n).(PrimRec≈)is primitive recursively closed.(80)(PrimRec≈).(81)PrimRec=(82)For every element f of HFuncs N such that f∈PrimRec≈(m)holds f is quasi total.One can verify that every element of PrimRec is quasi total and homogeneous.One can verify that every element of HFuncs N which is primitive recursive is also quasi total.One can verify that every function from tuples on N which is primitive recursive is also length total and there exists an element of PrimRec which is non empty.6.E XAMPLESLet f be a homogeneous binary relation.We say that f is nullary if and only if:(Def.24)arity f=0.We say that f is unary if and only if:(Def.25)arity f=1.We say that f is binary if and only if:(Def.26)arity f=2.We say that f is ternary if and only if:(Def.27)arity f=3.One can verify the following observations:∗every homogeneous function which is unary is also non empty,∗every homogeneous function which is binary is also non empty,and∗every homogeneous function which is ternary is also non empty.One can verify the following observations:∗proj1(1)is primitive recursive,∗proj2(1)is primitive recursive,∗proj2(2)is primitive recursive,∗succ1(1)is primitive recursive,and∗succ3(3)is primitive recursive.Let i be a natural number.One can verify the following observations:∗const0(i)is nullary,∗const1(i)is unary,∗const2(i)is binary,∗const3(i)is ternary,∗proj1(i)is unary,∗proj2(i)is binary,∗proj3(i)is ternary,∗succ1(i)is unary,∗succ2(i)is binary,and∗succ3(i)is ternary.Let j be a natural number.Note that const i(j)is primitive recursive.One can check the following observations:∗there exists a homogeneous function which is nullary,primitive recursive,and non empty,∗there exists a homogeneous function which is unary and primitive recursive,∗there exists a homogeneous function which is binary and primitive recursive,and∗there exists a homogeneous function which is ternary and primitive recursive.One can verify the following observations:∗there exists a homogeneous function from tuples on N which is non empty,nullary,length total,and into N,∗there exists a homogeneous function from tuples on N which is non empty,unary,length total,and into N,∗there exists a homogeneous function from tuples on N which is non empty,binary,length total,and into N,and∗there exists a homogeneous function from tuples on N which is non empty,ternary,length total,and into N.Let f be a nullary non empty primitive recursive function and let g be a binary primitive recursive function.Observe that primrec(f,g,1)is primitive recursive and unary.Let f be a unary primitive recursive function and let g be a ternary primitive recursive function. One can check that primrec(f,g,1)is primitive recursive and binary and primrec(f,g,2)is primitive recursive and binary.We now state four propositions:(83)Let f1be a unary length total homogeneous function from tuples on N into N and f2be anon empty homogeneous function into N and from tuples on N.Then(primrec(f1,f2,2))( i,0 )=f1( i ).(84)If f1is length total and arity f1=0,then(primrec(f1,f2,1))( 0 )=f1(/0).(85)Let f1be a unary length total homogeneous function from tuples on N into N andf2be a ternary length total homogeneous function from tuples on N into N.Then (primrec(f1,f2,2))( i,j+1 )=f2( i,j,(primrec(f1,f2,2))( i,j ) ).(86)If f1is length total and f2is length total and arity f1=0and arity f2=2,then(primrec(f1,f2,1))( i+1 )=f2( i,(primrec(f1,f2,1))( i ) ).Let g be a function.The functor 1,?,2 g yields a function and is defined as follows:(Def.28) 1,?,2 g=g·∏∗ proj3(1),proj3(3) .Let g be a function into N and from tuples on N.One can check that 1,?,2 g is into N and from tuples on N.Let g be a homogeneous function.Note that 1,?,2 g is homogeneous.Let g be a binary length total homogeneous function from tuples on N into N.Observe that 1,?,2 g is non empty,ternary,and length total.The following propositions are true:(87)Let f be a binary length total homogeneous function from tuples on N into N.Then( 1,?,2 f)( i,j,k )=f( i,k ).(88)For every binary primitive recursive function g holds 1,?,2 g∈PrimRec.Let f be a binary primitive recursive homogeneous function.Note that 1,?,2 f is primitive recursive and ternary.The binary primitive recursive function[+]is defined by:(Def.29)[+]=primrec(proj1(1),succ3(3),2).Next we state the proposition(89)[+]( i,j )=i+j.The binary primitive recursive function[∗]is defined by:(Def.30)[∗]=primrec(const1(0), 1,?,2 [+],2).One can prove the following proposition(90)For all natural numbers i,j holds[∗]( i,j )=i·j.Let g,h be binary primitive recursive homogeneous functions.Note that g,h has the same arity.Let f,g,h be binary primitive recursive functions.Note that f·∏∗ g,h is primitive recursive.Let f,g,h be binary primitive recursive functions.Observe that f·∏∗ g,h is binary.Let f be a unary primitive recursive function and let g be a primitive recursive function.One can check that f·∏∗ g is primitive recursive.Let f be a unary primitive recursive function and let g be a binary primitive recursive function.Observe that f·∏∗ g is binary.The unary primitive recursive function[!]is defined by:(Def.31)[!]=primrec(const0(1),[∗]·∏∗ succ1(1)·∏∗ proj2(1) ,proj2(2) ,1).In this article we present several logical schemes.The scheme Primrec1deals with a unary length total homogeneous function A from tuples on N into N,a binary length total homogeneous function B from tuples on N into N,a unary functor F yielding a natural number,and a binary functor G yielding a natural number,and states that:For all natural numbers i,j holds(A·∏∗ B )( i,j )=F(G(i,j))provided the parameters meet the following conditions:•For every natural number i holds A( i )=F(i),and•For all natural numbers i,j holds B( i,j )=G(i,j).The scheme Primrec2deals with binary length total homogeneous functions A,B,C from tuples on N into N and three binary functors F,G,and H yielding natural numbers,and states that: For all natural numbers i,j holds(A·∏∗ B,C )( i,j )=F(G(i,j),H(i,j)) provided the parameters meet the following conditions:•For all natural numbers i,j holds A( i,j )=F(i,j),•For all natural numbers i,j holds B( i,j )=G(i,j),and•For all natural numbers i,j holds C( i,j )=H(i,j).The following proposition is true(91)[!]( i )=i!.The binary primitive recursive function[∧]is defined by:(Def.32)[∧]=primrec(const1(1), 1,?,2 [∗],2).One can prove the following proposition(92)[∧]( i,j )=i j.The unary primitive recursive function[pred]is defined by:(Def.33)[pred]=primrec(const0(0),proj2(1),1).Next we state the proposition(93)[pred]( 0 )=0and[pred]( i+1 )=i.The binary primitive recursive function[−]is defined by:(Def.34)[−]=primrec(proj1(1), 1,?,2 ([pred]·∏∗ proj2(2) ),2).The following proposition is true(94)[−]( i,j )=i− j.R EFERENCES[1]Grzegorz Bancerek.The fundamental properties of natural numbers.Journal of Formalized Mathematics,1,1989.http://mizar.org/JFM/Vol1/nat_1.html.[2]Grzegorz Bancerek.Countable sets and Hessenberg’s theorem.Journal of Formalized Mathematics,2,1990./JFM/Vol2/card_4.html.[3]Grzegorz Bancerek.Curried and uncurried functions.Journal of Formalized Mathematics,2,1990./JFM/Vol2/funct_5.html.[4]Grzegorz Bancerek.K¨o nig’s theorem.Journal of Formalized Mathematics,2,1990./JFM/Vol2/card_3.html.[5]Grzegorz Bancerek.Cartesian product of functions.Journal of Formalized Mathematics,3,1991./JFM/Vol3/funct_6.html.[6]Grzegorz Bancerek and Krzysztof Hryniewiecki.Segments of natural numbers andfinite sequences.Journal of Formalized Mathematics,1,1989./JFM/Vol1/finseq_1.html.[7]Grzegorz Bancerek and Andrzej Trybulec.Miscellaneous facts about functions.Journal of Formalized Mathematics,8,1996.http:///JFM/Vol8/funct_7.html.[8]Czesław Byli´n ski.Functions and their basic properties.Journal of Formalized Mathematics,1,1989./JFM/Vol1/funct_1.html.[9]Czesław Byli´n ski.Functions from a set to a set.Journal of Formalized Mathematics,1,1989./JFM/Vol1/funct_2.html.[10]Czesław Byli´n ski.Partial functions.Journal of Formalized Mathematics,1,1989./JFM/Vol1/partfun1.html.[11]Czesław Byli´n ski.Some basic properties of sets.Journal of Formalized Mathematics,1,1989./JFM/Vol1/zfmisc_1.html.[12]Czesław Byli´n ski.Finite sequences and tuples of elements of a non-empty sets.Journal of Formalized Mathematics,2,1990.http:///JFM/Vol2/finseq_2.html.[13]Czesław Byli´n ski.The modification of a function by a function and the iteration of the composition of a function.Journal of FormalizedMathematics,2,1990./JFM/Vol2/funct_4.html.[14]Agata Darmochwał.Finite sets.Journal of Formalized Mathematics,1,1989./JFM/Vol1/finset_1.html.[15]Mariusz Giero.More on products of many sorted algebras.Journal of Formalized Mathematics,8,1996./JFM/Vol8/pralg_3.html.[16]Katarzyna Jankowska.Transpose matrices and groups of permutations.Journal of Formalized Mathematics,4,1992.http://mizar.org/JFM/Vol4/matrix_2.html.[17]Jarosław Kotowicz.Monotone real sequences.Subsequences.Journal of Formalized Mathematics,1,1989./JFM/Vol1/seqm_3.html.。

相关文档
最新文档