All Projects → hopv → hoice

hopv / hoice

Licence: Apache-2.0 License
An ICE-based predicate synthesizer for Horn clauses.

Programming Languages

rust
11053 projects
SMT
39 projects

Projects that are alternatives of or similar to hoice

chainer-dense-fusion
Chainer implementation of Dense Fusion
Stars: ✭ 21 (-48.78%)
Mutual labels:  inference
serving-runtime
Exposes a serialized machine learning model through a HTTP API.
Stars: ✭ 15 (-63.41%)
Mutual labels:  inference
causaldag
Python package for the creation, manipulation, and learning of Causal DAGs
Stars: ✭ 82 (+100%)
Mutual labels:  inference
verify-service-provider
👑 ☑️ The easiest way to connect to GOV.UK Verify
Stars: ✭ 15 (-63.41%)
Mutual labels:  verify
onnxruntime backend
The Triton backend for the ONNX Runtime.
Stars: ✭ 40 (-2.44%)
Mutual labels:  inference
JOCI
Ordinal Common-sense Inference
Stars: ✭ 27 (-34.15%)
Mutual labels:  inference
VerificationCode
简单的滑动验证码JS插件 图片验证码
Stars: ✭ 15 (-63.41%)
Mutual labels:  verify
gaze-estimation-with-laser-sparking
Deep learning based gaze estimation demo with a fun feature :-)
Stars: ✭ 32 (-21.95%)
Mutual labels:  inference
vonage-node-code-snippets
NodeJS code examples for using Nexmo
Stars: ✭ 46 (+12.2%)
Mutual labels:  verify
object-flaw-detector-python
Detect various irregularities of a product as it moves along a conveyor belt.
Stars: ✭ 17 (-58.54%)
Mutual labels:  inference
caffe
This fork of BVLC/Caffe is dedicated to supporting Cambricon deep learning processor and improving performance of this deep learning framework when running on Machine Learning Unit(MLU).
Stars: ✭ 40 (-2.44%)
Mutual labels:  inference
connection checker
Android library for checking the internet connectivity of a device.
Stars: ✭ 26 (-36.59%)
Mutual labels:  verify
git-conventional-commits
Git Conventional Commits Util to generate Semantic Version and Markdown Change Log and Validate Commit Messag
Stars: ✭ 58 (+41.46%)
Mutual labels:  verify
pdf-scripts
📑 Scripts to repair, verify, OCR, compress, wrangle, crop (etc.) PDFs
Stars: ✭ 33 (-19.51%)
Mutual labels:  verify
tf-cpp-pose-estimation
Tensorflow C++ examples for Visual Studio. Features Pose Estimation and various techniques to utilize the Tensorflow C++ interface
Stars: ✭ 23 (-43.9%)
Mutual labels:  inference
noisy-networks-measurements
Noisy network measurement with stan
Stars: ✭ 42 (+2.44%)
Mutual labels:  inference
checktestdata
checks integrity of test data in programming contests like the ACM ICPC
Stars: ✭ 19 (-53.66%)
Mutual labels:  verify
aws-lambda-docker-serverless-inference
Serve scikit-learn, XGBoost, TensorFlow, and PyTorch models with AWS Lambda container images support.
Stars: ✭ 56 (+36.59%)
Mutual labels:  inference
EnhanceDiskUtility
SIMBL plugin for Disk Utility that aims to enable Verify / Repair Permissions support
Stars: ✭ 17 (-58.54%)
Mutual labels:  verify
FATE-Serving
A scalable, high-performance serving system for federated learning models
Stars: ✭ 107 (+160.98%)
Mutual labels:  inference

CI

hoice is an ICE-based Constrained Horn Clause (CHC) solver.

Given some CHCs mentioning some undefined predicates, hoice infers definitions for these predicate that respect all CHCs or prove none exist. Hoice supports the Bool, Int and Real sorts. It also supports user-defined ADTs, although it is still in an experimental stage.

Install

If you haven't already, install Rust on your system. The recommended way to do this is to use rustup.

Hoice generally uses the latest rust features available. Make sure the rust ecosystem is up to date by running the following command before building hoice.

rustup update stable

Installing hoice with cargo:

cargo install --git https://github.com/hopv/hoice

To build hoice manually, clone this repository, cd in the directory and run

cargo build --release

The binary file will be in target/release/hoice.

To get the fastest version, compile hoice with

cargo build --release --features "bench"

Note that this disables some features such as verbose output, profiling...

z3

hoice relies on the z3 SMT-solver. Make sure you have a relatively recent version of the z3 binary in your path.

Language

Consult the wiki for a description of hoice's language.

Features

  • define-funs
  • Bool
  • Int
  • Real
  • Array (naive)
  • List
  • (mutually recursive) ADTs

Future features:

  • user-specified qualifiers through define-funs

Checking the result

hoice can check its own results. The code performing this feature is completely separated from the code doing the actual inference so that the check is meaningful.

In fact, the code for this is almost implemented as some string substitutions followed by an SMT query for each clause of the problem.

For now, this feature is completely off-line. Put hoice's result in a file, for instance with

hoice <horn_clause_file> | tee <output_file>

and use the --check option to verify that the predicates inferred verify all the horn clauses:

hoice --check <output_file> <horn_clause_file>

Latest version

This repository hosts the latest stable version of hoice. See the main developer's fork for a cutting edge, although unstable, version.

Contributing

We welcome any help, please the contribution guidelines if you are not familiar with the github pull request workflow to get started.

License

hoice is released under the Apache 2 license. Please note in particular that the NOTICE.md file from this repository must be available if you redistribute hoice in a source or binary format.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].