ForAll 
詳細
- ForAll[x,expr]は∀xexpr と入力できる.∀という記号は
fa
または\[ForAll]で入力できる.変数 x は下付き文字として与える. - ForAll[x,cond,expr]は∀x,condexpr と入力できる.
- StandardFormでは,ForAll[x,expr]は∀xexpr と出力される.
- ForAll[x,cond,expr]は∀x,condexpr と出力される.
- ForAllはReduce,Resolve,FullSimplifyのような関数で使うことができる.
- 制約条件 cond は,x∈Integersにおけるようにしばしば変数の領域を指定するのに用いられる.
- ForAll[x,cond,expr]はForAll[x,Implies[cond,expr]]と等価である.
- ForAll[{x1,x2,…},…]は
と等価である. - ForAll[x,expr]における
の値は,Blockにおけるように局所化されると解釈される.
例題
すべて開く すべて閉じる例 (1)
スコープ (6)
ForAll[x, x ^ 2 - x + 1 ≠ 0]Resolveを使ってこの文が偽であることを証明する:
Resolve[%]次は,すべての実数の
について非等式が真であると述べている:
ForAll[x, Element[x, Reals], x ^ 2 - x + 1 ≠ 0]Resolveを使ってこの文が真であることを証明する:
Resolve[%]ForAll[{x, y}, x ^ 2 + y ^ 2 ≥ 0]領域が指定されていない場合,Resolveは不等式中の代数的変数が実数であるとみなす:
Resolve[%]領域をComplexesにすると,不等式をFalseにする複素数値を使うことができる:
Resolve[%%, Complexes]ForAll[{p, q}, Implies[p && Implies[p, q], q]]Resolve[%]式に変数が明示的に含まれていない場合,ForAllは自動的に簡約する:
ForAll[x, y == 0]ForAll[{x, y, z}, y == z]TraditionalFormによる表記:
ForAll[x, p[x]]//TraditionalFormアプリケーション (5)
ForAll[{a, b}, a > 0 && b > 0, (a + b) / 2 ≥ Sqrt[a b]]Resolveを使ってこの不等式を証明する:
Resolve[%]ForAll[{a, b, c, d}, a > 0 && b > 0 && c > 0 && d > 0, a c + b d ≤ Sqrt[a ^ 2 + b ^ 2]Sqrt[c ^ 2 + d ^ 2]]Resolveを使ってこの不等式を証明する:
Resolve[%]ForAll[{a, b, c, d}, Sqrt[(a + c) ^ 2 + (b + d) ^ 2] ≤ Sqrt[a ^ 2 + b ^ 2] + Sqrt[c ^ 2 + d ^ 2]]Resolveを使ってこの不等式を証明する:
Resolve[%]triangle = a > 0 && b > 0 && c > 0 && a + b > c && a + c > b && b + c > a;
acute = a ^ 2 + b ^ 2 > c ^ 2 && a ^ 2 + c ^ 2 > b ^ 2 && b ^ 2 + c ^ 2 > a ^ 2;
s = 1 / 2(a + b + c);
F = Sqrt[s(s - a)(s - b)(s - c)];次は,この不等式がすべての三角形について満足されると述べている:
ForAll[{a, b, c}, triangle, a b c(a ^ 2 / b ^ 2 + b ^ 2 / c ^ 2 + c ^ 2 / a ^ 2) ≥ a ^ 3 + b ^ 3 + c ^ 3 + a b(b - a) + a c(a - c) + b c(c - b)]Resolveを使って不等式を証明する:
Resolve[%]次は,不等式がすべての鋭角三角形について満足されると述べている:
ForAll[{a, b, c}, triangle && acute, 27(b ^ 2 + c ^ 2 - a ^ 2) ^ 2(a ^ 2 + c ^ 2 - b ^ 2) ^ 2(a ^ 2 + b ^ 2 - c ^ 2) ^ 2 ≤ (4F) ^ 6]Resolveを使って不等式を証明する:
Resolve[%]R1 = (2x) ^ 2 + y ^ 2 + 2 x y ≤ 1;
R2 = x ^ 2 + y ^ 2 ≤ 2;ForAll[{x, y}, R1 R2]この陳述は真である.したがって,R1で定義された範囲はR2で定義された範囲に含まれる:
Resolve[%]{r1, r2} = {RegionPlot[R1, {x, -2, 2}, {y, -2, 2}, PlotPoints -> 35, PlotStyle -> Pink], RegionPlot[R2, {x, -2, 2}, {y, -2, 2}]};Show[{r2, r1}]特性と関係 (3)
!ForAll[x, x == a]!ForAll[x, Element[x, Reals], x == a]ResolveあるいはReduceを使って量限定子を除去することができる:
form = ForAll[{x, y}, Implies[a ≠ 0 && a x ^ 2 + b x + c == 0 && a y ^ 2 + b y + c == 0, x == y]]Resolve[form, Reals]Reduce[form, {a, b, c}, Reals]次は,
のすべての複素数値について方程式が真であると述べている:
ForAll[x, (a - 2b + 1)x ^ 2 + (a - b ^ 2 - c)x == a ^ 2 - b + 3c - 1]Reduceを使ってこの陳述が真になるパラメータの値を求める:
Reduce[%]次ではSolveAlwaysを使って同じ問題を解いている:
SolveAlways[(a - 2b + 1)x ^ 2 + (a - b ^ 2 - c)x == a ^ 2 - b + 3c - 1, x]テクニカルノート
-
▪
- 限定子
履歴
2003 で導入 (5.0)
テキスト
Wolfram Research (2003), ForAll, Wolfram言語関数, https://reference.wolfram.com/language/ref/ForAll.html.
CMS
Wolfram Language. 2003. "ForAll." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ForAll.html.
APA
Wolfram Language. (2003). ForAll. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ForAll.html
BibTeX
@misc{reference.wolfram_2026_forall, author="Wolfram Research", title="{ForAll}", year="2003", howpublished="\url{https://reference.wolfram.com/language/ref/ForAll.html}", note=[Accessed: 07-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_forall, organization={Wolfram Research}, title={ForAll}, year={2003}, url={https://reference.wolfram.com/language/ref/ForAll.html}, note=[Accessed: 07-October-2026]}