ACL2 Error in TOP-LEVEL: The guard for the :program function symbol
FACT, which is (INTEGERP X), is violated by the arguments in the call
(FACT T). See :DOC wet for how you might be able to get an error backtrace.
See :DOC set-guard-checking for information about suppressing this
check with (set-guard-checking :none), as recommended for new users.

ACL2 Error in TOP-LEVEL: The guard for the :program function symbol
FACT, which is (INTEGERP X), is violated by the arguments in the call
(FACT T). See :DOC wet for how you might be able to get an error backtrace.
See :DOC set-guard-checking for information about suppressing this
check with (set-guard-checking :none), as recommended for new users.

ACL2 !>:set-guard-checking :none

Turning off guard checking entirely. To allow execution in raw Lisp
for functions with guards other than T, while continuing to mask guard
violations, :SET-GUARD-CHECKING NIL. See :DOC set-guard-checking.

Turning off guard checking entirely. To allow execution in raw Lisp
for functions with guards other than T, while continuing to mask guard
violations, :SET-GUARD-CHECKING NIL. See :DOC set-guard-checking.

For the admission of FACT we will use the relation O< (which is known
to be well-founded on the domain recognized by O-P) and the measure
(ACL2-COUNT X). The non-trivial part of the measure conjecture is

That completes the proof of the measure theorem for FACT. Thus, we
admit this function under the principle of definition. We observe that
the type of FACT is described by the theorem
(AND (INTEGERP (FACT X)) (< 0 (FACT X))). We used the :compound-recognizer
rule POSP-COMPOUND-RECOGNIZER and primitive type reasoning.

ACL2 Warning [Guards] in TOP-LEVEL: Guard-checking will be inhibited
on recursive calls of the executable counterpart (i.e., in the ACL2
logic) of FACT. To check guards on all recursive calls:
(set-guard-checking :all)
To leave behavior unchanged except for inhibiting this message:
(set-guard-checking :nowarn)

ACL2 Error in TOP-LEVEL: The guard for the function symbol FACT, which
is (INTEGERP X), is violated by the arguments in the call (FACT T).
See :DOC wet for how you might be able to get an error backtrace.
See :DOC set-guard-checking for information about suppressing this
check with (set-guard-checking :none), as recommended for new users.

ACL2 Error in TOP-LEVEL: The guard for the function symbol FACT, which
is (INTEGERP X), is violated by the arguments in the call (FACT T).
See :DOC wet for how you might be able to get an error backtrace.
See :DOC set-guard-checking for information about suppressing this
check with (set-guard-checking :none), as recommended for new users.

ACL2 !>:set-guard-checking :none

Turning off guard checking entirely. To allow execution in raw Lisp
for functions with guards other than T, while continuing to mask guard
violations, :SET-GUARD-CHECKING NIL. See :DOC set-guard-checking.

The guard conjecture for FACT is trivial to prove, given the :compound-
recognizer rule POSP-COMPOUND-RECOGNIZER, primitive type reasoning
and the :type-prescription rule FACT. FACT is compliant with Common
Lisp.

ACL2 Error in TOP-LEVEL: The guard for the function symbol FACT, which
is (INTEGERP X), is violated by the arguments in the call (FACT T).
See :DOC wet for how you might be able to get an error backtrace.
See :DOC set-guard-checking for information about suppressing this
check with (set-guard-checking :none), as recommended for new users.

ACL2 Error in TOP-LEVEL: The guard for the function symbol FACT, which
is (INTEGERP X), is violated by the arguments in the call (FACT T).
See :DOC wet for how you might be able to get an error backtrace.
See :DOC set-guard-checking for information about suppressing this
check with (set-guard-checking :none), as recommended for new users.

ACL2 !>:set-guard-checking :none

Turning off guard checking entirely. To allow execution in raw Lisp
for functions with guards other than T, while continuing to mask guard
violations, :SET-GUARD-CHECKING NIL. See :DOC set-guard-checking.

For the admission of FACT we will use the relation O< (which is known
to be well-founded on the domain recognized by O-P) and the measure
(ACL2-COUNT X). The non-trivial part of the measure conjecture is

That completes the proof of the measure theorem for FACT. Thus, we
admit this function under the principle of definition. We observe that
the type of FACT is described by the theorem
(AND (INTEGERP (FACT X)) (< 0 (FACT X))). We used the :compound-recognizer
rule POSP-COMPOUND-RECOGNIZER and primitive type reasoning.

Computing the guard conjecture for FACT....

The guard conjecture for FACT is trivial to prove, given the :compound-
recognizer rule POSP-COMPOUND-RECOGNIZER, primitive type reasoning
and the :type-prescription rule FACT. FACT is compliant with Common
Lisp.

ACL2 Error in TOP-LEVEL: The guard for the function symbol FACT, which
is (INTEGERP X), is violated by the arguments in the call (FACT T).
See :DOC wet for how you might be able to get an error backtrace.
See :DOC set-guard-checking for information about suppressing this
check with (set-guard-checking :none), as recommended for new users.

ACL2 Error in TOP-LEVEL: The guard for the function symbol FACT, which
is (INTEGERP X), is violated by the arguments in the call (FACT T).
See :DOC wet for how you might be able to get an error backtrace.
See :DOC set-guard-checking for information about suppressing this
check with (set-guard-checking :none), as recommended for new users.

ACL2 !>:set-guard-checking :none

Turning off guard checking entirely. To allow execution in raw Lisp
for functions with guards other than T, while continuing to mask guard
violations, :SET-GUARD-CHECKING NIL. See :DOC set-guard-checking.

For the admission of FACT we will use the relation O< (which is known
to be well-founded on the domain recognized by O-P) and the measure
(ACL2-COUNT X). The non-trivial part of the measure conjecture is

That completes the proof of the measure theorem for FACT. Thus, we
admit this function under the principle of definition. We observe that
the type of FACT is described by the theorem
(AND (INTEGERP (FACT X)) (< 0 (FACT X))). We used the :compound-recognizer
rule POSP-COMPOUND-RECOGNIZER and primitive type reasoning.

Turning off guard checking entirely. To allow execution in raw Lisp
for functions with guards other than T, while continuing to mask guard
violations, :SET-GUARD-CHECKING NIL. See :DOC set-guard-checking.

Turning off guard checking entirely. To allow execution in raw Lisp
for functions with guards other than T, while continuing to mask guard
violations, :SET-GUARD-CHECKING NIL. See :DOC set-guard-checking.