This PR uses Java 8 in CI, except on macOS arm64, where the minimum
supported Java version is 11. This ensures that the Java bindings, Java
API tests, and Java examples are compatible with the minimum required
Java version. It also ensures that the published Java bindings on GitHub
can run with this older version. Previously, CMake enforced
compatibility for the Java bindings, but not for the Java API tests or
the Java examples. This change provides a more centralized solution.
This PR also fixes a Java unit test to make it compatible with Java 8.
This exports SkolemFunId to the API, and adds it to the Java, Python APIs, and adds unit tests.
It does some minor refactoring to remove unnecessary ids and to move abstract value to an internal skolem id.
Followup PRs will add methods for constructing/parsing skolems. I will also rename SkolemFunId -> SkolemId throughout the code base after this PR is merged.
This PR removes some unnecessary methods in the Java API that were added to simplify several unit tests that use dynamic arrays. The goal is to make the java API consistent and as small as possible.
Users could use asList, toArray methods to use generic lists if they wish.
Previously, we were using io.github.cvc5.api to mirror the C++
namespace that the API was in. The namespace of the C++ API changed to
simply cvc5 and so this commit updates the Java package accordingly.
This PR patches cross reference links in Kind.java comments for now until a proper way is implemented that handles documentation for cpp, python and Java API.