/usr/share/acl2-8.0dfsg/books/system/remove-guard-holders-lemmas.lisp is in acl2-books-source 8.0dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | ; Copyright (C) 2017, Regents of the University of Texas
; Written by Matt Kaufmann
; License: A 3-clause BSD license. See the LICENSE file distributed with ACL2.
; This book supports remove-guard-holders.lisp. Normally this book would
; therefore be called remove-guard-holders-support.lisp. However, some of the
; lemmas in it may be useful; in fact, originally all of this work was
; contained in remove-guard-holders.lisp, but Eric Smith requested that we
; separate out such lemmas into this book.
(in-package "ACL2")
(include-book "subcor-var")
(local (include-book "tools/flag" :dir :system))
(local (include-book "pseudo-termp-lemmas"))
(verify-termination (remove-guard-holders1
(declare (xargs :verify-guards nil))))
(local (make-flag remove-guard-holders1))
(local (defthm equal-len-0-rewrite
(equal (equal 0 (len x))
(not (consp x)))))
(defthm len-mv-nth-1-remove-guard-holders1-lst
(equal (len (mv-nth 1 (remove-guard-holders1-lst term)))
(len term)))
(local (defthm pseudo-termp-car-last
(implies (pseudo-term-listp term)
(pseudo-termp (car (last term))))))
(local (defthm-flag-remove-guard-holders1
(defthm pseudo-termp-remove-guard-holders1
(implies (pseudo-termp term)
(pseudo-termp
(mv-nth 1 (remove-guard-holders1 changedp0 term))))
:flag remove-guard-holders1)
(defthm pseudo-term-listp-remove-guard-holders1-lst
(implies (pseudo-term-listp lst)
(pseudo-term-listp
(mv-nth 1 (remove-guard-holders1-lst lst))))
:flag remove-guard-holders1-lst)))
(defthm pseudo-termp-remove-guard-holders1 ; redundant
(implies (pseudo-termp term)
(pseudo-termp
(mv-nth 1 (remove-guard-holders1 changedp0 term)))))
(defthm pseudo-term-listp-remove-guard-holders1-lst ; redundant
(implies (pseudo-term-listp lst)
(pseudo-term-listp
(mv-nth 1 (remove-guard-holders1-lst lst)))))
; It was tempting to avoid the following, but the approach in the
; remove-guard-holders.lisp requires it.
(verify-guards remove-guard-holders1)
|