1 2(SDEFUN |GROUPP;groupPresentation;LL$;1| 3 ((|gens1| |List| (|NonNegativeInteger|)) 4 (|rels1| |List| (|List| (|Integer|))) ($ $)) 5 (SPROG 6 ((#1=#:G459 NIL) (|r| NIL) (#2=#:G458 NIL) 7 (|g| (|PrimitiveArray| (|NonNegativeInteger|)))) 8 (SEQ (LETT |g| (SPADCALL |gens1| (QREFELT $ 9))) 9 (EXIT 10 (CONS |g| 11 (PROGN 12 (LETT #2# NIL) 13 (SEQ (LETT |r| NIL) (LETT #1# |rels1|) G190 14 (COND 15 ((OR (ATOM #1#) (PROGN (LETT |r| (CAR #1#)) NIL)) 16 (GO G191))) 17 (SEQ 18 (EXIT 19 (COND 20 ((NULL (NULL |r|)) (LETT #2# (CONS |r| #2#)))))) 21 (LETT #1# (CDR #1#)) (GO G190) G191 22 (EXIT (NREVERSE #2#))))))))) 23 24(SDEFUN |GROUPP;groupPresentation;L$;2| 25 ((|gens1| |List| (|NonNegativeInteger|)) ($ $)) 26 (SPROG 27 ((|rels2| (|List| (|List| (|Integer|)))) 28 (|g| (|PrimitiveArray| (|NonNegativeInteger|)))) 29 (SEQ (LETT |g| (SPADCALL |gens1| (QREFELT $ 9))) (LETT |rels2| NIL) 30 (EXIT (CONS |g| |rels2|))))) 31 32(SDEFUN |GROUPP;groupPresentation;$;3| (($ $)) 33 (SPROG 34 ((|rels1| (|List| (|List| (|Integer|)))) 35 (|gens1| (|List| (|NonNegativeInteger|)))) 36 (SEQ (LETT |gens1| NIL) (LETT |rels1| NIL) 37 (EXIT (SPADCALL |gens1| |rels1| (QREFELT $ 11)))))) 38 39(SDEFUN |GROUPP;mapGen| 40 ((|a| |Integer|) 41 (|ms| |List| 42 (|Record| (|:| |OldGen| (|NonNegativeInteger|)) 43 (|:| |NewGen| (|NonNegativeInteger|)))) 44 ($ |Integer|)) 45 (SPROG ((#1=#:G471 NIL) (#2=#:G472 NIL) (|m| NIL)) 46 (SEQ 47 (EXIT 48 (SEQ 49 (SEQ (LETT |m| NIL) (LETT #2# |ms|) G190 50 (COND 51 ((OR (ATOM #2#) (PROGN (LETT |m| (CAR #2#)) NIL)) 52 (GO G191))) 53 (SEQ 54 (COND 55 ((EQL (ABS |a|) (QCAR |m|)) 56 (PROGN (LETT #1# (QCDR |m|)) (GO #3=#:G470)))) 57 (EXIT 58 (COND 59 ((EQL (ABS |a|) (- (QCAR |m|))) 60 (PROGN (LETT #1# (- (QCDR |m|))) (GO #3#)))))) 61 (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL)) 62 (|error| 63 (SPADCALL 64 (LIST "cant map " (STRINGIMAGE |a|) " in refactor") 65 (QREFELT $ 16))) 66 (EXIT |a|))) 67 #3# (EXIT #1#)))) 68 69(SDEFUN |GROUPP;refactor;2$;5| ((|a| $) ($ $)) 70 (SPROG 71 ((|gens1| (|List| (|NonNegativeInteger|))) (#1=#:G489 NIL) (|gn| NIL) 72 (#2=#:G488 NIL) (|rels1| (|List| (|List| (|Integer|)))) 73 (|newRel| (|List| (|Integer|))) (|newEle| (|Integer|)) 74 (#3=#:G487 NIL) (|ele| NIL) (#4=#:G486 NIL) (|rel| NIL) 75 (|gms| 76 (|List| 77 (|Record| (|:| |OldGen| (|NonNegativeInteger|)) 78 (|:| |NewGen| (|NonNegativeInteger|))))) 79 (|gm| 80 (|Record| (|:| |OldGen| (|NonNegativeInteger|)) 81 (|:| |NewGen| (|NonNegativeInteger|)))) 82 (#5=#:G484 NIL) (|g| NIL) (#6=#:G485 NIL)) 83 (SEQ (LETT |gms| NIL) 84 (SEQ (LETT |gn| 1) 85 (LETT #6# (SPADCALL (QCAR |a|) (QREFELT $ 19))) 86 (LETT |g| NIL) 87 (LETT #5# (SPADCALL (QCAR |a|) (QREFELT $ 17))) G190 88 (COND 89 ((OR (ATOM #5#) (PROGN (LETT |g| (CAR #5#)) NIL) 90 (|greater_SI| |gn| #6#)) 91 (GO G191))) 92 (SEQ (LETT |gm| (CONS |g| |gn|)) 93 (EXIT 94 (LETT |gms| (SPADCALL |gms| |gm| (QREFELT $ 22))))) 95 (LETT #5# (PROG1 (CDR #5#) (LETT |gn| (|inc_SI| |gn|)))) 96 (GO G190) G191 (EXIT NIL)) 97 (LETT |rels1| NIL) 98 (SEQ (LETT |rel| NIL) (LETT #4# (QCDR |a|)) G190 99 (COND 100 ((OR (ATOM #4#) (PROGN (LETT |rel| (CAR #4#)) NIL)) 101 (GO G191))) 102 (SEQ (LETT |newRel| NIL) 103 (SEQ (LETT |ele| NIL) (LETT #3# |rel|) G190 104 (COND 105 ((OR (ATOM #3#) 106 (PROGN (LETT |ele| (CAR #3#)) NIL)) 107 (GO G191))) 108 (SEQ 109 (LETT |newEle| (|GROUPP;mapGen| |ele| |gms| $)) 110 (EXIT 111 (LETT |newRel| 112 (SPADCALL |newRel| |newEle| 113 (QREFELT $ 25))))) 114 (LETT #3# (CDR #3#)) (GO G190) G191 (EXIT NIL)) 115 (EXIT 116 (LETT |rels1| 117 (SPADCALL |rels1| |newRel| (QREFELT $ 26))))) 118 (LETT #4# (CDR #4#)) (GO G190) G191 (EXIT NIL)) 119 (LETT |gens1| 120 (PROGN 121 (LETT #2# NIL) 122 (SEQ (LETT |gn| 1) 123 (LETT #1# (SPADCALL (QCAR |a|) (QREFELT $ 19))) G190 124 (COND ((|greater_SI| |gn| #1#) (GO G191))) 125 (SEQ (EXIT (LETT #2# (CONS |gn| #2#)))) 126 (LETT |gn| (|inc_SI| |gn|)) (GO G190) G191 127 (EXIT (NREVERSE #2#))))) 128 (EXIT (SPADCALL |gens1| |rels1| (QREFELT $ 11)))))) 129 130(SDEFUN |GROUPP;=;2$B;6| ((|a| $) (|b| $) ($ |Boolean|)) 131 (SPROG 132 ((|brs| #1=(|List| (|List| (|Integer|)))) (|ars| #1#) (#2=#:G494 NIL) 133 (|bgs| #3=(|List| (|NonNegativeInteger|))) (|ags| #3#) (|br| ($)) 134 (|ar| ($))) 135 (SEQ 136 (EXIT 137 (SEQ (LETT |ar| (SPADCALL |a| (QREFELT $ 27))) 138 (LETT |br| (SPADCALL |b| (QREFELT $ 27))) 139 (LETT |ags| (SPADCALL (QCAR |ar|) (QREFELT $ 17))) 140 (LETT |bgs| (SPADCALL (QCAR |br|) (QREFELT $ 17))) 141 (COND 142 ((SPADCALL (SPADCALL |ags| (QREFELT $ 29)) 143 (SPADCALL |bgs| (QREFELT $ 29)) (QREFELT $ 31)) 144 (PROGN (LETT #2# NIL) (GO #4=#:G493)))) 145 (LETT |ars| (SPADCALL (QCDR |ar|) (QREFELT $ 32))) 146 (LETT |brs| (SPADCALL (QCDR |br|) (QREFELT $ 32))) 147 (EXIT 148 (SPADCALL (SPADCALL |ars| (QREFELT $ 34)) 149 (SPADCALL |brs| (QREFELT $ 34)) (QREFELT $ 35))))) 150 #4# (EXIT #2#)))) 151 152(SDEFUN |GROUPP;outputGen| ((|i2| |Integer|) ($ |OutputForm|)) 153 (SPROG 154 ((#1=#:G498 NIL) (|n| (|OutputForm|)) (|letters| (|String|)) 155 (|i| #2=(|Integer|)) (|suffix| #3=(|Integer|)) 156 (|#G18| (|Record| (|:| |quotient| #3#) (|:| |remainder| #2#)))) 157 (SEQ 158 (EXIT 159 (SEQ 160 (PROGN 161 (LETT |#G18| (DIVIDE2 (ABS |i2|) 25)) 162 (LETT |suffix| (QCAR |#G18|)) 163 (LETT |i| (QCDR |#G18|)) 164 |#G18|) 165 (LETT |letters| "eabcdfghijklmnopqrstuvwxyz") 166 (LETT |n| 167 (SPADCALL (SPADCALL |letters| (+ |i| 1) (QREFELT $ 38)) 168 (QREFELT $ 40))) 169 (COND 170 ((> |suffix| 0) 171 (LETT |n| 172 (SPADCALL |n| (SPADCALL (+ |suffix| 1) (QREFELT $ 41)) 173 (QREFELT $ 42))))) 174 (COND 175 ((< |i2| 0) 176 (PROGN 177 (LETT #1# 178 (SPADCALL (SPADCALL "-" (QREFELT $ 43)) |n| 179 (QREFELT $ 42))) 180 (GO #4=#:G497)))) 181 (EXIT |n|))) 182 #4# (EXIT #1#)))) 183 184(SDEFUN |GROUPP;outputRel| ((|r| |List| (|Integer|)) ($ |OutputForm|)) 185 (SPROG 186 ((|seperator| #1=(|OutputForm|)) (|eleout| #1#) 187 (|newterm| (|OutputForm|)) (#2=#:G503 NIL) (|ele| NIL)) 188 (SEQ (LETT |eleout| (SPADCALL "" (QREFELT $ 43))) 189 (LETT |seperator| (SPADCALL " " (QREFELT $ 43))) 190 (SEQ (LETT |ele| NIL) (LETT #2# |r|) G190 191 (COND 192 ((OR (ATOM #2#) (PROGN (LETT |ele| (CAR #2#)) NIL)) 193 (GO G191))) 194 (SEQ (LETT |newterm| (|GROUPP;outputGen| |ele| $)) 195 (LETT |eleout| 196 (SPADCALL (LIST |eleout| |seperator| |newterm|) 197 (QREFELT $ 44))) 198 (EXIT 199 (LETT |seperator| (SPADCALL "*" (QREFELT $ 43))))) 200 (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL)) 201 (EXIT |eleout|)))) 202 203(SDEFUN |GROUPP;outputRelList| 204 ((|i2| |List| (|List| (|Integer|))) ($ |OutputForm|)) 205 (SPROG 206 ((#1=#:G508 NIL) (|rels1| (|List| (|OutputForm|))) (#2=#:G509 NIL) 207 (|r| NIL)) 208 (SEQ 209 (EXIT 210 (SEQ (LETT |rels1| NIL) 211 (SEQ (LETT |r| NIL) (LETT #2# |i2|) G190 212 (COND 213 ((OR (ATOM #2#) (PROGN (LETT |r| (CAR #2#)) NIL)) 214 (GO G191))) 215 (SEQ 216 (EXIT 217 (LETT |rels1| 218 (SPADCALL |rels1| (|GROUPP;outputRel| |r| $) 219 (QREFELT $ 46))))) 220 (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL)) 221 (COND 222 ((> (LENGTH |rels1|) 0) 223 (PROGN 224 (LETT #1# (SPADCALL |rels1| (QREFELT $ 47))) 225 (GO #3=#:G507)))) 226 (EXIT (SPADCALL " " (QREFELT $ 43))))) 227 #3# (EXIT #1#)))) 228 229(SDEFUN |GROUPP;outputGenList| 230 ((|ps| |List| (|NonNegativeInteger|)) ($ |OutputForm|)) 231 (SPROG 232 ((#1=#:G514 NIL) (|gens1| (|List| (|OutputForm|))) (#2=#:G515 NIL) 233 (|p| NIL)) 234 (SEQ 235 (EXIT 236 (SEQ (LETT |gens1| NIL) 237 (SEQ (LETT |p| NIL) (LETT #2# |ps|) G190 238 (COND 239 ((OR (ATOM #2#) (PROGN (LETT |p| (CAR #2#)) NIL)) 240 (GO G191))) 241 (SEQ 242 (EXIT 243 (LETT |gens1| 244 (SPADCALL |gens1| (|GROUPP;outputGen| |p| $) 245 (QREFELT $ 46))))) 246 (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL)) 247 (COND 248 ((> (LENGTH |gens1|) 0) 249 (PROGN 250 (LETT #1# (SPADCALL |gens1| (QREFELT $ 48))) 251 (GO #3=#:G513)))) 252 (EXIT (SPADCALL " " (QREFELT $ 43))))) 253 #3# (EXIT #1#)))) 254 255(SDEFUN |GROUPP;indexesOfRelUsingGen| 256 ((|s| $) (|gen| |NonNegativeInteger|) 257 ($ |List| (|NonNegativeInteger|))) 258 (SPROG 259 ((|res| (|List| (|NonNegativeInteger|))) (#1=#:G522 NIL) (|rel| NIL) 260 (#2=#:G523 NIL) (|reln| NIL) (|r| (|List| (|List| (|Integer|))))) 261 (SEQ (LETT |res| NIL) (LETT |r| (QCDR |s|)) 262 (SEQ (LETT |reln| 1) (LETT #2# (LENGTH |r|)) (LETT |rel| NIL) 263 (LETT #1# |r|) G190 264 (COND 265 ((OR (ATOM #1#) (PROGN (LETT |rel| (CAR #1#)) NIL) 266 (|greater_SI| |reln| #2#)) 267 (GO G191))) 268 (SEQ 269 (COND 270 ((SPADCALL |gen| |rel| (QREFELT $ 49)) 271 (LETT |res| (SPADCALL |res| |reln| (QREFELT $ 50))))) 272 (EXIT 273 (COND 274 ((> |gen| 0) 275 (COND 276 ((SPADCALL (- |gen|) |rel| (QREFELT $ 49)) 277 (LETT |res| 278 (SPADCALL |res| |reln| (QREFELT $ 50))))))))) 279 (LETT #1# (PROG1 (CDR #1#) (LETT |reln| (|inc_SI| |reln|)))) 280 (GO G190) G191 (EXIT NIL)) 281 (EXIT |res|)))) 282 283(SDEFUN |GROUPP;removeGen| 284 ((|gens1| |PrimitiveArray| (|NonNegativeInteger|)) 285 (|val| |NonNegativeInteger|) 286 ($ |PrimitiveArray| (|NonNegativeInteger|))) 287 (SPADCALL |val| |gens1| (QREFELT $ 51))) 288 289(SDEFUN |GROUPP;removeGen2| 290 ((|rels1| |List| (|List| (|Integer|))) (|val| |NonNegativeInteger|) 291 ($ |List| (|List| (|Integer|)))) 292 (SPROG ((#1=#:G528 NIL) (|rel| NIL) (#2=#:G527 NIL)) 293 (SEQ 294 (PROGN 295 (LETT #2# NIL) 296 (SEQ (LETT |rel| NIL) (LETT #1# |rels1|) G190 297 (COND 298 ((OR (ATOM #1#) (PROGN (LETT |rel| (CAR #1#)) NIL)) 299 (GO G191))) 300 (SEQ 301 (EXIT 302 (LETT #2# 303 (CONS 304 (SPADCALL (- |val|) 305 (SPADCALL |val| |rel| (QREFELT $ 52)) 306 (QREFELT $ 52)) 307 #2#)))) 308 (LETT #1# (CDR #1#)) (GO G190) G191 309 (EXIT (NREVERSE #2#))))))) 310 311(SDEFUN |GROUPP;replaceGen| 312 ((|rels1| |List| (|List| (|Integer|))) (|val1| |NonNegativeInteger|) 313 (|val2| |Integer|) ($ |List| (|List| (|Integer|)))) 314 (SPROG 315 ((|rels2| (|List| (|List| (|Integer|)))) (|rel2| (|List| (|Integer|))) 316 (|e| (|Integer|)) (#1=#:G537 NIL) (|ele| NIL) (#2=#:G536 NIL) 317 (|rel| NIL)) 318 (SEQ (LETT |rels2| NIL) 319 (SEQ (LETT |rel| NIL) (LETT #2# |rels1|) G190 320 (COND 321 ((OR (ATOM #2#) (PROGN (LETT |rel| (CAR #2#)) NIL)) 322 (GO G191))) 323 (SEQ (LETT |rel2| NIL) 324 (SEQ (LETT |ele| NIL) (LETT #1# |rel|) G190 325 (COND 326 ((OR (ATOM #1#) 327 (PROGN (LETT |ele| (CAR #1#)) NIL)) 328 (GO G191))) 329 (SEQ (LETT |e| (ABS |ele|)) 330 (COND ((EQL |e| |val1|) (LETT |e| |val2|))) 331 (COND ((< |ele| 0) (LETT |e| (- |e|)))) 332 (EXIT 333 (LETT |rel2| 334 (SPADCALL |rel2| |e| 335 (QREFELT $ 25))))) 336 (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL)) 337 (EXIT 338 (LETT |rels2| 339 (SPADCALL |rels2| |rel2| (QREFELT $ 26))))) 340 (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL)) 341 (EXIT |rels2|)))) 342 343(SDEFUN |GROUPP;TTRemoveGeneratorIfIdentity| 344 ((|s| $) (|trace| |Boolean|) ($ $)) 345 (SPROG 346 ((|rels1| (|List| (|List| (|Integer|)))) 347 (|gens1| (|PrimitiveArray| (|NonNegativeInteger|))) (#1=#:G543 NIL) 348 (|toBeRemoved| (|NonNegativeInteger|)) (#2=#:G544 NIL) (|rel| NIL)) 349 (SEQ 350 (EXIT 351 (SEQ (LETT |gens1| (QCAR |s|)) (LETT |rels1| (QCDR |s|)) 352 (LETT |toBeRemoved| 0) 353 (SEQ (LETT |rel| NIL) (LETT #2# |rels1|) G190 354 (COND 355 ((OR (ATOM #2#) (PROGN (LETT |rel| (CAR #2#)) NIL)) 356 (GO G191))) 357 (SEQ 358 (EXIT 359 (COND 360 ((EQL (LENGTH |rel|) 1) 361 (COND 362 ((EQL |toBeRemoved| 0) 363 (LETT |toBeRemoved| (ABS (|SPADfirst| |rel|))))))))) 364 (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL)) 365 (COND 366 ((EQL |toBeRemoved| 0) (PROGN (LETT #1# |s|) (GO #3=#:G542)))) 367 (COND 368 (|trace| 369 (SPADCALL 370 (SPADCALL 371 (LIST (SPADCALL "simplify: generator '" (QREFELT $ 43)) 372 (|GROUPP;outputGen| |toBeRemoved| $) 373 (SPADCALL "' is identity so remove it" 374 (QREFELT $ 43))) 375 (QREFELT $ 44)) 376 (QREFELT $ 54)))) 377 (LETT |gens1| (|GROUPP;removeGen| |gens1| |toBeRemoved| $)) 378 (LETT |rels1| (|GROUPP;removeGen2| |rels1| |toBeRemoved| $)) 379 (COND 380 (|trace| 381 (SPADCALL (|GROUPP;outputRelList| |rels1| $) 382 (QREFELT $ 54)))) 383 (EXIT (CONS |gens1| |rels1|)))) 384 #3# (EXIT #1#)))) 385 386(SDEFUN |GROUPP;TTRenameGenerator| ((|s| $) (|trace| |Boolean|) ($ $)) 387 (SPROG 388 ((|rels1| (|List| (|List| (|Integer|)))) 389 (|gens1| (|PrimitiveArray| (|NonNegativeInteger|))) (#1=#:G552 NIL) 390 (|replaceFrom| (|NonNegativeInteger|)) (|replaceTo| (|Integer|)) 391 (#2=#:G553 NIL) (|rel| NIL)) 392 (SEQ 393 (EXIT 394 (SEQ (LETT |gens1| (QCAR |s|)) (LETT |rels1| (QCDR |s|)) 395 (LETT |replaceFrom| 0) (LETT |replaceTo| 0) 396 (SEQ (LETT |rel| NIL) (LETT #2# |rels1|) G190 397 (COND 398 ((OR (ATOM #2#) (PROGN (LETT |rel| (CAR #2#)) NIL)) 399 (GO G191))) 400 (SEQ 401 (EXIT 402 (COND 403 ((EQL (LENGTH |rel|) 2) 404 (COND 405 ((EQL |replaceFrom| 0) 406 (SEQ 407 (LETT |replaceTo| (SPADCALL |rel| (QREFELT $ 55))) 408 (LETT |replaceFrom| (ABS (|SPADfirst| |rel|))) 409 (COND 410 ((> (|SPADfirst| |rel|) 0) 411 (LETT |replaceTo| (- |replaceTo|)))) 412 (EXIT 413 (COND 414 ((EQL |replaceFrom| (ABS |replaceTo|)) 415 (LETT |replaceFrom| 0))))))))))) 416 (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL)) 417 (COND 418 ((EQL |replaceFrom| 0) (PROGN (LETT #1# |s|) (GO #3=#:G551)))) 419 (COND 420 (|trace| 421 (SPADCALL 422 (SPADCALL 423 (LIST (SPADCALL "simplify: generator '" (QREFELT $ 43)) 424 (|GROUPP;outputGen| |replaceFrom| $) 425 (SPADCALL "' is replaced by '" (QREFELT $ 43)) 426 (|GROUPP;outputGen| |replaceTo| $) 427 (SPADCALL "'" (QREFELT $ 43))) 428 (QREFELT $ 44)) 429 (QREFELT $ 54)))) 430 (LETT |gens1| (|GROUPP;removeGen| |gens1| |replaceFrom| $)) 431 (LETT |rels1| 432 (|GROUPP;replaceGen| |rels1| |replaceFrom| |replaceTo| 433 $)) 434 (COND 435 (|trace| 436 (SPADCALL (|GROUPP;outputRelList| |rels1| $) 437 (QREFELT $ 54)))) 438 (EXIT (CONS |gens1| |rels1|)))) 439 #3# (EXIT #1#)))) 440 441(SDEFUN |GROUPP;TTRemoveEmpty| ((|s| $) (|trace| |Boolean|) ($ $)) 442 (SPROG 443 ((|rels2| (|List| (|List| (|Integer|)))) (#1=#:G558 NIL) (|rel| NIL) 444 (|rels1| (|List| (|List| (|Integer|)))) 445 (|gens1| (|PrimitiveArray| (|NonNegativeInteger|)))) 446 (SEQ (LETT |gens1| (QCAR |s|)) (LETT |rels1| (QCDR |s|)) 447 (LETT |rels2| NIL) 448 (SEQ (LETT |rel| NIL) (LETT #1# |rels1|) G190 449 (COND 450 ((OR (ATOM #1#) (PROGN (LETT |rel| (CAR #1#)) NIL)) 451 (GO G191))) 452 (SEQ 453 (EXIT 454 (COND 455 ((NULL (NULL |rel|)) 456 (LETT |rels2| 457 (SPADCALL |rels2| |rel| (QREFELT $ 26))))))) 458 (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL)) 459 (EXIT (CONS |gens1| |rels2|))))) 460 461(SDEFUN |GROUPP;TTRemoveZero| ((|s| $) (|trace| |Boolean|) ($ $)) 462 (SPROG 463 ((|rels1| (|List| (|List| (|Integer|)))) 464 (|gens1| (|PrimitiveArray| (|NonNegativeInteger|)))) 465 (SEQ (LETT |gens1| (QCAR |s|)) (LETT |rels1| (QCDR |s|)) 466 (LETT |gens1| (|GROUPP;removeGen| |gens1| 0 $)) 467 (LETT |rels1| (|GROUPP;removeGen2| |rels1| 0 $)) 468 (EXIT (CONS |gens1| |rels1|))))) 469 470(SDEFUN |GROUPP;TTRemoveEleTimesInverse| ((|s| $) (|trace| |Boolean|) ($ $)) 471 (SPROG 472 ((|rels2| (|List| (|List| (|Integer|)))) (|rel2| (|List| (|Integer|))) 473 (|lastele| (|Integer|)) (|changed| (|Boolean|)) (#1=#:G576 NIL) 474 (|ele| NIL) (#2=#:G575 NIL) (|rel| NIL) 475 (|rels1| (|List| (|List| (|Integer|)))) 476 (|gens1| (|PrimitiveArray| (|NonNegativeInteger|)))) 477 (SEQ (LETT |gens1| (QCAR |s|)) (LETT |rels1| (QCDR |s|)) 478 (LETT |rels2| NIL) (LETT |changed| NIL) 479 (SEQ (LETT |rel| NIL) (LETT #2# |rels1|) G190 480 (COND 481 ((OR (ATOM #2#) (PROGN (LETT |rel| (CAR #2#)) NIL)) 482 (GO G191))) 483 (SEQ (LETT |rel2| NIL) (LETT |lastele| 0) 484 (SEQ (LETT |ele| NIL) (LETT #1# |rel|) G190 485 (COND 486 ((OR (ATOM #1#) 487 (PROGN (LETT |ele| (CAR #1#)) NIL)) 488 (GO G191))) 489 (SEQ 490 (EXIT 491 (COND 492 ((EQL (ABS |ele|) (ABS |lastele|)) 493 (COND 494 ((SPADCALL (SPADCALL |ele| (QREFELT $ 56)) 495 (SPADCALL |lastele| 496 (QREFELT $ 56)) 497 (QREFELT $ 57)) 498 (SEQ 499 (COND 500 (|trace| 501 (SPADCALL 502 (SPADCALL 503 (LIST 504 (SPADCALL "simplify: generator '" 505 (QREFELT $ 43)) 506 (|GROUPP;outputGen| |ele| $) 507 (SPADCALL 508 "' is adjacent to its inverse" 509 (QREFELT $ 43))) 510 (QREFELT $ 44)) 511 (QREFELT $ 54)))) 512 (LETT |changed| 'T) 513 (EXIT (LETT |lastele| 0)))) 514 ('T 515 (SEQ 516 (COND 517 ((SPADCALL |lastele| 0 (QREFELT $ 57)) 518 (LETT |rel2| 519 (SPADCALL |rel2| |lastele| 520 (QREFELT $ 25))))) 521 (EXIT (LETT |lastele| |ele|)))))) 522 ('T 523 (SEQ 524 (COND 525 ((SPADCALL |lastele| 0 (QREFELT $ 57)) 526 (LETT |rel2| 527 (SPADCALL |rel2| |lastele| 528 (QREFELT $ 25))))) 529 (EXIT (LETT |lastele| |ele|))))))) 530 (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL)) 531 (COND 532 ((SPADCALL |lastele| 0 (QREFELT $ 57)) 533 (LETT |rel2| 534 (SPADCALL |rel2| |lastele| (QREFELT $ 25))))) 535 (EXIT 536 (COND 537 ((NULL (NULL |rel2|)) 538 (LETT |rels2| 539 (SPADCALL |rels2| |rel2| (QREFELT $ 26))))))) 540 (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL)) 541 (COND 542 (|trace| 543 (COND 544 (|changed| 545 (SPADCALL (|GROUPP;outputRelList| |rels2| $) 546 (QREFELT $ 54)))))) 547 (EXIT (CONS |gens1| |rels2|))))) 548 549(SDEFUN |GROUPP;invertRelation| 550 ((|relationIn| |List| (|Integer|)) ($ |List| (|Integer|))) 551 (SPROG 552 ((|relationOut| (|List| (|Integer|))) (#1=#:G580 NIL) (|ele| NIL)) 553 (SEQ (LETT |relationOut| NIL) 554 (SEQ (LETT |ele| NIL) (LETT #1# |relationIn|) G190 555 (COND 556 ((OR (ATOM #1#) (PROGN (LETT |ele| (CAR #1#)) NIL)) 557 (GO G191))) 558 (SEQ 559 (EXIT (LETT |relationOut| (CONS (- |ele|) |relationOut|)))) 560 (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL)) 561 (EXIT |relationOut|)))) 562 563(SDEFUN |GROUPP;cycleRelation| 564 ((|relationIn| |List| (|Integer|)) ($ |List| (|Integer|))) 565 (SPROG ((|relationOut| (|List| (|Integer|)))) 566 (SEQ 567 (LETT |relationOut| 568 (SPADCALL (CDR |relationIn|) (|SPADfirst| |relationIn|) 569 (QREFELT $ 25))) 570 (EXIT |relationOut|)))) 571 572(SDEFUN |GROUPP;relationEquivalent| 573 ((|relA| |List| (|Integer|)) (|relB| |List| (|Integer|)) ($ |Boolean|)) 574 (SPROG 575 ((#1=#:G590 NIL) (|relBCycle| (|List| (|Integer|))) (#2=#:G591 NIL) 576 (|n| NIL)) 577 (SEQ 578 (EXIT 579 (SEQ 580 (COND 581 ((SPADCALL (LENGTH |relA|) (LENGTH |relB|) (QREFELT $ 58)) 582 (PROGN (LETT #1# NIL) (GO #3=#:G589)))) 583 (COND 584 ((SPADCALL |relA| |relB| (QREFELT $ 59)) 585 (PROGN (LETT #1# 'T) (GO #3#)))) 586 (COND 587 ((SPADCALL |relA| (|GROUPP;invertRelation| |relB| $) 588 (QREFELT $ 59)) 589 (PROGN (LETT #1# 'T) (GO #3#)))) 590 (LETT |relBCycle| (SPADCALL |relB| (QREFELT $ 60))) 591 (SEQ (LETT |n| 1) (LETT #2# (LENGTH |relA|)) G190 592 (COND ((|greater_SI| |n| #2#) (GO G191))) 593 (SEQ (LETT |relBCycle| (|GROUPP;cycleRelation| |relBCycle| $)) 594 (COND 595 ((SPADCALL |relA| |relBCycle| (QREFELT $ 59)) 596 (PROGN (LETT #1# 'T) (GO #3#)))) 597 (EXIT 598 (COND 599 ((SPADCALL |relA| 600 (|GROUPP;invertRelation| |relBCycle| $) 601 (QREFELT $ 59)) 602 (PROGN (LETT #1# 'T) (GO #3#)))))) 603 (LETT |n| (|inc_SI| |n|)) (GO G190) G191 (EXIT NIL)) 604 (EXIT NIL))) 605 #3# (EXIT #1#)))) 606 607(SDEFUN |GROUPP;TTRemoveDuplicateRelation| ((|s| $) (|trace| |Boolean|) ($ $)) 608 (SPROG 609 ((|rels2| (|List| (|List| (|Integer|)))) (|include| (|Boolean|)) 610 (#1=#:G602 NIL) (|relb| NIL) (#2=#:G603 NIL) (|nrelb| NIL) 611 (#3=#:G600 NIL) (|rela| NIL) (#4=#:G601 NIL) (|nrela| NIL) 612 (|rels1| (|List| (|List| (|Integer|)))) 613 (|gens1| (|PrimitiveArray| (|NonNegativeInteger|)))) 614 (SEQ (LETT |gens1| (QCAR |s|)) (LETT |rels1| (QCDR |s|)) 615 (LETT |rels2| NIL) 616 (SEQ (LETT |nrela| 1) (LETT #4# (LENGTH |rels1|)) 617 (LETT |rela| NIL) (LETT #3# |rels1|) G190 618 (COND 619 ((OR (ATOM #3#) (PROGN (LETT |rela| (CAR #3#)) NIL) 620 (|greater_SI| |nrela| #4#)) 621 (GO G191))) 622 (SEQ (LETT |include| 'T) 623 (SEQ (LETT |nrelb| 1) (LETT #2# (LENGTH |rels1|)) 624 (LETT |relb| NIL) (LETT #1# |rels1|) G190 625 (COND 626 ((OR (ATOM #1#) 627 (PROGN (LETT |relb| (CAR #1#)) NIL) 628 (|greater_SI| |nrelb| #2#)) 629 (GO G191))) 630 (SEQ 631 (EXIT 632 (COND 633 ((> |nrela| |nrelb|) 634 (COND 635 ((|GROUPP;relationEquivalent| |rela| |relb| 636 $) 637 (SEQ (LETT |include| NIL) 638 (EXIT 639 (COND 640 (|trace| 641 (SPADCALL 642 (SPADCALL 643 (SPADCALL 644 (SPADCALL 645 (SPADCALL 646 "TTRemoveDuplicateRelation duplicate found " 647 (QREFELT $ 43)) 648 (SPADCALL |rela| (QREFELT $ 61)) 649 (QREFELT $ 42)) 650 (SPADCALL "=" (QREFELT $ 43)) 651 (QREFELT $ 42)) 652 (SPADCALL |relb| (QREFELT $ 61)) 653 (QREFELT $ 42)) 654 (QREFELT $ 54)))))))))))) 655 (LETT #1# 656 (PROG1 (CDR #1#) 657 (LETT |nrelb| (|inc_SI| |nrelb|)))) 658 (GO G190) G191 (EXIT NIL)) 659 (EXIT 660 (COND 661 (|include| 662 (LETT |rels2| 663 (SPADCALL |rels2| |rela| (QREFELT $ 26))))))) 664 (LETT #3# 665 (PROG1 (CDR #3#) (LETT |nrela| (|inc_SI| |nrela|)))) 666 (GO G190) G191 (EXIT NIL)) 667 (EXIT (CONS |gens1| |rels2|))))) 668 669(SDEFUN |GROUPP;TTMinimiseInverses| ((|s| $) (|trace| |Boolean|) ($ $)) 670 (SPROG 671 ((|rels2| (|List| (|List| (|Integer|)))) 672 (|numNonInverts| #1=(|NonNegativeInteger|)) (|numInverts| #1#) 673 (#2=#:G610 NIL) (|ele| NIL) (#3=#:G609 NIL) (|rel| NIL) 674 (|rels1| (|List| (|List| (|Integer|)))) 675 (|gens1| (|PrimitiveArray| (|NonNegativeInteger|)))) 676 (SEQ (LETT |gens1| (QCAR |s|)) (LETT |rels1| (QCDR |s|)) 677 (LETT |rels2| NIL) 678 (SEQ (LETT |rel| NIL) (LETT #3# |rels1|) G190 679 (COND 680 ((OR (ATOM #3#) (PROGN (LETT |rel| (CAR #3#)) NIL)) 681 (GO G191))) 682 (SEQ (LETT |numInverts| 0) (LETT |numNonInverts| 0) 683 (SEQ (LETT |ele| NIL) (LETT #2# |rel|) G190 684 (COND 685 ((OR (ATOM #2#) 686 (PROGN (LETT |ele| (CAR #2#)) NIL)) 687 (GO G191))) 688 (SEQ 689 (EXIT 690 (COND 691 ((< |ele| 0) 692 (LETT |numInverts| (+ |numInverts| 1))) 693 ('T 694 (LETT |numNonInverts| 695 (+ |numNonInverts| 1)))))) 696 (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL)) 697 (EXIT 698 (COND 699 ((> |numInverts| |numNonInverts|) 700 (LETT |rels2| 701 (SPADCALL |rels2| 702 (|GROUPP;invertRelation| |rel| $) 703 (QREFELT $ 26)))) 704 ('T 705 (LETT |rels2| 706 (SPADCALL |rels2| |rel| (QREFELT $ 26))))))) 707 (LETT #3# (CDR #3#)) (GO G190) G191 (EXIT NIL)) 708 (EXIT (CONS |gens1| |rels2|))))) 709 710(SDEFUN |GROUPP;generatorOccurrences| 711 ((|rel| |List| (|Integer|)) (|gen| |NonNegativeInteger|) 712 ($ |NonNegativeInteger|)) 713 (SPROG ((|res| (|NonNegativeInteger|)) (#1=#:G617 NIL) (|g| NIL)) 714 (SEQ (LETT |res| 0) 715 (SEQ (LETT |g| NIL) (LETT #1# |rel|) G190 716 (COND 717 ((OR (ATOM #1#) (PROGN (LETT |g| (CAR #1#)) NIL)) 718 (GO G191))) 719 (SEQ (COND ((EQL |g| |gen|) (LETT |res| (+ |res| 1)))) 720 (EXIT 721 (COND 722 ((> |gen| 0) 723 (COND 724 ((EQL |g| (- |gen|)) 725 (LETT |res| (+ |res| 1)))))))) 726 (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL)) 727 (EXIT |res|)))) 728 729(SDEFUN |GROUPP;removeRelations| 730 ((|rels1| |List| (|List| (|Integer|))) (|val| |NonNegativeInteger|) 731 ($ |List| (|List| (|Integer|)))) 732 (SPROG 733 ((|res| (|List| (|List| (|Integer|)))) (#1=#:G623 NIL) (|rel| NIL)) 734 (SEQ (LETT |res| NIL) 735 (SEQ (LETT |rel| NIL) (LETT #1# |rels1|) G190 736 (COND 737 ((OR (ATOM #1#) (PROGN (LETT |rel| (CAR #1#)) NIL)) 738 (GO G191))) 739 (SEQ 740 (EXIT 741 (COND 742 ((NULL (SPADCALL |val| |rel| (QREFELT $ 49))) 743 (COND 744 ((NULL (SPADCALL (- |val|) |rel| (QREFELT $ 49))) 745 (LETT |res| 746 (SPADCALL |res| |rel| (QREFELT $ 26))))))))) 747 (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL)) 748 (EXIT |res|)))) 749 750(SDEFUN |GROUPP;TTSubstitute| ((|s| $) (|trace| |Boolean|) ($ $)) 751 (SPROG 752 ((|rels1| #1=(|List| (|List| (|Integer|)))) 753 (|gens1| (|PrimitiveArray| (|NonNegativeInteger|))) 754 (|newRel| (|List| (|Integer|))) (#2=#:G647 NIL) (|x| (|Integer|)) 755 (|replacement| (|List| (|Integer|))) (|postr| (|List| (|Integer|))) 756 (|restr| (|List| #3=(|Integer|))) (|prer| (|List| (|Integer|))) 757 (|genInverted| #4=(|Boolean|)) (|found| #4#) (#5=#:G645 NIL) 758 (|genToBeRemoved| #6=(|NonNegativeInteger|)) (|n2| #6#) 759 (|r2| (|List| (|Integer|))) (|n1| #6#) (|r1| (|List| #3#)) 760 (|n3| (|NonNegativeInteger|)) (|r3| (|List| (|Integer|))) 761 (|indexes| (|List| (|NonNegativeInteger|))) (#7=#:G646 NIL) (|g| NIL) 762 (|rs| #1#) (|gs| (|List| (|NonNegativeInteger|)))) 763 (SEQ 764 (EXIT 765 (SEQ (LETT |gs| (SPADCALL (QCAR |s|) (QREFELT $ 17))) 766 (LETT |rs| (QCDR |s|)) (LETT |r1| NIL) (LETT |r2| NIL) 767 (LETT |n1| 0) (LETT |n2| 0) (LETT |genToBeRemoved| 0) 768 (SEQ (LETT |g| NIL) (LETT #7# |gs|) G190 769 (COND 770 ((OR (ATOM #7#) (PROGN (LETT |g| (CAR #7#)) NIL)) 771 (GO G191))) 772 (SEQ 773 (LETT |indexes| 774 (|GROUPP;indexesOfRelUsingGen| |s| |g| $)) 775 (EXIT 776 (COND 777 ((EQL (SPADCALL |indexes| (QREFELT $ 62)) 2) 778 (COND 779 ((EQL |genToBeRemoved| 0) 780 (SEQ (LETT |genToBeRemoved| |g|) 781 (LETT |r1| 782 (SPADCALL |rs| 783 (SPADCALL |indexes| 1 784 (QREFELT $ 63)) 785 (QREFELT $ 64))) 786 (LETT |r2| 787 (SPADCALL |rs| 788 (SPADCALL |indexes| 2 789 (QREFELT $ 63)) 790 (QREFELT $ 64))) 791 (LETT |n1| 792 (|GROUPP;generatorOccurrences| |r1| |g| 793 $)) 794 (LETT |n2| 795 (|GROUPP;generatorOccurrences| |r2| |g| 796 $)) 797 (COND 798 ((SPADCALL |n1| 1 (QREFELT $ 58)) 799 (SEQ (LETT |r3| |r1|) (LETT |n3| |n1|) 800 (LETT |r1| |r2|) (LETT |n1| |n2|) 801 (LETT |r2| |r3|) 802 (EXIT (LETT |n2| |n3|))))) 803 (EXIT 804 (COND 805 ((SPADCALL |n1| 1 (QREFELT $ 58)) 806 (LETT |genToBeRemoved| 0))))))))))) 807 (LETT #7# (CDR #7#)) (GO G190) G191 (EXIT NIL)) 808 (COND 809 ((SPADCALL |n1| 1 (QREFELT $ 58)) 810 (PROGN (LETT #5# |s|) (GO #8=#:G644)))) 811 (COND 812 (|trace| 813 (SEQ 814 (SPADCALL 815 (SPADCALL 816 (SPADCALL 817 (SPADCALL "simplify: TTSubstitute (" (QREFELT $ 43)) 818 (SPADCALL |s| (QREFELT $ 65)) (QREFELT $ 42)) 819 (SPADCALL ")" (QREFELT $ 43)) (QREFELT $ 42)) 820 (QREFELT $ 54)) 821 (SPADCALL 822 (SPADCALL 823 (SPADCALL 824 (SPADCALL 825 (SPADCALL 826 (SPADCALL (SPADCALL "genToBeRemoved=" (QREFELT $ 43)) 827 (|GROUPP;outputGen| |genToBeRemoved| $) 828 (QREFELT $ 42)) 829 (SPADCALL " r1=" (QREFELT $ 43)) (QREFELT $ 42)) 830 (|GROUPP;outputRel| |r1| $) (QREFELT $ 42)) 831 (SPADCALL " r2=" (QREFELT $ 43)) (QREFELT $ 42)) 832 (|GROUPP;outputRel| |r2| $) (QREFELT $ 42)) 833 (QREFELT $ 54)) 834 (EXIT 835 (SPADCALL 836 (SPADCALL 837 (SPADCALL 838 (SPADCALL (SPADCALL "n1=" (QREFELT $ 43)) 839 (SPADCALL |n1| (QREFELT $ 66)) (QREFELT $ 42)) 840 (SPADCALL " n2=" (QREFELT $ 43)) (QREFELT $ 42)) 841 (SPADCALL |n2| (QREFELT $ 66)) (QREFELT $ 42)) 842 (QREFELT $ 54)))))) 843 (LETT |restr| |r1|) (LETT |prer| NIL) (LETT |found| NIL) 844 (LETT |genInverted| NIL) 845 (SEQ G190 846 (COND 847 ((NULL (NULL (OR (NULL |restr|) |found|))) (GO G191))) 848 (SEQ (LETT |x| (|SPADfirst| |restr|)) 849 (LETT |restr| (CDR |restr|)) 850 (EXIT 851 (COND 852 ((OR (EQL |x| |genToBeRemoved|) 853 (EQL |x| (- |genToBeRemoved|))) 854 (SEQ (LETT |found| 'T) 855 (EXIT 856 (COND 857 ((< |x| 0) (LETT |genInverted| 'T)))))) 858 ('T 859 (LETT |prer| 860 (SPADCALL |prer| |x| (QREFELT $ 25))))))) 861 NIL (GO G190) G191 (EXIT NIL)) 862 (LETT |postr| NIL) 863 (SEQ G190 (COND ((NULL (NULL (NULL |restr|))) (GO G191))) 864 (SEQ (LETT |x| (|SPADfirst| |restr|)) 865 (LETT |restr| (CDR |restr|)) 866 (EXIT 867 (LETT |postr| 868 (SPADCALL |postr| |x| (QREFELT $ 25))))) 869 NIL (GO G190) G191 (EXIT NIL)) 870 (LETT |replacement| 871 (SPADCALL (|GROUPP;invertRelation| |prer| $) 872 (|GROUPP;invertRelation| |postr| $) 873 (QREFELT $ 67))) 874 (COND 875 (|trace| 876 (SPADCALL 877 (SPADCALL 878 (SPADCALL 879 (SPADCALL 880 (SPADCALL 881 (SPADCALL 882 (SPADCALL "we will substitute " (QREFELT $ 43)) 883 (|GROUPP;outputRel| |replacement| $) (QREFELT $ 42)) 884 (SPADCALL " for " (QREFELT $ 43)) (QREFELT $ 42)) 885 (|GROUPP;outputGen| |genToBeRemoved| $) (QREFELT $ 42)) 886 (SPADCALL " in " (QREFELT $ 43)) (QREFELT $ 42)) 887 (|GROUPP;outputRel| |r2| $) (QREFELT $ 42)) 888 (QREFELT $ 54)))) 889 (LETT |newRel| NIL) 890 (SEQ (LETT |x| NIL) (LETT #2# |r2|) G190 891 (COND 892 ((OR (ATOM #2#) (PROGN (LETT |x| (CAR #2#)) NIL)) 893 (GO G191))) 894 (SEQ 895 (EXIT 896 (COND 897 ((EQL (ABS |x|) (ABS |genToBeRemoved|)) 898 (COND 899 (|genInverted| 900 (LETT |newRel| 901 (SPADCALL |newRel| 902 (|GROUPP;invertRelation| 903 |replacement| $) 904 (QREFELT $ 67)))) 905 ('T 906 (LETT |newRel| 907 (SPADCALL |newRel| |replacement| 908 (QREFELT $ 67)))))) 909 ('T 910 (LETT |newRel| 911 (SPADCALL |newRel| |x| (QREFELT $ 25))))))) 912 (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL)) 913 (COND 914 (|trace| 915 (SPADCALL 916 (SPADCALL (SPADCALL "newRel=" (QREFELT $ 43)) 917 (|GROUPP;outputRel| |newRel| $) (QREFELT $ 42)) 918 (QREFELT $ 54)))) 919 (LETT |gens1| (QCAR |s|)) (LETT |rels1| (QCDR |s|)) 920 (LETT |gens1| (|GROUPP;removeGen| |gens1| |genToBeRemoved| $)) 921 (LETT |rels1| 922 (|GROUPP;removeRelations| |rels1| |genToBeRemoved| $)) 923 (LETT |rels1| (SPADCALL |rels1| |newRel| (QREFELT $ 26))) 924 (COND 925 (|trace| 926 (SPADCALL 927 (SPADCALL 928 (SPADCALL 929 (SPADCALL (SPADCALL "gens=" (QREFELT $ 43)) 930 (|GROUPP;outputGenList| 931 (SPADCALL |gens1| (QREFELT $ 17)) $) 932 (QREFELT $ 42)) 933 (SPADCALL " rels=" (QREFELT $ 43)) (QREFELT $ 42)) 934 (|GROUPP;outputRelList| |rels1| $) (QREFELT $ 42)) 935 (QREFELT $ 54)))) 936 (EXIT (CONS |gens1| |rels1|)))) 937 #8# (EXIT #5#)))) 938 939(SDEFUN |GROUPP;isSimpler?| ((|a| $) (|b| $) ($ |Boolean|)) 940 (SPROG 941 ((#1=#:G654 NIL) (|relationCompleityB| #2=(|NonNegativeInteger|)) 942 (#3=#:G656 NIL) (|rel| NIL) (|relationCompleityA| #2#) 943 (#4=#:G655 NIL) (|relsb| #5=(|List| (|List| (|Integer|)))) 944 (|gensb| #6=(|PrimitiveArray| (|NonNegativeInteger|))) (|relsa| #5#) 945 (|gensa| #6#)) 946 (SEQ 947 (EXIT 948 (SEQ (LETT |gensa| (QCAR |a|)) (LETT |relsa| (QCDR |a|)) 949 (LETT |gensb| (QCAR |b|)) (LETT |relsb| (QCDR |b|)) 950 (COND 951 ((< (SPADCALL |gensa| (QREFELT $ 19)) 952 (SPADCALL |gensb| (QREFELT $ 19))) 953 (PROGN (LETT #1# 'T) (GO #7=#:G653)))) 954 (COND 955 ((< (LENGTH |relsa|) (LENGTH |relsb|)) 956 (PROGN (LETT #1# 'T) (GO #7#)))) 957 (LETT |relationCompleityA| 0) 958 (SEQ (LETT |rel| NIL) (LETT #4# |relsa|) G190 959 (COND 960 ((OR (ATOM #4#) (PROGN (LETT |rel| (CAR #4#)) NIL)) 961 (GO G191))) 962 (SEQ 963 (EXIT 964 (LETT |relationCompleityA| 965 (+ |relationCompleityA| (LENGTH |rel|))))) 966 (LETT #4# (CDR #4#)) (GO G190) G191 (EXIT NIL)) 967 (LETT |relationCompleityB| 0) 968 (SEQ (LETT |rel| NIL) (LETT #3# |relsb|) G190 969 (COND 970 ((OR (ATOM #3#) (PROGN (LETT |rel| (CAR #3#)) NIL)) 971 (GO G191))) 972 (SEQ 973 (EXIT 974 (LETT |relationCompleityB| 975 (+ |relationCompleityB| (LENGTH |rel|))))) 976 (LETT #3# (CDR #3#)) (GO G190) G191 (EXIT NIL)) 977 (COND 978 ((< |relationCompleityA| |relationCompleityB|) 979 (PROGN (LETT #1# 'T) (GO #7#)))) 980 (EXIT NIL))) 981 #7# (EXIT #1#)))) 982 983(SDEFUN |GROUPP;simplify;2$;29| ((|s| $) ($ $)) 984 (SPADCALL |s| NIL (QREFELT $ 68))) 985 986(SDEFUN |GROUPP;simplify;$B$;30| ((|s| $) (|trace| |Boolean|) ($ $)) 987 (SPROG 988 ((|lastpass| ($)) (|level| #1=(|NonNegativeInteger|)) (#2=#:G664 NIL) 989 (|res| ($)) (|loopBreaker| #1#)) 990 (SEQ 991 (EXIT 992 (SEQ 993 (COND 994 (|trace| 995 (SPADCALL 996 (SPADCALL 997 (SPADCALL (SPADCALL "simplify(" (QREFELT $ 43)) 998 (SPADCALL |s| (QREFELT $ 65)) (QREFELT $ 42)) 999 (SPADCALL ")" (QREFELT $ 43)) (QREFELT $ 42)) 1000 (QREFELT $ 54)))) 1001 (LETT |res| |s|) (LETT |lastpass| |s|) (LETT |level| 0) 1002 (LETT |loopBreaker| 0) 1003 (SEQ G190 (COND ((NULL (< |loopBreaker| 10000)) (GO G191))) 1004 (SEQ (LETT |loopBreaker| (+ |loopBreaker| 1)) 1005 (COND 1006 ((EQL |level| 0) 1007 (LETT |res| (|GROUPP;TTRemoveEmpty| |res| |trace| $)))) 1008 (COND 1009 ((EQL |level| 1) 1010 (LETT |res| (|GROUPP;TTRemoveZero| |res| |trace| $)))) 1011 (COND 1012 ((EQL |level| 2) 1013 (LETT |res| 1014 (|GROUPP;TTRemoveGeneratorIfIdentity| |res| 1015 |trace| $)))) 1016 (COND 1017 ((EQL |level| 3) 1018 (LETT |res| 1019 (|GROUPP;TTRenameGenerator| |res| |trace| $)))) 1020 (COND 1021 ((EQL |level| 4) 1022 (LETT |res| 1023 (|GROUPP;TTRemoveEleTimesInverse| |res| |trace| 1024 $)))) 1025 (COND 1026 ((EQL |level| 5) 1027 (LETT |res| 1028 (|GROUPP;TTRemoveDuplicateRelation| |res| |trace| 1029 $)))) 1030 (COND 1031 ((EQL |level| 6) 1032 (LETT |res| (|GROUPP;TTSubstitute| |res| |trace| $)))) 1033 (COND 1034 ((EQL |level| 7) 1035 (PROGN 1036 (LETT #2# 1037 (|GROUPP;TTMinimiseInverses| |res| |trace| $)) 1038 (GO #3=#:G663)))) 1039 (COND 1040 ((|GROUPP;isSimpler?| |res| |lastpass| $) 1041 (LETT |level| 0)) 1042 ('T (LETT |level| (+ |level| 1)))) 1043 (COND 1044 (|trace| 1045 (SPADCALL 1046 (SPADCALL 1047 (SPADCALL 1048 (SPADCALL 1049 (SPADCALL 1050 (SPADCALL (SPADCALL " level=" (QREFELT $ 43)) 1051 (SPADCALL |level| (QREFELT $ 66)) 1052 (QREFELT $ 42)) 1053 (SPADCALL " loop=" (QREFELT $ 43)) (QREFELT $ 42)) 1054 (SPADCALL |loopBreaker| (QREFELT $ 66)) 1055 (QREFELT $ 42)) 1056 (SPADCALL " res=" (QREFELT $ 43)) (QREFELT $ 42)) 1057 (SPADCALL |res| (QREFELT $ 65)) (QREFELT $ 42)) 1058 (QREFELT $ 54)))) 1059 (EXIT (LETT |lastpass| |res|))) 1060 NIL (GO G190) G191 (EXIT NIL)) 1061 (SPADCALL 1062 (SPADCALL 1063 (SPADCALL "simplify excessive time - loop suspected" 1064 (QREFELT $ 43)) 1065 (SPADCALL |s| (QREFELT $ 65)) (QREFELT $ 42)) 1066 (QREFELT $ 54)) 1067 (EXIT |res|))) 1068 #3# (EXIT #2#)))) 1069 1070(SDEFUN |GROUPP;offsetIndexes| ((|a| $) (|offset| |NonNegativeInteger|) ($ $)) 1071 (SPROG 1072 ((|rb| (|List| (|List| (|Integer|)))) (#1=#:G675 NIL) (|y| NIL) 1073 (#2=#:G674 NIL) (#3=#:G673 NIL) (|z| NIL) (#4=#:G672 NIL) 1074 (|gb| (|List| (|NonNegativeInteger|))) (#5=#:G671 NIL) (|x| NIL) 1075 (#6=#:G670 NIL) (|ra| (|List| (|List| (|Integer|)))) 1076 (|ga| (|List| (|NonNegativeInteger|)))) 1077 (SEQ (LETT |ga| (SPADCALL (QCAR |a|) (QREFELT $ 17))) 1078 (LETT |ra| (QCDR |a|)) 1079 (LETT |gb| 1080 (PROGN 1081 (LETT #6# NIL) 1082 (SEQ (LETT |x| NIL) (LETT #5# |ga|) G190 1083 (COND 1084 ((OR (ATOM #5#) (PROGN (LETT |x| (CAR #5#)) NIL)) 1085 (GO G191))) 1086 (SEQ (EXIT (LETT #6# (CONS (+ |x| |offset|) #6#)))) 1087 (LETT #5# (CDR #5#)) (GO G190) G191 1088 (EXIT (NREVERSE #6#))))) 1089 (LETT |rb| 1090 (PROGN 1091 (LETT #4# NIL) 1092 (SEQ (LETT |z| NIL) (LETT #3# |ra|) G190 1093 (COND 1094 ((OR (ATOM #3#) (PROGN (LETT |z| (CAR #3#)) NIL)) 1095 (GO G191))) 1096 (SEQ 1097 (EXIT 1098 (LETT #4# 1099 (CONS 1100 (PROGN 1101 (LETT #2# NIL) 1102 (SEQ (LETT |y| NIL) (LETT #1# |z|) G190 1103 (COND 1104 ((OR (ATOM #1#) 1105 (PROGN 1106 (LETT |y| (CAR #1#)) 1107 NIL)) 1108 (GO G191))) 1109 (SEQ 1110 (EXIT 1111 (LETT #2# 1112 (CONS 1113 (COND 1114 ((> |y| 0) (+ |y| |offset|)) 1115 ('T (- |y| |offset|))) 1116 #2#)))) 1117 (LETT #1# (CDR #1#)) (GO G190) G191 1118 (EXIT (NREVERSE #2#)))) 1119 #4#)))) 1120 (LETT #3# (CDR #3#)) (GO G190) G191 1121 (EXIT (NREVERSE #4#))))) 1122 (EXIT (SPADCALL |gb| |rb| (QREFELT $ 11)))))) 1123 1124(SDEFUN |GROUPP;quotient;$L$;32| 1125 ((|a| $) (|remgen| |List| (|NonNegativeInteger|)) ($ $)) 1126 (SPROG 1127 ((|rels1| (|List| (|List| (|Integer|)))) 1128 (|gens1| (|PrimitiveArray| (|NonNegativeInteger|))) (#1=#:G680 NIL) 1129 (|toBeRemoved| NIL)) 1130 (SEQ (LETT |gens1| (QCAR |a|)) (LETT |rels1| (QCDR |a|)) 1131 (SEQ (LETT |toBeRemoved| NIL) (LETT #1# |remgen|) G190 1132 (COND 1133 ((OR (ATOM #1#) (PROGN (LETT |toBeRemoved| (CAR #1#)) NIL)) 1134 (GO G191))) 1135 (SEQ 1136 (LETT |gens1| (|GROUPP;removeGen| |gens1| |toBeRemoved| $)) 1137 (EXIT 1138 (LETT |rels1| 1139 (|GROUPP;removeGen2| |rels1| |toBeRemoved| $)))) 1140 (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL)) 1141 (EXIT 1142 (SPADCALL 1143 (SPADCALL (SPADCALL |gens1| (QREFELT $ 17)) |rels1| 1144 (QREFELT $ 11)) 1145 (QREFELT $ 69)))))) 1146 1147(SDEFUN |GROUPP;quotient;$L$;33| 1148 ((|a| $) (|addrel| |List| (|List| (|Integer|))) ($ $)) 1149 (SPROG 1150 ((|rels1| (|List| (|List| (|Integer|)))) 1151 (|gens1| (|List| (|NonNegativeInteger|)))) 1152 (SEQ (LETT |gens1| (SPADCALL (QCAR |a|) (QREFELT $ 17))) 1153 (LETT |rels1| (QCDR |a|)) 1154 (EXIT 1155 (SPADCALL 1156 (SPADCALL (SPADCALL |gens1| (QREFELT $ 71)) 1157 (SPADCALL |rels1| |addrel| (QREFELT $ 72)) 1158 (QREFELT $ 11)) 1159 (QREFELT $ 69)))))) 1160 1161(SDEFUN |GROUPP;directProduct;3$;34| ((|a| $) (|b| $) ($ $)) 1162 (SPROG 1163 ((|rc| (|List| (|List| (|Integer|)))) (|gcx| (|List| (|Integer|))) 1164 (#1=#:G689 NIL) (|gbx| NIL) (#2=#:G688 NIL) (|gax| NIL) 1165 (|rb| #3=(|List| (|List| (|Integer|)))) 1166 (|gb| #4=(|List| (|NonNegativeInteger|))) (|b2| ($)) 1167 (|sa| (|NonNegativeInteger|)) (|ra| #3#) (|ga| #4#) (|a2| ($))) 1168 (SEQ (LETT |a2| (SPADCALL |a| (QREFELT $ 27))) 1169 (LETT |ga| (SPADCALL (QCAR |a2|) (QREFELT $ 17))) 1170 (LETT |ra| (QCDR |a2|)) 1171 (LETT |sa| (SPADCALL |ga| (QREFELT $ 62))) 1172 (LETT |b2| 1173 (|GROUPP;offsetIndexes| (SPADCALL |b| (QREFELT $ 27)) |sa| 1174 $)) 1175 (LETT |gb| (SPADCALL (QCAR |b2|) (QREFELT $ 17))) 1176 (LETT |rb| (QCDR |b2|)) (LETT |rc| NIL) 1177 (SEQ (LETT |gax| NIL) (LETT #2# |ga|) G190 1178 (COND 1179 ((OR (ATOM #2#) (PROGN (LETT |gax| (CAR #2#)) NIL)) 1180 (GO G191))) 1181 (SEQ 1182 (EXIT 1183 (SEQ (LETT |gbx| NIL) (LETT #1# |gb|) G190 1184 (COND 1185 ((OR (ATOM #1#) (PROGN (LETT |gbx| (CAR #1#)) NIL)) 1186 (GO G191))) 1187 (SEQ (LETT |gcx| (LIST |gax| |gbx| |gax| |gbx|)) 1188 (EXIT 1189 (LETT |rc| 1190 (SPADCALL |rc| |gcx| (QREFELT $ 26))))) 1191 (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL)))) 1192 (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL)) 1193 (EXIT 1194 (SPADCALL 1195 (SPADCALL (SPADCALL |ga| (QREFELT $ 71)) |gb| (QREFELT $ 74)) 1196 (SPADCALL (LIST |ra| |rb| |rc|) (QREFELT $ 75)) 1197 (QREFELT $ 11)))))) 1198 1199(SDEFUN |GROUPP;cyclicGroup;Pi$;35| ((|n| |PositiveInteger|) ($ $)) 1200 (SPROG 1201 ((|ra| (|List| (|List| (|Integer|)))) (#1=#:G694 NIL) (|x| NIL) 1202 (#2=#:G693 NIL) (|ga| (|List| (|NonNegativeInteger|)))) 1203 (SEQ (LETT |ga| (LIST 1)) 1204 (LETT |ra| 1205 (LIST 1206 (PROGN 1207 (LETT #2# NIL) 1208 (SEQ (LETT |x| 1) (LETT #1# |n|) G190 1209 (COND ((|greater_SI| |x| #1#) (GO G191))) 1210 (SEQ (EXIT (LETT #2# (CONS 1 #2#)))) 1211 (LETT |x| (|inc_SI| |x|)) (GO G190) G191 1212 (EXIT (NREVERSE #2#)))))) 1213 (EXIT (SPADCALL |ga| |ra| (QREFELT $ 11)))))) 1214 1215(SDEFUN |GROUPP;dihedralGroup;Pi$;36| ((|n| |PositiveInteger|) ($ $)) 1216 (SPROG ((|c2| ($)) (|c1| ($))) 1217 (SEQ (LETT |c1| (SPADCALL |n| (QREFELT $ 78))) 1218 (LETT |c2| (SPADCALL 2 (QREFELT $ 78))) 1219 (EXIT (SPADCALL |c1| |c2| (QREFELT $ 76)))))) 1220 1221(SDEFUN |GROUPP;symmetricGroup;Pi$;37| ((|n| |PositiveInteger|) ($ $)) 1222 (SPROG 1223 ((|r| (|List| (|List| (|Integer|)))) (|y| (|List| (|Integer|))) 1224 (#1=#:G713 NIL) (|b| NIL) (#2=#:G712 NIL) (|a| NIL) 1225 (|ga| (|List| (|NonNegativeInteger|))) (#3=#:G711 NIL) (|x| NIL) 1226 (#4=#:G710 NIL) (|m| (|PositiveInteger|)) (#5=#:G697 NIL) 1227 (#6=#:G709 NIL)) 1228 (SEQ 1229 (EXIT 1230 (SEQ 1231 (COND 1232 ((< |n| 2) 1233 (PROGN (LETT #6# (SPADCALL NIL (QREFELT $ 12))) (GO #7=#:G708)))) 1234 (LETT |m| 1235 (PROG1 (LETT #5# (- |n| 1)) 1236 (|check_subtype2| (> #5# 0) '(|PositiveInteger|) 1237 '(|Integer|) #5#))) 1238 (LETT |ga| 1239 (PROGN 1240 (LETT #4# NIL) 1241 (SEQ (LETT |x| 1) (LETT #3# |m|) G190 1242 (COND ((|greater_SI| |x| #3#) (GO G191))) 1243 (SEQ (EXIT (LETT #4# (CONS |x| #4#)))) 1244 (LETT |x| (|inc_SI| |x|)) (GO G190) G191 1245 (EXIT (NREVERSE #4#))))) 1246 (LETT |r| NIL) 1247 (SEQ (LETT |a| 1) (LETT #2# |m|) G190 1248 (COND ((|greater_SI| |a| #2#) (GO G191))) 1249 (SEQ 1250 (EXIT 1251 (SEQ (LETT |b| 1) (LETT #1# |m|) G190 1252 (COND ((|greater_SI| |b| #1#) (GO G191))) 1253 (SEQ 1254 (COND 1255 ((EQL |a| |b|) 1256 (SEQ (LETT |y| (LIST |a| |a|)) 1257 (EXIT (LETT |r| (CONS |y| |r|)))))) 1258 (COND 1259 ((< (+ |a| 1) |b|) 1260 (SEQ (LETT |y| (LIST |a| |b| (- |a|) (- |b|))) 1261 (EXIT (LETT |r| (CONS |y| |r|)))))) 1262 (EXIT 1263 (COND 1264 ((EQL (+ |a| 1) |b|) 1265 (SEQ (LETT |y| (LIST |a| |b| |a| |b| |a| |b|)) 1266 (EXIT (LETT |r| (CONS |y| |r|)))))))) 1267 (LETT |b| (|inc_SI| |b|)) (GO G190) G191 (EXIT NIL)))) 1268 (LETT |a| (|inc_SI| |a|)) (GO G190) G191 (EXIT NIL)) 1269 (EXIT (SPADCALL |ga| (NREVERSE |r|) (QREFELT $ 11))))) 1270 #7# (EXIT #6#)))) 1271 1272(SDEFUN |GROUPP;outCosetTable| 1273 ((|ct| |TwoDimensionalArray| (|NonNegativeInteger|)) 1274 (|np| . #1=(|NonNegativeInteger|)) ($ |OutputForm|)) 1275 (SPROG 1276 ((|cts| (|List| (|TwoDimensionalArray| (|NonNegativeInteger|)))) 1277 (|part2| (|NonNegativeInteger|)) (#2=#:G715 NIL) (|part1| #1#) 1278 (#3=#:G721 NIL)) 1279 (SEQ 1280 (EXIT 1281 (SEQ 1282 (COND 1283 ((< |np| 1) 1284 (PROGN 1285 (LETT #3# (SPADCALL |ct| (QREFELT $ 82))) 1286 (GO #4=#:G720)))) 1287 (COND 1288 ((> (SPADCALL |ct| (QREFELT $ 83)) |np|) 1289 (SEQ (LETT |part1| |np|) 1290 (LETT |part2| 1291 (PROG2 1292 (LETT #2# 1293 (SPADCALL (SPADCALL |ct| (QREFELT $ 83)) 1294 |np| (QREFELT $ 85))) 1295 (QCDR #2#) 1296 (|check_union2| (QEQCAR #2# 0) 1297 (|NonNegativeInteger|) 1298 (|Union| (|NonNegativeInteger|) 1299 "failed") 1300 #2#))) 1301 (LETT |cts| 1302 (SPADCALL |ct| (LIST |part1| |part2|) (QREFELT $ 86))) 1303 (EXIT (LETT |ct| (SPADCALL |cts| 1 (QREFELT $ 88))))))) 1304 (EXIT (SPADCALL |ct| (QREFELT $ 82))))) 1305 #4# (EXIT #3#)))) 1306 1307(SDEFUN |GROUPP;outStatus| 1308 ((|state| |Record| 1309 (|:| |coset_table| #1=(|TwoDimensionalArray| (|NonNegativeInteger|))) 1310 (|:| |equiv_table| (|OneDimensionalArray| (|NonNegativeInteger|))) 1311 (|:| |inverse_table| (|OneDimensionalArray| (|NonNegativeInteger|))) 1312 (|:| |closed_point| (|NonNegativeInteger|)) 1313 (|:| |number_of_generators| (|NonNegativeInteger|)) 1314 (|:| |number_of_indices| #2=(|NonNegativeInteger|)) 1315 (|:| |number_of_points| (|NonNegativeInteger|)) 1316 (|:| |max_number_of_indices| (|NonNegativeInteger|))) 1317 ($ |OutputForm|)) 1318 (SPROG ((|np| #2#) (|ct| #1#)) 1319 (SEQ (LETT |ct| (QVELT |state| 0)) (LETT |np| (QVELT |state| 5)) 1320 (EXIT (|GROUPP;outCosetTable| |ct| |np| $))))) 1321 1322(SDEFUN |GROUPP;find| 1323 ((|et| |OneDimensionalArray| (|NonNegativeInteger|)) 1324 (|ind| |NonNegativeInteger|) ($ |NonNegativeInteger|)) 1325 (SPROG 1326 ((|j| (|NonNegativeInteger|)) (|nj| (|NonNegativeInteger|)) 1327 (|pj| (|NonNegativeInteger|))) 1328 (SEQ 1329 (COND ((OR (EQL |ind| 0) (EQL (QAREF1O |et| |ind| 1) |ind|)) |ind|) 1330 ('T 1331 (SEQ (LETT |j| |ind|) (LETT |pj| 0) 1332 (SEQ G190 (COND ((NULL (NULL (EQL |j| |pj|))) (GO G191))) 1333 (SEQ (LETT |pj| |j|) 1334 (EXIT (LETT |j| (QAREF1O |et| |j| 1)))) 1335 NIL (GO G190) G191 (EXIT NIL)) 1336 (LETT |j| |ind|) 1337 (SEQ G190 (COND ((NULL (NULL (EQL |j| |pj|))) (GO G191))) 1338 (SEQ (LETT |nj| (QAREF1O |et| |j| 1)) 1339 (QSETAREF1O |et| |j| |pj| 1) 1340 (EXIT (LETT |j| |nj|))) 1341 NIL (GO G190) G191 (EXIT NIL)) 1342 (EXIT |pj|))))))) 1343 1344(SDEFUN |GROUPP;infer_coincidencies| 1345 ((|ct| |TwoDimensionalArray| (|NonNegativeInteger|)) 1346 (|et| |OneDimensionalArray| (|NonNegativeInteger|)) 1347 (|pb| . #1=(|NonNegativeInteger|)) (|pe| . #2=(|NonNegativeInteger|)) 1348 (|trace| |Boolean|) ($ |Void|)) 1349 (SPROG 1350 ((|i2| #3=(|NonNegativeInteger|)) (|i1| #3#) (#4=#:G742 NIL) (|i| NIL) 1351 (#5=#:G741 NIL) (|nn| (|Integer|)) (|#G135| #1#) (|#G134| #2#)) 1352 (SEQ 1353 (COND 1354 (|trace| 1355 (SPADCALL 1356 (SPADCALL 1357 (SPADCALL 1358 (SPADCALL (SPADCALL "coincidence: begin=" (QREFELT $ 43)) 1359 (SPADCALL |pb| (QREFELT $ 66)) (QREFELT $ 42)) 1360 (SPADCALL " end=" (QREFELT $ 43)) (QREFELT $ 42)) 1361 (SPADCALL |pe| (QREFELT $ 66)) (QREFELT $ 42)) 1362 (QREFELT $ 54)))) 1363 (COND 1364 ((< |pe| |pb|) 1365 (PROGN 1366 (LETT |#G134| |pe|) 1367 (LETT |#G135| |pb|) 1368 (LETT |pb| |#G134|) 1369 (LETT |pe| |#G135|)))) 1370 (QSETAREF1O |et| |pe| |pb| 1) 1371 (LETT |nn| (SPADCALL |ct| (QREFELT $ 89))) 1372 (SEQ (LETT |i| 1) (LETT #5# |nn|) G190 1373 (COND ((|greater_SI| |i| #5#) (GO G191))) 1374 (SEQ (LETT |i1| (QAREF2O |ct| |pb| |i| 1 1)) 1375 (LETT |i2| (QAREF2O |ct| |pe| |i| 1 1)) 1376 (EXIT 1377 (COND ((EQL |i2| 0) "skip") 1378 ((EQL |i1| 0) 1379 (QSETAREF2O |ct| |pb| |i| |i2| 1 1))))) 1380 (LETT |i| (|inc_SI| |i|)) (GO G190) G191 (EXIT NIL)) 1381 (EXIT 1382 (SEQ (LETT |i| 1) (LETT #4# |nn|) G190 1383 (COND ((|greater_SI| |i| #4#) (GO G191))) 1384 (SEQ (LETT |i1| (QAREF2O |ct| |pb| |i| 1 1)) 1385 (EXIT 1386 (COND ((EQL |i1| 0) "skip") 1387 ('T 1388 (SEQ (LETT |i2| (QAREF2O |ct| |pe| |i| 1 1)) 1389 (EXIT 1390 (COND ((EQL |i2| 0) "skip") 1391 ('T 1392 (SEQ 1393 (LETT |i1| 1394 (|GROUPP;find| |et| |i1| $)) 1395 (LETT |i2| 1396 (|GROUPP;find| |et| |i2| $)) 1397 (EXIT 1398 (COND ((EQL |i1| |i2|) "skip") 1399 ('T 1400 (|GROUPP;infer_coincidencies| 1401 |ct| |et| |i1| |i2| |trace| 1402 $))))))))))))) 1403 (LETT |i| (|inc_SI| |i|)) (GO G190) G191 (EXIT NIL)))))) 1404 1405(SDEFUN |GROUPP;inferFromRelations| 1406 ((|state| |Record| 1407 (|:| |coset_table| #1=(|TwoDimensionalArray| (|NonNegativeInteger|))) 1408 (|:| |equiv_table| #2=(|OneDimensionalArray| (|NonNegativeInteger|))) 1409 (|:| |inverse_table| 1410 #3=(|OneDimensionalArray| (|NonNegativeInteger|))) 1411 (|:| |closed_point| (|NonNegativeInteger|)) 1412 (|:| |number_of_generators| (|NonNegativeInteger|)) 1413 (|:| |number_of_indices| #4=(|NonNegativeInteger|)) 1414 (|:| |number_of_points| (|NonNegativeInteger|)) 1415 (|:| |max_number_of_indices| (|NonNegativeInteger|))) 1416 (|rels| |List| #5=(|List| (|NonNegativeInteger|))) 1417 (|rrels| |List| (|List| (|NonNegativeInteger|))) 1418 (|rel_lens| |List| (|NonNegativeInteger|)) (|trace| |Boolean|) 1419 ($ |Boolean|)) 1420 (SPROG 1421 ((#6=#:G785 NIL) (|npb| #7=(|NonNegativeInteger|)) (|npe| #7#) 1422 (|genIn| (|Integer|)) (|pb| #8=(|NonNegativeInteger|)) 1423 (|gb| #9=(|NonNegativeInteger|)) (|gap| (|Integer|)) 1424 (|add_gen| (|Integer|)) (|n_ind| #4#) (|o_size| (|Integer|)) 1425 (|et| #2#) (|ct| #1#) (#10=#:G801 NIL) (|i| #8#) (#11=#:G800 NIL) 1426 (|j| NIL) (#12=#:G799 NIL) 1427 (|net| (|OneDimensionalArray| (|NonNegativeInteger|))) 1428 (|nct| (|TwoDimensionalArray| (|NonNegativeInteger|))) 1429 (|n_ct_cols| (|Integer|)) (|n_size| (|NonNegativeInteger|)) 1430 (#13=#:G789 NIL) (|prel| #5#) (|add_to| #9#) (#14=#:G798 NIL) 1431 (#15=#:G797 NIL) (#16=#:G796 NIL) (#17=#:G795 NIL) (|pe| #8#) 1432 (|ge| #9#) (#18=#:G786 NIL) (|genInv| (|Integer|)) (#19=#:G794 NIL) 1433 (|genIndex| NIL) (#20=#:G787 NIL) (#21=#:G793 NIL) (#22=#:G790 NIL) 1434 (|rel| NIL) (#23=#:G791 NIL) (|rrel| NIL) (#24=#:G792 NIL) 1435 (|r_len| NIL) (#25=#:G788 NIL) (|closed| (|Boolean|)) (|pn| #8#) 1436 (|add_gap| (|Integer|)) (|inv_tab| #3#)) 1437 (SEQ 1438 (EXIT 1439 (SEQ (LETT |ct| (QVELT |state| 0)) (LETT |et| (QVELT |state| 1)) 1440 (LETT |n_ind| (QVELT |state| 5)) 1441 (LETT |inv_tab| (QVELT |state| 2)) 1442 (COND 1443 (|trace| 1444 (SPADCALL 1445 (SPADCALL 1446 (SPADCALL "inferFromRelations rels=" (QREFELT $ 43)) 1447 (SPADCALL |rels| (QREFELT $ 91)) (QREFELT $ 42)) 1448 (QREFELT $ 54)))) 1449 (LETT |add_to| 0) (LETT |add_gen| 0) (LETT |add_gap| 0) 1450 (LETT |pn| (+ (QVELT |state| 3) 1)) 1451 (EXIT 1452 (COND ((> |pn| |n_ind|) NIL) 1453 ('T 1454 (SEQ (QSETVELT |state| 3 |pn|) 1455 (COND 1456 ((NULL (EQL (QAREF1O |et| |pn| 1) |pn|)) 1457 (EXIT 'T))) 1458 (LETT |o_size| (SPADCALL |ct| (QREFELT $ 92))) 1459 (LETT |closed| NIL) 1460 (SEQ 1461 (EXIT 1462 (SEQ G190 1463 (COND ((NULL (NULL |closed|)) (GO G191))) 1464 (SEQ (LETT |closed| 'T) 1465 (COND 1466 ((NULL 1467 (EQL (QAREF1O |et| |pn| 1) |pn|)) 1468 (EXIT 1469 (PROGN 1470 (LETT #25# |$NoValue|) 1471 (GO #26=#:G781))))) 1472 (SEQ (LETT |r_len| NIL) 1473 (LETT #24# |rel_lens|) 1474 (LETT |rrel| NIL) 1475 (LETT #23# |rrels|) 1476 (LETT |rel| NIL) 1477 (LETT #22# |rels|) G190 1478 (COND 1479 ((OR (ATOM #22#) 1480 (PROGN 1481 (LETT |rel| (CAR #22#)) 1482 NIL) 1483 (ATOM #23#) 1484 (PROGN 1485 (LETT |rrel| (CAR #23#)) 1486 NIL) 1487 (ATOM #24#) 1488 (PROGN 1489 (LETT |r_len| (CAR #24#)) 1490 NIL)) 1491 (GO G191))) 1492 (SEQ (LETT |gb| 0) 1493 (LETT |pb| |pn|) 1494 (LETT |i| |pn|) 1495 (LETT |genIn| 0) 1496 (SEQ 1497 (EXIT 1498 (SEQ (LETT |genIndex| NIL) 1499 (LETT #21# |rel|) 1500 G190 1501 (COND 1502 ((OR (ATOM #21#) 1503 (PROGN 1504 (LETT 1505 |genIndex| 1506 (CAR #21#)) 1507 NIL)) 1508 (GO G191))) 1509 (SEQ 1510 (LETT |genIn| 1511 |genIndex|) 1512 (LETT |i| 1513 (QAREF2O |ct| 1514 |i| 1515 |genIndex| 1516 1 1)) 1517 (EXIT 1518 (COND 1519 ((EQL |i| 0) 1520 (PROGN 1521 (LETT #20# 1522 |$NoValue|) 1523 (GO 1524 #27=#:G749))) 1525 ('T 1526 (SEQ 1527 (LETT |i| 1528 (|GROUPP;find| 1529 |et| |i| 1530 $)) 1531 (LETT |gb| 1532 (+ |gb| 1533 1)) 1534 (EXIT 1535 (LETT |pb| 1536 |i|))))))) 1537 (LETT #21# 1538 (CDR #21#)) 1539 (GO G190) G191 1540 (EXIT NIL))) 1541 #27# (EXIT #20#)) 1542 (LETT |gap| 1543 (- |r_len| |gb|)) 1544 (LETT |ge| 0) 1545 (LETT |pe| |pn|) 1546 (LETT |i| |pn|) 1547 (LETT |genInv| 0) 1548 (SEQ 1549 (EXIT 1550 (SEQ (LETT |genIndex| NIL) 1551 (LETT #19# |rrel|) 1552 G190 1553 (COND 1554 ((OR (ATOM #19#) 1555 (PROGN 1556 (LETT 1557 |genIndex| 1558 (CAR #19#)) 1559 NIL) 1560 (NULL 1561 (< |ge| 1562 |gap|))) 1563 (GO G191))) 1564 (SEQ 1565 (LETT |genInv| 1566 |genIndex|) 1567 (LETT |i| 1568 (QAREF2O |ct| 1569 |i| 1570 |genIndex| 1571 1 1)) 1572 (EXIT 1573 (COND 1574 ((EQL |i| 0) 1575 (PROGN 1576 (LETT #18# 1577 |$NoValue|) 1578 (GO 1579 #28=#:G752))) 1580 ('T 1581 (SEQ 1582 (LETT |i| 1583 (|GROUPP;find| 1584 |et| |i| 1585 $)) 1586 (LETT |ge| 1587 (+ |ge| 1588 1)) 1589 (EXIT 1590 (LETT |pe| 1591 |i|))))))) 1592 (LETT #19# 1593 (CDR #19#)) 1594 (GO G190) G191 1595 (EXIT NIL))) 1596 #28# (EXIT #18#)) 1597 (LETT |gap| (- |gap| |ge|)) 1598 (COND 1599 ((> |gap| 1) 1600 (SEQ (LETT |add_to| |pb|) 1601 (LETT |add_gen| 1602 |genIn|) 1603 (SEQ 1604 (COND 1605 ((>= |n_ind| 1606 |o_size|) 1607 (COND 1608 ((EQL |n_ind| 1609 (QVELT 1610 |state| 1611 7)) 1612 (PROGN 1613 (LETT #13# 'T) 1614 (GO 1615 #29=#:G784))) 1616 ('T 1617 (SEQ 1618 (LETT |n_size| 1619 (MIN 1620 (* 2 1621 |o_size|) 1622 (QVELT 1623 |state| 1624 7))) 1625 (LETT 1626 |n_ct_cols| 1627 (SPADCALL |ct| 1628 (QREFELT 1629 $ 1630 89))) 1631 (LETT |nct| 1632 (SPADCALL 1633 |n_size| 1634 |n_ct_cols| 1635 0 1636 (QREFELT 1637 $ 93))) 1638 (LETT |net| 1639 (SPADCALL 1640 |n_size| 1641 0 1642 (QREFELT 1643 $ 95))) 1644 (SEQ 1645 (LETT |i| 1) 1646 (LETT #17# 1647 |o_size|) 1648 G190 1649 (COND 1650 ((|greater_SI| 1651 |i| #17#) 1652 (GO G191))) 1653 (SEQ 1654 (QSETAREF1O 1655 |net| |i| 1656 (QAREF1O 1657 |et| |i| 1) 1658 1) 1659 (EXIT 1660 (SEQ 1661 (LETT |j| 1662 1) 1663 (LETT #16# 1664 |n_ct_cols|) 1665 G190 1666 (COND 1667 ((|greater_SI| 1668 |j| 1669 #16#) 1670 (GO 1671 G191))) 1672 (SEQ 1673 (EXIT 1674 (QSETAREF2O 1675 |nct| 1676 |i| |j| 1677 (QAREF2O 1678 |ct| 1679 |i| |j| 1680 1 1) 1681 1 1))) 1682 (LETT |j| 1683 (|inc_SI| 1684 |j|)) 1685 (GO G190) 1686 G191 1687 (EXIT 1688 NIL)))) 1689 (LETT |i| 1690 (|inc_SI| 1691 |i|)) 1692 (GO G190) G191 1693 (EXIT NIL)) 1694 (SEQ 1695 (LETT |i| 1696 (+ 1697 |o_size| 1698 1)) 1699 (LETT #15# 1700 |n_size|) 1701 G190 1702 (COND 1703 ((> |i| #15#) 1704 (GO G191))) 1705 (SEQ 1706 (EXIT 1707 (QSETAREF1O 1708 |net| |i| 1709 |i| 1))) 1710 (LETT |i| 1711 (+ |i| 1712 1)) 1713 (GO G190) G191 1714 (EXIT NIL)) 1715 (LETT |ct| 1716 |nct|) 1717 (LETT |et| 1718 |net|) 1719 (LETT |o_size| 1720 |n_size|) 1721 (QSETVELT 1722 |state| 0 1723 |ct|) 1724 (EXIT 1725 (QSETVELT 1726 |state| 1 1727 |et|))))))) 1728 (LETT |n_ind| 1729 (+ |n_ind| 1)) 1730 (COND 1731 (|trace| 1732 (SPADCALL 1733 (SPADCALL 1734 (SPADCALL 1735 (SPADCALL 1736 (SPADCALL 1737 (SPADCALL 1738 (SPADCALL 1739 #30="adding action of " 1740 (QREFELT $ 1741 43)) 1742 (SPADCALL 1743 |add_gen| 1744 (QREFELT $ 1745 96)) 1746 (QREFELT $ 1747 42)) 1748 (SPADCALL 1749 #31=" on " 1750 (QREFELT $ 1751 43)) 1752 (QREFELT $ 1753 42)) 1754 (SPADCALL 1755 |add_to| 1756 (QREFELT $ 1757 66)) 1758 (QREFELT $ 1759 42)) 1760 (SPADCALL 1761 #32=" to be " 1762 (QREFELT $ 1763 43)) 1764 (QREFELT $ 42)) 1765 (SPADCALL 1766 |n_ind| 1767 (QREFELT $ 66)) 1768 (QREFELT $ 42)) 1769 (QREFELT $ 54)))) 1770 (QSETAREF2O |ct| 1771 |add_to| 1772 |add_gen| 1773 |n_ind| 1774 1 1) 1775 (LETT |add_gen| 1776 (SPADCALL 1777 |inv_tab| 1778 |add_gen| 1779 (QREFELT $ 1780 97))) 1781 (QSETAREF2O |ct| 1782 |n_ind| 1783 |add_gen| 1784 |add_to| 1785 1 1) 1786 (COND 1787 (|trace| 1788 (SPADCALL 1789 (|GROUPP;outStatus| 1790 |state| $) 1791 (QREFELT $ 54)))) 1792 (EXIT 1793 (QSETVELT |state| 5 1794 |n_ind|))) 1795 (LETT |gap| 1796 (- |gap| 1)) 1797 (LETT |prel| |rel|) 1798 (SEQ (LETT |i| 0) 1799 (LETT #14# |gb|) 1800 G190 1801 (COND 1802 ((|greater_SI| 1803 |i| #14#) 1804 (GO G191))) 1805 (SEQ 1806 (EXIT 1807 (LETT |prel| 1808 (CDR 1809 |prel|)))) 1810 (LETT |i| 1811 (|inc_SI| 1812 |i|)) 1813 (GO G190) G191 1814 (EXIT NIL)) 1815 (LETT |gb| 1816 (+ |gb| 1)) 1817 (SEQ G190 1818 (COND 1819 ((NULL 1820 (> |gap| 1)) 1821 (GO G191))) 1822 (SEQ 1823 (LETT |add_to| 1824 |n_ind|) 1825 (LETT |add_gen| 1826 (|SPADfirst| 1827 |prel|)) 1828 (LETT |prel| 1829 (CDR 1830 |prel|)) 1831 (SEQ 1832 (COND 1833 ((>= |n_ind| 1834 |o_size|) 1835 (COND 1836 ((EQL 1837 |n_ind| 1838 (QVELT 1839 |state| 1840 7)) 1841 (PROGN 1842 (LETT 1843 #13# 'T) 1844 (GO 1845 #29#))) 1846 ('T 1847 (SEQ 1848 (LETT 1849 |n_size| 1850 (MIN 1851 (* 2 1852 |o_size|) 1853 (QVELT 1854 |state| 1855 7))) 1856 (LETT 1857 |n_ct_cols| 1858 (SPADCALL 1859 |ct| 1860 (QREFELT 1861 $ 1862 89))) 1863 (LETT 1864 |nct| 1865 (SPADCALL 1866 |n_size| 1867 |n_ct_cols| 1868 0 1869 (QREFELT 1870 $ 1871 93))) 1872 (LETT 1873 |net| 1874 (SPADCALL 1875 |n_size| 1876 0 1877 (QREFELT 1878 $ 1879 95))) 1880 (SEQ 1881 (LETT 1882 |i| 1) 1883 (LETT 1884 #12# 1885 |o_size|) 1886 G190 1887 (COND 1888 ((|greater_SI| 1889 |i| 1890 #12#) 1891 (GO 1892 G191))) 1893 (SEQ 1894 (QSETAREF1O 1895 |net| 1896 |i| 1897 (QAREF1O 1898 |et| 1899 |i| 1900 1) 1901 1) 1902 (EXIT 1903 (SEQ 1904 (LETT 1905 |j| 1906 1) 1907 (LETT 1908 #11# 1909 |n_ct_cols|) 1910 G190 1911 (COND 1912 ((|greater_SI| 1913 |j| 1914 #11#) 1915 (GO 1916 G191))) 1917 (SEQ 1918 (EXIT 1919 (QSETAREF2O 1920 |nct| 1921 |i| 1922 |j| 1923 (QAREF2O 1924 |ct| 1925 |i| 1926 |j| 1927 1 1928 1) 1929 1 1930 1))) 1931 (LETT 1932 |j| 1933 (|inc_SI| 1934 |j|)) 1935 (GO 1936 G190) 1937 G191 1938 (EXIT 1939 NIL)))) 1940 (LETT 1941 |i| 1942 (|inc_SI| 1943 |i|)) 1944 (GO 1945 G190) 1946 G191 1947 (EXIT 1948 NIL)) 1949 (SEQ 1950 (LETT 1951 |i| 1952 (+ 1953 |o_size| 1954 1)) 1955 (LETT 1956 #10# 1957 |n_size|) 1958 G190 1959 (COND 1960 ((> |i| 1961 #10#) 1962 (GO 1963 G191))) 1964 (SEQ 1965 (EXIT 1966 (QSETAREF1O 1967 |net| 1968 |i| 1969 |i| 1970 1))) 1971 (LETT 1972 |i| 1973 (+ |i| 1974 1)) 1975 (GO 1976 G190) 1977 G191 1978 (EXIT 1979 NIL)) 1980 (LETT 1981 |ct| 1982 |nct|) 1983 (LETT 1984 |et| 1985 |net|) 1986 (LETT 1987 |o_size| 1988 |n_size|) 1989 (QSETVELT 1990 |state| 1991 0 |ct|) 1992 (EXIT 1993 (QSETVELT 1994 |state| 1995 1 1996 |et|))))))) 1997 (LETT |n_ind| 1998 (+ 1999 |n_ind| 2000 1)) 2001 (COND 2002 (|trace| 2003 (SPADCALL 2004 (SPADCALL 2005 (SPADCALL 2006 (SPADCALL 2007 (SPADCALL 2008 (SPADCALL 2009 (SPADCALL 2010 #30# 2011 (QREFELT 2012 $ 2013 43)) 2014 (SPADCALL 2015 |add_gen| 2016 (QREFELT 2017 $ 2018 96)) 2019 (QREFELT 2020 $ 2021 42)) 2022 (SPADCALL 2023 #31# 2024 (QREFELT 2025 $ 2026 43)) 2027 (QREFELT 2028 $ 42)) 2029 (SPADCALL 2030 |add_to| 2031 (QREFELT 2032 $ 66)) 2033 (QREFELT 2034 $ 42)) 2035 (SPADCALL 2036 #32# 2037 (QREFELT 2038 $ 43)) 2039 (QREFELT 2040 $ 42)) 2041 (SPADCALL 2042 |n_ind| 2043 (QREFELT 2044 $ 66)) 2045 (QREFELT $ 2046 42)) 2047 (QREFELT $ 2048 54)))) 2049 (QSETAREF2O 2050 |ct| |add_to| 2051 |add_gen| 2052 |n_ind| 1 1) 2053 (LETT 2054 |add_gen| 2055 (SPADCALL 2056 |inv_tab| 2057 |add_gen| 2058 (QREFELT $ 2059 97))) 2060 (QSETAREF2O 2061 |ct| |n_ind| 2062 |add_gen| 2063 |add_to| 1 1) 2064 (COND 2065 (|trace| 2066 (SPADCALL 2067 (|GROUPP;outStatus| 2068 |state| $) 2069 (QREFELT $ 2070 54)))) 2071 (EXIT 2072 (QSETVELT 2073 |state| 5 2074 |n_ind|))) 2075 (LETT |gap| 2076 (- |gap| 2077 1)) 2078 (EXIT 2079 (LETT |gb| 2080 (+ |gb| 2081 1)))) 2082 NIL (GO G190) 2083 G191 (EXIT NIL)) 2084 (LETT |pb| |n_ind|) 2085 (EXIT 2086 (LETT |genIn| 2087 (|SPADfirst| 2088 |prel|)))))) 2089 (EXIT 2090 (COND 2091 ((EQL |gap| 1) 2092 (SEQ 2093 (EXIT 2094 (SEQ 2095 (SEQ 2096 (LETT |npe| 2097 (QAREF2O |ct| 2098 |pb| 2099 |genIn| 2100 1 1)) 2101 (EXIT 2102 (COND 2103 ((NULL 2104 (EQL |npe| 0)) 2105 (PROGN 2106 (LETT #6# 2107 (COND 2108 ((EQL 2109 |npe| 2110 |pe|) 2111 "skip") 2112 ('T 2113 (SEQ 2114 (COND 2115 (|trace| 2116 (SPADCALL 2117 (SPADCALL 2118 (SPADCALL 2119 (SPADCALL 2120 (SPADCALL 2121 (SPADCALL 2122 (SPADCALL 2123 (SPADCALL 2124 (SPADCALL 2125 "coincidence: " 2126 (QREFELT 2127 $ 2128 43)) 2129 (SPADCALL 2130 |pe| 2131 (QREFELT 2132 $ 2133 66)) 2134 (QREFELT 2135 $ 2136 42)) 2137 (SPADCALL 2138 " " 2139 (QREFELT 2140 $ 2141 43)) 2142 (QREFELT 2143 $ 2144 42)) 2145 (SPADCALL 2146 |npe| 2147 (QREFELT 2148 $ 2149 66)) 2150 (QREFELT 2151 $ 2152 42)) 2153 (SPADCALL 2154 " rel = " 2155 (QREFELT 2156 $ 2157 43)) 2158 (QREFELT 2159 $ 2160 42)) 2161 (SPADCALL 2162 |rel| 2163 (QREFELT 2164 $ 2165 98)) 2166 (QREFELT 2167 $ 2168 42)) 2169 (SPADCALL 2170 " pn = " 2171 (QREFELT 2172 $ 2173 43)) 2174 (QREFELT 2175 $ 2176 42)) 2177 (SPADCALL 2178 |pn| 2179 (QREFELT 2180 $ 2181 66)) 2182 (QREFELT 2183 $ 2184 42)) 2185 (QREFELT 2186 $ 2187 54)))) 2188 (EXIT 2189 (|GROUPP;infer_coincidencies| 2190 |ct| 2191 |et| 2192 |pe| 2193 |npe| 2194 |trace| 2195 $)))))) 2196 (GO 2197 #33=#:G776)))))) 2198 (COND 2199 (|trace| 2200 (SPADCALL 2201 (SPADCALL 2202 (SPADCALL 2203 (SPADCALL 2204 (SPADCALL 2205 "inferFromRelations genIn=" 2206 (QREFELT $ 43)) 2207 (SPADCALL 2208 |genIn| 2209 (QREFELT $ 96)) 2210 (QREFELT $ 42)) 2211 (SPADCALL " gb=" 2212 (QREFELT 2213 $ 43)) 2214 (QREFELT $ 42)) 2215 (SPADCALL |gb| 2216 (QREFELT 2217 $ 66)) 2218 (QREFELT $ 42)) 2219 (QREFELT $ 54)))) 2220 (COND 2221 ((NULL 2222 (EQL 2223 (QAREF1O |inv_tab| 2224 |genIn| 2225 1) 2226 |genInv|)) 2227 (EXIT 2228 (|error| 2229 "impossible 3")))) 2230 (QSETAREF2O |ct| |pb| 2231 |genIn| 2232 |pe| 1 1) 2233 (SEQ 2234 (LETT |npb| 2235 (QAREF2O |ct| 2236 |pe| 2237 |genInv| 2238 1 1)) 2239 (EXIT 2240 (COND 2241 ((NULL 2242 (EQL |npb| 0)) 2243 (PROGN 2244 (LETT #6# 2245 (COND 2246 ((EQL 2247 |npb| 2248 |pb|) 2249 "skip") 2250 ('T 2251 (SEQ 2252 (COND 2253 (|trace| 2254 (SPADCALL 2255 (SPADCALL 2256 (SPADCALL 2257 (SPADCALL 2258 (SPADCALL 2259 (SPADCALL 2260 (SPADCALL 2261 (SPADCALL 2262 (SPADCALL 2263 "coincidence: " 2264 (QREFELT 2265 $ 2266 43)) 2267 (SPADCALL 2268 |npb| 2269 (QREFELT 2270 $ 2271 66)) 2272 (QREFELT 2273 $ 2274 42)) 2275 (SPADCALL 2276 " " 2277 (QREFELT 2278 $ 2279 43)) 2280 (QREFELT 2281 $ 2282 42)) 2283 (SPADCALL 2284 |pb| 2285 (QREFELT 2286 $ 2287 66)) 2288 (QREFELT 2289 $ 2290 42)) 2291 (SPADCALL 2292 " rel = " 2293 (QREFELT 2294 $ 2295 43)) 2296 (QREFELT 2297 $ 2298 42)) 2299 (SPADCALL 2300 |rel| 2301 (QREFELT 2302 $ 2303 98)) 2304 (QREFELT 2305 $ 2306 42)) 2307 (SPADCALL 2308 " pn = " 2309 (QREFELT 2310 $ 2311 43)) 2312 (QREFELT 2313 $ 2314 42)) 2315 (SPADCALL 2316 |pn| 2317 (QREFELT 2318 $ 2319 66)) 2320 (QREFELT 2321 $ 2322 42)) 2323 (QREFELT 2324 $ 2325 54)))) 2326 (EXIT 2327 (|GROUPP;infer_coincidencies| 2328 |ct| 2329 |et| 2330 |pb| 2331 |npb| 2332 |trace| 2333 $)))))) 2334 (GO #33#)))))) 2335 (EXIT 2336 (QSETAREF2O |ct| |pe| 2337 |genInv| 2338 |pb| 1 2339 1)))) 2340 #33# (EXIT #6#))) 2341 ((EQL |gap| 0) 2342 (COND 2343 ((EQL |pb| |pe|) "skip") 2344 ('T 2345 (SEQ 2346 (COND 2347 (|trace| 2348 (SPADCALL 2349 (SPADCALL 2350 (SPADCALL 2351 (SPADCALL 2352 (SPADCALL 2353 (SPADCALL 2354 (SPADCALL 2355 (SPADCALL 2356 (SPADCALL 2357 "coincidence: " 2358 (QREFELT $ 2359 43)) 2360 (SPADCALL 2361 |pb| 2362 (QREFELT $ 2363 66)) 2364 (QREFELT $ 2365 42)) 2366 (SPADCALL " " 2367 (QREFELT 2368 $ 2369 43)) 2370 (QREFELT $ 2371 42)) 2372 (SPADCALL |pe| 2373 (QREFELT 2374 $ 2375 66)) 2376 (QREFELT $ 2377 42)) 2378 (SPADCALL 2379 " rel = " 2380 (QREFELT $ 2381 43)) 2382 (QREFELT $ 42)) 2383 (SPADCALL |rel| 2384 (QREFELT 2385 $ 2386 98)) 2387 (QREFELT $ 42)) 2388 (SPADCALL 2389 " pn = " 2390 (QREFELT $ 43)) 2391 (QREFELT $ 42)) 2392 (SPADCALL |pn| 2393 (QREFELT 2394 $ 66)) 2395 (QREFELT $ 42)) 2396 (QREFELT $ 54)))) 2397 (EXIT 2398 (|GROUPP;infer_coincidencies| 2399 |ct| |et| |pb| |pe| 2400 |trace| $)))))) 2401 ('T 2402 (|error| 2403 "impossible 4"))))) 2404 (LETT #22# 2405 (PROG1 (CDR #22#) 2406 (LETT #23# 2407 (PROG1 (CDR #23#) 2408 (LETT #24# 2409 (CDR 2410 #24#)))))) 2411 (GO G190) G191 (EXIT NIL)) 2412 (EXIT 2413 (COND 2414 ((NULL |closed|) 2415 (|error| "impossible 5"))))) 2416 NIL (GO G190) G191 (EXIT NIL))) 2417 #26# (EXIT #25#)) 2418 (EXIT 'T))))))) 2419 #29# (EXIT #13#)))) 2420 2421(SDEFUN |GROUPP;invertMap| 2422 ((|a| |TwoDimensionalArray| (|NonNegativeInteger|)) 2423 ($ |TwoDimensionalArray| (|NonNegativeInteger|))) 2424 (SPROG 2425 ((|i| (|NonNegativeInteger|)) (#1=#:G806 NIL) (|x| NIL) 2426 (|invm| (|TwoDimensionalArray| (|NonNegativeInteger|)))) 2427 (SEQ 2428 (LETT |invm| 2429 (SPADCALL (SPADCALL |a| (QREFELT $ 83)) 2430 (SPADCALL |a| (QREFELT $ 99)) 0 (QREFELT $ 93))) 2431 (SEQ (LETT |x| 1) (LETT #1# (SPADCALL |a| (QREFELT $ 83))) G190 2432 (COND ((|greater_SI| |x| #1#) (GO G191))) 2433 (SEQ (LETT |i| (SPADCALL |a| |x| 1 (QREFELT $ 100))) 2434 (EXIT 2435 (COND 2436 ((SPADCALL |i| 0 (QREFELT $ 58)) 2437 (SPADCALL |invm| |i| 1 |x| (QREFELT $ 101)))))) 2438 (LETT |x| (|inc_SI| |x|)) (GO G190) G191 (EXIT NIL)) 2439 (EXIT |invm|)))) 2440 2441(SDEFUN |GROUPP;relatorTables| 2442 ((|state| |Record| 2443 (|:| |coset_table| #1=(|TwoDimensionalArray| (|NonNegativeInteger|))) 2444 (|:| |equiv_table| (|OneDimensionalArray| (|NonNegativeInteger|))) 2445 (|:| |inverse_table| (|OneDimensionalArray| (|NonNegativeInteger|))) 2446 (|:| |closed_point| (|NonNegativeInteger|)) 2447 (|:| |number_of_generators| (|NonNegativeInteger|)) 2448 (|:| |number_of_indices| #2=(|NonNegativeInteger|)) 2449 (|:| |number_of_points| (|NonNegativeInteger|)) 2450 (|:| |max_number_of_indices| (|NonNegativeInteger|))) 2451 (|rels| |List| (|List| (|Integer|))) 2452 ($ |List| (|TwoDimensionalArray| (|NonNegativeInteger|)))) 2453 (SPROG 2454 ((|relators| (|List| (|TwoDimensionalArray| (|NonNegativeInteger|)))) 2455 (|relatorTrim| #3=(|TwoDimensionalArray| (|NonNegativeInteger|))) 2456 (|cts| (|List| (|TwoDimensionalArray| (|NonNegativeInteger|)))) 2457 (|part2| (|NonNegativeInteger|)) (#4=#:G816 NIL) (|part1| #2#) 2458 (|relator| (|TwoDimensionalArray| (|NonNegativeInteger|))) 2459 (|fst| (|Boolean|)) (|relatorn| #3#) (|gNum| (|NonNegativeInteger|)) 2460 (#5=#:G811 NIL) (#6=#:G827 NIL) (|g| NIL) (#7=#:G826 NIL) (|r| NIL) 2461 (|invGenLists| 2462 (|List| (|TwoDimensionalArray| (|NonNegativeInteger|)))) 2463 (#8=#:G825 NIL) (|a| NIL) (#9=#:G824 NIL) 2464 (|genLists| (|List| (|TwoDimensionalArray| (|NonNegativeInteger|)))) 2465 (#10=#:G809 NIL) (|np| #2#) (|ct| #1#)) 2466 (SEQ (LETT |ct| (QVELT |state| 0)) (LETT |np| (QVELT |state| 5)) 2467 (LETT |genLists| 2468 (SPADCALL |ct| 2469 (PROG1 (LETT #10# (SPADCALL |ct| (QREFELT $ 99))) 2470 (|check_subtype2| (> #10# 0) 2471 '(|PositiveInteger|) 2472 '(|NonNegativeInteger|) 2473 #10#)) 2474 (QREFELT $ 102))) 2475 (LETT |invGenLists| 2476 (PROGN 2477 (LETT #9# NIL) 2478 (SEQ (LETT |a| NIL) (LETT #8# |genLists|) G190 2479 (COND 2480 ((OR (ATOM #8#) (PROGN (LETT |a| (CAR #8#)) NIL)) 2481 (GO G191))) 2482 (SEQ 2483 (EXIT 2484 (LETT #9# (CONS (|GROUPP;invertMap| |a| $) #9#)))) 2485 (LETT #8# (CDR #8#)) (GO G190) G191 2486 (EXIT (NREVERSE #9#))))) 2487 (LETT |relators| NIL) 2488 (SEQ (LETT |r| NIL) (LETT #7# |rels|) G190 2489 (COND 2490 ((OR (ATOM #7#) (PROGN (LETT |r| (CAR #7#)) NIL)) 2491 (GO G191))) 2492 (SEQ (LETT |relator| (SPADCALL 0 0 0 (QREFELT $ 93))) 2493 (LETT |fst| 'T) 2494 (SEQ (LETT |g| NIL) (LETT #6# |r|) G190 2495 (COND 2496 ((OR (ATOM #6#) (PROGN (LETT |g| (CAR #6#)) NIL)) 2497 (GO G191))) 2498 (SEQ 2499 (LETT |gNum| 2500 (PROG1 (LETT #5# (ABS |g|)) 2501 (|check_subtype2| (>= #5# 0) 2502 '(|NonNegativeInteger|) 2503 '(|Integer|) #5#))) 2504 (LETT |relatorn| 2505 (COND 2506 ((> |g| 0) 2507 (SPADCALL |genLists| |gNum| 2508 (QREFELT $ 88))) 2509 ('T 2510 (SPADCALL |invGenLists| |gNum| 2511 (QREFELT $ 88))))) 2512 (EXIT 2513 (COND 2514 (|fst| 2515 (SEQ (LETT |relator| |relatorn|) 2516 (EXIT (LETT |fst| NIL)))) 2517 ('T 2518 (LETT |relator| 2519 (SPADCALL |relator| |relatorn| 2520 (QREFELT $ 103))))))) 2521 (LETT #6# (CDR #6#)) (GO G190) G191 (EXIT NIL)) 2522 (LETT |relatorTrim| |relator|) 2523 (COND 2524 ((> (SPADCALL |relatorTrim| (QREFELT $ 83)) |np|) 2525 (SEQ (LETT |part1| |np|) 2526 (LETT |part2| 2527 (PROG2 2528 (LETT #4# 2529 (SPADCALL 2530 (SPADCALL |relatorTrim| 2531 (QREFELT $ 83)) 2532 |np| (QREFELT $ 85))) 2533 (QCDR #4#) 2534 (|check_union2| (QEQCAR #4# 0) 2535 (|NonNegativeInteger|) 2536 (|Union| 2537 (|NonNegativeInteger|) 2538 "failed") 2539 #4#))) 2540 (LETT |cts| 2541 (SPADCALL |relatorTrim| 2542 (LIST |part1| |part2|) 2543 (QREFELT $ 86))) 2544 (EXIT 2545 (LETT |relatorTrim| 2546 (SPADCALL |cts| 1 (QREFELT $ 88))))))) 2547 (EXIT 2548 (LETT |relators| 2549 (SPADCALL |relators| |relatorTrim| 2550 (QREFELT $ 104))))) 2551 (LETT #7# (CDR #7#)) (GO G190) G191 (EXIT NIL)) 2552 (EXIT |relators|)))) 2553 2554(SDEFUN |GROUPP;generators2Permutation| 2555 ((|state| |Record| 2556 (|:| |coset_table| #1=(|TwoDimensionalArray| (|NonNegativeInteger|))) 2557 (|:| |equiv_table| #2=(|OneDimensionalArray| (|NonNegativeInteger|))) 2558 (|:| |inverse_table| (|OneDimensionalArray| (|NonNegativeInteger|))) 2559 (|:| |closed_point| (|NonNegativeInteger|)) 2560 (|:| |number_of_generators| #3=(|NonNegativeInteger|)) 2561 (|:| |number_of_indices| #4=(|NonNegativeInteger|)) 2562 (|:| |number_of_points| (|NonNegativeInteger|)) 2563 (|:| |max_number_of_indices| (|NonNegativeInteger|))) 2564 (|trace| |Boolean|) ($ |PermutationGroup| (|Integer|))) 2565 (SPROG 2566 ((|pl| (|List| (|Permutation| (|Integer|)))) 2567 (|p| (|Permutation| (|Integer|))) (|gl| (|List| (|Integer|))) 2568 (#5=#:G847 NIL) (|j| (|SingleInteger|)) (|kk| (|NonNegativeInteger|)) 2569 (#6=#:G846 NIL) (#7=#:G845 NIL) (|i| NIL) 2570 (|perm_lists| (|Vector| (|List| (|Integer|)))) (#8=#:G844 NIL) 2571 (|net| (|OneDimensionalArray| (|NonNegativeInteger|))) (|et| #2#) 2572 (|n_inds| #4#) (|n_gens| #3#) (|ct| #1#)) 2573 (SEQ (LETT |ct| (QVELT |state| 0)) 2574 (COND 2575 (|trace| 2576 (SPADCALL 2577 (SPADCALL "generators2Permutation generators=" (QREFELT $ 43)) 2578 (QREFELT $ 54)))) 2579 (LETT |n_gens| (QVELT |state| 4)) 2580 (LETT |n_inds| (QVELT |state| 5)) (LETT |et| (QVELT |state| 1)) 2581 (LETT |net| (SPADCALL |n_inds| 0 (QREFELT $ 95))) (LETT |j| 0) 2582 (SEQ (LETT |i| 1) (LETT #8# |n_inds|) G190 2583 (COND ((|greater_SI| |i| #8#) (GO G191))) 2584 (SEQ 2585 (EXIT 2586 (COND ((NULL (EQL (QAREF1O |et| |i| 1) |i|)) "skip") 2587 ('T 2588 (SEQ (LETT |j| (|add_SI| |j| 1)) 2589 (EXIT (QSETAREF1O |net| |i| |j| 1))))))) 2590 (LETT |i| (|inc_SI| |i|)) (GO G190) G191 (EXIT NIL)) 2591 (LETT |perm_lists| (MAKEARR1 |n_gens| NIL)) 2592 (SEQ (LETT |i| 1) (LETT #7# |n_inds|) G190 2593 (COND ((|greater_SI| |i| #7#) (GO G191))) 2594 (SEQ 2595 (EXIT 2596 (COND ((NULL (EQL (QAREF1O |et| |i| 1) |i|)) "skip") 2597 ('T 2598 (SEQ (LETT |j| 1) (LETT #6# |n_gens|) G190 2599 (COND ((|greater_SI| |j| #6#) (GO G191))) 2600 (SEQ (LETT |kk| (QAREF2O |ct| |i| |j| 1 1)) 2601 (EXIT 2602 (COND 2603 ((EQL |kk| 0) 2604 (SEQ 2605 (SPADCALL 2606 (SPADCALL 2607 (SPADCALL 2608 (SPADCALL 2609 (SPADCALL 2610 (SPADCALL 2611 (SPADCALL "i = " 2612 (QREFELT $ 43)) 2613 (SPADCALL |i| (QREFELT $ 66)) 2614 (QREFELT $ 42)) 2615 (SPADCALL " j = " 2616 (QREFELT $ 43)) 2617 (QREFELT $ 42)) 2618 (SPADCALL |j| (QREFELT $ 66)) 2619 (QREFELT $ 42)) 2620 (SPADCALL " ct(i) = " 2621 (QREFELT $ 43)) 2622 (QREFELT $ 42)) 2623 (SPADCALL 2624 (SPADCALL |ct| |i| 2625 (QREFELT $ 105)) 2626 (QREFELT $ 106)) 2627 (QREFELT $ 42)) 2628 (QREFELT $ 54)) 2629 (EXIT 2630 (|error| 2631 "incomplete coset table")))) 2632 ('T 2633 (SEQ 2634 (LETT |kk| 2635 (QAREF1O |net| 2636 (|GROUPP;find| |et| 2637 |kk| $) 2638 1)) 2639 (EXIT 2640 (QSETAREF1O |perm_lists| |j| 2641 (CONS |kk| 2642 (QAREF1O 2643 |perm_lists| |j| 2644 1)) 2645 1))))))) 2646 (LETT |j| (|inc_SI| |j|)) (GO G190) G191 2647 (EXIT NIL)))))) 2648 (LETT |i| (|inc_SI| |i|)) (GO G190) G191 (EXIT NIL)) 2649 (LETT |pl| NIL) 2650 (COND 2651 (|trace| 2652 (SPADCALL (SPADCALL |perm_lists| (QREFELT $ 108)) 2653 (QREFELT $ 54)))) 2654 (SEQ (LETT |j| 1) (LETT #5# |n_gens|) G190 2655 (COND ((|greater_SI| |j| #5#) (GO G191))) 2656 (SEQ 2657 (LETT |gl| 2658 (NREVERSE 2659 (SPADCALL |perm_lists| |j| (QREFELT $ 109)))) 2660 (LETT |p| (SPADCALL |gl| (QREFELT $ 111))) 2661 (EXIT (LETT |pl| (CONS |p| |pl|)))) 2662 (LETT |j| (|inc_SI| |j|)) (GO G190) G191 (EXIT NIL)) 2663 (LETT |pl| (NREVERSE |pl|)) 2664 (EXIT (SPADCALL |pl| (QREFELT $ 114)))))) 2665 2666(SDEFUN |GROUPP;toPermutationIfCan;$U;46| 2667 ((|a| $) ($ |Union| (|PermutationGroup| (|Integer|)) "failed")) 2668 (SPADCALL |a| NIL (QREFELT $ 116))) 2669 2670(SDEFUN |GROUPP;toPermutationIfCan;$BU;47| 2671 ((|a| $) (|trace| |Boolean|) 2672 ($ |Union| (|PermutationGroup| (|Integer|)) "failed")) 2673 (SPADCALL |a| NIL |trace| (QREFELT $ 118))) 2674 2675(SDEFUN |GROUPP;convert_words| 2676 ((|words| |List| (|List| #1=(|Integer|))) 2677 (|inv_tab| |OneDimensionalArray| (|NonNegativeInteger|)) 2678 ($ |List| (|List| (|List| (|NonNegativeInteger|))))) 2679 (SPROG 2680 ((|nrwords| (|List| (|List| (|NonNegativeInteger|)))) 2681 (|nwords| (|List| (|List| (|NonNegativeInteger|)))) (#2=#:G866 NIL) 2682 (|i| NIL) (#3=#:G865 NIL) (|nword| (|List| (|NonNegativeInteger|))) 2683 (|gen| #1#) (#4=#:G864 NIL) (#5=#:G863 NIL) (|word| NIL)) 2684 (SEQ (LETT |nwords| NIL) (LETT |nrwords| NIL) 2685 (SEQ (LETT |word| NIL) (LETT #5# |words|) G190 2686 (COND 2687 ((OR (ATOM #5#) (PROGN (LETT |word| (CAR #5#)) NIL)) 2688 (GO G191))) 2689 (SEQ (LETT |nword| NIL) 2690 (SEQ (LETT |i| NIL) (LETT #4# |word|) G190 2691 (COND 2692 ((OR (ATOM #4#) (PROGN (LETT |i| (CAR #4#)) NIL)) 2693 (GO G191))) 2694 (SEQ 2695 (LETT |gen| 2696 (COND ((> |i| 0) |i|) 2697 ('T 2698 (SPADCALL |inv_tab| (- |i|) 2699 (QREFELT $ 97))))) 2700 (EXIT (LETT |nword| (CONS |gen| |nword|)))) 2701 (LETT #4# (CDR #4#)) (GO G190) G191 (EXIT NIL)) 2702 (LETT |nwords| (CONS |nword| |nwords|)) 2703 (EXIT 2704 (LETT |nrwords| 2705 (CONS 2706 (NREVERSE 2707 (PROGN 2708 (LETT #3# NIL) 2709 (SEQ (LETT |i| NIL) (LETT #2# |nword|) G190 2710 (COND 2711 ((OR (ATOM #2#) 2712 (PROGN (LETT |i| (CAR #2#)) NIL)) 2713 (GO G191))) 2714 (SEQ 2715 (EXIT 2716 (LETT #3# 2717 (CONS 2718 (SPADCALL |inv_tab| |i| 2719 (QREFELT $ 97)) 2720 #3#)))) 2721 (LETT #2# (CDR #2#)) (GO G190) G191 2722 (EXIT (NREVERSE #3#))))) 2723 |nrwords|)))) 2724 (LETT #5# (CDR #5#)) (GO G190) G191 (EXIT NIL)) 2725 (LETT |nwords| (NREVERSE |nwords|)) 2726 (LETT |nrwords| (NREVERSE |nrwords|)) 2727 (EXIT (LIST |nwords| |nrwords|))))) 2728 2729(SDEFUN |GROUPP;toPermutationIfCan;$LBU;49| 2730 ((|a| $) (|sg| |List| (|List| (|Integer|))) (|trace| |Boolean|) 2731 ($ |Union| (|PermutationGroup| (|Integer|)) "failed")) 2732 (SPROG 2733 ((#1=#:G886 NIL) (#2=#:G887 NIL) (#3=#:G888 NIL) 2734 (|changedByDeduction| #4=(|Boolean|)) (|dummy| #4#) 2735 (|sgens_lens| (|List| #5=(|NonNegativeInteger|))) (#6=#:G893 NIL) 2736 (|word| NIL) (#7=#:G892 NIL) (|nrsgens| NIL) 2737 (|#G191| #8=(|List| (|List| (|List| (|NonNegativeInteger|))))) 2738 (|nsgens| NIL) (|#G190| #8#) 2739 (|state| 2740 (|Record| 2741 (|:| |coset_table| (|TwoDimensionalArray| (|NonNegativeInteger|))) 2742 (|:| |equiv_table| (|OneDimensionalArray| (|NonNegativeInteger|))) 2743 (|:| |inverse_table| 2744 (|OneDimensionalArray| (|NonNegativeInteger|))) 2745 (|:| |closed_point| (|NonNegativeInteger|)) 2746 (|:| |number_of_generators| (|NonNegativeInteger|)) 2747 (|:| |number_of_indices| (|NonNegativeInteger|)) 2748 (|:| |number_of_points| (|NonNegativeInteger|)) 2749 (|:| |max_number_of_indices| (|NonNegativeInteger|)))) 2750 (|loopLimit| (|NonNegativeInteger|)) 2751 (|rel_lens| (|List| (|NonNegativeInteger|))) (#9=#:G891 NIL) 2752 (|rel| NIL) (#10=#:G890 NIL) (|nrrels| NIL) (|#G186| #8#) 2753 (|nrels| NIL) (|#G185| #8#) (#11=#:G889 NIL) (|i| NIL) 2754 (|inv_tab| #12=(|OneDimensionalArray| (|NonNegativeInteger|))) 2755 (|et| #12#) (|ct| (|TwoDimensionalArray| (|NonNegativeInteger|))) 2756 (|numGens| #5#) (|unit| (|Permutation| (|Integer|))) 2757 (|rs| (|List| (|List| (|Integer|)))) 2758 (|gs| (|List| (|NonNegativeInteger|))) 2759 (|numberPoints| (|NonNegativeInteger|))) 2760 (SEQ 2761 (EXIT 2762 (SEQ (LETT |numberPoints| 1) 2763 (LETT |gs| (SPADCALL (QCAR |a|) (QREFELT $ 17))) 2764 (LETT |rs| (QCDR |a|)) 2765 (COND 2766 ((EQL (SPADCALL |gs| (QREFELT $ 62)) 0) 2767 (COND 2768 ((EQL (LENGTH |rs|) 0) 2769 (SEQ (LETT |unit| (|spadConstant| $ 119)) 2770 (EXIT 2771 (PROGN 2772 (LETT #3# 2773 (CONS 0 2774 (SPADCALL (LIST |unit|) 2775 (QREFELT $ 114)))) 2776 (GO #13=#:G885)))))))) 2777 (COND 2778 ((> (SPADCALL |gs| (QREFELT $ 62)) (LENGTH |rs|)) 2779 (PROGN (LETT #3# (CONS 1 "failed")) (GO #13#)))) 2780 (LETT |numGens| (SPADCALL |gs| (QREFELT $ 62))) 2781 (LETT |ct| (SPADCALL 10 (* 2 |numGens|) 0 (QREFELT $ 93))) 2782 (LETT |et| (SPADCALL 10 0 (QREFELT $ 95))) 2783 (SEQ (LETT |i| 1) G190 (COND ((|greater_SI| |i| 10) (GO G191))) 2784 (SEQ (EXIT (QSETAREF1O |et| |i| |i| 1))) 2785 (LETT |i| (|inc_SI| |i|)) (GO G190) G191 (EXIT NIL)) 2786 (LETT |inv_tab| (SPADCALL (* 2 |numGens|) 0 (QREFELT $ 95))) 2787 (SEQ (LETT |i| 1) (LETT #11# |numGens|) G190 2788 (COND ((|greater_SI| |i| #11#) (GO G191))) 2789 (SEQ (QSETAREF1O |inv_tab| |i| (+ |i| |numGens|) 1) 2790 (EXIT 2791 (QSETAREF1O |inv_tab| (+ |i| |numGens|) |i| 1))) 2792 (LETT |i| (|inc_SI| |i|)) (GO G190) G191 (EXIT NIL)) 2793 (PROGN 2794 (LETT |#G185| (|GROUPP;convert_words| |rs| |inv_tab| $)) 2795 (LETT |#G186| |#G185|) 2796 (LETT |nrels| (|SPADfirst| |#G186|)) 2797 (LETT |#G186| (CDR |#G186|)) 2798 (LETT |nrrels| (|SPADfirst| |#G186|)) 2799 |#G185|) 2800 (LETT |rel_lens| 2801 (PROGN 2802 (LETT #10# NIL) 2803 (SEQ (LETT |rel| NIL) (LETT #9# |nrels|) G190 2804 (COND 2805 ((OR (ATOM #9#) 2806 (PROGN (LETT |rel| (CAR #9#)) NIL)) 2807 (GO G191))) 2808 (SEQ 2809 (EXIT 2810 (LETT #10# 2811 (CONS (SPADCALL |rel| (QREFELT $ 62)) 2812 #10#)))) 2813 (LETT #9# (CDR #9#)) (GO G190) G191 2814 (EXIT (NREVERSE #10#))))) 2815 (LETT |loopLimit| (QUOTIENT2 5000000 |numGens|)) 2816 (LETT |state| 2817 (VECTOR |ct| |et| |inv_tab| 0 |numGens| 1 1 |loopLimit|)) 2818 (PROGN 2819 (LETT |#G190| (|GROUPP;convert_words| |sg| |inv_tab| $)) 2820 (LETT |#G191| |#G190|) 2821 (LETT |nsgens| (|SPADfirst| |#G191|)) 2822 (LETT |#G191| (CDR |#G191|)) 2823 (LETT |nrsgens| (|SPADfirst| |#G191|)) 2824 |#G190|) 2825 (LETT |sgens_lens| 2826 (PROGN 2827 (LETT #7# NIL) 2828 (SEQ (LETT |word| NIL) (LETT #6# |nsgens|) G190 2829 (COND 2830 ((OR (ATOM #6#) 2831 (PROGN (LETT |word| (CAR #6#)) NIL)) 2832 (GO G191))) 2833 (SEQ 2834 (EXIT 2835 (LETT #7# 2836 (CONS (SPADCALL |word| (QREFELT $ 62)) 2837 #7#)))) 2838 (LETT #6# (CDR #6#)) (GO G190) G191 2839 (EXIT (NREVERSE #7#))))) 2840 (LETT |dummy| 2841 (|GROUPP;inferFromRelations| |state| 2842 (SPADCALL |nsgens| |nrels| (QREFELT $ 120)) 2843 (SPADCALL |nrsgens| |nrrels| (QREFELT $ 120)) 2844 (SPADCALL |sgens_lens| |rel_lens| (QREFELT $ 74)) 2845 |trace| $)) 2846 (SEQ 2847 (EXIT 2848 (SEQ G190 (COND ((NULL 'T) (GO G191))) 2849 (SEQ 2850 (EXIT 2851 (SEQ 2852 (LETT |changedByDeduction| 2853 (|GROUPP;inferFromRelations| |state| |nrels| 2854 |nrrels| |rel_lens| |trace| $)) 2855 (COND 2856 ((NULL |changedByDeduction|) 2857 (SEQ 2858 (COND 2859 (|trace| 2860 (SPADCALL 2861 (SPADCALL 2862 (SPADCALL "finished using " (QREFELT $ 43)) 2863 (SPADCALL (QVELT |state| 5) (QREFELT $ 66)) 2864 (QREFELT $ 42)) 2865 (QREFELT $ 54)))) 2866 (EXIT 2867 (PROGN 2868 (LETT #3# 2869 (CONS 0 2870 (|GROUPP;generators2Permutation| 2871 |state| |trace| $))) 2872 (GO #13#)))))) 2873 (COND 2874 (|trace| 2875 (SPADCALL 2876 (SPADCALL 2877 (SPADCALL "relatorTables=" (QREFELT $ 43)) 2878 (SPADCALL (|GROUPP;relatorTables| |state| |rs| $) 2879 (QREFELT $ 121)) 2880 (QREFELT $ 42)) 2881 (QREFELT $ 54)))) 2882 (EXIT 2883 (COND 2884 ((>= (QVELT |state| 5) |loopLimit|) 2885 (PROGN 2886 (LETT #1# 2887 (PROGN 2888 (LETT #2# |$NoValue|) 2889 (GO #14=#:G883))) 2890 (GO #15=#:G882))))))) 2891 #15# (EXIT #1#)) 2892 NIL (GO G190) G191 (EXIT NIL))) 2893 #14# (EXIT #2#)) 2894 (EXIT (CONS 1 "failed")))) 2895 #13# (EXIT #3#)))) 2896 2897(SDEFUN |GROUPP;coerce;$Of;50| ((|s| $) ($ |OutputForm|)) 2898 (SPROG 2899 ((|r| (|OutputForm|)) (|rs| (|List| (|List| (|Integer|)))) 2900 (|g| (|OutputForm|)) (|ps| (|List| (|NonNegativeInteger|)))) 2901 (SEQ (LETT |ps| (SPADCALL (QCAR |s|) (QREFELT $ 122))) 2902 (LETT |g| (|GROUPP;outputGenList| |ps| $)) (LETT |rs| (QCDR |s|)) 2903 (LETT |r| (|GROUPP;outputRelList| |rs| $)) 2904 (EXIT 2905 (SPADCALL 2906 (LIST (SPADCALL "<" (QREFELT $ 43)) |g| 2907 (SPADCALL " | " (QREFELT $ 43)) |r| 2908 (SPADCALL ">" (QREFELT $ 43))) 2909 (QREFELT $ 44)))))) 2910 2911(DECLAIM (NOTINLINE |GroupPresentation;|)) 2912 2913(DEFUN |GroupPresentation| () 2914 (SPROG NIL 2915 (PROG (#1=#:G897) 2916 (RETURN 2917 (COND 2918 ((LETT #1# (HGET |$ConstructorCache| '|GroupPresentation|)) 2919 (|CDRwithIncrement| (CDAR #1#))) 2920 ('T 2921 (UNWIND-PROTECT 2922 (PROG1 2923 (CDDAR 2924 (HPUT |$ConstructorCache| '|GroupPresentation| 2925 (LIST 2926 (CONS NIL (CONS 1 (|GroupPresentation;|)))))) 2927 (LETT #1# T)) 2928 (COND 2929 ((NOT #1#) 2930 (HREM |$ConstructorCache| '|GroupPresentation|)))))))))) 2931 2932(DEFUN |GroupPresentation;| () 2933 (SPROG ((|dv$| NIL) ($ NIL) (|pv$| NIL)) 2934 (PROGN 2935 (LETT |dv$| '(|GroupPresentation|)) 2936 (LETT $ (GETREFV 125)) 2937 (QSETREFV $ 0 |dv$|) 2938 (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL))) 2939 (|haddProp| |$ConstructorCache| '|GroupPresentation| NIL (CONS 1 $)) 2940 (|stuffDomainSlots| $) 2941 (SETF |pv$| (QREFELT $ 3)) 2942 (QSETREFV $ 6 2943 (|Record| 2944 (|:| |gens| (|PrimitiveArray| (|NonNegativeInteger|))) 2945 (|:| |rels| (|List| (|List| (|Integer|)))))) 2946 $))) 2947 2948(MAKEPROP '|GroupPresentation| '|infovec| 2949 (LIST 2950 '#(NIL NIL NIL NIL NIL NIL '|Rep| (|List| 18) (|PrimitiveArray| 18) 2951 (0 . |construct|) (|List| 24) |GROUPP;groupPresentation;LL$;1| 2952 |GROUPP;groupPresentation;L$;2| |GROUPP;groupPresentation;$;3| 2953 (|List| $) (|String|) (5 . |concat|) (10 . |entries|) 2954 (|NonNegativeInteger|) (15 . |#|) 2955 (|Record| (|:| |OldGen| 18) (|:| |NewGen| 18)) (|List| 20) 2956 (20 . |concat|) (|Integer|) (|List| 23) (26 . |concat|) 2957 (32 . |concat|) |GROUPP;refactor;2$;5| (|Set| 18) (38 . |set|) 2958 (|Boolean|) (43 . ~=) (49 . |entries|) (|Set| 24) (54 . |set|) 2959 (59 . =) |GROUPP;=;2$B;6| (|Character|) (65 . |elt|) 2960 (|OutputForm|) (71 . |coerce|) (76 . |outputForm|) 2961 (81 . |hconcat|) (87 . |message|) (92 . |hconcat|) (|List| 39) 2962 (97 . |concat|) (103 . |commaSeparate|) (108 . |blankSeparate|) 2963 (113 . |member?|) (119 . |concat|) (125 . |remove|) 2964 (131 . |remove|) (|Void|) (137 . |print|) (142 . |second|) 2965 (147 . |sign|) (152 . ~=) (158 . ~=) (164 . =) (170 . |copy|) 2966 (175 . |coerce|) (180 . |#|) (185 . |elt|) (191 . |elt|) 2967 |GROUPP;coerce;$Of;50| (197 . |coerce|) (202 . |concat|) 2968 |GROUPP;simplify;$B$;30| |GROUPP;simplify;2$;29| 2969 |GROUPP;quotient;$L$;32| (208 . |entries|) (213 . |concat|) 2970 |GROUPP;quotient;$L$;33| (219 . |concat|) (225 . |concat|) 2971 |GROUPP;directProduct;3$;34| (|PositiveInteger|) 2972 |GROUPP;cyclicGroup;Pi$;35| |GROUPP;dihedralGroup;Pi$;36| 2973 |GROUPP;symmetricGroup;Pi$;37| (|TwoDimensionalArray| 18) 2974 (230 . |coerce|) (235 . |nrows|) (|Union| $ '"failed") 2975 (240 . |subtractIfCan|) (246 . |vertSplit|) (|List| 81) 2976 (252 . |elt|) (258 . |maxColIndex|) (|List| 7) (263 . |coerce|) 2977 (268 . |maxRowIndex|) (273 . |new|) (|OneDimensionalArray| 18) 2978 (280 . |new|) (286 . |coerce|) (291 . |elt|) (297 . |coerce|) 2979 (302 . |ncols|) (307 . |elt|) (314 . |setelt!|) 2980 (322 . |horizSplit|) (328 . |horizConcat|) (334 . |concat|) 2981 (340 . |row|) (346 . |coerce|) (|Vector| 24) (351 . |coerce|) 2982 (356 . |elt|) (|Permutation| 23) (362 . |coerceImages|) 2983 (|List| 110) (|PermutationGroup| 23) (367 . |permutationGroup|) 2984 (|Union| 113 '"failed") |GROUPP;toPermutationIfCan;$BU;47| 2985 |GROUPP;toPermutationIfCan;$U;46| 2986 |GROUPP;toPermutationIfCan;$LBU;49| (372 . |One|) 2987 (376 . |concat|) (382 . |coerce|) (387 . |parts|) 2988 (|SingleInteger|) (|HashState|)) 2989 '#(~= 392 |toPermutationIfCan| 398 |symmetricGroup| 416 |simplify| 2990 421 |refactor| 432 |quotient| 437 |latex| 449 |hashUpdate!| 454 2991 |hash| 460 |groupPresentation| 465 |directProduct| 480 2992 |dihedralGroup| 486 |cyclicGroup| 491 |coerce| 496 = 501) 2993 'NIL 2994 (CONS (|makeByteWordVec2| 1 '(0 0 0)) 2995 (CONS '#(|SetCategory&| |BasicType&| NIL) 2996 (CONS 2997 '#((|SetCategory|) (|BasicType|) (|CoercibleTo| 39)) 2998 (|makeByteWordVec2| 124 2999 '(1 8 0 7 9 1 15 0 14 16 1 8 7 0 17 3000 1 8 18 0 19 2 21 0 0 20 22 2 24 0 3001 0 23 25 2 10 0 0 24 26 1 28 0 7 3002 29 2 28 30 0 0 31 1 10 10 0 32 1 3003 33 0 10 34 2 33 30 0 0 35 2 15 37 3004 0 23 38 1 37 39 0 40 1 39 0 23 41 3005 2 39 0 0 0 42 1 39 0 15 43 1 39 0 3006 14 44 2 45 0 0 39 46 1 39 0 14 47 3007 1 39 0 14 48 2 24 30 23 0 49 2 7 3008 0 0 18 50 2 8 0 18 0 51 2 24 0 23 3009 0 52 1 39 53 0 54 1 24 23 0 55 1 3010 23 23 0 56 2 23 30 0 0 57 2 18 30 3011 0 0 58 2 24 30 0 0 59 1 24 0 0 60 3012 1 24 39 0 61 1 7 18 0 62 2 7 18 0 3013 23 63 2 10 24 0 23 64 1 18 39 0 3014 66 2 24 0 0 0 67 1 7 7 0 71 2 10 3015 0 0 0 72 2 7 0 0 0 74 1 10 0 14 3016 75 1 81 39 0 82 1 81 18 0 83 2 18 3017 84 0 0 85 2 81 14 0 7 86 2 87 81 3018 0 23 88 1 81 23 0 89 1 90 39 0 91 3019 1 81 23 0 92 3 81 0 18 18 18 93 2 3020 94 0 18 18 95 1 23 39 0 96 2 94 3021 18 0 23 97 1 7 39 0 98 1 81 18 0 3022 99 3 81 18 0 23 23 100 4 81 18 0 3023 23 23 18 101 2 81 14 0 77 102 2 3024 81 0 0 0 103 2 87 0 0 81 104 2 81 3025 94 0 23 105 1 94 39 0 106 1 107 3026 39 0 108 2 107 24 0 23 109 1 110 3027 0 24 111 1 113 0 112 114 0 110 0 3028 119 2 90 0 0 0 120 1 87 39 0 121 3029 1 8 7 0 122 2 0 30 0 0 1 2 0 115 3030 0 30 116 3 0 115 0 10 30 118 1 0 3031 115 0 117 1 0 0 77 80 1 0 0 0 69 3032 2 0 0 0 30 68 1 0 0 0 27 2 0 0 0 3033 10 73 2 0 0 0 7 70 1 0 15 0 1 2 0 3034 124 124 0 1 1 0 123 0 1 0 0 0 13 3035 2 0 0 7 10 11 1 0 0 7 12 2 0 0 0 3036 0 76 1 0 0 77 79 1 0 0 77 78 1 0 3037 39 0 65 2 0 30 0 0 36))))) 3038 '|lookupComplete|)) 3039 3040(MAKEPROP '|GroupPresentation| 'NILADIC T) 3041