src/HOL/SMT_Examples/SMT_Word_Examples.certs
author blanchet
Thu Sep 18 00:03:46 2014 +0200 (2014-09-18)
changeset 58367 8af1e68d7e1a
parent 58365 src/HOL/SMT_Examples/SMT_Word_Examples.certs2@b638978797fd
child 58431 751e8517daa7
permissions -rw-r--r--
renamed SMT certificate files, following 'SMT2' -> 'SMT' renaming
blanchet@57204
     1
8e6fd56de8adc20c29f4bdb8c2c55e63988185a8 8 0
blanchet@56109
     2
unsat
blanchet@56109
     3
((set-logic <null>)
blanchet@56109
     4
(proof
blanchet@56727
     5
(let ((@x38 (monotonicity (rewrite (= (bvneg (_ bv5 4)) (_ bv11 4))) (= (= (_ bv11 4) (bvneg (_ bv5 4))) (= (_ bv11 4) (_ bv11 4))))))
blanchet@56727
     6
(let ((@x42 (trans @x38 (rewrite (= (= (_ bv11 4) (_ bv11 4)) true)) (= (= (_ bv11 4) (bvneg (_ bv5 4))) true))))
blanchet@56727
     7
(let ((@x49 (trans (monotonicity @x42 (= (not (= (_ bv11 4) (bvneg (_ bv5 4)))) (not true))) (rewrite (= (not true) false)) (= (not (= (_ bv11 4) (bvneg (_ bv5 4)))) false))))
blanchet@56727
     8
(mp (asserted (not (= (_ bv11 4) (bvneg (_ bv5 4))))) @x49 false))))))
blanchet@56109
     9
blanchet@57204
    10
aa1cdd144e99278cb2bdb51d68a75ec8d25b433d 7 0
blanchet@56079
    11
unsat
blanchet@56079
    12
((set-logic <null>)
blanchet@56079
    13
(proof
blanchet@56727
    14
(let ((@x35 (monotonicity (rewrite (= (= (_ bv11 4) (_ bv11 4)) true)) (= (not (= (_ bv11 4) (_ bv11 4))) (not true)))))
blanchet@56727
    15
(let ((@x39 (trans @x35 (rewrite (= (not true) false)) (= (not (= (_ bv11 4) (_ bv11 4))) false))))
blanchet@56727
    16
(mp (asserted (not (= (_ bv11 4) (_ bv11 4)))) @x39 false)))))
blanchet@56079
    17
blanchet@57204
    18
a14afea8a52a1586ff44eff03b88f1717144d17a 7 0
blanchet@56079
    19
unsat
blanchet@56079
    20
((set-logic <null>)
blanchet@56079
    21
(proof
blanchet@56727
    22
(let ((@x38 (monotonicity (rewrite (= (bvult (_ bv23 8) (_ bv27 8)) true)) (= (not (bvult (_ bv23 8) (_ bv27 8))) (not true)))))
blanchet@56727
    23
(let ((@x42 (trans @x38 (rewrite (= (not true) false)) (= (not (bvult (_ bv23 8) (_ bv27 8))) false))))
blanchet@56727
    24
(mp (asserted (not (bvult (_ bv23 8) (_ bv27 8)))) @x42 false)))))
blanchet@56079
    25
blanchet@57204
    26
282d94be68c87485ea9ec13e80f6f2a51b18f5bd 9 0
blanchet@56109
    27
unsat
blanchet@56109
    28
((set-logic <null>)
blanchet@56109
    29
(proof
blanchet@56727
    30
(let ((@x38 (monotonicity (rewrite (= (bvadd (_ bv27 5) (_ bv11 5)) (_ bv6 5))) (= (= (bvadd (_ bv27 5) (_ bv11 5)) (_ bv6 5)) (= (_ bv6 5) (_ bv6 5))))))
blanchet@56727
    31
(let ((@x42 (trans @x38 (rewrite (= (= (_ bv6 5) (_ bv6 5)) true)) (= (= (bvadd (_ bv27 5) (_ bv11 5)) (_ bv6 5)) true))))
blanchet@56727
    32
(let ((@x45 (monotonicity @x42 (= (not (= (bvadd (_ bv27 5) (_ bv11 5)) (_ bv6 5))) (not true)))))
blanchet@56727
    33
(let ((@x49 (trans @x45 (rewrite (= (not true) false)) (= (not (= (bvadd (_ bv27 5) (_ bv11 5)) (_ bv6 5))) false))))
blanchet@56727
    34
(mp (asserted (not (= (bvadd (_ bv27 5) (_ bv11 5)) (_ bv6 5)))) @x49 false)))))))
blanchet@56109
    35
blanchet@57204
    36
4df99826f79b2c96079a4c58ea51a58b8cc6199c 9 0
blanchet@56079
    37
unsat
blanchet@56079
    38
((set-logic <null>)
blanchet@56079
    39
(proof
blanchet@56727
    40
(let ((@x38 (monotonicity (rewrite (= (bvmul (_ bv7 8) (_ bv3 8)) (_ bv21 8))) (= (= (bvmul (_ bv7 8) (_ bv3 8)) (_ bv21 8)) (= (_ bv21 8) (_ bv21 8))))))
blanchet@56727
    41
(let ((@x42 (trans @x38 (rewrite (= (= (_ bv21 8) (_ bv21 8)) true)) (= (= (bvmul (_ bv7 8) (_ bv3 8)) (_ bv21 8)) true))))
blanchet@56727
    42
(let ((@x45 (monotonicity @x42 (= (not (= (bvmul (_ bv7 8) (_ bv3 8)) (_ bv21 8))) (not true)))))
blanchet@56727
    43
(let ((@x49 (trans @x45 (rewrite (= (not true) false)) (= (not (= (bvmul (_ bv7 8) (_ bv3 8)) (_ bv21 8))) false))))
blanchet@56727
    44
(mp (asserted (not (= (bvmul (_ bv7 8) (_ bv3 8)) (_ bv21 8)))) @x49 false)))))))
blanchet@56079
    45
