AIが提案した数式は、与えた点のすべてを通るでしょうか。Metaと数学者の共同研究をきっかけに、候補を作る処理と、候補が条件を満たすか確かめる処理を分けます。記事後半のPython例は、標準ライブラリだけで動きます。
Metaは2026年10月2日、数学者とMuse Sparkが共同で取り組んだ論文6本を公開しました。うち5本がそれまで未解決だった問いに回答すると説明しています。数学者が研究を主導し、別の数学者が内容を確認したと報告されています。11月8日に資料を再確認しましたが、全論文の外部査読や証明を独立に確認したわけではありません。
候補探索から検証へ
群論の論文でMetaは、Muse Sparkが探索コードを生成し、384要素の群が見つかったと説明しています。数学者はその候補が必要な条件を満たすことを確かめ、論証を完成させました。候補が一つ見つかったことと、予想に対する反例だと示したことは別です。
2次元の小さな例:候補の楕円を厳密に照合
確率論の論文は、高次元のランダムな点について、すべてを通る楕円体が存在する条件を扱います。ここではその証明を再現せず、固定された点と候補を使って、検証側だけを小さく再現します。
原点を中心とする候補を a*x*x + 2*b*x*y + c*y*y = 1 とします。まず a > 0 かつ a*c-b*b > 0 で楕円になることを確認し、各点を代入した残差がすべてゼロかを確認します。有理数を使うので、この例では丸め誤差を考えずに判定できます。
from fractions import Fraction as Q
def residual(point, coeffs):
x, y = map(Q, point)
a, b, c = map(Q, coeffs)
return a*x*x + 2*b*x*y + c*y*y - 1
def passes(points, coeffs):
a, b, c = map(Q, coeffs)
return a > 0 and a*c-b*b > 0 and all(
residual(point, coeffs) == 0 for point in points
)
candidate = (Q(1, 4), 0, 1)
points = [(2, 0), (-2, 0), (0, 1), (0, -1)]
assert passes(points, candidate)
assert not passes(points + [(1, 1)], candidate)
assert residual((1, 1), candidate) == Q(1, 4)
assert not passes([(1, 0)], (1, 0, -1))
print("4 checks passed")
4つの検査を実行しました。x²/4+y²=1 は4つの指定点を通りますが、(1, 1) を足すと残差は1/4です。条件を満たさなかったのは指定した候補です。このコードでは、別の候補の有無も、高次元での閾値も調べていません。
まとめ
AIに候補を作ってもらう前に、候補を落とす条件と、落ちたときに残す証拠を決めておきます。この例なら「楕円か」「すべての点を通るか」「外れた点と残差は何か」です。
出典
文章業務の確認条件や失敗時の対応を整理する際は、ココナラの実務プロンプト・運用手順作成も利用できます。対象は文章業務1種類で、数学の証明やプログラム開発は含みません。



