z3-z3-4.13.0.src.api.java.ArraySort Maven / Gradle / Ivy
The newest version!
/**
Copyright (c) 2012-2014 Microsoft Corporation
Module Name:
ArraySort.java
Abstract:
Author:
@author Christoph Wintersteiger (cwinter) 2012-03-15
Notes:
**/
package com.microsoft.z3;
/**
* Array sorts.
**/
@SuppressWarnings("unchecked")
public class ArraySort extends Sort
{
/**
* The domain of the array sort.
* @throws Z3Exception
* @throws Z3Exception on error
* @return a sort
**/
public D getDomain()
{
return (D) Sort.create(getContext(),
Native.getArraySortDomain(getContext().nCtx(), getNativeObject()));
}
/**
* The domain of a multi-dimensional array sort.
* @throws Z3Exception
* @throws Z3Exception on error
* @return a sort
**/
public D getDomain(int idx)
{
return (D) Sort.create(getContext(),
Native.getArraySortDomainN(getContext().nCtx(), getNativeObject(), idx));
}
/**
* The range of the array sort.
* @throws Z3Exception
* @throws Z3Exception on error
* @return a sort
**/
public R getRange()
{
return (R) Sort.create(getContext(),
Native.getArraySortRange(getContext().nCtx(), getNativeObject()));
}
ArraySort(Context ctx, long obj)
{
super(ctx, obj);
}
ArraySort(Context ctx, D domain, R range)
{
super(ctx, Native.mkArraySort(ctx.nCtx(), domain.getNativeObject(),
range.getNativeObject()));
}
ArraySort(Context ctx, Sort[] domains, R range)
{
super(ctx, Native.mkArraySortN(ctx.nCtx(), domains.length, AST.arrayToNative(domains),
range.getNativeObject()));
}
};