blanchet@57204
    46
45bf9e0a746f7dde46f8242e5851928c2671c7f2 9 0
blanchet@56079
    47
unsat
blanchet@56079
    48
((set-logic <null>)
blanchet@56079
    49
(proof
blanchet@56727
    50
(let ((@x43 (monotonicity (rewrite (= (bvsub (_ bv11 8) (_ bv27 8)) (_ bv240 8))) (rewrite (= (bvneg (_ bv16 8)) (_ bv240 8))) (= (= (bvsub (_ bv11 8) (_ bv27 8)) (bvneg (_ bv16 8))) (= (_ bv240 8) (_ bv240 8))))))
blanchet@56727
    51
(let ((@x47 (trans @x43 (rewrite (= (= (_ bv240 8) (_ bv240 8)) true)) (= (= (bvsub (_ bv11 8) (_ bv27 8)) (bvneg (_ bv16 8))) true))))
blanchet@56727
    52
(let ((@x50 (monotonicity @x47 (= (not (= (bvsub (_ bv11 8) (_ bv27 8)) (bvneg (_ bv16 8)))) (not true)))))
blanchet@56727
    53
(let ((@x54 (trans @x50 (rewrite (= (not true) false)) (= (not (= (bvsub (_ bv11 8) (_ bv27 8)) (bvneg (_ bv16 8)))) false))))
blanchet@56727
    54
(mp (asserted (not (= (bvsub (_ bv11 8) (_ bv27 8)) (bvneg (_ bv16 8))))) @x54 false)))))))
blanchet@56079
    55
fleury@57711
    56
6dd848d7b26e0521039e21a5e2bafebc1fee8c9b 7 0
fleury@57711
    57
unsat
fleury@57711
    58
((set-logic <null>)
fleury@57711
    59
(proof
fleury@57711
    60
(let ((@x35 (monotonicity (rewrite (= (= (_ bv11 5) (_ bv11 5)) true)) (= (not (= (_ bv11 5) (_ bv11 5))) (not true)))))
fleury@57711
    61
(let ((@x39 (trans @x35 (rewrite (= (not true) false)) (= (not (= (_ bv11 5) (_ bv11 5))) false))))
fleury@57711
    62
(mp (asserted (not (= (_ bv11 5) (_ bv11 5)))) @x39 false)))))
fleury@57711
    63
blanchet@57204
    64
00a7ff287d9c23d984163ea8e0cac8ac61008afd 11 0
blanchet@56111
    65
unsat
blanchet@56111
    66
((set-logic <null>)
blanchet@56111
    67
(proof
blanchet@56727
    68
(let ((@x42 (monotonicity (rewrite (= (bvneg (_ bv40 7)) (_ bv88 7))) (= (bvadd (bvneg (_ bv40 7)) (_ bv1 7)) (bvadd (_ bv88 7) (_ bv1 7))))))
blanchet@56727
    69
(let ((@x47 (trans @x42 (rewrite (= (bvadd (_ bv88 7) (_ bv1 7)) (_ bv89 7))) (= (bvadd (bvneg (_ bv40 7)) (_ bv1 7)) (_ bv89 7)))))
blanchet@56727
    70
(let ((@x52 (monotonicity @x47 (rewrite (= (bvneg (_ bv39 7)) (_ bv89 7))) (= (= (bvadd (bvneg (_ bv40 7)) (_ bv1 7)) (bvneg (_ bv39 7))) (= (_ bv89 7) (_ bv89 7))))))
blanchet@56727
    71
(let ((@x56 (trans @x52 (rewrite (= (= (_ bv89 7) (_ bv89 7)) true)) (= (= (bvadd (bvneg (_ bv40 7)) (_ bv1 7)) (bvneg (_ bv39 7))) true))))
blanchet@56727
    72
(let ((@x59 (monotonicity @x56 (= (not (= (bvadd (bvneg (_ bv40 7)) (_ bv1 7)) (bvneg (_ bv39 7)))) (not true)))))
blanchet@56727
    73
(let ((@x63 (trans @x59 (rewrite (= (not true) false)) (= (not (= (bvadd (bvneg (_ bv40 7)) (_ bv1 7)) (bvneg (_ bv39 7)))) false))))
blanchet@56727
    74
(mp (asserted (not (= (bvadd (bvneg (_ bv40 7)) (_ bv1 7)) (bvneg (_ bv39 7))))) @x63 false)))))))))
blanchet@56111
    75
blanchet@57204
    76
9673ca576ccae343db48aa68f876fd3a2515cc33 19 0
blanchet@56079
    77
unsat
blanchet@56079
    78
