All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sosy_lab.solver.api.UFManager Maven / Gradle / Ivy

There is a newer version: 5.0.1
Show newest version
/*
 *  JavaSMT is an API wrapper for a collection of SMT solvers.
 *  This file is part of JavaSMT.
 *
 *  Copyright (C) 2007-2015  Dirk Beyer
 *  All rights reserved.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package org.sosy_lab.solver.api;

import java.util.List;

/**
 * Manager for dealing with uninterpreted functions (UFs).
 */
public interface UFManager {

  /**
   * Declare an uninterpreted function.
   */
   FunctionDeclaration declareUF(
      String name, FormulaType returnType, List> args);

  /**
   * Declare an uninterpreted function.
   */
   FunctionDeclaration declareUF(
      String name, FormulaType returnType, FormulaType... args);

  /**
   * Create an uninterpreted function call.
   *
   * 

Simply delegates to {@link FormulaManager#makeApplication(FunctionDeclaration, List)} * * @param funcType Declaration of the function to call. * @param args Arguments of the function. * @return Instantiated function call. */ T callUF(FunctionDeclaration funcType, List args); T callUF(FunctionDeclaration funcType, Formula... args); /** * Declares and calls an uninterpreted function. */ T declareAndCallUF( String name, FormulaType pReturnType, List pArgs); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy