staload "ats_staexp2.sats"
staload "ats_dynexp2.sats"
abstype intinfset_t
fun intinflst_of_intinfset (xs: intinfset_t): List intinf_t
datatype p2atcst =
| P2TCany
| P2TCbool of bool | P2TCchar of char | P2TCcon of (d2con_t, p2atcstlst)
| P2TCempty
| P2TCfloat of string
| P2TCint of intinf_t
| P2TCintc of intinfset_t
| P2TCrec of (int, labp2atcstlst)
| P2TCstring of string
and labp2atcstlst =
| LABP2ATCSTLSTnil
| LABP2ATCSTLSTcons of (lab_t, p2atcst, labp2atcstlst)
where p2atcstlst (n:int) = list (p2atcst, n)
and p2atcstlst = [n:nat] p2atcstlst n
and p2atcstlst_vt (n:int) = list_vt (p2atcst, n)
and p2atcstlst_vt = [n:nat] p2atcstlst_vt n
and p2atcstlstlst (n:int) = List (p2atcstlst n)
and p2atcstlstlst = [n:nat] p2atcstlstlst n
and labp2atcstlstlst = List labp2atcstlst
fun p2atcst_of_p2at (_: p2at): p2atcst
fun p2atcstlst_of_p2atlst {n:nat} (_: p2atlst n): p2atcstlst n
fun fprint_p2atcst {m:file_mode}
(pf: file_mode_lte (m, w) | out: &FILE m, _: p2atcst): void
fun fprint_p2atcstlst {m:file_mode}
(pf: file_mode_lte (m, w) | out: &FILE m, _: p2atcstlst): void
fun fprint_p2atcstlstlst {m:file_mode}
(pf: file_mode_lte (m, w) | out: &FILE m, _: p2atcstlstlst): void
overload fprint with fprint_p2atcst
overload fprint with fprint_p2atcstlst
overload fprint with fprint_p2atcstlstlst
fun fprint_labp2atcstlst {m:file_mode}
(pf: file_mode_lte (m, w) | out: &FILE m, _: labp2atcstlst): void
overload fprint with fprint_labp2atcstlst
fun print_p2atcst (_: p2atcst): void
fun prerr_p2atcst (_: p2atcst): void
overload print with print_p2atcst
overload prerr with prerr_p2atcst
fun print_p2atcstlst (_: p2atcstlst): void
fun prerr_p2atcstlst (_: p2atcstlst): void
overload print with print_p2atcstlst
overload prerr with prerr_p2atcstlst
fun print_p2atcstlstlst (_: p2atcstlstlst): void
fun prerr_p2atcstlstlst (_: p2atcstlstlst): void
overload print with print_p2atcstlstlst
overload prerr with prerr_p2atcstlstlst
fun p2atcst_complement (_: p2atcst): p2atcstlst
fun p2atcstlst_complement {n:nat} (_: p2atcstlst n): p2atcstlstlst n
fun labp2atcstlst_complement (_: labp2atcstlst): labp2atcstlstlst
fun c2lau_pat_complement {n:nat} (_: c2lau n): p2atcstlstlst n
fun p2atcst_intersect_test (_: p2atcst, _: p2atcst): bool
fun p2atcstlst_intersect_test {n:nat}
(_: list (p2atcst, n), _: list (p2atcst, n)): bool
fun labp2atcstlst_intersect_test (_: labp2atcstlst, _: labp2atcstlst): bool
fun p2atcst_difference (_: p2atcst, _: p2atcst): p2atcstlst
fun p2atcstlst_difference {n:nat}
(_: list (p2atcst, n), _: list (p2atcst, n)): List (list (p2atcst, n))
fun labp2atcstlst_difference
(_: labp2atcstlst, _: labp2atcstlst): List (labp2atcstlst)