game: reimplement print_aiger

* spot/twaalgos/aiger.cc, spot/twaalgos/aiger.hh: Reimplement
print_aiger for speed gain, also heuristics to minimize the number
of gates as well as different encoding types have been added.
* bin/ltlsynt.cc: Make the new options for print-aiger available.
* tests/core/ltlsynt.test: Adjust tests.
This commit is contained in:
philipp 2020-06-10 18:12:47 +02:00 committed by Alexandre Duret-Lutz
parent f5965966e9
commit 0d43bedacb
5 changed files with 562 additions and 214 deletions

View file

@ -47,42 +47,80 @@ diff out exp
cat >exp <<EOF
REALIZABLE
aag 30 1 3 1 26
aag 31 1 3 1 26
2
4 47
4 49
6 57
8 59
61
10 3 5
12 7 9
14 10 12
16 2 5
18 16 12
20 3 4
22 20 12
24 2 4
26 24 12
28 6 9
30 16 28
32 10 28
34 24 28
36 20 28
63
10 7 9
12 5 10
14 12 3
16 12 2
18 4 10
20 18 3
22 18 2
24 6 9
26 5 24
30 26 3
32 4 24
34 32 2
36 32 3
38 7 8
40 16 38
42 10 38
44 23 33
46 15 44
48 27 31
50 19 48
52 35 41
54 33 52
56 50 54
58 37 43
60 48 54
40 5 38
42 40 2
44 40 3
46 21 31
48 15 46
50 17 23
52 35 43
54 50 52
56 27 54
58 37 45
60 27 52
62 23 60
i0 a
o0 b
EOF
ltlsynt --ins=a --outs=b -f 'GFa <-> GFb' --aiger >out
ltlsynt --ins=a --outs=b -f 'GFa <-> GFb' --aiger=ISOP >out
diff out exp
cat >exp <<EOF
REALIZABLE
aag 28 1 3 1 24
2
4 38
6 49
8 56
29
10 6 9
12 5 10
14 7 8
16 15 11
18 4 9
20 5 17
22 21 19
24 2 23
26 3 12
28 27 25
30 7 9
32 4 30
34 5 9
36 35 33
38 3 37
40 6 11
42 5 41
44 43 19
46 2 45
48 27 47
50 4 10
52 5 14
54 53 51
56 3 55
i0 a
o0 b
EOF
ltlsynt --ins=a --outs=b -f 'GFa <-> GFb' --aiger=ITE >out
diff out exp
cat >exp <<EOF
@ -94,14 +132,14 @@ aag 16 1 2 2 13
31
31
8 5 7
10 3 8
12 2 8
10 8 3
12 8 2
14 4 7
16 3 14
18 2 14
16 14 3
18 14 2
20 5 6
22 2 20
24 3 20
22 20 2
24 20 3
26 17 25
28 11 26
30 19 23
@ -110,7 +148,29 @@ i0 a
o0 b
o1 c
EOF
ltlsynt --ins=a --outs=b,c -f 'GFa <-> (GFb & GFc)' --aiger >out
ltlsynt --ins=a --outs=b,c -f 'GFa <-> (GFb & GFc)' --aiger=Isop >out
diff out exp
cat >exp <<EOF
REALIZABLE
aag 10 1 2 2 7
2
4 18
6 20
14
14
8 4 7
10 5 6
12 11 9
14 2 13
16 4 9
18 3 17
20 2 17
i0 a
o0 b
o1 c
EOF
ltlsynt --ins=a --outs=b,c -f 'GFa <-> (GFb & GFc)' --aiger=ite >out
diff out exp
cat >exp <<EOF