# Upper Bounds for Cryptogenography via Sum of Squares

## Python code

Put both files into the same directory. Use as follows:

bash$ python generate_matlab_code.py

usage: generate_matlab_code numberOfPlayers degree [yalmip|sagemath|sostools]

not outputting anything

bash$ python generate_matlab_code.py 2 4 yalimp

[outputs *parts* of the yalmip code; the parts that
depend on the degree]

**Warning:** Best to use it only for 2 players. For larger numbers the functionality is sketchy.
## Yalmip/matlab code for the SoS program

## Matlab code to verify the solution to the degree 6 SoS program

verifiable_without_SeDuMi.m

This file contains the function *f* as computed by the SoS program; *h*, the second derivative of *f* along a generic Alice-line at *t*=0; a way to write *h* as a combination of SoS polynomials *Q*_{I} and the "boundary polynomials" *b*_{i} and *c* as in the paper.
Each polynomial *Q*_{I} is defined in this file directly as a sum of squares, like for example

Q13 = + P379^2 + P380^2 + P381^2 + P382^2 + P383^2 + P384^2 + P385^2;

where the polynomials P379 etc. are also defined in this file.
So it is clear by design that each *Q*_{I} is a
SoS polynomial.