FunctionSurjective
✖
FunctionSurjective
tests whether has at least one solution x1,x2,…∈dom for each y1,y2,…∈dom.
tests whether has at least one solution with xvars∈dom restricted by the constraints xcons for each yvars∈dom restricted by the constraints ycons.
Details and Options


- A surjective function is also known as onto or an onto mapping.
- A function
is surjective if for every
there is at least one
such that
.
- If funs contains parameters other than xvars, the result is typically a ConditionalExpression.
- Possible values for dom are Reals and Complexes. If dom is Reals, then all variables, parameters, constants and function values are restricted to be real.
- The domain of funs is restricted by the condition given by FunctionDomain.
- xcons and ycons can contain equations, inequalities or logical combinations of these.
- FunctionSurjective[{funs,xcons,ycons},xvars,yvars,dom] returns True if the mapping
is surjective, where
is the solution set of xcons and
is the solution set of ycons.
- The following options can be given:
-
Assumptions $Assumptions assumptions on parameters GenerateConditions True whether to generate conditions on parameters PerformanceGoal $PerformanceGoal whether to prioritize speed or quality - Possible settings for GenerateConditions include:
-
Automatic nongeneric conditions only True all conditions False no conditions None return unevaluated if conditions are needed - Possible settings for PerformanceGoal are "Speed" and "Quality".

Examples
open allclose allBasic Examples (4)Summary of the most common use cases
Test surjectivity of a univariate function over the reals:

https://wolfram.com/xid/08umqdsvoau4aui-b2fcqx

Test surjectivity over the complexes:

https://wolfram.com/xid/08umqdsvoau4aui-0dl46

Test surjectivity of a polynomial mapping over the reals:

https://wolfram.com/xid/08umqdsvoau4aui-dp3h13

Test surjectivity of a polynomial with symbolic coefficients:

https://wolfram.com/xid/08umqdsvoau4aui-kqrk3c

Scope (12)Survey of the scope of standard use cases

https://wolfram.com/xid/08umqdsvoau4aui-gxhl11

Each value is attained at least once:

https://wolfram.com/xid/08umqdsvoau4aui-d5ri0g

Surjectivity over a subset of the reals:

https://wolfram.com/xid/08umqdsvoau4aui-glvby

For positive , some values are not attained:

https://wolfram.com/xid/08umqdsvoau4aui-h18c7

Surjectivity onto a subset of the reals:

https://wolfram.com/xid/08umqdsvoau4aui-d66d8y

Each positive value is for some positive
:

https://wolfram.com/xid/08umqdsvoau4aui-ctca0g

Surjectivity over the complexes:

https://wolfram.com/xid/08umqdsvoau4aui-gb8vpl

The value zero is not attained:

https://wolfram.com/xid/08umqdsvoau4aui-unv0t

Surjectivity onto a subset of complexes:

https://wolfram.com/xid/08umqdsvoau4aui-e5opda

Surjectivity over the integers:

https://wolfram.com/xid/08umqdsvoau4aui-oypp7s

Surjectivity of linear mappings:

https://wolfram.com/xid/08umqdsvoau4aui-fuu3lu

https://wolfram.com/xid/08umqdsvoau4aui-dw1lhm


https://wolfram.com/xid/08umqdsvoau4aui-bb3g0a

https://wolfram.com/xid/08umqdsvoau4aui-huze44

A linear mapping is surjective iff the rank of its matrix is equal to the dimension of its codomain:

https://wolfram.com/xid/08umqdsvoau4aui-dwvhdm

Surjectivity of polynomial mappings :

https://wolfram.com/xid/08umqdsvoau4aui-en7wnr

Each value is attained at least once:

https://wolfram.com/xid/08umqdsvoau4aui-bccrwp

This mapping is not surjective:

https://wolfram.com/xid/08umqdsvoau4aui-hdmdbu


https://wolfram.com/xid/08umqdsvoau4aui-hh23j9

Surjectivity of polynomial mappings :

https://wolfram.com/xid/08umqdsvoau4aui-dcji69

Surjectivity of polynomial mappings :

https://wolfram.com/xid/08umqdsvoau4aui-dcz40b

Surjectivity of a real polynomial with symbolic parameters:

https://wolfram.com/xid/08umqdsvoau4aui-dqtdtb

Surjectivity of a real polynomial mapping with symbolic parameters:

https://wolfram.com/xid/08umqdsvoau4aui-yju7

