<<BinomialDiophantinePerturbations`

How to use the package

Perturbation[7,3,X[1]]

S[SymmetricPolynomial[3,Table[X[i],{i,1,7}]]+X[1]]

Perturbation[9,{5,3},X[1]+X[2]]

S[SymmetricPolynomial[5,Table[X[i],{i,1,9}]]+SymmetricPolynomial[3,Table[X[i],{i,1,9}]]+X[1]+X[2]]

The perturbation (Subscript[σ, 7,4])+(Subscript[X, 1])+(Subscript[X, 2]) is balanced.  The next functions find the corresponding solution to the related Diophantine equation.

PerturbationSolution[7,4,X[1]+X[2]]

You can asked the computer if this perturbation is sporadic balanced or not using the following implementation.

SporadicPerturbationQ[7,4,X[1]+X[2]]

The perturbation (Subscript[σ, 9,[5,3]])+(Subscript[X, 1])(Subscript[X, 2])+(Subscript[X, 3]) is not balanced.  Therefore, the implementation PerturbationSolution returns $Failed.

PerturbationSolution[9,{5,3},X[1]X[2]+X[3]]

You can still asked the computer for the corresponding tuple, just keep in mind that this tuple is NOT a solution to the Diophantine equation.

PerturbationTuple[9,{5,3},X[1]X[2]+X[3]]

Of course, if the perturbation is balanced, as in the case of (Subscript[σ, 7,4])+(Subscript[X, 1])+(Subscript[X, 2]), then PerturbationSolution and PerturbationTuple returns the same answer.

PerturbationTuple[7,4,X[1]+X[2]]

PerturbationSolution[7,4,X[1]+X[2]]

If you want to verify if two tuples (or solutions) are equivalent, then you can do so by verifying if both of them belongs to the same equivalence class.  For example:

PerturbationSolution[9,{3,6},X[1]+X[2]]

EquivalentTuple[PerturbationSolution[9,{3,6},X[1]+X[2]]]

PerturbationSolution[9,{1,4,7},X[1]+X[2]]

EquivalentTuple[PerturbationSolution[9,{1,4,7},X[1]+X[2]]]

Thus, both of this perturbation returns solutions that are equivalent to each other.