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 domain-specific programming language designed by Inferara to enable Web3 developers to formulate properties of the native application algorithms in a familiar format similar to how unit tests are written.
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.
Important
Inference is a Web3 native applications-oriented, formal specification language.
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.
- Foreword
- §1 Introduction
- §2 Terms and definitions
- §3 General description
- §4 Lexical structure
- §4.1 Comments
- §4.2 Keywords
- §4.3 Identifiers
- §4.4 Reserved Identifiers
- §4.5 Qualified Identifiers
- §4.6 Member Access
- §4.7 Literals
- §4.8 Right Arrow
- §4.9 Terminator
- §4.10 Braces
- §4.10.1 Curly Braces
- §4.10.1.1 Description
- §4.10.1.2 Examples
- §4.10.2 Parentheses
- §4.10.2.1 Description
- §4.10.2.2 Examples
- §4.10.3 Square Brackets
- §4.10.3.1 Description
- §4.10.3.2 Examples
- §4.10.4 Angle Brackets
- §4.10.4.1 Description
- §4.10.4.2 Examples
- §4.10.1 Curly Braces
- §5 Basic concepts
- §6 Types
- §7 Variables
- §8 Expressions
- §9 Statements
- §10 Definitions
- §11 Functions
- §12 Constants
- §13 Directives
- §A Grammar
- §B Standard Library
- §C Comments
- §D Examples
- §E Bibliography