((set-logic <null>)
blanchet@56079
    79
(proof
blanchet@56727
    80
(let ((?x35 (bvadd b$ c$)))
blanchet@56727
    81
(let ((?x36 (bvadd ?x35 a$)))
blanchet@56727
    82
(let ((?x30 (bvmul (_ bv2 32) b$)))
blanchet@56727
    83
(let ((?x31 (bvadd a$ ?x30)))
blanchet@56727
    84
(let ((?x33 (bvadd ?x31 c$)))
blanchet@56727
    85
(let ((?x34 (bvsub ?x33 b$)))
blanchet@56727
    86
(let (($x37 (= ?x34 ?x36)))
blanchet@56727
    87
(let (($x38 (not $x37)))
blanchet@56727
    88
(let ((@x58 (rewrite (= (= (bvadd a$ b$ c$) (bvadd a$ b$ c$)) true))))
blanchet@56727
    89
(let ((@x48 (rewrite (= (bvsub (bvadd a$ ?x30 c$) b$) (bvadd a$ b$ c$)))))
blanchet@56727
    90
(let ((@x46 (monotonicity (rewrite (= ?x33 (bvadd a$ ?x30 c$))) (= ?x34 (bvsub (bvadd a$ ?x30 c$) b$)))))
blanchet@56727
    91
(let ((@x56 (monotonicity (trans @x46 @x48 (= ?x34 (bvadd a$ b$ c$))) (rewrite (= ?x36 (bvadd a$ b$ c$))) (= $x37 (= (bvadd a$ b$ c$) (bvadd a$ b$ c$))))))
blanchet@56727
    92
(let ((@x63 (monotonicity (trans @x56 @x58 (= $x37 true)) (= $x38 (not true)))))
blanchet@56727
    93
(let ((@x67 (trans @x63 (rewrite (= (not true) false)) (= $x38 false))))
blanchet@56727
    94
(mp (asserted $x38) @x67 false)))))))))))))))))
blanchet@56079
    95
blanchet@57204
    96
b4600e6d14c88b633ac7bcc5b2e24af8539b0218 18 0
blanchet@56079
    97
unsat
blanchet@56079
    98
((set-logic <null>)
blanchet@56079
    99
(proof
blanchet@56727
   100
(let ((?x31 (bvmul (_ bv4 4) x$)))
blanchet@56727
   101
(let (($x32 (= ?x31 (_ bv4 4))))
blanchet@56727
   102
(let (($x43 (= (_ bv5 4) x$)))
blanchet@56727
   103
(let (($x56 (not (or (not $x43) (= (_ bv4 4) ?x31)))))
blanchet@56727
   104
(let ((@x48 (monotonicity (rewrite (= (= x$ (_ bv5 4)) $x43)) (= (not (= x$ (_ bv5 4))) (not $x43)))))
blanchet@56727
   105
(let ((@x55 (monotonicity @x48 (rewrite (= $x32 (= (_ bv4 4) ?x31))) (= (or (not (= x$ (_ bv5 4))) $x32) (or (not $x43) (= (_ bv4 4) ?x31))))))
blanchet@56727
   106
(let (($x34 (not (=> (= x$ (_ bv5 4)) $x32))))
blanchet@56727
   107
(let ((@x39 (rewrite (= (=> (= x$ (_ bv5 4)) $x32) (or (not (= x$ (_ bv5 4))) $x32)))))
blanchet@56727
   108
(let ((@x60 (trans (monotonicity @x39 (= $x34 (not (or (not (= x$ (_ bv5 4))) $x32)))) (monotonicity @x55 (= (not (or (not (= x$ (_ bv5 4))) $x32)) $x56)) (= $x34 $x56))))
blanchet@56727
   109
(let ((@x67 (monotonicity (not-or-elim (mp (asserted $x34) @x60 $x56) $x43) (= ?x31 (bvmul (_ bv4 4) (_ bv5 4))))))
blanchet@56727
   110
(let ((@x73 (monotonicity (trans @x67 (rewrite (= (bvmul (_ bv4 4) (_ bv5 4)) (_ bv4 4))) $x32) (= (= (_ bv4 4) ?x31) (= (_ bv4 4) (_ bv4 4))))))
blanchet@56727
   111
(let ((@x77 (trans @x73 (rewrite (= (= (_ bv4 4) (_ bv4 4)) true)) (= (= (_ bv4 4) ?x31) true))))
blanchet@56727
   112
(let ((@x84 (trans (monotonicity @x77 (= (not (= (_ bv4 4) ?x31)) (not true))) (rewrite (= (not true) false)) (= (not (= (_ bv4 4) ?x31)) false))))
blanchet@56727
   113
(mp (not-or-elim (mp (asserted $x34) @x60 $x56) (not (= (_ bv4 4) ?x31))) @x84 false))))))))))))))))
blanchet@56079
   114
blanchet@57204
   115
d150015a66b6757a72346710966844993c0f3c27 9 0
blanchet@56079
   116
unsat
blanchet@56079
   117
((set-logic <null>)
blanchet@56079
   118
(proof
blanchet@56727
   119
(let ((@x37 (monotonicity (rewrite (= (bvand (_ bv6 32) (_ bv5 32)) (_ bv4 32))) (= (= (bvand (_ bv6 32) (_ bv5 32)) (_ bv4 32)) (= (_ bv4 32) (_ bv4 32))))))
blanchet@56727
   120
(let ((@x41 (trans @x37 (rewrite (= (= (_ bv4 32) (_ bv4 32)) true)) (= (= (bvand (_ bv6 32) (_ bv5 32)) (_ bv4 32)) true))))
blanchet@56727
   121
(let ((@x44 (monotonicity @x41 (= (not (= (bvand (_ bv6 32) (_ bv5 32)) (_ bv4 32))) (not true)))))
blanchet@56727
   122
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (bvand (_ bv6 32) (_ bv5 32)) (_ bv4 32))) false))))
blanchet@56727
   123
(mp (asserted (not (= (bvand (_ bv6 32) (_ bv5 32)) (_ bv4 32)))) @x48 false)))))))
blanchet@56079
   124
blanchet@58365
   125
d7cc0827eb340c29b0f489145022e4b3e3610818 9 0
blanchet@58365
   126
unsat
blanchet@58365
   127
((set-logic <null>)
blanchet@58365
   128
(proof
blanchet@58365
   129
(let ((@x37 (monotonicity (rewrite (= (bvxor (_ bv240 8) (_ bv255 8)) (_ bv15 8))) (= (= (bvxor (_ bv240 8) (_ bv255 8)) (_ bv15 8)) (= (_ bv15 8) (_ bv15 8))))))
blanchet@58365
   130
(let ((@x41 (trans @x37 (rewrite (= (= (_ bv15 8) (_ bv15 8)) true)) (= (= (bvxor (_ bv240 8) (_ bv255 8)) (_ bv15 8)) true))))
blanchet@58365
   131
(let ((@x44 (monotonicity @x41 (= (not (= (bvxor (_ bv240 8) (_ bv255 8)) (_ bv15 8))) (not true)))))
blanchet@58365
   132
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (bvxor (_ bv240 8) (_ bv255 8)) (_ bv15 8))) false))))
blanchet@58365
   133
