## Problem Description and Symbolic Representation

The problem involves maximizing profit by determining the optimal number of Mexican and Korean burritos to produce given certain resource constraints.

### Symbolic Variables:
- $x_1$ = Number of Mexican burritos
- $x_2$ = Number of Korean burritos

### Objective Function:
Maximize profit $P = 7x_1 + 4.5x_2$

### Constraints:
1. Cheese constraint: $7x_1 + 5x_2 \leq 70$
2. Beans constraint: $8x_1 \leq 60$
3. Onions constraint: $5x_2 \leq 45$
4. Non-negativity constraints: $x_1 \geq 0, x_2 \geq 0$

## Symbolic Representation in JSON Format

```json
{
    'sym_variables': [('x1', 'Mexican burritos'), ('x2', 'Korean burritos')],
    'objective_function': '7*x1 + 4.5*x2',
    'constraints': [
        '7*x1 + 5*x2 <= 70',
        '8*x1 <= 60',
        '5*x2 <= 45',
        'x1 >= 0',
        'x2 >= 0'
    ]
}
```

## Gurobi Code in Python

```python
import gurobipy as gp

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

# Define variables
x1 = model.addVar(name="Mexican_burritos", lb=0, ub=None, obj=7)
x2 = model.addVar(name="Korean_burritos", lb=0, ub=None, obj=4.5)

# Add constraints
model.addConstr(7 * x1 + 5 * x2 <= 70, name="Cheese_Constraint")
model.addConstr(8 * x1 <= 60, name="Beans_Constraint")
model.addConstr(5 * x2 <= 45, name="Onions_Constraint")

# Solve the model
model.optimize()

# Print the solution
if model.status == gp.OPTIMAL:
    print("Optimal Solution:")
    print(f"Number of Mexican burritos: {x1.varValue}")
    print(f"Number of Korean burritos: {x2.varValue}")
    print(f"Max Profit: {model.objVal}")
else:
    print("The model is infeasible.")
```