Options (4)Common values & functionality for each option
Assumptions (1)
FunctionSurjective gives a conditional answer here:

https://wolfram.com/xid/08umqdsvoau4aui-bnv0jw

This checks the surjectivity for the remaining real values of :

https://wolfram.com/xid/08umqdsvoau4aui-c50qtk

GenerateConditions (2)
By default, FunctionSurjective may generate conditions on symbolic parameters:

https://wolfram.com/xid/08umqdsvoau4aui-osy2z

With GenerateConditionsNone, FunctionSurjective fails instead of giving a conditional result:

https://wolfram.com/xid/08umqdsvoau4aui-fe9ubz

This returns a conditionally valid result without stating the condition:

https://wolfram.com/xid/08umqdsvoau4aui-na5ydu

By default, all conditions are reported:

https://wolfram.com/xid/08umqdsvoau4aui-tdcquw

With GenerateConditionsAutomatic, conditions that are generically true are not reported:

https://wolfram.com/xid/08umqdsvoau4aui-291b1m

PerformanceGoal (1)
Use PerformanceGoal to avoid potentially expensive computations:

https://wolfram.com/xid/08umqdsvoau4aui-i86kxj

The default setting uses all available techniques to try to produce a result:

https://wolfram.com/xid/08umqdsvoau4aui-i9gq

Applications (11)Sample problems that can be solved with this function
Basic Applications (7)

https://wolfram.com/xid/08umqdsvoau4aui-tmkzs

is surjective because it attains each value at least once:

https://wolfram.com/xid/08umqdsvoau4aui-hwemwk


https://wolfram.com/xid/08umqdsvoau4aui-5p94k

is not surjective because the value
is not attained:

https://wolfram.com/xid/08umqdsvoau4aui-dob2rz

is not surjective because it does not attain negative values:

https://wolfram.com/xid/08umqdsvoau4aui-rz87j


https://wolfram.com/xid/08umqdsvoau4aui-fhmver

is surjective as a function from
to
:

https://wolfram.com/xid/08umqdsvoau4aui-kz0n6

Each non-negative value is attained:

https://wolfram.com/xid/08umqdsvoau4aui-g0ztcj


https://wolfram.com/xid/08umqdsvoau4aui-g639dg

Each value is attained at least once:

https://wolfram.com/xid/08umqdsvoau4aui-smrt9


https://wolfram.com/xid/08umqdsvoau4aui-b1wh39

Some values, e.g. , are not attained:

https://wolfram.com/xid/08umqdsvoau4aui-eidcke

A function is surjective if any horizontal line intersects its graph at least once:

https://wolfram.com/xid/08umqdsvoau4aui-bethas


https://wolfram.com/xid/08umqdsvoau4aui-djdklc

If a horizontal line does not intersect the graph, the function is not surjective:

https://wolfram.com/xid/08umqdsvoau4aui-hybo03


https://wolfram.com/xid/08umqdsvoau4aui-p3tdpb


https://wolfram.com/xid/08umqdsvoau4aui-mi5ep

Bounded functions are not surjective:

https://wolfram.com/xid/08umqdsvoau4aui-hfe8tb

If is continuous on
and
, then
is surjective onto
:

https://wolfram.com/xid/08umqdsvoau4aui-k79eri

https://wolfram.com/xid/08umqdsvoau4aui-i5xwge

Use FunctionContinuous to check that is continuous in
:

https://wolfram.com/xid/08umqdsvoau4aui-gwhxce

By the intermediate value theorem, restricted to
is surjective onto
:

https://wolfram.com/xid/08umqdsvoau4aui-chr9a


https://wolfram.com/xid/08umqdsvoau4aui-bx6mvx

An affine mapping is surjective if the rank of
is equal to the number of rows of
:

https://wolfram.com/xid/08umqdsvoau4aui-m9q295

https://wolfram.com/xid/08umqdsvoau4aui-hq1fwk


https://wolfram.com/xid/08umqdsvoau4aui-bet2ie


https://wolfram.com/xid/08umqdsvoau4aui-fclhyh

https://wolfram.com/xid/08umqdsvoau4aui-d64ko


https://wolfram.com/xid/08umqdsvoau4aui-cp7s2y

Solving Equations and Inequalities (1)
A function is surjective if the equation
has at least one solution for any
:

https://wolfram.com/xid/08umqdsvoau4aui-c2h13o

https://wolfram.com/xid/08umqdsvoau4aui-fsca99

