{"record":{"id":"4e750848ac134274","repo":"TheAlgorithms/Python","slug":"input-list-must-contain-at-least-two-elements","errorCode":null,"errorMessage":"Input list must contain at least two elements","messagePattern":"Input list must contain at least two elements","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"boolean_algebra/imply_gate.py","lineNumber":80,"sourceCode":"    >>> recursive_imply_list([0, 0, 0])\n    0\n    >>> recursive_imply_list([0, 0, 1])\n    1\n    >>> recursive_imply_list([0, 1, 0])\n    0\n    >>> recursive_imply_list([0, 1, 1])\n    1\n    >>> recursive_imply_list([1, 0, 0])\n    1\n    >>> recursive_imply_list([1, 0, 1])\n    1\n    >>> recursive_imply_list([1, 1, 0])\n    0\n    >>> recursive_imply_list([1, 1, 1])\n    1\n    \"\"\"\n    if len(input_list) < 2:\n        raise ValueError(\"Input list must contain at least two elements\")\n    first_implication = imply_gate(input_list[0], input_list[1])\n    if len(input_list) == 2:\n        return first_implication\n    new_list = [first_implication, *input_list[2:]]\n    return recursive_imply_list(new_list)\n\n\nif __name__ == \"__main__\":\n    import doctest\n\n    doctest.testmod()\n","sourceCodeStart":62,"sourceCodeEnd":92,"githubUrl":"https://github.com/TheAlgorithms/Python/blob/f5988cc09713315817df6a7e327e258013a94440/boolean_algebra/imply_gate.py#L62-L92","documentation":"Raised by recursive_imply_list() when the input list has fewer than two elements. The function folds a chain of logical implication (a -> b -> c) left-associatively by calling imply_gate on the first two elements; a single element or empty list leaves nothing to imply, so it refuses rather than guessing an identity value.","triggerScenarios":"Calling recursive_imply_list([1]), recursive_imply_list([0]), or recursive_imply_list([]).","commonSituations":"Programmatically slicing boolean flag lists (e.g. conditions[1:]) and passing a too-short remainder, or degenerate user input that selects only one condition.","solutions":["Check len(input_list) >= 2 before calling.","If a single element is meaningful for your logic, handle it yourself: return the element (or imply-identity convention) instead of delegating.","Guard list-producing code paths (filters, slices) so they cannot emit <2 elements."],"exampleFix":"# before\nrecursive_imply_list([1])  # ValueError: Input list must contain at least two elements\n\n# after\nresult = flags[0] if len(flags) == 1 else recursive_imply_list(flags)","handlingStrategy":"validation","validationCode":"if len(input_list) < 2:\n    raise ValueError('need >= 2 boolean flags to imply')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Check len(list) >= 2 before folding implication chains.","Guard slices/filters that shrink lists dynamically."],"tags":["boolean-algebra","validation","python"],"backgroundTag":null,"analyzedSha":"f5988cc09713315817df6a7e327e258013a94440","analyzedAt":"2026-08-14T17:30:07.041Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}