September 8, 2025
SISO = Single Input, Single Output → input processed → one output
Why it matters: Predictability, correctness, and links to the Halting Problem
Undecidability No algorithm can always decide whether a program halts (the Halting Problem) → SISO is undecidable.
All-input guarantee The input domain is infinite, so finite testing can’t prove a program halts with exactly one output for all inputs.
Trade-off In restriction (no loops/recursion), we can verify SISO by checking the code (static analysis).
✅ Halts with one output
❌ Infinite loop (non-SISO)
Output:
Bounded testing → Only covers finite inputs, not all inputs
Timeouts → A loop might pass if it halts just within the limit
False positives → Program may fail on untested inputs
Proofgrammers