# Fungrim entry: 617fe3

Symbol: ArgMax $\mathop{\operatorname{arg\,max}}\limits_{x \in S} f(x)$ Locations of maximum value
ArgMax(f(x), ForElement(x, S)), rendered $\mathop{\operatorname{arg\,max}}\limits_{x \in S} f(x)$, gives the set of values $x \in S$ such that $f(x) = \mathop{\max}\limits_{s \in S} f(s)$.
ArgMax(f(x), ForElement(x, S), P(x)), rendered $\mathop{\operatorname{arg\,max}}\limits_{x \in S,\,P(x)} f(x)$, gives the set of values $x \in S$ satisfying $P(x)$ and such that $f(x) = \mathop{\max}\limits_{s \in S,\,P(s)} f(s)$.
If $f(x)$ does not attain a maximum value satisfying the conditions, the result is the empty set {}.
ArgMax(f(x, y), For(Tuple(x, y)), P(x, y)), rendered $\mathop{\operatorname{arg\,max}}\limits_{P\left(x, y\right)} f\!\left(x, y\right)$, gives the set of tuples $\left(x, y\right)$ satisfying $P\!\left(x, y\right)$ such that $f\!\left(x, y\right) = \mathop{\max}\limits_{P\left(s, t\right)} f\!\left(s, t\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
ArgMax$\mathop{\operatorname{arg\,max}}\limits_{x \in S} f(x)$ Locations of maximum value
Maximum$\mathop{\max}\limits_{x \in S} f(x)$ Maximum value of a set or function
Source code for this entry:
Entry(ID("617fe3"),
SymbolDefinition(ArgMax, ArgMax(f(x), ForElement(x, S)), "Locations of maximum value"),
Description(SourceForm(ArgMax(f(x), ForElement(x, S))), ", rendered", ArgMax(f(x), ForElement(x, S)), ", gives the set of values", Element(x, S), "such that", Equal(f(x), Maximum(f(s), ForElement(s, S))), "."),
Description(SourceForm(ArgMax(f(x), ForElement(x, S), P(x))), ", rendered", ArgMax(f(x), ForElement(x, S), P(x)), ", gives the set of values", Element(x, S), "satisfying", P(x), "and such that", Equal(f(x), Maximum(f(s), ForElement(s, S), P(s))), "."),
Description("If", f(x), "does not attain a maximum value satisfying the conditions, the result is the empty set", Set(), "."),
Description(SourceForm(ArgMax(f(x, y), For(Tuple(x, y)), P(x, y))), ", rendered", ArgMax(f(x, y), For(Tuple(x, y)), P(x, y)), ", gives the set of tuples", Tuple(x, y), "satisfying", P(x, y), "such that", Equal(f(x, y), Maximum(f(s, t), For(Tuple(s, t)), P(s, t))), ", 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