## Problem Description and Symbolic Representation

The problem requires finding the optimal amount of lemons and pecans for Gabriel to eat in order to minimize his cost while meeting his daily nutritional requirements.

### Symbolic Representation

Let's denote:
- $x_1$ as the pounds of lemons
- $x_2$ as the pounds of pecans

The objective is to minimize the total cost: $12x_1 + 10x_2$

The constraints based on the nutritional requirements are:
- Calcium: $3x_1 + 5x_2 \geq 25$
- Potassium: $4x_1 + 4x_2 \geq 18$
- Zinc: $7x_1 + 9x_2 \geq 19$
- Non-negativity: $x_1 \geq 0, x_2 \geq 0$

## Symbolic Representation in JSON Format

```json
{
    'sym_variables': [('x1', 'lemons'), ('x2', 'pecans')],
    'objective_function': '12*x1 + 10*x2',
    'constraints': [
        '3*x1 + 5*x2 >= 25',
        '4*x1 + 4*x2 >= 18',
        '7*x1 + 9*x2 >= 19',
        'x1 >= 0',
        'x2 >= 0'
    ]
}
```

## Gurobi Code in Python

```python
import gurobi

def solve_optimization_problem():
    # Create a new model
    model = gurobi.Model()

    # Define variables
    x1 = model.addVar(name="lemons", lb=0)  # Pounds of lemons
    x2 = model.addVar(name="pecans", lb=0)  # Pounds of pecans

    # Objective function: minimize cost
    model.setObjective(12 * x1 + 10 * x2, gurobi.GRB.MINIMIZE)

    # Constraints
    model.addConstr(3 * x1 + 5 * x2 >= 25, name="calcium_requirement")
    model.addConstr(4 * x1 + 4 * x2 >= 18, name="potassium_requirement")
    model.addConstr(7 * x1 + 9 * x2 >= 19, name="zinc_requirement")

    # Optimize
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print("Optimal solution found.")
        print(f"Pounds of lemons: {x1.varValue}")
        print(f"Pounds of pecans: {x2.varValue}")
        print(f"Total cost: ${model.objVal:.2f}")
    else:
        print("No optimal solution found.")

solve_optimization_problem()
```