packages feed

liquid-fixpoint-0.8.0.2: tests/neg/sets01.fq

// constant Set_empty : (func(1, [int; Set_Set @(0)]))
constant Set_sng : (func(1, [@(0); (Set_Set  @(0))]))

bind 1 m1 : {v : Set_Set Int | v = Set_empty 0}
bind 2 m2 : {v : Set_Set Int | v = (Set_cup (Set_cup m1 (Set_sng 10)) (Set_sng 20)) } 
bind 3 m3 : {v : Set_Set Int | v = (Set_cup (Set_cup m1 (Set_sng 20)) (Set_sng 10)) } 
bind 4 m4 : {v : Set_Set Int | v = (Set_cup m1 (Set_sng 10)) } 
bind 5 m5 : {v : Set_Set Int | v = (Set_cup m1 (Set_sng 20)) } 

constraint:
  env [ 1 ]
  lhs {v : int | true }
  rhs {v : int | (Set_mem 100 m1)  } 
  id 1 tag []

constraint:
  env [ 1; 2 ]
  lhs {v : int | true } 
  rhs {v : int | not (Set_mem 100 m2) }
  id 2 tag []

constraint:
  env [ 1; 2 ]
  lhs {v : int | true } 
  rhs {v : int | Set_mem 10 m2 }
  id 3 tag []

constraint:
  env [ 1; 2; 3 ]
  lhs {v : int | true }
  rhs {v : int | m2 = m3 } 
  id 4 tag []

constraint:
  env [ 1; 2; 3; 4; 5 ]
  lhs {v : int | true }
  rhs {v : int | m2 = Set_cup m4 m5 } 
  id 5 tag []