- External Libraries
- Proofs and definitions obtained from external sources
- Basic definitions of decidablility and Functions
- Definition of useful tactics
- Injectivity and surjectivity
- Pure predicates
- Proofs about equality
- Decidablility of equality: Instance declarations
- Functions creating an eqType from a type or a value
- Definition of useful functions
- Basic lemmas about functions
- Cardinality Lemmas for lists
- Various helpful Lemmas
- Formalisation of finite types using canonical structures and type classes
- Definition of finite Types
- Properties of decidable Propositions
- Completeness Lemmas for lists of basic types
- Declaration of finTypeCs for base types as instances of the type class
- Canonical structures declarations for finTypes of base types
- Correctness of finTypes for basic types
- Completeness lemma and Canonical Structure definition for cartesian product and option types
- Definition of the actual finTypes for option types and cross products
- Correctness proofs for the cross product and option type finTypes from above
- Tests and Examples
- Definition of sum Type as finType
- Dupfreeness
- Definition of vectors (extensional/ set theoretic functions)
- Proofs about Cardinality
- Dependent pairs
- Subtypes
- finTypes from Lists
- Finite Closure Iteration
- Proofs about DFA as a test for the finType library
- Languages
- Sequences
- Strings
- Strictly Monotone Sequences on nat
- Operations on Sequences
- Nondeterminisic Finite Automata
- Buechi Acceptance for Sequences on NFAs
- Simple Example: NFA recognizing the Buechi language (ab)^00
- NFA with empty Buechi language
- Closure under Union of Buechi languages
- Closure under Intersection of Buechi languages
- Some Utilities
- Decidability of Buechi Language Emptyness
- Constructions on NFAs
- Normalization of NFAs regarding String Languages
- ω-Iteration of a NFA String Language
- Prepending a String on a Buechi Language
- Complementation of Buechi Languages