src/HOL/SMT_Examples/VCC_Max.certs2
author haftmann
Sat Jul 05 11:01:53 2014 +0200 (2014-07-05)
changeset 57514 bdc2c6b40bf2
parent 57232 8cecd655eef4
permissions -rw-r--r--
prefer ac_simps collections over separate name bindings for add and mult
blanchet@57232
     1
05a761f33f246f0fee720bec6f015ca5aba01c4d 2972 0
blanchet@57170
     2
unsat
blanchet@57170
     3
((set-logic <null>)
blanchet@57170
     4
(declare-fun ?v0!14 () Int)
blanchet@57170
     5
(declare-fun ?v0!15 () Int)
blanchet@57170
     6
(declare-fun ?v0!13 () Int)
blanchet@57170
     7
(proof
blanchet@57170
     8
(let ((?x10078 (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$)))
blanchet@57170
     9
(let ((?x10372 (b_S_idx$ ?x10078 v_b_SL_H_witness_G_1$ b_T_T_u1$)))
blanchet@57170
    10
(let ((?x10373 (b_S_read_n_u1$ v_b_S_s$ ?x10372)))
blanchet@57170
    11
(let (($x10374 (= ?x10373 v_b_L_H_max_G_3$)))
blanchet@57170
    12
(let (($x11647 (<= (+ v_b_P_H_len$ (* (- 1) v_b_SL_H_witness_G_1$)) 0)))
blanchet@57170
    13
(let (($x19412 (or $x11647 (not $x10374))))
blanchet@57170
    14
(let (($x19413 (not $x19412)))
blanchet@57170
    15
(let (($x19906 (forall ((?v0 Int) )(!(let ((?x11631 (* (- 1) v_b_L_H_max_G_3$)))
blanchet@57170
    16
(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
    17
(let (($x11633 (<= (+ ?x10163 ?x11631) 0)))
blanchet@57170
    18
(let (($x11615 (>= (+ ?v0 (* (- 1) v_b_L_H_p_G_1$)) 0)))
blanchet@57170
    19
(let (($x12168 (<= ?v0 4294967295)))
blanchet@57170
    20
(let (($x16553 (not $x12168)))
blanchet@57170
    21
(let (($x2815 (>= ?v0 0)))
blanchet@57170
    22
(let (($x3763 (not $x2815)))
blanchet@57170
    23
(or $x3763 $x16553 $x11615 $x11633))))))))) :pattern ( (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$) )))
blanchet@57170
    24
))
blanchet@57170
    25
(let (($x19911 (not $x19906)))
blanchet@57170
    26
(let (($x19914 (or $x19911 $x19413)))
blanchet@57170
    27
(let (($x19917 (not $x19914)))
blanchet@57170
    28
(let ((?x15633 (b_S_idx$ ?x10078 ?v0!14 b_T_T_u1$)))
blanchet@57170
    29
(let ((?x15634 (b_S_read_n_u1$ v_b_S_s$ ?x15633)))
blanchet@57170
    30
(let ((?x15891 (* (- 1) ?x15634)))
blanchet@57170
    31
(let (($x15893 (>= (+ v_b_L_H_max_G_3$ ?x15891) 0)))
blanchet@57170
    32
(let (($x15871 (<= (+ v_b_L_H_p_G_1$ (* (- 1) ?v0!14)) 0)))
blanchet@57170
    33
(let (($x15627 (<= ?v0!14 4294967295)))
blanchet@57170
    34
(let (($x19366 (not $x15627)))
blanchet@57170
    35
(let (($x15626 (>= ?v0!14 0)))
blanchet@57170
    36
(let (($x19365 (not $x15626)))
blanchet@57170
    37
(let (($x19381 (or $x19365 $x19366 $x15871 $x15893)))
blanchet@57170
    38
(let (($x19386 (not $x19381)))
blanchet@57170
    39
(let (($x19920 (or $x19386 $x19917)))
blanchet@57170
    40
(let (($x19923 (not $x19920)))
blanchet@57170
    41
(let ((?x11581 (* (- 1) v_b_L_H_p_G_1$)))
blanchet@57170
    42
(let ((?x11609 (+ v_b_P_H_len$ ?x11581)))
blanchet@57170
    43
(let (($x11608 (>= ?x11609 0)))
blanchet@57170
    44
(let (($x11612 (not $x11608)))
blanchet@57170
    45
(let (($x19926 (or $x11612 $x19923)))
blanchet@57170
    46
(let (($x19929 (not $x19926)))
blanchet@57170
    47
(let (($x19932 (or $x11612 $x19929)))
blanchet@57170
    48
(let (($x19935 (not $x19932)))
blanchet@57170
    49
(let (($x11536 (>= v_b_SL_H_witness_G_1$ 0)))
blanchet@57170
    50
(let (($x19455 (not $x11536)))
blanchet@57170
    51
(let (($x11578 (>= v_b_L_H_p_G_1$ 2)))
blanchet@57170
    52
(let (($x19454 (not $x11578)))
blanchet@57170
    53
(let (($x10358 (b_S_local_n_value_n_is$ v_b_S_s$ b_H_tok_S_1_T_16_o_24$ b_H_loc_o_p$ v_b_L_H_p_G_1$ b_T_T_u4$)))
blanchet@57170
    54
(let (($x19453 (not $x10358)))
blanchet@57170
    55
(let ((?x11582 (+ v_b_L_H_p_G_0$ ?x11581)))
blanchet@57170
    56
(let (($x11580 (= ?x11582 (- 1))))
blanchet@57170
    57
(let (($x19452 (not $x11580)))
blanchet@57170
    58
(let (($x13353 (<= v_b_L_H_p_G_0$ 4294967294)))
blanchet@57170
    59
(let (($x15614 (not $x13353)))
blanchet@57170
    60
(let (($x11570 (>= v_b_L_H_p_G_0$ (- 1))))
blanchet@57170
    61
(let (($x15611 (not $x11570)))
blanchet@57170
    62
(let (($x19938 (or $x15611 $x15614 $x19452 $x19453 $x19454 $x19455 $x19935)))
blanchet@57170
    63
(let (($x19941 (not $x19938)))
blanchet@57170
    64
(let (($x19944 (or $x15611 $x15614 $x19941)))
blanchet@57170
    65
(let (($x19947 (not $x19944)))
blanchet@57170
    66
(let (($x11429 (>= v_b_L_H_p_G_0$ 1)))
blanchet@57170
    67
(let (($x19474 (not $x11429)))
blanchet@57170
    68
(let (($x10392 (= v_b_SL_H_witness_G_1$ v_b_SL_H_witness_G_0$)))
blanchet@57170
    69
(let (($x19513 (not $x10392)))
blanchet@57170
    70
(let (($x10391 (= v_b_L_H_max_G_3$ v_b_L_H_max_G_1$)))
blanchet@57170
    71
(let (($x19512 (not $x10391)))
blanchet@57170
    72
(let (($x11432 (>= v_b_SL_H_witness_G_0$ 0)))
blanchet@57170
    73
(let (($x19501 (not $x11432)))
blanchet@57170
    74
(let ((?x10320 (b_S_idx$ ?x10078 v_b_L_H_p_G_0$ b_T_T_u1$)))
blanchet@57170
    75
(let ((?x10327 (b_S_read_n_u1$ v_b_S_s$ ?x10320)))
blanchet@57170
    76
(let ((?x11517 (* (- 1) ?x10327)))
blanchet@57170
    77
(let ((?x11518 (+ v_b_L_H_max_G_1$ ?x11517)))
blanchet@57170
    78
(let (($x11516 (>= ?x11518 0)))
blanchet@57170
    79
(let (($x11515 (not $x11516)))
blanchet@57170
    80
(let (($x19980 (or $x11515 $x19501 $x19512 $x19513 $x19474 $x19455 $x19947)))
blanchet@57170
    81
(let (($x19983 (not $x19980)))
blanchet@57170
    82
(let ((?x25039 (+ ?x10327 ?x15891)))
blanchet@57170
    83
(let (($x25041 (>= ?x25039 0)))
blanchet@57170
    84
(let (($x25038 (= ?x10327 ?x15634)))
blanchet@57170
    85
(let (($x25035 (= v_b_L_H_p_G_0$ ?v0!14)))
blanchet@57170
    86
(let (($x10340 (= v_b_SL_H_witness_G_1$ v_b_L_H_p_G_0$)))
blanchet@57170
    87
(let (($x19473 (not $x10340)))
blanchet@57170
    88
(let (($x10338 (= v_b_L_H_max_G_3$ v_b_L_H_max_G_2$)))
blanchet@57170
    89
(let (($x19472 (not $x10338)))
blanchet@57170
    90
(let (($x10335 (b_S_local_n_value_n_is$ v_b_S_s$ b_H_tok_S_1_T_24_o_47$ b_H_loc_o_witness$ v_b_L_H_p_G_0$ b_T_T_u4$)))
blanchet@57170
    91
(let (($x19471 (not $x10335)))
blanchet@57170
    92
(let (($x10334 (b_S_local_n_value_n_is$ v_b_S_s$ b_H_tok_S_1_T_23_o_7$ b_H_loc_o_max$ v_b_L_H_max_G_2$ b_T_T_u1$)))
blanchet@57170
    93
(let (($x19470 (not $x10334)))
blanchet@57170
    94
(let (($x10333 (= v_b_L_H_max_G_2$ ?x10327)))
blanchet@57170
    95
(let (($x19469 (not $x10333)))
blanchet@57170
    96
(let (($x10324 (b_S_thread_n_local$ v_b_S_s$ ?x10320)))
blanchet@57170
    97
(let (($x15599 (not $x10324)))
blanchet@57170
    98
(let (($x10321 (b_S_is$ ?x10320 b_T_T_u1$)))
blanchet@57170
    99
(let (($x15590 (not $x10321)))
blanchet@57170
   100
(let (($x19950 (or $x15590 $x15599 $x19469 $x19470 $x19471 $x19472 $x19473 $x19474 $x19455 $x19947)))
blanchet@57170
   101
(let (($x19953 (not $x19950)))
blanchet@57170
   102
(let (($x19956 (or $x15590 $x15599 $x19953)))
blanchet@57170
   103
(let (($x19959 (not $x19956)))
blanchet@57170
   104
(let (($x10322 (b_S_typed$ v_b_S_s$ ?x10320)))
blanchet@57170
   105
(let (($x15593 (not $x10322)))
blanchet@57170
   106
(let (($x19962 (or $x15590 $x15593 $x19959)))
blanchet@57170
   107
(let (($x19965 (not $x19962)))
blanchet@57170
   108
(let (($x19968 (or $x15590 $x15593 $x19965)))
blanchet@57170
   109
(let (($x19971 (not $x19968)))
blanchet@57170
   110
(let (($x19974 (or $x11516 $x19474 $x19501 $x19971)))
blanchet@57170
   111
(let (($x19977 (not $x19974)))
blanchet@57170
   112
(let (($x19986 (or $x19977 $x19983)))
blanchet@57170
   113
(let (($x19989 (not $x19986)))
blanchet@57170
   114
(let (($x19992 (or $x15590 $x15599 $x19474 $x19501 $x19989)))
blanchet@57170
   115
(let (($x19995 (not $x19992)))
blanchet@57170
   116
(let ((?x23404 (b_S_ref$ ?x10320)))
blanchet@57232
   117
(let ((?x23228 (b_S_ptr$ b_T_T_u1$ ?x23404)))
blanchet@57232
   118
(let ((?x23728 (b_S_typ$ ?x23228)))
blanchet@57232
   119
(let ((?x23730 (b_S_kind_n_of$ ?x23728)))
blanchet@57232
   120
(let (($x24098 (= ?x23730 b_S_kind_n_primitive$)))
blanchet@57170
   121
(let ((?x21472 (b_S_kind_n_of$ b_T_T_u1$)))
blanchet@57170
   122
(let (($x21473 (= ?x21472 b_S_kind_n_primitive$)))
blanchet@57170
   123
(let (($x9768 (b_S_is_n_primitive$ b_T_T_u1$)))
blanchet@57170
   124
(let (($x21480 (= $x9768 $x21473)))
blanchet@57170
   125
(let (($x9891 (forall ((?v0 B_S_ctype$) )(!(let ((?x9849 (b_S_kind_n_of$ ?v0)))
blanchet@57170
   126
(let (($x9883 (= ?x9849 b_S_kind_n_primitive$)))
blanchet@57170
   127
(let (($x2704 (b_S_is_n_primitive$ ?v0)))
blanchet@57170
   128
(= $x2704 $x9883)))) :pattern ( (b_S_is_n_primitive$ ?v0) )))
blanchet@57170
   129
))
blanchet@57170
   130
(let ((?x9849 (b_S_kind_n_of$ ?0)))
blanchet@57170
   131
(let (($x9883 (= ?x9849 b_S_kind_n_primitive$)))
blanchet@57170
   132
(let (($x2704 (b_S_is_n_primitive$ ?0)))
blanchet@57170
   133
(let (($x9888 (= $x2704 $x9883)))
blanchet@57170
   134
(let (($x9886 (forall ((?v0 B_S_ctype$) )(!(let ((?x9849 (b_S_kind_n_of$ ?v0)))
blanchet@57170
   135
(let (($x9883 (= ?x9849 b_S_kind_n_primitive$)))
blanchet@57170
   136
(let (($x2704 (b_S_is_n_primitive$ ?v0)))
blanchet@57170
   137
(= $x2704 $x9883)))) :pattern ( (b_S_is_n_primitive$ ?v0) )))
blanchet@57170
   138
))
blanchet@57170
   139
(let ((@x9896 (mp (asserted $x9886) (quant-intro (rewrite (= (= $x2704 $x9883) $x9888)) (= $x9886 $x9891)) $x9891)))
blanchet@57170
   140
(let ((@x15456 (mp~ @x9896 (nnf-pos (refl (~ $x9888 $x9888)) (~ $x9891 $x9891)) $x9891)))
blanchet@57170
   141
(let (($x21224 (not $x9891)))
blanchet@57170
   142
(let (($x21483 (or $x21224 $x21480)))
blanchet@57170
   143
(let ((@x21484 ((_ quant-inst b_T_T_u1$) $x21483)))
blanchet@57170
   144
(let ((@x9769 (asserted $x9768)))
blanchet@57170
   145
(let ((@x23544 (unit-resolution (def-axiom (or (not $x21480) (not $x9768) $x21473)) @x9769 (or (not $x21480) $x21473))))
blanchet@57170
   146
(let ((?x23241 (b_S_typ$ ?x10320)))
blanchet@57170
   147
(let (($x23242 (= ?x23241 b_T_T_u1$)))
blanchet@57170
   148
(let (($x23270 (= $x10321 $x23242)))
blanchet@57170
   149
(let (($x19828 (forall ((?v0 B_S_ptr$) (?v1 B_S_ctype$) )(!(let ((?x6636 (b_S_typ$ ?v0)))
blanchet@57170
   150
(let (($x7865 (= ?x6636 ?v1)))
blanchet@57170
   151
(let (($x9596 (b_S_is$ ?v0 ?v1)))
blanchet@57170
   152
(= $x9596 $x7865)))) :pattern ( (b_S_is$ ?v0 ?v1) )))
blanchet@57170
   153
))
blanchet@57170
   154
(let (($x9617 (forall ((?v0 B_S_ptr$) (?v1 B_S_ctype$) )(let ((?x6636 (b_S_typ$ ?v0)))
blanchet@57170
   155
(let (($x7865 (= ?x6636 ?v1)))
blanchet@57170
   156
(let (($x9596 (b_S_is$ ?v0 ?v1)))
blanchet@57170
   157
(= $x9596 $x7865)))))
blanchet@57170
   158
))
blanchet@57170
   159
(let ((?x6636 (b_S_typ$ ?1)))
blanchet@57170
   160
(let (($x7865 (= ?x6636 ?0)))
blanchet@57170
   161
(let (($x9596 (b_S_is$ ?1 ?0)))
blanchet@57170
   162
(let (($x9614 (= $x9596 $x7865)))
blanchet@57170
   163
(let (($x9611 (forall ((?v0 B_S_ptr$) (?v1 B_S_ctype$) )(let ((?x6636 (b_S_typ$ ?v0)))
blanchet@57170
   164
(let (($x7865 (= ?x6636 ?v1)))
blanchet@57170
   165
(let (($x9596 (b_S_is$ ?v0 ?v1)))
blanchet@57170
   166
(= $x9596 $x7865)))))
blanchet@57170
   167
))
blanchet@57170
   168
(let ((@x9622 (mp (asserted $x9611) (quant-intro (rewrite (= (= $x9596 $x7865) $x9614)) (= $x9611 $x9617)) $x9617)))
blanchet@57170
   169
(let ((@x19833 (mp (mp~ @x9622 (nnf-pos (refl (~ $x9614 $x9614)) (~ $x9617 $x9617)) $x9617) (quant-intro (refl (= $x9614 $x9614)) (= $x9617 $x19828)) $x19828)))
blanchet@57170
   170
(let (($x22002 (not $x19828)))
blanchet@57170
   171
(let (($x23990 (or $x22002 $x23270)))
blanchet@57170
   172
(let ((@x23870 ((_ quant-inst (b_S_idx$ ?x10078 v_b_L_H_p_G_0$ b_T_T_u1$) b_T_T_u1$) $x23990)))
blanchet@57170
   173
(let ((?x10045 (b_S_sizeof$ b_T_T_u1$)))
blanchet@57170
   174
(let ((?x23278 (* ?x10045 v_b_L_H_p_G_0$)))
blanchet@57170
   175
(let ((?x10079 (b_S_ref$ ?x10078)))
blanchet@57170
   176
(let ((?x24174 (+ ?x10079 ?x23278)))
blanchet@57170
   177
(let ((?x24198 (b_S_ptr$ b_T_T_u1$ ?x24174)))
blanchet@57170
   178
(let ((?x23028 (b_S_typ$ ?x24198)))
blanchet@57170
   179
(let (($x23029 (= ?x23028 b_T_T_u1$)))
blanchet@57170
   180
(let (($x19841 (forall ((?v0 B_S_ctype$) (?v1 Int) )(!(= (b_S_typ$ (b_S_ptr$ ?v0 ?v1)) ?v0) :pattern ( (b_S_ptr$ ?v0 ?v1) )))
blanchet@57170
   181
))
blanchet@57170
   182
(let (($x9659 (forall ((?v0 B_S_ctype$) (?v1 Int) )(= (b_S_typ$ (b_S_ptr$ ?v0 ?v1)) ?v0))
blanchet@57170
   183
))
blanchet@57170
   184
(let (($x9658 (= (b_S_typ$ (b_S_ptr$ ?1 ?0)) ?1)))
blanchet@57170
   185
(let ((@x15361 (mp~ (asserted $x9659) (nnf-pos (refl (~ $x9658 $x9658)) (~ $x9659 $x9659)) $x9659)))
blanchet@57170
   186
(let ((@x19846 (mp @x15361 (quant-intro (refl (= $x9658 $x9658)) (= $x9659 $x19841)) $x19841)))
blanchet@57170
   187
(let (($x24201 (= ?x10320 ?x24198)))
blanchet@57170
   188
(let (($x24214 (not $x24201)))
blanchet@57170
   189
(let (($x24067 (b_S_extent_n_hint$ ?x10320 ?x10078)))
blanchet@57170
   190
(let (($x24065 (not $x24067)))
blanchet@57170
   191
(let (($x24160 (or $x24065 $x24214)))
blanchet@57170
   192
(let (($x24161 (not $x24160)))
blanchet@57170
   193
(let (($x18180 (forall ((?v0 B_S_ptr$) (?v1 Int) (?v2 B_S_ctype$) )(!(let ((?x7205 (b_S_idx$ ?v0 ?v1 ?v2)))
blanchet@57170
   194
(let (($x7213 (= ?x7205 (b_S_ptr$ ?v2 (+ (b_S_ref$ ?v0) (* ?v1 (b_S_sizeof$ ?v2)))))))
blanchet@57170
   195
(not (or (not (b_S_extent_n_hint$ ?x7205 ?v0)) (not $x7213))))) :pattern ( (b_S_idx$ ?v0 ?v1 ?v2) )))
blanchet@57170
   196
))
blanchet@57170
   197
(let (($x7216 (forall ((?v0 B_S_ptr$) (?v1 Int) (?v2 B_S_ctype$) )(!(let ((?x7205 (b_S_idx$ ?v0 ?v1 ?v2)))
blanchet@57170
   198
(let (($x7213 (= ?x7205 (b_S_ptr$ ?v2 (+ (b_S_ref$ ?v0) (* ?v1 (b_S_sizeof$ ?v2)))))))
blanchet@57170
   199
(and (b_S_extent_n_hint$ ?x7205 ?v0) $x7213))) :pattern ( (b_S_idx$ ?v0 ?v1 ?v2) )))
blanchet@57170
   200
))
blanchet@57170
   201
(let ((?x7205 (b_S_idx$ ?2 ?1 ?0)))
blanchet@57170
   202
(let (($x7213 (= ?x7205 (b_S_ptr$ ?0 (+ (b_S_ref$ ?2) (* ?1 (b_S_sizeof$ ?0)))))))
blanchet@57170
   203
(let (($x7214 (and (b_S_extent_n_hint$ ?x7205 ?2) $x7213)))
blanchet@57170
   204
(let ((@x18179 (rewrite (= $x7214 (not (or (not (b_S_extent_n_hint$ ?x7205 ?2)) (not $x7213)))))))
blanchet@57170
   205
(let ((@x14561 (mp~ (asserted $x7216) (nnf-pos (refl (~ $x7214 $x7214)) (~ $x7216 $x7216)) $x7216)))
blanchet@57170
   206
(let ((@x18183 (mp @x14561 (quant-intro @x18179 (= $x7216 $x18180)) $x18180)))
blanchet@57170
   207
(let (($x22568 (not $x18180)))
blanchet@57170
   208
(let (($x24300 (or $x22568 $x24161)))
blanchet@57170
   209
(let (($x24080 (not (= ?x10320 (b_S_ptr$ b_T_T_u1$ (+ ?x10079 (* v_b_L_H_p_G_0$ ?x10045)))))))
blanchet@57170
   210
(let (($x24081 (not (or $x24065 $x24080))))
blanchet@57170
   211
(let (($x24202 (= (= ?x10320 (b_S_ptr$ b_T_T_u1$ (+ ?x10079 (* v_b_L_H_p_G_0$ ?x10045)))) $x24201)))
blanchet@57170
   212
(let ((@x24197 (monotonicity (rewrite (= (* v_b_L_H_p_G_0$ ?x10045) ?x23278)) (= (+ ?x10079 (* v_b_L_H_p_G_0$ ?x10045)) ?x24174))))
blanchet@57170
   213
(let ((@x24200 (monotonicity @x24197 (= (b_S_ptr$ b_T_T_u1$ (+ ?x10079 (* v_b_L_H_p_G_0$ ?x10045))) ?x24198))))
blanchet@57170
   214
(let ((@x24150 (monotonicity (monotonicity (monotonicity @x24200 $x24202) (= $x24080 $x24214)) (= (or $x24065 $x24080) $x24160))))
blanchet@57170
   215
(let ((@x24316 (monotonicity (monotonicity @x24150 (= $x24081 $x24161)) (= (or $x22568 $x24081) $x24300))))
blanchet@57170
   216
(let ((@x24299 (mp ((_ quant-inst (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) v_b_L_H_p_G_0$ b_T_T_u1$) (or $x22568 $x24081)) (trans @x24316 (rewrite (= $x24300 $x24300)) (= (or $x22568 $x24081) $x24300)) $x24300)))
blanchet@57170
   217
(let ((@x24341 (unit-resolution (def-axiom (or $x24160 $x24201)) (unit-resolution @x24299 @x18183 $x24161) $x24201)))
blanchet@57170
   218
(let ((@x24343 (trans (monotonicity @x24341 (= ?x23241 ?x23028)) (unit-resolution ((_ quant-inst b_T_T_u1$ (+ ?x10079 ?x23278)) (or (not $x19841) $x23029)) @x19846 $x23029) $x23242)))
blanchet@57170
   219
(let (($x23889 (not $x23242)))
blanchet@57170
   220
(let ((@x24337 (unit-resolution (def-axiom (or (not $x23270) $x10321 $x23889)) (hypothesis $x15590) (or (not $x23270) $x23889))))
blanchet@57170
   221
(let ((@x24344 (unit-resolution (unit-resolution @x24337 (unit-resolution @x23870 @x19833 $x23270) $x23889) @x24343 false)))
blanchet@57170
   222
(let ((@x24345 (lemma @x24344 $x10321)))
blanchet@57170
   223
(let ((@x25031 (unit-resolution (def-axiom (or (not $x23270) $x15590 $x23242)) @x24345 (or (not $x23270) $x23242))))
blanchet@57232
   224
(let (($x23306 (= ?x10320 ?x23228)))
blanchet@57170
   225
(let (($x9607 (forall ((?v0 B_S_ptr$) (?v1 B_S_ctype$) )(!(or (not (b_S_is$ ?v0 ?v1)) (= ?v0 (b_S_ptr$ ?v1 (b_S_ref$ ?v0)))) :pattern ( (b_S_is$ ?v0 ?v1) )))
blanchet@57170
   226
))
blanchet@57170
   227
(let (($x9604 (or (not $x9596) (= ?1 (b_S_ptr$ ?0 (b_S_ref$ ?1))))))
blanchet@57170
   228
(let (($x9601 (forall ((?v0 B_S_ptr$) (?v1 B_S_ctype$) )(!(let (($x9596 (b_S_is$ ?v0 ?v1)))
blanchet@57170
   229
(=> $x9596 (= ?v0 (b_S_ptr$ ?v1 (b_S_ref$ ?v0))))) :pattern ( (b_S_is$ ?v0 ?v1) )))
blanchet@57170
   230
))
blanchet@57170
   231
(let ((@x9606 (rewrite (= (=> $x9596 (= ?1 (b_S_ptr$ ?0 (b_S_ref$ ?1)))) $x9604))))
blanchet@57170
   232
(let ((@x15336 (mp~ (mp (asserted $x9601) (quant-intro @x9606 (= $x9601 $x9607)) $x9607) (nnf-pos (refl (~ $x9604 $x9604)) (~ $x9607 $x9607)) $x9607)))
blanchet@57170
   233
(let (($x21994 (not $x9607)))
blanchet@57232
   234
(let (($x24294 (or $x21994 $x15590 $x23306)))
blanchet@57232
   235
(let ((@x24335 (mp ((_ quant-inst (b_S_idx$ ?x10078 v_b_L_H_p_G_0$ b_T_T_u1$) b_T_T_u1$) (or $x21994 (or $x15590 $x23306))) (rewrite (= (or $x21994 (or $x15590 $x23306)) $x24294)) $x24294)))
blanchet@57232
   236
(let ((@x25262 (symm (unit-resolution @x24335 @x15336 @x24345 $x23306) (= ?x23228 ?x10320))))
blanchet@57232
   237
(let ((@x24694 (trans (monotonicity @x25262 (= ?x23728 ?x23241)) (unit-resolution @x25031 (unit-resolution @x23870 @x19833 $x23270) $x23242) (= ?x23728 b_T_T_u1$))))
blanchet@57232
   238
(let ((@x24696 (trans (monotonicity @x24694 (= ?x23730 ?x21472)) (unit-resolution @x23544 (unit-resolution @x21484 @x15456 $x21480) $x21473) $x24098)))
blanchet@57170
   239
(let ((?x10272 (b_S_typemap$ v_b_S_s$)))
blanchet@57232
   240
(let ((?x24217 (b_S_select_o_tm$ ?x10272 ?x23228)))
blanchet@57170
   241
(let ((?x24218 (b_S_ts_n_emb$ ?x24217)))
blanchet@57232
   242
(let (($x23775 (b_S_closed$ v_b_S_s$ ?x24218)))
blanchet@57170
   243
(let (($x23784 (not $x23775)))
blanchet@57232
   244
(let (($x23805 (b_S_ts_n_is_n_volatile$ ?x24217)))
blanchet@57232
   245
(let (($x23770 (not $x23805)))
blanchet@57232
   246
(let (($x23797 (or $x23770 $x23784)))
blanchet@57232
   247
(let ((@x24686 (monotonicity (monotonicity @x25262 (= ?x24217 (b_S_select_o_tm$ ?x10272 ?x10320))) (= $x23805 (b_S_ts_n_is_n_volatile$ (b_S_select_o_tm$ ?x10272 ?x10320))))))
blanchet@57232
   248
(let ((@x24702 (symm @x24686 (= (b_S_ts_n_is_n_volatile$ (b_S_select_o_tm$ ?x10272 ?x10320)) $x23805))))
blanchet@57232
   249
(let ((@x24701 (monotonicity @x24702 (= (not (b_S_ts_n_is_n_volatile$ (b_S_select_o_tm$ ?x10272 ?x10320))) $x23770))))
blanchet@57232
   250
(let ((?x23124 (b_S_select_o_tm$ ?x10272 ?x10320)))
blanchet@57232
   251
(let (($x23361 (b_S_ts_n_is_n_volatile$ ?x23124)))
blanchet@57170
   252
(let (($x23297 (not $x23361)))
blanchet@57170
   253
(let (($x23362 (or $x15593 $x23361)))
blanchet@57170
   254
(let (($x23363 (not $x23362)))
blanchet@57170
   255
(let (($x11901 (>= v_b_L_H_p_G_0$ 0)))
blanchet@57170
   256
(let (($x20030 (forall ((?v0 Int) )(!(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   257
(let (($x10238 (= ?x10163 v_b_S_result_G_0$)))
blanchet@57170
   258
(let (($x11800 (>= (+ ?v0 (* (- 1) v_b_P_H_len$)) 0)))
blanchet@57170
   259
(let (($x12168 (<= ?v0 4294967295)))
blanchet@57170
   260
(let (($x16553 (not $x12168)))
blanchet@57170
   261
(let (($x2815 (>= ?v0 0)))
blanchet@57170
   262
(let (($x3763 (not $x2815)))
blanchet@57170
   263
(or $x3763 $x16553 $x11800 (not $x10238))))))))) :pattern ( (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$) )))
blanchet@57170
   264
))
blanchet@57170
   265
(let (($x20035 (not $x20030)))
blanchet@57170
   266
(let (($x20022 (forall ((?v0 Int) )(!(let ((?x11816 (* (- 1) v_b_S_result_G_0$)))
blanchet@57170
   267
(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   268
(let (($x11818 (<= (+ ?x10163 ?x11816) 0)))
blanchet@57170
   269
(let (($x11800 (>= (+ ?v0 (* (- 1) v_b_P_H_len$)) 0)))
blanchet@57170
   270
(let (($x12168 (<= ?v0 4294967295)))
blanchet@57170
   271
(let (($x16553 (not $x12168)))
blanchet@57170
   272
(let (($x2815 (>= ?v0 0)))
blanchet@57170
   273
(let (($x3763 (not $x2815)))
blanchet@57170
   274
(or $x3763 $x16553 $x11800 $x11818))))))))) :pattern ( (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$) )))
blanchet@57170
   275
))
blanchet@57170
   276
(let (($x20027 (not $x20022)))
blanchet@57170
   277
(let (($x20038 (or $x20027 $x20035)))
blanchet@57170
   278
(let (($x20041 (not $x20038)))
blanchet@57170
   279
(let ((?x15743 (b_S_idx$ ?x10078 ?v0!15 b_T_T_u1$)))
blanchet@57170
   280
(let ((?x15744 (b_S_read_n_u1$ v_b_S_s$ ?x15743)))
blanchet@57170
   281
(let ((?x16029 (* (- 1) ?x15744)))
blanchet@57170
   282
(let (($x16031 (>= (+ v_b_S_result_G_0$ ?x16029) 0)))
blanchet@57170
   283
(let (($x16009 (<= (+ v_b_P_H_len$ (* (- 1) ?v0!15)) 0)))
blanchet@57170
   284
(let (($x15737 (<= ?v0!15 4294967295)))
blanchet@57170
   285
(let (($x19560 (not $x15737)))
blanchet@57170
   286
(let (($x15736 (>= ?v0!15 0)))
blanchet@57170
   287
(let (($x19559 (not $x15736)))
blanchet@57170
   288
(let (($x19575 (or $x19559 $x19560 $x16009 $x16031)))
blanchet@57170
   289
(let (($x19580 (not $x19575)))
blanchet@57170
   290
(let (($x20044 (or $x19580 $x20041)))
blanchet@57170
   291
(let (($x20047 (not $x20044)))
blanchet@57170
   292
(let (($x10222 (= v_b_S_result_G_0$ v_b_L_H_max_G_1$)))
blanchet@57170
   293
(let (($x19640 (not $x10222)))
blanchet@57170
   294
(let (($x10220 (= v_b_SL_H_witness_G_2$ v_b_SL_H_witness_G_0$)))
blanchet@57170
   295
(let (($x19639 (not $x10220)))
blanchet@57170
   296
(let (($x10218 (= v_b_L_H_p_G_2$ v_b_L_H_p_G_0$)))
blanchet@57170
   297
(let (($x19638 (not $x10218)))
blanchet@57170
   298
(let (($x10216 (= v_b_L_H_max_G_4$ v_b_L_H_max_G_1$)))
blanchet@57170
   299
(let (($x19637 (not $x10216)))
blanchet@57170
   300
(let (($x15729 (not b_S_position_n_marker$)))
blanchet@57170
   301
(let (($x20050 (or $x15729 $x19474 $x19501 $x19637 $x19638 $x19639 $x19640 $x20047)))
blanchet@57170
   302
(let (($x20053 (not $x20050)))
blanchet@57170
   303
(let (($x20056 (or $x15729 $x20053)))
blanchet@57170
   304
(let (($x20059 (not $x20056)))
blanchet@57170
   305
(let ((?x11484 (* (- 1) v_b_L_H_p_G_0$)))
blanchet@57170
   306
(let ((?x11485 (+ v_b_P_H_len$ ?x11484)))
blanchet@57170
   307
(let (($x11486 (<= ?x11485 0)))
blanchet@57170
   308
(let (($x11487 (not $x11486)))
blanchet@57170
   309
(let (($x20062 (or $x11487 $x19474 $x19501 $x20059)))
blanchet@57170
   310
(let (($x20065 (not $x20062)))
blanchet@57170
   311
(let (($x19998 (or $x15590 $x15599 $x19995)))
blanchet@57170
   312
(let (($x20001 (not $x19998)))
blanchet@57170
   313
(let (($x20004 (or $x15590 $x15593 $x20001)))
blanchet@57170
   314
(let (($x20007 (not $x20004)))
blanchet@57170
   315
(let (($x20010 (or $x15590 $x15593 $x20007)))
blanchet@57170
   316
(let (($x20013 (not $x20010)))
blanchet@57170
   317
(let (($x20016 (or $x11486 $x19474 $x19501 $x20013)))
blanchet@57170
   318
(let (($x20019 (not $x20016)))
blanchet@57170
   319
(let (($x20068 (or $x20019 $x20065)))
blanchet@57170
   320
(let (($x20071 (not $x20068)))
blanchet@57170
   321
(let ((?x2238 (b_S_ptr_n_to$ b_T_T_u1$)))
blanchet@57170
   322
(let (($x10296 (b_S_local_n_value_n_is_n_ptr$ v_b_S_s$ b_H_tok_S_1_T_16_o_3$ b_H_loc_o_arr$ ?x10078 ?x2238)))
blanchet@57170
   323
(let (($x19683 (not $x10296)))
blanchet@57170
   324
(let ((?x10105 (b_S_ptr_n_to_n_int$ ?x10078)))
blanchet@57170
   325
(let (($x10295 (b_S_local_n_value_n_is$ v_b_S_s$ b_H_tok_S_1_T_16_o_3$ b_H_loc_o_arr$ ?x10105 ?x2238)))
blanchet@57170
   326
(let (($x19682 (not $x10295)))
blanchet@57170
   327
(let (($x10294 (b_S_local_n_value_n_is$ v_b_S_s$ b_H_tok_S_1_T_16_o_3$ b_H_loc_o_len$ v_b_P_H_len$ b_T_T_u4$)))
blanchet@57170
   328
(let (($x19681 (not $x10294)))
blanchet@57170
   329
(let (($x10293 (b_S_local_n_value_n_is$ v_b_S_s$ b_H_tok_S_1_T_16_o_3$ b_H_loc_o_max$ v_b_L_H_max_G_1$ b_T_T_u1$)))
blanchet@57170
   330
(let (($x19680 (not $x10293)))
blanchet@57170
   331
(let (($x10292 (b_S_local_n_value_n_is$ v_b_S_s$ b_H_tok_S_1_T_16_o_3$ b_H_loc_o_witness$ v_b_SL_H_witness_G_0$ b_T_T_u4$)))
blanchet@57170
   332
(let (($x19679 (not $x10292)))
blanchet@57170
   333
(let (($x10291 (b_S_local_n_value_n_is$ v_b_S_s$ b_H_tok_S_1_T_16_o_3$ b_H_loc_o_p$ v_b_L_H_p_G_0$ b_T_T_u4$)))
blanchet@57170
   334
(let (($x19678 (not $x10291)))
blanchet@57170
   335
(let (($x10097 (b_S_full_n_stop$ v_b_S_s$)))
blanchet@57170
   336
(let (($x19677 (not $x10097)))
blanchet@57170
   337
(let (($x10204 (b_S_good_n_state_n_ext$ b_H_tok_S_1_T_16_o_3$ v_b_S_s$)))
blanchet@57170
   338
(let (($x19676 (not $x10204)))
blanchet@57170
   339
(let (($x10284 (b_S_call_n_transition$ v_b_S_s$ v_b_S_s$)))
blanchet@57170
   340
(let (($x19675 (not $x10284)))
blanchet@57170
   341
(let ((?x10190 (b_S_idx$ ?x10078 v_b_SL_H_witness_G_0$ b_T_T_u1$)))
blanchet@57170
   342
(let ((?x10191 (b_S_read_n_u1$ v_b_S_s$ ?x10190)))
blanchet@57170
   343
(let (($x10192 (= ?x10191 v_b_L_H_max_G_1$)))
blanchet@57170
   344
(let (($x19674 (not $x10192)))
blanchet@57170
   345
(let ((?x11865 (* (- 1) v_b_SL_H_witness_G_0$)))
blanchet@57170
   346
(let ((?x11866 (+ v_b_P_H_len$ ?x11865)))
blanchet@57170
   347
(let (($x11867 (<= ?x11866 0)))
blanchet@57170
   348
(let (($x19898 (forall ((?v0 Int) )(!(let ((?x11887 (* (- 1) v_b_L_H_max_G_1$)))
blanchet@57170
   349
(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   350
(let (($x11889 (<= (+ ?x10163 ?x11887) 0)))
blanchet@57170
   351
(let (($x11871 (>= (+ ?v0 (* (- 1) v_b_L_H_p_G_0$)) 0)))
blanchet@57170
   352
(let (($x12168 (<= ?v0 4294967295)))
blanchet@57170
   353
(let (($x16553 (not $x12168)))
blanchet@57170
   354
(let (($x2815 (>= ?v0 0)))
blanchet@57170
   355
(let (($x3763 (not $x2815)))
blanchet@57170
   356
(or $x3763 $x16553 $x11871 $x11889))))))))) :pattern ( (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$) )))
blanchet@57170
   357
))
blanchet@57170
   358
(let (($x19903 (not $x19898)))
blanchet@57170
   359
(let (($x11898 (>= ?x11485 0)))
blanchet@57170
   360
(let (($x19672 (not $x11898)))
blanchet@57170
   361
(let (($x13326 (<= v_b_L_H_p_G_0$ 4294967295)))
blanchet@57170
   362
(let (($x19671 (not $x13326)))
blanchet@57170
   363
(let (($x19670 (not $x11901)))
blanchet@57170
   364
(let (($x13315 (<= v_b_SL_H_witness_G_0$ 4294967295)))
blanchet@57170
   365
(let (($x19669 (not $x13315)))
blanchet@57170
   366
(let (($x13304 (<= v_b_L_H_max_G_1$ 255)))
blanchet@57170
   367
(let (($x19668 (not $x13304)))
blanchet@57170
   368
(let (($x11911 (>= v_b_L_H_max_G_1$ 0)))
blanchet@57170
   369
(let (($x19667 (not $x11911)))
blanchet@57170
   370
(let ((?x10137 (b_S_idx$ ?x10078 0 b_T_T_u1$)))
blanchet@57170
   371
(let ((?x10144 (b_S_read_n_u1$ v_b_S_s$ ?x10137)))
blanchet@57170
   372
(let (($x10167 (= ?x10144 v_b_L_H_max_G_0$)))
blanchet@57170
   373
(let (($x15548 (not $x10167)))
blanchet@57170
   374
(let (($x11259 (<= v_b_P_H_len$ 0)))
blanchet@57170
   375
(let (($x20074 (or $x11259 $x15548 $x19667 $x19668 $x19669 $x19670 $x19671 $x19672 $x19903 $x11867 $x19674 $x19675 $x19676 $x19677 $x19678 $x19679 $x19680 $x19681 $x19682 $x19683 $x19474 $x19501 $x20071)))
blanchet@57170
   376
(let (($x20077 (not $x20074)))
blanchet@57170
   377
(let (($x20080 (or $x11259 $x15548 $x20077)))
blanchet@57170
   378
(let (($x20083 (not $x20080)))
blanchet@57170
   379
(let (($x19890 (forall ((?v0 Int) )(!(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   380
(let (($x11404 (>= (+ v_b_L_H_max_G_0$ (* (- 1) ?x10163)) 0)))
blanchet@57170
   381
(let (($x11388 (>= ?v0 1)))
blanchet@57170
   382
(let (($x12168 (<= ?v0 4294967295)))
blanchet@57170
   383
(let (($x16553 (not $x12168)))
blanchet@57170
   384
(let (($x2815 (>= ?v0 0)))
blanchet@57170
   385
(let (($x3763 (not $x2815)))
blanchet@57170
   386
(or $x3763 $x16553 $x11388 $x11404)))))))) :pattern ( (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$) )))
blanchet@57170
   387
))
blanchet@57170
   388
(let (($x19895 (not $x19890)))
blanchet@57170
   389
(let (($x20086 (or $x19895 $x20083)))
blanchet@57170
   390
(let (($x20089 (not $x20086)))
blanchet@57170
   391
(let ((?x15529 (b_S_idx$ ?x10078 ?v0!13 b_T_T_u1$)))
blanchet@57170
   392
(let ((?x15530 (b_S_read_n_u1$ v_b_S_s$ ?x15529)))
blanchet@57170
   393
(let (($x15533 (>= (+ v_b_L_H_max_G_0$ (* (- 1) ?x15530)) 0)))
blanchet@57170
   394
(let (($x15525 (>= ?v0!13 1)))
blanchet@57170
   395
(let (($x15524 (<= ?v0!13 4294967295)))
blanchet@57170
   396
(let (($x19298 (not $x15524)))
blanchet@57170
   397
(let (($x15523 (>= ?v0!13 0)))
blanchet@57170
   398
(let (($x19297 (not $x15523)))
blanchet@57170
   399
(let (($x19313 (or $x19297 $x19298 $x15525 $x15533)))
blanchet@57170
   400
(let (($x20589 (not $x15533)))
blanchet@57170
   401
(let (($x19318 (not $x19313)))
blanchet@57232
   402
(let ((@x23991 (hypothesis $x19318)))
blanchet@57170
   403
(let (($x10141 (b_S_thread_n_local$ v_b_S_s$ ?x10137)))
blanchet@57170
   404
(let ((?x21175 (b_S_typ$ ?x10078)))
blanchet@57170
   405
(let ((?x22803 (b_S_kind_n_of$ ?x21175)))
blanchet@57170
   406
(let (($x22807 (= ?x22803 b_S_kind_n_primitive$)))
blanchet@57170
   407
(let (($x21176 (= ?x21175 b_T_T_u1$)))
blanchet@57170
   408
(let (($x21147 (not $x19841)))
blanchet@57170
   409
(let (($x21181 (or $x21147 $x21176)))
blanchet@57170
   410
(let ((@x21182 ((_ quant-inst b_T_T_u1$ v_b_P_H_arr$) $x21181)))
blanchet@57170
   411
(let ((@x23076 (trans (monotonicity (unit-resolution @x21182 @x19846 $x21176) (= ?x22803 ?x21472)) (unit-resolution @x23544 (unit-resolution @x21484 @x15456 $x21480) $x21473) $x22807)))
blanchet@57170
   412
(let ((?x22818 (b_S_select_o_tm$ ?x10272 ?x10078)))
blanchet@57170
   413
(let ((?x22903 (b_S_ts_n_emb$ ?x22818)))
blanchet@57170
   414
(let (($x22904 (b_S_closed$ v_b_S_s$ ?x22903)))
blanchet@57170
   415
(let (($x22902 (b_S_ts_n_is_n_volatile$ ?x22818)))
blanchet@57170
   416
(let (($x22897 (not $x22902)))
blanchet@57170
   417
(let (($x22906 (or $x22897 (not $x22904))))
blanchet@57170
   418
(let ((?x22478 (b_S_select_o_tm$ ?x10272 ?x10137)))
blanchet@57170
   419
(let ((?x22485 (b_S_ref$ ?x10137)))
blanchet@57170
   420
(let ((?x22505 (b_S_ptr$ b_T_T_u1$ ?x22485)))
blanchet@57170
   421
(let ((?x22655 (b_S_select_o_tm$ ?x10272 ?x22505)))
blanchet@57170
   422
(let (($x22506 (= ?x10137 ?x22505)))
blanchet@57170
   423
(let ((?x22553 (b_S_ptr$ b_T_T_u1$ ?x10079)))
blanchet@57170
   424
(let (($x22556 (= ?x10137 ?x22553)))
blanchet@57170
   425
(let (($x22559 (not $x22556)))
blanchet@57170
   426
(let (($x22523 (b_S_extent_n_hint$ ?x10137 ?x10078)))
blanchet@57170
   427
(let (($x22524 (not $x22523)))
blanchet@57170
   428
(let (($x22562 (or $x22524 $x22559)))
blanchet@57170
   429
(let (($x22565 (not $x22562)))
blanchet@57170
   430
(let (($x22569 (or $x22568 $x22565)))
blanchet@57170
   431
(let (($x22542 (or $x22524 (not (= ?x10137 (b_S_ptr$ b_T_T_u1$ (+ ?x10079 (* 0 ?x10045))))))))
blanchet@57170
   432
(let (($x22543 (not $x22542)))
blanchet@57170
   433
(let (($x22560 (= (not (= ?x10137 (b_S_ptr$ b_T_T_u1$ (+ ?x10079 (* 0 ?x10045))))) $x22559)))
blanchet@57170
   434
(let ((@x22548 (monotonicity (rewrite (= (* 0 ?x10045) 0)) (= (+ ?x10079 (* 0 ?x10045)) (+ ?x10079 0)))))
blanchet@57170
   435
(let ((@x22552 (trans @x22548 (rewrite (= (+ ?x10079 0) ?x10079)) (= (+ ?x10079 (* 0 ?x10045)) ?x10079))))
blanchet@57170
   436
(let ((@x22555 (monotonicity @x22552 (= (b_S_ptr$ b_T_T_u1$ (+ ?x10079 (* 0 ?x10045))) ?x22553))))
blanchet@57170
   437
(let ((@x22558 (monotonicity @x22555 (= (= ?x10137 (b_S_ptr$ b_T_T_u1$ (+ ?x10079 (* 0 ?x10045)))) $x22556))))
blanchet@57170
   438
(let ((@x22567 (monotonicity (monotonicity (monotonicity @x22558 $x22560) (= $x22542 $x22562)) (= $x22543 $x22565))))
blanchet@57170
   439
(let ((@x22576 (trans (monotonicity @x22567 (= (or $x22568 $x22543) $x22569)) (rewrite (= $x22569 $x22569)) (= (or $x22568 $x22543) $x22569))))
blanchet@57170
   440
(let ((@x22577 (mp ((_ quant-inst (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) 0 b_T_T_u1$) (or $x22568 $x22543)) @x22576 $x22569)))
blanchet@57170
   441
(let ((@x22581 (def-axiom (or $x22562 $x22556))))
blanchet@57232
   442
(let ((@x24189 (unit-resolution @x22581 (lemma (unit-resolution @x22577 @x18183 (hypothesis $x22562) false) $x22565) $x22556)))
blanchet@57170
   443
(let (($x21179 (= ?x10079 v_b_P_H_arr$)))
blanchet@57170
   444
(let (($x19835 (forall ((?v0 B_S_ctype$) (?v1 Int) )(!(= (b_S_ref$ (b_S_ptr$ ?v0 ?v1)) ?v1) :pattern ( (b_S_ptr$ ?v0 ?v1) )))
blanchet@57170
   445
))
blanchet@57170
   446
(let (($x9655 (forall ((?v0 B_S_ctype$) (?v1 Int) )(= (b_S_ref$ (b_S_ptr$ ?v0 ?v1)) ?v1))
blanchet@57170
   447
))
blanchet@57170
   448
(let (($x9654 (= (b_S_ref$ (b_S_ptr$ ?1 ?0)) ?0)))
blanchet@57170
   449
(let ((@x15356 (mp~ (asserted $x9655) (nnf-pos (refl (~ $x9654 $x9654)) (~ $x9655 $x9655)) $x9655)))
blanchet@57170
   450
(let ((@x19840 (mp @x15356 (quant-intro (refl (= $x9654 $x9654)) (= $x9655 $x19835)) $x19835)))
blanchet@57170
   451
(let (($x21152 (not $x19835)))
blanchet@57170
   452
(let (($x21184 (or $x21152 $x21179)))
blanchet@57170
   453
(let ((@x21185 ((_ quant-inst b_T_T_u1$ v_b_P_H_arr$) $x21184)))
blanchet@57170
   454
(let ((@x24511 (unit-resolution @x21185 @x19840 $x21179)))
blanchet@57170
   455
(let ((@x22852 (monotonicity @x24511 (= ?x22553 ?x10078))))
blanchet@57232
   456
(let ((@x24073 (monotonicity (trans (hypothesis $x22556) @x22852 (= ?x10137 ?x10078)) (= ?x22485 ?x10079))))
blanchet@57232
   457
(let ((@x22338 (symm (monotonicity (trans @x24073 @x24511 (= ?x22485 v_b_P_H_arr$)) (= ?x22505 ?x10078)) (= ?x10078 ?x22505))))
blanchet@57170
   458
(let ((@x22340 (unit-resolution (hypothesis (not $x22506)) (trans (trans (hypothesis $x22556) @x22852 (= ?x10137 ?x10078)) @x22338 $x22506) false)))
blanchet@57232
   459
(let ((@x23667 (unit-resolution (lemma @x22340 (or $x22559 $x22506)) @x24189 $x22506)))
blanchet@57232
   460
(let ((@x23699 (trans (symm @x22852 (= ?x10078 ?x22553)) (symm @x24189 (= ?x22553 ?x10137)) (= ?x10078 ?x10137))))
blanchet@57232
   461
(let ((@x22940 (trans (monotonicity (trans @x23699 @x23667 (= ?x10078 ?x22505)) (= ?x22818 ?x22655)) (symm (monotonicity @x23667 (= ?x22478 ?x22655)) (= ?x22655 ?x22478)) (= ?x22818 ?x22478))))
blanchet@57170
   462
(let ((@x23082 (symm (monotonicity @x22940 (= $x22902 (b_S_ts_n_is_n_volatile$ ?x22478))) (= (b_S_ts_n_is_n_volatile$ ?x22478) $x22902))))
blanchet@57170
   463
(let (($x22602 (b_S_ts_n_is_n_volatile$ ?x22478)))
blanchet@57170
   464
(let (($x22641 (not $x22602)))
blanchet@57170
   465
(let (($x10139 (b_S_typed$ v_b_S_s$ ?x10137)))
blanchet@57170
   466
(let (($x15505 (not $x10139)))
blanchet@57170
   467
(let (($x22603 (or $x15505 $x22602)))
blanchet@57170
   468
(let (($x22604 (not $x22603)))
blanchet@57170
   469
(let ((?x10076 (b_S_array$ b_T_T_u1$ v_b_P_H_len$)))
blanchet@57170
   470
(let ((?x10080 (b_S_ptr$ ?x10076 ?x10079)))
blanchet@57170
   471
(let ((?x21014 (b_S_ref$ ?x10080)))
blanchet@57170
   472
(let ((?x21983 (b_S_ptr$ ?x10076 ?x21014)))
blanchet@57170
   473
(let ((?x22343 (b_S_domain$ v_b_S_s$ ?x21983)))
blanchet@57170
   474
(let ((?x22595 (b_S_ptr$ ?x10076 v_b_P_H_arr$)))
blanchet@57170
   475
(let (($x22596 (b_S_set_n_in$ ?x22595 ?x22343)))
blanchet@57170
   476
(let ((@x24530 (monotonicity (symm @x24511 (= v_b_P_H_arr$ ?x10079)) (= ?x22595 ?x10080))))
blanchet@57170
   477
(let (($x21990 (= ?x10080 ?x21983)))
blanchet@57170
   478
(let (($x10084 (b_S_is$ ?x10080 ?x10076)))
blanchet@57170
   479
(let (($x11245 (>= (+ b_S_max_o_u4$ (* (- 1) v_b_P_H_len$)) 0)))
blanchet@57170
   480
(let (($x11243 (>= v_b_P_H_len$ 0)))
blanchet@57170
   481
(let (($x10439 (forall ((?v0 B_S_ptr$) )(!(let (($x10113 (b_S_in_n_writes_n_at$ v_b_H_wrTime_S_1_T_6_o_1$ ?v0)))
blanchet@57170
   482
(not $x10113)) :pattern ( (b_S_in_n_writes_n_at$ v_b_H_wrTime_S_1_T_6_o_1$ ?v0) )))
blanchet@57170
   483
))
blanchet@57170
   484
(let ((?x10111 (b_S_current_n_timestamp$ v_b_S_s$)))
blanchet@57170
   485
(let (($x10112 (= v_b_H_wrTime_S_1_T_6_o_1$ ?x10111)))
blanchet@57170
   486
(let (($x10109 (b_S_local_n_value_n_is$ v_b_S_s$ b_H_tok_S_1_T_6_o_1$ b_H_loc_o_len$ v_b_P_H_len$ b_T_T_u4$)))
blanchet@57170
   487
(let (($x10107 (b_S_local_n_value_n_is_n_ptr$ v_b_S_s$ b_H_tok_S_1_T_6_o_1$ b_H_loc_o_arr$ ?x10078 ?x2238)))
blanchet@57170
   488
(let (($x10106 (b_S_local_n_value_n_is$ v_b_S_s$ b_H_tok_S_1_T_6_o_1$ b_H_loc_o_arr$ ?x10105 ?x2238)))
blanchet@57170
   489
(let (($x11256 (forall ((?v0 B_S_pure_n_function$) )(!(let (($x11251 (>= (+ (b_S_frame_n_level$ ?v0) (* (- 1) b_S_current_n_frame_n_level$)) 0)))
blanchet@57170
   490
(not $x11251)) :pattern ( (b_S_frame_n_level$ ?v0) )))
blanchet@57170
   491
))
blanchet@57170
   492
(let (($x10096 (b_S_good_n_state_n_ext$ b_H_tok_S_1_T_6_o_1$ v_b_S_s$)))
blanchet@57170
   493
(let (($x10095 (b_S_function_n_entry$ v_b_S_s$)))
blanchet@57170
   494
(let (($x10089 (b_S_is_n_non_n_primitive$ ?x10076)))
blanchet@57170
   495
(let ((?x10086 (b_S_kind_n_of$ ?x10076)))
blanchet@57170
   496
(let (($x10087 (= ?x10086 b_S_kind_n_primitive$)))
blanchet@57170
   497
(let (($x10088 (not $x10087)))
blanchet@57170
   498
(let (($x10085 (b_S_typed$ v_b_S_s$ ?x10080)))
blanchet@57170
   499
(let ((?x10082 (b_S_owner$ v_b_S_s$ ?x10080)))
blanchet@57170
   500
(let (($x10083 (= ?x10082 b_S_me$)))
blanchet@57170
   501
(let (($x10081 (b_S_closed$ v_b_S_s$ ?x10080)))
blanchet@57170
   502
(let (($x11260 (not $x11259)))
blanchet@57170
   503
(let (($x11263 (>= v_b_P_H_len$ 1099511627776)))
blanchet@57170
   504
(let (($x11264 (not $x11263)))
blanchet@57170
   505
(let (($x11270 (>= (+ b_S_max_o_u4$ (* (- 1) v_b_SL_H_witness$)) 0)))
blanchet@57170
   506
(let (($x11268 (>= v_b_SL_H_witness$ 0)))
blanchet@57170
   507
(let (($x11278 (>= (+ b_S_max_o_u4$ (* (- 1) v_b_L_H_p$)) 0)))
blanchet@57170
   508
(let (($x11276 (>= v_b_L_H_p$ 0)))
blanchet@57170
   509
(let (($x11286 (>= (+ b_S_max_o_u1$ (* (- 1) v_b_L_H_max$)) 0)))
blanchet@57170
   510
(let (($x11284 (>= v_b_L_H_max$ 0)))
blanchet@57170
   511
(let (($x11342 (and $x11284 $x11286 $x11276 $x11278 $x11268 $x11270 $x11264 $x11260 $x10081 $x10083 $x10084 $x10085 $x10088 $x10089 $x10095 $x10096 $x10097 $x11256 $x10106 $x10107 $x10109 $x10112 $x10439 $x11243 $x11245)))
blanchet@57170
   512
(let (($x11844 (exists ((?v0 Int) )(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   513
(let (($x10238 (= ?x10163 v_b_S_result_G_0$)))
blanchet@57170
   514
(let (($x11800 (>= (+ ?v0 (* (- 1) v_b_P_H_len$)) 0)))
blanchet@57170
   515
(let (($x11802 (not $x11800)))
blanchet@57170
   516
(let ((?x3113 (* (- 1) b_S_max_o_u4$)))
blanchet@57170
   517
(let ((?x3114 (+ ?v0 ?x3113)))
blanchet@57170
   518
(let (($x3115 (<= ?x3114 0)))
blanchet@57170
   519
(let (($x2815 (>= ?v0 0)))
blanchet@57170
   520
(and $x2815 $x3115 $x11802 $x10238))))))))))
blanchet@57170
   521
))
blanchet@57170
   522
(let (($x11824 (forall ((?v0 Int) )(let ((?x11816 (* (- 1) v_b_S_result_G_0$)))
blanchet@57170
   523
(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   524
(let (($x11818 (<= (+ ?x10163 ?x11816) 0)))
blanchet@57170
   525
(let (($x11800 (>= (+ ?v0 (* (- 1) v_b_P_H_len$)) 0)))
blanchet@57170
   526
(let (($x11802 (not $x11800)))
blanchet@57170
   527
(let ((?x3113 (* (- 1) b_S_max_o_u4$)))
blanchet@57170
   528
(let ((?x3114 (+ ?v0 ?x3113)))
blanchet@57170
   529
(let (($x3115 (<= ?x3114 0)))
blanchet@57170
   530
(let (($x2815 (>= ?v0 0)))
blanchet@57170
   531
(let (($x11808 (and $x2815 $x3115 $x11802)))
blanchet@57170
   532
(let (($x11813 (not $x11808)))
blanchet@57170
   533
(or $x11813 $x11818)))))))))))))
blanchet@57170
   534
))
blanchet@57170
   535
(let (($x11827 (not $x11824)))
blanchet@57170
   536
(let (($x11847 (or $x11827 $x11844)))
blanchet@57170
   537
(let (($x11850 (and $x11824 $x11847)))
blanchet@57170
   538
(let (($x11792 (and b_S_position_n_marker$ $x11429 $x11432 $x10216 $x10218 $x10220 $x10222)))
blanchet@57170
   539
(let (($x11797 (not $x11792)))
blanchet@57170
   540
(let (($x11853 (or $x11797 $x11850)))
blanchet@57170
   541
(let (($x11856 (and b_S_position_n_marker$ $x11853)))
blanchet@57170
   542
(let (($x11772 (and $x11486 $x11429 $x11432)))
blanchet@57170
   543
(let (($x11777 (not $x11772)))
blanchet@57170
   544
(let (($x11859 (or $x11777 $x11856)))
blanchet@57170
   545
(let (($x11648 (not $x11647)))
blanchet@57170
   546
(let (($x11651 (and $x11648 $x10374)))
blanchet@57170
   547
(let (($x11639 (forall ((?v0 Int) )(let ((?x11631 (* (- 1) v_b_L_H_max_G_3$)))
blanchet@57170
   548
(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   549
(let (($x11633 (<= (+ ?x10163 ?x11631) 0)))
blanchet@57170
   550
(let (($x11615 (>= (+ ?v0 (* (- 1) v_b_L_H_p_G_1$)) 0)))
blanchet@57170
   551
(let (($x11617 (not $x11615)))
blanchet@57170
   552
(let ((?x3113 (* (- 1) b_S_max_o_u4$)))
blanchet@57170
   553
(let ((?x3114 (+ ?v0 ?x3113)))
blanchet@57170
   554
(let (($x3115 (<= ?x3114 0)))
blanchet@57170
   555
(let (($x2815 (>= ?v0 0)))
blanchet@57170
   556
(let (($x11623 (and $x2815 $x3115 $x11617)))
blanchet@57170
   557
(let (($x11628 (not $x11623)))
blanchet@57170
   558
(or $x11628 $x11633)))))))))))))
blanchet@57170
   559
))
blanchet@57170
   560
(let (($x11642 (not $x11639)))
blanchet@57170
   561
(let (($x11654 (or $x11642 $x11651)))
blanchet@57170
   562
(let (($x11657 (and $x11639 $x11654)))
blanchet@57170
   563
(let (($x11660 (or $x11612 $x11657)))
blanchet@57170
   564
(let (($x11663 (and $x11608 $x11660)))
blanchet@57170
   565
(let ((?x11574 (+ b_S_max_o_u4$ ?x11484)))
blanchet@57170
   566
(let (($x11573 (>= ?x11574 1)))
blanchet@57170
   567
(let (($x11600 (and $x11570 $x11573 $x11580 $x10358 $x11578 $x11536)))
blanchet@57170
   568
(let (($x11605 (not $x11600)))
blanchet@57170
   569
(let (($x11666 (or $x11605 $x11663)))
blanchet@57170
   570
(let (($x11672 (and $x11570 $x11573 $x11666)))
blanchet@57170
   571
(let (($x11725 (and $x11516 $x11432 $x10391 $x10392 $x11429 $x11536)))
blanchet@57170
   572
(let (($x11730 (not $x11725)))
blanchet@57170
   573
(let (($x11733 (or $x11730 $x11672)))
blanchet@57170
   574
(let (($x11562 (and $x10321 $x10324 $x10333 $x10334 $x10335 $x10338 $x10340 $x11429 $x11536)))
blanchet@57170
   575
(let (($x11567 (not $x11562)))
blanchet@57170
   576
(let (($x11677 (or $x11567 $x11672)))
blanchet@57170
   577
(let (($x11683 (and $x10321 $x10324 $x11677)))
blanchet@57170
   578
(let (($x10323 (and $x10321 $x10322)))
blanchet@57170
   579
(let (($x11001 (not $x10323)))
blanchet@57170
   580
(let (($x11688 (or $x11001 $x11683)))
blanchet@57170
   581
(let (($x11694 (and $x10321 $x10322 $x11688)))
blanchet@57170
   582
(let (($x11527 (and $x11515 $x11429 $x11432)))
blanchet@57170
   583
(let (($x11532 (not $x11527)))
blanchet@57170
   584
(let (($x11699 (or $x11532 $x11694)))
blanchet@57170
   585
(let (($x11736 (and $x11699 $x11733)))
blanchet@57170
   586
(let (($x11507 (and $x10321 $x10324 $x11429 $x11432)))
blanchet@57170
   587
(let (($x11512 (not $x11507)))
blanchet@57170
   588
(let (($x11739 (or $x11512 $x11736)))
blanchet@57170
   589
(let (($x11745 (and $x10321 $x10324 $x11739)))
blanchet@57170
   590
(let (($x11750 (or $x11001 $x11745)))
blanchet@57170
   591
(let (($x11756 (and $x10321 $x10322 $x11750)))
blanchet@57170
   592
(let (($x11496 (and $x11487 $x11429 $x11432)))
blanchet@57170
   593
(let (($x11501 (not $x11496)))
blanchet@57170
   594
(let (($x11761 (or $x11501 $x11756)))
blanchet@57170
   595
(let (($x11862 (and $x11761 $x11859)))
blanchet@57170
   596
(let (($x11476 (and $x10284 $x10204 $x10097 $x10291 $x10292 $x10293 $x10294 $x10295 $x10296 $x11429 $x11432)))
blanchet@57170
   597
(let (($x11481 (not $x11476)))
blanchet@57170
   598
(let (($x11868 (not $x11867)))
blanchet@57170
   599
(let (($x11895 (forall ((?v0 Int) )(let ((?x11887 (* (- 1) v_b_L_H_max_G_1$)))
blanchet@57170
   600
(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   601
(let (($x11889 (<= (+ ?x10163 ?x11887) 0)))
blanchet@57170
   602
(let (($x11871 (>= (+ ?v0 (* (- 1) v_b_L_H_p_G_0$)) 0)))
blanchet@57170
   603
(let (($x11873 (not $x11871)))
blanchet@57170
   604
(let ((?x3113 (* (- 1) b_S_max_o_u4$)))
blanchet@57170
   605
(let ((?x3114 (+ ?v0 ?x3113)))
blanchet@57170
   606
(let (($x3115 (<= ?x3114 0)))
blanchet@57170
   607
(let (($x2815 (>= ?v0 0)))
blanchet@57170
   608
(let (($x11879 (and $x2815 $x3115 $x11873)))
blanchet@57170
   609
(let (($x11884 (not $x11879)))
blanchet@57170
   610
(or $x11884 $x11889)))))))))))))
blanchet@57170
   611
))
blanchet@57170
   612
(let (($x11904 (>= ?x11574 0)))
blanchet@57170
   613
(let (($x11907 (>= (+ b_S_max_o_u4$ ?x11865) 0)))
blanchet@57170
   614
(let (($x11914 (>= (+ b_S_max_o_u1$ (* (- 1) v_b_L_H_max_G_1$)) 0)))
blanchet@57170
   615
(let (($x11957 (and $x11260 $x10167 $x11911 $x11914 $x11907 $x11901 $x11904 $x11898 $x11895 $x11868 $x10192 $x11429 $x11432)))
blanchet@57170
   616
(let (($x11962 (not $x11957)))
blanchet@57170
   617
(let (($x11971 (or $x11962 $x11481 $x11862)))
blanchet@57170
   618
(let (($x11979 (and $x11260 $x10167 $x11971)))
blanchet@57170
   619
(let (($x11411 (forall ((?v0 Int) )(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   620
(let (($x11404 (>= (+ v_b_L_H_max_G_0$ (* (- 1) ?x10163)) 0)))
blanchet@57170
   621
(let (($x11388 (>= ?v0 1)))
blanchet@57170
   622
(let (($x11389 (not $x11388)))
blanchet@57170
   623
(let ((?x3113 (* (- 1) b_S_max_o_u4$)))
blanchet@57170
   624
(let ((?x3114 (+ ?v0 ?x3113)))
blanchet@57170
   625
(let (($x3115 (<= ?x3114 0)))
blanchet@57170
   626
(let (($x2815 (>= ?v0 0)))
blanchet@57170
   627
(let (($x11395 (and $x2815 $x3115 $x11389)))
blanchet@57170
   628
(let (($x11400 (not $x11395)))
blanchet@57170
   629
(or $x11400 $x11404))))))))))))
blanchet@57170
   630
))
blanchet@57170
   631
(let (($x11414 (not $x11411)))
blanchet@57170
   632
(let (($x11984 (or $x11414 $x11979)))
blanchet@57170
   633
(let (($x11987 (and $x11411 $x11984)))
blanchet@57170
   634
(let (($x11382 (>= v_b_P_H_len$ 1)))
blanchet@57170
   635
(let (($x11385 (not $x11382)))
blanchet@57170
   636
(let (($x11990 (or $x11385 $x11987)))
blanchet@57170
   637
(let (($x11993 (and $x11382 $x11990)))
blanchet@57170
   638
(let (($x10148 (b_S_local_n_value_n_is$ v_b_S_s$ b_H_tok_S_1_T_16_o_8$ b_H_loc_o_p$ 1 b_T_T_u4$)))
blanchet@57170
   639
(let (($x10147 (b_S_local_n_value_n_is$ v_b_S_s$ b_H_tok_S_1_T_14_o_3$ b_H_loc_o_witness$ 0 b_T_T_u4$)))
blanchet@57170
   640
(let (($x10146 (b_S_local_n_value_n_is$ v_b_S_s$ b_H_tok_S_1_T_12_o_3$ b_H_loc_o_max$ v_b_L_H_max_G_0$ b_T_T_u1$)))
blanchet@57170
   641
(let (($x10145 (= v_b_L_H_max_G_0$ ?x10144)))
blanchet@57170
   642
(let (($x10138 (b_S_is$ ?x10137 b_T_T_u1$)))
blanchet@57170
   643
(let (($x11374 (and $x10138 $x10141 $x10145 $x10146 $x10147 $x10148)))
blanchet@57170
   644
(let (($x11379 (not $x11374)))
blanchet@57170
   645
(let (($x11996 (or $x11379 $x11993)))
blanchet@57170
   646
(let (($x12002 (and $x10138 $x10141 $x11996)))
blanchet@57170
   647
(let (($x10140 (and $x10138 $x10139)))
blanchet@57170
   648
(let (($x11209 (not $x10140)))
blanchet@57170
   649
(let (($x12007 (or $x11209 $x12002)))
blanchet@57170
   650
(let (($x12013 (and $x10138 $x10139 $x12007)))
blanchet@57170
   651
(let (($x10136 (b_S_in_n_domain_n_lab$ v_b_S_s$ ?x10080 ?x10080 b_l_H_public$)))
blanchet@57170
   652
(let (($x11221 (not $x10136)))
blanchet@57170
   653
(let (($x12018 (or $x11221 $x12013)))
blanchet@57170
   654
(let (($x12021 (and $x10136 $x12018)))
blanchet@57170
   655
(let (($x12027 (not (or (not $x11342) $x12021))))
blanchet@57170
   656
(let (($x10242 (exists ((?v0 Int) )(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   657
(let (($x10238 (= ?x10163 v_b_S_result_G_0$)))
blanchet@57170
   658
(let (($x10233 (< ?v0 v_b_P_H_len$)))
blanchet@57170
   659
(let (($x3097 (<= ?v0 b_S_max_o_u4$)))
blanchet@57170
   660
(let (($x2766 (<= 0 ?v0)))
blanchet@57170
   661
(and $x2766 (and $x3097 (and $x10233 $x10238)))))))))
blanchet@57170
   662
))
blanchet@57170
   663
(let (($x10244 (and $x10242 (=> $x10242 true))))
blanchet@57170
   664
(let (($x10237 (forall ((?v0 Int) )(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   665
(let (($x10235 (<= ?x10163 v_b_S_result_G_0$)))
blanchet@57170
   666
(let (($x10233 (< ?v0 v_b_P_H_len$)))
blanchet@57170
   667
(let (($x3097 (<= ?v0 b_S_max_o_u4$)))
blanchet@57170
   668
(let (($x2766 (<= 0 ?v0)))
blanchet@57170
   669
(let (($x3098 (and $x2766 $x3097)))
blanchet@57170
   670
(let (($x10234 (and $x3098 $x10233)))
blanchet@57170
   671
(=> $x10234 $x10235)))))))))
blanchet@57170
   672
))
blanchet@57170
   673
(let (($x10245 (=> $x10237 $x10244)))
blanchet@57170
   674
(let (($x10227 (and true (and $x10216 (and $x10218 (and $x10220 (and $x10222 true)))))))
blanchet@57170
   675
(let (($x10174 (<= 0 v_b_SL_H_witness_G_0$)))
blanchet@57170
   676
(let (($x10181 (<= 1 v_b_L_H_p_G_0$)))
blanchet@57170
   677
(let (($x10182 (and $x10181 $x10174)))
blanchet@57170
   678
(let (($x10230 (and true (and $x10182 (and $x10182 $x10227)))))
blanchet@57170
   679
(let (($x10247 (=> (and b_S_position_n_marker$ (and $x10182 $x10230)) (and $x10237 $x10245))))
blanchet@57170
   680
(let (($x10248 (and b_S_position_n_marker$ $x10247)))
blanchet@57170
   681
(let (($x10206 (and true $x10182)))
blanchet@57170
   682
(let (($x10207 (and $x10182 $x10206)))
blanchet@57170
   683
(let (($x10411 (and $x10182 $x10207)))
blanchet@57170
   684
(let (($x10412 (and true $x10411)))
blanchet@57170
   685
(let (($x10413 (and $x10182 $x10412)))
blanchet@57170
   686
(let (($x10410 (<= v_b_P_H_len$ v_b_L_H_p_G_0$)))
blanchet@57170
   687
(let (($x10416 (and true (and $x10182 (and $x10410 $x10413)))))
blanchet@57170
   688
(let (($x10417 (=> $x10416 $x10248)))
blanchet@57170
   689
(let (($x10377 (=> (and (and (< v_b_SL_H_witness_G_1$ v_b_P_H_len$) $x10374) false) true)))
blanchet@57170
   690
(let (($x10375 (and (< v_b_SL_H_witness_G_1$ v_b_P_H_len$) $x10374)))
blanchet@57170
   691
(let (($x10378 (and $x10375 $x10377)))
blanchet@57170
   692
(let (($x10370 (forall ((?v0 Int) )(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   693
(let (($x10368 (<= ?x10163 v_b_L_H_max_G_3$)))
blanchet@57170
   694
(let (($x3097 (<= ?v0 b_S_max_o_u4$)))
blanchet@57170
   695
(let (($x2766 (<= 0 ?v0)))
blanchet@57170
   696
(let (($x3098 (and $x2766 $x3097)))
blanchet@57170
   697
(let (($x10367 (and $x3098 (< ?v0 v_b_L_H_p_G_1$))))
blanchet@57170
   698
(=> $x10367 $x10368))))))))
blanchet@57170
   699
))
blanchet@57170
   700
(let (($x10379 (=> $x10370 $x10378)))
blanchet@57170
   701
(let (($x10365 (<= v_b_L_H_p_G_1$ v_b_P_H_len$)))
blanchet@57170
   702
(let (($x10381 (=> $x10365 (and $x10370 $x10379))))
blanchet@57170
   703
(let (($x10341 (<= 0 v_b_SL_H_witness_G_1$)))
blanchet@57170
   704
(let (($x10360 (and (<= 2 v_b_L_H_p_G_1$) $x10341)))
blanchet@57170
   705
(let (($x10363 (and (= v_b_L_H_p_G_1$ (+ v_b_L_H_p_G_0$ 1)) (and $x10358 (and $x10360 true)))))
blanchet@57170
   706
(let (($x10355 (and (<= 0 (+ v_b_L_H_p_G_0$ 1)) (<= (+ v_b_L_H_p_G_0$ 1) b_S_max_o_u4$))))
blanchet@57170
   707
(let (($x10383 (=> (and $x10355 $x10363) (and $x10365 $x10381))))
blanchet@57170
   708
(let (($x10384 (and $x10355 $x10383)))
blanchet@57170
   709
(let (($x10395 (and true (and $x10391 (and $x10392 (and true (and $x10181 $x10341)))))))
blanchet@57170
   710
(let (($x10398 (and true (and $x10182 (and $x10182 $x10395)))))
blanchet@57170
   711
(let (($x10390 (<= ?x10327 v_b_L_H_max_G_1$)))
blanchet@57170
   712
(let (($x10402 (and true (and $x10182 (and $x10390 (and $x10182 $x10398))))))
blanchet@57170
   713
(let (($x10403 (=> $x10402 $x10384)))
blanchet@57170
   714
(let (($x10346 (and true (and $x10338 (and $x10340 (and true (and $x10181 $x10341)))))))
blanchet@57170
   715
(let (($x10325 (and $x10321 $x10324)))
blanchet@57170
   716
(let (($x10351 (and $x10325 (and $x10333 (and $x10334 (and $x10335 (and (and $x10181 $x10181) $x10346)))))))
blanchet@57170
   717
(let (($x10385 (=> $x10351 $x10384)))
blanchet@57170
   718
(let (($x10387 (=> $x10323 (and $x10325 $x10385))))
blanchet@57170
   719
(let (($x10331 (and true (and $x10182 (and (< v_b_L_H_max_G_1$ ?x10327) $x10207)))))
blanchet@57170
   720
(let (($x10389 (=> $x10331 (and $x10323 $x10387))))
blanchet@57170
   721
(let (($x10326 (and $x10325 $x10182)))
blanchet@57170
   722
(let (($x10405 (=> $x10326 (and $x10389 $x10403))))
blanchet@57170
   723
(let (($x10407 (=> $x10323 (and $x10325 $x10405))))
blanchet@57170
   724
(let (($x10319 (and true (and $x10182 (and (< v_b_L_H_p_G_0$ v_b_P_H_len$) $x10207)))))
blanchet@57170
   725
(let (($x10409 (=> $x10319 (and $x10323 $x10407))))
blanchet@57170
   726
(let (($x10300 (and (= ?x10272 ?x10272) (= (b_S_statusmap$ v_b_S_s$) (b_S_statusmap$ v_b_S_s$)))))
blanchet@57170
   727
(let (($x10301 (and $x10300 $x10182)))
blanchet@57170
   728
(let (($x10297 (and $x10295 $x10296)))
blanchet@57170
   729
(let (($x10205 (and $x10204 $x10097)))
blanchet@57170
   730
(let (($x10307 (and $x10205 (and $x10291 (and $x10292 (and $x10293 (and $x10294 (and $x10297 $x10301))))))))
blanchet@57170
   731
(let (($x10283 (forall ((?v0 B_S_ptr$) )(!(let ((?x10280 (b_S_timestamp$ v_b_S_s$ ?v0)))
blanchet@57170
   732
(<= ?x10280 ?x10280)) :pattern ( (b_S_timestamp$ v_b_S_s$ ?v0) )))
blanchet@57170
   733
))
blanchet@57170
   734
(let (($x10286 (and (<= ?x10111 ?x10111) (and $x10283 $x10284))))
blanchet@57170
   735
(let (($x10278 (forall ((?v0 B_S_ptr$) )(!(let (($x10260 (b_S_thread_n_local$ v_b_S_s$ ?v0)))
blanchet@57170
   736
(let ((?x10272 (b_S_typemap$ v_b_S_s$)))
blanchet@57170
   737
(let ((?x10273 (b_S_select_o_tm$ ?x10272 ?v0)))
blanchet@57170
   738
(let (($x10275 (and (= ?x10273 ?x10273) $x10260)))
blanchet@57170
   739
(=> $x10260 $x10275))))) :pattern ( (b_S_select_o_tm$ (b_S_typemap$ v_b_S_s$) ?v0) )))
blanchet@57170
   740
))
blanchet@57170
   741
(let (($x10287 (and $x10278 $x10286)))
blanchet@57170
   742
(let (($x10271 (forall ((?v0 B_S_ptr$) )(!(let (($x10260 (b_S_thread_n_local$ v_b_S_s$ ?v0)))
blanchet@57170
   743
(let ((?x10256 (b_S_statusmap$ v_b_S_s$)))
blanchet@57170
   744
(let ((?x10257 (b_S_select_o_sm$ ?x10256 ?v0)))
blanchet@57170
   745
(let (($x10269 (and (= ?x10257 ?x10257) $x10260)))
blanchet@57170
   746
(=> $x10260 $x10269))))) :pattern ( (b_S_select_o_sm$ (b_S_statusmap$ v_b_S_s$) ?v0) )))
blanchet@57170
   747
))
blanchet@57170
   748
(let (($x10288 (and $x10271 $x10287)))
blanchet@57170
   749
(let (($x10267 (forall ((?v0 B_S_ptr$) )(!(let (($x10260 (b_S_thread_n_local$ v_b_S_s$ ?v0)))
blanchet@57170
   750
(let ((?x10261 (b_S_memory$ v_b_S_s$)))
blanchet@57170
   751
(let ((?x10262 (b_S_select_o_mem$ ?x10261 ?v0)))
blanchet@57170
   752
(let (($x10264 (and (= ?x10262 ?x10262) $x10260)))
blanchet@57170
   753
(=> $x10260 $x10264))))) :pattern ( (b_S_select_o_mem$ (b_S_memory$ v_b_S_s$) ?v0) )))
blanchet@57170
   754
))
blanchet@57170
   755
(let (($x10289 (and $x10267 $x10288)))
blanchet@57170
   756
(let (($x10259 (forall ((?v0 B_S_ptr$) )(!(let (($x10253 (= (b_S_kind_n_of$ (b_S_typ$ (b_S_owner$ v_b_S_s$ ?v0))) b_S_kind_n_thread$)))
blanchet@57170
   757
(=> (not $x10253) (not $x10253))) :pattern ( (b_S_select_o_sm$ (b_S_statusmap$ v_b_S_s$) ?v0) )))
blanchet@57170
   758
))
blanchet@57170
   759
(let (($x10290 (and $x10259 $x10289)))
blanchet@57170
   760
(let (($x10311 (and true (and $x10182 (and $x10290 (and $x10286 $x10307))))))
blanchet@57170
   761
(let (($x10313 (and true (and $x10182 $x10311))))
blanchet@57170
   762
(let (($x10315 (and true (and $x10182 $x10313))))
blanchet@57170
   763
(let (($x10419 (=> $x10315 (and $x10409 $x10417))))
blanchet@57170
   764
(let (($x10203 (not true)))
blanchet@57170
   765
(let (($x10212 (and $x10203 (and $x10182 (and true (and $x10182 (and $x10205 $x10207)))))))
blanchet@57170
   766
(let (($x10213 (and $x10182 $x10212)))
blanchet@57170
   767
(let (($x10214 (and true $x10213)))
blanchet@57170
   768
(let (($x10249 (=> $x10214 $x10248)))
blanchet@57170
   769
(let (($x10420 (and $x10249 $x10419)))
blanchet@57170
   770
(let (($x10194 (and (and (< v_b_SL_H_witness_G_0$ v_b_P_H_len$) $x10192) $x10182)))
blanchet@57170
   771
(let (($x10188 (forall ((?v0 Int) )(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   772
(let (($x10186 (<= ?x10163 v_b_L_H_max_G_1$)))
blanchet@57170
   773
(let (($x3097 (<= ?v0 b_S_max_o_u4$)))
blanchet@57170
   774
(let (($x2766 (<= 0 ?v0)))
blanchet@57170
   775
(let (($x3098 (and $x2766 $x3097)))
blanchet@57170
   776
(let (($x10185 (and $x3098 (< ?v0 v_b_L_H_p_G_0$))))
blanchet@57170
   777
(=> $x10185 $x10186))))))))
blanchet@57170
   778
))
blanchet@57170
   779
(let (($x10183 (<= v_b_L_H_p_G_0$ v_b_P_H_len$)))
blanchet@57170
   780
(let (($x10180 (and (<= 0 v_b_L_H_p_G_0$) (<= v_b_L_H_p_G_0$ b_S_max_o_u4$))))
blanchet@57170
   781
(let (($x10176 (and $x10174 (<= v_b_SL_H_witness_G_0$ b_S_max_o_u4$))))
blanchet@57170
   782
(let (($x10172 (and (<= 0 v_b_L_H_max_G_1$) (<= v_b_L_H_max_G_1$ b_S_max_o_u1$))))
blanchet@57170
   783
(let (($x10200 (and $x10172 (and $x10176 (and $x10180 (and $x10182 (and $x10183 (and $x10188 $x10194))))))))
blanchet@57170
   784
(let (($x10201 (and true $x10200)))
blanchet@57170
   785
(let (($x10074 (< 0 v_b_P_H_len$)))
blanchet@57170
   786
(let (($x10168 (and $x10074 $x10167)))
blanchet@57170
   787
(let (($x10421 (=> (and $x10168 $x10201) $x10420)))
blanchet@57170
   788
(let (($x10166 (forall ((?v0 Int) )(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   789
(let (($x10164 (<= ?x10163 v_b_L_H_max_G_0$)))
blanchet@57170
   790
(let (($x3097 (<= ?v0 b_S_max_o_u4$)))
blanchet@57170
   791
(let (($x2766 (<= 0 ?v0)))
blanchet@57170
   792
(let (($x3098 (and $x2766 $x3097)))
blanchet@57170
   793
(let (($x10161 (and $x3098 (< ?v0 1))))
blanchet@57170
   794
(=> $x10161 $x10164))))))))
blanchet@57170
   795
))
blanchet@57170
   796
(let (($x10423 (=> $x10166 (and $x10168 $x10421))))
blanchet@57170
   797
(let (($x10159 (<= 1 v_b_P_H_len$)))
blanchet@57170
   798
(let (($x10425 (=> $x10159 (and $x10166 $x10423))))
blanchet@57170
   799
(let (($x10149 (<= 1 1)))
blanchet@57170
   800
(let (($x10154 (and $x10148 (and $x10149 (and $x10149 (and (<= 0 0) (<= 0 0)))))))
blanchet@57170
   801
(let (($x10142 (and $x10138 $x10141)))
blanchet@57170
   802
(let (($x10427 (=> (and $x10142 (and $x10145 (and $x10146 (and $x10147 $x10154)))) (and $x10159 $x10425))))
blanchet@57170
   803
(let (($x10429 (=> $x10140 (and $x10142 $x10427))))
blanchet@57170
   804
(let (($x10431 (=> $x10136 (and $x10140 $x10429))))
blanchet@57170
   805
(let (($x10119 (and (<= 0 v_b_P_H_len$) (<= v_b_P_H_len$ b_S_max_o_u4$))))
blanchet@57170
   806
(let (($x10116 (forall ((?v0 B_S_ptr$) )(!(let (($x10113 (b_S_in_n_writes_n_at$ v_b_H_wrTime_S_1_T_6_o_1$ ?v0)))
blanchet@57170
   807
(= $x10113 false)) :pattern ( (b_S_in_n_writes_n_at$ v_b_H_wrTime_S_1_T_6_o_1$ ?v0) )))
blanchet@57170
   808
))
blanchet@57170
   809
(let (($x10108 (and $x10106 $x10107)))
blanchet@57170
   810
(let (($x10104 (forall ((?v0 B_S_pure_n_function$) )(!(let ((?x10100 (b_S_frame_n_level$ ?v0)))
blanchet@57170
   811
(< ?x10100 b_S_current_n_frame_n_level$)) :pattern ( (b_S_frame_n_level$ ?v0) )))
blanchet@57170
   812
))
blanchet@57170
   813
(let (($x10098 (and $x10096 $x10097)))
blanchet@57170
   814
(let (($x10125 (and $x10098 (and $x10104 (and $x10108 (and $x10109 (and $x10112 (and $x10116 $x10119))))))))
blanchet@57170
   815
(let (($x10127 (and true (and $x10095 $x10125))))
blanchet@57170
   816
(let (($x10094 (and $x10081 (and $x10083 (and $x10084 (and $x10085 (and $x10088 $x10089)))))))
blanchet@57170
   817
(let (($x10073 (< v_b_P_H_len$ 1099511627776)))
blanchet@57170
   818
(let (($x10071 (and (<= 0 v_b_SL_H_witness$) (<= v_b_SL_H_witness$ b_S_max_o_u4$))))
blanchet@57170
   819
(let (($x10067 (and (<= 0 v_b_L_H_p$) (<= v_b_L_H_p$ b_S_max_o_u4$))))
blanchet@57170
   820
(let (($x10063 (and (<= 0 v_b_L_H_max$) (<= v_b_L_H_max$ b_S_max_o_u1$))))
blanchet@57170
   821
(let (($x10133 (and $x10063 (and $x10067 (and $x10071 (and $x10073 (and $x10074 (and $x10094 $x10127))))))))
blanchet@57170
   822
(let (($x10134 (and true $x10133)))
blanchet@57170
   823
(let (($x10433 (=> $x10134 (and $x10136 $x10431))))
blanchet@57170
   824
(let (($x10434 (not $x10433)))
blanchet@57170
   825
(let (($x10649 (forall ((?v0 Int) )(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   826
(let (($x10235 (<= ?x10163 v_b_S_result_G_0$)))
blanchet@57170
   827
(let (($x10233 (< ?v0 v_b_P_H_len$)))
blanchet@57170
   828
(let (($x3097 (<= ?v0 b_S_max_o_u4$)))
blanchet@57170
   829
(let (($x2766 (<= 0 ?v0)))
blanchet@57170
   830
(let (($x3098 (and $x2766 $x3097)))
blanchet@57170
   831
(let (($x10234 (and $x3098 $x10233)))
blanchet@57170
   832
(or (not $x10234) $x10235)))))))))
blanchet@57170
   833
))
blanchet@57170
   834
(let (($x10665 (or (not $x10649) $x10242)))
blanchet@57170
   835
(let (($x10670 (and $x10649 $x10665)))
blanchet@57170
   836
(let (($x10616 (and $x10216 (and $x10218 (and $x10220 $x10222)))))
blanchet@57170
   837
(let (($x10626 (and $x10182 $x10616)))
blanchet@57170
   838
(let (($x10629 (and $x10182 $x10626)))
blanchet@57170
   839
(let (($x10639 (and $x10182 $x10629)))
blanchet@57170
   840
(let (($x10642 (and b_S_position_n_marker$ $x10639)))
blanchet@57170
   841
(let (($x10677 (or (not $x10642) $x10670)))
blanchet@57170
   842
(let (($x10682 (and b_S_position_n_marker$ $x10677)))
blanchet@57170
   843
(let (($x11134 (or (not (and $x10182 (and $x10410 $x10182))) $x10682)))
blanchet@57170
   844
(let (($x10931 (forall ((?v0 Int) )(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   845
(let (($x10368 (<= ?x10163 v_b_L_H_max_G_3$)))
blanchet@57170
   846
(let (($x3097 (<= ?v0 b_S_max_o_u4$)))
blanchet@57170
   847
(let (($x2766 (<= 0 ?v0)))
blanchet@57170
   848
(let (($x3098 (and $x2766 $x3097)))
blanchet@57170
   849
(let (($x10367 (and $x3098 (< ?v0 v_b_L_H_p_G_1$))))
blanchet@57170
   850
(or (not $x10367) $x10368))))))))
blanchet@57170
   851
))
blanchet@57170
   852
(let (($x10954 (or (not $x10931) $x10375)))
blanchet@57170
   853
(let (($x10959 (and $x10931 $x10954)))
blanchet@57170
   854
(let (($x10966 (or (not $x10365) $x10959)))
blanchet@57170
   855
(let (($x10971 (and $x10365 $x10966)))
blanchet@57170
   856
(let (($x10918 (and $x10358 $x10360)))
blanchet@57170
   857
(let ((?x10901 (+ 1 v_b_L_H_p_G_0$)))
blanchet@57170
   858
(let (($x10913 (= v_b_L_H_p_G_1$ ?x10901)))
blanchet@57170
   859
(let (($x10921 (and $x10913 $x10918)))
blanchet@57170
   860
(let (($x10907 (<= ?x10901 b_S_max_o_u4$)))
blanchet@57170
   861
(let (($x10904 (<= 0 ?x10901)))
blanchet@57170
   862
(let (($x10910 (and $x10904 $x10907)))
blanchet@57170
   863
(let (($x10924 (and $x10910 $x10921)))
blanchet@57170
   864
(let (($x10978 (or (not $x10924) $x10971)))
blanchet@57170
   865
(let (($x10983 (and $x10910 $x10978)))
blanchet@57170
   866
(let (($x10342 (and $x10181 $x10341)))
blanchet@57170
   867
(let (($x11019 (and $x10392 $x10342)))
blanchet@57170
   868
(let (($x11022 (and $x10391 $x11019)))
blanchet@57170
   869
(let (($x11032 (and $x10182 $x11022)))
blanchet@57170
   870
(let (($x11035 (and $x10182 $x11032)))
blanchet@57170
   871
(let (($x11045 (and $x10182 $x11035)))
blanchet@57170
   872
(let (($x11048 (and $x10390 $x11045)))
blanchet@57170
   873
(let (($x11051 (and $x10182 $x11048)))
blanchet@57170
   874
(let (($x11065 (or (not $x11051) $x10983)))
blanchet@57170
   875
(let (($x10873 (and $x10340 $x10342)))
blanchet@57170
   876
(let (($x10876 (and $x10338 $x10873)))
blanchet@57170
   877
(let (($x10886 (and $x10181 $x10876)))
blanchet@57170
   878
(let (($x10889 (and $x10335 $x10886)))
blanchet@57170
   879
(let (($x10892 (and $x10334 $x10889)))
blanchet@57170
   880
(let (($x10895 (and $x10333 $x10892)))
blanchet@57170
   881
(let (($x10898 (and $x10325 $x10895)))
blanchet@57170
   882
(let (($x10990 (or (not $x10898) $x10983)))
blanchet@57170
   883
(let (($x10995 (and $x10325 $x10990)))
blanchet@57170
   884
(let (($x11002 (or $x11001 $x10995)))
blanchet@57170
   885
(let (($x11007 (and $x10323 $x11002)))
blanchet@57170
   886
(let (($x11014 (or (not (and $x10182 (and (< v_b_L_H_max_G_1$ ?x10327) $x10182))) $x11007)))
blanchet@57170
   887
(let (($x11070 (and $x11014 $x11065)))
blanchet@57170
   888
(let (($x11077 (or (not $x10326) $x11070)))
blanchet@57170
   889
(let (($x11082 (and $x10325 $x11077)))
blanchet@57170
   890
(let (($x11088 (or $x11001 $x11082)))
blanchet@57170
   891
(let (($x11093 (and $x10323 $x11088)))
blanchet@57170
   892
(let (($x11100 (or (not (and $x10182 (and (< v_b_L_H_p_G_0$ v_b_P_H_len$) $x10182))) $x11093)))
blanchet@57170
   893
(let (($x11139 (and $x11100 $x11134)))
blanchet@57170
   894
(let (($x10789 (and $x10297 $x10182)))
blanchet@57170
   895
(let (($x10792 (and $x10294 $x10789)))
blanchet@57170
   896
(let (($x10795 (and $x10293 $x10792)))
blanchet@57170
   897
(let (($x10798 (and $x10292 $x10795)))
blanchet@57170
   898
(let (($x10801 (and $x10291 $x10798)))
blanchet@57170
   899
(let (($x10804 (and $x10205 $x10801)))
blanchet@57170
   900
(let (($x10807 (and $x10286 $x10804)))
blanchet@57170
   901
(let (($x10810 (and $x10286 $x10807)))
blanchet@57170
   902
(let (($x10813 (and $x10182 $x10810)))
blanchet@57170
   903
(let (($x10823 (and $x10182 $x10813)))
blanchet@57170
   904
(let (($x10833 (and $x10182 $x10823)))
blanchet@57170
   905
(let (($x11146 (or (not $x10833) $x11139)))
blanchet@57170
   906
(let (($x10529 (forall ((?v0 Int) )(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   907
(let (($x10186 (<= ?x10163 v_b_L_H_max_G_1$)))
blanchet@57170
   908
(let (($x3097 (<= ?v0 b_S_max_o_u4$)))
blanchet@57170
   909
(let (($x2766 (<= 0 ?v0)))
blanchet@57170
   910
(let (($x3098 (and $x2766 $x3097)))
blanchet@57170
   911
(let (($x10185 (and $x3098 (< ?v0 v_b_L_H_p_G_0$))))
blanchet@57170
   912
(or (not $x10185) $x10186))))))))
blanchet@57170
   913
))
blanchet@57170
   914
(let (($x10532 (and $x10529 $x10194)))
blanchet@57170
   915
(let (($x10535 (and $x10183 $x10532)))
blanchet@57170
   916
(let (($x10538 (and $x10182 $x10535)))
blanchet@57170
   917
(let (($x10541 (and $x10180 $x10538)))
blanchet@57170
   918
(let (($x10544 (and $x10176 $x10541)))
blanchet@57170
   919
(let (($x10547 (and $x10172 $x10544)))
blanchet@57170
   920
(let (($x10557 (and $x10168 $x10547)))
blanchet@57170
   921
(let (($x11162 (or (not $x10557) $x11146)))
blanchet@57170
   922
(let (($x11167 (and $x10168 $x11162)))
blanchet@57170
   923
(let (($x10522 (forall ((?v0 Int) )(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
   924
(let (($x10164 (<= ?x10163 v_b_L_H_max_G_0$)))
blanchet@57170
   925
(let (($x3097 (<= ?v0 b_S_max_o_u4$)))
blanchet@57170
   926
(let (($x2766 (<= 0 ?v0)))
blanchet@57170
   927
(let (($x3098 (and $x2766 $x3097)))
blanchet@57170
   928
(let (($x10161 (and $x3098 (< ?v0 1))))
blanchet@57170
   929
(or (not $x10161) $x10164))))))))
blanchet@57170
   930
))
blanchet@57170
   931
(let (($x11174 (or (not $x10522) $x11167)))
blanchet@57170
   932
(let (($x11179 (and $x10522 $x11174)))
blanchet@57170
   933
(let (($x11186 (or (not $x10159) $x11179)))
blanchet@57170
   934
(let (($x11191 (and $x10159 $x11186)))
blanchet@57170
   935
(let (($x10150 (<= 0 0)))
blanchet@57170
   936
(let (($x10497 (and $x10149 $x10150)))
blanchet@57170
   937
(let (($x10500 (and $x10149 $x10497)))
blanchet@57170
   938
(let (($x10503 (and $x10148 $x10500)))
blanchet@57170
   939
(let (($x10506 (and $x10147 $x10503)))
blanchet@57170
   940
(let (($x10509 (and $x10146 $x10506)))
blanchet@57170
   941
(let (($x10512 (and $x10145 $x10509)))
blanchet@57170
   942
(let (($x10515 (and $x10142 $x10512)))
blanchet@57170
   943
(let (($x11198 (or (not $x10515) $x11191)))
blanchet@57170
   944
(let (($x11203 (and $x10142 $x11198)))
blanchet@57170
   945
(let (($x11210 (or $x11209 $x11203)))
blanchet@57170
   946
(let (($x11215 (and $x10140 $x11210)))
blanchet@57170
   947
(let (($x11222 (or $x11221 $x11215)))
blanchet@57170
   948
(let (($x11227 (and $x10136 $x11222)))
blanchet@57170
   949
(let (($x10442 (and $x10439 $x10119)))
blanchet@57170
   950
(let (($x10445 (and $x10112 $x10442)))
blanchet@57170
   951
(let (($x10448 (and $x10109 $x10445)))
blanchet@57170
   952
(let (($x10451 (and $x10108 $x10448)))
blanchet@57170
   953
(let (($x10454 (and $x10104 $x10451)))
blanchet@57170
   954
(let (($x10457 (and $x10098 $x10454)))
blanchet@57170
   955
(let (($x10460 (and $x10095 $x10457)))
blanchet@57170
   956
(let (($x10470 (and $x10094 $x10460)))
blanchet@57170
   957
(let (($x10473 (and $x10074 $x10470)))
blanchet@57170
   958
(let (($x10476 (and $x10073 $x10473)))
blanchet@57170
   959
(let (($x10479 (and $x10071 $x10476)))
blanchet@57170
   960
(let (($x10482 (and $x10067 $x10479)))
blanchet@57170
   961
(let (($x10485 (and $x10063 $x10482)))
blanchet@57170
   962
(let (($x11234 (or (not $x10485) $x11227)))
blanchet@57170
   963
(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ ?x10078 ?0 b_T_T_u1$))))
blanchet@57170
   964
(let (($x10238 (= ?x10163 v_b_S_result_G_0$)))
blanchet@57170
   965
(let (($x11800 (>= (+ ?0 (* (- 1) v_b_P_H_len$)) 0)))
blanchet@57170
   966
(let (($x11802 (not $x11800)))
blanchet@57170
   967
(let ((?x3113 (* (- 1) b_S_max_o_u4$)))
blanchet@57170
   968
(let ((?x3114 (+ ?0 ?x3113)))
blanchet@57170
   969
(let (($x3115 (<= ?x3114 0)))
blanchet@57170
   970
(let (($x2815 (>= ?0 0)))
blanchet@57170
   971
(let (($x11839 (and $x2815 $x3115 $x11802 $x10238)))
blanchet@57170
   972
(let (($x2766 (<= 0 ?0)))
blanchet@57170
   973
(let (($x10241 (and $x2766 (and (<= ?0 b_S_max_o_u4$) (and (< ?0 v_b_P_H_len$) $x10238)))))
blanchet@57170
   974
(let (($x11834 (= (and (<= ?0 b_S_max_o_u4$) (and (< ?0 v_b_P_H_len$) $x10238)) (and $x3115 (and $x11802 $x10238)))))
blanchet@57170
   975
(let ((@x11832 (monotonicity (rewrite (= (< ?0 v_b_P_H_len$) $x11802)) (= (and (< ?0 v_b_P_H_len$) $x10238) (and $x11802 $x10238)))))
blanchet@57170
   976
(let ((@x2814 (rewrite (= $x2766 $x2815))))
blanchet@57170
   977
(let ((@x11838 (monotonicity @x2814 (monotonicity (rewrite (= (<= ?0 b_S_max_o_u4$) $x3115)) @x11832 $x11834) (= $x10241 (and $x2815 (and $x3115 (and $x11802 $x10238)))))))
blanchet@57170
   978
(let ((@x11843 (trans @x11838 (rewrite (= (and $x2815 (and $x3115 (and $x11802 $x10238))) $x11839)) (= $x10241 $x11839))))
blanchet@57170
   979
(let (($x11818 (<= (+ ?x10163 (* (- 1) v_b_S_result_G_0$)) 0)))
blanchet@57170
   980
(let (($x11808 (and $x2815 $x3115 $x11802)))
blanchet@57170
   981
(let (($x11813 (not $x11808)))
blanchet@57170
   982
(let (($x11821 (or $x11813 $x11818)))
blanchet@57170
   983
(let (($x10235 (<= ?x10163 v_b_S_result_G_0$)))
blanchet@57170
   984
(let (($x10233 (< ?0 v_b_P_H_len$)))
blanchet@57170
   985
(let (($x3097 (<= ?0 b_S_max_o_u4$)))
blanchet@57170
   986
(let (($x3098 (and $x2766 $x3097)))
blanchet@57170
   987
(let (($x10234 (and $x3098 $x10233)))
blanchet@57170
   988
(let (($x10646 (or (not $x10234) $x10235)))
blanchet@57170
   989
(let ((@x3124 (monotonicity @x2814 (rewrite (= $x3097 $x3115)) (= $x3098 (and $x2815 $x3115)))))
blanchet@57170
   990
(let ((@x11807 (monotonicity @x3124 (rewrite (= $x10233 $x11802)) (= $x10234 (and (and $x2815 $x3115) $x11802)))))
blanchet@57170
   991
(let ((@x11812 (trans @x11807 (rewrite (= (and (and $x2815 $x3115) $x11802) $x11808)) (= $x10234 $x11808))))
blanchet@57170
   992
(let ((@x11823 (monotonicity (monotonicity @x11812 (= (not $x10234) $x11813)) (rewrite (= $x10235 $x11818)) (= $x10646 $x11821))))
blanchet@57170
   993
(let ((@x11829 (monotonicity (quant-intro @x11823 (= $x10649 $x11824)) (= (not $x10649) $x11827))))
blanchet@57170
   994
(let ((@x11852 (monotonicity (quant-intro @x11823 (= $x10649 $x11824)) (monotonicity @x11829 (quant-intro @x11843 (= $x10242 $x11844)) (= $x10665 $x11847)) (= $x10670 $x11850))))
blanchet@57170
   995
(let (($x11434 (and $x11429 $x11432)))
blanchet@57170
   996
(let (($x11793 (= (and b_S_position_n_marker$ (and $x11434 (and $x11434 (and $x11434 $x10616)))) $x11792)))
blanchet@57170
   997
(let (($x11790 (= $x10642 (and b_S_position_n_marker$ (and $x11434 (and $x11434 (and $x11434 $x10616)))))))
blanchet@57170
   998
(let ((@x11430 (rewrite (= $x10181 $x11429))))
blanchet@57170
   999
(let ((@x11436 (monotonicity @x11430 (rewrite (= $x10174 $x11432)) (= $x10182 $x11434))))
blanchet@57170
  1000
(let ((@x11785 (monotonicity @x11436 (monotonicity @x11436 (= $x10626 (and $x11434 $x10616))) (= $x10629 (and $x11434 (and $x11434 $x10616))))))
blanchet@57170
  1001
(let ((@x11788 (monotonicity @x11436 @x11785 (= $x10639 (and $x11434 (and $x11434 (and $x11434 $x10616)))))))
blanchet@57170
  1002
(let ((@x11799 (monotonicity (trans (monotonicity @x11788 $x11790) (rewrite $x11793) (= $x10642 $x11792)) (= (not $x10642) $x11797))))
blanchet@57170
  1003
(let ((@x11858 (monotonicity (monotonicity @x11799 @x11852 (= $x10677 $x11853)) (= $x10682 $x11856))))
blanchet@57170
  1004
(let ((@x11768 (monotonicity (rewrite (= $x10410 $x11486)) @x11436 (= (and $x10410 $x10182) (and $x11486 $x11434)))))
blanchet@57170
  1005
(let ((@x11771 (monotonicity @x11436 @x11768 (= (and $x10182 (and $x10410 $x10182)) (and $x11434 (and $x11486 $x11434))))))
blanchet@57170
  1006
(let ((@x11776 (trans @x11771 (rewrite (= (and $x11434 (and $x11486 $x11434)) $x11772)) (= (and $x10182 (and $x10410 $x10182)) $x11772))))
blanchet@57170
  1007
(let ((@x11861 (monotonicity (monotonicity @x11776 (= (not (and $x10182 (and $x10410 $x10182))) $x11777)) @x11858 (= $x11134 $x11859))))
blanchet@57170
  1008
(let ((@x11653 (monotonicity (rewrite (= (< v_b_SL_H_witness_G_1$ v_b_P_H_len$) $x11648)) (= $x10375 $x11651))))
blanchet@57170
  1009
(let (($x11633 (<= (+ ?x10163 (* (- 1) v_b_L_H_max_G_3$)) 0)))
blanchet@57170
  1010
(let (($x11615 (>= (+ ?0 ?x11581) 0)))
blanchet@57170
  1011
(let (($x11617 (not $x11615)))
blanchet@57170
  1012
(let (($x11623 (and $x2815 $x3115 $x11617)))
blanchet@57170
  1013
(let (($x11628 (not $x11623)))
blanchet@57170
  1014
(let (($x11636 (or $x11628 $x11633)))
blanchet@57170
  1015
(let (($x10368 (<= ?x10163 v_b_L_H_max_G_3$)))
blanchet@57170
  1016
(let (($x10928 (or (not (and $x3098 (< ?0 v_b_L_H_p_G_1$))) $x10368)))
blanchet@57170
  1017
(let ((@x11622 (monotonicity @x3124 (rewrite (= (< ?0 v_b_L_H_p_G_1$) $x11617)) (= (and $x3098 (< ?0 v_b_L_H_p_G_1$)) (and (and $x2815 $x3115) $x11617)))))
blanchet@57170
  1018
(let ((@x11627 (trans @x11622 (rewrite (= (and (and $x2815 $x3115) $x11617) $x11623)) (= (and $x3098 (< ?0 v_b_L_H_p_G_1$)) $x11623))))
blanchet@57170
  1019
(let ((@x11630 (monotonicity @x11627 (= (not (and $x3098 (< ?0 v_b_L_H_p_G_1$))) $x11628))))
blanchet@57170
  1020
(let ((@x11641 (quant-intro (monotonicity @x11630 (rewrite (= $x10368 $x11633)) (= $x10928 $x11636)) (= $x10931 $x11639))))
blanchet@57170
  1021
(let ((@x11656 (monotonicity (monotonicity @x11641 (= (not $x10931) $x11642)) @x11653 (= $x10954 $x11654))))
blanchet@57170
  1022
(let ((@x11662 (monotonicity (monotonicity (rewrite (= $x10365 $x11608)) (= (not $x10365) $x11612)) (monotonicity @x11641 @x11656 (= $x10959 $x11657)) (= $x10966 $x11660))))
blanchet@57170
  1023
(let (($x11601 (= (and (and $x11570 $x11573) (and $x11580 (and $x10358 (and $x11578 $x11536)))) $x11600)))
blanchet@57170
  1024
(let (($x11598 (= $x10924 (and (and $x11570 $x11573) (and $x11580 (and $x10358 (and $x11578 $x11536)))))))
blanchet@57170
  1025
(let ((@x11587 (monotonicity (rewrite (= (<= 2 v_b_L_H_p_G_1$) $x11578)) (rewrite (= $x10341 $x11536)) (= $x10360 (and $x11578 $x11536)))))
blanchet@57170
  1026
(let ((@x11593 (monotonicity (rewrite (= $x10913 $x11580)) (monotonicity @x11587 (= $x10918 (and $x10358 (and $x11578 $x11536)))) (= $x10921 (and $x11580 (and $x10358 (and $x11578 $x11536)))))))
blanchet@57170
  1027
(let ((@x11596 (monotonicity (rewrite (= $x10904 $x11570)) (rewrite (= $x10907 $x11573)) (= $x10910 (and $x11570 $x11573)))))
blanchet@57170
  1028
(let ((@x11607 (monotonicity (trans (monotonicity @x11596 @x11593 $x11598) (rewrite $x11601) (= $x10924 $x11600)) (= (not $x10924) $x11605))))
blanchet@57170
  1029
(let ((@x11668 (monotonicity @x11607 (monotonicity (rewrite (= $x10365 $x11608)) @x11662 (= $x10971 $x11663)) (= $x10978 $x11666))))
blanchet@57170
  1030
(let ((@x11676 (trans (monotonicity @x11596 @x11668 (= $x10983 (and (and $x11570 $x11573) $x11666))) (rewrite (= (and (and $x11570 $x11573) $x11666) $x11672)) (= $x10983 $x11672))))
blanchet@57170
  1031
(let (($x11716 (and $x11434 (and $x11434 (and $x11434 (and $x10391 (and $x10392 (and $x11429 $x11536))))))))
blanchet@57170
  1032
(let (($x11714 (= $x11035 (and $x11434 (and $x11434 (and $x10391 (and $x10392 (and $x11429 $x11536))))))))
blanchet@57170
  1033
(let ((@x11540 (monotonicity @x11430 (rewrite (= $x10341 $x11536)) (= $x10342 (and $x11429 $x11536)))))
blanchet@57170
  1034
(let ((@x11709 (monotonicity (monotonicity @x11540 (= $x11019 (and $x10392 (and $x11429 $x11536)))) (= $x11022 (and $x10391 (and $x10392 (and $x11429 $x11536)))))))
blanchet@57170
  1035
(let ((@x11712 (monotonicity @x11436 @x11709 (= $x11032 (and $x11434 (and $x10391 (and $x10392 (and $x11429 $x11536))))))))
blanchet@57170
  1036
(let ((@x11721 (monotonicity (rewrite (= $x10390 $x11516)) (monotonicity @x11436 (monotonicity @x11436 @x11712 $x11714) (= $x11045 $x11716)) (= $x11048 (and $x11516 $x11716)))))
blanchet@57170
  1037
(let ((@x11729 (trans (monotonicity @x11436 @x11721 (= $x11051 (and $x11434 (and $x11516 $x11716)))) (rewrite (= (and $x11434 (and $x11516 $x11716)) $x11725)) (= $x11051 $x11725))))
blanchet@57170
  1038
(let ((@x11735 (monotonicity (monotonicity @x11729 (= (not $x11051) $x11730)) @x11676 (= $x11065 $x11733))))
blanchet@57170
  1039
(let (($x11553 (and $x10334 (and $x10335 (and $x11429 (and $x10338 (and $x10340 (and $x11429 $x11536))))))))
blanchet@57170
  1040
(let (($x11551 (= $x10889 (and $x10335 (and $x11429 (and $x10338 (and $x10340 (and $x11429 $x11536))))))))
blanchet@57170
  1041
(let ((@x11546 (monotonicity (monotonicity @x11540 (= $x10873 (and $x10340 (and $x11429 $x11536)))) (= $x10876 (and $x10338 (and $x10340 (and $x11429 $x11536)))))))
blanchet@57170
  1042
(let ((@x11549 (monotonicity @x11430 @x11546 (= $x10886 (and $x11429 (and $x10338 (and $x10340 (and $x11429 $x11536))))))))
blanchet@57170
  1043
(let ((@x11558 (monotonicity (monotonicity (monotonicity @x11549 $x11551) (= $x10892 $x11553)) (= $x10895 (and $x10333 $x11553)))))
blanchet@57170
  1044
(let ((@x11566 (trans (monotonicity @x11558 (= $x10898 (and $x10325 (and $x10333 $x11553)))) (rewrite (= (and $x10325 (and $x10333 $x11553)) $x11562)) (= $x10898 $x11562))))
blanchet@57170
  1045
(let ((@x11679 (monotonicity (monotonicity @x11566 (= (not $x10898) $x11567)) @x11676 (= $x10990 $x11677))))
blanchet@57170
  1046
(let ((@x11687 (trans (monotonicity @x11679 (= $x10995 (and $x10325 $x11677))) (rewrite (= (and $x10325 $x11677) $x11683)) (= $x10995 $x11683))))
blanchet@57170
  1047
(let ((@x11693 (monotonicity (monotonicity @x11687 (= $x11002 $x11688)) (= $x11007 (and $x10323 $x11688)))))
blanchet@57170
  1048
(let (($x10328 (< v_b_L_H_max_G_1$ ?x10327)))
blanchet@57170
  1049
(let (($x10856 (and $x10328 $x10182)))
blanchet@57170
  1050
(let (($x10859 (and $x10182 $x10856)))
blanchet@57170
  1051
(let ((@x11523 (monotonicity (rewrite (= $x10328 $x11515)) @x11436 (= $x10856 (and $x11515 $x11434)))))
blanchet@57170
  1052
(let ((@x11531 (trans (monotonicity @x11436 @x11523 (= $x10859 (and $x11434 (and $x11515 $x11434)))) (rewrite (= (and $x11434 (and $x11515 $x11434)) $x11527)) (= $x10859 $x11527))))
blanchet@57170
  1053
(let ((@x11701 (monotonicity (monotonicity @x11531 (= (not $x10859) $x11532)) (trans @x11693 (rewrite (= (and $x10323 $x11688) $x11694)) (= $x11007 $x11694)) (= $x11014 $x11699))))
blanchet@57170
  1054
(let ((@x11511 (trans (monotonicity @x11436 (= $x10326 (and $x10325 $x11434))) (rewrite (= (and $x10325 $x11434) $x11507)) (= $x10326 $x11507))))
blanchet@57170
  1055
(let ((@x11741 (monotonicity (monotonicity @x11511 (= (not $x10326) $x11512)) (monotonicity @x11701 @x11735 (= $x11070 $x11736)) (= $x11077 $x11739))))
blanchet@57170
  1056
(let ((@x11749 (trans (monotonicity @x11741 (= $x11082 (and $x10325 $x11739))) (rewrite (= (and $x10325 $x11739) $x11745)) (= $x11082 $x11745))))
blanchet@57170
  1057
(let ((@x11755 (monotonicity (monotonicity @x11749 (= $x11088 $x11750)) (= $x11093 (and $x10323 $x11750)))))
blanchet@57170
  1058
(let (($x11502 (= (not (and $x10182 (and (< v_b_L_H_p_G_0$ v_b_P_H_len$) $x10182))) $x11501)))
blanchet@57170
  1059
(let (($x10316 (< v_b_L_H_p_G_0$ v_b_P_H_len$)))
blanchet@57170
  1060
(let (($x10843 (and $x10316 $x10182)))
blanchet@57170
  1061
(let (($x10846 (and $x10182 $x10843)))
blanchet@57170
  1062
(let ((@x11492 (monotonicity (rewrite (= $x10316 $x11487)) @x11436 (= $x10843 (and $x11487 $x11434)))))
blanchet@57170
  1063
(let ((@x11500 (trans (monotonicity @x11436 @x11492 (= $x10846 (and $x11434 (and $x11487 $x11434)))) (rewrite (= (and $x11434 (and $x11487 $x11434)) $x11496)) (= $x10846 $x11496))))
blanchet@57170
  1064
(let ((@x11763 (monotonicity (monotonicity @x11500 $x11502) (trans @x11755 (rewrite (= (and $x10323 $x11750) $x11756)) (= $x11093 $x11756)) (= $x11100 $x11761))))
blanchet@57170
  1065
(let (($x11452 (and $x10205 (and $x10291 (and $x10292 (and $x10293 (and $x10294 (and $x10297 $x11434))))))))
blanchet@57170
  1066
(let (($x11458 (and true (and true $x10284))))
blanchet@57170
  1067
(let (($x11477 (= (and $x11434 (and $x11434 (and $x11434 (and $x11458 (and $x11458 $x11452))))) $x11476)))
blanchet@57170
  1068
(let (($x11474 (= $x10833 (and $x11434 (and $x11434 (and $x11434 (and $x11458 (and $x11458 $x11452))))))))
blanchet@57170
  1069
(let (($x11450 (= $x10801 (and $x10291 (and $x10292 (and $x10293 (and $x10294 (and $x10297 $x11434))))))))
blanchet@57170
  1070
(let ((@x11442 (monotonicity (monotonicity @x11436 (= $x10789 (and $x10297 $x11434))) (= $x10792 (and $x10294 (and $x10297 $x11434))))))
blanchet@57170
  1071
(let ((@x11448 (monotonicity (monotonicity @x11442 (= $x10795 (and $x10293 (and $x10294 (and $x10297 $x11434))))) (= $x10798 (and $x10292 (and $x10293 (and $x10294 (and $x10297 $x11434))))))))
blanchet@57170
  1072
(let (($x11419 (forall ((?v0 B_S_ptr$) )(!true :pattern ( (b_S_timestamp$ v_b_S_s$ ?v0) )))
blanchet@57170
  1073
))
blanchet@57170
  1074
(let (($x11417 (= (<= (b_S_timestamp$ v_b_S_s$ ?0) (b_S_timestamp$ v_b_S_s$ ?0)) true)))
blanchet@57170
  1075
(let ((@x11425 (trans (quant-intro (rewrite $x11417) (= $x10283 $x11419)) (elim-unused (= $x11419 true)) (= $x10283 true))))
blanchet@57170
  1076
(let ((@x11460 (monotonicity (rewrite (= (<= ?x10111 ?x10111) true)) (monotonicity @x11425 (= (and $x10283 $x10284) (and true $x10284))) (= $x10286 $x11458))))
blanchet@57170
  1077
(let ((@x11463 (monotonicity @x11460 (monotonicity (monotonicity @x11448 $x11450) (= $x10804 $x11452)) (= $x10807 (and $x11458 $x11452)))))
blanchet@57170
  1078
(let ((@x11469 (monotonicity @x11436 (monotonicity @x11460 @x11463 (= $x10810 (and $x11458 (and $x11458 $x11452)))) (= $x10813 (and $x11434 (and $x11458 (and $x11458 $x11452)))))))
blanchet@57170
  1079
(let ((@x11472 (monotonicity @x11436 @x11469 (= $x10823 (and $x11434 (and $x11434 (and $x11458 (and $x11458 $x11452))))))))
blanchet@57170
  1080
(let ((@x11483 (monotonicity (trans (monotonicity @x11436 @x11472 $x11474) (rewrite $x11477) (= $x10833 $x11476)) (= (not $x10833) $x11481))))
blanchet@57170
  1081
(let ((@x11967 (monotonicity @x11483 (monotonicity @x11763 @x11861 (= $x11139 $x11862)) (= $x11146 (or $x11481 $x11862)))))
blanchet@57170
  1082
(let (($x11936 (and (and $x11901 $x11904) (and $x11434 (and $x11898 (and $x11895 (and (and $x11868 $x10192) $x11434)))))))
blanchet@57170
  1083
(let (($x11951 (and $x11260 $x10167)))
blanchet@57170
  1084
(let (($x11958 (= (and $x11951 (and (and $x11911 $x11914) (and (and $x11432 $x11907) $x11936))) $x11957)))
blanchet@57170
  1085
(let (($x11955 (= $x10557 (and $x11951 (and (and $x11911 $x11914) (and (and $x11432 $x11907) $x11936))))))
blanchet@57170
  1086
(let (($x11931 (= $x10538 (and $x11434 (and $x11898 (and $x11895 (and (and $x11868 $x10192) $x11434)))))))
blanchet@57170
  1087
(let (($x11919 (= (and (< v_b_SL_H_witness_G_0$ v_b_P_H_len$) $x10192) (and $x11868 $x10192))))
blanchet@57170
  1088
(let ((@x11920 (monotonicity (rewrite (= (< v_b_SL_H_witness_G_0$ v_b_P_H_len$) $x11868)) $x11919)))
blanchet@57170
  1089
(let (($x11889 (<= (+ ?x10163 (* (- 1) v_b_L_H_max_G_1$)) 0)))
blanchet@57170
  1090
(let (($x11871 (>= (+ ?0 ?x11484) 0)))
blanchet@57170
  1091
(let (($x11873 (not $x11871)))
blanchet@57170
  1092
(let (($x11879 (and $x2815 $x3115 $x11873)))
blanchet@57170
  1093
(let (($x11884 (not $x11879)))
blanchet@57170
  1094
(let (($x11892 (or $x11884 $x11889)))
blanchet@57170
  1095
(let (($x10186 (<= ?x10163 v_b_L_H_max_G_1$)))
blanchet@57170
  1096
(let (($x10526 (or (not (and $x3098 (< ?0 v_b_L_H_p_G_0$))) $x10186)))
blanchet@57170
  1097
(let ((@x11878 (monotonicity @x3124 (rewrite (= (< ?0 v_b_L_H_p_G_0$) $x11873)) (= (and $x3098 (< ?0 v_b_L_H_p_G_0$)) (and (and $x2815 $x3115) $x11873)))))
blanchet@57170
  1098
(let ((@x11883 (trans @x11878 (rewrite (= (and (and $x2815 $x3115) $x11873) $x11879)) (= (and $x3098 (< ?0 v_b_L_H_p_G_0$)) $x11879))))
blanchet@57170
  1099
(let ((@x11886 (monotonicity @x11883 (= (not (and $x3098 (< ?0 v_b_L_H_p_G_0$))) $x11884))))
blanchet@57170
  1100
(let ((@x11897 (quant-intro (monotonicity @x11886 (rewrite (= $x10186 $x11889)) (= $x10526 $x11892)) (= $x10529 $x11895))))
blanchet@57170
  1101
(let ((@x11926 (monotonicity @x11897 (monotonicity @x11920 @x11436 (= $x10194 (and (and $x11868 $x10192) $x11434))) (= $x10532 (and $x11895 (and (and $x11868 $x10192) $x11434))))))
blanchet@57170
  1102
(let ((@x11929 (monotonicity (rewrite (= $x10183 $x11898)) @x11926 (= $x10535 (and $x11898 (and $x11895 (and (and $x11868 $x10192) $x11434)))))))
blanchet@57170
  1103
(let ((@x11935 (monotonicity (rewrite (= (<= 0 v_b_L_H_p_G_0$) $x11901)) (rewrite (= (<= v_b_L_H_p_G_0$ b_S_max_o_u4$) $x11904)) (= $x10180 (and $x11901 $x11904)))))
blanchet@57170
  1104
(let ((@x11941 (monotonicity (rewrite (= $x10174 $x11432)) (rewrite (= (<= v_b_SL_H_witness_G_0$ b_S_max_o_u4$) $x11907)) (= $x10176 (and $x11432 $x11907)))))
blanchet@57170
  1105
(let ((@x11944 (monotonicity @x11941 (monotonicity @x11935 (monotonicity @x11436 @x11929 $x11931) (= $x10541 $x11936)) (= $x10544 (and (and $x11432 $x11907) $x11936)))))
blanchet@57170
  1106
(let ((@x11947 (monotonicity (rewrite (= (<= 0 v_b_L_H_max_G_1$) $x11911)) (rewrite (= (<= v_b_L_H_max_G_1$ b_S_max_o_u1$) $x11914)) (= $x10172 (and $x11911 $x11914)))))
blanchet@57170
  1107
(let ((@x11950 (monotonicity @x11947 @x11944 (= $x10547 (and (and $x11911 $x11914) (and (and $x11432 $x11907) $x11936))))))
blanchet@57170
  1108
(let ((@x11956 (monotonicity (monotonicity (rewrite (= $x10074 $x11260)) (= $x10168 $x11951)) @x11950 $x11955)))
blanchet@57170
  1109
(let ((@x11964 (monotonicity (trans @x11956 (rewrite $x11958) (= $x10557 $x11957)) (= (not $x10557) $x11962))))
blanchet@57170
  1110
(let ((@x11975 (trans (monotonicity @x11964 @x11967 (= $x11162 (or $x11962 (or $x11481 $x11862)))) (rewrite (= (or $x11962 (or $x11481 $x11862)) $x11971)) (= $x11162 $x11971))))
blanchet@57170
  1111
(let ((@x11978 (monotonicity (monotonicity (rewrite (= $x10074 $x11260)) (= $x10168 $x11951)) @x11975 (= $x11167 (and $x11951 $x11971)))))
blanchet@57170
  1112
(let (($x11404 (>= (+ v_b_L_H_max_G_0$ (* (- 1) ?x10163)) 0)))
blanchet@57170
  1113
(let (($x11388 (>= ?0 1)))
blanchet@57170
  1114
(let (($x11389 (not $x11388)))
blanchet@57170
  1115
(let (($x11395 (and $x2815 $x3115 $x11389)))
blanchet@57170
  1116
(let (($x11400 (not $x11395)))
blanchet@57170
  1117
(let (($x11408 (or $x11400 $x11404)))
blanchet@57170
  1118
(let (($x10164 (<= ?x10163 v_b_L_H_max_G_0$)))
blanchet@57170
  1119
(let (($x10519 (or (not (and $x3098 (< ?0 1))) $x10164)))
blanchet@57170
  1120
(let ((@x11394 (monotonicity @x3124 (rewrite (= (< ?0 1) $x11389)) (= (and $x3098 (< ?0 1)) (and (and $x2815 $x3115) $x11389)))))
blanchet@57170
  1121
(let ((@x11399 (trans @x11394 (rewrite (= (and (and $x2815 $x3115) $x11389) $x11395)) (= (and $x3098 (< ?0 1)) $x11395))))
blanchet@57170
  1122
(let ((@x11410 (monotonicity (monotonicity @x11399 (= (not (and $x3098 (< ?0 1))) $x11400)) (rewrite (= $x10164 $x11404)) (= $x10519 $x11408))))
blanchet@57170
  1123
(let ((@x11416 (monotonicity (quant-intro @x11410 (= $x10522 $x11411)) (= (not $x10522) $x11414))))
blanchet@57170
  1124
(let ((@x11986 (monotonicity @x11416 (trans @x11978 (rewrite (= (and $x11951 $x11971) $x11979)) (= $x11167 $x11979)) (= $x11174 $x11984))))
blanchet@57170
  1125
(let ((@x11992 (monotonicity (monotonicity (rewrite (= $x10159 $x11382)) (= (not $x10159) $x11385)) (monotonicity (quant-intro @x11410 (= $x10522 $x11411)) @x11986 (= $x11179 $x11987)) (= $x11186 $x11990))))
blanchet@57170
  1126
(let (($x11368 (and $x10145 (and $x10146 (and $x10147 (and $x10148 (and true (and true true))))))))
blanchet@57170
  1127
(let (($x11366 (= $x10509 (and $x10146 (and $x10147 (and $x10148 (and true (and true true))))))))
blanchet@57170
  1128
(let ((@x11355 (monotonicity (rewrite (= $x10149 true)) (rewrite (= $x10150 true)) (= $x10497 (and true true)))))
blanchet@57170
  1129
(let ((@x11358 (monotonicity (rewrite (= $x10149 true)) @x11355 (= $x10500 (and true (and true true))))))
blanchet@57170
  1130
(let ((@x11361 (monotonicity @x11358 (= $x10503 (and $x10148 (and true (and true true)))))))
blanchet@57170
  1131
(let ((@x11364 (monotonicity @x11361 (= $x10506 (and $x10147 (and $x10148 (and true (and true true))))))))
blanchet@57170
  1132
(let ((@x11373 (monotonicity (monotonicity (monotonicity @x11364 $x11366) (= $x10512 $x11368)) (= $x10515 (and $x10142 $x11368)))))
blanchet@57170
  1133
(let ((@x11381 (monotonicity (trans @x11373 (rewrite (= (and $x10142 $x11368) $x11374)) (= $x10515 $x11374)) (= (not $x10515) $x11379))))
blanchet@57170
  1134
(let ((@x11998 (monotonicity @x11381 (monotonicity (rewrite (= $x10159 $x11382)) @x11992 (= $x11191 $x11993)) (= $x11198 $x11996))))
blanchet@57170
  1135
(let ((@x12006 (trans (monotonicity @x11998 (= $x11203 (and $x10142 $x11996))) (rewrite (= (and $x10142 $x11996) $x12002)) (= $x11203 $x12002))))
blanchet@57170
  1136
(let ((@x12012 (monotonicity (monotonicity @x12006 (= $x11210 $x12007)) (= $x11215 (and $x10140 $x12007)))))
blanchet@57170
  1137
(let ((@x12020 (monotonicity (trans @x12012 (rewrite (= (and $x10140 $x12007) $x12013)) (= $x11215 $x12013)) (= $x11222 $x12018))))
blanchet@57170
  1138
(let (($x11306 (and $x11256 (and $x10108 (and $x10109 (and $x10112 (and $x10439 (and $x11243 $x11245))))))))
blanchet@57170
  1139
(let (($x11327 (and (and $x11268 $x11270) (and $x11264 (and $x11260 (and $x10094 (and $x10095 (and $x10098 $x11306))))))))
blanchet@57170
  1140
(let ((@x11344 (rewrite (= (and (and $x11284 $x11286) (and (and $x11276 $x11278) $x11327)) $x11342))))
blanchet@57170
  1141
(let (($x11322 (= $x10476 (and $x11264 (and $x11260 (and $x10094 (and $x10095 (and $x10098 $x11306))))))))
blanchet@57170
  1142
(let (($x11304 (= $x10451 (and $x10108 (and $x10109 (and $x10112 (and $x10439 (and $x11243 $x11245))))))))
blanchet@57170
  1143
(let ((@x11293 (monotonicity (rewrite (= (<= 0 v_b_P_H_len$) $x11243)) (rewrite (= (<= v_b_P_H_len$ b_S_max_o_u4$) $x11245)) (= $x10119 (and $x11243 $x11245)))))
blanchet@57170
  1144
(let ((@x11299 (monotonicity (monotonicity @x11293 (= $x10442 (and $x10439 (and $x11243 $x11245)))) (= $x10445 (and $x10112 (and $x10439 (and $x11243 $x11245)))))))
blanchet@57170
  1145
(let ((@x11302 (monotonicity @x11299 (= $x10448 (and $x10109 (and $x10112 (and $x10439 (and $x11243 $x11245))))))))
blanchet@57170
  1146
(let (($x11251 (>= (+ (b_S_frame_n_level$ ?0) (* (- 1) b_S_current_n_frame_n_level$)) 0)))
blanchet@57170
  1147
(let (($x11250 (not $x11251)))
blanchet@57170
  1148
(let ((@x11255 (rewrite (= (< (b_S_frame_n_level$ ?0) b_S_current_n_frame_n_level$) $x11250))))
blanchet@57170
  1149
(let ((@x11308 (monotonicity (quant-intro @x11255 (= $x10104 $x11256)) (monotonicity @x11302 $x11304) (= $x10454 $x11306))))
blanchet@57170
  1150
(let ((@x11314 (monotonicity (monotonicity @x11308 (= $x10457 (and $x10098 $x11306))) (= $x10460 (and $x10095 (and $x10098 $x11306))))))
blanchet@57170
  1151
(let ((@x11320 (monotonicity (rewrite (= $x10074 $x11260)) (monotonicity @x11314 (= $x10470 (and $x10094 (and $x10095 (and $x10098 $x11306))))) (= $x10473 (and $x11260 (and $x10094 (and $x10095 (and $x10098 $x11306))))))))
blanchet@57170
  1152
(let ((@x11326 (monotonicity (rewrite (= (<= 0 v_b_SL_H_witness$) $x11268)) (rewrite (= (<= v_b_SL_H_witness$ b_S_max_o_u4$) $x11270)) (= $x10071 (and $x11268 $x11270)))))
blanchet@57170
  1153
(let ((@x11329 (monotonicity @x11326 (monotonicity (rewrite (= $x10073 $x11264)) @x11320 $x11322) (= $x10479 $x11327))))
blanchet@57170
  1154
(let ((@x11332 (monotonicity (rewrite (= (<= 0 v_b_L_H_p$) $x11276)) (rewrite (= (<= v_b_L_H_p$ b_S_max_o_u4$) $x11278)) (= $x10067 (and $x11276 $x11278)))))
blanchet@57170
  1155
(let ((@x11338 (monotonicity (rewrite (= (<= 0 v_b_L_H_max$) $x11284)) (rewrite (= (<= v_b_L_H_max$ b_S_max_o_u1$) $x11286)) (= $x10063 (and $x11284 $x11286)))))
blanchet@57170
  1156
(let ((@x11341 (monotonicity @x11338 (monotonicity @x11332 @x11329 (= $x10482 (and (and $x11276 $x11278) $x11327))) (= $x10485 (and (and $x11284 $x11286) (and (and $x11276 $x11278) $x11327))))))
blanchet@57170
  1157
(let ((@x11349 (monotonicity (trans @x11341 @x11344 (= $x10485 $x11342)) (= (not $x10485) (not $x11342)))))
blanchet@57170
  1158
(let ((@x12026 (monotonicity @x11349 (monotonicity @x12020 (= $x11227 $x12021)) (= $x11234 (or (not $x11342) $x12021)))))
blanchet@57170
  1159
(let ((@x10656 (monotonicity (rewrite (= (=> $x10242 true) true)) (= $x10244 (and $x10242 true)))))
blanchet@57170
  1160
(let ((@x10663 (monotonicity (quant-intro (rewrite (= (=> $x10234 $x10235) $x10646)) (= $x10237 $x10649)) (trans @x10656 (rewrite (= (and $x10242 true) $x10242)) (= $x10244 $x10242)) (= $x10245 (=> $x10649 $x10242)))))
blanchet@57170
  1161
(let ((@x10672 (monotonicity (quant-intro (rewrite (= (=> $x10234 $x10235) $x10646)) (= $x10237 $x10649)) (trans @x10663 (rewrite (= (=> $x10649 $x10242) $x10665)) (= $x10245 $x10665)) (= (and $x10237 $x10245) $x10670))))
blanchet@57170
  1162
(let (($x10614 (= (and $x10218 (and $x10220 (and $x10222 true))) (and $x10218 (and $x10220 $x10222)))))
blanchet@57170
  1163
(let ((@x10612 (monotonicity (rewrite (= (and $x10222 true) $x10222)) (= (and $x10220 (and $x10222 true)) (and $x10220 $x10222)))))
blanchet@57170
  1164
(let ((@x10618 (monotonicity (monotonicity @x10612 $x10614) (= (and $x10216 (and $x10218 (and $x10220 (and $x10222 true)))) $x10616))))
blanchet@57170
  1165
(let ((@x10625 (trans (monotonicity @x10618 (= $x10227 (and true $x10616))) (rewrite (= (and true $x10616) $x10616)) (= $x10227 $x10616))))
blanchet@57170
  1166
(let ((@x10631 (monotonicity (monotonicity @x10625 (= (and $x10182 $x10227) $x10626)) (= (and $x10182 (and $x10182 $x10227)) $x10629))))
blanchet@57170
  1167
(let ((@x10638 (trans (monotonicity @x10631 (= $x10230 (and true $x10629))) (rewrite (= (and true $x10629) $x10629)) (= $x10230 $x10629))))
blanchet@57170
  1168
(let ((@x10644 (monotonicity (monotonicity @x10638 (= (and $x10182 $x10230) $x10639)) (= (and b_S_position_n_marker$ (and $x10182 $x10230)) $x10642))))
blanchet@57170
  1169
(let ((@x10681 (trans (monotonicity @x10644 @x10672 (= $x10247 (=> $x10642 $x10670))) (rewrite (= (=> $x10642 $x10670) $x10677)) (= $x10247 $x10677))))
blanchet@57170
  1170
(let (($x11117 (and $x10410 $x10182)))
blanchet@57170
  1171
(let (($x11120 (and $x10182 $x11117)))
blanchet@57170
  1172
(let ((@x10568 (rewrite (= (and $x10182 $x10182) $x10182))))
blanchet@57170
  1173
(let ((@x10563 (rewrite (= $x10206 $x10182))))
blanchet@57170
  1174
(let ((@x10570 (trans (monotonicity @x10563 (= $x10207 (and $x10182 $x10182))) @x10568 (= $x10207 $x10182))))
blanchet@57170
  1175
(let ((@x11108 (trans (monotonicity @x10570 (= $x10411 (and $x10182 $x10182))) @x10568 (= $x10411 $x10182))))
blanchet@57170
  1176
(let ((@x11114 (monotonicity (trans (monotonicity @x11108 (= $x10412 $x10206)) @x10563 (= $x10412 $x10182)) (= $x10413 (and $x10182 $x10182)))))
blanchet@57170
  1177
(let ((@x11119 (monotonicity (trans @x11114 @x10568 (= $x10413 $x10182)) (= (and $x10410 $x10413) $x11117))))
blanchet@57170
  1178
(let ((@x11125 (monotonicity (monotonicity @x11119 (= (and $x10182 (and $x10410 $x10413)) $x11120)) (= $x10416 (and true $x11120)))))
blanchet@57170
  1179
(let ((@x11132 (monotonicity (trans @x11125 (rewrite (= (and true $x11120) $x11120)) (= $x10416 $x11120)) (monotonicity @x10681 (= $x10248 $x10682)) (= $x10417 (=> $x11120 $x10682)))))
blanchet@57170
  1180
(let ((@x10938 (monotonicity (rewrite (= (and $x10375 false) false)) (= $x10377 (=> false true)))))
blanchet@57170
  1181
(let ((@x10942 (trans @x10938 (rewrite (= (=> false true) true)) (= $x10377 true))))
blanchet@57170
  1182
(let ((@x10949 (trans (monotonicity @x10942 (= $x10378 (and $x10375 true))) (rewrite (= (and $x10375 true) $x10375)) (= $x10378 $x10375))))
blanchet@57170
  1183
(let ((@x10933 (quant-intro (rewrite (= (=> (and $x3098 (< ?0 v_b_L_H_p_G_1$)) $x10368) $x10928)) (= $x10370 $x10931))))
blanchet@57170
  1184
(let ((@x10958 (trans (monotonicity @x10933 @x10949 (= $x10379 (=> $x10931 $x10375))) (rewrite (= (=> $x10931 $x10375) $x10954)) (= $x10379 $x10954))))
blanchet@57170
  1185
(let ((@x10964 (monotonicity (monotonicity @x10933 @x10958 (= (and $x10370 $x10379) $x10959)) (= $x10381 (=> $x10365 $x10959)))))
blanchet@57170
  1186
(let ((@x10973 (monotonicity (trans @x10964 (rewrite (= (=> $x10365 $x10959) $x10966)) (= $x10381 $x10966)) (= (and $x10365 $x10381) $x10971))))
blanchet@57170
  1187
(let ((@x10920 (monotonicity (rewrite (= (and $x10360 true) $x10360)) (= (and $x10358 (and $x10360 true)) $x10918))))
blanchet@57170
  1188
(let ((@x10903 (rewrite (= (+ v_b_L_H_p_G_0$ 1) ?x10901))))
blanchet@57170
  1189
(let ((@x10915 (monotonicity @x10903 (= (= v_b_L_H_p_G_1$ (+ v_b_L_H_p_G_0$ 1)) $x10913))))
blanchet@57170
  1190
(let ((@x10909 (monotonicity @x10903 (= (<= (+ v_b_L_H_p_G_0$ 1) b_S_max_o_u4$) $x10907))))
blanchet@57170
  1191
(let ((@x10912 (monotonicity (monotonicity @x10903 (= (<= 0 (+ v_b_L_H_p_G_0$ 1)) $x10904)) @x10909 (= $x10355 $x10910))))
blanchet@57170
  1192
(let ((@x10926 (monotonicity @x10912 (monotonicity @x10915 @x10920 (= $x10363 $x10921)) (= (and $x10355 $x10363) $x10924))))
blanchet@57170
  1193
(let ((@x10982 (trans (monotonicity @x10926 @x10973 (= $x10383 (=> $x10924 $x10971))) (rewrite (= (=> $x10924 $x10971) $x10978)) (= $x10383 $x10978))))
blanchet@57170
  1194
(let ((@x11021 (monotonicity (rewrite (= (and true $x10342) $x10342)) (= (and $x10392 (and true $x10342)) $x11019))))
blanchet@57170
  1195
(let ((@x11024 (monotonicity @x11021 (= (and $x10391 (and $x10392 (and true $x10342))) $x11022))))
blanchet@57170
  1196
(let ((@x11031 (trans (monotonicity @x11024 (= $x10395 (and true $x11022))) (rewrite (= (and true $x11022) $x11022)) (= $x10395 $x11022))))
blanchet@57170
  1197
(let ((@x11037 (monotonicity (monotonicity @x11031 (= (and $x10182 $x10395) $x11032)) (= (and $x10182 (and $x10182 $x10395)) $x11035))))
blanchet@57170
  1198
(let ((@x11044 (trans (monotonicity @x11037 (= $x10398 (and true $x11035))) (rewrite (= (and true $x11035) $x11035)) (= $x10398 $x11035))))
blanchet@57170
  1199
(let ((@x11050 (monotonicity (monotonicity @x11044 (= (and $x10182 $x10398) $x11045)) (= (and $x10390 (and $x10182 $x10398)) $x11048))))
blanchet@57170
  1200
(let ((@x11056 (monotonicity (monotonicity @x11050 (= (and $x10182 (and $x10390 (and $x10182 $x10398))) $x11051)) (= $x10402 (and true $x11051)))))
blanchet@57170
  1201
(let ((@x11063 (monotonicity (trans @x11056 (rewrite (= (and true $x11051) $x11051)) (= $x10402 $x11051)) (monotonicity @x10912 @x10982 (= $x10384 $x10983)) (= $x10403 (=> $x11051 $x10983)))))
blanchet@57170
  1202
(let (($x10896 (= (and $x10333 (and $x10334 (and $x10335 (and (and $x10181 $x10181) $x10346)))) $x10895)))
blanchet@57170
  1203
(let ((@x10875 (monotonicity (rewrite (= (and true $x10342) $x10342)) (= (and $x10340 (and true $x10342)) $x10873))))
blanchet@57170
  1204
(let ((@x10878 (monotonicity @x10875 (= (and $x10338 (and $x10340 (and true $x10342))) $x10876))))
blanchet@57170
  1205
(let ((@x10885 (trans (monotonicity @x10878 (= $x10346 (and true $x10876))) (rewrite (= (and true $x10876) $x10876)) (= $x10346 $x10876))))
blanchet@57170
  1206
(let ((@x10888 (monotonicity (rewrite (= (and $x10181 $x10181) $x10181)) @x10885 (= (and (and $x10181 $x10181) $x10346) $x10886))))
blanchet@57170
  1207
(let ((@x10894 (monotonicity (monotonicity @x10888 (= (and $x10335 (and (and $x10181 $x10181) $x10346)) $x10889)) (= (and $x10334 (and $x10335 (and (and $x10181 $x10181) $x10346))) $x10892))))
blanchet@57170
  1208
(let ((@x10988 (monotonicity (monotonicity (monotonicity @x10894 $x10896) (= $x10351 $x10898)) (monotonicity @x10912 @x10982 (= $x10384 $x10983)) (= $x10385 (=> $x10898 $x10983)))))
blanchet@57170
  1209
(let ((@x10997 (monotonicity (trans @x10988 (rewrite (= (=> $x10898 $x10983) $x10990)) (= $x10385 $x10990)) (= (and $x10325 $x10385) $x10995))))
blanchet@57170
  1210
(let ((@x11006 (trans (monotonicity @x10997 (= $x10387 (=> $x10323 $x10995))) (rewrite (= (=> $x10323 $x10995) $x11002)) (= $x10387 $x11002))))
blanchet@57170
  1211
(let ((@x10861 (monotonicity (monotonicity @x10570 (= (and $x10328 $x10207) $x10856)) (= (and $x10182 (and $x10328 $x10207)) $x10859))))
blanchet@57170
  1212
(let ((@x10868 (trans (monotonicity @x10861 (= $x10331 (and true $x10859))) (rewrite (= (and true $x10859) $x10859)) (= $x10331 $x10859))))
blanchet@57170
  1213
(let ((@x11012 (monotonicity @x10868 (monotonicity @x11006 (= (and $x10323 $x10387) $x11007)) (= $x10389 (=> $x10859 $x11007)))))
blanchet@57170
  1214
(let ((@x11072 (monotonicity (trans @x11012 (rewrite (= (=> $x10859 $x11007) $x11014)) (= $x10389 $x11014)) (trans @x11063 (rewrite (= (=> $x11051 $x10983) $x11065)) (= $x10403 $x11065)) (= (and $x10389 $x10403) $x11070))))
blanchet@57170
  1215
(let ((@x11081 (trans (monotonicity @x11072 (= $x10405 (=> $x10326 $x11070))) (rewrite (= (=> $x10326 $x11070) $x11077)) (= $x10405 $x11077))))
blanchet@57170
  1216
(let ((@x11087 (monotonicity (monotonicity @x11081 (= (and $x10325 $x10405) $x11082)) (= $x10407 (=> $x10323 $x11082)))))
blanchet@57170
  1217
(let ((@x11095 (monotonicity (trans @x11087 (rewrite (= (=> $x10323 $x11082) $x11088)) (= $x10407 $x11088)) (= (and $x10323 $x10407) $x11093))))
blanchet@57170
  1218
(let ((@x10848 (monotonicity (monotonicity @x10570 (= (and $x10316 $x10207) $x10843)) (= (and $x10182 (and $x10316 $x10207)) $x10846))))
blanchet@57170
  1219
(let ((@x10855 (trans (monotonicity @x10848 (= $x10319 (and true $x10846))) (rewrite (= (and true $x10846) $x10846)) (= $x10319 $x10846))))
blanchet@57170
  1220
(let ((@x11104 (trans (monotonicity @x10855 @x11095 (= $x10409 (=> $x10846 $x11093))) (rewrite (= (=> $x10846 $x11093) $x11100)) (= $x10409 $x11100))))
blanchet@57170
  1221
(let ((@x11141 (monotonicity @x11104 (trans @x11132 (rewrite (= (=> $x11120 $x10682) $x11134)) (= $x10417 $x11134)) (= (and $x10409 $x10417) $x11139))))
blanchet@57170
  1222
(let (($x10802 (= (and $x10291 (and $x10292 (and $x10293 (and $x10294 (and $x10297 $x10301))))) $x10801)))
blanchet@57170
  1223
(let ((@x10777 (rewrite (= (= (b_S_statusmap$ v_b_S_s$) (b_S_statusmap$ v_b_S_s$)) true))))
blanchet@57170
  1224
(let ((@x10780 (monotonicity (rewrite (= (= ?x10272 ?x10272) true)) @x10777 (= $x10300 (and true true)))))
blanchet@57170
  1225
(let ((@x10784 (trans @x10780 (rewrite (= (and true true) true)) (= $x10300 true))))
blanchet@57170
  1226
(let ((@x10791 (monotonicity (trans (monotonicity @x10784 (= $x10301 $x10206)) @x10563 (= $x10301 $x10182)) (= (and $x10297 $x10301) $x10789))))
blanchet@57170
  1227
(let ((@x10797 (monotonicity (monotonicity @x10791 (= (and $x10294 (and $x10297 $x10301)) $x10792)) (= (and $x10293 (and $x10294 (and $x10297 $x10301))) $x10795))))
blanchet@57170
  1228
(let ((@x10800 (monotonicity @x10797 (= (and $x10292 (and $x10293 (and $x10294 (and $x10297 $x10301)))) $x10798))))
blanchet@57170
  1229
(let ((@x10809 (monotonicity (monotonicity (monotonicity @x10800 $x10802) (= $x10307 $x10804)) (= (and $x10286 $x10307) $x10807))))
blanchet@57170
  1230
(let ((@x10759 (rewrite (= (and true $x10286) $x10286))))
blanchet@57170
  1231
(let (($x10748 (forall ((?v0 B_S_ptr$) )(!true :pattern ( (b_S_select_o_tm$ (b_S_typemap$ v_b_S_s$) ?v0) )))
blanchet@57170
  1232
))
blanchet@57170
  1233
(let (($x10260 (b_S_thread_n_local$ v_b_S_s$ ?0)))
blanchet@57170
  1234
(let (($x10275 (and (= (b_S_select_o_tm$ ?x10272 ?0) (b_S_select_o_tm$ ?x10272 ?0)) $x10260)))
blanchet@57170
  1235
(let (($x10276 (=> $x10260 $x10275)))
blanchet@57170
  1236
(let ((@x10714 (rewrite (= (=> $x10260 $x10260) true))))
blanchet@57170
  1237
(let ((@x10707 (rewrite (= (and true $x10260) $x10260))))
blanchet@57170
  1238
(let (($x10738 (= (= (b_S_select_o_tm$ ?x10272 ?0) (b_S_select_o_tm$ ?x10272 ?0)) true)))
blanchet@57170
  1239
(let ((@x10743 (trans (monotonicity (rewrite $x10738) (= $x10275 (and true $x10260))) @x10707 (= $x10275 $x10260))))
blanchet@57170
  1240
(let ((@x10747 (trans (monotonicity @x10743 (= $x10276 (=> $x10260 $x10260))) @x10714 (= $x10276 true))))
blanchet@57170
  1241
(let ((@x10754 (trans (quant-intro @x10747 (= $x10278 $x10748)) (elim-unused (= $x10748 true)) (= $x10278 true))))
blanchet@57170
  1242
(let ((@x10761 (trans (monotonicity @x10754 (= $x10287 (and true $x10286))) @x10759 (= $x10287 $x10286))))
blanchet@57170
  1243
(let (($x10694 (forall ((?v0 B_S_ptr$) )(!true :pattern ( (b_S_select_o_sm$ (b_S_statusmap$ v_b_S_s$) ?v0) )))
blanchet@57170
  1244
))
blanchet@57170
  1245
(let ((?x10256 (b_S_statusmap$ v_b_S_s$)))
blanchet@57170
  1246
(let ((?x10257 (b_S_select_o_sm$ ?x10256 ?0)))
blanchet@57170
  1247
(let (($x10269 (and (= ?x10257 ?x10257) $x10260)))
blanchet@57170
  1248
(let (($x10270 (=> $x10260 $x10269)))
blanchet@57170
  1249
(let ((@x10727 (monotonicity (rewrite (= (= ?x10257 ?x10257) true)) (= $x10269 (and true $x10260)))))
blanchet@57170
  1250
(let ((@x10731 (monotonicity (trans @x10727 @x10707 (= $x10269 $x10260)) (= $x10270 (=> $x10260 $x10260)))))
blanchet@57170
  1251
(let ((@x10737 (trans (quant-intro (trans @x10731 @x10714 (= $x10270 true)) (= $x10271 $x10694)) (elim-unused (= $x10694 true)) (= $x10271 true))))
blanchet@57170
  1252
(let ((@x10765 (trans (monotonicity @x10737 @x10761 (= $x10288 (and true $x10286))) @x10759 (= $x10288 $x10286))))
blanchet@57170
  1253
(let (($x10717 (forall ((?v0 B_S_ptr$) )(!true :pattern ( (b_S_select_o_mem$ (b_S_memory$ v_b_S_s$) ?v0) )))
blanchet@57170
  1254
))
blanchet@57170
  1255
(let ((?x10261 (b_S_memory$ v_b_S_s$)))
blanchet@57170
  1256
(let ((?x10262 (b_S_select_o_mem$ ?x10261 ?0)))
blanchet@57170
  1257
(let (($x10264 (and (= ?x10262 ?x10262) $x10260)))
blanchet@57170
  1258
(let (($x10265 (=> $x10260 $x10264)))
blanchet@57170
  1259
(let ((@x10705 (monotonicity (rewrite (= (= ?x10262 ?x10262) true)) (= $x10264 (and true $x10260)))))
blanchet@57170
  1260
(let ((@x10712 (monotonicity (trans @x10705 @x10707 (= $x10264 $x10260)) (= $x10265 (=> $x10260 $x10260)))))
blanchet@57170
  1261
(let ((@x10723 (trans (quant-intro (trans @x10712 @x10714 (= $x10265 true)) (= $x10267 $x10717)) (elim-unused (= $x10717 true)) (= $x10267 true))))
blanchet@57170
  1262
(let ((@x10769 (trans (monotonicity @x10723 @x10765 (= $x10289 (and true $x10286))) @x10759 (= $x10289 $x10286))))
blanchet@57170
  1263
(let (($x10253 (= (b_S_kind_n_of$ (b_S_typ$ (b_S_owner$ v_b_S_s$ ?0))) b_S_kind_n_thread$)))
blanchet@57170
  1264
(let ((@x10696 (quant-intro (rewrite (= (=> (not $x10253) (not $x10253)) true)) (= $x10259 $x10694))))
blanchet@57170
  1265
(let ((@x10771 (monotonicity (trans @x10696 (elim-unused (= $x10694 true)) (= $x10259 true)) @x10769 (= $x10290 (and true $x10286)))))
blanchet@57170
  1266
(let ((@x10812 (monotonicity (trans @x10771 @x10759 (= $x10290 $x10286)) @x10809 (= (and $x10290 (and $x10286 $x10307)) $x10810))))
blanchet@57170
  1267
(let ((@x10818 (monotonicity (monotonicity @x10812 (= (and $x10182 (and $x10290 (and $x10286 $x10307))) $x10813)) (= $x10311 (and true $x10813)))))
blanchet@57170
  1268
(let ((@x10825 (monotonicity (trans @x10818 (rewrite (= (and true $x10813) $x10813)) (= $x10311 $x10813)) (= (and $x10182 $x10311) $x10823))))
blanchet@57170
  1269
(let ((@x10832 (trans (monotonicity @x10825 (= $x10313 (and true $x10823))) (rewrite (= (and true $x10823) $x10823)) (= $x10313 $x10823))))
blanchet@57170
  1270
(let ((@x10838 (monotonicity (monotonicity @x10832 (= (and $x10182 $x10313) $x10833)) (= $x10315 (and true $x10833)))))
blanchet@57170
  1271
(let ((@x11144 (monotonicity (trans @x10838 (rewrite (= (and true $x10833) $x10833)) (= $x10315 $x10833)) @x11141 (= $x10419 (=> $x10833 $x11139)))))
blanchet@57170
  1272
(let ((@x10591 (rewrite (= (and false (and $x10182 (and $x10182 (and $x10205 $x10182)))) false))))
blanchet@57170
  1273
(let (($x10585 (= (and $x10182 (and true (and $x10182 (and $x10205 $x10207)))) (and $x10182 (and $x10182 (and $x10205 $x10182))))))
blanchet@57170
  1274
(let (($x10574 (and $x10182 (and $x10205 $x10182))))
blanchet@57170
  1275
(let (($x10210 (and true (and $x10182 (and $x10205 $x10207)))))
blanchet@57170
  1276
(let ((@x10576 (monotonicity (monotonicity @x10570 (= (and $x10205 $x10207) (and $x10205 $x10182))) (= (and $x10182 (and $x10205 $x10207)) $x10574))))
blanchet@57170
  1277
(let ((@x10583 (trans (monotonicity @x10576 (= $x10210 (and true $x10574))) (rewrite (= (and true $x10574) $x10574)) (= $x10210 $x10574))))
blanchet@57170
  1278
(let ((@x10561 (rewrite (= $x10203 false))))
blanchet@57170
  1279
(let ((@x10589 (monotonicity @x10561 (monotonicity @x10583 $x10585) (= $x10212 (and false (and $x10182 $x10574))))))
blanchet@57170
  1280
(let ((@x10596 (monotonicity (trans @x10589 @x10591 (= $x10212 false)) (= $x10213 (and $x10182 false)))))
blanchet@57170
  1281
(let ((@x10600 (trans @x10596 (rewrite (= (and $x10182 false) false)) (= $x10213 false))))
blanchet@57170
  1282
(let ((@x10607 (trans (monotonicity @x10600 (= $x10214 (and true false))) (rewrite (= (and true false) false)) (= $x10214 false))))
blanchet@57170
  1283
(let ((@x10687 (monotonicity @x10607 (monotonicity @x10681 (= $x10248 $x10682)) (= $x10249 (=> false $x10682)))))
blanchet@57170
  1284
(let ((@x10691 (trans @x10687 (rewrite (= (=> false $x10682) true)) (= $x10249 true))))
blanchet@57170
  1285
(let ((@x11153 (monotonicity @x10691 (trans @x11144 (rewrite (= (=> $x10833 $x11139) $x11146)) (= $x10419 $x11146)) (= $x10420 (and true $x11146)))))
blanchet@57170
  1286
(let (($x10545 (= (and $x10176 (and $x10180 (and $x10182 (and $x10183 (and $x10188 $x10194))))) $x10544)))
blanchet@57170
  1287
(let ((@x10531 (quant-intro (rewrite (= (=> (and $x3098 (< ?0 v_b_L_H_p_G_0$)) $x10186) $x10526)) (= $x10188 $x10529))))
blanchet@57170
  1288
(let ((@x10537 (monotonicity (monotonicity @x10531 (= (and $x10188 $x10194) $x10532)) (= (and $x10183 (and $x10188 $x10194)) $x10535))))
blanchet@57170
  1289
(let ((@x10543 (monotonicity (monotonicity @x10537 (= (and $x10182 (and $x10183 (and $x10188 $x10194))) $x10538)) (= (and $x10180 (and $x10182 (and $x10183 (and $x10188 $x10194)))) $x10541))))
blanchet@57170
  1290
(let ((@x10552 (monotonicity (monotonicity (monotonicity @x10543 $x10545) (= $x10200 $x10547)) (= $x10201 (and true $x10547)))))
blanchet@57170
  1291
(let ((@x10559 (monotonicity (trans @x10552 (rewrite (= (and true $x10547) $x10547)) (= $x10201 $x10547)) (= (and $x10168 $x10201) $x10557))))
blanchet@57170
  1292
(let ((@x11160 (monotonicity @x10559 (trans @x11153 (rewrite (= (and true $x11146) $x11146)) (= $x10420 $x11146)) (= $x10421 (=> $x10557 $x11146)))))
blanchet@57170
  1293
(let ((@x11169 (monotonicity (trans @x11160 (rewrite (= (=> $x10557 $x11146) $x11162)) (= $x10421 $x11162)) (= (and $x10168 $x10421) $x11167))))
blanchet@57170
  1294
(let ((@x10524 (quant-intro (rewrite (= (=> (and $x3098 (< ?0 1)) $x10164) $x10519)) (= $x10166 $x10522))))
blanchet@57170
  1295
(let ((@x11178 (trans (monotonicity @x10524 @x11169 (= $x10423 (=> $x10522 $x11167))) (rewrite (= (=> $x10522 $x11167) $x11174)) (= $x10423 $x11174))))
blanchet@57170
  1296
(let ((@x11184 (monotonicity (monotonicity @x10524 @x11178 (= (and $x10166 $x10423) $x11179)) (= $x10425 (=> $x10159 $x11179)))))
blanchet@57170
  1297
(let ((@x11193 (monotonicity (trans @x11184 (rewrite (= (=> $x10159 $x11179) $x11186)) (= $x10425 $x11186)) (= (and $x10159 $x10425) $x11191))))
blanchet@57170
  1298
(let ((@x10499 (monotonicity (rewrite (= (and $x10150 $x10150) $x10150)) (= (and $x10149 (and $x10150 $x10150)) $x10497))))
blanchet@57170
  1299
(let ((@x10505 (monotonicity (monotonicity @x10499 (= (and $x10149 (and $x10149 (and $x10150 $x10150))) $x10500)) (= $x10154 $x10503))))
blanchet@57170
  1300
(let ((@x10511 (monotonicity (monotonicity @x10505 (= (and $x10147 $x10154) $x10506)) (= (and $x10146 (and $x10147 $x10154)) $x10509))))
blanchet@57170
  1301
(let ((@x10517 (monotonicity (monotonicity @x10511 (= (and $x10145 (and $x10146 (and $x10147 $x10154))) $x10512)) (= (and $x10142 (and $x10145 (and $x10146 (and $x10147 $x10154)))) $x10515))))
blanchet@57170
  1302
(let ((@x11202 (trans (monotonicity @x10517 @x11193 (= $x10427 (=> $x10515 $x11191))) (rewrite (= (=> $x10515 $x11191) $x11198)) (= $x10427 $x11198))))
blanchet@57170
  1303
(let ((@x11208 (monotonicity (monotonicity @x11202 (= (and $x10142 $x10427) $x11203)) (= $x10429 (=> $x10140 $x11203)))))
blanchet@57170
  1304
(let ((@x11217 (monotonicity (trans @x11208 (rewrite (= (=> $x10140 $x11203) $x11210)) (= $x10429 $x11210)) (= (and $x10140 $x10429) $x11215))))
blanchet@57170
  1305
(let ((@x11226 (trans (monotonicity @x11217 (= $x10431 (=> $x10136 $x11215))) (rewrite (= (=> $x10136 $x11215) $x11222)) (= $x10431 $x11222))))
blanchet@57170
  1306
(let (($x10483 (= (and $x10067 (and $x10071 (and $x10073 (and $x10074 (and $x10094 $x10127))))) $x10482)))
blanchet@57170
  1307
(let (($x10455 (= (and $x10104 (and $x10108 (and $x10109 (and $x10112 (and $x10116 $x10119))))) $x10454)))
blanchet@57170
  1308
(let (($x10113 (b_S_in_n_writes_n_at$ v_b_H_wrTime_S_1_T_6_o_1$ ?0)))
blanchet@57170
  1309
(let (($x10436 (not $x10113)))
blanchet@57170
  1310
(let ((@x10444 (monotonicity (quant-intro (rewrite (= (= $x10113 false) $x10436)) (= $x10116 $x10439)) (= (and $x10116 $x10119) $x10442))))
blanchet@57170
  1311
(let ((@x10450 (monotonicity (monotonicity @x10444 (= (and $x10112 (and $x10116 $x10119)) $x10445)) (= (and $x10109 (and $x10112 (and $x10116 $x10119))) $x10448))))
blanchet@57170
  1312
(let ((@x10453 (monotonicity @x10450 (= (and $x10108 (and $x10109 (and $x10112 (and $x10116 $x10119)))) $x10451))))
blanchet@57170
  1313
(let ((@x10462 (monotonicity (monotonicity (monotonicity @x10453 $x10455) (= $x10125 $x10457)) (= (and $x10095 $x10125) $x10460))))
blanchet@57170
  1314
(let ((@x10469 (trans (monotonicity @x10462 (= $x10127 (and true $x10460))) (rewrite (= (and true $x10460) $x10460)) (= $x10127 $x10460))))
blanchet@57170
  1315
(let ((@x10475 (monotonicity (monotonicity @x10469 (= (and $x10094 $x10127) $x10470)) (= (and $x10074 (and $x10094 $x10127)) $x10473))))
blanchet@57170
  1316
(let ((@x10481 (monotonicity (monotonicity @x10475 (= (and $x10073 (and $x10074 (and $x10094 $x10127))) $x10476)) (= (and $x10071 (and $x10073 (and $x10074 (and $x10094 $x10127)))) $x10479))))
blanchet@57170
  1317
(let ((@x10490 (monotonicity (monotonicity (monotonicity @x10481 $x10483) (= $x10133 $x10485)) (= $x10134 (and true $x10485)))))
blanchet@57170
  1318
(let ((@x11232 (monotonicity (trans @x10490 (rewrite (= (and true $x10485) $x10485)) (= $x10134 $x10485)) (monotonicity @x11226 (= (and $x10136 $x10431) $x11227)) (= $x10433 (=> $x10485 $x11227)))))
blanchet@57170
  1319
(let ((@x11241 (monotonicity (trans @x11232 (rewrite (= (=> $x10485 $x11227) $x11234)) (= $x10433 $x11234)) (= $x10434 (not $x11234)))))
blanchet@57170
  1320
(let ((@x12031 (trans @x11241 (monotonicity @x12026 (= (not $x11234) $x12027)) (= $x10434 $x12027))))
blanchet@57170
  1321
(let ((@x12033 (not-or-elim (mp (asserted $x10434) @x12031 $x12027) $x11342)))
blanchet@57170
  1322
(let ((@x12044 (and-elim @x12033 $x10084)))
blanchet@57170
  1323
(let (($x21982 (not $x10084)))
blanchet@57170
  1324
(let (($x21995 (or $x21994 $x21982 $x21990)))
blanchet@57170
  1325
(let ((@x22000 (mp ((_ quant-inst (b_S_ptr$ ?x10076 ?x10079) (b_S_array$ b_T_T_u1$ v_b_P_H_len$)) (or $x21994 (or $x21982 $x21990))) (rewrite (= (or $x21994 (or $x21982 $x21990)) $x21995)) $x21995)))
blanchet@57170
  1326
(let ((@x24520 (symm (unit-resolution @x22000 @x15336 @x12044 $x21990) (= ?x21983 ?x10080))))
blanchet@57170
  1327
(let ((@x22795 (monotonicity (trans @x24520 (symm @x24530 (= ?x10080 ?x22595)) (= ?x21983 ?x22595)) (= (b_S_set_n_in$ ?x21983 ?x22343) $x22596))))
blanchet@57170
  1328
(let (($x22344 (b_S_set_n_in$ ?x21983 ?x22343)))
blanchet@57170
  1329
(let (($x22362 (forall ((?v3 B_S_ptr$) )(!(let ((?x10078 (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$)))
blanchet@57170
  1330
(let ((?x10079 (b_S_ref$ ?x10078)))
blanchet@57170
  1331
(let ((?x10076 (b_S_array$ b_T_T_u1$ v_b_P_H_len$)))
blanchet@57170
  1332
(let ((?x10080 (b_S_ptr$ ?x10076 ?x10079)))
blanchet@57170
  1333
(let ((?x21014 (b_S_ref$ ?x10080)))
blanchet@57170
  1334
(let ((?x21983 (b_S_ptr$ ?x10076 ?x21014)))
blanchet@57170
  1335
(let ((?x22357 (b_S_read_n_version$ v_b_S_s$ ?x21983)))
blanchet@57170
  1336
(let ((?x22358 (b_S_ver_n_domain$ ?x22357)))
blanchet@57170
  1337
(let ((?x22234 (b_S_typ$ ?x21983)))
blanchet@57170
  1338
(let (($x22353 (b_S_has_n_volatile_n_owns_n_set$ ?x22234)))
blanchet@57170
  1339
(or $x22353 (not (b_S_set_n_in$ ?v3 (b_S_owns$ v_b_S_s$ ?x21983))) (b_S_set_n_in2$ ?v3 ?x22358)))))))))))) :pattern ( (b_S_set_n_in$ ?v3 (b_S_owns$ v_b_S_s$ (b_S_ptr$ (b_S_array$ b_T_T_u1$ v_b_P_H_len$) (b_S_ref$ (b_S_ptr$ (b_S_array$ b_T_T_u1$ v_b_P_H_len$) (b_S_ref$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$))))))) )))
blanchet@57170
  1340
))
blanchet@57170
  1341
(let (($x22363 (not $x22362)))
blanchet@57170
  1342
(let (($x22248 (b_S_closed$ v_b_S_s$ ?x21983)))
blanchet@57170
  1343
(let (($x22272 (not $x22248)))
blanchet@57170
  1344
(let (($x22352 (not $x22344)))
blanchet@57170
  1345
(let (($x22364 (or $x22352 $x22272 $x22363)))
blanchet@57170
  1346
(let (($x22365 (not $x22364)))
blanchet@57170
  1347
(let (($x22318 (b_S_in_n_domain$ v_b_S_s$ ?x21983 ?x21983)))
blanchet@57170
  1348
(let (($x22317 (b_S_in_n_domain_n_lab$ v_b_S_s$ ?x21983 ?x21983 b_l_H_public$)))
blanchet@57170
  1349
(let (($x22326 (= $x22317 $x22318)))
blanchet@57170
  1350
(let (($x8728 (forall ((?v0 B_S_state$) (?v1 B_S_ptr$) (?v2 B_S_ptr$) (?v3 B_S_label$) )(!(let (($x8719 (b_S_in_n_domain$ ?v0 ?v1 ?v2)))
blanchet@57170
  1351
(let (($x8718 (b_S_in_n_domain_n_lab$ ?v0 ?v1 ?v2 ?v3)))
blanchet@57170
  1352
(= $x8718 $x8719))) :pattern ( (b_S_in_n_domain_n_lab$ ?v0 ?v1 ?v2 ?v3) )))
blanchet@57170
  1353
))
blanchet@57170
  1354
(let (($x8719 (b_S_in_n_domain$ ?3 ?2 ?1)))
blanchet@57170
  1355
(let (($x8718 (b_S_in_n_domain_n_lab$ ?3 ?2 ?1 ?0)))
blanchet@57170
  1356
(let (($x8725 (= $x8718 $x8719)))
blanchet@57170
  1357
(let (($x8723 (forall ((?v0 B_S_state$) (?v1 B_S_ptr$) (?v2 B_S_ptr$) (?v3 B_S_label$) )(!(let (($x8719 (b_S_in_n_domain$ ?v0 ?v1 ?v2)))
blanchet@57170
  1358
(let (($x8718 (b_S_in_n_domain_n_lab$ ?v0 ?v1 ?v2 ?v3)))
blanchet@57170
  1359
(= $x8718 $x8719))) :pattern ( (b_S_in_n_domain_n_lab$ ?v0 ?v1 ?v2 ?v3) )))
blanchet@57170
  1360
))
blanchet@57170
  1361
(let ((@x8733 (mp (asserted $x8723) (quant-intro (rewrite (= (= $x8718 $x8719) $x8725)) (= $x8723 $x8728)) $x8728)))
blanchet@57170
  1362
(let ((@x15021 (mp~ @x8733 (nnf-pos (refl (~ $x8725 $x8725)) (~ $x8728 $x8728)) $x8728)))
blanchet@57170
  1363
(let (($x22612 (or (not $x8728) $x22326)))
blanchet@57170
  1364
(let ((@x22613 ((_ quant-inst v_b_S_s$ (b_S_ptr$ ?x10076 ?x21014) (b_S_ptr$ ?x10076 ?x21014) b_l_H_public$) $x22612)))
blanchet@57170
  1365
(let (($x35 (= b_S_kind_n_primitive$ b_S_kind_n_array$)))
blanchet@57170
  1366
(let (($x36 (not $x35)))
blanchet@57232
  1367
(let (($x22488 (= $x36 (not (= (b_S_kind_n_of$ (b_S_typ$ ?x21983)) b_S_kind_n_primitive$)))))
blanchet@57170
  1368
(let ((?x22234 (b_S_typ$ ?x21983)))
blanchet@57170
  1369
(let ((?x22387 (b_S_kind_n_of$ ?x22234)))
blanchet@57170
  1370
(let (($x22388 (= ?x22387 b_S_kind_n_primitive$)))
blanchet@57170
  1371
(let (($x22148 (= ?x10086 b_S_kind_n_array$)))
blanchet@57170
  1372
(let (($x21115 (b_S_is_n_arraytype$ ?x10076)))
blanchet@57170
  1373
(let (($x22149 (= $x21115 $x22148)))
blanchet@57170
  1374
(let (($x9869 (forall ((?v0 B_S_ctype$) )(!(let ((?x9849 (b_S_kind_n_of$ ?v0)))
blanchet@57170
  1375
(let (($x9861 (= ?x9849 b_S_kind_n_array$)))
blanchet@57170
  1376
(let (($x7848 (b_S_is_n_arraytype$ ?v0)))
blanchet@57170
  1377
(= $x7848 $x9861)))) :pattern ( (b_S_is_n_arraytype$ ?v0) )))
blanchet@57170
  1378
))
blanchet@57170
  1379
(let (($x9861 (= ?x9849 b_S_kind_n_array$)))
blanchet@57170
  1380
(let (($x7848 (b_S_is_n_arraytype$ ?0)))
blanchet@57170
  1381
(let (($x9866 (= $x7848 $x9861)))
blanchet@57170
  1382
(let (($x9864 (forall ((?v0 B_S_ctype$) )(!(let ((?x9849 (b_S_kind_n_of$ ?v0)))
blanchet@57170
  1383
(let (($x9861 (= ?x9849 b_S_kind_n_array$)))
blanchet@57170
  1384
(let (($x7848 (b_S_is_n_arraytype$ ?v0)))
blanchet@57170
  1385
(= $x7848 $x9861)))) :pattern ( (b_S_is_n_arraytype$ ?v0) )))
blanchet@57170
  1386
))
blanchet@57170
  1387
(let ((@x9874 (mp (asserted $x9864) (quant-intro (rewrite (= (= $x7848 $x9861) $x9866)) (= $x9864 $x9869)) $x9869)))
blanchet@57170
  1388
(let ((@x15446 (mp~ @x9874 (nnf-pos (refl (~ $x9866 $x9866)) (~ $x9869 $x9869)) $x9869)))
blanchet@57170
  1389
(let (($x22159 (or (not $x9869) $x22149)))
blanchet@57170
  1390
(let ((@x22160 ((_ quant-inst (b_S_array$ b_T_T_u1$ v_b_P_H_len$)) $x22159)))
blanchet@57170
  1391
(let (($x7229 (forall ((?v0 B_S_ctype$) (?v1 Int) )(!(let ((?x6561 (b_S_array$ ?v0 ?v1)))
blanchet@57170
  1392
(b_S_is_n_arraytype$ ?x6561)) :pattern ( (b_S_array$ ?v0 ?v1) )))
blanchet@57170
  1393
))
blanchet@57170
  1394
(let ((?x6561 (b_S_array$ ?1 ?0)))
blanchet@57170
  1395
(let (($x7228 (b_S_is_n_arraytype$ ?x6561)))
blanchet@57170
  1396
(let ((@x14576 (mp~ (asserted $x7229) (nnf-pos (refl (~ $x7228 $x7228)) (~ $x7229 $x7229)) $x7229)))
blanchet@57170
  1397
(let (($x21122 (or (not $x7229) $x21115)))
blanchet@57170
  1398
(let ((@x21123 ((_ quant-inst b_T_T_u1$ v_b_P_H_len$) $x21122)))
blanchet@57170
  1399
(let ((@x22406 (unit-resolution (def-axiom (or (not $x22149) (not $x21115) $x22148)) (unit-resolution @x21123 @x14576 $x21115) (or (not $x22149) $x22148))))
blanchet@57170
  1400
(let ((?x21180 (b_S_typ$ ?x10080)))
blanchet@57170
  1401
(let (($x21183 (= ?x21180 ?x10076)))
blanchet@57170
  1402
(let (($x21188 (or $x21147 $x21183)))
blanchet@57170
  1403
(let ((@x21189 ((_ quant-inst (b_S_array$ b_T_T_u1$ v_b_P_H_len$) (b_S_ref$ ?x10078)) $x21188)))
blanchet@57170
  1404
(let ((@x22414 (trans (monotonicity @x24520 (= ?x22234 ?x21180)) (unit-resolution @x21189 @x19846 $x21183) (= ?x22234 ?x10076))))
blanchet@57170
  1405
(let ((@x22418 (trans (monotonicity @x22414 (= ?x22387 ?x10086)) (unit-resolution @x22406 (unit-resolution @x22160 @x15446 $x22149) $x22148) (= ?x22387 b_S_kind_n_array$))))
blanchet@57170
  1406
(let ((@x22857 (monotonicity @x22418 (= $x22388 (= b_S_kind_n_array$ b_S_kind_n_primitive$)))))
blanchet@57232
  1407
(let ((@x22500 (trans @x22857 (commutativity (= (= b_S_kind_n_array$ b_S_kind_n_primitive$) $x35)) (= $x22388 $x35))))
blanchet@57170
  1408
(let (($x41 (= b_S_kind_n_thread$ b_S_kind_n_array$)))
blanchet@57170
  1409
(let (($x42 (not $x41)))
blanchet@57170
  1410
(let (($x39 (= b_S_kind_n_composite$ b_S_kind_n_array$)))
blanchet@57170
  1411
(let (($x40 (not $x39)))
blanchet@57170
  1412
(let (($x37 (= b_S_kind_n_composite$ b_S_kind_n_thread$)))
blanchet@57170
  1413
(let (($x38 (not $x37)))
blanchet@57170
  1414
(let (($x32 (= b_S_kind_n_primitive$ b_S_kind_n_thread$)))
blanchet@57170
  1415
(let (($x33 (not $x32)))
blanchet@57170
  1416
(let (($x29 (= b_S_kind_n_primitive$ b_S_kind_n_composite$)))
blanchet@57170
  1417
(let (($x30 (not $x29)))
blanchet@57170
  1418
(let (($x67 (and $x30 $x33 $x36 $x38 $x40 $x42)))
blanchet@57170
  1419
(let (($x48 (and $x30 (and $x33 (and $x36 (and $x38 (and $x40 (and $x42 true))))))))
blanchet@57170
  1420
(let (($x68 (= (and $x30 (and $x33 (and $x36 (and $x38 (and $x40 $x42))))) $x67)))
blanchet@57170
  1421
(let (($x65 (= $x48 (and $x30 (and $x33 (and $x36 (and $x38 (and $x40 $x42))))))))
blanchet@57170
  1422
(let (($x62 (= (and $x33 (and $x36 (and $x38 (and $x40 (and $x42 true))))) (and $x33 (and $x36 (and $x38 (and $x40 $x42)))))))
blanchet@57170
  1423
(let (($x59 (= (and $x36 (and $x38 (and $x40 (and $x42 true)))) (and $x36 (and $x38 (and $x40 $x42))))))
blanchet@57170
  1424
(let (($x56 (= (and $x38 (and $x40 (and $x42 true))) (and $x38 (and $x40 $x42)))))
blanchet@57170
  1425
(let ((@x54 (monotonicity (rewrite (= (and $x42 true) $x42)) (= (and $x40 (and $x42 true)) (and $x40 $x42)))))
blanchet@57170
  1426
(let ((@x66 (monotonicity (monotonicity (monotonicity (monotonicity @x54 $x56) $x59) $x62) $x65)))
blanchet@57170
  1427
(let ((@x72 (mp (asserted $x48) (trans @x66 (rewrite $x68) (= $x48 $x67)) $x67)))
blanchet@57170
  1428
(let ((@x75 (and-elim @x72 $x36)))
blanchet@57170
  1429
(let (($x22333 (not $x22318)))
blanchet@57170
  1430
(let (($x22336 (not $x22317)))
blanchet@57170
  1431
(let ((@x22935 (monotonicity (symm (monotonicity @x24520 @x24520 (= $x22317 $x10136)) (= $x10136 $x22317)) (= $x11221 $x22336))))
blanchet@57170
  1432
(let ((@x22938 (unit-resolution (def-axiom (or (not $x22326) $x22317 $x22333)) (mp (hypothesis $x11221) @x22935 $x22336) (unit-resolution @x22613 @x15021 $x22326) $x22333)))
blanchet@57170
  1433
(let (($x22368 (b_S_is$ ?x21983 ?x22234)))
blanchet@57232
  1434
(let ((@x22885 (mp @x12044 (symm (monotonicity @x24520 @x22414 (= $x22368 $x10084)) (= $x10084 $x22368)) $x22368)))
blanchet@57170
  1435
(let (($x22385 (b_S_typed$ v_b_S_s$ ?x21983)))
blanchet@57170
  1436
(let ((@x12045 (and-elim @x12033 $x10085)))
blanchet@57232
  1437
(let ((@x22517 (mp @x12045 (symm (monotonicity @x24520 (= $x22385 $x10085)) (= $x10085 $x22385)) $x22385)))
blanchet@57170
  1438
(let ((?x22243 (b_S_owner$ v_b_S_s$ ?x21983)))
blanchet@57170
  1439
(let (($x22259 (= ?x22243 b_S_me$)))
blanchet@57170
  1440
(let ((@x12043 (and-elim @x12033 $x10083)))
blanchet@57170
  1441
(let ((@x12042 (and-elim @x12033 $x10081)))
blanchet@57170
  1442
(let ((@x22429 (mp @x12042 (symm (monotonicity @x24520 (= $x22248 $x10081)) (= $x10081 $x22248)) $x22248)))
blanchet@57170
  1443
(let (($x22235 (b_S_is_n_non_n_primitive$ ?x22234)))
blanchet@57170
  1444
(let ((@x12047 (and-elim @x12033 $x10089)))
blanchet@57170
  1445
(let ((@x22409 (mp @x12047 (symm (monotonicity @x22414 (= $x22235 $x10089)) (= $x10089 $x22235)) $x22235)))
blanchet@57170
  1446
(let ((@x12050 (and-elim @x12033 $x10097)))
blanchet@57170
  1447
(let (($x18905 (forall ((?v0 B_S_state$) (?v1 B_S_ptr$) )(!(let (($x8613 (b_S_in_n_domain$ ?v0 ?v1 ?v1)))
blanchet@57170
  1448
(let ((?x2247 (b_S_typ$ ?v1)))
blanchet@57170
  1449
(let (($x2351 (b_S_is_n_non_n_primitive$ ?x2247)))
blanchet@57170
  1450
(let (($x9239 (not $x2351)))
blanchet@57170
  1451
(let (($x2249 (= (b_S_kind_n_of$ ?x2247) b_S_kind_n_primitive$)))
blanchet@57170
  1452
(let (($x2488 (b_S_typed$ ?v0 ?v1)))
blanchet@57170
  1453
(let (($x9531 (not $x2488)))
blanchet@57170
  1454
(let (($x2487 (b_S_is$ ?v1 ?x2247)))
blanchet@57170
  1455
(let (($x16299 (not $x2487)))
blanchet@57170
  1456
(let ((?x2484 (b_S_owner$ ?v0 ?v1)))
blanchet@57170
  1457
(let (($x2486 (= ?x2484 b_S_me$)))
blanchet@57170
  1458
(let (($x16298 (not $x2486)))
blanchet@57170
  1459
(let (($x2471 (b_S_closed$ ?v0 ?v1)))
blanchet@57170
  1460
(let (($x9185 (not $x2471)))
blanchet@57170
  1461
(let (($x2687 (b_S_full_n_stop$ ?v0)))
blanchet@57170
  1462
(let (($x16426 (not $x2687)))
blanchet@57170
  1463
(or $x16426 $x9185 $x16298 $x16299 $x9531 $x2249 $x9239 $x8613))))))))))))))))) :pattern ( (b_S_in_n_domain$ ?v0 ?v1 ?v1) )))
blanchet@57170
  1464
))
blanchet@57170
  1465
(let (($x8634 (forall ((?v0 B_S_state$) (?v1 B_S_ptr$) )(!(let (($x8613 (b_S_in_n_domain$ ?v0 ?v1 ?v1)))
blanchet@57170
  1466
(let ((?x2247 (b_S_typ$ ?v1)))
blanchet@57170
  1467
(let (($x2351 (b_S_is_n_non_n_primitive$ ?x2247)))
blanchet@57170
  1468
(let (($x2249 (= (b_S_kind_n_of$ ?x2247) b_S_kind_n_primitive$)))
blanchet@57170
  1469
(let (($x2294 (not $x2249)))
blanchet@57170
  1470
(let (($x2488 (b_S_typed$ ?v0 ?v1)))
blanchet@57170
  1471
(let (($x2487 (b_S_is$ ?v1 ?x2247)))
blanchet@57170
  1472
(let ((?x2484 (b_S_owner$ ?v0 ?v1)))
blanchet@57170
  1473
(let (($x2486 (= ?x2484 b_S_me$)))
blanchet@57170
  1474
(let (($x2471 (b_S_closed$ ?v0 ?v1)))
blanchet@57170
  1475
(let (($x2687 (b_S_full_n_stop$ ?v0)))
blanchet@57170
  1476
(let (($x8625 (and $x2687 $x2471 $x2486 $x2487 $x2488 $x2294 $x2351)))
blanchet@57170
  1477
(let (($x8628 (not $x8625)))
blanchet@57170
  1478
(or $x8628 $x8613)))))))))))))) :pattern ( (b_S_in_n_domain$ ?v0 ?v1 ?v1) )))
blanchet@57170
  1479
))
blanchet@57170
  1480
(let (($x8613 (b_S_in_n_domain$ ?1 ?0 ?0)))
blanchet@57170
  1481
(let ((?x2247 (b_S_typ$ ?0)))
blanchet@57170
  1482
(let (($x2351 (b_S_is_n_non_n_primitive$ ?x2247)))
blanchet@57170
  1483
(let (($x9239 (not $x2351)))
blanchet@57170
  1484
(let (($x2249 (= (b_S_kind_n_of$ ?x2247) b_S_kind_n_primitive$)))
blanchet@57170
  1485
(let (($x2488 (b_S_typed$ ?1 ?0)))
blanchet@57170
  1486
(let (($x9531 (not $x2488)))
blanchet@57170
  1487
(let (($x2487 (b_S_is$ ?0 ?x2247)))
blanchet@57170
  1488
(let (($x16299 (not $x2487)))
blanchet@57170
  1489
(let ((?x2484 (b_S_owner$ ?1 ?0)))
blanchet@57170
  1490
(let (($x2486 (= ?x2484 b_S_me$)))
blanchet@57170
  1491
(let (($x16298 (not $x2486)))
blanchet@57170
  1492
(let (($x2471 (b_S_closed$ ?1 ?0)))
blanchet@57170
  1493
(let (($x9185 (not $x2471)))
blanchet@57170
  1494
(let (($x2687 (b_S_full_n_stop$ ?1)))
blanchet@57170
  1495
(let (($x16426 (not $x2687)))
blanchet@57170
  1496
(let (($x18900 (or $x16426 $x9185 $x16298 $x16299 $x9531 $x2249 $x9239 $x8613)))
blanchet@57170
  1497
(let (($x2294 (not $x2249)))
blanchet@57170
  1498
(let (($x8625 (and $x2687 $x2471 $x2486 $x2487 $x2488 $x2294 $x2351)))
blanchet@57170
  1499
(let (($x8628 (not $x8625)))
blanchet@57170
  1500
(let (($x8631 (or $x8628 $x8613)))
blanchet@57170
  1501
(let ((@x18902 (rewrite (= (or (or $x16426 $x9185 $x16298 $x16299 $x9531 $x2249 $x9239) $x8613) $x18900))))
blanchet@57170
  1502
(let (($x18886 (or $x16426 $x9185 $x16298 $x16299 $x9531 $x2249 $x9239)))
blanchet@57170
  1503
(let ((@x18892 (monotonicity (rewrite (= $x8625 (not $x18886))) (= $x8628 (not (not $x18886))))))
blanchet@57170
  1504
(let ((@x18899 (monotonicity (trans @x18892 (rewrite (= (not (not $x18886)) $x18886)) (= $x8628 $x18886)) (= $x8631 (or $x18886 $x8613)))))
blanchet@57170
  1505
(let (($x8616 (forall ((?v0 B_S_state$) (?v1 B_S_ptr$) )(!(let (($x8613 (b_S_in_n_domain$ ?v0 ?v1 ?v1)))
blanchet@57170
  1506
(let ((?x2247 (b_S_typ$ ?v1)))
blanchet@57170
  1507
(let (($x2351 (b_S_is_n_non_n_primitive$ ?x2247)))
blanchet@57170
  1508
(let (($x2249 (= (b_S_kind_n_of$ ?x2247) b_S_kind_n_primitive$)))
blanchet@57170
  1509
(let (($x2294 (not $x2249)))
blanchet@57170
  1510
(let (($x2488 (b_S_typed$ ?v0 ?v1)))
blanchet@57170
  1511
(let (($x2487 (b_S_is$ ?v1 ?x2247)))
blanchet@57170
  1512
(let ((?x2484 (b_S_owner$ ?v0 ?v1)))
blanchet@57170
  1513
(let (($x2486 (= ?x2484 b_S_me$)))
blanchet@57170
  1514
(let (($x2471 (b_S_closed$ ?v0 ?v1)))
blanchet@57170
  1515
(let (($x2687 (b_S_full_n_stop$ ?v0)))
blanchet@57170
  1516
(let (($x8612 (and $x2687 (and $x2471 (and $x2486 (and $x2487 (and $x2488 (and $x2294 $x2351))))))))
blanchet@57170
  1517
(=> $x8612 $x8613))))))))))))) :pattern ( (b_S_in_n_domain$ ?v0 ?v1 ?v1) )))
blanchet@57170
  1518
))
blanchet@57170
  1519
(let (($x8622 (forall ((?v0 B_S_state$) (?v1 B_S_ptr$) )(!(let (($x8613 (b_S_in_n_domain$ ?v0 ?v1 ?v1)))
blanchet@57170
  1520
(let ((?x2247 (b_S_typ$ ?v1)))
blanchet@57170
  1521
(let (($x2351 (b_S_is_n_non_n_primitive$ ?x2247)))
blanchet@57170
  1522
(let (($x2249 (= (b_S_kind_n_of$ ?x2247) b_S_kind_n_primitive$)))
blanchet@57170
  1523
(let (($x2294 (not $x2249)))
blanchet@57170
  1524
(let (($x2488 (b_S_typed$ ?v0 ?v1)))
blanchet@57170
  1525
(let (($x2487 (b_S_is$ ?v1 ?x2247)))
blanchet@57170
  1526
(let ((?x2484 (b_S_owner$ ?v0 ?v1)))
blanchet@57170
  1527
(let (($x2486 (= ?x2484 b_S_me$)))
blanchet@57170
  1528
(let (($x2471 (b_S_closed$ ?v0 ?v1)))
blanchet@57170
  1529
(let (($x2687 (b_S_full_n_stop$ ?v0)))
blanchet@57170
  1530
(let (($x8612 (and $x2687 (and $x2471 (and $x2486 (and $x2487 (and $x2488 (and $x2294 $x2351))))))))
blanchet@57170
  1531
(or (not $x8612) $x8613))))))))))))) :pattern ( (b_S_in_n_domain$ ?v0 ?v1 ?v1) )))
blanchet@57170
  1532
))
blanchet@57170
  1533
(let (($x8612 (and $x2687 (and $x2471 (and $x2486 (and $x2487 (and $x2488 (and $x2294 $x2351))))))))
blanchet@57170
  1534
(let (($x8619 (or (not $x8612) $x8613)))
blanchet@57170
  1535
(let ((@x8633 (monotonicity (monotonicity (rewrite (= $x8612 $x8625)) (= (not $x8612) $x8628)) (= $x8619 $x8631))))
blanchet@57170
  1536
(let ((@x8638 (trans (quant-intro (rewrite (= (=> $x8612 $x8613) $x8619)) (= $x8616 $x8622)) (quant-intro @x8633 (= $x8622 $x8634)) (= $x8616 $x8634))))
blanchet@57170
  1537
(let ((@x14989 (mp~ (mp (asserted $x8616) @x8638 $x8634) (nnf-pos (refl (~ $x8631 $x8631)) (~ $x8634 $x8634)) $x8634)))
blanchet@57170
  1538
(let ((@x18908 (mp @x14989 (quant-intro (trans @x18899 @x18902 (= $x8631 $x18900)) (= $x8634 $x18905)) $x18905)))
blanchet@57170
  1539
(let (($x22242 (not $x22235)))
blanchet@57170
  1540
(let (($x22386 (not $x22385)))
blanchet@57170
  1541
(let (($x22384 (not $x22368)))
blanchet@57170
  1542
(let (($x24309 (or (not $x18905) $x19677 $x22272 (not $x22259) $x22384 $x22386 $x22388 $x22242 $x22318)))
blanchet@57232
  1543
(let (($x22614 (= (or (not $x18905) (or $x19677 $x22272 (not $x22259) $x22384 $x22386 $x22388 $x22242 $x22318)) $x24309)))
blanchet@57170
  1544
(let ((@x24028 ((_ quant-inst v_b_S_s$ (b_S_ptr$ ?x10076 ?x21014)) (or (not $x18905) (or $x19677 $x22272 (not $x22259) $x22384 $x22386 $x22388 $x22242 $x22318)))))
blanchet@57232
  1545
(let ((@x24070 (mp @x24028 (rewrite $x22614) $x24309)))
blanchet@57232
  1546
(let ((@x22410 (unit-resolution @x24070 @x18908 @x12050 @x22409 @x22429 (trans (monotonicity @x24520 (= ?x22243 ?x10082)) @x12043 $x22259) (or $x22384 $x22386 $x22388 $x22318))))
blanchet@57232
  1547
(let ((@x22411 (unit-resolution @x22410 @x22517 @x22885 @x22938 (mp @x75 (monotonicity (symm @x22500 (= $x35 $x22388)) $x22488) (not $x22388)) false)))
blanchet@57170
  1548
(let ((@x22434 (lemma @x22411 $x10136)))
blanchet@57170
  1549
(let ((@x22687 (mp @x22434 (symm (monotonicity @x24520 @x24520 (= $x22317 $x10136)) (= $x10136 $x22317)) $x22317)))
blanchet@57170
  1550
(let ((@x22688 (unit-resolution (def-axiom (or (not $x22326) $x22336 $x22318)) @x22687 (unit-resolution @x22613 @x15021 $x22326) $x22318)))
blanchet@57170
  1551
(let (($x22366 (or $x22333 $x22365)))
blanchet@57170
  1552
(let (($x18945 (forall ((?v0 B_S_state$) (?v1 B_S_ptr$) (?v2 B_S_ptr$) )(!(let (($x18929 (forall ((?v3 B_S_ptr$) )(!(let (($x8646 (b_S_set_n_in2$ ?v3 (b_S_ver_n_domain$ (b_S_read_n_version$ ?v0 ?v2)))))
blanchet@57170
  1553
(let ((?x6628 (b_S_typ$ ?v1)))
blanchet@57170
  1554
(let (($x8640 (b_S_has_n_volatile_n_owns_n_set$ ?x6628)))
blanchet@57170
  1555
(or $x8640 (not (b_S_set_n_in$ ?v3 (b_S_owns$ ?v0 ?v1))) $x8646)))) :pattern ( (b_S_set_n_in$ ?v3 (b_S_owns$ ?v0 ?v1)) )))
blanchet@57170
  1556
))
blanchet@57170
  1557
(let (($x2554 (b_S_closed$ ?v0 ?v1)))
blanchet@57170
  1558
(let (($x8955 (not $x2554)))
blanchet@57170
  1559
(let (($x8428 (b_S_set_n_in$ ?v1 (b_S_domain$ ?v0 ?v2))))
blanchet@57170
  1560
(let (($x18744 (not $x8428)))
blanchet@57170
  1561
(let (($x18937 (not (or $x18744 $x8955 (not $x18929)))))
blanchet@57170
  1562
(let (($x8461 (b_S_in_n_domain$ ?v0 ?v1 ?v2)))
blanchet@57170
  1563
(let (($x8672 (not $x8461)))
blanchet@57170
  1564
(or $x8672 $x18937))))))))) :pattern ( (b_S_in_n_domain$ ?v0 ?v1 ?v2) )))
blanchet@57170
  1565
))
blanchet@57170
  1566
(let (($x8687 (forall ((?v0 B_S_state$) (?v1 B_S_ptr$) (?v2 B_S_ptr$) )(!(let (($x8660 (forall ((?v3 B_S_ptr$) )(!(let (($x8646 (b_S_set_n_in2$ ?v3 (b_S_ver_n_domain$ (b_S_read_n_version$ ?v0 ?v2)))))
blanchet@57170
  1567
(let (($x8643 (b_S_set_n_in$ ?v3 (b_S_owns$ ?v0 ?v1))))
blanchet@57170
  1568
(let (($x8644 (and (not (b_S_has_n_volatile_n_owns_n_set$ (b_S_typ$ ?v1))) $x8643)))
blanchet@57170
  1569
(let (($x8656 (not $x8644)))
blanchet@57170
  1570
(or $x8656 $x8646))))) :pattern ( (b_S_set_n_in$ ?v3 (b_S_owns$ ?v0 ?v1)) )))
blanchet@57170
  1571
))
blanchet@57170
  1572
(let (($x2554 (b_S_closed$ ?v0 ?v1)))
blanchet@57170
  1573
(let (($x8428 (b_S_set_n_in$ ?v1 (b_S_domain$ ?v0 ?v2))))
blanchet@57170
  1574
(let (($x8681 (and $x8428 $x2554 $x8660)))
blanchet@57170
  1575
(let (($x8461 (b_S_in_n_domain$ ?v0 ?v1 ?v2)))
blanchet@57170
  1576
(let (($x8672 (not $x8461)))
blanchet@57170
  1577
(or $x8672 $x8681))))))) :pattern ( (b_S_in_n_domain$ ?v0 ?v1 ?v2) )))
blanchet@57170
  1578
))
blanchet@57170
  1579
(let (($x18929 (forall ((?v3 B_S_ptr$) )(!(let (($x8646 (b_S_set_n_in2$ ?v3 (b_S_ver_n_domain$ (b_S_read_n_version$ ?2 ?0)))))
blanchet@57170
  1580
(let ((?x6628 (b_S_typ$ ?1)))
blanchet@57170
  1581
(let (($x8640 (b_S_has_n_volatile_n_owns_n_set$ ?x6628)))
blanchet@57170
  1582
(or $x8640 (not (b_S_set_n_in$ ?v3 (b_S_owns$ ?2 ?1))) $x8646)))) :pattern ( (b_S_set_n_in$ ?v3 (b_S_owns$ ?2 ?1)) )))
blanchet@57170
  1583
))
blanchet@57170
  1584
(let (($x2554 (b_S_closed$ ?2 ?1)))
blanchet@57170
  1585
(let (($x8955 (not $x2554)))
blanchet@57170
  1586
(let (($x8428 (b_S_set_n_in$ ?1 (b_S_domain$ ?2 ?0))))
blanchet@57170
  1587
(let (($x18744 (not $x8428)))
blanchet@57170
  1588
(let (($x18937 (not (or $x18744 $x8955 (not $x18929)))))
blanchet@57170
  1589
(let (($x8461 (b_S_in_n_domain$ ?2 ?1 ?0)))
blanchet@57170
  1590
(let (($x8672 (not $x8461)))
blanchet@57170
  1591
(let (($x8660 (forall ((?v3 B_S_ptr$) )(!(let (($x8646 (b_S_set_n_in2$ ?v3 (b_S_ver_n_domain$ (b_S_read_n_version$ ?2 ?0)))))
blanchet@57170
  1592
(let (($x8643 (b_S_set_n_in$ ?v3 (b_S_owns$ ?2 ?1))))
blanchet@57170
  1593
(let (($x8644 (and (not (b_S_has_n_volatile_n_owns_n_set$ (b_S_typ$ ?1))) $x8643)))
blanchet@57170
  1594
(let (($x8656 (not $x8644)))
blanchet@57170
  1595
(or $x8656 $x8646))))) :pattern ( (b_S_set_n_in$ ?v3 (b_S_owns$ ?2 ?1)) )))
blanchet@57170
  1596
))
blanchet@57170
  1597
(let (($x8681 (and $x8428 $x2554 $x8660)))
blanchet@57170
  1598
(let (($x8684 (or $x8672 $x8681)))
blanchet@57170
  1599
(let (($x8646 (b_S_set_n_in2$ ?0 (b_S_ver_n_domain$ (b_S_read_n_version$ ?3 ?1)))))
blanchet@57170
  1600
(let ((?x6628 (b_S_typ$ ?2)))
blanchet@57170
  1601
(let (($x8640 (b_S_has_n_volatile_n_owns_n_set$ ?x6628)))
blanchet@57170
  1602
(let (($x18924 (or $x8640 (not (b_S_set_n_in$ ?0 (b_S_owns$ ?3 ?2))) $x8646)))
blanchet@57170
  1603
(let (($x8643 (b_S_set_n_in$ ?0 (b_S_owns$ ?3 ?2))))
blanchet@57170
  1604
(let (($x8644 (and (not $x8640) $x8643)))
blanchet@57170
  1605
(let (($x8656 (not $x8644)))
blanchet@57170
  1606
(let (($x8657 (or $x8656 $x8646)))
blanchet@57170
  1607
(let ((@x18918 (rewrite (= (not (not (or $x8640 (not $x8643)))) (or $x8640 (not $x8643))))))
blanchet@57170
  1608
(let ((@x18916 (monotonicity (rewrite (= $x8644 (not (or $x8640 (not $x8643))))) (= $x8656 (not (not (or $x8640 (not $x8643))))))))
blanchet@57170
  1609
(let ((@x18923 (monotonicity (trans @x18916 @x18918 (= $x8656 (or $x8640 (not $x8643)))) (= $x8657 (or (or $x8640 (not $x8643)) $x8646)))))
blanchet@57170
  1610
(let ((@x18928 (trans @x18923 (rewrite (= (or (or $x8640 (not $x8643)) $x8646) $x18924)) (= $x8657 $x18924))))
blanchet@57170
  1611
(let ((@x18934 (monotonicity (quant-intro @x18928 (= $x8660 $x18929)) (= $x8681 (and $x8428 $x2554 $x18929)))))
blanchet@57170
  1612
(let ((@x18941 (trans @x18934 (rewrite (= (and $x8428 $x2554 $x18929) $x18937)) (= $x8681 $x18937))))
blanchet@57170
  1613
(let ((@x18947 (quant-intro (monotonicity @x18941 (= $x8684 (or $x8672 $x18937))) (= $x8687 $x18945))))
blanchet@57170
  1614
(let ((@x15001 (monotonicity (refl (~ $x8428 $x8428)) (refl (~ $x2554 $x2554)) (nnf-pos (refl (~ $x8657 $x8657)) (~ $x8660 $x8660)) (~ $x8681 $x8681))))
blanchet@57170
  1615
(let ((@x15005 (nnf-pos (monotonicity (refl (~ $x8672 $x8672)) @x15001 (~ $x8684 $x8684)) (~ $x8687 $x8687))))
blanchet@57170
  1616
(let (($x8654 (forall ((?v0 B_S_state$) (?v1 B_S_ptr$) (?v2 B_S_ptr$) )(!(let (($x8649 (forall ((?v3 B_S_ptr$) )(!(let (($x8646 (b_S_set_n_in2$ ?v3 (b_S_ver_n_domain$ (b_S_read_n_version$ ?v0 ?v2)))))
blanchet@57170
  1617
(let (($x8643 (b_S_set_n_in$ ?v3 (b_S_owns$ ?v0 ?v1))))
blanchet@57170
  1618
(let (($x8644 (and (not (b_S_has_n_volatile_n_owns_n_set$ (b_S_typ$ ?v1))) $x8643)))
blanchet@57170
  1619
(=> $x8644 $x8646)))) :pattern ( (b_S_set_n_in$ ?v3 (b_S_owns$ ?v0 ?v1)) )))
blanchet@57170
  1620
))
blanchet@57170
  1621
(let (($x2554 (b_S_closed$ ?v0 ?v1)))
blanchet@57170
  1622
(let (($x8428 (b_S_set_n_in$ ?v1 (b_S_domain$ ?v0 ?v2))))
blanchet@57170
  1623
(let (($x8461 (b_S_in_n_domain$ ?v0 ?v1 ?v2)))
blanchet@57170
  1624
(=> $x8461 (and $x8428 (and $x2554 $x8649))))))) :pattern ( (b_S_in_n_domain$ ?v0 ?v1 ?v2) )))
blanchet@57170
  1625
))
blanchet@57170
  1626
(let (($x8678 (forall ((?v0 B_S_state$) (?v1 B_S_ptr$) (?v2 B_S_ptr$) )(!(let (($x8660 (forall ((?v3 B_S_ptr$) )(!(let (($x8646 (b_S_set_n_in2$ ?v3 (b_S_ver_n_domain$ (b_S_read_n_version$ ?v0 ?v2)))))
blanchet@57170
  1627
(let (($x8643 (b_S_set_n_in$ ?v3 (b_S_owns$ ?v0 ?v1))))
blanchet@57170
  1628
(let (($x8644 (and (not (b_S_has_n_volatile_n_owns_n_set$ (b_S_typ$ ?v1))) $x8643)))
blanchet@57170
  1629
(let (($x8656 (not $x8644)))
blanchet@57170
  1630
(or $x8656 $x8646))))) :pattern ( (b_S_set_n_in$ ?v3 (b_S_owns$ ?v0 ?v1)) )))
blanchet@57170
  1631
))
blanchet@57170
  1632
(let (($x2554 (b_S_closed$ ?v0 ?v1)))
blanchet@57170
  1633
(let (($x8428 (b_S_set_n_in$ ?v1 (b_S_domain$ ?v0 ?v2))))
blanchet@57170
  1634
(let (($x8666 (and $x8428 (and $x2554 $x8660))))
blanchet@57170
  1635
(let (($x8461 (b_S_in_n_domain$ ?v0 ?v1 ?v2)))
blanchet@57170
  1636
(let (($x8672 (not $x8461)))
blanchet@57170
  1637
(or $x8672 $x8666))))))) :pattern ( (b_S_in_n_domain$ ?v0 ?v1 ?v2) )))
blanchet@57170
  1638
))
blanchet@57170
  1639
(let ((@x8686 (monotonicity (rewrite (= (and $x8428 (and $x2554 $x8660)) $x8681)) (= (or $x8672 (and $x8428 (and $x2554 $x8660))) $x8684))))
blanchet@57170
  1640
(let (($x8666 (and $x8428 (and $x2554 $x8660))))
blanchet@57170
  1641
(let (($x8673 (or $x8672 $x8666)))
blanchet@57170
  1642
(let (($x8649 (forall ((?v3 B_S_ptr$) )(!(let (($x8646 (b_S_set_n_in2$ ?v3 (b_S_ver_n_domain$ (b_S_read_n_version$ ?2 ?0)))))
blanchet@57170
  1643
(let (($x8643 (b_S_set_n_in$ ?v3 (b_S_owns$ ?2 ?1))))
blanchet@57170
  1644
(let (($x8644 (and (not (b_S_has_n_volatile_n_owns_n_set$ (b_S_typ$ ?1))) $x8643)))
blanchet@57170
  1645
(=> $x8644 $x8646)))) :pattern ( (b_S_set_n_in$ ?v3 (b_S_owns$ ?2 ?1)) )))
blanchet@57170
  1646
))
blanchet@57170
  1647
(let (($x8652 (=> $x8461 (and $x8428 (and $x2554 $x8649)))))
blanchet@57170
  1648
(let ((@x8665 (monotonicity (quant-intro (rewrite (= (=> $x8644 $x8646) $x8657)) (= $x8649 $x8660)) (= (and $x2554 $x8649) (and $x2554 $x8660)))))
blanchet@57170
  1649
(let ((@x8671 (monotonicity (monotonicity @x8665 (= (and $x8428 (and $x2554 $x8649)) $x8666)) (= $x8652 (=> $x8461 $x8666)))))
blanchet@57170
  1650
(let ((@x8680 (quant-intro (trans @x8671 (rewrite (= (=> $x8461 $x8666) $x8673)) (= $x8652 $x8673)) (= $x8654 $x8678))))
blanchet@57170
  1651
(let ((@x8692 (mp (asserted $x8654) (trans @x8680 (quant-intro @x8686 (= $x8678 $x8687)) (= $x8654 $x8687)) $x8687)))
blanchet@57170
  1652
(let ((@x18948 (mp (mp~ @x8692 @x15005 $x8687) @x18947 $x18945)))
blanchet@57170
  1653
(let (($x22607 (or (not $x18945) $x22333 $x22365)))
blanchet@57170
  1654
(let ((@x22329 (mp ((_ quant-inst v_b_S_s$ (b_S_ptr$ ?x10076 ?x21014) (b_S_ptr$ ?x10076 ?x21014)) (or (not $x18945) $x22366)) (rewrite (= (or (not $x18945) $x22366) $x22607)) $x22607)))
blanchet@57170
  1655
(let ((@x22691 (unit-resolution (def-axiom (or $x22364 $x22344)) (unit-resolution (unit-resolution @x22329 @x18948 $x22366) @x22688 $x22365) $x22344)))
blanchet@57170
  1656
(let ((@x12041 (and-elim @x12033 $x11260)))
blanchet@57170
  1657
(let (($x18667 (forall ((?v0 B_S_state$) (?v1 Int) (?v2 B_S_ptr$) (?v3 Int) (?v4 Int) (?v5 B_S_ctype$) )(!(let ((?x8245 (b_S_idx$ (b_S_ptr$ ?v5 ?v1) ?v4 ?v5)))
blanchet@57170
  1658
(let ((?x7097 (b_S_typemap$ ?v0)))
blanchet@57170
  1659
(let (($x18655 (or (not (b_S_typed$ ?v0 ?x8245)) (b_S_ts_n_is_n_volatile$ (b_S_select_o_tm$ ?x7097 ?x8245)))))
blanchet@57170
  1660
(let (($x18656 (not $x18655)))
blanchet@57170
  1661
(let (($x5403 (>= (+ ?v4 (* (- 1) ?v3)) 0)))
blanchet@57170
  1662
(let (($x3057 (>= ?v4 0)))
blanchet@57170
  1663
(let (($x16520 (not $x3057)))
blanchet@57170
  1664
(let (($x8240 (b_S_set_n_in$ (b_S_ptr$ (b_S_array$ ?v5 ?v3) ?v1) (b_S_domain$ ?v0 ?v2))))
blanchet@57170
  1665
(let (($x18630 (not $x8240)))
blanchet@57170
  1666
(let (($x2704 (b_S_is_n_primitive$ ?v5)))
blanchet@57170
  1667
(let (($x8855 (not $x2704)))
blanchet@57170
  1668
(let (($x8236 (b_S_full_n_stop$ ?v0)))
blanchet@57170
  1669
(let (($x18629 (not $x8236)))
blanchet@57170
  1670
(or $x18629 $x8855 $x18630 $x16520 $x5403 $x18656)))))))))))))) :pattern ( (b_S_set_n_in$ (b_S_ptr$ (b_S_array$ ?v5 ?v3) ?v1) (b_S_domain$ ?v0 ?v2)) (b_S_select_o_tm$ (b_S_typemap$ ?v0) (b_S_idx$ (b_S_ptr$ ?v5 ?v1) ?v4 ?v5)) (b_S_is_n_primitive$ ?v5) ) :pattern ( (b_S_set_n_in$ (b_S_ptr$ (b_S_array$ ?v5 ?v3) ?v1) (b_S_domain$ ?v0 ?v2)) (b_S_owner$ ?v0 (b_S_idx$ (b_S_ptr$ ?v5 ?v1) ?v4 ?v5)) (b_S_is_n_primitive$ ?v5) )))
blanchet@57170
  1671
))
blanchet@57170
  1672
(let (($x8307 (forall ((?v0 B_S_state$) (?v1 Int) (?v2 B_S_ptr$) (?v3 Int) (?v4 Int) (?v5 B_S_ctype$) )(!(let ((?x8245 (b_S_idx$ (b_S_ptr$ ?v5 ?v1) ?v4 ?v5)))
blanchet@57170
  1673
(let ((?x7097 (b_S_typemap$ ?v0)))
blanchet@57170
  1674
(let (($x8291 (and (b_S_typed$ ?v0 ?x8245) (not (b_S_ts_n_is_n_volatile$ (b_S_select_o_tm$ ?x7097 ?x8245))))))
blanchet@57170
  1675
(let (($x5403 (>= (+ ?v4 (* (- 1) ?v3)) 0)))
blanchet@57170
  1676
(let (($x6757 (not $x5403)))
blanchet@57170
  1677
(let (($x3057 (>= ?v4 0)))
blanchet@57170
  1678
(let (($x8240 (b_S_set_n_in$ (b_S_ptr$ (b_S_array$ ?v5 ?v3) ?v1) (b_S_domain$ ?v0 ?v2))))
blanchet@57170
  1679
(let (($x2704 (b_S_is_n_primitive$ ?v5)))
blanchet@57170
  1680
(let (($x8236 (b_S_full_n_stop$ ?v0)))
blanchet@57170
  1681
(let (($x8270 (and $x8236 $x2704 $x8240 $x3057 $x6757)))
blanchet@57170
  1682
(let (($x8275 (not $x8270)))
blanchet@57170
  1683
(or $x8275 $x8291)))))))))))) :pattern ( (b_S_set_n_in$ (b_S_ptr$ (b_S_array$ ?v5 ?v3) ?v1) (b_S_domain$ ?v0 ?v2)) (b_S_select_o_tm$ (b_S_typemap$ ?v0) (b_S_idx$ (b_S_ptr$ ?v5 ?v1) ?v4 ?v5)) (b_S_is_n_primitive$ ?v5) ) :pattern ( (b_S_set_n_in$ (b_S_ptr$ (b_S_array$ ?v5 ?v3) ?v1) (b_S_domain$ ?v0 ?v2)) (b_S_owner$ ?v0 (b_S_idx$ (b_S_ptr$ ?v5 ?v1) ?v4 ?v5)) (b_S_is_n_primitive$ ?v5) )))
blanchet@57170
  1684
))
blanchet@57170
  1685
(let ((?x8245 (b_S_idx$ (b_S_ptr$ ?0 ?4) ?1 ?0)))
blanchet@57170
  1686
(let ((?x7097 (b_S_typemap$ ?5)))
blanchet@57170
  1687
(let (($x18655 (or (not (b_S_typed$ ?5 ?x8245)) (b_S_ts_n_is_n_volatile$ (b_S_select_o_tm$ ?x7097 ?x8245)))))
blanchet@57170
  1688
(let (($x18656 (not $x18655)))
blanchet@57170
  1689
(let (($x5403 (>= (+ ?1 (* (- 1) ?2)) 0)))
blanchet@57170
  1690
(let (($x3057 (>= ?1 0)))
blanchet@57170
  1691
(let (($x16520 (not $x3057)))
blanchet@57170
  1692
(let (($x8240 (b_S_set_n_in$ (b_S_ptr$ (b_S_array$ ?0 ?2) ?4) (b_S_domain$ ?5 ?3))))
blanchet@57170
  1693
(let (($x18630 (not $x8240)))
blanchet@57170
  1694
(let (($x8855 (not $x2704)))
blanchet@57170
  1695
(let (($x8236 (b_S_full_n_stop$ ?5)))
blanchet@57170
  1696
(let (($x18629 (not $x8236)))
blanchet@57170
  1697
(let (($x18662 (or $x18629 $x8855 $x18630 $x16520 $x5403 $x18656)))
blanchet@57170
  1698
(let (($x8291 (and (b_S_typed$ ?5 ?x8245) (not (b_S_ts_n_is_n_volatile$ (b_S_select_o_tm$ ?x7097 ?x8245))))))
blanchet@57170
  1699
(let (($x6757 (not $x5403)))
blanchet@57170
  1700
(let (($x8270 (and $x8236 $x2704 $x8240 $x3057 $x6757)))
blanchet@57170
  1701
(let (($x8275 (not $x8270)))
blanchet@57170
  1702
(let (($x8304 (or $x8275 $x8291)))
blanchet@57170
  1703
(let (($x18631 (or $x18629 $x8855 $x18630 $x16520 $x5403)))
blanchet@57170
  1704
(let ((@x18637 (monotonicity (rewrite (= $x8270 (not $x18631))) (= $x8275 (not (not $x18631))))))
blanchet@57170
  1705
(let ((@x18661 (monotonicity (trans @x18637 (rewrite (= (not (not $x18631)) $x18631)) (= $x8275 $x18631)) (rewrite (= $x8291 $x18656)) (= $x8304 (or $x18631 $x18656)))))
blanchet@57170
  1706
(let ((@x18669 (quant-intro (trans @x18661 (rewrite (= (or $x18631 $x18656) $x18662)) (= $x8304 $x18662)) (= $x8307 $x18667))))
blanchet@57170
  1707
(let (($x8296 (forall ((?v0 B_S_state$) (?v1 Int) (?v2 B_S_ptr$) (?v3 Int) (?v4 Int) (?v5 B_S_ctype$) )(!(let ((?x8245 (b_S_idx$ (b_S_ptr$ ?v5 ?v1) ?v4 ?v5)))
blanchet@57170
  1708
(let ((?x7097 (b_S_typemap$ ?v0)))
blanchet@57170
  1709
(let (($x8291 (and (b_S_typed$ ?v0 ?x8245) (not (b_S_ts_n_is_n_volatile$ (b_S_select_o_tm$ ?x7097 ?x8245))))))
blanchet@57170
  1710
(let (($x3027 (<= 0 ?v4)))
blanchet@57170
  1711
(let (($x6740 (and $x3027 (< ?v4 ?v3))))
blanchet@57170
  1712
(let (($x8240 (b_S_set_n_in$ (b_S_ptr$ (b_S_array$ ?v5 ?v3) ?v1) (b_S_domain$ ?v0 ?v2))))
blanchet@57170
  1713
(let (($x2704 (b_S_is_n_primitive$ ?v5)))
blanchet@57170
  1714
(let (($x8236 (b_S_full_n_stop$ ?v0)))
blanchet@57170
  1715
(let (($x8243 (and $x8236 (and $x2704 (and $x8240 $x6740)))))
blanchet@57170
  1716
(=> $x8243 $x8291)))))))))) :pattern ( (b_S_set_n_in$ (b_S_ptr$ (b_S_array$ ?v5 ?v3) ?v1) (b_S_domain$ ?v0 ?v2)) (b_S_select_o_tm$ (b_S_typemap$ ?v0) (b_S_idx$ (b_S_ptr$ ?v5 ?v1) ?v4 ?v5)) (b_S_is_n_primitive$ ?v5) ) :pattern ( (b_S_set_n_in$ (b_S_ptr$ (b_S_array$ ?v5 ?v3) ?v1) (b_S_domain$ ?v0 ?v2)) (b_S_owner$ ?v0 (b_S_idx$ (b_S_ptr$ ?v5 ?v1) ?v4 ?v5)) (b_S_is_n_primitive$ ?v5) )))
blanchet@57170
  1717
))
blanchet@57170
  1718
(let (($x8301 (forall ((?v0 B_S_state$) (?v1 Int) (?v2 B_S_ptr$) (?v3 Int) (?v4 Int) (?v5 B_S_ctype$) )(!(let ((?x8245 (b_S_idx$ (b_S_ptr$ ?v5 ?v1) ?v4 ?v5)))
blanchet@57170
  1719
(let ((?x7097 (b_S_typemap$ ?v0)))
blanchet@57170
  1720
(let (($x8291 (and (b_S_typed$ ?v0 ?x8245) (not (b_S_ts_n_is_n_volatile$ (b_S_select_o_tm$ ?x7097 ?x8245))))))
blanchet@57170
  1721
(let (($x3027 (<= 0 ?v4)))
blanchet@57170
  1722
(let (($x6740 (and $x3027 (< ?v4 ?v3))))
blanchet@57170
  1723
(let (($x8240 (b_S_set_n_in$ (b_S_ptr$ (b_S_array$ ?v5 ?v3) ?v1) (b_S_domain$ ?v0 ?v2))))
blanchet@57170
  1724
(let (($x2704 (b_S_is_n_primitive$ ?v5)))
blanchet@57170
  1725
(let (($x8236 (b_S_full_n_stop$ ?v0)))
blanchet@57170
  1726
(let (($x8243 (and $x8236 (and $x2704 (and $x8240 $x6740)))))
blanchet@57170
  1727
(let (($x8254 (not $x8243)))
blanchet@57170
  1728
(or $x8254 $x8291))))))))))) :pattern ( (b_S_set_n_in$ (b_S_ptr$ (b_S_array$ ?v5 ?v3) ?v1) (b_S_domain$ ?v0 ?v2)) (b_S_select_o_tm$ (b_S_typemap$ ?v0) (b_S_idx$ (b_S_ptr$ ?v5 ?v1) ?v4 ?v5)) (b_S_is_n_primitive$ ?v5) ) :pattern ( (b_S_set_n_in$ (b_S_ptr$ (b_S_array$ ?v5 ?v3) ?v1) (b_S_domain$ ?v0 ?v2)) (b_S_owner$ ?v0 (b_S_idx$ (b_S_ptr$ ?v5 ?v1) ?v4 ?v5)) (b_S_is_n_primitive$ ?v5) )))
blanchet@57170
  1729
))
blanchet@57170
  1730
(let (($x8243 (and $x8236 (and $x2704 (and $x8240 (and (<= 0 ?1) (< ?1 ?2)))))))
blanchet@57170
  1731
(let (($x8254 (not $x8243)))
blanchet@57170
  1732
(let (($x8298 (or $x8254 $x8291)))
blanchet@57170
  1733
(let ((@x8272 (rewrite (= (and $x8236 (and $x2704 (and $x8240 (and $x3057 $x6757)))) $x8270))))
blanchet@57170
  1734
(let (($x8265 (= (and $x2704 (and $x8240 (and (<= 0 ?1) (< ?1 ?2)))) (and $x2704 (and $x8240 (and $x3057 $x6757))))))
blanchet@57170
  1735
(let (($x8262 (= (and $x8240 (and (<= 0 ?1) (< ?1 ?2))) (and $x8240 (and $x3057 $x6757)))))
blanchet@57170
  1736
(let ((@x3058 (rewrite (= (<= 0 ?1) $x3057))))
blanchet@57170
  1737
(let ((@x6762 (monotonicity @x3058 (rewrite (= (< ?1 ?2) $x6757)) (= (and (<= 0 ?1) (< ?1 ?2)) (and $x3057 $x6757)))))
blanchet@57170
  1738
(let ((@x8269 (monotonicity (monotonicity (monotonicity @x6762 $x8262) $x8265) (= $x8243 (and $x8236 (and $x2704 (and $x8240 (and $x3057 $x6757))))))))
blanchet@57170
  1739
(let ((@x8306 (monotonicity (monotonicity (trans @x8269 @x8272 (= $x8243 $x8270)) (= $x8254 $x8275)) (= $x8298 $x8304))))
blanchet@57170
  1740
(let ((@x8311 (trans (quant-intro (rewrite (= (=> $x8243 $x8291) $x8298)) (= $x8296 $x8301)) (quant-intro @x8306 (= $x8301 $x8307)) (= $x8296 $x8307))))
blanchet@57170
  1741
(let ((@x14905 (mp~ (mp (asserted $x8296) @x8311 $x8307) (nnf-pos (refl (~ $x8304 $x8304)) (~ $x8307 $x8307)) $x8307)))
blanchet@57170
  1742
(let ((@x18670 (mp @x14905 @x18669 $x18667)))
blanchet@57170
  1743
(let (($x22597 (not $x22596)))
blanchet@57170
  1744
(let (($x21489 (not $x9768)))
blanchet@57170
  1745
(let (($x22629 (not $x18667)))
blanchet@57170
  1746
(let (($x22733 (or $x22629 $x19677 $x21489 $x22597 $x11259 $x22604)))
blanchet@57170
  1747
(let (($x22601 (>= (+ 0 (* (- 1) v_b_P_H_len$)) 0)))
blanchet@57170
  1748
(let (($x22599 (not (>= 0 0))))
blanchet@57170
  1749
(let (($x22605 (or $x19677 $x21489 $x22597 $x22599 $x22601 $x22604)))
blanchet@57170
  1750
(let (($x22734 (or $x22629 $x22605)))
blanchet@57170
  1751
(let (($x22728 (or $x19677 $x21489 $x22597 $x11259 $x22604)))
blanchet@57170
  1752
(let ((@x22717 (rewrite (= (+ 0 (* (- 1) v_b_P_H_len$)) (* (- 1) v_b_P_H_len$)))))
blanchet@57170
  1753
(let ((@x22724 (trans (monotonicity @x22717 (= $x22601 (>= (* (- 1) v_b_P_H_len$) 0))) (rewrite (= (>= (* (- 1) v_b_P_H_len$) 0) $x11259)) (= $x22601 $x11259))))
blanchet@57170
  1754
(let ((@x22715 (trans (monotonicity (rewrite (= (>= 0 0) true)) (= $x22599 $x10203)) @x10561 (= $x22599 false))))
blanchet@57170
  1755
(let ((@x22727 (monotonicity @x22715 @x22724 (= $x22605 (or $x19677 $x21489 $x22597 false $x11259 $x22604)))))
blanchet@57170
  1756
(let ((@x22732 (trans @x22727 (rewrite (= (or $x19677 $x21489 $x22597 false $x11259 $x22604) $x22728)) (= $x22605 $x22728))))
blanchet@57170
  1757
(let ((@x22742 (trans (monotonicity @x22732 (= $x22734 (or $x22629 $x22728))) (rewrite (= (or $x22629 $x22728) $x22733)) (= $x22734 $x22733))))
blanchet@57170
  1758
(let ((@x22743 (mp ((_ quant-inst v_b_S_s$ v_b_P_H_arr$ (b_S_ptr$ ?x10076 ?x21014) v_b_P_H_len$ 0 b_T_T_u1$) $x22734) @x22742 $x22733)))
blanchet@57170
  1759
(let ((@x22761 (unit-resolution @x22743 @x18670 @x9769 @x12041 @x12050 (mp @x22691 @x22795 $x22596) (hypothesis $x22603) false)))
blanchet@57170
  1760
(let ((@x22760 (lemma @x22761 $x22604)))
blanchet@57170
  1761
(let ((@x23294 (mp (unit-resolution (def-axiom (or $x22603 $x22641)) @x22760 $x22641) (monotonicity @x23082 (= $x22641 $x22897)) $x22897)))
blanchet@57170
  1762
(let (($x22894 (b_S_in_n_wrapped_n_domain$ v_b_S_s$ ?x22903)))
blanchet@57170
  1763
(let ((?x22893 (b_S_owner$ v_b_S_s$ ?x22903)))
blanchet@57170
  1764
(let (($x22888 (= ?x22893 b_S_me$)))
blanchet@57170
  1765
(let (($x22895 (or $x22888 $x22894)))
blanchet@57170
  1766
(let (($x22896 (not $x22895)))
blanchet@57170
  1767
(let ((?x22890 (b_S_typ$ ?x22903)))
blanchet@57170
  1768
(let ((?x22891 (b_S_kind_n_of$ ?x22890)))
blanchet@57170
  1769
(let (($x22892 (= ?x22891 b_S_kind_n_primitive$)))
blanchet@57170
  1770
(let (($x22889 (not $x22906)))
blanchet@57170
  1771
(let (($x22817 (not $x22807)))
blanchet@57170
  1772
(let (($x22900 (or $x22817 $x22889 $x22892 $x22896)))
blanchet@57170
  1773
(let (($x22952 (b_S_in_n_wrapped_n_domain$ v_b_S_s$ ?x10078)))
blanchet@57170
  1774
(let (($x22953 (= (b_S_owner$ v_b_S_s$ ?x10078) b_S_me$)))
blanchet@57170
  1775
(let (($x22954 (or $x22953 $x22952)))
blanchet@57170
  1776
(let (($x22941 (not $x22954)))
blanchet@57170
  1777
(let (($x22942 (or $x22807 $x22941)))
blanchet@57170
  1778
(let (($x22920 (not $x22942)))
blanchet@57170
  1779
(let (($x22901 (not $x22900)))
blanchet@57170
  1780
(let (($x22921 (or $x22901 $x22920)))
blanchet@57170
  1781
(let (($x22923 (not $x22921)))
blanchet@57170
  1782
(let (($x22799 (b_S_typed$ v_b_S_s$ ?x10078)))
blanchet@57170
  1783
(let (($x22802 (not $x22799)))
blanchet@57170
  1784
(let (($x22939 (or $x22802 $x22923)))
blanchet@57170
  1785
(let (($x22943 (not $x22939)))
blanchet@57170
  1786
(let (($x22801 (b_S_thread_n_local$ v_b_S_s$ ?x10078)))
blanchet@57170
  1787
(let (($x22944 (= $x22801 $x22943)))
blanchet@57170
  1788
(let (($x19072 (forall ((?v0 B_S_state$) (?v1 B_S_ptr$) )(!(let (($x9039 (b_S_in_n_wrapped_n_domain$ ?v0 ?v1)))
blanchet@57170
  1789
(let ((?x2484 (b_S_owner$ ?v0 ?v1)))
blanchet@57170
  1790
(let (($x2486 (= ?x2484 b_S_me$)))
blanchet@57170
  1791
(let (($x2249 (= (b_S_kind_n_of$ (b_S_typ$ ?v1)) b_S_kind_n_primitive$)))
blanchet@57170
  1792
(let ((?x2769 (b_S_typemap$ ?v0)))
blanchet@57170
  1793
(let ((?x9020 (b_S_select_o_tm$ ?x2769 ?v1)))
blanchet@57170
  1794
(let ((?x9024 (b_S_ts_n_emb$ ?x9020)))
blanchet@57170
  1795
(let (($x9035 (or (= (b_S_owner$ ?v0 ?x9024) b_S_me$) (b_S_in_n_wrapped_n_domain$ ?v0 ?x9024))))
blanchet@57170
  1796
(let (($x9022 (b_S_ts_n_is_n_volatile$ ?x9020)))
blanchet@57170
  1797
(let (($x9023 (not $x9022)))
blanchet@57170
  1798
(let (($x9027 (or $x9023 (not (b_S_closed$ ?v0 ?x9024)))))
blanchet@57170
  1799
(let (($x2294 (not $x2249)))
blanchet@57170
  1800
(let (($x19047 (or $x2294 (not $x9027) (= (b_S_kind_n_of$ (b_S_typ$ ?x9024)) b_S_kind_n_primitive$) (not $x9035))))
blanchet@57170
  1801
(let (($x19056 (or (not $x19047) (not (or $x2249 (not (or $x2486 $x9039)))))))
blanchet@57170
  1802
(let (($x2488 (b_S_typed$ ?v0 ?v1)))
blanchet@57170
  1803
(let (($x9531 (not $x2488)))
blanchet@57170
  1804
(let (($x19064 (not (or $x9531 (not $x19056)))))
blanchet@57170
  1805
(let (($x9019 (b_S_thread_n_local$ ?v0 ?v1)))
blanchet@57170
  1806
(= $x9019 $x19064))))))))))))))))))) :pattern ( (b_S_thread_n_local$ ?v0 ?v1) )))
blanchet@57170
  1807
))
blanchet@57170
  1808
(let (($x9066 (forall ((?v0 B_S_state$) (?v1 B_S_ptr$) )(!(let (($x9039 (b_S_in_n_wrapped_n_domain$ ?v0 ?v1)))
blanchet@57170
  1809
(let ((?x2484 (b_S_owner$ ?v0 ?v1)))
blanchet@57170
  1810
(let (($x2486 (= ?x2484 b_S_me$)))
blanchet@57170
  1811
(let (($x2249 (= (b_S_kind_n_of$ (b_S_typ$ ?v1)) b_S_kind_n_primitive$)))
blanchet@57170
  1812
(let (($x2294 (not $x2249)))
blanchet@57170
  1813
(let (($x9041 (and $x2294 (or $x2486 $x9039))))
blanchet@57170
  1814
(let ((?x2769 (b_S_typemap$ ?v0)))
blanchet@57170
  1815
(let ((?x9020 (b_S_select_o_tm$ ?x2769 ?v1)))
blanchet@57170
  1816
(let ((?x9024 (b_S_ts_n_emb$ ?x9020)))
blanchet@57170
  1817
(let (($x9035 (or (= (b_S_owner$ ?v0 ?x9024) b_S_me$) (b_S_in_n_wrapped_n_domain$ ?v0 ?x9024))))
blanchet@57170
  1818
(let (($x9022 (b_S_ts_n_is_n_volatile$ ?x9020)))
blanchet@57170
  1819
(let (($x9023 (not $x9022)))
blanchet@57170
  1820
(let (($x9027 (or $x9023 (not (b_S_closed$ ?v0 ?x9024)))))
blanchet@57170
  1821
(let (($x9054 (and $x2249 $x9027 (not (= (b_S_kind_n_of$ (b_S_typ$ ?x9024)) b_S_kind_n_primitive$)) $x9035)))
blanchet@57170
  1822
(let (($x9057 (or $x9054 $x9041)))
blanchet@57170
  1823
(let (($x2488 (b_S_typed$ ?v0 ?v1)))
blanchet@57170
  1824
(let (($x9060 (and $x2488 $x9057)))
blanchet@57170
  1825
(let (($x9019 (b_S_thread_n_local$ ?v0 ?v1)))
blanchet@57170
  1826
(= $x9019 $x9060))))))))))))))))))) :pattern ( (b_S_thread_n_local$ ?v0 ?v1) )))
blanchet@57170
  1827
))
blanchet@57170
  1828
(let ((?x2769 (b_S_typemap$ ?1)))
blanchet@57170
  1829
(let ((?x9020 (b_S_select_o_tm$ ?x2769 ?0)))
blanchet@57170
  1830
(let ((?x9024 (b_S_ts_n_emb$ ?x9020)))
blanchet@57170
  1831
(let (($x9035 (or (= (b_S_owner$ ?1 ?x9024) b_S_me$) (b_S_in_n_wrapped_n_domain$ ?1 ?x9024))))
blanchet@57170
  1832
(let (($x9022 (b_S_ts_n_is_n_volatile$ ?x9020)))
blanchet@57170
  1833
(let (($x9023 (not $x9022)))
blanchet@57170
  1834
(let (($x9027 (or $x9023 (not (b_S_closed$ ?1 ?x9024)))))
blanchet@57170
  1835
(let (($x19047 (or $x2294 (not $x9027) (= (b_S_kind_n_of$ (b_S_typ$ ?x9024)) b_S_kind_n_primitive$) (not $x9035))))
blanchet@57170
  1836
(let (($x19056 (or (not $x19047) (not (or $x2249 (not (or $x2486 (b_S_in_n_wrapped_n_domain$ ?1 ?0))))))))
blanchet@57170
  1837
(let (($x19064 (not (or $x9531 (not $x19056)))))
blanchet@57170
  1838
(let (($x9019 (b_S_thread_n_local$ ?1 ?0)))
blanchet@57170
  1839
(let (($x9041 (and $x2294 (or $x2486 (b_S_in_n_wrapped_n_domain$ ?1 ?0)))))
blanchet@57170
  1840
(let (($x9054 (and $x2249 $x9027 (not (= (b_S_kind_n_of$ (b_S_typ$ ?x9024)) b_S_kind_n_primitive$)) $x9035)))
blanchet@57170
  1841
(let (($x9057 (or $x9054 $x9041)))
blanchet@57170
  1842
(let (($x9060 (and $x2488 $x9057)))
blanchet@57170
  1843
(let (($x9063 (= $x9019 $x9060)))
blanchet@57170
  1844
(let (($x19054 (= $x9041 (not (or $x2249 (not (or $x2486 (b_S_in_n_wrapped_n_domain$ ?1 ?0))))))))
blanchet@57170
  1845
(let ((@x19058 (monotonicity (rewrite (= $x9054 (not $x19047))) (rewrite $x19054) (= $x9057 $x19056))))
blanchet@57170
  1846
(let ((@x19068 (trans (monotonicity @x19058 (= $x9060 (and $x2488 $x19056))) (rewrite (= (and $x2488 $x19056) $x19064)) (= $x9060 $x19064))))
blanchet@57170
  1847
(let ((@x19074 (quant-intro (monotonicity @x19068 (= $x9063 (= $x9019 $x19064))) (= $x9066 $x19072))))
blanchet@57170
  1848
(let (($x9046 (forall ((?v0 B_S_state$) (?v1 B_S_ptr$) )(!(let (($x9039 (b_S_in_n_wrapped_n_domain$ ?v0 ?v1)))
blanchet@57170
  1849
(let ((?x2484 (b_S_owner$ ?v0 ?v1)))
blanchet@57170
  1850
(let (($x2486 (= ?x2484 b_S_me$)))
blanchet@57170
  1851
(let (($x2249 (= (b_S_kind_n_of$ (b_S_typ$ ?v1)) b_S_kind_n_primitive$)))
blanchet@57170
  1852
(let (($x2294 (not $x2249)))
blanchet@57170
  1853
(let (($x9041 (and $x2294 (or $x2486 $x9039))))
blanchet@57170
  1854
(let ((?x2769 (b_S_typemap$ ?v0)))
blanchet@57170
  1855
(let ((?x9020 (b_S_select_o_tm$ ?x2769 ?v1)))
blanchet@57170
  1856
(let ((?x9024 (b_S_ts_n_emb$ ?x9020)))
blanchet@57170
  1857
(let (($x9035 (or (= (b_S_owner$ ?v0 ?x9024) b_S_me$) (b_S_in_n_wrapped_n_domain$ ?v0 ?x9024))))
blanchet@57170
  1858
(let (($x9036 (and (not (= (b_S_kind_n_of$ (b_S_typ$ ?x9024)) b_S_kind_n_primitive$)) $x9035)))
blanchet@57170
  1859
(let (($x9022 (b_S_ts_n_is_n_volatile$ ?x9020)))
blanchet@57170
  1860
(let (($x9023 (not $x9022)))
blanchet@57170
  1861
(let (($x9027 (or $x9023 (not (b_S_closed$ ?v0 ?x9024)))))
blanchet@57170
  1862
(let (($x2488 (b_S_typed$ ?v0 ?v1)))
blanchet@57170
  1863
(let (($x9043 (and $x2488 (or (and $x2249 (and $x9027 $x9036)) $x9041))))
blanchet@57170
  1864
(let (($x9019 (b_S_thread_n_local$ ?v0 ?v1)))
blanchet@57170
  1865
(= $x9019 $x9043)))))))))))))))))) :pattern ( (b_S_thread_n_local$ ?v0 ?v1) )))
blanchet@57170
  1866
))
blanchet@57170
  1867
(let (($x9051 (forall ((?v0 B_S_state$) (?v1 B_S_ptr$) )(!(let (($x9039 (b_S_in_n_wrapped_n_domain$ ?v0 ?v1)))
blanchet@57170
  1868
(let ((?x2484 (b_S_owner$ ?v0 ?v1)))
blanchet@57170
  1869
(let (($x2486 (= ?x2484 b_S_me$)))
blanchet@57170
  1870
(let (($x2249 (= (b_S_kind_n_of$ (b_S_typ$ ?v1)) b_S_kind_n_primitive$)))
blanchet@57170
  1871
(let (($x2294 (not $x2249)))
blanchet@57170
  1872
(let (($x9041 (and $x2294 (or $x2486 $x9039))))
blanchet@57170
  1873
(let ((?x2769 (b_S_typemap$ ?v0)))
blanchet@57170
  1874
(let ((?x9020 (b_S_select_o_tm$ ?x2769 ?v1)))
blanchet@57170
  1875
(let ((?x9024 (b_S_ts_n_emb$ ?x9020)))
blanchet@57170
  1876
(let (($x9035 (or (= (b_S_owner$ ?v0 ?x9024) b_S_me$) (b_S_in_n_wrapped_n_domain$ ?v0 ?x9024))))
blanchet@57170
  1877
(let (($x9036 (and (not (= (b_S_kind_n_of$ (b_S_typ$ ?x9024)) b_S_kind_n_primitive$)) $x9035)))
blanchet@57170
  1878
(let (($x9022 (b_S_ts_n_is_n_volatile$ ?x9020)))
blanchet@57170
  1879
(let (($x9023 (not $x9022)))
blanchet@57170
  1880
(let (($x9027 (or $x9023 (not (b_S_closed$ ?v0 ?x9024)))))
blanchet@57170
  1881
(let (($x2488 (b_S_typed$ ?v0 ?v1)))
blanchet@57170
  1882
(let (($x9043 (and $x2488 (or (and $x2249 (and $x9027 $x9036)) $x9041))))
blanchet@57170
  1883
(let (($x9019 (b_S_thread_n_local$ ?v0 ?v1)))
blanchet@57170
  1884
(= $x9019 $x9043)))))))))))))))))) :pattern ( (b_S_thread_n_local$ ?v0 ?v1) )))
blanchet@57170
  1885
))
blanchet@57170
  1886
(let (($x9036 (and (not (= (b_S_kind_n_of$ (b_S_typ$ ?x9024)) b_S_kind_n_primitive$)) $x9035)))
blanchet@57170
  1887
(let (($x9043 (and $x2488 (or (and $x2249 (and $x9027 $x9036)) $x9041))))
blanchet@57170
  1888
(let (($x9048 (= $x9019 $x9043)))
blanchet@57170
  1889
(let ((@x9059 (monotonicity (rewrite (= (and $x2249 (and $x9027 $x9036)) $x9054)) (= (or (and $x2249 (and $x9027 $x9036)) $x9041) $x9057))))
blanchet@57170
  1890
(let ((@x9068 (quant-intro (monotonicity (monotonicity @x9059 (= $x9043 $x9060)) (= $x9048 $x9063)) (= $x9051 $x9066))))
blanchet@57170
  1891
(let ((@x9070 (trans (quant-intro (rewrite (= (= $x9019 $x9043) $x9048)) (= $x9046 $x9051)) @x9068 (= $x9046 $x9066))))
blanchet@57170
  1892
(let ((@x15111 (mp~ (mp (asserted $x9046) @x9070 $x9066) (nnf-pos (refl (~ $x9063 $x9063)) (~ $x9066 $x9066)) $x9066)))
blanchet@57170
  1893
(let ((@x19075 (mp @x15111 @x19074 $x19072)))
blanchet@57170
  1894
(let (($x23521 (or (not $x19072) $x22944)))
blanchet@57170
  1895
(let ((@x23524 ((_ quant-inst v_b_S_s$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$)) $x23521)))
blanchet@57170
  1896
(let (($x23055 (not $x22801)))
blanchet@57232
  1897
(let ((@x23295 (monotonicity (symm (monotonicity @x23699 (= $x22801 $x10141)) (= $x10141 $x22801)) (= (not $x10141) $x23055))))
blanchet@57170
  1898
(let ((@x23090 (unit-resolution (def-axiom (or (not $x22944) $x22801 $x22939)) (mp (hypothesis (not $x10141)) @x23295 $x23055) (unit-resolution @x23524 @x19075 $x22944) $x22939)))
blanchet@57232
  1899
(let ((@x23706 (mp (unit-resolution (def-axiom (or $x22603 $x10139)) @x22760 $x10139) (symm (monotonicity @x23699 (= $x22799 $x10139)) (= $x10139 $x22799)) $x22799)))
blanchet@57232
  1900
(let ((@x23222 (unit-resolution (def-axiom (or $x22921 $x22900)) (unit-resolution (def-axiom (or $x22943 $x22802 $x22923)) @x23706 @x23090 $x22923) $x22900)))
blanchet@57170
  1901
(let ((?x24419 (b_S_ref$ ?x21983)))
blanchet@57170
  1902
(let ((?x24433 (b_S_ptr$ b_T_T_u1$ ?x24419)))
blanchet@57170
  1903
(let ((?x24410 (b_S_idx$ ?x21983 0 b_T_T_u1$)))
blanchet@57170
  1904
(let (($x24436 (= ?x24410 ?x24433)))
blanchet@57170
  1905
(let (($x24439 (not $x24436)))
blanchet@57170
  1906
(let (($x24411 (b_S_extent_n_hint$ ?x24410 ?x21983)))
blanchet@57170
  1907
(let (($x24418 (not $x24411)))
blanchet@57170
  1908
(let (($x24442 (or $x24418 $x24439)))
blanchet@57170
  1909
(let (($x24445 (not $x24442)))
blanchet@57170
  1910
(let (($x24448 (or $x22568 $x24445)))
blanchet@57170
  1911
(let (($x24424 (or $x24418 (not (= ?x24410 (b_S_ptr$ b_T_T_u1$ (+ ?x24419 (* 0 ?x10045))))))))
blanchet@57170
  1912
(let (($x24425 (not $x24424)))
blanchet@57170
  1913
(let (($x24440 (= (not (= ?x24410 (b_S_ptr$ b_T_T_u1$ (+ ?x24419 (* 0 ?x10045))))) $x24439)))
blanchet@57170
  1914
(let ((@x24428 (monotonicity (rewrite (= (* 0 ?x10045) 0)) (= (+ ?x24419 (* 0 ?x10045)) (+ ?x24419 0)))))
blanchet@57170
  1915
(let ((@x24432 (trans @x24428 (rewrite (= (+ ?x24419 0) ?x24419)) (= (+ ?x24419 (* 0 ?x10045)) ?x24419))))
blanchet@57170
  1916
(let ((@x24435 (monotonicity @x24432 (= (b_S_ptr$ b_T_T_u1$ (+ ?x24419 (* 0 ?x10045))) ?x24433))))
blanchet@57170
  1917
(let ((@x24438 (monotonicity @x24435 (= (= ?x24410 (b_S_ptr$ b_T_T_u1$ (+ ?x24419 (* 0 ?x10045)))) $x24436))))
blanchet@57170
  1918
(let ((@x24447 (monotonicity (monotonicity (monotonicity @x24438 $x24440) (= $x24424 $x24442)) (= $x24425 $x24445))))
blanchet@57170
  1919
(let ((@x24455 (trans (monotonicity @x24447 (= (or $x22568 $x24425) $x24448)) (rewrite (= $x24448 $x24448)) (= (or $x22568 $x24425) $x24448))))
blanchet@57170
  1920
(let ((@x24133 (unit-resolution (mp ((_ quant-inst (b_S_ptr$ ?x10076 ?x21014) 0 b_T_T_u1$) (or $x22568 $x24425)) @x24455 $x24448) @x18183 (hypothesis $x24442) false)))
blanchet@57170
  1921
(let ((@x24460 (def-axiom (or $x24442 $x24436))))
blanchet@57170
  1922
(let ((?x24245 (b_S_idx$ ?x22595 0 b_T_T_u1$)))
blanchet@57170
  1923
(let ((?x24246 (b_S_select_o_tm$ ?x10272 ?x24245)))
blanchet@57170
  1924
(let ((?x24247 (b_S_ts_n_emb$ ?x24246)))
blanchet@57170
  1925
(let (($x24248 (= ?x24247 ?x22595)))
blanchet@57170
  1926
(let (($x24257 (b_S_typed$ v_b_S_s$ ?x24245)))
blanchet@57170
  1927
(let (($x24258 (not $x24257)))
blanchet@57170
  1928
(let (($x24255 (b_S_ts_n_is_n_volatile$ ?x24246)))
blanchet@57170
  1929
(let (($x24254 (not $x24248)))
blanchet@57170
  1930
(let (($x23737 (or $x24254 $x24255 (not (b_S_ts_n_is_n_array_n_elt$ ?x24246)) $x24258)))
blanchet@57170
  1931
(let (($x23791 (not $x23737)))
blanchet@57170
  1932
(let (($x24240 (b_S_typed$ v_b_S_s$ ?x22595)))
blanchet@57170
  1933
(let ((@x24353 (mp @x12045 (symm (monotonicity @x24530 (= $x24240 $x10085)) (= $x10085 $x24240)) $x24240)))
blanchet@57170
  1934
(let ((@x24355 (lemma (unit-resolution (hypothesis (not $x24240)) @x24353 false) $x24240)))
blanchet@57170
  1935
(let (($x17964 (forall ((?v0 B_S_state$) (?v1 Int) (?v2 B_S_ctype$) (?v3 Int) (?v4 Int) )(!(let (($x6905 (b_S_typed$ ?v0 (b_S_idx$ (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) ?v4 ?v2))))
blanchet@57170
  1936
(let ((?x6897 (b_S_typemap$ ?v0)))
blanchet@57170
  1937
(let ((?x6899 (b_S_select_o_tm$ ?x6897 (b_S_idx$ (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) ?v4 ?v2))))
blanchet@57170
  1938
(let (($x6904 (b_S_ts_n_is_n_array_n_elt$ ?x6899)))
blanchet@57170
  1939
(let (($x17952 (or (not (= (b_S_ts_n_emb$ ?x6899) (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1))) (b_S_ts_n_is_n_volatile$ ?x6899) (not $x6904) (not $x6905))))
blanchet@57170
  1940
(let (($x17953 (not $x17952)))
blanchet@57170
  1941
(let (($x4862 (>= (+ ?v4 (* (- 1) ?v3)) 0)))
blanchet@57170
  1942
(let (($x2815 (>= ?v4 0)))
blanchet@57170
  1943
(let (($x3763 (not $x2815)))
blanchet@57170
  1944
(or (not (b_S_typed$ ?v0 (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1))) $x3763 $x4862 $x17953)))))))))) :pattern ( (b_S_select_o_sm$ (b_S_statusmap$ ?v0) (b_S_idx$ (b_S_ptr$ ?v2 ?v1) ?v4 ?v2)) (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) ) :pattern ( (b_S_select_o_tm$ (b_S_typemap$ ?v0) (b_S_idx$ (b_S_ptr$ ?v2 ?v1) ?v4 ?v2)) (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) )))
blanchet@57170
  1945
))
blanchet@57170
  1946
(let (($x6943 (forall ((?v0 B_S_state$) (?v1 Int) (?v2 B_S_ctype$) (?v3 Int) (?v4 Int) )(!(let (($x6905 (b_S_typed$ ?v0 (b_S_idx$ (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) ?v4 ?v2))))
blanchet@57170
  1947
(let ((?x6897 (b_S_typemap$ ?v0)))
blanchet@57170
  1948
(let ((?x6899 (b_S_select_o_tm$ ?x6897 (b_S_idx$ (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) ?v4 ?v2))))
blanchet@57170
  1949
(let (($x6904 (b_S_ts_n_is_n_array_n_elt$ ?x6899)))
blanchet@57170
  1950
(let ((?x6894 (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1)))
blanchet@57170
  1951
(let (($x6901 (= (b_S_ts_n_emb$ ?x6899) ?x6894)))
blanchet@57170
  1952
(let (($x6937 (and $x6901 (not (b_S_ts_n_is_n_volatile$ ?x6899)) $x6904 $x6905)))
blanchet@57170
  1953
(let (($x4862 (>= (+ ?v4 (* (- 1) ?v3)) 0)))
blanchet@57170
  1954
(let (($x6603 (not $x4862)))
blanchet@57170
  1955
(let (($x2815 (>= ?v4 0)))
blanchet@57170
  1956
(let (($x6895 (b_S_typed$ ?v0 ?x6894)))
blanchet@57170
  1957
(let (($x6929 (and $x6895 $x2815 $x6603)))
blanchet@57170
  1958
(let (($x6934 (not $x6929)))
blanchet@57170
  1959
(or $x6934 $x6937)))))))))))))) :pattern ( (b_S_select_o_sm$ (b_S_statusmap$ ?v0) (b_S_idx$ (b_S_ptr$ ?v2 ?v1) ?v4 ?v2)) (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) ) :pattern ( (b_S_select_o_tm$ (b_S_typemap$ ?v0) (b_S_idx$ (b_S_ptr$ ?v2 ?v1) ?v4 ?v2)) (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) )))
blanchet@57170
  1960
))
blanchet@57170
  1961
(let (($x6905 (b_S_typed$ ?4 (b_S_idx$ (b_S_ptr$ (b_S_array$ ?2 ?1) ?3) ?0 ?2))))
blanchet@57170
  1962
(let ((?x6897 (b_S_typemap$ ?4)))
blanchet@57170
  1963
(let ((?x6899 (b_S_select_o_tm$ ?x6897 (b_S_idx$ (b_S_ptr$ (b_S_array$ ?2 ?1) ?3) ?0 ?2))))
blanchet@57170
  1964
(let (($x6904 (b_S_ts_n_is_n_array_n_elt$ ?x6899)))
blanchet@57170
  1965
(let (($x17952 (or (not (= (b_S_ts_n_emb$ ?x6899) (b_S_ptr$ (b_S_array$ ?2 ?1) ?3))) (b_S_ts_n_is_n_volatile$ ?x6899) (not $x6904) (not $x6905))))
blanchet@57170
  1966
(let (($x17953 (not $x17952)))
blanchet@57170
  1967
(let (($x4862 (>= (+ ?0 (* (- 1) ?1)) 0)))
blanchet@57170
  1968
(let (($x3763 (not $x2815)))
blanchet@57170
  1969
(let (($x17959 (or (not (b_S_typed$ ?4 (b_S_ptr$ (b_S_array$ ?2 ?1) ?3))) $x3763 $x4862 $x17953)))
blanchet@57170
  1970
(let ((?x6894 (b_S_ptr$ (b_S_array$ ?2 ?1) ?3)))
blanchet@57170
  1971
(let (($x6901 (= (b_S_ts_n_emb$ ?x6899) ?x6894)))
blanchet@57170
  1972
(let (($x6937 (and $x6901 (not (b_S_ts_n_is_n_volatile$ ?x6899)) $x6904 $x6905)))
blanchet@57170
  1973
(let (($x6603 (not $x4862)))
blanchet@57170
  1974
(let (($x6895 (b_S_typed$ ?4 ?x6894)))
blanchet@57170
  1975
(let (($x6929 (and $x6895 $x2815 $x6603)))
blanchet@57170
  1976
(let (($x6934 (not $x6929)))
blanchet@57170
  1977
(let (($x6940 (or $x6934 $x6937)))
blanchet@57170
  1978
(let (($x17938 (or (not $x6895) $x3763 $x4862)))
blanchet@57170
  1979
(let ((@x17944 (monotonicity (rewrite (= $x6929 (not $x17938))) (= $x6934 (not (not $x17938))))))
blanchet@57170
  1980
(let ((@x17958 (monotonicity (trans @x17944 (rewrite (= (not (not $x17938)) $x17938)) (= $x6934 $x17938)) (rewrite (= $x6937 $x17953)) (= $x6940 (or $x17938 $x17953)))))
blanchet@57170
  1981
(let ((@x17966 (quant-intro (trans @x17958 (rewrite (= (or $x17938 $x17953) $x17959)) (= $x6940 $x17959)) (= $x6943 $x17964))))
blanchet@57170
  1982
(let (($x6917 (forall ((?v0 B_S_state$) (?v1 Int) (?v2 B_S_ctype$) (?v3 Int) (?v4 Int) )(!(let (($x6905 (b_S_typed$ ?v0 (b_S_idx$ (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) ?v4 ?v2))))
blanchet@57170
  1983
(let ((?x6897 (b_S_typemap$ ?v0)))
blanchet@57170
  1984
(let ((?x6899 (b_S_select_o_tm$ ?x6897 (b_S_idx$ (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) ?v4 ?v2))))
blanchet@57170
  1985
(let (($x6904 (b_S_ts_n_is_n_array_n_elt$ ?x6899)))
blanchet@57170
  1986
(let ((?x6894 (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1)))
blanchet@57170
  1987
(let (($x6901 (= (b_S_ts_n_emb$ ?x6899) ?x6894)))
blanchet@57170
  1988
(let (($x6908 (and $x6901 (and (not (b_S_ts_n_is_n_volatile$ ?x6899)) (and $x6904 $x6905)))))
blanchet@57170
  1989
(let (($x2766 (<= 0 ?v4)))
blanchet@57170
  1990
(let (($x6566 (and $x2766 (< ?v4 ?v3))))
blanchet@57170
  1991
(let (($x6895 (b_S_typed$ ?v0 ?x6894)))
blanchet@57170
  1992
(let (($x6896 (and $x6895 $x6566)))
blanchet@57170
  1993
(=> $x6896 $x6908)))))))))))) :pattern ( (b_S_select_o_sm$ (b_S_statusmap$ ?v0) (b_S_idx$ (b_S_ptr$ ?v2 ?v1) ?v4 ?v2)) (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) ) :pattern ( (b_S_select_o_tm$ (b_S_typemap$ ?v0) (b_S_idx$ (b_S_ptr$ ?v2 ?v1) ?v4 ?v2)) (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) )))
blanchet@57170
  1994
))
blanchet@57170
  1995
(let (($x6923 (forall ((?v0 B_S_state$) (?v1 Int) (?v2 B_S_ctype$) (?v3 Int) (?v4 Int) )(!(let (($x6905 (b_S_typed$ ?v0 (b_S_idx$ (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) ?v4 ?v2))))
blanchet@57170
  1996
(let ((?x6897 (b_S_typemap$ ?v0)))
blanchet@57170
  1997
(let ((?x6899 (b_S_select_o_tm$ ?x6897 (b_S_idx$ (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) ?v4 ?v2))))
blanchet@57170
  1998
(let (($x6904 (b_S_ts_n_is_n_array_n_elt$ ?x6899)))
blanchet@57170
  1999
(let ((?x6894 (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1)))
blanchet@57170
  2000
(let (($x6901 (= (b_S_ts_n_emb$ ?x6899) ?x6894)))
blanchet@57170
  2001
(let (($x6908 (and $x6901 (and (not (b_S_ts_n_is_n_volatile$ ?x6899)) (and $x6904 $x6905)))))
blanchet@57170
  2002
(let (($x2766 (<= 0 ?v4)))
blanchet@57170
  2003
(let (($x6566 (and $x2766 (< ?v4 ?v3))))
blanchet@57170
  2004
(let (($x6895 (b_S_typed$ ?v0 ?x6894)))
blanchet@57170
  2005
(let (($x6896 (and $x6895 $x6566)))
blanchet@57170
  2006
(or (not $x6896) $x6908)))))))))))) :pattern ( (b_S_select_o_sm$ (b_S_statusmap$ ?v0) (b_S_idx$ (b_S_ptr$ ?v2 ?v1) ?v4 ?v2)) (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) ) :pattern ( (b_S_select_o_tm$ (b_S_typemap$ ?v0) (b_S_idx$ (b_S_ptr$ ?v2 ?v1) ?v4 ?v2)) (b_S_ptr$ (b_S_array$ ?v2 ?v3) ?v1) )))
blanchet@57170
  2007
))
blanchet@57170
  2008
(let (($x6908 (and $x6901 (and (not (b_S_ts_n_is_n_volatile$ ?x6899)) (and $x6904 $x6905)))))
blanchet@57170
  2009
(let (($x6920 (or (not (and $x6895 (and $x2766 (< ?0 ?1)))) $x6908)))
blanchet@57170
  2010
(let (($x6566 (and $x2766 (< ?0 ?1))))
blanchet@57170
  2011
(let (($x6896 (and $x6895 $x6566)))
blanchet@57170
  2012
(let ((@x6608 (monotonicity @x2814 (rewrite (= (< ?0 ?1) $x6603)) (= $x6566 (and $x2815 $x6603)))))
blanchet@57170
  2013
(let ((@x6933 (trans (monotonicity @x6608 (= $x6896 (and $x6895 (and $x2815 $x6603)))) (rewrite (= (and $x6895 (and $x2815 $x6603)) $x6929)) (= $x6896 $x6929))))
blanchet@57170
  2014
(let ((@x6942 (monotonicity (monotonicity @x6933 (= (not $x6896) $x6934)) (rewrite (= $x6908 $x6937)) (= $x6920 $x6940))))
blanchet@57170
  2015
(let ((@x6947 (trans (quant-intro (rewrite (= (=> $x6896 $x6908) $x6920)) (= $x6917 $x6923)) (quant-intro @x6942 (= $x6923 $x6943)) (= $x6917 $x6943))))
blanchet@57170
  2016
(let ((@x14355 (mp~ (mp (asserted $x6917) @x6947 $x6943) (nnf-pos (refl (~ $x6940 $x6940)) (~ $x6943 $x6943)) $x6943)))
blanchet@57170
  2017
(let ((@x17967 (mp @x14355 @x17966 $x17964)))
blanchet@57170
  2018
(let (($x24241 (not $x24240)))
blanchet@57232
  2019
(let (($x23252 (not $x17964)))
blanchet@57232
  2020
(let (($x23749 (or $x23252 $x24241 $x11259 $x23791)))
blanchet@57170
  2021
(let (($x23792 (or $x24241 $x22599 $x22601 $x23791)))
blanchet@57232
  2022
(let (($x23750 (or $x23252 $x23792)))
blanchet@57232
  2023
(let ((@x23251 (trans (monotonicity @x22715 @x22724 (= $x23792 (or $x24241 false $x11259 $x23791))) (rewrite (= (or $x24241 false $x11259 $x23791) (or $x24241 $x11259 $x23791))) (= $x23792 (or $x24241 $x11259 $x23791)))))
blanchet@57232
  2024
(let ((@x23352 (trans (monotonicity @x23251 (= $x23750 (or $x23252 (or $x24241 $x11259 $x23791)))) (rewrite (= (or $x23252 (or $x24241 $x11259 $x23791)) $x23749)) (= $x23750 $x23749))))
blanchet@57232
  2025
(let ((@x23658 (unit-resolution (mp ((_ quant-inst v_b_S_s$ v_b_P_H_arr$ b_T_T_u1$ v_b_P_H_len$ 0) $x23750) @x23352 $x23749) @x17967 @x12041 @x24355 (hypothesis $x23737) false)))
blanchet@57170
  2026
(let (($x21186 (= ?x21014 ?x10079)))
blanchet@57170
  2027
(let (($x21191 (or $x21152 $x21186)))
blanchet@57170
  2028
(let ((@x21192 ((_ quant-inst (b_S_array$ b_T_T_u1$ v_b_P_H_len$) (b_S_ref$ ?x10078)) $x21191)))
blanchet@57170
  2029
(let ((@x24524 (trans (monotonicity @x24520 (= ?x24419 ?x21014)) (unit-resolution @x21192 @x19840 $x21186) (= ?x24419 ?x10079))))
blanchet@57170
  2030
(let ((@x24532 (trans @x24530 (unit-resolution @x22000 @x15336 @x12044 $x21990) (= ?x22595 ?x21983))))
blanchet@57170
  2031
(let ((@x23632 (trans (monotonicity @x24532 (= ?x24245 ?x24410)) (hypothesis $x24436) (= ?x24245 ?x24433))))
blanchet@57170
  2032
(let ((@x23628 (trans @x23632 (monotonicity (trans @x24524 @x24511 (= ?x24419 v_b_P_H_arr$)) (= ?x24433 ?x10078)) (= ?x24245 ?x10078))))
blanchet@57232
  2033
(let ((@x23622 (trans (trans @x23628 (symm @x22852 (= ?x10078 ?x22553)) (= ?x24245 ?x22553)) (symm @x24189 (= ?x22553 ?x10137)) (= ?x24245 ?x10137))))
blanchet@57232
  2034
(let ((@x23636 (symm (monotonicity (trans @x23622 @x23667 (= ?x24245 ?x22505)) (= ?x24246 ?x22655)) (= ?x22655 ?x24246))))
blanchet@57232
  2035
(let ((@x23746 (monotonicity (monotonicity (trans @x23699 @x23667 (= ?x10078 ?x22505)) (= ?x22818 ?x22655)) (= ?x22903 (b_S_ts_n_emb$ ?x22655)))))
blanchet@57232
  2036
(let ((@x23678 (trans @x23746 (monotonicity @x23636 (= (b_S_ts_n_emb$ ?x22655) ?x24247)) (= ?x22903 ?x24247))))
blanchet@57232
  2037
(let ((@x23867 (trans @x23678 (unit-resolution (def-axiom (or $x23737 $x24248)) (lemma @x23658 $x23791) $x24248) (= ?x22903 ?x22595))))
blanchet@57232
  2038
(let ((@x23912 (trans (monotonicity (trans @x23867 @x24530 (= ?x22903 ?x10080)) (= ?x22893 ?x10082)) @x12043 $x22888)))
blanchet@57170
  2039
(let ((@x24132 (lemma (unit-resolution (hypothesis (not $x22888)) @x23912 false) (or $x24439 $x22888))))
blanchet@57170
  2040
(let ((@x23115 (unit-resolution @x24132 (unit-resolution @x24460 (lemma @x24133 $x24445) $x24436) $x22888)))
blanchet@57170
  2041
(let ((?x22658 (b_S_ts_n_emb$ ?x22655)))
blanchet@57170
  2042
(let ((?x22663 (b_S_typ$ ?x22658)))
blanchet@57170
  2043
(let ((?x22664 (b_S_kind_n_of$ ?x22663)))
blanchet@57170
  2044
(let (($x22665 (= ?x22664 b_S_kind_n_primitive$)))
blanchet@57232
  2045
(let ((@x23071 (monotonicity (monotonicity (symm @x23746 (= ?x22658 ?x22903)) (= ?x22663 ?x22890)) (= ?x22664 ?x22891))))
blanchet@57170
  2046
(let (($x22946 (b_S_is_n_non_n_primitive$ ?x22663)))
blanchet@57170
  2047
(let (($x23237 (not $x22946)))
blanchet@57170
  2048
(let (($x23503 (or $x22665 $x23237)))
blanchet@57170
  2049
(let (($x23504 (not $x23503)))
blanchet@57170
  2050
(let (($x19234 (forall ((?v0 B_S_type_n_state$) )(!(let (($x9543 (= (b_S_kind_n_of$ (b_S_typ$ (b_S_ts_n_emb$ ?v0))) b_S_kind_n_primitive$)))
blanchet@57170
  2051
(let (($x19230 (or $x9543 (not (b_S_is_n_non_n_primitive$ (b_S_typ$ (b_S_ts_n_emb$ ?v0)))))))
blanchet@57170
  2052
(not $x19230))) :pattern ( (b_S_ts_n_emb$ ?v0) )))
blanchet@57170
  2053
))
blanchet@57170
  2054
(let (($x9548 (forall ((?v0 B_S_type_n_state$) )(!(let (($x9543 (= (b_S_kind_n_of$ (b_S_typ$ (b_S_ts_n_emb$ ?v0))) b_S_kind_n_primitive$)))
blanchet@57170
  2055
(and (not $x9543) (b_S_is_n_non_n_primitive$ (b_S_typ$ (b_S_ts_n_emb$ ?v0))))) :pattern ( (b_S_ts_n_emb$ ?v0) )))
blanchet@57170
  2056
))
blanchet@57170
  2057
(let (($x9543 (= (b_S_kind_n_of$ (b_S_typ$ (b_S_ts_n_emb$ ?0))) b_S_kind_n_primitive$)))
blanchet@57170
  2058
(let (($x19230 (or $x9543 (not (b_S_is_n_non_n_primitive$ (b_S_typ$ (b_S_ts_n_emb$ ?0)))))))
blanchet@57170
  2059
(let (($x9546 (and (not $x9543) (b_S_is_n_non_n_primitive$ (b_S_typ$ (b_S_ts_n_emb$ ?0))))))
blanchet@57170
  2060
(let ((@x15316 (mp~ (asserted $x9548) (nnf-pos (refl (~ $x9546 $x9546)) (~ $x9548 $x9548)) $x9548)))
blanchet@57170
  2061
(let ((@x19237 (mp @x15316 (quant-intro (rewrite (= $x9546 (not $x19230))) (= $x9548 $x19234)) $x19234)))
blanchet@57170
  2062
(let (($x23057 (or (not $x19234) $x23504)))
blanchet@57170
  2063
(let ((@x23058 ((_ quant-inst (b_S_select_o_tm$ ?x10272 ?x22505)) $x23057)))
blanchet@57170
  2064
(let ((@x23584 (unit-resolution (def-axiom (or $x23503 (not $x22665))) (unit-resolution @x23058 @x19237 $x23504) (not $x22665))))
blanchet@57170
  2065
(let ((@x23060 (lemma (unit-resolution @x23584 (trans @x23071 (hypothesis $x22892) $x22665) false) (not $x22892))))
blanchet@57232
  2066
(let ((@x23221 (unit-resolution (def-axiom (or $x22901 $x22817 $x22889 $x22892 $x22896)) @x23060 (unit-resolution (def-axiom (or $x22895 (not $x22888))) @x23115 $x22895) (or $x22901 $x22817 $x22889))))
blanchet@57232
  2067
(let ((@x23406 (unit-resolution @x23221 @x23222 (unit-resolution (def-axiom (or $x22906 $x22902)) @x23294 $x22906) @x23076 false)))
blanchet@57170
  2068
(let ((@x23403 (lemma @x23406 $x10141)))
blanchet@57170
  2069
(let (($x20092 (or $x19318 $x20089)))
blanchet@57170
  2070
(let (($x20095 (not $x20092)))
blanchet@57170
  2071
(let (($x20098 (or $x11385 $x20095)))
blanchet@57170
  2072
(let (($x20101 (not $x20098)))
blanchet@57170
  2073
(let (($x20104 (or $x11385 $x20101)))
blanchet@57170
  2074
(let (($x20107 (not $x20104)))
blanchet@57170
  2075
(let (($x19727 (not $x10148)))
blanchet@57170
  2076
(let (($x19726 (not $x10147)))
blanchet@57170
  2077
(let (($x19725 (not $x10146)))
blanchet@57170
  2078
(let (($x19724 (not $x10145)))
blanchet@57170
  2079
(let (($x15511 (not $x10141)))
blanchet@57170
  2080
(let (($x15502 (not $x10138)))
blanchet@57170
  2081
(let (($x20110 (or $x15502 $x15511 $x19724 $x19725 $x19726 $x19727 $x20107)))
blanchet@57170
  2082
(let (($x20113 (not $x20110)))
blanchet@57170
  2083
(let (($x20116 (or $x15502 $x15511 $x20113)))
blanchet@57170
  2084
(let (($x20119 (not $x20116)))
blanchet@57170
  2085
(let (($x20122 (or $x15502 $x15505 $x20119)))
blanchet@57170
  2086
(let (($x20125 (not $x20122)))
blanchet@57170
  2087
(let (($x20128 (or $x15502 $x15505 $x20125)))
blanchet@57170
  2088
(let (($x20131 (not $x20128)))
blanchet@57170
  2089
(let (($x20134 (or $x11221 $x20131)))
blanchet@57170
  2090
(let (($x20137 (not $x20134)))
blanchet@57170
  2091
(let (($x20140 (or $x11221 $x20137)))
blanchet@57170
  2092
(let (($x19617 (forall ((?v0 Int) )(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
  2093
(let (($x10238 (= ?x10163 v_b_S_result_G_0$)))
blanchet@57170
  2094
(let (($x11800 (>= (+ ?v0 (* (- 1) v_b_P_H_len$)) 0)))
blanchet@57170
  2095
(let (($x12168 (<= ?v0 4294967295)))
blanchet@57170
  2096
(let (($x16553 (not $x12168)))
blanchet@57170
  2097
(let (($x2815 (>= ?v0 0)))
blanchet@57170
  2098
(let (($x3763 (not $x2815)))
blanchet@57170
  2099
(or $x3763 $x16553 $x11800 (not $x10238))))))))))
blanchet@57170
  2100
))
blanchet@57170
  2101
(let (($x19602 (forall ((?v0 Int) )(let ((?x11816 (* (- 1) v_b_S_result_G_0$)))
blanchet@57170
  2102
(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
  2103
(let (($x11818 (<= (+ ?x10163 ?x11816) 0)))
blanchet@57170
  2104
(let (($x11800 (>= (+ ?v0 (* (- 1) v_b_P_H_len$)) 0)))
blanchet@57170
  2105
(let (($x12168 (<= ?v0 4294967295)))
blanchet@57170
  2106
(let (($x16553 (not $x12168)))
blanchet@57170
  2107
(let (($x2815 (>= ?v0 0)))
blanchet@57170
  2108
(let (($x3763 (not $x2815)))
blanchet@57170
  2109
(or $x3763 $x16553 $x11800 $x11818))))))))))
blanchet@57170
  2110
))
blanchet@57170
  2111
(let (($x19626 (not (or (not $x19602) (not $x19617)))))
blanchet@57170
  2112
(let (($x19631 (or $x19580 $x19626)))
blanchet@57170
  2113
(let (($x19643 (not (or $x15729 $x19474 $x19501 $x19637 $x19638 $x19639 $x19640 (not $x19631)))))
blanchet@57170
  2114
(let (($x19648 (or $x15729 $x19643)))
blanchet@57170
  2115
(let (($x19656 (not (or $x11487 $x19474 $x19501 (not $x19648)))))
blanchet@57170
  2116
(let (($x19408 (forall ((?v0 Int) )(let ((?x11631 (* (- 1) v_b_L_H_max_G_3$)))
blanchet@57170
  2117
(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
  2118
(let (($x11633 (<= (+ ?x10163 ?x11631) 0)))
blanchet@57170
  2119
(let (($x11615 (>= (+ ?v0 (* (- 1) v_b_L_H_p_G_1$)) 0)))
blanchet@57170
  2120
(let (($x12168 (<= ?v0 4294967295)))
blanchet@57170
  2121
(let (($x16553 (not $x12168)))
blanchet@57170
  2122
(let (($x2815 (>= ?v0 0)))
blanchet@57170
  2123
(let (($x3763 (not $x2815)))
blanchet@57170
  2124
(or $x3763 $x16553 $x11615 $x11633))))))))))
blanchet@57170
  2125
))
blanchet@57170
  2126
(let (($x19428 (not (or (not $x19408) $x19413))))
blanchet@57170
  2127
(let (($x19433 (or $x19386 $x19428)))
blanchet@57170
  2128
(let (($x19441 (not (or $x11612 (not $x19433)))))
blanchet@57170
  2129
(let (($x19446 (or $x11612 $x19441)))
blanchet@57170
  2130
(let (($x19458 (not (or $x15611 $x15614 $x19452 $x19453 $x19454 $x19455 (not $x19446)))))
blanchet@57170
  2131
(let (($x19463 (or $x15611 $x15614 $x19458)))
blanchet@57170
  2132
(let (($x19475 (not $x19463)))
blanchet@57170
  2133
(let (($x19515 (not (or $x11515 $x19501 $x19512 $x19513 $x19474 $x19455 $x19475))))
blanchet@57170
  2134
(let (($x19477 (not (or $x15590 $x15599 $x19469 $x19470 $x19471 $x19472 $x19473 $x19474 $x19455 $x19475))))
blanchet@57170
  2135
(let (($x19482 (or $x15590 $x15599 $x19477)))
blanchet@57170
  2136
(let (($x19490 (not (or $x15590 $x15593 (not $x19482)))))
blanchet@57170
  2137
(let (($x19495 (or $x15590 $x15593 $x19490)))
blanchet@57170
  2138
(let (($x19504 (not (or $x11516 $x19474 $x19501 (not $x19495)))))
blanchet@57170
  2139
(let (($x19520 (or $x19504 $x19515)))
blanchet@57170
  2140
(let (($x19528 (not (or $x15590 $x15599 $x19474 $x19501 (not $x19520)))))
blanchet@57170
  2141
(let (($x19533 (or $x15590 $x15599 $x19528)))
blanchet@57170
  2142
(let (($x19541 (not (or $x15590 $x15593 (not $x19533)))))
blanchet@57170
  2143
(let (($x19546 (or $x15590 $x15593 $x19541)))
blanchet@57170
  2144
(let (($x19554 (not (or $x11486 $x19474 $x19501 (not $x19546)))))
blanchet@57170
  2145
(let (($x19661 (or $x19554 $x19656)))
blanchet@57170
  2146
(let (($x19362 (forall ((?v0 Int) )(let ((?x11887 (* (- 1) v_b_L_H_max_G_1$)))
blanchet@57170
  2147
(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
  2148
(let (($x11889 (<= (+ ?x10163 ?x11887) 0)))
blanchet@57170
  2149
(let (($x11871 (>= (+ ?v0 (* (- 1) v_b_L_H_p_G_0$)) 0)))
blanchet@57170
  2150
(let (($x12168 (<= ?v0 4294967295)))
blanchet@57170
  2151
(let (($x16553 (not $x12168)))
blanchet@57170
  2152
(let (($x2815 (>= ?v0 0)))
blanchet@57170
  2153
(let (($x3763 (not $x2815)))
blanchet@57170
  2154
(or $x3763 $x16553 $x11871 $x11889))))))))))
blanchet@57170
  2155
))
blanchet@57170
  2156
(let (($x19685 (or $x11259 $x15548 $x19667 $x19668 $x19669 $x19670 $x19671 $x19672 (not $x19362) $x11867 $x19674 $x19675 $x19676 $x19677 $x19678 $x19679 $x19680 $x19681 $x19682 $x19683 $x19474 $x19501 (not $x19661))))
blanchet@57170
  2157
(let (($x19686 (not $x19685)))
blanchet@57170
  2158
(let (($x19691 (or $x11259 $x15548 $x19686)))
blanchet@57170
  2159
(let (($x19340 (forall ((?v0 Int) )(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
  2160
(let (($x11404 (>= (+ v_b_L_H_max_G_0$ (* (- 1) ?x10163)) 0)))
blanchet@57170
  2161
(let (($x11388 (>= ?v0 1)))
blanchet@57170
  2162
(let (($x12168 (<= ?v0 4294967295)))
blanchet@57170
  2163
(let (($x16553 (not $x12168)))
blanchet@57170
  2164
(let (($x2815 (>= ?v0 0)))
blanchet@57170
  2165
(let (($x3763 (not $x2815)))
blanchet@57170
  2166
(or $x3763 $x16553 $x11388 $x11404)))))))))
blanchet@57170
  2167
))
blanchet@57170
  2168
(let (($x19700 (not (or (not $x19340) (not $x19691)))))
blanchet@57170
  2169
(let (($x19705 (or $x19318 $x19700)))
blanchet@57170
  2170
(let (($x19713 (not (or $x11385 (not $x19705)))))
blanchet@57170
  2171
(let (($x19718 (or $x11385 $x19713)))
blanchet@57170
  2172
(let (($x19730 (not (or $x15502 $x15511 $x19724 $x19725 $x19726 $x19727 (not $x19718)))))
blanchet@57170
  2173
(let (($x19735 (or $x15502 $x15511 $x19730)))
blanchet@57170
  2174
(let (($x19743 (not (or $x15502 $x15505 (not $x19735)))))
blanchet@57170
  2175
(let (($x19748 (or $x15502 $x15505 $x19743)))
blanchet@57170
  2176
(let (($x19756 (not (or $x11221 (not $x19748)))))
blanchet@57170
  2177
(let (($x19761 (or $x11221 $x19756)))
blanchet@57170
  2178
(let (($x12168 (<= ?0 4294967295)))
blanchet@57170
  2179
(let (($x16553 (not $x12168)))
blanchet@57170
  2180
(let (($x19606 (or $x3763 $x16553 $x11800 (not $x10238))))
blanchet@57170
  2181
(let ((@x20037 (monotonicity (quant-intro (refl (= $x19606 $x19606)) (= $x19617 $x20030)) (= (not $x19617) $x20035))))
blanchet@57170
  2182
(let ((@x20026 (quant-intro (refl (= (or $x3763 $x16553 $x11800 $x11818) (or $x3763 $x16553 $x11800 $x11818))) (= $x19602 $x20022))))
blanchet@57170
  2183
(let ((@x20040 (monotonicity (monotonicity @x20026 (= (not $x19602) $x20027)) @x20037 (= (or (not $x19602) (not $x19617)) $x20038))))
blanchet@57170
  2184
(let ((@x20049 (monotonicity (monotonicity (monotonicity @x20040 (= $x19626 $x20041)) (= $x19631 $x20044)) (= (not $x19631) $x20047))))
blanchet@57170
  2185
(let ((@x20052 (monotonicity @x20049 (= (or $x15729 $x19474 $x19501 $x19637 $x19638 $x19639 $x19640 (not $x19631)) $x20050))))
blanchet@57170
  2186
(let ((@x20061 (monotonicity (monotonicity (monotonicity @x20052 (= $x19643 $x20053)) (= $x19648 $x20056)) (= (not $x19648) $x20059))))
blanchet@57170
  2187
(let ((@x20067 (monotonicity (monotonicity @x20061 (= (or $x11487 $x19474 $x19501 (not $x19648)) $x20062)) (= $x19656 $x20065))))
blanchet@57170
  2188
(let ((@x19910 (quant-intro (refl (= (or $x3763 $x16553 $x11615 $x11633) (or $x3763 $x16553 $x11615 $x11633))) (= $x19408 $x19906))))
blanchet@57170
  2189
(let ((@x19916 (monotonicity (monotonicity @x19910 (= (not $x19408) $x19911)) (= (or (not $x19408) $x19413) $x19914))))
blanchet@57170
  2190
(let ((@x19925 (monotonicity (monotonicity (monotonicity @x19916 (= $x19428 $x19917)) (= $x19433 $x19920)) (= (not $x19433) $x19923))))
blanchet@57170
  2191
(let ((@x19931 (monotonicity (monotonicity @x19925 (= (or $x11612 (not $x19433)) $x19926)) (= $x19441 $x19929))))
blanchet@57170
  2192
(let ((@x19937 (monotonicity (monotonicity @x19931 (= $x19446 $x19932)) (= (not $x19446) $x19935))))
blanchet@57170
  2193
(let ((@x19940 (monotonicity @x19937 (= (or $x15611 $x15614 $x19452 $x19453 $x19454 $x19455 (not $x19446)) $x19938))))
blanchet@57170
  2194
(let ((@x19949 (monotonicity (monotonicity (monotonicity @x19940 (= $x19458 $x19941)) (= $x19463 $x19944)) (= $x19475 $x19947))))
blanchet@57170
  2195
(let ((@x19982 (monotonicity @x19949 (= (or $x11515 $x19501 $x19512 $x19513 $x19474 $x19455 $x19475) $x19980))))
blanchet@57170
  2196
(let ((@x19952 (monotonicity @x19949 (= (or $x15590 $x15599 $x19469 $x19470 $x19471 $x19472 $x19473 $x19474 $x19455 $x19475) $x19950))))
blanchet@57170
  2197
(let ((@x19961 (monotonicity (monotonicity (monotonicity @x19952 (= $x19477 $x19953)) (= $x19482 $x19956)) (= (not $x19482) $x19959))))
blanchet@57170
  2198
(let ((@x19967 (monotonicity (monotonicity @x19961 (= (or $x15590 $x15593 (not $x19482)) $x19962)) (= $x19490 $x19965))))
blanchet@57170
  2199
(let ((@x19973 (monotonicity (monotonicity @x19967 (= $x19495 $x19968)) (= (not $x19495) $x19971))))
blanchet@57170
  2200
(let ((@x19979 (monotonicity (monotonicity @x19973 (= (or $x11516 $x19474 $x19501 (not $x19495)) $x19974)) (= $x19504 $x19977))))
blanchet@57170
  2201
(let ((@x19988 (monotonicity @x19979 (monotonicity @x19982 (= $x19515 $x19983)) (= $x19520 $x19986))))
blanchet@57170
  2202
(let ((@x19994 (monotonicity (monotonicity @x19988 (= (not $x19520) $x19989)) (= (or $x15590 $x15599 $x19474 $x19501 (not $x19520)) $x19992))))
blanchet@57170
  2203
(let ((@x20003 (monotonicity (monotonicity (monotonicity @x19994 (= $x19528 $x19995)) (= $x19533 $x19998)) (= (not $x19533) $x20001))))
blanchet@57170
  2204
(let ((@x20009 (monotonicity (monotonicity @x20003 (= (or $x15590 $x15593 (not $x19533)) $x20004)) (= $x19541 $x20007))))
blanchet@57170
  2205
(let ((@x20015 (monotonicity (monotonicity @x20009 (= $x19546 $x20010)) (= (not $x19546) $x20013))))
blanchet@57170
  2206
(let ((@x20021 (monotonicity (monotonicity @x20015 (= (or $x11486 $x19474 $x19501 (not $x19546)) $x20016)) (= $x19554 $x20019))))
blanchet@57170
  2207
(let ((@x20073 (monotonicity (monotonicity @x20021 @x20067 (= $x19661 $x20068)) (= (not $x19661) $x20071))))
blanchet@57170
  2208
(let ((@x19902 (quant-intro (refl (= (or $x3763 $x16553 $x11871 $x11889) (or $x3763 $x16553 $x11871 $x11889))) (= $x19362 $x19898))))
blanchet@57170
  2209
(let ((@x20076 (monotonicity (monotonicity @x19902 (= (not $x19362) $x19903)) @x20073 (= $x19685 $x20074))))
blanchet@57170
  2210
(let ((@x20085 (monotonicity (monotonicity (monotonicity @x20076 (= $x19686 $x20077)) (= $x19691 $x20080)) (= (not $x19691) $x20083))))
blanchet@57170
  2211
(let ((@x19894 (quant-intro (refl (= (or $x3763 $x16553 $x11388 $x11404) (or $x3763 $x16553 $x11388 $x11404))) (= $x19340 $x19890))))
blanchet@57170
  2212
(let ((@x20088 (monotonicity (monotonicity @x19894 (= (not $x19340) $x19895)) @x20085 (= (or (not $x19340) (not $x19691)) $x20086))))
blanchet@57170
  2213
(let ((@x20097 (monotonicity (monotonicity (monotonicity @x20088 (= $x19700 $x20089)) (= $x19705 $x20092)) (= (not $x19705) $x20095))))
blanchet@57170
  2214
(let ((@x20103 (monotonicity (monotonicity @x20097 (= (or $x11385 (not $x19705)) $x20098)) (= $x19713 $x20101))))
blanchet@57170
  2215
(let ((@x20109 (monotonicity (monotonicity @x20103 (= $x19718 $x20104)) (= (not $x19718) $x20107))))
blanchet@57170
  2216
(let ((@x20112 (monotonicity @x20109 (= (or $x15502 $x15511 $x19724 $x19725 $x19726 $x19727 (not $x19718)) $x20110))))
blanchet@57170
  2217
(let ((@x20121 (monotonicity (monotonicity (monotonicity @x20112 (= $x19730 $x20113)) (= $x19735 $x20116)) (= (not $x19735) $x20119))))
blanchet@57170
  2218
(let ((@x20127 (monotonicity (monotonicity @x20121 (= (or $x15502 $x15505 (not $x19735)) $x20122)) (= $x19743 $x20125))))
blanchet@57170
  2219
(let ((@x20133 (monotonicity (monotonicity @x20127 (= $x19748 $x20128)) (= (not $x19748) $x20131))))
blanchet@57170
  2220
(let ((@x20139 (monotonicity (monotonicity @x20133 (= (or $x11221 (not $x19748)) $x20134)) (= $x19756 $x20137))))
blanchet@57170
  2221
(let (($x15761 (forall ((?v0 Int) )(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
  2222
(let (($x10238 (= ?x10163 v_b_S_result_G_0$)))
blanchet@57170
  2223
(let (($x11800 (>= (+ ?v0 (* (- 1) v_b_P_H_len$)) 0)))
blanchet@57170
  2224
(let (($x11802 (not $x11800)))
blanchet@57170
  2225
(let (($x12168 (<= ?v0 4294967295)))
blanchet@57170
  2226
(let (($x2815 (>= ?v0 0)))
blanchet@57170
  2227
(let (($x13448 (and $x2815 $x12168 $x11802 $x10238)))
blanchet@57170
  2228
(not $x13448)))))))))
blanchet@57170
  2229
))
blanchet@57170
  2230
(let (($x13442 (forall ((?v0 Int) )(let ((?x11816 (* (- 1) v_b_S_result_G_0$)))
blanchet@57170
  2231
(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
  2232
(let (($x11818 (<= (+ ?x10163 ?x11816) 0)))
blanchet@57170
  2233
(let (($x11800 (>= (+ ?v0 (* (- 1) v_b_P_H_len$)) 0)))
blanchet@57170
  2234
(let (($x11802 (not $x11800)))
blanchet@57170
  2235
(let (($x12168 (<= ?v0 4294967295)))
blanchet@57170
  2236
(let (($x2815 (>= ?v0 0)))
blanchet@57170
  2237
(let (($x13433 (and $x2815 $x12168 $x11802)))
blanchet@57170
  2238
(let (($x13436 (not $x13433)))
blanchet@57170
  2239
(or $x13436 $x11818)))))))))))
blanchet@57170
  2240
))
blanchet@57170
  2241
(let (($x15765 (and $x13442 $x15761)))
blanchet@57170
  2242
(let (($x16014 (not $x16009)))
blanchet@57170
  2243
(let (($x16017 (and $x15736 $x15737 $x16014)))
blanchet@57170
  2244
(let (($x16020 (not $x16017)))
blanchet@57170
  2245
(let (($x16036 (or $x16020 $x16031)))
blanchet@57170
  2246
(let (($x16039 (not $x16036)))
blanchet@57170
  2247
(let (($x16042 (or $x16039 $x15765)))
blanchet@57170
  2248
(let (($x16048 (and b_S_position_n_marker$ $x11429 $x11432 $x10216 $x10218 $x10220 $x10222 $x16042)))
blanchet@57170
  2249
(let (($x16053 (or $x15729 $x16048)))
blanchet@57170
  2250
(let (($x16059 (and $x11486 $x11429 $x11432 $x16053)))
blanchet@57170
  2251
(let (($x15648 (not $x11651)))
blanchet@57170
  2252
(let (($x13373 (forall ((?v0 Int) )(let ((?x11631 (* (- 1) v_b_L_H_max_G_3$)))
blanchet@57170
  2253
(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
  2254
(let (($x11633 (<= (+ ?x10163 ?x11631) 0)))
blanchet@57170
  2255
(let (($x11615 (>= (+ ?v0 (* (- 1) v_b_L_H_p_G_1$)) 0)))
blanchet@57170
  2256
(let (($x11617 (not $x11615)))
blanchet@57170
  2257
(let (($x12168 (<= ?v0 4294967295)))
blanchet@57170
  2258
(let (($x2815 (>= ?v0 0)))
blanchet@57170
  2259
(let (($x13364 (and $x2815 $x12168 $x11617)))
blanchet@57170
  2260
(let (($x13367 (not $x13364)))
blanchet@57170
  2261
(or $x13367 $x11633)))))))))))
blanchet@57170
  2262
))
blanchet@57170
  2263
(let (($x15651 (and $x13373 $x15648)))
blanchet@57170
  2264
(let (($x15876 (not $x15871)))
blanchet@57170
  2265
(let (($x15879 (and $x15626 $x15627 $x15876)))
blanchet@57170
  2266
(let (($x15882 (not $x15879)))
blanchet@57170
  2267
(let (($x15898 (or $x15882 $x15893)))
blanchet@57170
  2268
(let (($x15901 (not $x15898)))
blanchet@57170
  2269
(let (($x15904 (or $x15901 $x15651)))
blanchet@57170
  2270
(let (($x15907 (and $x11608 $x15904)))
blanchet@57170
  2271
(let (($x15910 (or $x11612 $x15907)))
blanchet@57170
  2272
(let (($x15916 (and $x11570 $x13353 $x11580 $x10358 $x11578 $x11536 $x15910)))
blanchet@57170
  2273
(let (($x15921 (or $x15611 $x15614 $x15916)))
blanchet@57170
  2274
(let (($x15959 (and $x11516 $x11432 $x10391 $x10392 $x11429 $x11536 $x15921)))
blanchet@57170
  2275
(let (($x15927 (and $x10321 $x10324 $x10333 $x10334 $x10335 $x10338 $x10340 $x11429 $x11536 $x15921)))
blanchet@57170
  2276
(let (($x15932 (or $x15590 $x15599 $x15927)))
blanchet@57170
  2277
(let (($x15938 (and $x10321 $x10322 $x15932)))
blanchet@57170
  2278
(let (($x15943 (or $x15590 $x15593 $x15938)))
blanchet@57170
  2279
(let (($x15949 (and $x11515 $x11429 $x11432 $x15943)))
blanchet@57170
  2280
(let (($x15964 (or $x15949 $x15959)))
blanchet@57170
  2281
(let (($x15970 (and $x10321 $x10324 $x11429 $x11432 $x15964)))
blanchet@57170
  2282
(let (($x15975 (or $x15590 $x15599 $x15970)))
blanchet@57170
  2283
(let (($x15981 (and $x10321 $x10322 $x15975)))
blanchet@57170
  2284
(let (($x15986 (or $x15590 $x15593 $x15981)))
blanchet@57170
  2285
(let (($x15992 (and $x11487 $x11429 $x11432 $x15986)))
blanchet@57170
  2286
(let (($x16064 (or $x15992 $x16059)))
blanchet@57170
  2287
(let (($x13340 (forall ((?v0 Int) )(let ((?x11887 (* (- 1) v_b_L_H_max_G_1$)))
blanchet@57170
  2288
(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
  2289
(let (($x11889 (<= (+ ?x10163 ?x11887) 0)))
blanchet@57170
  2290
(let (($x11871 (>= (+ ?v0 (* (- 1) v_b_L_H_p_G_0$)) 0)))
blanchet@57170
  2291
(let (($x11873 (not $x11871)))
blanchet@57170
  2292
(let (($x12168 (<= ?v0 4294967295)))
blanchet@57170
  2293
(let (($x2815 (>= ?v0 0)))
blanchet@57170
  2294
(let (($x13331 (and $x2815 $x12168 $x11873)))
blanchet@57170
  2295
(let (($x13334 (not $x13331)))
blanchet@57170
  2296
(or $x13334 $x11889)))))))))))
blanchet@57170
  2297
))
blanchet@57170
  2298
(let (($x16070 (and $x11260 $x10167 $x11911 $x13304 $x13315 $x11901 $x13326 $x11898 $x13340 $x11868 $x10192 $x10284 $x10204 $x10097 $x10291 $x10292 $x10293 $x10294 $x10295 $x10296 $x11429 $x11432 $x16064)))
blanchet@57170
  2299
(let (($x16075 (or $x11259 $x15548 $x16070)))
blanchet@57170
  2300
(let (($x13292 (forall ((?v0 Int) )(let ((?x10163 (b_S_read_n_u1$ v_b_S_s$ (b_S_idx$ (b_S_ptr$ b_T_T_u1$ v_b_P_H_arr$) ?v0 b_T_T_u1$))))
blanchet@57170
  2301
(let (($x11404 (>= (+ v_b_L_H_max_G_0$ (* (- 1) ?x10163)) 0)))
blanchet@57170
  2302
(let (($x11388 (>= ?v0 1)))
blanchet@57170
  2303
(let (($x11389 (not $x11388)))
blanchet@57170
  2304
(let (($x12168 (<= ?v0 4294967295)))
blanchet@57170
  2305
(let (($x2815 (>= ?v0 0)))
blanchet@57170
  2306
(let (($x13283 (and $x2815 $x12168 $x11389)))
blanchet@57170
  2307
(let (($x13286 (not $x13283)))
blanchet@57170
  2308
(or $x13286 $x11404))))))))))
blanchet@57170
  2309
))
blanchet@57170
  2310
(let (($x16078 (and $x13292 $x16075)))
blanchet@57170
  2311
(let (($x15528 (not (and $x15523 $x15524 (not $x15525)))))
blanchet@57170
  2312
(let (($x15534 (or $x15528 $x15533)))
blanchet@57170
  2313
(let (($x15535 (not $x15534)))
blanchet@57170
  2314
(let (($x16081 (or $x15535 $x16078)))
blanchet@57170
  2315
(let (($x16084 (and $x11382 $x16081)))
blanchet@57170
  2316
(let (($x16087 (or $x11385 $x16084)))
blanchet@57170
  2317
(let (($x16093 (and $x10138 $x10141 $x10145 $x10146 $x10147 $x10148 $x16087)))
blanchet@57170
  2318
(let (($x16098 (or $x15502 $x15511 $x16093)))
blanchet@57170
  2319
(let (($x16104 (and $x10138 $x10139 $x16098)))
blanchet@57170
  2320
(let (($x16109 (or $x15502 $x15505 $x16104)))
blanchet@57170
  2321
(let (($x16112 (and $x10136 $x16109)))
blanchet@57170
  2322
(let (($x16115 (or $x11221 $x16112)))
blanchet@57170
  2323
(let (($x19664 (and $x11260 $x10167 $x11911 $x13304 $x13315 $x11901 $x13326 $x11898 $x19362 $x11868 $x10192 $x10284 $x10204 $x10097 $x10291 $x10292 $x10293 $x10294 $x10295 $x10296 $x11429 $x11432 $x19661)))
blanchet@57170
  2324
(let (($x19644 (= (and b_S_position_n_marker$ $x11429 $x11432 $x10216 $x10218 $x10220 $x10222 $x19631) $x19643)))
blanchet@57170
  2325
(let (($x19635 (= $x16048 (and b_S_position_n_marker$ $x11429 $x11432 $x10216 $x10218 $x10220 $x10222 $x19631))))
blanchet@57170
  2326
(let ((@x19612 (monotonicity (rewrite (= (and $x2815 $x12168 $x11802 $x10238) (not $x19606))) (= (not (and $x2815 $x12168 $x11802 $x10238)) (not (not $x19606))))))
blanchet@57170
  2327
(let ((@x19616 (trans @x19612 (rewrite (= (not (not $x19606)) $x19606)) (= (not (and $x2815 $x12168 $x11802 $x10238)) $x19606))))
blanchet@57170
  2328
(let ((@x19599 (rewrite (= (or (or $x3763 $x16553 $x11800) $x11818) (or $x3763 $x16553 $x11800 $x11818)))))
blanchet@57170
  2329
(let (($x13433 (and $x2815 $x12168 $x11802)))
blanchet@57170
  2330
(let (($x13436 (not $x13433)))
blanchet@57170
  2331
(let (($x13439 (or $x13436 $x11818)))
blanchet@57170
  2332
(let ((@x19589 (monotonicity (rewrite (= $x13433 (not (or $x3763 $x16553 $x11800)))) (= $x13436 (not (not (or $x3763 $x16553 $x11800)))))))
blanchet@57170
  2333
(let ((@x19593 (trans @x19589 (rewrite (= (not (not (or $x3763 $x16553 $x11800))) (or $x3763 $x16553 $x11800))) (= $x13436 (or $x3763 $x16553 $x11800)))))
blanchet@57170
  2334
(let ((@x19601 (trans (monotonicity @x19593 (= $x13439 (or (or $x3763 $x16553 $x11800) $x11818))) @x19599 (= $x13439 (or $x3763 $x16553 $x11800 $x11818)))))
blanchet@57170
  2335
(let ((@x19622 (monotonicity (quant-intro @x19601 (= $x13442 $x19602)) (quant-intro @x19616 (= $x15761 $x19617)) (= $x15765 (and $x19602 $x19617)))))
blanchet@57170
  2336
(let ((@x19567 (monotonicity (rewrite (= $x16017 (not (or $x19559 $x19560 $x16009)))) (= $x16020 (not (not (or $x19559 $x19560 $x16009)))))))
blanchet@57170
  2337
(let ((@x19571 (trans @x19567 (rewrite (= (not (not (or $x19559 $x19560 $x16009))) (or $x19559 $x19560 $x16009))) (= $x16020 (or $x19559 $x19560 $x16009)))))
blanchet@57170
  2338
(let ((@x19579 (trans (monotonicity @x19571 (= $x16036 (or (or $x19559 $x19560 $x16009) $x16031))) (rewrite (= (or (or $x19559 $x19560 $x16009) $x16031) $x19575)) (= $x16036 $x19575))))
blanchet@57170
  2339
(let ((@x19633 (monotonicity (monotonicity @x19579 (= $x16039 $x19580)) (trans @x19622 (rewrite (= (and $x19602 $x19617) $x19626)) (= $x15765 $x19626)) (= $x16042 $x19631))))
blanchet@57170
  2340
(let ((@x19650 (monotonicity (trans (monotonicity @x19633 $x19635) (rewrite $x19644) (= $x16048 $x19643)) (= $x16053 $x19648))))
blanchet@57170
  2341
(let ((@x19660 (trans (monotonicity @x19650 (= $x16059 (and $x11486 $x11429 $x11432 $x19648))) (rewrite (= (and $x11486 $x11429 $x11432 $x19648) $x19656)) (= $x16059 $x19656))))
blanchet@57170
  2342
(let ((@x19422 (trans (monotonicity (rewrite (= $x11651 $x19413)) (= $x15648 (not $x19413))) (rewrite (= (not $x19413) $x19412)) (= $x15648 $x19412))))
blanchet@57170
  2343
(let ((@x19405 (rewrite (= (or (or $x3763 $x16553 $x11615) $x11633) (or $x3763 $x16553 $x11615 $x11633)))))
blanchet@57170
  2344
(let (($x13364 (and $x2815 $x12168 $x11617)))
blanchet@57170
  2345
(let (($x13367 (not $x13364)))
blanchet@57170
  2346
(let (($x13370 (or $x13367 $x11633)))
blanchet@57170
  2347
(let ((@x19395 (monotonicity (rewrite (= $x13364 (not (or $x3763 $x16553 $x11615)))) (= $x13367 (not (not (or $x3763 $x16553 $x11615)))))))
blanchet@57170
  2348
(let ((@x19399 (trans @x19395 (rewrite (= (not (not (or $x3763 $x16553 $x11615))) (or $x3763 $x16553 $x11615))) (= $x13367 (or $x3763 $x16553 $x11615)))))
blanchet@57170
  2349
(let ((@x19407 (trans (monotonicity @x19399 (= $x13370 (or (or $x3763 $x16553 $x11615) $x11633))) @x19405 (= $x13370 (or $x3763 $x16553 $x11615 $x11633)))))
blanchet@57170
  2350
(let ((@x19425 (monotonicity (quant-intro @x19407 (= $x13373 $x19408)) @x19422 (= $x15651 (and $x19408 $x19412)))))
blanchet@57170
  2351
(let ((@x19373 (monotonicity (rewrite (= $x15879 (not (or $x19365 $x19366 $x15871)))) (= $x15882 (not (not (or $x19365 $x19366 $x15871)))))))
blanchet@57170
  2352
(let ((@x19377 (trans @x19373 (rewrite (= (not (not (or $x19365 $x19366 $x15871))) (or $x19365 $x19366 $x15871))) (= $x15882 (or $x19365 $x19366 $x15871)))))
blanchet@57170
  2353
(let ((@x19385 (trans (monotonicity @x19377 (= $x15898 (or (or $x19365 $x19366 $x15871) $x15893))) (rewrite (= (or (or $x19365 $x19366 $x15871) $x15893) $x19381)) (= $x15898 $x19381))))
blanchet@57170
  2354
(let ((@x19435 (monotonicity (monotonicity @x19385 (= $x15901 $x19386)) (trans @x19425 (rewrite (= (and $x19408 $x19412) $x19428)) (= $x15651 $x19428)) (= $x15904 $x19433))))
blanchet@57170
  2355
(let ((@x19445 (trans (monotonicity @x19435 (= $x15907 (and $x11608 $x19433))) (rewrite (= (and $x11608 $x19433) $x19441)) (= $x15907 $x19441))))
blanchet@57170
  2356
(let ((@x19451 (monotonicity (monotonicity @x19445 (= $x15910 $x19446)) (= $x15916 (and $x11570 $x13353 $x11580 $x10358 $x11578 $x11536 $x19446)))))
blanchet@57170
  2357
(let ((@x19462 (trans @x19451 (rewrite (= (and $x11570 $x13353 $x11580 $x10358 $x11578 $x11536 $x19446) $x19458)) (= $x15916 $x19458))))
blanchet@57170
  2358
(let ((@x19511 (monotonicity (monotonicity @x19462 (= $x15921 $x19463)) (= $x15959 (and $x11516 $x11432 $x10391 $x10392 $x11429 $x11536 $x19463)))))
blanchet@57170
  2359
(let ((@x19519 (trans @x19511 (rewrite (= (and $x11516 $x11432 $x10391 $x10392 $x11429 $x11536 $x19463) $x19515)) (= $x15959 $x19515))))
blanchet@57170
  2360
(let ((@x19479 (rewrite (= (and $x10321 $x10324 $x10333 $x10334 $x10335 $x10338 $x10340 $x11429 $x11536 $x19463) $x19477))))
blanchet@57170
  2361
(let ((@x19468 (monotonicity (monotonicity @x19462 (= $x15921 $x19463)) (= $x15927 (and $x10321 $x10324 $x10333 $x10334 $x10335 $x10338 $x10340 $x11429 $x11536 $x19463)))))
blanchet@57170
  2362
(let ((@x19487 (monotonicity (monotonicity (trans @x19468 @x19479 (= $x15927 $x19477)) (= $x15932 $x19482)) (= $x15938 (and $x10321 $x10322 $x19482)))))
blanchet@57170
  2363
(let ((@x19494 (trans @x19487 (rewrite (= (and $x10321 $x10322 $x19482) $x19490)) (= $x15938 $x19490))))
blanchet@57170
  2364
(let ((@x19500 (monotonicity (monotonicity @x19494 (= $x15943 $x19495)) (= $x15949 (and $x11515 $x11429 $x11432 $x19495)))))
blanchet@57170
  2365
(let ((@x19508 (trans @x19500 (rewrite (= (and $x11515 $x11429 $x11432 $x19495) $x19504)) (= $x15949 $x19504))))
blanchet@57170
  2366
(let ((@x19525 (monotonicity (monotonicity @x19508 @x19519 (= $x15964 $x19520)) (= $x15970 (and $x10321 $x10324 $x11429 $x11432 $x19520)))))
blanchet@57170
  2367
(let ((@x19532 (trans @x19525 (rewrite (= (and $x10321 $x10324 $x11429 $x11432 $x19520) $x19528)) (= $x15970 $x19528))))
blanchet@57170
  2368
(let ((@x19538 (monotonicity (monotonicity @x19532 (= $x15975 $x19533)) (= $x15981 (and $x10321 $x10322 $x19533)))))
blanchet@57170
  2369
(let ((@x19545 (trans @x19538 (rewrite (= (and $x10321 $x10322 $x19533) $x19541)) (= $x15981 $x19541))))
blanchet@57170
  2370
(let ((@x19551 (monotonicity (monotonicity @x19545 (= $x15986 $x19546)) (= $x15992 (and $x11487 $x11429 $x11432 $x19546)))))
blanchet@57170
  2371
(let ((@x19558 (trans @x19551 (rewrite (= (and $x11487 $x11429 $x11432 $x19546) $x19554)) (= $x15992 $x19554))))
blanchet@57170
  2372
(let ((@x19359 (rewrite (= (or (or $x3763 $x16553 $x11871) $x11889) (or $x3763 $x16553 $x11871 $x11889)))))
blanchet@57170
  2373
(let (($x13331 (and $x2815 $x12168 $x11873)))
blanchet@57170
  2374
(let (($x13334 (not $x13331)))
blanchet@57170
  2375
(let (($x13337 (or $x13334 $x11889)))
blanchet@57170
  2376
(let ((@x19349 (monotonicity (rewrite (= $x13331 (not (or $x3763 $x16553 $x11871)))) (= $x13334 (not (not (or $x3763 $x16553 $x11871)))))))
blanchet@57170
  2377
(let ((@x19353 (trans @x19349 (rewrite (= (not (not (or $x3763 $x16553 $x11871))) (or $x3763 $x16553 $x11871))) (= $x13334 (or $x3763 $x16553 $x11871)))))
blanchet@57170
  2378
(let ((@x19361 (trans (monotonicity @x19353 (= $x13337 (or (or $x3763 $x16553 $x11871) $x11889))) @x19359 (= $x13337 (or $x3763 $x16553 $x11871 $x11889)))))
blanchet@57170
  2379
(let ((@x19666 (monotonicity (quant-intro @x19361 (= $x13340 $x19362)) (monotonicity @x19558 @x19660 (= $x16064 $x19661)) (= $x16070 $x19664))))
blanchet@57170
  2380
(let ((@x19693 (monotonicity (trans @x19666 (rewrite (= $x19664 $x19686)) (= $x16070 $x19686)) (= $x16075 $x19691))))
blanchet@57170
  2381
(let ((@x19337 (rewrite (= (or (or $x3763 $x16553 $x11388) $x11404) (or $x3763 $x16553 $x11388 $x11404)))))
blanchet@57170
  2382
(let (($x13283 (and $x2815 $x12168 $x11389)))
blanchet@57170
  2383
(let (($x13286 (not $x13283)))
blanchet@57170
  2384
(let (($x13289 (or $x13286 $x11404)))
blanchet@57170
  2385
(let ((@x19327 (monotonicity (rewrite (= $x13283 (not (or $x3763 $x16553 $x11388)))) (= $x13286 (not (not (or $x3763 $x16553 $x11388)))))))
blanchet@57170
  2386
(let ((@x19331 (trans @x19327 (rewrite (= (not (not (or $x3763 $x16553 $x11388))) (or $x3763 $x16553 $x11388))) (= $x13286 (or $x3763 $x16553 $x11388)))))
blanchet@57170
  2387
(let ((@x19339 (trans (monotonicity @x19331 (= $x13289 (or (or $x3763 $x16553 $x11388) $x11404))) @x19337 (= $x13289 (or $x3763 $x16553 $x11388 $x11404)))))
blanchet@57170
  2388
(let ((@x19696 (monotonicity (quant-intro @x19339 (= $x13292 $x19340)) @x19693 (= $x16078 (and $x19340 $x19691)))))
blanchet@57170
  2389
(let ((@x19305 (monotonicity (rewrite (= (and $x15523 $x15524 (not $x15525)) (not (or $x19297 $x19298 $x15525)))) (= $x15528 (not (not (or $x19297 $x19298 $x15525)))))))
blanchet@57170
  2390
(let ((@x19309 (trans @x19305 (rewrite (= (not (not (or $x19297 $x19298 $x15525))) (or $x19297 $x19298 $x15525))) (= $x15528 (or $x19297 $x19298 $x15525)))))
blanchet@57170
  2391
(let ((@x19317 (trans (monotonicity @x19309 (= $x15534 (or (or $x19297 $x19298 $x15525) $x15533))) (rewrite (= (or (or $x19297 $x19298 $x15525) $x15533) $x19313)) (= $x15534 $x19313))))
blanchet@57170
  2392
(let ((@x19707 (monotonicity (monotonicity @x19317 (= $x15535 $x19318)) (trans @x19696 (rewrite (= (and $x19340 $x19691) $x19700)) (= $x16078 $x19700)) (= $x16081 $x19705))))
blanchet@57170
  2393
(let ((@x19717 (trans (monotonicity @x19707 (= $x16084 (and $x11382 $x19705))) (rewrite (= (and $x11382 $x19705) $x19713)) (= $x16084 $x19713))))
blanchet@57170
  2394
(let ((@x19723 (monotonicity (monotonicity @x19717 (= $x16087 $x19718)) (= $x16093 (and $x10138 $x10141 $x10145 $x10146 $x10147 $x10148 $x19718)))))
blanchet@57170
  2395
(let ((@x19734 (trans @x19723 (rewrite (= (and $x10138 $x10141 $x10145 $x10146 $x10147 $x10148 $x19718) $x19730)) (= $x16093 $x19730))))
blanchet@57170
  2396
(let ((@x19740 (monotonicity (monotonicity @x19734 (= $x16098 $x19735)) (= $x16104 (and $x10138 $x10139 $x19735)))))
blanchet@57170
  2397
(let ((@x19747 (trans @x19740 (rewrite (= (and $x10138 $x10139 $x19735) $x19743)) (= $x16104 $x19743))))
blanchet@57170
  2398
(let ((@x19753 (monotonicity (monotonicity @x19747 (= $x16109 $x19748)) (= $x16112 (and $x10136 $x19748)))))
blanchet@57170
  2399
(let ((@x19763 (monotonicity (trans @x19753 (rewrite (= (and $x10136 $x19748) $x19756)) (= $x16112 $x19756)) (= $x16115 $x19761))))
blanchet@57170
  2400
(let (($x15746 (<= (+ ?x15744 (* (- 1) v_b_S_result_G_0$)) 0)))
blanchet@57170
  2401
(let (($x15741 (and $x15736 $x15737 (not (>= (+ ?v0!15 (* (- 1) v_b_P_H_len$)) 0)))))
blanchet@57170
  2402
(let (($x15748 (not (or (not $x15741) $x15746))))
blanchet@57170
  2403
(let (($x15769 (or $x15748 $x15765)))
blanchet@57170
  2404
(let (($x15732 (not $x11797)))
blanchet@57170
  2405
(let (($x15773 (and $x15732 $x15769)))
blanchet@57170
  2406
(let (($x15777 (or $x15729 $x15773)))
blanchet@57170
  2407
(let (($x15726 (not $x11777)))
blanchet@57170
  2408
(let (($x15781 (and $x15726 $x15777)))
blanchet@57170
  2409
(let (($x15636 (<= (+ ?x15634 (* (- 1) v_b_L_H_max_G_3$)) 0)))
blanchet@57170
  2410
(let (($x15638 (not (or (not (and $x15626 $x15627 (not (>= (+ ?v0!14 ?x11581) 0)))) $x15636))))
blanchet@57170
  2411
(let (($x15655 (or $x15638 $x15651)))
blanchet@57170
  2412
(let (($x15622 (not $x11612)))
blanchet@57170
  2413
(let (($x15659 (and $x15622 $x15655)))
blanchet@57170
  2414
(let (($x15663 (or $x11612 $x15659)))
blanchet@57170
  2415
(let (($x13358 (and $x11570 $x13353 $x11580 $x10358 $x11578 $x11536)))
blanchet@57170
  2416
(let (($x13361 (not $x13358)))
blanchet@57170
  2417
(let (($x15617 (not $x13361)))
blanchet@57170
  2418
(let (($x15667 (and $x15617 $x15663)))
blanchet@57170
  2419
(let (($x15671 (or $x15611 $x15614 $x15667)))
blanchet@57170
  2420
(let (($x15695 (not $x11730)))
blanchet@57170
  2421
(let (($x15698 (and $x15695 $x15671)))
blanchet@57170
  2422
(let (($x15608 (not $x11567)))
blanchet@57170
  2423
(let (($x15675 (and $x15608 $x15671)))
blanchet@57170
  2424
(let (($x15679 (or $x15590 $x15599 $x15675)))
blanchet@57170
  2425
(let (($x15596 (not $x11001)))
blanchet@57170
  2426
(let (($x15683 (and $x15596 $x15679)))
blanchet@57170
  2427
(let (($x15687 (or $x15590 $x15593 $x15683)))
blanchet@57170
  2428
(let (($x15605 (not $x11532)))
blanchet@57170
  2429
(let (($x15691 (and $x15605 $x15687)))
blanchet@57170
  2430
(let (($x15702 (or $x15691 $x15698)))
blanchet@57170
  2431
(let (($x15602 (not $x11512)))
blanchet@57170
  2432
(let (($x15706 (and $x15602 $x15702)))