(mp (asserted (not (= (bvxor (_ bv240 8) (_ bv255 8)) (_ bv15 8)))) @x48 false)))))))
blanchet@58365
   134
blanchet@57204
   135
200e29aa9f19844d244c5c9755155eb956c5cf7c 9 0
blanchet@56079
   136
unsat
blanchet@56079
   137
((set-logic <null>)
blanchet@56079
   138
(proof
blanchet@56727
   139
(let ((@x37 (monotonicity (rewrite (= (bvor (_ bv6 8) (_ bv3 8)) (_ bv7 8))) (= (= (bvor (_ bv6 8) (_ bv3 8)) (_ bv7 8)) (= (_ bv7 8) (_ bv7 8))))))
blanchet@56727
   140
(let ((@x41 (trans @x37 (rewrite (= (= (_ bv7 8) (_ bv7 8)) true)) (= (= (bvor (_ bv6 8) (_ bv3 8)) (_ bv7 8)) true))))
blanchet@56727
   141
(let ((@x44 (monotonicity @x41 (= (not (= (bvor (_ bv6 8) (_ bv3 8)) (_ bv7 8))) (not true)))))
blanchet@56727
   142
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (bvor (_ bv6 8) (_ bv3 8)) (_ bv7 8))) false))))
blanchet@56727
   143
(mp (asserted (not (= (bvor (_ bv6 8) (_ bv3 8)) (_ bv7 8)))) @x48 false)))))))
blanchet@56079
   144
fleury@57711
   145
3838eb33edcd292c3a0ecbf1662b54af3940189f 8 0
fleury@57711
   146
unsat
fleury@57711
   147
((set-logic <null>)
fleury@57711
   148
(proof
fleury@57711
   149
(let ((@x36 (monotonicity (rewrite (= (bvnot (_ bv240 16)) (_ bv65295 16))) (= (= (bvnot (_ bv240 16)) (_ bv65295 16)) (= (_ bv65295 16) (_ bv65295 16))))))
fleury@57711
   150
(let ((@x40 (trans @x36 (rewrite (= (= (_ bv65295 16) (_ bv65295 16)) true)) (= (= (bvnot (_ bv240 16)) (_ bv65295 16)) true))))
fleury@57711
   151
(let ((@x47 (trans (monotonicity @x40 (= (not (= (bvnot (_ bv240 16)) (_ bv65295 16))) (not true))) (rewrite (= (not true) false)) (= (not (= (bvnot (_ bv240 16)) (_ bv65295 16))) false))))
fleury@57711
   152
(mp (asserted (not (= (bvnot (_ bv240 16)) (_ bv65295 16)))) @x47 false))))))
fleury@57711
   153
blanchet@57204
   154
14431ccb33137348161eb6ca6cfb2e57942c3f9d 9 0
blanchet@56079
   155
unsat
blanchet@56079
   156
((set-logic <null>)
blanchet@56079
   157
(proof
blanchet@56727
   158
(let ((@x37 (monotonicity (rewrite (= (concat (_ bv11 4) (_ bv27 8)) (_ bv2843 12))) (= (= (concat (_ bv11 4) (_ bv27 8)) (_ bv2843 12)) (= (_ bv2843 12) (_ bv2843 12))))))
blanchet@56727
   159
(let ((@x41 (trans @x37 (rewrite (= (= (_ bv2843 12) (_ bv2843 12)) true)) (= (= (concat (_ bv11 4) (_ bv27 8)) (_ bv2843 12)) true))))
blanchet@56727
   160
(let ((@x44 (monotonicity @x41 (= (not (= (concat (_ bv11 4) (_ bv27 8)) (_ bv2843 12))) (not true)))))
blanchet@56727
   161
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (concat (_ bv11 4) (_ bv27 8)) (_ bv2843 12))) false))))
blanchet@56727
   162
(mp (asserted (not (= (concat (_ bv11 4) (_ bv27 8)) (_ bv2843 12)))) @x48 false)))))))
blanchet@56079
   163
fleury@57711
   164
880bee16a8f6469b14122277b92e87533ef6a071 9 0
blanchet@57696
   165
unsat
blanchet@57696
   166
((set-logic <null>)
blanchet@57696
   167
(proof
fleury@57711
   168
(let ((@x37 (monotonicity (rewrite (= (concat (_ bv3 4) (_ bv15 6)) (_ bv207 10))) (= (= (concat (_ bv3 4) (_ bv15 6)) (_ bv207 10)) (= (_ bv207 10) (_ bv207 10))))))
fleury@57711
   169
(let ((@x41 (trans @x37 (rewrite (= (= (_ bv207 10) (_ bv207 10)) true)) (= (= (concat (_ bv3 4) (_ bv15 6)) (_ bv207 10)) true))))
fleury@57711
   170
(let ((@x44 (monotonicity @x41 (= (not (= (concat (_ bv3 4) (_ bv15 6)) (_ bv207 10))) (not true)))))
fleury@57711
   171
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (concat (_ bv3 4) (_ bv15 6)) (_ bv207 10))) false))))
fleury@57711
   172
(mp (asserted (not (= (concat (_ bv3 4) (_ bv15 6)) (_ bv207 10)))) @x48 false)))))))
blanchet@57696
   173
blanchet@58365
   174
9e2fe3c1b368a228c2dbf7cde7085d55a48a6d7d 8 0
blanchet@57696
   175