For each real , there is at least one real solution for
:

https://wolfram.com/xid/08umqdsvoau4aui-fnkkdu

Use Resolve to check the condition expressed using quantifiers:

https://wolfram.com/xid/08umqdsvoau4aui-dvrfk3


https://wolfram.com/xid/08umqdsvoau4aui-k28m21

Probability & Statistics (3)
A CDF for a continuous distribution is surjective onto the interval of probabilities (0,1) over its domain:

https://wolfram.com/xid/08umqdsvoau4aui-l16efo


https://wolfram.com/xid/08umqdsvoau4aui-bybrxp


https://wolfram.com/xid/08umqdsvoau4aui-e654vt

A SurvivalFunction for a continuous distribution is surjective onto the interval of probabilities (0,1) over its domain:

https://wolfram.com/xid/08umqdsvoau4aui-fvov3m


https://wolfram.com/xid/08umqdsvoau4aui-oxfmxd


https://wolfram.com/xid/08umqdsvoau4aui-bgw7z

The quantile function Quantile for a distribution is surjective onto the domain of the distribution:

https://wolfram.com/xid/08umqdsvoau4aui-bas5y6


https://wolfram.com/xid/08umqdsvoau4aui-bp1vf1


https://wolfram.com/xid/08umqdsvoau4aui-c3w06j

Properties & Relations (3)Properties of the function, and connections to other functions
is surjective iff the equation
has at least one solution for each
:

https://wolfram.com/xid/08umqdsvoau4aui-bgha30


https://wolfram.com/xid/08umqdsvoau4aui-fgftkt

Use Solve to find the solutions:

https://wolfram.com/xid/08umqdsvoau4aui-h9imdc


https://wolfram.com/xid/08umqdsvoau4aui-ec0f5e

A real continuous function on an interval is surjective iff the limits at endpoints are and
:

https://wolfram.com/xid/08umqdsvoau4aui-b0d3so


https://wolfram.com/xid/08umqdsvoau4aui-mtrqj2


https://wolfram.com/xid/08umqdsvoau4aui-daqrl2

Use Limit to compute the limits:

https://wolfram.com/xid/08umqdsvoau4aui-fmt43q


https://wolfram.com/xid/08umqdsvoau4aui-if28q4

A function is surjective if its FunctionRange is True:

https://wolfram.com/xid/08umqdsvoau4aui-jwh4ee


https://wolfram.com/xid/08umqdsvoau4aui-e842wa

Possible Issues (1)Common pitfalls and unexpected behavior
FunctionSurjective determines the real domain of functions using FunctionDomain:

https://wolfram.com/xid/08umqdsvoau4aui-c1rnh7

is not surjective onto
in the real domain reported by FunctionDomain:

https://wolfram.com/xid/08umqdsvoau4aui-gfcxum


https://wolfram.com/xid/08umqdsvoau4aui-e806up

is real valued over the whole reals and is surjective onto
:

https://wolfram.com/xid/08umqdsvoau4aui-bhmdzf

All subexpressions of need to be real valued for a point to belong to the real domain of
:

https://wolfram.com/xid/08umqdsvoau4aui-h3a0uv

Wolfram Research (2020), FunctionSurjective, Wolfram Language function, https://reference.wolfram.com/language/ref/FunctionSurjective.html.
Text
Wolfram Research (2020), FunctionSurjective, Wolfram Language function, https://reference.wolfram.com/language/ref/FunctionSurjective.html.
Wolfram Research (2020), FunctionSurjective, Wolfram Language function, https://reference.wolfram.com/language/ref/FunctionSurjective.html.
CMS
Wolfram Language. 2020. "FunctionSurjective." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FunctionSurjective.html.
Wolfram Language. 2020. "FunctionSurjective." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FunctionSurjective.html.
APA
Wolfram Language. (2020). FunctionSurjective. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FunctionSurjective.html
Wolfram Language. (2020). FunctionSurjective. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FunctionSurjective.html
BibTeX
@misc{reference.wolfram_2025_functionsurjective, author="Wolfram Research", title="{FunctionSurjective}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/FunctionSurjective.html}", note=[Accessed: 21-April-2025
]}
BibLaTeX
@online{reference.wolfram_2025_functionsurjective, organization={Wolfram Research}, title={FunctionSurjective}, year={2020}, url={https://reference.wolfram.com/language/ref/FunctionSurjective.html}, note=[Accessed: 21-April-2025
]}