SET-DEFAULT-BACKCHAIN-LIMIT.html -- ACL2 Version 6.3

## SET-DEFAULT-BACKCHAIN-LIMIT

sets the default backchain-limit used when admitting a rule

    Major Section:  SWITCHES-PARAMETERS-AND-MODES

Note: This is an event! It does not print the usual event summary but nevertheless changes the ACL2 logical world and is so recorded. Moreover, its effect is to set the `acl2-defaults-table`, and hence its effect is `local` to the book or `encapsulate` form containing it; see acl2-defaults-table.

This event sets the default `backchain-limit` used when a new `rewrite`, `linear`, `meta`, or `type-prescription` rule is admitted. Its value may be a two-element list whose elements are each either `nil` or a non-negative integer. Its value `x` may also be `nil` or a non-negative integer, which is treated as the two element list `(x x)`.

The first element of the list is used to limit backchaining for a rule of class `type-prescription` while the second element is used to limit backchaining for the other three classes of rules mentioned above. See backchain-limit for details about how backchain-limits are used. The examples below assume that a new rule doesn't itself specify a value for `:backchain-limit-lst`.

    :set-default-backchain-limit nil  ; do not impose backchain limits for the
                                      ; rule
    :set-default-backchain-limit 0    ; allow only type-set reasoning for
                                      ; relieving a new rule's hypotheses
    :set-default-backchain-limit 500  ; allow backchaining through a new rewrite,
                                      ; linear, or meta rule's hypotheses to a
                                      ; depth of no more than 500
    (set-default-backchain-limit 500) ; same as above
    :set-default-backchain-limit (nil 500)
                                      ; same as above
    (set-default-backchain-limit '(nil 500))
                                      ; same as above
    (set-default-backchain-limit '(3 500))
                                      ; for a new :type-prescription rule, allow
                                      ; type-set backchaining to a depth
                                      ; of no more than 3; for a new
                                      ; rule of class :rewrite, :linear,
                                      ; or :meta, allow backchaining to
                                      ; a depth of no more than 50
    (set-default-backchain-limit '(nil 500))
                                      ; do not limit backchaining for a
                                      ; new :type-prescription rule; for
                                      ; a new rule of class :rewrite,
                                      ; :linear, or :meta, allow
                                      ; backchaining to a depth of no
                                      ; more than 50

The initial default backchain-limit is `nil`.