GithubHelp home page GithubHelp logo

pennyannn / lnsym-public Goto Github PK

View Code? Open in Web Editor NEW

This project forked from leanprover/lnsym

0.0 0.0 0.0 342 KB

Armv8 Native Code Symbolic Simulator in Lean

License: Apache License 2.0

Shell 0.28% C 0.17% Assembly 1.41% Makefile 0.11% Lean 97.78% SMT 0.25%

lnsym-public's Introduction

LNSym: Native Code Symbolic Simulator in Lean

Makefile CI

LNSym is a symbolic simulator for Armv8 machine-code programs.

Please see the LICENSE file for LNSym's licensing and CONTRIBUTING.md for external contribution guidelines.

Prerequisites

  1. Install Z3, recommended version 4.11.2, and make sure that it is in your path.

  2. Install Lean4 and your preferred editor's plug-in on your machine by following these instructions.

Build Instructions

Run make at the top-level of LNSym to fetch the Lean4 dependencies, build this library (including the proofs), and run conformance testing. Note that if you are not on an Aarch64 machine, conformance testing will be skipped.

The default make command corresponds to the following invocation:

make all VERBOSE=--verbose NUM_TESTS=20

Other Makefile targets

clean: remove build outputs.

clean_all: clean plus remove Lean dependencies.

specs: [run under all] builds only the specifications of native-code programs of interest.

proofs: [run under all] builds only the proofs.

tests: [run under all] builds concrete tests.

cosim: [run under all] perform conformance testing.

Makefile variables that can be passed in at the command line

VERBOSE: Verbose mode; prints disassembly of the instructions being tested. Default: on.

NUM_TESTS: Number of random tests/instruction class. Default: 20.

Directory Overview

  • Arm: Formalization of the Armv8 Aarch64 ISA
  • Specs: Specifications of algorithms of interest
  • Proofs: Proofs of Arm native-code programs
  • Tests: Concrete tests of Arm native-code programs

lnsym-public's People

Contributors

shigoel avatar pennyannn avatar semorrison avatar leodemoura avatar nebeid avatar aqjune-aws avatar soonhokong avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.