WOLFRAM

tests whether has exactly one solution xReals for each yReals.

tests whether has exactly one solution xdom for each ydom.

FunctionBijective[{f1,f2,},{x1,x2,},dom]

tests whether has exactly one solution x1,x2,dom for each y1,y2,dom.

FunctionBijective[{funs,xcons,ycons},xvars,yvars,dom]

tests whether has exactly one solution with xvarsdom restricted by the constraints xcons for each yvarsdom restricted by the constraints ycons.

Details and Options

  • A bijective function is also known as one-to-one and onto.
  • A function is bijective if for each there is exactly one such that .
  • FunctionBijective[{funs,xcons,ycons},xvars,yvars,dom] returns True if the mapping is bijective, where is the solution set of xcons and is the solution set of ycons.
  • 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.
  • The following options can be given:
  • Assumptions $Assumptionsassumptions on parameters
    GenerateConditions Truewhether to generate conditions on parameters
    PerformanceGoal $PerformanceGoalwhether to prioritize speed or quality
  • Possible settings for GenerateConditions include:
  • Automaticnongeneric conditions only
    Trueall conditions
    Falseno conditions
    Nonereturn unevaluated if conditions are needed
  • Possible settings for PerformanceGoal are "Speed" and "Quality".

Examples

open allclose all

Basic Examples  (4)Summary of the most common use cases

Test bijectivity of a univariate function over the reals:

Out[1]=1

Test bijectivity over the complexes:

Out[1]=1

Test bijectivity of a polynomial mapping over the reals:

Out[1]=1

Test bijectivity of a polynomial with symbolic coefficients:

Out[1]=1

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

Bijectivity over the reals:

Out[1]=1

Some values are attained more than once:

Out[2]=2

Bijectivity between subsets of the reals:

Out[1]=1

For , each positive value is attained exactly once:

Out[2]=2

Bijectivity over the complexes:

Out[1]=1

Some values are not attained:

Out[2]=2

The logarithm is bijective onto :

Out[3]=3

Bijectivity over a subset of complexes:

Out[1]=1

is not bijective over the whole complex plane:

Out[2]=2

Some values are attained more than once:

Out[3]=3

Bijectivity over the integers:

Out[1]=1

Bijectivity of linear mappings:

Out[2]=2
Out[4]=4

A linear mapping is bijective iff its matrix is square and of the maximal rank:

Out[5]=5

Bijectivity of polynomial mappings :

Out[1]=1

The restricted mapping TemplateBox[{}, NonNegativeReals]^2->TemplateBox[{}, Reals]^2\(TemplateBox[{}, PositiveReals]xTemplateBox[{}, NegativeReals]), equal to the real and imaginary part of , is bijective:

Out[2]=2

Bijectivity of polynomial mappings :

Out[1]=1

The Jacobian determinant of a bijective complex polynomial mapping must be constant:

Out[2]=2

The Jacobian conjecture states that the reverse implication is true:

Out[3]=3

Indeed, this polynomial mapping with a constant Jacobian is bijective:

Out[4]=4

Bijectivity of a real polynomial with symbolic parameters:

Out[1]=1

Bijectivity of a real polynomial mapping with symbolic parameters:

Out[1]=1

Options  (4)Common values & functionality for each option

Assumptions  (1)

FunctionBijective gives a conditional answer here:

Out[1]=1

This checks the bijectivity for the remaining real values of :

Out[2]=2

GenerateConditions  (2)

By default, FunctionBijective may generate conditions on symbolic parameters:

Out[1]=1

With GenerateConditions->None, FunctionBijective fails instead of giving a conditional result:

Out[2]=2

This returns a conditionally valid result without stating the condition:

Out[3]=3

By default, all conditions are reported:

Out[1]=1

With GenerateConditions->Automatic, conditions that are generically true are not reported:

Out[2]=2

PerformanceGoal  (1)

Use PerformanceGoal to avoid potentially expensive computations:

Out[1]=1

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

Out[2]=2

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

Basic Applications  (8)

Check bijectivity of :

Out[1]=1

Each value is attained exactly once:

Out[2]=2

is not bijective:

Out[3]=3

Some values, e.g. , are attained more than once:

Out[4]=4

is not bijective:

Out[5]=5

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

Out[6]=6

is bijective in its real domain:

Out[1]=1

Each value is attained exactly once:

Out[2]=2

Show that TemplateBox[{x}, SinhIntegral] is bijective:

Out[3]=3
Out[4]=4

Show that is not bijective:

Out[5]=5
Out[6]=6

A function is bijective iff it is injective and surjective:

Out[1]=1
Out[2]=2
Out[3]=3
Out[4]=4

is not bijective because it is not injective:

Out[1]=1
Out[2]=2
Out[3]=3

is not bijective because it is not surjective:

Out[1]=1
Out[2]=2
Out[3]=3

