| author | wenzelm | 
| Sun, 22 Oct 2023 12:18:23 +0200 | |
| changeset 78813 | 1829ba610c36 | 
| parent 69597 | ff784d5a5bfb | 
| permissions | -rw-r--r-- | 
| 17618 | 1 | (* Title: HOL/ex/SAT_Examples.thy | 
| 2 | Author: Alwen Tiu, Tjark Weber | |
| 33510 
e744ad2d0393
Due to popular demand: added a function that benchmarks proof reconstruction
 webertj parents: 
32967diff
changeset | 3 | Copyright 2005-2009 | 
| 17618 | 4 | *) | 
| 5 | ||
| 61343 | 6 | section \<open>Examples for proof methods "sat" and "satx"\<close> | 
| 17618 | 7 | |
| 56851 
35ff4ede3409
renamed 'dpll_p' to 'cdclite', to avoid confusion with the old 'dpll' and to reflect the idea that the new prover implements some ideas from CDCL not in DPLL -- this follows its author's, Sascha B.'s, wish
 blanchet parents: 
56815diff
changeset | 8 | theory SAT_Examples | 
| 
35ff4ede3409
renamed 'dpll_p' to 'cdclite', to avoid confusion with the old 'dpll' and to reflect the idea that the new prover implements some ideas from CDCL not in DPLL -- this follows its author's, Sascha B.'s, wish
 blanchet parents: 
