def fermionic_constraints(a):
substitutions = {}<EOL>for i, ai in enumerate(a):<EOL><INDENT>substitutions[ai ** <NUM_LIT:2>] = <NUM_LIT:0><EOL>substitutions[Dagger(ai) ** <NUM_LIT:2>] = <NUM_LIT:0><EOL>substitutions[ai * Dagger(ai)] = <NUM_LIT:1.0> - Dagger(ai) * ai<EOL>for aj in a[i+<NUM_LIT:1>:]:<EOL><INDENT>substitutions[ai*Dagger(aj)] = -Dagger(aj)*ai<EOL>substitutions[Dagger(ai)*aj] = -aj*Dagger(ai)<EOL>substitutions[ai*aj] = -aj*ai<EOL>substitutions[Dagger(ai) * Dagger(aj)] = - Dagger(aj) * Dagger(ai)<EOL><DEDENT><DEDENT>return substitutions<EOL>
Return  a set of constraints that define fermionic ladder operators.

    :param a: The non-Hermitian variables.
    :type a: list of :class:`sympy.physics.quantum.operator.Operator`.
    :returns: a dict of substitutions.