# Fungrim entry: f5ae93

Symbol: UniqueSolution $\mathop{\operatorname{solution*}\,}\limits_{x \in S} Q(x)$ Unique solution
UniqueSolution(Q(x), ForElement(x, S)), rendered $\mathop{\operatorname{solution*}\,}\limits_{x \in S} Q(x)$, represents the unique value $x \in S$ satisfying $Q(x)$.
This operation is undefined if such a value does not exist or is not unique.
UniqueSolution(Q(x), ForElement(x, S), P(x)), rendered $\mathop{\operatorname{solution*}\,}\limits_{x \in S,\,P(x)} Q(x)$, represents the unique value $x \in S$ satisfying $P(x)$ and $Q(x)$.
UniqueSolution(Q(x), For(x), P(x)), rendered $\mathop{\operatorname{solution*}\,}\limits_{P(x)} Q(x)$, represents the unique value $x$ satisfying $P(x)$ and $Q(x)$.
UniqueSolution(Q(x, y), For(Tuple(x, y)), P(x, y)), rendered $\mathop{\operatorname{solution*}\,}\limits_{P\left(x, y\right)} Q\!\left(x, y\right)$, represents the unique tuple $\left(x, y\right)$ satisfying $P\!\left(x, y\right)$ and $Q\!\left(x, y\right)$, and similarly for any number $n \ge 2$ of variables.
The special expression For(x) or ForElement(x, S) declares x as a locally bound variable within the scope of the arguments to this operator. If For(x) is used instead of ForElement(x, S), the corresponding predicate $P(x)$ must define the domain of $x$ unambiguously; that is, it must include a statement such as $x \in S$ where $S$ is a known set. Similarly, For(Tuple(x, y)), For(Tuple(x, y, z)), etc. defines multiple locally bound variables which must be accompanied by a multivariate predicate $P\!\left(x, y\right)$, $P\!\left(x, y, z\right)$, etc.
Definitions:
Fungrim symbol Notation Short description
UniqueSolution$\mathop{\operatorname{solution*}\,}\limits_{x \in S} Q(x)$ Unique solution
Source code for this entry:
Entry(ID("f5ae93"),
SymbolDefinition(UniqueSolution, UniqueSolution(Q(x), ForElement(x, S)), "Unique solution"),
Description(SourceForm(UniqueSolution(Q(x), ForElement(x, S))), ", rendered", UniqueSolution(Q(x), ForElement(x, S)), ", represents the unique value", Element(x, S), "satisfying", Q(x), "."),
Description("This operation is undefined if such a value does not exist or is not unique."),
Description(SourceForm(UniqueSolution(Q(x), ForElement(x, S), P(x))), ", rendered", UniqueSolution(Q(x), ForElement(x, S), P(x)), ", represents the unique value", Element(x, S), "satisfying", P(x), "and", Q(x), "."),
Description(SourceForm(UniqueSolution(Q(x), For(x), P(x))), ", rendered", UniqueSolution(Q(x), For(x), P(x)), ", represents the unique value", x, "satisfying", P(x), "and", Q(x), "."),
Description(SourceForm(UniqueSolution(Q(x, y), For(Tuple(x, y)), P(x, y))), ", rendered", UniqueSolution(Q(x, y), For(Tuple(x, y)), P(x, y)), ", represents the unique tuple", Tuple(x, y), "satisfying", P(x, y), "and", Q(x, y), ", and similarly for any number", GreaterEqual(n, 2), "of variables."),
Description("The special expression", SourceForm(For(x)), "or", SourceForm(ForElement(x, S)), "declares", SourceForm(x), "as a locally bound variable within the scope of the arguments to this operator. ", "If", SourceForm(For(x)), "is used instead of", SourceForm(ForElement(x, S)), ", the corresponding predicate", P(x), "must define the domain of", x, "unambiguously; that is, it must include a statement such as", Element(x, S), "where", S, "is a known set. Similarly,", SourceForm(For(Tuple(x, y))), ", ", SourceForm(For(Tuple(x, y, z))), ", etc.", "defines multiple locally bound variables which must be accompanied by a multivariate predicate", P(x, y), ", ", P(x, y, z), ", etc."))

## Topics using this entry

Copyright (C) Fredrik Johansson and contributors. Fungrim is provided under the MIT license. The source code is on GitHub.

2021-03-15 19:12:00.328586 UTC