• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • Vwsim
      • Isar
      • Wp-gen
      • Dimacs-reader
      • Pfcs
      • Legacy-defrstobj
      • Proof-checker-array
      • Soft
      • C
        • Syntax-for-tools
        • Atc
          • Atc-implementation
          • Atc-tutorial
            • Atc-tutorial-int-representation
            • Atc-tutorial-int-programs
            • Atc-tutorial-events
            • Atc-tutorial-conditionals-nonconcluding
            • Atc-tutorial-identifiers
            • Atc-tutorial-assignments
            • Atc-tutorial-multiple-functions
            • Atc-tutorial-conditionals-with-mbt
            • Atc-tutorial-local-variables
            • Atc-tutorial-conditional-statements
            • Atc-tutorial-conditional-expressions
            • Atc-tutorial-atj-comparison
            • Atc-tutorial-proofs
            • Atc-tutorial-approach
            • Atc-tutorial-motivation
        • Language
        • Representation
        • Transformation-tools
        • Insertion-sort
        • Pack
      • Farray
      • Rp-rewriter
      • Instant-runoff-voting
      • Imp-language
      • Sidekick
      • Leftist-trees
      • Java
      • Taspi
      • Bitcoin
      • Riscv
      • Des
      • Ethereum
      • X86isa
      • Sha-2
      • Yul
      • Zcash
      • Proof-checker-itp13
      • Regex
      • ACL2-programming-language
      • Json
      • Jfkr
      • Equational
      • Cryptography
      • Poseidon
      • Where-do-i-place-my-book
      • Axe
      • Bigmems
      • Builtins
      • Execloader
      • Aleo
      • Solidity
      • Paco
      • Concurrent-programs
      • Bls12-377-curves
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
    • Testing-utilities
  • Atc

Atc-tutorial

ATC tutorial.

Scope of the Tutorial

This tutorial is work in progress, but it should be already useful in its current incomplete form. This tutorial's goal is to provide user-level pedagogical information on how ATC works and how to use ATC effectively. See the ATC manual page for the ATC reference documentation.

In this tutorial, we refer to the official C standard in the manner explained in the top-level XDOC topic of our C library.

Structure of the Tutorial

This tutorial consists of this top-level page plus a number of hyperlinked pages, all of which are subtopics of this top-level page, listed below alphabetically for easy reference. Starting from this top-level page, we provide Start and Next links to navigate sequentially through all the tutorial pages; we also provide Previous links going the opposite direction. It is recommended to follow this order when reading this tutorial for the first time.

Some pages may be skipped at first reading, because they contain additional information that may not be necessary for a user to know in order to start using ATC; such pages include explicit text indicating that. However, it is recommended to read all the pages, eventually.

Start: Motivation for Generating C Code from ACL2

Subtopics

Atc-tutorial-int-representation
ATC tutorial: ACL2 representation of the C int type and operations.
Atc-tutorial-int-programs
ATC tutorial: ACL2 representation and generation of C int programs.
Atc-tutorial-events
ATC tutorial: ACL2 events generated by ATC.
Atc-tutorial-conditionals-nonconcluding
ATC tutorial: ACL2 representation of C conditional statements followed by more code.
Atc-tutorial-identifiers
ATC tutorial: ACL2 representation of C identifiers.
Atc-tutorial-assignments
ATC tutorial: ACL2 representation of C assignments.
Atc-tutorial-multiple-functions
ATC tutorial: ACL2 representation and generation of multiple C functions.
Atc-tutorial-conditionals-with-mbt
ATC tutorial: Treatment of ACL2 conditionals with mbt.
Atc-tutorial-local-variables
ATC tutorial: ACL2 representation of C local variables.
Atc-tutorial-conditional-statements
ATC tutorial: ACL2 representation of C conditional statements.
Atc-tutorial-conditional-expressions
ATC tutorial: ACL2 representation of C conditional expressions.
Atc-tutorial-atj-comparison
ATC tutorial: Comparison with ATJ's Java code generation from ACL2.
Atc-tutorial-proofs
ATC tutorial: ACL2 Proofs Generated for the Generated C code.
Atc-tutorial-approach
ATC tutorial: Approach to Generating C Code from ACL2.
Atc-tutorial-motivation
ATC tutorial: Motivation for Generating C Code from ACL2.