; Configuration file for the type-aware operator mutations based on the operators 
; as specified in the OOPSLA '20 paper. 
;
; Format:
;
; op1, op2, ... ,op_n
;
; Operators op_i in the same line form an equivalence class and can mutually 
; replace each other. 
;
; Example:
; +, -, * 
;
; Operator mutations can be conditioned on operator's arity. 
; 
; Example: 
; =,distinct: arity: 2+ 
; -,abs: arity: 1- 
;
; This requires operators "=" and "distinct" to have at least two arguments to trigger the  
; mutation, and "-","abs" to have at most one argument. At the moment, only the arities  
; 2+ ("two or more") and 1- (one or less) are supported  
; 
; Unidirectional mutations can be specified as   
; 
; abs -> - 
;
; which corresponds to a one-way mutation from operator "abs" to operator "-" 
;
=,distinct
exists,forall
not -> and,or
and,or,=> :arity 3+
and,or,=>,xor :arity 2
<=,>=,<,>
+,-,* :arity 2+
mod,div
abs,- :arity 1
re.++,re.union,re.inter,re.diff
str.<=,str.<,str.prefixof,str.suffixof,str.contains
str.replace,str.replace_all
str.replace_re,str.replace_re_all
re.comp,re.+,re.opt,re.*
re.none,re.all,re.allchar
str.to_code,str.to_int
str.from_code,str.from_int
union,intersection,setminus
bvnot,bvneg
bvand,bvor,bvnand,bvnor,bvxor,bvxnor,bvsub,bvsdiv,bvsmod,bvadd,bvmul,bvudiv,bvurem,bvshl,bvlshr,bvashr
bvule,bvugt,bvuge,bvslt,bvsle,bvsgt,bvsge
fp.abs,fp.neg
fp.add,fp.sub,fp.mul,fp.div
fp.min,fp.max
fp.leq,fp.lt,fp.geq,fp.gt,fp.eq
fp.isNormal,fp.isSubnormal,fp.isZero,fp.isInfinite,fp.isNaN,fp.isNegative,fp.isPositive
