-
Notifications
You must be signed in to change notification settings - Fork 56
Expand file tree
/
Copy pathFunctionDeclaration.java
More file actions
46 lines (38 loc) · 1.07 KB
/
FunctionDeclaration.java
File metadata and controls
46 lines (38 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// This file is part of JavaSMT,
// an API wrapper for a collection of SMT solvers:
// https://github.com/sosy-lab/java-smt
//
// SPDX-FileCopyrightText: 2022 Dirk Beyer <https://www.sosy-lab.org>
//
// SPDX-License-Identifier: Apache-2.0
package org.sosy_lab.java_smt.api;
import com.google.common.collect.ImmutableList;
import com.google.errorprone.annotations.Immutable;
/**
* Function declaration, for both UFs and built-in functions (theory and boolean).
*
* <p>Can be instantiated using {@link FormulaManager#makeApplication}
*/
@Immutable
public interface FunctionDeclaration<E extends Formula> {
/**
* @return Type of the function (LT / GT / UF / etc...).
*/
FunctionDeclarationKind getKind();
/**
* @return Name of the function (UF name / "LT" / etc...).
*/
String getName();
/**
* @return List of indices for the function
*/
ImmutableList<Integer> getIndices();
/**
* @return Sort of the function output.
*/
FormulaType<E> getType();
/**
* @return Sorts of the arguments.
*/
ImmutableList<FormulaType<?>> getArgumentTypes();
}