symmetry_ax :: SORT -> CASLFORMULA
symmetry_ax s = quant
     where (free_sort, v1, v2, n1, n2, ps, lhs) = twoFreeVars s
           rhs = mkPredication ps [v2, v1]
           inner_form = mkImpl lhs rhs
           vd = [Var_decl [n1, n2] free_sort nullRange]
           quant = mkForall vd inner_form

-- | generates the name of the phi variable of a concrete sort
symmetry_ax :: SORT -> CASLFORMULA
symmetry_ax s = quant
     where (free_sort, v1, v2, n1, n2, ps, lhs) = twoFreeVars s
           rhs = mkPredication ps [v2, v1]
           inner_form = mkImpl lhs rhs
           vd = [Var_decl [n1, n2] free_sort nullRange]
           quant = mkForall vd inner_form

-- | generates the name of the phi variable of a concrete sort
symmetry_ax s = quant
     where (free_sort, v1, v2, n1, n2, ps, lhs) = twoFreeVars s
           rhs = mkPredication ps [v2, v1]
           inner_form = mkImpl lhs rhs
           vd = [Var_decl [n1, n2] free_sort nullRange]
           quant = mkForall vd inner_form

-- | generates the name of the phi variable of a concrete sort