## Step 1: Define the symbolic representation of the variables
The variables are defined as follows: 
- 'x0' for 'light infantry companies'
- 'x1' for 'air defense batteries'
- 'x2' for 'military intelligence companies'

## Step 2: Define the symbolic representation of the problem
The objective function to maximize is: $6x_0 + 6x_1 + 2x_2$

## Step 3: List the constraints in symbolic notation
The constraints are:
- $28x_0 + 8x_1 + 22x_2 \geq 31$ (total combined logistical capacity from all must be 31 or more)
- $24x_0 + 11x_1 + 9x_2 \geq 88$ (total fuel demand of at least 88 gal/day)
- $8x_1 + 22x_2 \leq 105$ (total combined logistical capacity from air defense batteries and military intelligence companies should be 105 or less)
- $28x_0 + 22x_2 \leq 123$ (total combined logistical capacity from light infantry companies and military intelligence companies should be 123 or less)
- $28x_0 + 8x_1 \leq 126$ (total combined logistical capacity from light infantry companies and air defense batteries should be no more than 126)
- $28x_0 + 8x_1 + 22x_2 \leq 126$ (total combined logistical capacity from all has to be as much or less than 126)
- $24x_0 + 9x_2 \leq 252$ (total fuel demand of light infantry companies and military intelligence companies must have a total fuel demand of no more than 252 gal/day)
- $11x_1 + 9x_2 \leq 212$ (total fuel demand of air defense batteries and military intelligence companies must be at maximum 212 gallons per day)
- $24x_0 + 11x_1 + 9x_2 \leq 212$ (total fuel demand of all has to be no greater than 212 gallons/day)
- $x_0, x_1, x_2 \geq 0$ and are integers (whole numbers)

## 4: Write down the symbolic representation of the problem
```json
{
'sym_variables': [('x0', 'light infantry companies'), ('x1', 'air defense batteries'), ('x2', 'military intelligence companies')],
'objective_function': '6*x0 + 6*x1 + 2*x2',
'constraints': [
    '28*x0 + 8*x1 + 22*x2 >= 31',
    '24*x0 + 11*x1 + 9*x2 >= 88',
    '8*x1 + 22*x2 <= 105',
    '28*x0 + 22*x2 <= 123',
    '28*x0 + 8*x1 <= 126',
    '28*x0 + 8*x1 + 22*x2 <= 126',
    '24*x0 + 9*x2 <= 252',
    '11*x1 + 9*x2 <= 212',
    '24*x0 + 11*x1 + 9*x2 <= 212'
]
}
```

## 5: Implement the optimization problem using Gurobi
```python
import gurobi

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

    # Define the variables
    x0 = model.addVar(name='light_infantry_companies', vtype='I')
    x1 = model.addVar(name='air_defense_batteries', vtype='I')
    x2 = model.addVar(name='military_intelligence_companies', vtype='I')

    # Define the objective function
    model.setObjective(6 * x0 + 6 * x1 + 2 * x2, gurobi.GRB.MAXIMIZE)

    # Add constraints
    model.addConstr(28 * x0 + 8 * x1 + 22 * x2 >= 31)
    model.addConstr(24 * x0 + 11 * x1 + 9 * x2 >= 88)
    model.addConstr(8 * x1 + 22 * x2 <= 105)
    model.addConstr(28 * x0 + 22 * x2 <= 123)
    model.addConstr(28 * x0 + 8 * x1 <= 126)
    model.addConstr(28 * x0 + 8 * x1 + 22 * x2 <= 126)
    model.addConstr(24 * x0 + 9 * x2 <= 252)
    model.addConstr(11 * x1 + 9 * x2 <= 212)
    model.addConstr(24 * x0 + 11 * x1 + 9 * x2 <= 212)

    # Optimize the model
    model.optimize()

    # Print the solution
    if model.status == gurobi.GRB.OPTIMAL:
        print('Optimal solution found.')
        print(f'Light infantry companies: {x0.varValue}')
        print(f'Air defense batteries: {x1.varValue}')
        print(f'Military intelligence companies: {x2.varValue}')
        print(f'Objective function value: {model.objVal}')
    else:
        print('No optimal solution found.')

solve_optimization_problem()
```