File: bcv-collect-sig-frame-vector-never-aftergoto.lisp

package info (click to toggle)
acl2 8.6%2Bdfsg-2
  • links: PTS
  • area: main
  • in suites: trixie
  • size: 1,111,420 kB
  • sloc: lisp: 17,818,294; java: 125,359; python: 28,122; javascript: 23,458; cpp: 18,851; ansic: 11,569; perl: 7,678; xml: 5,591; sh: 3,976; makefile: 3,833; ruby: 2,633; yacc: 1,126; ml: 763; awk: 295; csh: 233; lex: 197; php: 178; tcl: 49; asm: 23; haskell: 17
file content (75 lines) | stat: -rw-r--r-- 3,021 bytes parent folder | download | duplicates (2)
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
(in-package "BCV")
(include-book "typechecker")
(include-book "typechecker-ext")
(include-book "typechecker-simple")
(include-book "bcv-base")



;; (encapsulate ()
;;   (local (include-book "bcv-instructionIsTypeSafe-if-verified"))
;;   (defthm mergedcodeIsTypesafe-implies-instructionIsTypeSafe
;;     (implies (and (mergedcodeIsTypesafe env mergedcode stackframe)
;;                   (pc-wff-mergedcode1 0 (allinstructions env))
;;                   (is-suffix mergedcode (allinstructions env))
;;                   (member inst (extract-code mergedcode)))
;;              (instructionIsTypeSafe 
;;               inst 
;;               env
;;               (searchStackFrame (instrOffset inst)
;;                                 (stack-map-wrap 
;;                                  (collect-sig-frame-vector env
;;                                                            mergedcode
;;                         


(local
(defun collect-frames (stack-maps)
  (if (endp stack-maps) nil
    (cons (mapFrame (car stack-maps))
          (collect-frames (cdr stack-maps))))))


  
(local 
(defthm not-member-aftergoto-collect-sig-frame-vector 
  (not (member 'aftergoto (collect-frames 
                           (collect-sig-frame-vector env code init-frame))))
  :hints (("Goal" :in-theory (disable instructionIsTypeSafe
                                      instructionSatisfiesHandlers
                                      instrOffset
                                      sig-do-inst
                                      allinstructions
                                      isEnd
                                      ;;mapFrame
                                      getMap mapOffset
                                      frameIsAssignable
                                      isInstruction
                                      isStackMap)
           :do-not '(generalize)))))

(local
(defthm not-member-aftergoto-then-not-found
  (implies (not (member 'aftergoto (collect-frames stack-maps)))
           (not (equal (searchStackFrame any (stack-map-wrap stack-maps))
                       'aftergoto)))))


(defthm collect-sig-frame-vector-never-aftergoto
  (not (equal (searchstackframe 
               any 
               (stack-map-wrap (collect-sig-frame-vector any-env any-code
                                                         any-init-frame)))
              'aftergoto))
  :hints (("Goal" :in-theory (disable instructionIsTypeSafe
                                      instructionSatisfiesHandlers
                                      instrOffset
                                      sig-do-inst
                                      allinstructions
                                      isEnd
                                      ;;mapFrame
                                      getMap mapOffset
                                      frameIsAssignable
                                      isInstruction
                                      isStackMap)
           :do-not '(generalize))))