Project Page Index Table of Contents
  • Preliminaries
    • Lists
    • Tactics
    • Boolean propositions and decisions
    • Discrete types
    • Lists
      • Decisions for lists
      • Membership
      • Disjointness
      • Inclusion
      • Setoid rewriting with list inclusion and list equivalence
      • Filter
      • Element removal
  • Shared libraries
    • Finitary sums and products over monoids
    • Binomial theorem
    • Bitwise operations on nat as list bool
    • Bitwise operations on nat
    • Euclidian division and Bezout's identity
    • Prime numbers
    • Base p representation
    • Reification for bounded quantification
    • Pidgeon hole principle
    • Iteration of binary relations
    • Traditional Definition
    • Inductive Definition
    • Binary PCP
    • Binary Post correspondence problem with indices
  • Decidability and Enumerability
    • Closure of enumerable types
    • Enumerability of pairs of natural numbers
    • Discrete types are closed under ...
    • Enumerable types are closed under ...
    • Enumerable predicates are closed under ...
  • Many-One Reductions
  • Post's Theorem and Markov's Principle
  • Post Correspondence Problem
    • Enumerability
  • First-Order Logic
    • Syntax
    • Enumerability
  • Tarski Semantics
    • Variables and Substitutions
    • Interpretations
  • Natural Deduction
    • Definition
    • Soundness
    • Generalised Induction
    • Enumerability
  • Kripke Semantics
    • Kripke Models
    • Connection to Tarski Semantics
    • Soundness
  • FOL Reductions
    • Validity
    • Provability
    • Satisfiability
    • Corollaries
    • Non-Standard Model
  • Intuitionistic FOL
    • Reductions
    • Corollaries
  • Classical Natural Deduction
    • Double Negation Translation
    • Reduction
    • Corollaries
  • Weakening
  • Infinite Data Types
    • Definition of infinite and generating types
    • Infinite data types are generating
    • Generating data types are infinite
    • Generating data types are in bijection to nat
  • Definitions
    • Post Correspondence Problem
    • String Rewriting
    • Post Grammars
    • Alphabets
      • Fresh symbols
  • SRH to SR
  • SR to MPCP
  • MPCP to PCP
  • PCP to CFP
  • PCP to CFI
  • TM to SRH
    • Definition of single-tape Turing Machines
    • TM to SR with finite types
    • SR with finite types to SR
    • TM to SRH'
    • SRH' to SRH
  • Post grammars are context-free
  • CFP to CFI
    • PCP reduces to BPCP
    • BPCP reduces to iBPCP
  • Code
    • Syntax
    • Semantics
    • Compisitional Reasoning over Subcode
  • A certified low-level compiler
  • Binary Stack Machines
    • Semantics for BSM
    • iBPCP reduces to BSM
    • Semantic Correctness of Compiled Code
    • A Syntactically Correct Compiler
  • Minsky Machines
    • Semantics for MM
    • Simulating Binary Stacks with numbers
    • BSM recues to MM
  • Intuionistic Linear Logic
    • eILL reduces to ILL
    • MM reduces to eILL
  • List of all results
  • Formal Undecidability
  • Alternate Minsky Machines such that two counters are enough for undec
    • Semantics for MM2 based on vectors
  • Minsky machines to FRACTRAN programs
    • Removal of self-loops in MMs
    • Two infinite sequences of primes
    • Definition of FRACTRAN
    • Compiler from MM to FRACTRAN
  • Arithmetic libraries for Matiyasevich's theorems
    • Modular arithmetic
    • Matric computation
    • Luca's theorem
    • Solutions of Pell's equation
    • Exponentiation is Diophantine
    • Sparse ciphers
  • Object-level representation of Diophantine equations
    • Diophantine logic
    • Elementary diophantine constraints
    • Single Diophantine equations
    • Object-level encoding of exponential
    • Object-level encoding of bounded universal quantification I
    • Object-level encoding of bounded universal quantification II
    • Object-level encoding of bounded universal quantification III
    • Reflexive transitive closure is Diophantine
    • FRACTRAN termination is Diophantine
  • Main undecidability results and DPRM theorem
    • HALT reduces to MM
    • MM reduces to FRACTRAN
    • FRACTRAN reduces to Diophantine logic
    • Hilbert's tenth problem is undecidable
    • The DPRM theorem
  • Basis for the full TM library
  • Relations
    • Relational operators on labelled relations
    • Relations over Vectors
    • Reflexive transitive closure and relational power
  • Definition of Multi-Tape Turing Machines
    • Definition of the tape
    • Definition of moves
      • Rewriting Lemmas
    • Machine step
    • Rewriting tactics
    • Nop Action
    • Mirror tapes
    • Helping functions for tapes
    • Mapping tapes
    • Lemmas about tape_move_left' and tape_move_right'
    • Definition of Multi-Tape Turing Machines
      • Configurations of TMs
      • Machine execution
      • Realisation
      • Termination/Runtime
      • Canonical relations
    • Automation of the generation of relations
  • 0-tape Turing machine that does nothing.
    • Tactic Support
  • Basic 1-Tape Machines
    • Helper functions
    • Do a single action
      • Derived Machines
    • Read a symbol
    • Tactic Support
  • Primitive Two-tape machines
    • Read two symbols
    • Tactic Support
  • Combinators
    • Simple Combinators
    • Tactic Support
  • Switch Combinator
    • Correctness of While
    • Termination of While
    • (Co-) Induction Principle for Correctness (Running Time) of While
    • Correctness of StateWhile
    • Termination of StateWhile
    • (Co-) Induction Principle for Correctness (Running Time) of StateWhile
  • Mirror Operator
  • Tapes-Lift
  • Tactic Support
  • Alphabet-Lift
  • Tactics that help verifying complex machines
  • Simple compound multi-tape Machines
    • Nop
    • Diverge
    • Move two tapes
    • Copy Symbol
    • Read Char
    • Tactic Support
  • Move to a symbol and translate read symbols
  • Copy Symbols from t0 to t1
    • Shift to left
  • Compare two tapes (from left to right) until a symbol is reached
  • Codable Class
  • Value-Containing
    • Right tapes
  • Alphabet-lift for "programmed" Turing Machines
    • Definition of the lifted machine
    • Tactic Support
  • Copying Machines and Helper functions for verifying machines using CopySymbols ane MoveToSymbol
  • Compare two values
  • All tools for programming Turing machines
  • Constructor and Deconstructor Machines for Natural Numbers
    • Deconstructor
    • Constructors
    • Tactic Support
  • Constructor and Deconstructor Machines for Sum Types and Option Types
    • Deconstructor for Sum Types
    • Constructors for Sum Types
    • Tactic Support for Sum Types
    • Deconstructor for Option Types
    • Constructors for Option Types
    • Tactic Support for Option Types
  • Constructor and Deconstructor Machines for Lists
    • Deconstructor
      • Corectness
      • Termination
    • IsNil
    • Constructors
      • nil
      • cons
    • Tactic Support
  • Constructors and Deconstructors for Finite Types
  • Constructors and Deconstructors for Pair Types
    • Deconstructor
    • Constructor
    • Compatibility of running time and size functions with mapping of encodings
    • Tactic Support
  • Machines that compte natural functions
    • Addition
      • Correctness of Add
      • Termination of Add
    • Multiplication
      • Correctness of Mult
      • Termination of Mult
  • Machines that compute list functions
    • Implementation of nth_error
    • Other Implementation of nth_error
    • Append
    • Length
  • Encoding for binary numbers
    • General definitions and lemmas on binary numbers
  • Pointer bookkeeping for machines using (positive) binary numbers
      • Extensionality lemma and tactics
    • Helper Machines for positive numbers
    • Read the current symbol
    • Read the two current symbols
      • Go from some bit to the HSB
      • Go to the LSB (if it exists)
      • Setting bits and moving
      • Overwrite the HSB
    • Increment
  • Machine for comparing two positive binary numbers
    • Maximum
  • Machines for shifting positive binary numbers
      • Machine for Shifting Left
      • Machine for shifting a number y pos_size x-times left.
      • Check whether the number is one
      • Machine for Shifting Left
      • Machine for shifting a number y pos_size x times left.
    • Addition for positive numbers
    • Addition Machine
    • Add a number onto a register
  • Multiplication of positive numbers
    • Tail-recursive multiplication function
    • Multiplication Machine
  • Machines on N (binary natural numbers)
    • Write a number
    • Constructor
    • Deconstructor
    • Increment
    • Addition
    • Multiplication
    • Tactic Support
  • Lookup an entry in an associative list
  • Universal Turing Machine
  • Definitions and Automation for PrettyBounds
  • Automation
  • Maximum element in a list
    • Basic lemmas about upper bounds
    • Tail Recursive Definition
    • Definition of the maximum of a list
    • Maximum of a function
  • PrettyBounds for Machines in TM/Code
    • Copy steps functions
      • CasePair
      • CaseSum and CaseOption
      • CompareValue(s)
  • PrettyBound for Univ
      • Assoc List Lookup
  • Bounds For M2M
  • Case Study: Place usage for list machines
    • Common combinations
    • Simple List functions
  • Space Analysis for Univ
  • Theorem: Univ can simulate multi-tape Turing machines with polynominal time and linear space overhead
  • Preliminaries
    • Abstract Reduction Systems
  • The call-by-value lambda calculus L
    • Syntax
    • Reduction
  • Correctness and time bounds
    • Correctness
    • Time bounds
  • Certifying extraction from Coq to L with time bounds
    • Extraction
      • Generation of Scott encodings
        • Examples
      • Generation of constructors
        • Examples
      • Extracting terms from Coq to L
        • Examples
      • Generation of encoding functions
    • Symbolic simplification for L
      • Lproc
      • Lbeta: symbolic beta reduction
      • Reflexted closure calculus
        • Closure calculus
      • Closure calculus interpreter
      • Lrewrite: simplification with correctness statements
    • Tactics proving correctness
      • Interactive Demo
  • Encodings and extracted basic functions
    • Encoding of unit
    • Encoding of booleans
    • Encoding of lists
    • Encoding of natural numbers
    • Encoding of option type
    • Encoding of pairs
    • Encoding for L-terms
  • Extracted Functions
    • Extracted equality of encoded natural numbers
    • Extracted equality of encoded terms
    • Extracted encoding of natural numbers
    • Extracted term encoding
    • Decidabiity of closedness, boundedness and procness
    • Extracted size of terms
    • Extracted substitution on terms
    • Extracted step-indexed L-interpreter
    • Computability of full evaluation
    • Enumeratibility of L-terms
    • Computability of Ackermann
    • Extraction of Turing Machine interpreter
      • Encoding finite types
      • Encoding vectors
      • Encoding Tapes
      • Computability of transition relation
      • Computability of step-ndexed interpreter
    • Reducing halting problem for TMs to halting problem for L
  • Diophantine Equations
  • Resource Measures
    • Big-Step Time Measure
    • Leftmost reduction
      • Small-Step_Lm Time Measure
      • Small-Step_Lm Space Measure
      • Big-Step_Lm Space Measure
  • Abstract L machines
    • Encoding Terms as Programs
      • Program size
      • Programm Decomposition
      • Program Substitution
      • Injectivity of Programm Encoding
    • Abstract Substitution Machine
      • Reduction Rules
      • Time
      • Space
    • Abstract Heap Machine
      • Heaps
      • Reduction Rules
      • Unfolding
      • Time
      • Space
      • Bonus: Unfolding on Programs
    • Functional definitions of the abstract machines
      • TODO: Size-aware space machine
  • Computability in L
      • Encoding for Tokens
      • Heap Machine
      • TODO: Subst Machine
  • Definition of L-acceptability
  • Properties of acceptance
  • L-acceptable predicates are closed under conjunction and disjunction
  • L-ecidable predicates are L-acceptable (and their complement too)
  • Definition of L-decidability
  • Complement, conj and disj of predicates
  • Deciders for complement, conj and disj of ldec predicates
  • L-decidable predicates are closed under complement, conj and disj
  • First Fixed Point Theorem
  • Second Fixed Point Theorem
  • Definition of parallel or
  • The self halting problem is not L-acceptable
  • Rice's Theorem
    • Rice's Theorem, classical
  • Applications of Rice's Theorem
  • Rice's Theorem, classical, on combinators
  • Scott's Theorem
  • Applications of Scott's Theorem
  • Step indexed evaluation
  • Properties of star:
  • Semantics of the Heap Machine
    • Auxilliary Definitions
      • Functional Characterisation
    • Direct correctness proof
      • Definition compile/representation
      • Correctnes Heap-interaction
      • Unfolding
      • BS correctness
      • BS soundness
  • Alphabets
  • Constructors and Deconstructors for Comens
  • Heap Lookup
  • Implementation of ϕ (aka SplitBody)
  • Step Machine of the Heap Machine Simulator
  • Reduction of the Halting Problem of the Heap Machine to the Halting Problem of Turing Machines
  • PrettyBounds for LM
    • LM step functions
    • Sizes for (atomic) commands
    • JumpTarget
    • LM Lookup
  • Axiomatic Assumptions
    • Functional Extensionality
  • Syntax
    • Atoms
    • Applicative Head
    • Type Functions
    • Free Variables
  • Semantics
    • Compatibility Properties
    • Normality Characterisation
    • Inversion Lemmas
  • Equational Theory
    • Compatibility Properties
    • Injectivity Properties
    • Disjointness Properties
    • Huet Definition
  • Simple Typing
    • Preservation
  • Order Typing
    • Order of Types
    • Order Typing
    • Preservation Order Typing
  • Terms Extension
    • Typing
    • Semantics
    • Big Arrow
    • List Abstraction and Application
    • Substitutions and Renaming
    • Compatibility Properties
    • Equivalence Inversions
    • Normality
    • List Operators Typing
    • Utilities
  • Confluence
  • Weak Normalisation
    • Logical Relations
    • Semantic Soundness
    • Termination
  • Evaluator
    • Step Indexed Interpreter
    • Evaluator
  • Higher-Order Unification
    • Normalisation
  • System Unification
    • Normalisation
  • Nth-Order Unification
    • Nth-Order System Unification
    • Nth-Order Normalisation
  • Enumerability
    • Terms, Types and Contexts
    • Typing Proofs
    • Substitutions
    • Higher-Order Unification
  • PCP and MPCP
  • Third-Order Encoding
    • Encoding Typing
    • Encoding Properities
      • Reduction
      • Substitution
      • Injectivity
  • Simplified Reduction
    • Reduction Function
    • Forward Direction
    • Backward Direction
  • Huet Reduction
    • Reduction Function
    • Forward Direction
    • Backward Direction
  • Higher-Order Motivation
    • Church Numerals
    • Characteristic Equation
    • Diophantine Equations Encoding
    • Reduction Function
    • Equivalences
    • Forward Direction
    • Backward Direction
  • Second-Order Realisation
    • Goldfarb Numerals
    • Encoding
    • Characteristic Equation
    • Variables
    • Diophantine Equations Encoding
    • Reduction Function
    • Equivalences
      • Multiplication
    • Forward Direction
    • Backward Direction
    • Multiplication Motivation
  • Conservativity
    • Constant Operations
    • Inhabiting Types
    • Conservativity
    • Consequences
  • Constants
    • Adding Constants
    • Removing Constants
    • Goldfarb sharp
  • Enumerability from Conservativity
    • Nth-Order Unification
    • System Unification
    • Nth-Order System Unification
  • First-Order Unification
    • Singlepoint Substitution
    • Lambda-Freeness
    • Simplified First-Order Unification
      • Term Decompositon
      • Unification Relation
      • Computability
      • Soundness
      • Completeness
    • Retyping
    • Full First-Order Unification
  • L to TM
Generated by coqdoc and improved with CoqdocJS