add a new hypothesis
Major Section: PROOF-CHECKER-COMMANDS
Examples: (claim (< x y)) -- attempt to prove (< x y) from the current top-level hypotheses and if successful, then add (< x y) as a new top-level hypothesis in the current goal (claim (< x y) :otf-flg t :hints (("Goal" :induct t))) -- as above, but call the prover using the indicated values for the otf-flg and hints (claim (< x y) 0) -- as above, except instead of attempting to prove (< x y), create a new subgoal with the same top-level hypotheses as the current goal that has (< x y) as its conclusion (claim (< x y) :hints :none) -- same as immediately aboveThis command creates a new subgoal with the same top-level hypotheses as the current goal but with a conclusion ofGeneral Form: (claim expr &rest rest-args)
expr
. If
rest-args
is a non-empty list headed by a non-keyword, then there
will be no proof attempted for the new subgoal. With that possible
exception, rest-args
should consist of keyword arguments. The
keyword argument :do-not-flatten
controls the ``flattening'' of new
hypotheses, just as with the casesplit
command (as described in its
documentation). The remaining rest-args
are used with a call the
prove
command on the new subgoal, except that if :hints
is a non-nil
atom, then the prover is not called -- rather, this is the same as
the situation described above, where rest-args
is a non-empty list
headed by a non-keyword.
Notes: (1) Unlike the casesplit
command, the claim
command is completely insensitive to governors. (2) It is allowed to
use abbreviations in the hints. (3) The keyword :none
has the
special role as a value of :hints
that is shown clearly in an
example above.