unsat
blanchet@57696
   176
((set-logic <null>)
blanchet@57696
   177
(proof
blanchet@57696
   178
(let ((@x36 (monotonicity (rewrite (= ((_ extract 2 1) (_ bv6 4)) (_ bv3 2))) (= (= ((_ extract 2 1) (_ bv6 4)) (_ bv3 2)) (= (_ bv3 2) (_ bv3 2))))))
blanchet@57696
   179
(let ((@x40 (trans @x36 (rewrite (= (= (_ bv3 2) (_ bv3 2)) true)) (= (= ((_ extract 2 1) (_ bv6 4)) (_ bv3 2)) true))))
blanchet@57696
   180
(let ((@x47 (trans (monotonicity @x40 (= (not (= ((_ extract 2 1) (_ bv6 4)) (_ bv3 2))) (not true))) (rewrite (= (not true) false)) (= (not (= ((_ extract 2 1) (_ bv6 4)) (_ bv3 2))) false))))
blanchet@57696
   181
(mp (asserted (not (= ((_ extract 2 1) (_ bv6 4)) (_ bv3 2)))) @x47 false))))))
blanchet@57696
   182
blanchet@57204
   183
446b3cb9d63aa1f488dc092ed3fb111d2ad50b4e 9 0
blanchet@56079
   184
unsat
blanchet@56079
   185
((set-logic <null>)
blanchet@56079
   186
(proof
blanchet@56727
   187
(let ((@x36 (monotonicity (rewrite (= ((_ zero_extend 6) (_ bv10 4)) (_ bv10 10))) (= (= ((_ zero_extend 6) (_ bv10 4)) (_ bv10 10)) (= (_ bv10 10) (_ bv10 10))))))
blanchet@56727
   188
(let ((@x40 (trans @x36 (rewrite (= (= (_ bv10 10) (_ bv10 10)) true)) (= (= ((_ zero_extend 6) (_ bv10 4)) (_ bv10 10)) true))))
blanchet@56727
   189
(let ((@x43 (monotonicity @x40 (= (not (= ((_ zero_extend 6) (_ bv10 4)) (_ bv10 10))) (not true)))))
blanchet@56727
   190
(let ((@x47 (trans @x43 (rewrite (= (not true) false)) (= (not (= ((_ zero_extend 6) (_ bv10 4)) (_ bv10 10))) false))))
blanchet@56727
   191
(mp (asserted (not (= ((_ zero_extend 6) (_ bv10 4)) (_ bv10 10)))) @x47 false)))))))
blanchet@56079
   192
blanchet@57204
   193
956d8b6229140c8c4aa869ab0f3765697ab8ff25 9 0
blanchet@56079
   194
unsat
blanchet@56079
   195
((set-logic <null>)
blanchet@56079
   196
(proof
blanchet@56727
   197
(let ((@x36 (monotonicity (rewrite (= ((_ sign_extend 2) (_ bv10 4)) (_ bv58 6))) (= (= ((_ sign_extend 2) (_ bv10 4)) (_ bv58 6)) (= (_ bv58 6) (_ bv58 6))))))
blanchet@56727
   198
(let ((@x40 (trans @x36 (rewrite (= (= (_ bv58 6) (_ bv58 6)) true)) (= (= ((_ sign_extend 2) (_ bv10 4)) (_ bv58 6)) true))))
blanchet@56727
   199
(let ((@x43 (monotonicity @x40 (= (not (= ((_ sign_extend 2) (_ bv10 4)) (_ bv58 6))) (not true)))))
blanchet@56727
   200
(let ((@x47 (trans @x43 (rewrite (= (not true) false)) (= (not (= ((_ sign_extend 2) (_ bv10 4)) (_ bv58 6))) false))))
blanchet@56727
   201
(mp (asserted (not (= ((_ sign_extend 2) (_ bv10 4)) (_ bv58 6)))) @x47 false)))))))
blanchet@56079
   202
blanchet@58365
   203
78062d69d2e39df30e3b96bcc1dc2b4cf4d9ba20 9 0
blanchet@56079
   204
unsat
blanchet@56079
   205
((set-logic <null>)
blanchet@56079
   206
(proof
blanchet@56727
   207
(let ((@x37 (monotonicity (rewrite (= (bvshl (_ bv19 8) (_ bv2 8)) (_ bv76 8))) (= (= (bvshl (_ bv19 8) (_ bv2 8)) (_ bv76 8)) (= (_ bv76 8) (_ bv76 8))))))
blanchet@56727
   208
(let ((@x41 (trans @x37 (rewrite (= (= (_ bv76 8) (_ bv76 8)) true)) (= (= (bvshl (_ bv19 8) (_ bv2 8)) (_ bv76 8)) true))))
blanchet@56727
   209
(let ((@x44 (monotonicity @x41 (= (not (= (bvshl (_ bv19 8) (_ bv2 8)) (_ bv76 8))) (not true)))))
blanchet@56727
   210
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (bvshl (_ bv19 8) (_ bv2 8)) (_ bv76 8))) false))))
blanchet@56727
   211
(mp (asserted (not (= (bvshl (_ bv19 8) (_ bv2 8)) (_ bv76 8)))) @x48 false)))))))
blanchet@56079
   212
blanchet@58365
   213
33b517e5a63a8909bf9a8a46d6f37ecff561f0d3 9 0
blanchet@57170
   214
unsat
blanchet@57170
   215