56815diff
changeset | 9 | imports Main | 
| 17618 | 10 | begin | 
| 11 | ||
| 55240 | 12 | (* | 
| 13 | declare [[sat_solver = zchaff_with_proofs]] | |
| 14 | declare [[sat_solver = minisat_with_proofs]] | |
| 56815 | 15 | declare [[sat_trace]] | 
| 55240 | 16 | *) | 
| 17 | ||
| 17809 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 18 | lemma "True" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 19 | by sat | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 20 | |
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 21 | lemma "a | ~a" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 22 | by sat | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 23 | |
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 24 | lemma "(a | b) & ~a \<Longrightarrow> b" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 25 | by sat | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 26 | |
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 27 | lemma "(a & b) | (c & d) \<Longrightarrow> (a & b) | (c & d)" | 
| 19974 | 28 | (* | 
| 55240 | 29 | apply (tactic {* CNF.cnf_rewrite_tac @{context} 1 *})
 | 
| 19974 | 30 | *) | 
| 17809 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 31 | by sat | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 32 | |
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 33 | lemma "(a & b) | (c & d) \<Longrightarrow> (a & b) | (c & d)" | 
| 19974 | 34 | (* | 
| 55240 | 35 | apply (tactic {* CNF.cnfx_rewrite_tac @{context} 1 *})
 | 
| 17809 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 36 | apply (erule exE | erule conjE)+ | 
| 19974 | 37 | *) | 
| 17809 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 38 | by satx | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 39 | |
| 23609 | 40 | lemma "(a & b | c & d) & (e & f | g & h) | (i & j | k & l) & (m & n | p & q) | 
| 41 | \<Longrightarrow> (a & b | c & d) & (e & f | g & h) | (i & j | k & l) & (m & n | p & q)" | |
| 19974 | 42 | (* | 
| 55240 | 43 | apply (tactic {* CNF.cnf_rewrite_tac @{context} 1 *})
 | 
| 19974 | 44 | *) | 
| 17809 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 45 | by sat | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 46 | |
| 23609 | 47 | lemma "(a & b | c & d) & (e & f | g & h) | (i & j | k & l) & (m & n | p & q) | 
| 48 | \<Longrightarrow> (a & b | c & d) & (e & f | g & h) | (i & j | k & l) & (m & n | p & q)" | |
| 19974 | 49 | (* | 
| 55240 | 50 | apply (tactic {* CNF.cnfx_rewrite_tac @{context} 1 *})
 | 
| 17809 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 51 | apply (erule exE | erule conjE)+ | 
| 19974 | 52 | *) | 
| 17809 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 53 | by satx | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 54 | |
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 55 | lemma "P=P=P=P=P=P=P=P=P=P" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 56 | by sat | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 57 | |
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 58 | lemma "P=P=P=P=P=P=P=P=P=P" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 59 | by satx | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 60 | |
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 61 | lemma "!! a b c. [| a | b | c | d ; | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 62 | e | f | (a & d) ; | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 63 | ~(a | (c & ~c)) | b ; | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 64 | ~(b & (x | ~x)) | c ; | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 65 | ~(d | False) | c ; | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 66 | ~(c | (~p & (p | (q & ~q)))) |] ==> False" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 67 | by sat | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 68 | |
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 69 | lemma "!! a b c. [| a | b | c | d ; | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 70 | e | f | (a & d) ; | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 71 | ~(a | (c & ~c)) | b ; | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 72 | ~(b & (x | ~x)) | c ; | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 73 | ~(d | False) | c ; | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 74 | ~(c | (~p & (p | (q & ~q)))) |] ==> False" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 75 | by satx | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 76 | |
| 61343 | 77 | text \<open>eta-Equivalence\<close> | 
| 19534 | 78 | |
| 67613 | 79 | lemma "(\<forall>x. P x) \<or> \<not> All P" | 
| 19534 | 80 | by sat | 
| 81 | ||
| 55240 | 82 | declare [[sat_trace = false]] | 
| 52059 | 83 | declare [[quick_and_dirty = false]] | 
| 17809 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 84 | |
| 61343 | 85 | method_setup rawsat = \<open> | 
| 55239 | 86 | Scan.succeed (SIMPLE_METHOD' o SAT.rawsat_tac) | 
| 61343 | 87 | \<close> "SAT solver (no preprocessing)" | 
| 17809 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 88 | |
| 17618 | 89 | (* Translated from TPTP problem library: PUZ015-2.006.dimacs *) | 
| 90 | ||
| 91 | lemma assumes 1: "~x0" | |
| 92 | and 2: "~x30" | |
| 93 | and 3: "~x29" | |
| 94 | and 4: "~x59" | |
| 95 | and 5: "x1 | x31 | x0" | |
| 96 | and 6: "x2 | x32 | x1" | |
| 97 | and 7: "x3 | x33 | x2" | |
| 98 | and 8: "x4 | x34 | x3" | |
| 99 | and 9: "x35 | x4" | |
| 100 | and 10: "x5 | x36 | x30" | |
| 101 | and 11: "x6 | x37 | x5 | x31" | |
| 102 | and 12: "x7 | x38 | x6 | x32" | |
| 103 | and 13: "x8 | x39 | x7 | x33" | |
| 104 | and 14: "x9 | x40 | x8 | x34" | |
| 105 | and 15: "x41 | x9 | x35" | |
| 106 | and 16: "x10 | x42 | x36" | |
| 107 | and 17: "x11 | x43 | x10 | x37" | |
| 108 | and 18: "x12 | x44 | x11 | x38" | |
| 109 | and 19: "x13 | x45 | x12 | x39" | |
| 110 | and 20: "x14 | x46 | x13 | x40" | |
| 111 | and 21: "x47 | x14 | x41" | |
| 112 | and 22: "x15 | x48 | x42" | |
| 113 | and 23: "x16 | x49 | x15 | x43" | |
| 114 | and 24: "x17 | x50 | x16 | x44" | |
| 115 | and 25: "x18 | x51 | x17 | x45" | |
| 116 | and 26: "x19 | x52 | x18 | x46" | |
| 117 | and 27: "x53 | x19 | x47" | |
| 118 | and 28: "x20 | x54 | x48" | |
| 119 | and 29: "x21 | x55 | x20 | x49" | |
| 120 | and 30: "x22 | x56 | x21 | x50" | |
| 121 | and 31: "x23 | x57 | x22 | x51" | |
| 122 | and 32: "x24 | x58 | x23 | x52" | |
| 123 | and 33: "x59 | x24 | x53" | |
| 124 | and 34: "x25 | x54" | |
| 125 | and 35: "x26 | x25 | x55" | |
| 126 | and 36: "x27 | x26 | x56" | |
| 127 | and 37: "x28 | x27 | x57" | |
| 128 | and 38: "x29 | x28 | x58" | |
| 129 | and 39: "~x1 | ~x31" | |
| 130 | and 40: "~x1 | ~x0" | |
| 131 | and 41: "~x31 | ~x0" | |
| 132 | and 42: "~x2 | ~x32" | |
| 133 | and 43: "~x2 | ~x1" | |
| 134 | and 44: "~x32 | ~x1" | |
| 135 | and 45: "~x3 | ~x33" | |
| 136 | and 46: "~x3 | ~x2" | |
| 137 | and 47: "~x33 | ~x2" | |
| 138 | and 48: "~x4 | ~x34" | |
| 139 | and 49: "~x4 | ~x3" | |
| 140 | and 50: "~x34 | ~x3" | |
| 141 | and 51: "~x35 | ~x4" | |
| 142 | and 52: "~x5 | ~x36" | |
| 143 | and 53: "~x5 | ~x30" | |
| 144 | and 54: "~x36 | ~x30" | |
| 145 | and 55: "~x6 | ~x37" | |
| 146 | and 56: "~x6 | ~x5" | |
| 147 | and 57: "~x6 | ~x31" | |
| 148 | and 58: "~x37 | ~x5" | |
| 149 | and 59: "~x37 | ~x31" | |
| 150 | and 60: "~x5 | ~x31" | |
| 151 | and 61: "~x7 | ~x38" | |
| 152 | and 62: "~x7 | ~x6" | |
| 153 | and 63: "~x7 | ~x32" | |
| 154 | and 64: "~x38 | ~x6" | |
| 155 | and 65: "~x38 | ~x32" | |
| 156 | and 66: "~x6 | ~x32" | |
| 157 | and 67: "~x8 | ~x39" | |
| 158 | and 68: "~x8 | ~x7" | |
| 159 | and 69: "~x8 | ~x33" | |
| 160 | and 70: "~x39 | ~x7" | |
| 161 | and 71: "~x39 | ~x33" | |
| 162 | and 72: "~x7 | ~x33" | |
| 163 | and 73: "~x9 | ~x40" | |
| 164 | and 74: "~x9 | ~x8" | |
| 165 | and 75: "~x9 | ~x34" | |
| 166 | and 76: "~x40 | ~x8" | |
| 167 | and 77: "~x40 | ~x34" | |
| 168 | and 78: "~x8 | ~x34" | |
| 169 | and 79: "~x41 | ~x9" | |
| 170 | and 80: "~x41 | ~x35" | |
| 171 | and 81: "~x9 | ~x35" | |
| 172 | and 82: "~x10 | ~x42" | |
| 173 | and 83: "~x10 | ~x36" | |
| 174 | and 84: "~x42 | ~x36" | |
| 175 | and 85: "~x11 | ~x43" | |
| 176 | and 86: "~x11 | ~x10" | |
| 177 | and 87: "~x11 | ~x37" | |
| 178 | and 88: "~x43 | ~x10" | |
| 179 | and 89: "~x43 | ~x37" | |
| 180 | and 90: "~x10 | ~x37" | |
| 181 | and 91: "~x12 | ~x44" | |
| 182 | and 92: "~x12 | ~x11" | |
| 183 | and 93: "~x12 | ~x38" | |
| 184 | and 94: "~x44 | ~x11" | |
| 185 | and 95: "~x44 | ~x38" | |
| 186 | and 96: "~x11 | ~x38" | |
| 187 | and 97: "~x13 | ~x45" | |
| 188 | and 98: "~x13 | ~x12" | |
| 189 | and 99: "~x13 | ~x39" | |
| 190 | and 100: "~x45 | ~x12" | |
| 191 | and 101: "~x45 | ~x39" | |
| 192 | and 102: "~x12 | ~x39" | |
| 193 | and 103: "~x14 | ~x46" | |
| 194 | and 104: "~x14 | ~x13" | |
| 195 | and 105: "~x14 | ~x40" | |
| 196 | and 106: "~x46 | ~x13" | |
| 197 | and 107: "~x46 | ~x40" | |
| 198 | and 108: "~x13 | ~x40" | |
| 199 | and 109: "~x47 | ~x14" | |
| 200 | and 110: "~x47 | ~x41" | |
| 201 | and 111: "~x14 | ~x41" | |
| 202 | and 112: "~x15 | ~x48" | |
| 203 | and 113: "~x15 | ~x42" | |
| 204 | and 114: "~x48 | ~x42" | |
| 205 | and 115: "~x16 | ~x49" | |
| 206 | and 116: "~x16 | ~x15" | |
| 207 | and 117: "~x16 | ~x43" | |
| 208 | and 118: "~x49 | ~x15" | |
| 209 | and 119: "~x49 | ~x43" | |
| 210 | and 120: "~x15 | ~x43" | |
| 211 | and 121: "~x17 | ~x50" | |
| 212 | and 122: "~x17 | ~x16" | |
| 213 | and 123: "~x17 | ~x44" | |
| 214 | and 124: "~x50 | ~x16" | |
| 215 | and 125: "~x50 | ~x44" | |
| 216 | and 126: "~x16 | ~x44" | |
| 217 | and 127: "~x18 | ~x51" | |
| 218 | and 128: "~x18 | ~x17" | |
| 219 | and 129: "~x18 | ~x45" | |
| 220 | and 130: "~x51 | ~x17" | |
| 221 | and 131: "~x51 | ~x45" | |
| 222 | and 132: "~x17 | ~x45" | |
| 223 | and 133: "~x19 | ~x52" | |
| 224 | and 134: "~x19 | ~x18" | |
| 225 | and 135: "~x19 | ~x46" | |
| 226 | and 136: "~x52 | ~x18" | |
| 227 | and 137: "~x52 | ~x46" | |
| 228 | and 138: "~x18 | ~x46" | |
| 229 | and 139: "~x53 | ~x19" | |
| 230 | and 140: "~x53 | ~x47" | |
| 231 | and 141: "~x19 | ~x47" | |
| 232 | and 142: "~x20 | ~x54" | |
| 233 | and 143: "~x20 | ~x48" | |
| 234 | and 144: "~x54 | ~x48" | |
| 235 | and 145: "~x21 | ~x55" | |
| 236 | and 146: "~x21 | ~x20" | |
| 237 | and 147: "~x21 | ~x49" | |
| 238 | and 148: "~x55 | ~x20" | |
| 239 | and 149: "~x55 | ~x49" | |
| 240 | and 150: "~x20 | ~x49" | |
| 241 | and 151: "~x22 | ~x56" | |
| 242 | and 152: "~x22 | ~x21" | |
| 243 | and 153: "~x22 | ~x50" | |
| 244 | and 154: "~x56 | ~x21" | |
| 245 | and 155: "~x56 | ~x50" | |
| 246 | and 156: "~x21 | ~x50" | |
| 247 | and 157: "~x23 | ~x57" | |
| 248 | and 158: "~x23 | ~x22" | |
| 249 | and 159: "~x23 | ~x51" | |
| 250 | and 160: "~x57 | ~x22" | |
| 251 | and 161: "~x57 | ~x51" | |
| 252 | and 162: "~x22 | ~x51" | |
| 253 | and 163: "~x24 | ~x58" | |
| 254 | and 164: "~x24 | ~x23" | |
| 255 | and 165: "~x24 | ~x52" | |
| 256 | and 166: "~x58 | ~x23" | |
| 257 | and 167: "~x58 | ~x52" | |
| 258 | and 168: "~x23 | ~x52" | |
| 259 | and 169: "~x59 | ~x24" | |
| 260 | and 170: "~x59 | ~x53" | |
| 261 | and 171: "~x24 | ~x53" | |
| 262 | and 172: "~x25 | ~x54" | |
| 263 | and 173: "~x26 | ~x25" | |
| 264 | and 174: "~x26 | ~x55" | |
| 265 | and 175: "~x25 | ~x55" | |
| 266 | and 176: "~x27 | ~x26" | |
| 267 | and 177: "~x27 | ~x56" | |
| 268 | and 178: "~x26 | ~x56" | |
| 269 | and 179: "~x28 | ~x27" | |
| 270 | and 180: "~x28 | ~x57" | |
| 271 | and 181: "~x27 | ~x57" | |
| 272 | and 182: "~x29 | ~x28" | |
| 273 | and 183: "~x29 | ~x58" | |
| 274 | and 184: "~x28 | ~x58" | |
| 275 | shows "False" | |
| 38498 | 276 | using assms | 
| 20440 
e6fe74eebda3
faster clause representation (again): full CNF formula as a hypothesis, instead of separate clauses
 webertj parents: 
20278diff
changeset | 277 | (* | 
| 17618 | 278 | by sat | 
| 20440 
e6fe74eebda3
faster clause representation (again): full CNF formula as a hypothesis, instead of separate clauses
 webertj parents: 
20278diff
changeset | 279 | *) | 
| 61933 | 280 | by rawsat \<comment> \<open>this is without CNF conversion\<close> | 
| 17618 | 281 | |
| 17809 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 282 | (* Translated from TPTP problem library: MSC007-1.008.dimacs *) | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 283 | |
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 284 | lemma assumes 1: "x0 | x1 | x2 | x3 | x4 | x5 | x6" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 285 | and 2: "x7 | x8 | x9 | x10 | x11 | x12 | x13" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 286 | and 3: "x14 | x15 | x16 | x17 | x18 | x19 | x20" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 287 | and 4: "x21 | x22 | x23 | x24 | x25 | x26 | x27" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 288 | and 5: "x28 | x29 | x30 | x31 | x32 | x33 | x34" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 289 | and 6: "x35 | x36 | x37 | x38 | x39 | x40 | x41" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 290 | and 7: "x42 | x43 | x44 | x45 | x46 | x47 | x48" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 291 | and 8: "x49 | x50 | x51 | x52 | x53 | x54 | x55" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 292 | and 9: "~x0 | ~x7" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 293 | and 10: "~x0 | ~x14" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 294 | and 11: "~x0 | ~x21" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 295 | and 12: "~x0 | ~x28" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 296 | and 13: "~x0 | ~x35" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 297 | and 14: "~x0 | ~x42" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 298 | and 15: "~x0 | ~x49" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 299 | and 16: "~x7 | ~x14" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 300 | and 17: "~x7 | ~x21" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 301 | and 18: "~x7 | ~x28" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 302 | and 19: "~x7 | ~x35" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 303 | and 20: "~x7 | ~x42" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 304 | and 21: "~x7 | ~x49" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 305 | and 22: "~x14 | ~x21" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 306 | and 23: "~x14 | ~x28" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 307 | and 24: "~x14 | ~x35" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 308 | and 25: "~x14 | ~x42" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 309 | and 26: "~x14 | ~x49" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 310 | and 27: "~x21 | ~x28" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 311 | and 28: "~x21 | ~x35" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 312 | and 29: "~x21 | ~x42" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 313 | and 30: "~x21 | ~x49" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 314 | and 31: "~x28 | ~x35" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 315 | and 32: "~x28 | ~x42" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 316 | and 33: "~x28 | ~x49" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 317 | and 34: "~x35 | ~x42" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 318 | and 35: "~x35 | ~x49" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 319 | and 36: "~x42 | ~x49" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 320 | and 37: "~x1 | ~x8" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 321 | and 38: "~x1 | ~x15" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 322 | and 39: "~x1 | ~x22" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 323 | and 40: "~x1 | ~x29" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 324 | and 41: "~x1 | ~x36" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 325 | and 42: "~x1 | ~x43" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 326 | and 43: "~x1 | ~x50" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 327 | and 44: "~x8 | ~x15" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 328 | and 45: "~x8 | ~x22" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 329 | and 46: "~x8 | ~x29" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 330 | and 47: "~x8 | ~x36" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 331 | and 48: "~x8 | ~x43" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 332 | and 49: "~x8 | ~x50" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 333 | and 50: "~x15 | ~x22" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 334 | and 51: "~x15 | ~x29" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 335 | and 52: "~x15 | ~x36" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 336 | and 53: "~x15 | ~x43" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 337 | and 54: "~x15 | ~x50" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 338 | and 55: "~x22 | ~x29" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 339 | and 56: "~x22 | ~x36" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 340 | and 57: "~x22 | ~x43" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 341 | and 58: "~x22 | ~x50" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 342 | and 59: "~x29 | ~x36" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 343 | and 60: "~x29 | ~x43" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 344 | and 61: "~x29 | ~x50" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 345 | and 62: "~x36 | ~x43" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 346 | and 63: "~x36 | ~x50" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 347 | and 64: "~x43 | ~x50" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 348 | and 65: "~x2 | ~x9" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 349 | and 66: "~x2 | ~x16" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 350 | and 67: "~x2 | ~x23" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 351 | and 68: "~x2 | ~x30" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 352 | and 69: "~x2 | ~x37" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 353 | and 70: "~x2 | ~x44" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 354 | and 71: "~x2 | ~x51" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 355 | and 72: "~x9 | ~x16" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 356 | and 73: "~x9 | ~x23" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 357 | and 74: "~x9 | ~x30" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 358 | and 75: "~x9 | ~x37" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 359 | and 76: "~x9 | ~x44" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 360 | and 77: "~x9 | ~x51" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 361 | and 78: "~x16 | ~x23" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 362 | and 79: "~x16 | ~x30" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 363 | and 80: "~x16 | ~x37" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 364 | and 81: "~x16 | ~x44" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 365 | and 82: "~x16 | ~x51" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 366 | and 83: "~x23 | ~x30" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 367 | and 84: "~x23 | ~x37" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 368 | and 85: "~x23 | ~x44" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 369 | and 86: "~x23 | ~x51" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 370 | and 87: "~x30 | ~x37" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 371 | and 88: "~x30 | ~x44" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 372 | and 89: "~x30 | ~x51" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 373 | and 90: "~x37 | ~x44" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 374 | and 91: "~x37 | ~x51" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 375 | and 92: "~x44 | ~x51" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 376 | and 93: "~x3 | ~x10" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 377 | and 94: "~x3 | ~x17" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 378 | and 95: "~x3 | ~x24" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 379 | and 96: "~x3 | ~x31" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 380 | and 97: "~x3 | ~x38" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 381 | and 98: "~x3 | ~x45" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 382 | and 99: "~x3 | ~x52" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 383 | and 100: "~x10 | ~x17" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 384 | and 101: "~x10 | ~x24" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 385 | and 102: "~x10 | ~x31" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 386 | and 103: "~x10 | ~x38" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 387 | and 104: "~x10 | ~x45" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 388 | and 105: "~x10 | ~x52" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 389 | and 106: "~x17 | ~x24" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 390 | and 107: "~x17 | ~x31" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 391 | and 108: "~x17 | ~x38" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 392 | and 109: "~x17 | ~x45" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 393 | and 110: "~x17 | ~x52" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 394 | and 111: "~x24 | ~x31" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 395 | and 112: "~x24 | ~x38" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 396 | and 113: "~x24 | ~x45" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 397 | and 114: "~x24 | ~x52" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 398 | and 115: "~x31 | ~x38" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 399 | and 116: "~x31 | ~x45" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 400 | and 117: "~x31 | ~x52" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 401 | and 118: "~x38 | ~x45" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 402 | and 119: "~x38 | ~x52" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 403 | and 120: "~x45 | ~x52" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 404 | and 121: "~x4 | ~x11" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 405 | and 122: "~x4 | ~x18" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 406 | and 123: "~x4 | ~x25" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 407 | and 124: "~x4 | ~x32" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 408 | and 125: "~x4 | ~x39" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 409 | and 126: "~x4 | ~x46" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 410 | and 127: "~x4 | ~x53" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 411 | and 128: "~x11 | ~x18" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 412 | and 129: "~x11 | ~x25" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 413 | and 130: "~x11 | ~x32" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 414 | and 131: "~x11 | ~x39" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 415 | and 132: "~x11 | ~x46" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 416 | and 133: "~x11 | ~x53" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 417 | and 134: "~x18 | ~x25" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 418 | and 135: "~x18 | ~x32" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 419 | and 136: "~x18 | ~x39" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 420 | and 137: "~x18 | ~x46" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 421 | and 138: "~x18 | ~x53" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 422 | and 139: "~x25 | ~x32" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 423 | and 140: "~x25 | ~x39" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 424 | and 141: "~x25 | ~x46" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 425 | and 142: "~x25 | ~x53" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 426 | and 143: "~x32 | ~x39" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 427 | and 144: "~x32 | ~x46" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 428 | and 145: "~x32 | ~x53" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 429 | and 146: "~x39 | ~x46" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 430 | and 147: "~x39 | ~x53" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 431 | and 148: "~x46 | ~x53" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 432 | and 149: "~x5 | ~x12" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 433 | and 150: "~x5 | ~x19" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 434 | and 151: "~x5 | ~x26" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 435 | and 152: "~x5 | ~x33" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 436 | and 153: "~x5 | ~x40" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 437 | and 154: "~x5 | ~x47" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 438 | and 155: "~x5 | ~x54" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 439 | and 156: "~x12 | ~x19" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 440 | and 157: "~x12 | ~x26" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 441 | and 158: "~x12 | ~x33" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 442 | and 159: "~x12 | ~x40" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 443 | and 160: "~x12 | ~x47" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 444 | and 161: "~x12 | ~x54" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 445 | and 162: "~x19 | ~x26" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 446 | and 163: "~x19 | ~x33" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 447 | and 164: "~x19 | ~x40" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 448 | and 165: "~x19 | ~x47" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 449 | and 166: "~x19 | ~x54" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 450 | and 167: "~x26 | ~x33" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 451 | and 168: "~x26 | ~x40" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 452 | and 169: "~x26 | ~x47" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 453 | and 170: "~x26 | ~x54" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 454 | and 171: "~x33 | ~x40" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 455 | and 172: "~x33 | ~x47" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 456 | and 173: "~x33 | ~x54" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 457 | and 174: "~x40 | ~x47" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 458 | and 175: "~x40 | ~x54" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 459 | and 176: "~x47 | ~x54" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 460 | and 177: "~x6 | ~x13" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 461 | and 178: "~x6 | ~x20" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 462 | and 179: "~x6 | ~x27" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 463 | and 180: "~x6 | ~x34" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 464 | and 181: "~x6 | ~x41" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 465 | and 182: "~x6 | ~x48" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 466 | and 183: "~x6 | ~x55" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 467 | and 184: "~x13 | ~x20" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 468 | and 185: "~x13 | ~x27" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 469 | and 186: "~x13 | ~x34" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 470 | and 187: "~x13 | ~x41" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 471 | and 188: "~x13 | ~x48" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 472 | and 189: "~x13 | ~x55" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 473 | and 190: "~x20 | ~x27" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 474 | and 191: "~x20 | ~x34" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 475 | and 192: "~x20 | ~x41" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 476 | and 193: "~x20 | ~x48" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 477 | and 194: "~x20 | ~x55" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 478 | and 195: "~x27 | ~x34" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 479 | and 196: "~x27 | ~x41" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 480 | and 197: "~x27 | ~x48" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 481 | and 198: "~x27 | ~x55" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 482 | and 199: "~x34 | ~x41" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 483 | and 200: "~x34 | ~x48" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 484 | and 201: "~x34 | ~x55" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 485 | and 202: "~x41 | ~x48" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 486 | and 203: "~x41 | ~x55" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 487 | and 204: "~x48 | ~x55" | 
| 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 488 | shows "False" | 
| 38498 | 489 | using assms | 
| 20440 
e6fe74eebda3
faster clause representation (again): full CNF formula as a hypothesis, instead of separate clauses
 webertj parents: 
20278diff
changeset | 490 | (* | 
| 17809 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 491 | by sat | 
| 20440 
e6fe74eebda3
faster clause representation (again): full CNF formula as a hypothesis, instead of separate clauses
 webertj parents: 
20278diff
changeset | 492 | *) | 
| 61933 | 493 | by rawsat \<comment> \<open>this is without CNF conversion\<close> | 
| 20440 
e6fe74eebda3
faster clause representation (again): full CNF formula as a hypothesis, instead of separate clauses
 webertj parents: 
20278diff
changeset | 494 | |
| 
e6fe74eebda3
faster clause representation (again): full CNF formula as a hypothesis, instead of separate clauses
 webertj parents: 
20278diff
changeset | 495 | (* Old sequent clause representation ("[c_i, p, ~q, \<dots>] \<turnstile> False"):
 | 
| 23609 | 496 | sat, zchaff_with_proofs: 8705 resolution steps in | 
| 497 | +++ User 1.154 All 1.189 secs | |
| 498 | sat, minisat_with_proofs: 40790 resolution steps in | |
| 499 | +++ User 3.762 All 3.806 secs | |
| 17809 
195045659c06
Tactics sat and satx reimplemented, several improvements
 webertj parents: 
17622diff
changeset | 500 | |
| 23609 | 501 | rawsat, zchaff_with_proofs: 8705 resolution steps in | 
| 502 | +++ User 0.731 All 0.751 secs | |
| 503 | rawsat, minisat_with_proofs: 40790 resolution steps in | |
| 504 | +++ User 3.514 All 3.550 secs | |
| 20440 
e6fe74eebda3
faster clause representation (again): full CNF formula as a hypothesis, instead of separate clauses
 webertj parents: 
20278diff
changeset | 505 | |
| 
e6fe74eebda3
faster clause representation (again): full CNF formula as a hypothesis, instead of separate clauses
 webertj parents: 
20278diff
changeset | 506 |    CNF clause representation ("[c_1 && \<dots> && c_n, p, ~q, \<dots>] \<turnstile> False"):
 | 
| 23609 | 507 | rawsat, zchaff_with_proofs: 8705 resolution steps in | 
| 508 | +++ User 0.653 All 0.670 secs | |
| 509 | rawsat, minisat_with_proofs: 40790 resolution steps in | |
| 510 | +++ User 1.860 All 1.886 secs | |
| 20440 
e6fe74eebda3
faster clause representation (again): full CNF formula as a hypothesis, instead of separate clauses
 webertj parents: 
20278diff
changeset | 511 | |
| 
e6fe74eebda3
faster clause representation (again): full CNF formula as a hypothesis, instead of separate clauses
 webertj parents: 
20278diff
changeset | 512 | (as of 2006-08-30, on a 2.5 GHz Pentium 4) | 
| 20277 
967a3c7fd1f6
comment (timing information for last example) added
 webertj parents: 
20135diff
changeset | 513 | *) | 
| 
967a3c7fd1f6
comment (timing information for last example) added
 webertj parents: 
20135diff
changeset | 514 | |
| 61343 | 515 | text \<open> | 
| 33510 
e744ad2d0393
Due to popular demand: added a function that benchmarks proof reconstruction
 webertj parents: 
32967diff
changeset | 516 | Function {\tt benchmark} takes the name of an existing DIMACS CNF
 | 
| 
e744ad2d0393
Due to popular demand: added a function that benchmarks proof reconstruction
 webertj parents: 
32967diff
changeset | 517 | file, parses this file, passes the problem to a SAT solver, and checks | 
| 
e744ad2d0393
Due to popular demand: added a function that benchmarks proof reconstruction
 webertj parents: 
32967diff
changeset | 518 | the proof of unsatisfiability found by the solver. The function | 
| 
e744ad2d0393
Due to popular demand: added a function that benchmarks proof reconstruction
 webertj parents: 
32967diff
changeset | 519 | measures the time spent on proof reconstruction (at least real time | 
| 
e744ad2d0393
Due to popular demand: added a function that benchmarks proof reconstruction
 webertj parents: 
32967diff
changeset | 520 | also includes time spent in the SAT solver), and additionally returns | 
| 
e744ad2d0393
Due to popular demand: added a function that benchmarks proof reconstruction
 webertj parents: 
32967diff
changeset | 521 | the number of resolution steps in the proof. | 
| 61343 | 522 | \<close> | 
| 33510 
e744ad2d0393
Due to popular demand: added a function that benchmarks proof reconstruction
 webertj parents: 
32967diff
changeset | 523 | |
| 55240 | 524 | (* | 
| 525 | declare [[sat_solver = zchaff_with_proofs]] | |
| 526 | declare [[sat_trace = false]] | |
| 52059 | 527 | declare [[quick_and_dirty = false]] | 
| 528 | *) | |
| 61343 | 529 | ML \<open> | 
| 55239 | 530 | fun benchmark dimacsfile = | 
| 531 | let | |
| 56853 | 532 | val prop_fm = SAT_Solver.read_dimacs_cnf_file (Path.explode dimacsfile) | 
| 55239 | 533 | fun and_to_list (Prop_Logic.And (fm1, fm2)) acc = and_to_list fm2 (fm1 :: acc) | 
| 534 | | and_to_list fm acc = rev (fm :: acc) | |
| 535 | val clauses = and_to_list prop_fm [] | |
| 536 | val terms = map (HOLogic.mk_Trueprop o Prop_Logic.term_of_prop_formula) clauses | |
| 69597 | 537 | val cterms = map (Thm.cterm_of \<^context>) terms | 
| 55239 | 538 | val start = Timing.start () | 
| 69597 | 539 | val _ = SAT.rawsat_thm \<^context> cterms | 
| 55239 | 540 | in | 
| 541 | (Timing.result start, ! SAT.counter) | |
| 542 | end; | |
| 61343 | 543 | \<close> | 
| 33510 
e744ad2d0393
Due to popular demand: added a function that benchmarks proof reconstruction
 webertj parents: 
32967diff
changeset | 544 | |
| 17618 | 545 | end |