Возможное объяснение состоит в том, что логическое значение обычно хранится не в одном бите, а в целом числе.Если вы сделаете побитовое not
целое число 0 (двоичное 0000 0000 ...), оно будет двоичным 1111 1111 ....), что означает -1 для двух дополнений со знаком целых чисел.
Такесли вы говорите, false := 0; true := not false;
, то имеет смысл, что истина равна -1.
На различных основных диалектах истина также равна -1 по той же причине.