Project Page Index Table of Contents
  • Basics of decision problems
      • Time Constructibility
    • O notation
      • smallO
    • O(poly)
    • NP
    • Poly Time Reduction s
    • NP Hardness and Completeness
  • Overview over the results proved in the thesis
  • #P (verifier characterisation)
  • Representation of finite types by natural numbers
    • Encoding of lists
    • Encoding of natural numbers
  • Shared Definitions for SAT and FSAT
  • SAT: Satisfiability of CNFs
    • Definition of SAT
    • Verifier for SAT
    • extraction
  • k-SAT
  • Plain undirected graphs
  • Flat representation of an undirected graph.
  • Clique on flat graphs and NP containment
    • extraction
    • NP containment
  • Derivation of the pigeonhole principle on lists
  • Reduction from k-SAT to Clique
    • SAT implies Clique
    • Clique implies SAT
      • Step 1
      • Step 2
      • Step 3: map to literals
      • Step 4: map to a satisfying assignment
  • k-SAT to FlatClique
    • extraction
  • Definition of a generic NP-hard problem
  • Reduction of GenNP with fixed TM to GenNP with variable TM
  • Simpler definitions for single-tape Turing machines.
  • Parallel Rewriting
    • Validity of a rewrite
  • 3-Parallel Rewriting
    • TPR using list-based windows
    • variant PTPR using propositional rules
  • Adding preludes to P-3-PR instances
  • Reduction of single-tape Turing machines to 3-PR
    • Alphabet
    • Representation of tapes
    • Representation of configurations
    • Automation for discrimination of the tape relation
    • Inductive rules for tape rewrites
    • The following results generalise Lemma 16 -17 to arbitrary tapes
    • Transitions
      • inversion of transition rules
    • Predicate for halting extensions
    • Combined rules for the simulation of Turing machines
    • A few simple facts about applicability of rules
    • A few more technical facts regarding rewrites
    • Automation for the simulation proofs
    • multi-step simulation
    • nondeterministic guessing of input
    • list-based windows
      • list-based window infrastructure
      • Proof that the outputs of both reification procedures are related via finReprEl
      • Reification of rewrite windows
      • Definition of list-based rules
    • agreement for transitions
      • Proof of transition agreement
      • Flat windows
  • Flat Parallel Rewriting
    • extraction
  • Flat 3-Parallel Rewriting
    • extraction
  • extraction of the reduction from FlatGenNP to FlatPR
  • Uniform homomorphisms
    • Homomorphisms
    • Uniform Homomorphisms
  • Results on the behaviour of PR under string homomorphisms
  • BinaryPR: Parallel Rewriting restricted to a binary alphabet
  • PR to BinaryPR
  • Formula Satisfiability: the satisfiability problem on arbitrary Boolean formulas
    • extraction
  • Reduction of BinaryPR to FSAT
      • extraction
  • FSAT to SAT via Tseytin transformation
    • eliminate ORs
    • Tseytin transformation
    • size analysis : the tseytin transformation incurs a linear blowup wrt to the size measures defined for formulas and CNFs.
    • Running-time analysis
    • full reduction
  • The hardness proof of GewnNPHalt is prettier
  • Resource Measures
    • Big-Step Time Measure
    • Leftmost reduction
      • Small-Step_Lm Time Measure
      • Small-Step_Lm Space Measure
      • Big-Step_Lm Space Measure
  • Time Hierarchy theorem
    • Decidability in the larger time
  • 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 Bool
  • 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 of sum type
    • Encoding of positive binary numbers
    • Encoding of natural binary numbers
      • basic functions
    • Encoding for L-terms
      • Encoding for Comparisons
      • Encoding finite types
      • Encoding vectors
  • Extracted Functions
    • Extracted equality of encoded natural numbers
    • Extracted equality of encoded terms
    • Extracted encoding of natural numbers
    • Extracted term encoding
    • Extracted tuple encoding
    • Decidabiity of closedness, boundedness and procness
    • Extracted size of terms
    • Extracted substitution on terms
    • Extracted step-indexed L-interpreter
    • Computability of full evaluation
      • Addition of binary numbers
      • Subtraction of binary Numbers
    • Enumeratibility of L-terms
    • Computability of Ackermann
    • Extraction of Turing Machine interpreter
      • Encoding Tapes
    • unflatten Tapes
    • unflatten Conf
      • Computability of transition relation
      • Computability of step-ndexed interpreter
    • Reducing halting problem for TMs to halting problem for L
  • Diophantine Equations
    • Abstract Substitution Machine
      • Reduction Rules
      • Time
      • Space
      • Time
      • Soundness
      • Space
    • Abstract Heap Machine
      • Heaps
      • Reduction Rules
      • Unfolding
    • Functional definitions of the abstract machines
      • TODO: Size-aware space machine
  • Computability in L
      • Encoding Heaps
      • Primitive functions with Heaps
      • Heap Machine
      • Heap Machine Step
  • Abstract L machines
      • Program size
      • Programm Decomposition
      • Program Substitution
      • Injectivity of Programm Encoding
    • Encoding Terms as Programs
  • Semantics of the Heap Machine
    • Auxilliary Definitions
      • Functional Characterisation
    • Direct correctness proof
      • Correctnes Heap-interaction
      • Unfolding
      • BS correctness
      • BS soundness
  • 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
  • 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
  • L to TM
Generated by coqdoc and improved with CoqdocJS