## Problem Description and Formulation

The problem is a linear programming optimization problem. Sofia Paint store wants to mix two brands of paint, Iota and Lambda, to create a new mixture of paint at a minimum cost. The costs and contents of each paint brand are given, along with the minimum requirements of dye, thinner, and oil for the new mixture.

Let's define the decision variables:
- $x$: the number of cans of Iota paint
- $y$: the number of cans of Lambda paint

The objective function is to minimize the total cost:
\[ \text{Minimize:} \quad 8x + 12y \]

Subject to the constraints:
1. Dye requirement: $3x + 5y \geq 10$
2. Thinner requirement: $5x + 8y \geq 12$
3. Oil requirement: $6x + 3y \geq 15$
4. Non-negativity: $x \geq 0, y \geq 0$

## Gurobi Code

```python
import gurobi

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

    # Define the decision variables
    x = model.addVar(name="Iota", lb=0, vtype=gurobi.GRB.CONTINUOUS)
    y = model.addVar(name="Lambda", lb=0, vtype=gurobi.GRB.CONTINUOUS)

    # Define the objective function
    model.setObjective(8*x + 12*y, sense=gurobi.GRB.MINIMIZE)

    # Add the constraints
    model.addConstr(3*x + 5*y >= 10, name="Dye_Requirement")
    model.addConstr(5*x + 8*y >= 12, name="Thinner_Requirement")
    model.addConstr(6*x + 3*y >= 15, name="Oil_Requirement")

    # Optimize the model
    model.optimize()

    # Print the solution
    if model.status == gurobi.GRB.OPTIMAL:
        print("Optimal Solution:")
        print(f"Iota: {x.varValue}")
        print(f"Lambda: {y.varValue}")
        print(f"Minimum Cost: {model.objVal}")
    else:
        print("The model is infeasible.")

solve_paint_mixture_problem()
```