((set-logic <null>)
blanchet@57170
   216
(proof
blanchet@57170
   217
(let ((@x37 (monotonicity (rewrite (= (bvlshr (_ bv25 8) (_ bv2 8)) (_ bv6 8))) (= (= (bvlshr (_ bv25 8) (_ bv2 8)) (_ bv6 8)) (= (_ bv6 8) (_ bv6 8))))))
blanchet@57170
   218
(let ((@x41 (trans @x37 (rewrite (= (= (_ bv6 8) (_ bv6 8)) true)) (= (= (bvlshr (_ bv25 8) (_ bv2 8)) (_ bv6 8)) true))))
blanchet@57170
   219
(let ((@x44 (monotonicity @x41 (= (not (= (bvlshr (_ bv25 8) (_ bv2 8)) (_ bv6 8))) (not true)))))
blanchet@57170
   220
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (bvlshr (_ bv25 8) (_ bv2 8)) (_ bv6 8))) false))))
blanchet@57170
   221
(mp (asserted (not (= (bvlshr (_ bv25 8) (_ bv2 8)) (_ bv6 8)))) @x48 false)))))))
blanchet@57170
   222
blanchet@58365
   223
792dc8efc6a11427de36bb71a1584a02ba01edfb 9 0
blanchet@56109
   224
unsat
blanchet@56109
   225
((set-logic <null>)
blanchet@56109
   226
(proof
blanchet@56727
   227
(let ((@x37 (monotonicity (rewrite (= (bvashr (_ bv19 8) (_ bv2 8)) (_ bv4 8))) (= (= (bvashr (_ bv19 8) (_ bv2 8)) (_ bv4 8)) (= (_ bv4 8) (_ bv4 8))))))
blanchet@56727
   228
(let ((@x41 (trans @x37 (rewrite (= (= (_ bv4 8) (_ bv4 8)) true)) (= (= (bvashr (_ bv19 8) (_ bv2 8)) (_ bv4 8)) true))))
blanchet@56727
   229
(let ((@x44 (monotonicity @x41 (= (not (= (bvashr (_ bv19 8) (_ bv2 8)) (_ bv4 8))) (not true)))))
blanchet@56727
   230
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (bvashr (_ bv19 8) (_ bv2 8)) (_ bv4 8))) false))))
blanchet@56727
   231
(mp (asserted (not (= (bvashr (_ bv19 8) (_ bv2 8)) (_ bv4 8)))) @x48 false)))))))
blanchet@56109
   232
blanchet@58365
   233
3ac6376c7c9d58e3d8cdda57bbb72d26bd0754d2 9 0
blanchet@56079
   234
unsat
blanchet@56079
   235
((set-logic <null>)
blanchet@56079
   236
(proof
blanchet@56727
   237
(let ((@x36 (monotonicity (rewrite (= ((_ rotate_right 2) (_ bv6 4)) (_ bv9 4))) (= (= ((_ rotate_right 2) (_ bv6 4)) (_ bv9 4)) (= (_ bv9 4) (_ bv9 4))))))
blanchet@56727
   238
(let ((@x40 (trans @x36 (rewrite (= (= (_ bv9 4) (_ bv9 4)) true)) (= (= ((_ rotate_right 2) (_ bv6 4)) (_ bv9 4)) true))))
blanchet@56727
   239
(let ((@x43 (monotonicity @x40 (= (not (= ((_ rotate_right 2) (_ bv6 4)) (_ bv9 4))) (not true)))))
blanchet@56727
   240
(let ((@x47 (trans @x43 (rewrite (= (not true) false)) (= (not (= ((_ rotate_right 2) (_ bv6 4)) (_ bv9 4))) false))))
blanchet@56727
   241
(mp (asserted (not (= ((_ rotate_right 2) (_ bv6 4)) (_ bv9 4)))) @x47 false)))))))
blanchet@56079
   242
blanchet@58365
   243
4817b51a29a8c19d79a235020826dd105db2dcf1 9 0
fleury@57711
   244
unsat
fleury@57711
   245
((set-logic <null>)
fleury@57711
   246
(proof
fleury@57711
   247
(let ((@x36 (monotonicity (rewrite (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4))) (= (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4)) (= (_ bv13 4) (_ bv13 4))))))
fleury@57711
   248
(let ((@x40 (trans @x36 (rewrite (= (= (_ bv13 4) (_ bv13 4)) true)) (= (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4)) true))))
fleury@57711
   249
(let ((@x43 (monotonicity @x40 (= (not (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4))) (not true)))))
fleury@57711
   250
(let ((@x47 (trans @x43 (rewrite (= (not true) false)) (= (not (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4))) false))))
fleury@57711
   251
(mp (asserted (not (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4)))) @x47 false)))))))
fleury@57711
   252
blanchet@57204
   253
5c4e275bed2d91897e820ccd6744b0a775a6e26e 17 0
blanchet@56079
   254
unsat
blanchet@56079
   255
((set-logic <null>)
blanchet@56079
   256
(proof
blanchet@56727
   257
(let ((?x31 (bvand x$ (_ bv255 16))))
blanchet@56727
   258
(let ((?x29 (bvand x$ (_ bv65280 16))))
blanchet@56727
   259
(let ((?x32 (bvor ?x29 ?x31)))
blanchet@56727
   260
(let (($x33 (= ?x32 x$)))
blanchet@56727
   261
(let (($x34 (not $x33)))
blanchet@56727
   262
(let ((@x59 (symm (commutativity (= (= x$ ?x32) $x33)) (= $x33 (= x$ ?x32)))))
blanchet@56727
   263
(let ((@x35 (asserted $x34)))
blanchet@56727
   264
(let ((@x63 (mp @x35 (monotonicity @x59 (= $x34 (not (= x$ ?x32)))) (not (= x$ ?x32)))))
blanchet@56727
   265
(let (($x52 (= x$ ?x32)))
blanchet@56727
   266
(let ((@x26 (true-axiom true)))
blanchet@56727
   267
(let (($x53 (or $x52 false false false false false false false false false false false false false false false false)))
blanchet@56727
   268
(let ((@x55 (unit-resolution ((_ th-lemma bv) $x53) @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 $x52)))
blanchet@56727
   269
(unit-resolution @x55 @x63 false)))))))))))))))
blanchet@56079
   270
