mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-04 13:29:11 +00:00 
			
		
		
		
	Adjusted return types of set functions to ArrayExprs in Java and .NET
Fixes #137
This commit is contained in:
		
							parent
							
								
									31eb738db5
								
							
						
					
					
						commit
						5f755a5bd8
					
				
					 2 changed files with 38 additions and 45 deletions
				
			
		| 
						 | 
				
			
			@ -1725,32 +1725,31 @@ public class Context extends IDisposable
 | 
			
		|||
    /**
 | 
			
		||||
     * Create an empty set.
 | 
			
		||||
     **/
 | 
			
		||||
    public Expr mkEmptySet(Sort domain)
 | 
			
		||||
    public ArrayExpr mkEmptySet(Sort domain)
 | 
			
		||||
    {
 | 
			
		||||
        checkContextMatch(domain);
 | 
			
		||||
        return Expr.create(this,
 | 
			
		||||
        return (ArrayExpr)Expr.create(this,
 | 
			
		||||
                Native.mkEmptySet(nCtx(), domain.getNativeObject()));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Create the full set.
 | 
			
		||||
     **/
 | 
			
		||||
    public Expr mkFullSet(Sort domain)
 | 
			
		||||
    public ArrayExpr mkFullSet(Sort domain)
 | 
			
		||||
    {
 | 
			
		||||
        checkContextMatch(domain);
 | 
			
		||||
        return Expr.create(this,
 | 
			
		||||
        return (ArrayExpr)Expr.create(this,
 | 
			
		||||
                Native.mkFullSet(nCtx(), domain.getNativeObject()));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Add an element to the set.
 | 
			
		||||
     **/
 | 
			
		||||
    public Expr mkSetAdd(Expr set, Expr element)
 | 
			
		||||
    public ArrayExpr mkSetAdd(ArrayExpr set, Expr element)
 | 
			
		||||
    {
 | 
			
		||||
        checkContextMatch(set);
 | 
			
		||||
        checkContextMatch(element);
 | 
			
		||||
        return Expr.create(
 | 
			
		||||
                this,
 | 
			
		||||
        return (ArrayExpr)Expr.create(this,
 | 
			
		||||
                Native.mkSetAdd(nCtx(), set.getNativeObject(),
 | 
			
		||||
                        element.getNativeObject()));
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -1758,12 +1757,11 @@ public class Context extends IDisposable
 | 
			
		|||
    /**
 | 
			
		||||
     * Remove an element from a set.
 | 
			
		||||
     **/
 | 
			
		||||
    public Expr mkSetDel(Expr set, Expr element)
 | 
			
		||||
    public ArrayExpr mkSetDel(ArrayExpr set, Expr element)
 | 
			
		||||
    {
 | 
			
		||||
        checkContextMatch(set);
 | 
			
		||||
        checkContextMatch(element);
 | 
			
		||||
        return Expr.create(
 | 
			
		||||
                this,
 | 
			
		||||
        return (ArrayExpr)Expr.create(this,
 | 
			
		||||
                Native.mkSetDel(nCtx(), set.getNativeObject(),
 | 
			
		||||
                        element.getNativeObject()));
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -1771,11 +1769,10 @@ public class Context extends IDisposable
 | 
			
		|||
    /**
 | 
			
		||||
     * Take the union of a list of sets.
 | 
			
		||||
     **/
 | 
			
		||||
    public Expr mkSetUnion(Expr... args)
 | 
			
		||||
    public ArrayExpr mkSetUnion(ArrayExpr... args)
 | 
			
		||||
    {
 | 
			
		||||
        checkContextMatch(args);
 | 
			
		||||
        return Expr.create(
 | 
			
		||||
                this,
 | 
			
		||||
        return (ArrayExpr)Expr.create(this,
 | 
			
		||||
                Native.mkSetUnion(nCtx(), (int) args.length,
 | 
			
		||||
                        AST.arrayToNative(args)));
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -1783,11 +1780,10 @@ public class Context extends IDisposable
 | 
			
		|||
    /**
 | 
			
		||||
     * Take the intersection of a list of sets.
 | 
			
		||||
     **/
 | 
			
		||||
    public Expr mkSetIntersection(Expr... args)
 | 
			
		||||
    public ArrayExpr mkSetIntersection(ArrayExpr... args)
 | 
			
		||||
    {
 | 
			
		||||
        checkContextMatch(args);
 | 
			
		||||
        return Expr.create(
 | 
			
		||||
                this,
 | 
			
		||||
        return (ArrayExpr)Expr.create(this,
 | 
			
		||||
                Native.mkSetIntersect(nCtx(), (int) args.length,
 | 
			
		||||
                        AST.arrayToNative(args)));
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -1795,12 +1791,11 @@ public class Context extends IDisposable
 | 
			
		|||
    /**
 | 
			
		||||
     * Take the difference between two sets.
 | 
			
		||||
     **/
 | 
			
		||||
    public Expr mkSetDifference(Expr arg1, Expr arg2)
 | 
			
		||||
    public ArrayExpr mkSetDifference(ArrayExpr arg1, ArrayExpr arg2)
 | 
			
		||||
    {
 | 
			
		||||
        checkContextMatch(arg1);
 | 
			
		||||
        checkContextMatch(arg2);
 | 
			
		||||
        return Expr.create(
 | 
			
		||||
                this,
 | 
			
		||||
        return (ArrayExpr)Expr.create(this,
 | 
			
		||||
                Native.mkSetDifference(nCtx(), arg1.getNativeObject(),
 | 
			
		||||
                        arg2.getNativeObject()));
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -1808,22 +1803,21 @@ public class Context extends IDisposable
 | 
			
		|||
    /**
 | 
			
		||||
     * Take the complement of a set.
 | 
			
		||||
     **/
 | 
			
		||||
    public Expr mkSetComplement(Expr arg)
 | 
			
		||||
    public ArrayExpr mkSetComplement(ArrayExpr arg)
 | 
			
		||||
    {
 | 
			
		||||
        checkContextMatch(arg);
 | 
			
		||||
        return Expr.create(this,
 | 
			
		||||
        return (ArrayExpr)Expr.create(this,
 | 
			
		||||
                Native.mkSetComplement(nCtx(), arg.getNativeObject()));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Check for set membership.
 | 
			
		||||
     **/
 | 
			
		||||
    public BoolExpr mkSetMembership(Expr elem, Expr set)
 | 
			
		||||
    public BoolExpr mkSetMembership(Expr elem, ArrayExpr set)
 | 
			
		||||
    {
 | 
			
		||||
        checkContextMatch(elem);
 | 
			
		||||
        checkContextMatch(set);
 | 
			
		||||
        return (BoolExpr) Expr.create(
 | 
			
		||||
                this,
 | 
			
		||||
        return (BoolExpr) Expr.create(this,
 | 
			
		||||
                Native.mkSetMember(nCtx(), elem.getNativeObject(),
 | 
			
		||||
                        set.getNativeObject()));
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -1831,12 +1825,11 @@ public class Context extends IDisposable
 | 
			
		|||
    /**
 | 
			
		||||
     * Check for subsetness of sets.
 | 
			
		||||
     **/
 | 
			
		||||
    public BoolExpr mkSetSubset(Expr arg1, Expr arg2)
 | 
			
		||||
    public BoolExpr mkSetSubset(ArrayExpr arg1, ArrayExpr arg2)
 | 
			
		||||
    {
 | 
			
		||||
        checkContextMatch(arg1);
 | 
			
		||||
        checkContextMatch(arg2);
 | 
			
		||||
        return (BoolExpr) Expr.create(
 | 
			
		||||
                this,
 | 
			
		||||
        return (BoolExpr) Expr.create(this,
 | 
			
		||||
                Native.mkSetSubset(nCtx(), arg1.getNativeObject(),
 | 
			
		||||
                        arg2.getNativeObject()));
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue