|
|
Line 1: |
Line 1: |
| {{Distinguish2|partial function of a [[multilinear map]] or the mathematical concept of a [[piecewise function]]}}
| | I'm Weldon and I live in a seaside city in northern Belgium, Heusy. I'm 23 and I'm will soon finish my study at Human Ecology.<br><br>Feel free to visit my blog post; FIFA 15 coin hack ([http://Proformaweb.it/fantacalcio/?p=219%FFdeer+Hunter+2014+cheats%FFnofollow Recommended Online site]) |
| {| align="right"
| |
| |-
| |
| |[[Image:Partial function.svg|thumb|200px|An example of partial function that is injective.]]
| |
| |-
| |
| |[[Image:Total function.svg|thumb|200px|An example of total function that is not-injective.]]
| |
| |}
| |
| | |
| In [[mathematics]], a '''partial function''' from ''X'' to ''Y'' (written as ''f: X ↛ Y'') is a [[function (mathematics)|function]] ''f: X' → Y'', where '' X' '' is a [[subset]] of ''X''. It generalizes the concept of a function ''f: X → Y'' by not forcing ''f'' to map ''every'' element of ''X'' to an element of ''Y'' (only some subset ''X''<nowiki>'</nowiki> of ''X''). If '' X' '' = ''X'', then ''f'' is called a '''total function''' and is equivalent to a function. Partial functions are often used when the exact [[domain of a function|domain]], '' X' '', is not known (e.g. many functions in [[computability theory]]).
| |
| | |
| Specifically, we will say that for any ''x'' ∈ ''X'', either:
| |
| * ''f''(''x'') = ''y'' ∈ ''Y'' (it is defined as a single element in ''Y'') or
| |
| * ''f''(''x'') is undefined.
| |
| | |
| For example we can consider the [[square root]] function restricted to the [[integer]]s
| |
| :<math>g\colon \mathbb{Z} \to \mathbb{Z}</math>
| |
| :<math>g(n) = \sqrt{n}.</math>
| |
| | |
| Thus ''g''(''n'') is only defined for ''n'' that are [[square number|perfect squares]] (i.e. 0, 1, 4, 9, 16, ...). So, ''g''(25) = 5, but ''g''(26) is undefined.
| |
| | |
| ==Domain of a partial function==
| |
| There are two distinct meanings in current mathematical usage for the notion of the [[domain of a function|domain]] of a partial function. Most mathematicians, including [[recursion theory|recursion theorists]], use the term "domain of ''f''" for the set of all values ''x'' such that ''f(x)'' is defined ('' X' '' above). But some, particularly [[category theory|category theorists]], consider the domain of a partial function ''f'':''X''→''Y'' to be ''X'', and refer to '' X' '' as the '''domain of definition'''. Similarly, the term [[range]] can refer to either the [[codomain]] or the ''image'' of a function.
| |
| | |
| Occasionally, a partial function with domain ''X'' and codomain ''Y'' is written as ''f'': ''X'' ⇸ ''Y'', using an arrow with vertical stroke.
| |
| | |
| A partial function is said to be [[injective]] or [[surjective]] when the total function given by the restriction of the partial function to its domain of definition is. A partial function may be both injective and surjective, but the term [[bijection]] generally only applies to total functions.
| |
| | |
| An injective partial function may be [[inverse relation|inverted]] to an injective partial function, and a partial function which is both injective and surjective has an injective function as inverse.
| |
| | |
| ==Total function==
| |
| Total function is a synonym for [[Function (mathematics)|function]]. The use of the prefix "total" is to suggest that it is a special case of a [[partial function]]. For example, when considering the operation of [[morphism]] composition in [[Category theory|Concrete Categories]], the composition operation <math>\circ : \operatorname{Hom}(C) \times \operatorname{Hom}(C) \to \operatorname{Hom}(C)</math> is a total function if and only if <math>\operatorname{Ob}(C)</math> has one element. The reason for this is that two morphisms <math>f:X\to Y</math> and <math>g:U\to V</math> can only be composed as <math>g \circ f</math> if <math>Y=U</math>, that is, the codomain of <math>f</math> must equal the domain of <math>g</math>.
| |
| | |
| ==Discussion and examples==
| |
| The first diagram above represents a partial function that is '''not''' a total function since the element 1 in the left-hand set is not associated with anything in the right-hand set. Whereas, the second diagram represents a total function since every element on the left-hand set is associated with exactly one element in the right hand set.
| |
| | |
| ===Natural logarithm===
| |
| Consider the [[natural logarithm]] function mapping the [[real number]]s to themselves. The logarithm of a non-positive real is not a real number, so the natural logarithm function doesn't associate any real number in the codomain with any non-positive real number in the domain. Therefore, the natural logarithm function is not a total function when viewed as a function from the reals to themselves, but it is a partial function. If the domain is restricted to only include the positive reals (that is, if the natural logarithm function is viewed as a function from the positive reals to the reals), then the natural logarithm is a total function.
| |
| | |
| ===Subtraction of natural numbers===
| |
| Subtraction of [[natural numbers]] (non-negative [[integers]]) can be viewed as a partial function:
| |
| | |
| :<math>f: \mathbb{N} \times \mathbb{N} \to \mathbb{N}</math>
| |
| :<math>f(x,y) = x - y.</math>
| |
| | |
| It is only defined when <math>x \ge y</math>.
| |
| | |
| ===Bottom type===
| |
| | |
| In some [[automated theorem proving]] systems a partial function is considered as returning the [[bottom type]] when it is undefined. The [[Curry-Howard correspondence]] uses this to map proofs and computer programs to each other.
| |
| | |
| In [[computer science]] a partial function corresponds to a subroutine that raises an exception or loops forever. The [[IEEE floating point]] standard defines a [[Not-a-number]] value which is returned when a floating point operation is undefined and exceptions are suppressed, e.g. when the square root of a negative number is requested.
| |
| | |
| In a [[programming language]] where function parameters are [[statically typed]], a function may be defined as a partial function because the language's [[type system]] cannot express the exact domain of the function, so the programmer instead gives it the smallest domain which is expressible as a type and contains the true domain.
| |
| | |
| == See also == | |
| * [[Bijection]]
| |
| * [[Injective function]]
| |
| * [[Surjective function]]
| |
| * [[Multivalued function]]
| |
| * [[Symmetric inverse semigroup]]
| |
| * [[Densely defined operator]]
| |
| | |
| == References ==
| |
| *[[Martin Davis]] (1958), ''Computability and Unsolvability'', McGraw-Hill Book Company, Inc, New York. Republished by Dover in 1982. ISBN 0-486-61471-9.
| |
| *[[Stephen Kleene]] (1952), ''Introduction to Meta-Mathematics'', North-Holland Publishing Company, Amsterdam, Netherlands, 10th printing with corrections added on 7th printing (1974). ISBN 0-7204-2103-9.
| |
| *[[Harold S. Stone]] (1972), ''Introduction to Computer Organization and Data Structures'', McGraw-Hill Book Company, New York.
| |
| | |
| [[Category:Mathematical relations]]
| |
| [[Category:Functions and mappings]]
| |
I'm Weldon and I live in a seaside city in northern Belgium, Heusy. I'm 23 and I'm will soon finish my study at Human Ecology.
Feel free to visit my blog post; FIFA 15 coin hack (Recommended Online site)