blanchet@57204
   271
1d4a0e2a4449a8adbcf5a134bf7f2b0ee940d954 51 0
blanchet@56079
   272
unsat
blanchet@56079
   273
((set-logic <null>)
blanchet@56079
   274
(proof
blanchet@56727
   275
(let ((?x31 (bvand w$ (_ bv255 16))))
blanchet@56727
   276
(let (($x32 (= ?x31 w$)))
blanchet@56727
   277
(let (($x64 (not $x32)))
blanchet@56727
   278
(let ((@x318 (symm (commutativity (= (= w$ ?x31) $x32)) (= $x32 (= w$ ?x31)))))
blanchet@56727
   279
(let (($x57 (not (or (bvule (_ bv256 16) w$) $x32))))
blanchet@56727
   280
(let ((@x49 (monotonicity (rewrite (= (bvult w$ (_ bv256 16)) (not (bvule (_ bv256 16) w$)))) (= (not (bvult w$ (_ bv256 16))) (not (not (bvule (_ bv256 16) w$)))))))
blanchet@56727
   281
(let ((@x53 (trans @x49 (rewrite (= (not (not (bvule (_ bv256 16) w$))) (bvule (_ bv256 16) w$))) (= (not (bvult w$ (_ bv256 16))) (bvule (_ bv256 16) w$)))))
blanchet@56727
   282
(let ((@x56 (monotonicity @x53 (= (or (not (bvult w$ (_ bv256 16))) $x32) (or (bvule (_ bv256 16) w$) $x32)))))
blanchet@56727
   283
(let ((@x59 (monotonicity @x56 (= (not (or (not (bvult w$ (_ bv256 16))) $x32)) $x57))))
blanchet@56727
   284
(let (($x34 (not (=> (bvult w$ (_ bv256 16)) $x32))))
blanchet@56727
   285
(let ((@x39 (rewrite (= (=> (bvult w$ (_ bv256 16)) $x32) (or (not (bvult w$ (_ bv256 16))) $x32)))))
blanchet@56727
   286
(let ((@x42 (monotonicity @x39 (= $x34 (not (or (not (bvult w$ (_ bv256 16))) $x32))))))
blanchet@56727
   287
(let ((@x65 (not-or-elim (mp (asserted $x34) (trans @x42 @x59 (= $x34 $x57)) $x57) $x64)))
blanchet@56727
   288
(let ((@x322 (mp @x65 (monotonicity @x318 (= $x64 (not (= w$ ?x31)))) (not (= w$ ?x31)))))
blanchet@56727
   289
(let (($x300 (= w$ ?x31)))
blanchet@56727
   290
(let (($x81 (= ((_ extract 15 15) w$) (_ bv1 1))))
blanchet@56727
   291
(let (($x264 (not $x81)))
blanchet@56727
   292
(let (($x74 (= ((_ extract 8 8) w$) (_ bv1 1))))
blanchet@56727
   293
(let (($x75 (= ((_ extract 9 9) w$) (_ bv1 1))))
blanchet@56727
   294
(let (($x82 (and $x75 $x74)))
blanchet@56727
   295
(let (($x83 (or $x75 $x74 $x82)))
blanchet@56727
   296
(let (($x76 (= ((_ extract 10 10) w$) (_ bv1 1))))
blanchet@56727
   297
(let (($x84 (and $x76 $x83)))
blanchet@56727
   298
(let (($x85 (or $x76 $x75 $x74 $x82 $x84)))
blanchet@56727
   299
(let (($x77 (= ((_ extract 11 11) w$) (_ bv1 1))))
blanchet@56727
   300
(let (($x86 (and $x77 $x85)))
blanchet@56727
   301
(let (($x87 (or $x77 $x76 $x75 $x74 $x82 $x84 $x86)))
blanchet@56727
   302
(let (($x78 (= ((_ extract 12 12) w$) (_ bv1 1))))
blanchet@56727
   303
(let (($x88 (and $x78 $x87)))
blanchet@56727
   304
(let (($x89 (or $x78 $x77 $x76 $x75 $x74 $x82 $x84 $x86 $x88)))
blanchet@56727
   305
(let (($x79 (= ((_ extract 13 13) w$) (_ bv1 1))))
blanchet@56727
   306
(let (($x90 (and $x79 $x89)))
blanchet@56727
   307
(let (($x91 (or $x79 $x78 $x77 $x76 $x75 $x74 $x82 $x84 $x86 $x88 $x90)))
blanchet@56727
   308
(let (($x80 (= ((_ extract 14 14) w$) (_ bv1 1))))
blanchet@56727
   309
(let (($x92 (and $x80 $x91)))
blanchet@56727
   310
(let (($x93 (or $x80 $x79 $x78 $x77 $x76 $x75 $x74 $x82 $x84 $x86 $x88 $x90 $x92)))
blanchet@56727
   311
(let (($x94 (and $x81 $x93)))
blanchet@56727
   312
(let (($x95 (or $x81 $x80 $x79 $x78 $x77 $x76 $x75 $x74 $x82 $x84 $x86 $x88 $x90 $x92 $x94)))
blanchet@56727
   313
(let (($x297 (not $x95)))
blanchet@56727
   314
(let (($x43 (bvule (_ bv256 16) w$)))
blanchet@56727
   315
(let (($x44 (not $x43)))
blanchet@56727
   316
(let ((@x63 (not-or-elim (mp (asserted $x34) (trans @x42 @x59 (= $x34 $x57)) $x57) $x44)))
blanchet@56727
   317
(let ((@x303 (unit-resolution ((_ th-lemma bv) (or $x43 $x297)) @x63 $x297)))
blanchet@56727
   318
(let ((@x26 (true-axiom true)))
blanchet@56727
   319
(let (($x312 (or $x300 false false false false false false false false $x74 $x75 $x76 $x77 $x78 $x79 $x80 $x81)))
blanchet@56727
   320
(let ((@x314 (unit-resolution ((_ th-lemma bv) $x312) @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 (unit-resolution (def-axiom (or $x95 (not $x74))) @x303 (not $x74)) (unit-resolution (def-axiom (or $x95 (not $x75))) @x303 (not $x75)) (unit-resolution (def-axiom (or $x95 (not $x76))) @x303 (not $x76)) (unit-resolution (def-axiom (or $x95 (not $x77))) @x303 (not $x77)) (unit-resolution (def-axiom (or $x95 (not $x78))) @x303 (not $x78)) (unit-resolution (def-axiom (or $x95 (not $x79))) @x303 (not $x79)) (unit-resolution (def-axiom (or $x95 (not $x80))) @x303 (not $x80)) (unit-resolution (def-axiom (or $x95 $x264)) @x303 $x264) $x300)))
blanchet@56727
   321
(unit-resolution @x314 @x322 false)))))))))))))))))))))))))))))))))))))))))))))))))
blanchet@56111
   322
