function Max(x)
max := 0; L := [];
for i := 1 to x do
P2<x,y,z> := ProjectiveSpace(Rationals(),2);
C_i := Curve(P2, x^3+y^3-i*z^3);
E_i, C_itoE_i := EllipticCurve(C_i);
gen := Generators(E_i);
if max eq #gen then
max := #gen;
end if;
end for;
return max;
end function;
これ (Max(100)) を実行すると、max = 0 と表示されます。ただし、#gen = 1 と 2 が異なる場所にあるため、#gen > 0 であることはわかっています。max のローカライズに苦労しています。if ステートメントと for ステートメントの外側の max は、for ステートメントと if ステートメントの内側の max とは異なると見なされるため、max は更新されません。マグマ CAS 構文でこれを修正する方法がわかりません。この側面に関してマグマの構文を理解するのを手伝ってくれる人はいますか? local max; を入れてみました。ループ内とifステートメントですが、構文エラーが発生しました。