## Symbolic Representation

To solve the given optimization problem, we first need to convert the natural language description into a symbolic representation.

Let's define the variables:
- $x_1$ = Number of batches of maple pecan ice cream
- $x_2$ = Number of batches of mint chocolate ice cream

The objective is to maximize profit. Given that the profit per batch of maple pecan ice cream is $400 and the profit per batch of mint chocolate ice cream is $250, the objective function can be written as:

Maximize: $400x_1 + 250x_2$

The constraints based on the machine availability are:
- Mixing machine: $50x_1 + 30x_2 \leq 8000$
- Freezing machine: $80x_1 + 70x_2 \leq 10000$

Also, $x_1 \geq 0$ and $x_2 \geq 0$ because the number of batches cannot be negative.

## Symbolic Representation in JSON Format

```json
{
    'sym_variables': [('x1', 'batches of maple pecan ice cream'), ('x2', 'batches of mint chocolate ice cream')],
    'objective_function': '400*x1 + 250*x2',
    'constraints': [
        '50*x1 + 30*x2 <= 8000',
        '80*x1 + 70*x2 <= 10000',
        'x1 >= 0',
        'x2 >= 0'
    ]
}
```

## Gurobi Code in Python

```python
import gurobipy as gp

# Create a new model
model = gp.Model("IceCreamProduction")

# Define variables
x1 = model.addVar(name="maple_pecan", lb=0, vtype=gp.GRB.CONTINUOUS)  # batches of maple pecan ice cream
x2 = model.addVar(name="mint_chocolate", lb=0, vtype=gp.GRB.CONTINUOUS)  # batches of mint chocolate ice cream

# Objective function: maximize profit
model.setObjective(400 * x1 + 250 * x2, gp.GRB.MAXIMIZE)

# Constraints
model.addConstr(50 * x1 + 30 * x2 <= 8000, name="mixing_machine_constraint")
model.addConstr(80 * x1 + 70 * x2 <= 10000, name="freezing_machine_constraint")

# Solve the model
model.optimize()

# Print the results
if model.status == gp.GRB.OPTIMAL:
    print(f"Optimal batches of maple pecan ice cream: {x1.varValue}")
    print(f"Optimal batches of mint chocolate ice cream: {x2.varValue}")
    print(f"Maximal profit: ${model.objVal:.2f}")
else:
    print("The model is infeasible or unbounded.")
```