fleury@57711
   323
115ab22c9945d493b971e69a38d9e608c5b40a71 29 0
fleury@57711
   324
unsat
fleury@57711
   325
((set-logic <null>)
fleury@57711
   326
(proof
fleury@57711
   327
(let ((?x28 (bv2int$ (_ bv0 2))))
fleury@57711
   328
(let (($x183 (<= ?x28 0)))
fleury@57711
   329
(let (($x184 (not $x183)))
fleury@57711
   330
(let (($x175 (forall ((?v0 (_ BitVec 2)) )(!(let ((?x47 (bv2int$ ?v0)))
fleury@57711
   331
(let (($x53 (<= ?x47 0)))
fleury@57711
   332
(not $x53))) :pattern ( (bv2int$ ?v0) )))
fleury@57711
   333
))
fleury@57711
   334
(let (($x57 (forall ((?v0 (_ BitVec 2)) )(let ((?x47 (bv2int$ ?v0)))
fleury@57711
   335
(let (($x53 (<= ?x47 0)))
fleury@57711
   336
(not $x53))))
fleury@57711
   337
))
fleury@57711
   338
(let ((@x177 (refl (= (not (<= (bv2int$ ?0) 0)) (not (<= (bv2int$ ?0) 0))))))
fleury@57711
   339
(let ((@x112 (refl (~ (not (<= (bv2int$ ?0) 0)) (not (<= (bv2int$ ?0) 0))))))
fleury@57711
   340
(let (($x49 (forall ((?v0 (_ BitVec 2)) )(let ((?x47 (bv2int$ ?v0)))
fleury@57711
   341
(< 0 ?x47)))
fleury@57711
   342
))
fleury@57711
   343
(let ((@x56 (rewrite (= (< 0 (bv2int$ ?0)) (not (<= (bv2int$ ?0) 0))))))
fleury@57711
   344
(let ((@x115 (mp~ (mp (asserted $x49) (quant-intro @x56 (= $x49 $x57)) $x57) (nnf-pos @x112 (~ $x57 $x57)) $x57)))
fleury@57711
   345
(let ((@x180 (mp @x115 (quant-intro @x177 (= $x57 $x175)) $x175)))
fleury@57711
   346
(let (($x187 (not $x175)))
fleury@57711
   347
(let (($x188 (or $x187 $x184)))
fleury@57711
   348
(let ((@x189 ((_ quant-inst (_ bv0 2)) $x188)))
fleury@57711
   349
(let (($x29 (= ?x28 0)))
fleury@57711
   350
(let ((@x30 (asserted $x29)))
fleury@57711
   351
(unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x29) $x183)) @x30 (unit-resolution @x189 @x180 $x184) false)))))))))))))))))))
fleury@57711
   352
blanchet@57204
   353
d14e7b8f0d1858316e700b4eb09e7d03e57cf9c3 16 0
blanchet@56111
   354
unsat
blanchet@56111
   355
((set-logic <null>)
blanchet@56111
   356
(proof
blanchet@56727
   357
(let ((?x32 (p$ true)))
blanchet@56727
   358
(let (($x29 (bvule (_ bv0 4) a$)))
blanchet@56727
   359
(let (($x30 (ite $x29 true false)))
blanchet@56727
   360
(let ((?x31 (p$ $x30)))
blanchet@56727
   361
(let (($x33 (= ?x31 ?x32)))
blanchet@56727
   362
(let (($x34 (not $x33)))
blanchet@56727
   363
(let ((@x52 (monotonicity (monotonicity (rewrite (= $x29 true)) (= (p$ $x29) ?x32)) (= (= (p$ $x29) ?x32) (= ?x32 ?x32)))))
blanchet@56727
   364
(let ((@x56 (trans @x52 (rewrite (= (= ?x32 ?x32) true)) (= (= (p$ $x29) ?x32) true))))
blanchet@56727
   365
(let ((@x63 (trans (monotonicity @x56 (= (not (= (p$ $x29) ?x32)) (not true))) (rewrite (= (not true) false)) (= (not (= (p$ $x29) ?x32)) false))))
blanchet@56727
   366
(let ((@x43 (monotonicity (monotonicity (rewrite (= $x30 $x29)) (= ?x31 (p$ $x29))) (= $x33 (= (p$ $x29) ?x32)))))
blanchet@56727
   367
(let ((@x46 (monotonicity @x43 (= $x34 (not (= (p$ $x29) ?x32))))))
blanchet@56727
   368
(mp (asserted $x34) (trans @x46 @x63 (= $x34 false)) false))))))))))))))
blanchet@56109
   369