Skip to content

Inferara/inference-language-spec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

alt text

🌀 Inference programming language specification

Warning

This document is a work in progress. The content is subject to change. Some sections may be incomplete or missing. Please stay tuned for updates.

Inference is a programming language that defines a high-assurance, deterministic computing model with non-deterministic extensions designed by Inferara for developing verifiable programs. It enables developers to write both executable code and formal specifications in a unified language, using a familiar syntax similar to imperative programming languages.

Inference allows formal proof of the correctness of the specified properties to be expressed as a theorem-prover theory and verified in an automated way. The compiler (infc) targets multiple backends: generating executable binaries (currently WASM via LLVM IR) for deployment and proof units (Rocq) for formal verification.

Important

Inference is designed for both high-assurance application development and formal specification. While Web3 applications are a primary use case, the language's safety guarantees (determinism, no floating-point, static typing) make it suitable for any critical system requiring formal verification.

This repository contains the specification of the Inference programming language. The specification is divided into several sections, each describing a specific aspect of the language. The language is designed to be simple and easy to learn, and its syntax is concise and similar to Rust.

Table of contents

About

🌀 Inference programming language specification

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Contributors 3

  •  
  •  
  •