summaryrefslogtreecommitdiff
path: root/test/regress/regress2/bug765.smt2
blob: 2144de0607b0c5fa1b824fcee2dc198904be47a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
; COMMAND-LINE: --incremental --fmf-fun-rlv --no-check-models --lang=smt2.5
(set-logic ALL_SUPPORTED)

(declare-datatypes () (
    (Color (red) (white) (blue))
) )

(define-fun ColorToString ((c Color)) String (ite (is-red c) "red" (ite (is-white c) "white" "blue")) )
(declare-fun ColorFromString (String) Color)
(assert (forall ((c Color)) (= c (ColorFromString (ColorToString c)))))

(declare-datatypes () (
    (CP (cp (c1 Color) (c2 Color)))
) )

(define-fun-rec CPToString ((cp CP)) String (str.++ "cp(" (ColorToString (c1 cp)) "," (ColorToString (c2 cp)) ")"))
(declare-fun CPFromString (String) CP)
(assert (forall ((cp1 CP)) (= cp1 (CPFromString (CPToString cp1)))))

(declare-fun cpx() CP)
(assert (= cpx (CPFromString "cp(white,red)")))

; EXPECT: sat
(check-sat)

(declare-fun cpy() CP)
(assert (= cpy (CPFromString "cp(red,blue)")))

; EXPECT: sat
(check-sat)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback