mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	remove lower case files
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									a8e864a3e6
								
							
						
					
					
						commit
						1c1357af7d
					
				
					 2 changed files with 0 additions and 286 deletions
				
			
		| 
						 | 
				
			
			@ -1,134 +0,0 @@
 | 
			
		|||
/**
 | 
			
		||||
Copyright (c) 2017 Microsoft Corporation
 | 
			
		||||
 | 
			
		||||
Module Name:
 | 
			
		||||
 | 
			
		||||
    Lambda.java
 | 
			
		||||
 | 
			
		||||
Abstract:
 | 
			
		||||
 | 
			
		||||
    Z3 Java API: Lambda
 | 
			
		||||
 | 
			
		||||
Author:
 | 
			
		||||
 | 
			
		||||
    Christoph Wintersteiger (cwinter) 2012-03-19
 | 
			
		||||
 | 
			
		||||
Notes:
 | 
			
		||||
 | 
			
		||||
**/
 | 
			
		||||
 | 
			
		||||
package com.microsoft.z3;
 | 
			
		||||
 | 
			
		||||
import com.microsoft.z3.enumerations.Z3_ast_kind;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Lambda expressions.
 | 
			
		||||
*/public class Lambda extends ArrayExpr
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The number of bound variables.
 | 
			
		||||
     **/
 | 
			
		||||
    public int getNumBound()
 | 
			
		||||
    {
 | 
			
		||||
        return Native.getQuantifierNumBound(getContext().nCtx(), getNativeObject());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The symbols for the bound variables.
 | 
			
		||||
     * 
 | 
			
		||||
     * @throws Z3Exception
 | 
			
		||||
     **/
 | 
			
		||||
    public Symbol[] getBoundVariableNames()
 | 
			
		||||
    {
 | 
			
		||||
        int n = getNumBound();
 | 
			
		||||
        Symbol[] res = new Symbol[n];
 | 
			
		||||
        for (int i = 0; i < n; i++)
 | 
			
		||||
            res[i] = Symbol.create(getContext(), Native.getQuantifierBoundName(
 | 
			
		||||
                    getContext().nCtx(), getNativeObject(), i));
 | 
			
		||||
        return res;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The sorts of the bound variables.
 | 
			
		||||
     * 
 | 
			
		||||
     * @throws Z3Exception
 | 
			
		||||
     **/
 | 
			
		||||
    public Sort[] getBoundVariableSorts()
 | 
			
		||||
    {
 | 
			
		||||
        int n = getNumBound();
 | 
			
		||||
        Sort[] res = new Sort[n];
 | 
			
		||||
        for (int i = 0; i < n; i++)
 | 
			
		||||
            res[i] = Sort.create(getContext(), Native.getQuantifierBoundSort(
 | 
			
		||||
                    getContext().nCtx(), getNativeObject(), i));
 | 
			
		||||
        return res;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The body of the quantifier.
 | 
			
		||||
     * 
 | 
			
		||||
     * @throws Z3Exception
 | 
			
		||||
     **/
 | 
			
		||||
    public BoolExpr getBody()
 | 
			
		||||
    {
 | 
			
		||||
        return new BoolExpr(getContext(), Native.getQuantifierBody(getContext()
 | 
			
		||||
                .nCtx(), getNativeObject()));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Translates (copies) the quantifier to the Context {@code ctx}.
 | 
			
		||||
     * 
 | 
			
		||||
     * @param ctx A context
 | 
			
		||||
     * 
 | 
			
		||||
     * @return A copy of the quantifier which is associated with {@code ctx}
 | 
			
		||||
     * @throws Z3Exception on error
 | 
			
		||||
     **/
 | 
			
		||||
    public Lambda translate(Context ctx)
 | 
			
		||||
    {
 | 
			
		||||
        return (Lambda) super.translate(ctx);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
       
 | 
			
		||||
    public static Lambda of(Context ctx, Sort[] sorts, Symbol[] names, Expr body) 
 | 
			
		||||
    {
 | 
			
		||||
        ctx.checkContextMatch(sorts);
 | 
			
		||||
        ctx.checkContextMatch(names);
 | 
			
		||||
        ctx.checkContextMatch(body);
 | 
			
		||||
	
 | 
			
		||||
        if (sorts.length != names.length) 
 | 
			
		||||
            throw new Z3Exception("Number of sorts does not match number of names");
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	long nativeObject = Native.mkLambda(ctx.nCtx(), 
 | 
			
		||||
					    AST.arrayLength(sorts), AST.arrayToNative(sorts),
 | 
			
		||||
					    Symbol.arrayToNative(names),
 | 
			
		||||
					    body.getNativeObject());
 | 
			
		||||
	
 | 
			
		||||
        return new Lambda(ctx, nativeObject);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param ctx Context to create the lambda on.
 | 
			
		||||
     * @param bound Bound variables.
 | 
			
		||||
     * @param body Body of the lambda expression.
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    public static Lambda of(Context ctx, Expr[] bound, Expr body) {
 | 
			
		||||
        ctx.checkContextMatch(body);
 | 
			
		||||
 | 
			
		||||
              
 | 
			
		||||
       long nativeObject = Native.mkLambdaConst(ctx.nCtx(),
 | 
			
		||||
					   AST.arrayLength(bound), AST.arrayToNative(bound),
 | 
			
		||||
					   body.getNativeObject());
 | 
			
		||||
       return new Lambda(ctx, nativeObject);
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    private Lambda(Context ctx, long obj)
 | 
			
		||||
    {
 | 
			
		||||
        super(ctx, obj);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue