human
Can you provide a the Python program you requested given the following:
Complete the below
def grade(user_input, correct_answer):

    ''''Grade crystallography problem.
    Returns true if lattices are the same and Miller indices are same or minus
    same. E.g. (2,2,2) = (2, 2, 2) or (-2, -2, -2). Because sign depends only
    on student\'s selection of origin.
    Args:
    user_input, correct_answer: json. Format:
    user_input: {"lattice":"sc","points":[["0.77","0.00","1.00"],
    ["0.78","1.00","0.00"],["0.00","1.00","0.72"]]}
    correct_answer: {\'miller\': \'(00-1)\', \'lattice\': \'bcc\'}
    "lattice" is one of: "", "sc", "bcc", "fcc"
    Returns:
    True or false.'
    '''
assistant
#Here is the Python program you requested.
    def negative(m):
        '\n                                Change    sign    of    Miller    indices.\n\n                                Args:\n                                                m:    string    with    meaning    of    Miller    indices.    E.g.:\n                                                (-6,3,-6)    ->    (6,    -3,    6)\n\n                                Returns:\n                                                String    with    changed    signs.\n                                '
        output = ''
        i = 1
        while (i in range(1, (len(m) - 1))):
            if (m[i] in (',', '    ')):
                output += m[i]
            elif (m[i] not in ('-', '0')):
                output += ('-' + m[i])
            elif (m[i] == '0'):
                output += m[i]
            else:
                i += 1
                output += m[i]
            i += 1
        return (('(' + output) + ')')
    def round0_25(point):
        '\n                                Rounds    point    coordinates    to    closest    0.5    value.\n\n                                Args:\n                                                point:    list    of    float    coordinates.    Order    of    coordinates:    x,    y,    z.\n\n                                Returns:\n                                                list    of    coordinates    rounded    to    closes    0.5    value\n                                '
        rounded_points = []
        for coord in point:
            base = math.floor((coord * 10))
            fractional_part = ((coord * 10) - base)
            aliquot0_25 = math.floor((fractional_part / 0.25))
            if (aliquot0_25 == 0.0):
                rounded_points.append((base / 10))
            if (aliquot0_25 in (1.0, 2.0)):
                rounded_points.append(((base / 10) + 0.05))
            if (aliquot0_25 == 3.0):
                rounded_points.append(((base / 10) + 0.1))
        return rounded_points
    user_answer = json.loads(user_input)
    if...