:- module main.
:- interface.
:- import_module io.
:- pred main(io::di, io::uo) is det.
:- implementation.
:- import_module list, int, string, bool.
% predicado que verifica el teorema del palomar
:- pred pigeonhole(int::in, int::in, bool::out) is det.
pigeonhole(N, M, Result) :-
( if N > M then
Result = yes
else
Result = no
).
% predicado para imprimir el resultado
:- pred print_result(int::in, int::in, bool::in, io::di, io::uo) is det.
print_result(N, M, Result, !IO) :-
( if Result = yes then
io.write_string(format("%d palomas en %d casilleros: Al menos un casillero contendrá más de una paloma.\n", [i(N), i(M)]), !IO)
else
io.write_string(format("%d palomas en %d casilleros: Ningún casillero contendrá más de una paloma.\n", [i(N), i(M)]), !IO)
).
main(!IO) :-
% Ejemplos de prueba
Pigeons1 = 10,
Holes1 = 9,
pigeonhole(Pigeons1, Holes1, Result1),
print_result(Pigeons1, Holes1, Result1, !IO),
Pigeons2 = 5,
Holes2 = 5,
pigeonhole(Pigeons2, Holes2, Result2),
print_result(Pigeons2, Holes2, Result2, !IO).