A function is bijective if any horizontal line intersects the graph exactly once:

Out[2]=2
Out[3]=3

TemplateBox[{x}, SinIntegral] is not bijective:

Out[4]=4

Some horizontal lines intersect the graph more than once; others do not intersect it at all:

Out[5]=5

Composition of bijective functions TemplateBox[{}, Reals]->TemplateBox[{}, Reals] is bijective:

Out[1]=1
Out[2]=2
Out[3]=3

An affine mapping TemplateBox[{}, Reals]^n->TemplateBox[{}, Reals]^n given by is bijective if the rank of equals :

Out[2]=2
Out[3]=3
Out[5]=5
Out[6]=6

Probability  (1)

CDF of a distribution with a strictly positive PDF is bijective onto :

Out[1]=1
Out[2]=2
Out[3]=3
Out[4]=4
Out[5]=5
Out[6]=6

SurvivalFunction is bijective onto as well:

Out[7]=7
Out[8]=8
Out[9]=9

Quantile is bijective onto the reals:

Out[10]=10
Out[11]=11
Out[12]=12

Calculus  (2)

Compute by change of variables:

If is a bijective mapping , then int_Uf(g(u)) TemplateBox[{TemplateBox[{{{(, {partial, g}, )}, /, {(, {partial, u}, )}}}, Det]}, Abs]du=int_Vf(v)dv:

Out[4]=4

Check that is a bijective mapping TemplateBox[{}, Reals]^2->TemplateBox[{}, Reals]^2:

Out[5]=5

Compute the integral:

Out[6]=6

Compute the original integral directly:

Out[7]=7

Compute the surface area of a ball with radius using a rational parametrization:

Out[2]=2

Check that the parametrization is bijective onto the ball less a lower-dimensional set:

Out[3]=3

The surface area is equal to the integral of square root of Gram determinant of :

Out[5]=5

Properties & Relations  (3)Properties of the function, and connections to other functions

is bijective iff the equation has exactly one solution for each :

Out[1]=1
Out[2]=2

Use Solve to find the solutions:

Out[3]=3
Out[4]=4

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

Out[1]=1
Out[2]=2
Out[3]=3

Use FunctionMonotonicity to determine the monotonicity of a function:

Out[4]=4
Out[5]=5

Use Limit to compute the limits:

Out[6]=6
Out[7]=7

A complex polynomial mapping is bijective iff it has a polynomial inverse:

Out[2]=2

Use Solve to find the polynomial inverse:

Out[3]=3

Verify that is a two-sided inverse of :

Out[4]=4
Out[5]=5

Possible Issues  (2)Common pitfalls and unexpected behavior

FunctionBijective determines the real domain of functions using FunctionDomain:

Out[1]=1

is bijective onto in the real domain reported by FunctionDomain:

Out[2]=2
Out[3]=3

is real valued and not bijective onto over the whole reals:

Out[4]=4

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

Out[5]=5

FunctionBijective restricts the domain to the inverse image of the solution set of ycons:

Out[1]=1

Division by two is a bijection between the even integers (the inverse image of integers) and the integers.

Wolfram Research (2020), FunctionBijective, Wolfram Language function, https://reference.wolfram.com/language/ref/FunctionBijective.html.
Wolfram Research (2020), FunctionBijective, Wolfram Language function, https://reference.wolfram.com/language/ref/FunctionBijective.html.

Text

Wolfram Research (2020), FunctionBijective, Wolfram Language function, https://reference.wolfram.com/language/ref/FunctionBijective.html.

Wolfram Research (2020), FunctionBijective, Wolfram Language function, https://reference.wolfram.com/language/ref/FunctionBijective.html.

CMS

Wolfram Language. 2020. "FunctionBijective." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FunctionBijective.html.

Wolfram Language. 2020. "FunctionBijective." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FunctionBijective.html.

APA

Wolfram Language. (2020). FunctionBijective. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FunctionBijective.html

Wolfram Language. (2020). FunctionBijective. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FunctionBijective.html

BibTeX

@misc{reference.wolfram_2025_functionbijective, author="Wolfram Research", title="{FunctionBijective}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/FunctionBijective.html}", note=[Accessed: 22-May-2025 ]}

@misc{reference.wolfram_2025_functionbijective, author="Wolfram Research", title="{FunctionBijective}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/FunctionBijective.html}", note=[Accessed: 22-May-2025 ]}

BibLaTeX

@online{reference.wolfram_2025_functionbijective, organization={Wolfram Research}, title={FunctionBijective}, year={2020}, url={https://reference.wolfram.com/language/ref/FunctionBijective.html}, note=[Accessed: 22-May-2025 ]}

@online{reference.wolfram_2025_functionbijective, organization={Wolfram Research}, title={FunctionBijective}, year={2020}, url={https://reference.wolfram.com/language/ref/FunctionBijective.html}, note=[Accessed: 22-May-2025 ]}