Library Symbols
Library Preface
Library Basics
- Basics: Functional Programming in Coq
- Introduction
- Enumerated Types
- Proof by Simplification
- Proof by Rewriting
- Proof by Case Analysis
- More Exercises
- Optional Material
Library Induction
- Induction: Proof by Induction
- Naming Cases
- Proof by Induction
- Proofs Within Proofs
- More Exercises
- Advanced Material
Library Lists
- Lists: Working with Structured Data
- Pairs of Numbers
- Lists of Numbers
- Reasoning About Lists
- Options
- Dictionaries
Library Poly
- Poly: Polymorphism and Higher-Order Functions
- Polymorphism
- Functions as Data
- The unfold Tactic
- Additional Exercises
Library MoreCoq
- MoreCoq: More About Coq
- The apply Tactic
- The apply ... with ... Tactic
- The inversion tactic
- Using Tactics on Hypotheses
- Varying the Induction Hypothesis
- Exercise: 2 stars (beq_nat_true)
- Exercise: 2 stars, advanced (beq_nat_true_informal)
- Exercise: 3 stars (gen_dep_practice)
- Exercise: 3 stars, advanced, optional (index_after_last_informal)
- Exercise: 3 stars, optional (gen_dep_practice_more)
- Exercise: 3 stars, optional (app_length_cons)
- Exercise: 4 stars, optional (app_length_twice)
- Exercise: 3 stars, optional (double_induction)
- Using destruct on Compound Expressions
- Review
- Additional Exercises
- Exercise: 3 stars (beq_nat_sym)
- Exercise: 3 stars, advanced, optional (beq_nat_sym_informal)
- Exercise: 3 stars, optional (beq_nat_trans)
- Exercise: 3 stars, advanced (split_combine)
- Exercise: 3 stars (override_permute)
- Exercise: 3 stars, advanced (filter_exercise)
- Exercise: 4 stars, advanced (forall_exists_challenge)
Library Logic
- Logic: Logic in Coq
- Propositions
- Proofs and Evidence
- Conjunction (Logical "and")
- Iff
- Disjunction (Logical "or")
- Falsehood
- Negation
Library Rel
Library Prop
- Prop: Propositions and Evidence
- From Boolean Functions to Propositions
- Inductively Defined Propositions
- Additional Exercises
- Relations
- Programming with Propositions Revisited
Library MoreLogic
Library ProofObjects
- ProofObjects: Working with Explicit Evidence in Coq
- Proof Scripts and Proof Objects
- Quantification, Implications and Functions
- Exercise: 2 stars b_times2
- Exercise: 2 stars, optional (gorgeous_plus13_po)
- Exercise: 1 star, optional (case_proof_objects)
- Exercise: 2 stars, optional (conj_fact)
- Exercise: 2 stars, advanced, optional (beautiful_iff_gorgeous)
- Exercise: 2 stars, optional (or_commut'')
- Exercise: 2 stars, optional (ex_beautiful_Sn)
- Giving Explicit Arguments to Lemmas and Hypotheses
- Programming with Tactics (Optional)
Library MoreInd
- MoreInd: More on Induction
- Induction Principles
-
- Exercise: 2 stars, optional (plus_one_r')
- Exercise: 1 star, optional (rgb)
- Exercise: 1 star, optional (natlist1)
- Exercise: 1 star, optional (byntree_ind)
- Exercise: 1 star, optional (ex_set)
- Exercise: 1 star, optional (tree)
- Exercise: 1 star, optional (mytype)
- Exercise: 1 star, optional (foo)
- Exercise: 1 star, optional (foo')
-
- Induction Hypotheses
- More on the induction Tactic
- Generalizing Inductions.
- Informal Proofs (Advanced)
- Optional Material
- Additional Exercises
Library SfLib
- SfLib: Software Foundations Library
- From the Coq Standard Library
- From Basics.v
- From Props.v
- From Logic.v
- From Later Files
- Some useful tactics
Library Imp
- Imp: Simple Imperative Programs
- Arithmetic and Boolean Expressions
- Coq Automation
- Evaluation as a Relation
- Expressions With Variables
- Commands
- Evaluation
- Reasoning About Imp Programs
- Additional Exercises
- Exercise: 3 stars (stack_compiler)
- Exercise: 3 stars, advanced (stack_compiler_correct)
- Exercise: 5 stars, advanced (break_imp)
- Exercise: 3 stars, advanced, optional (while_break_true)
- Exercise: 4 stars, advanced, optional (ceval_deterministic)
- Exercise: 3 stars, optional (short_circuit)
- Exercise: 4 stars, optional (add_for_loop)
Library ImpParser
Library ImpCEvalFun
- ImpCEvalFun: Evaluation Function for Imp
- Evaluation Function
- Equivalence of Relational and Step-Indexed Evaluation
- Determinism of Evaluation (Simpler Proof)
Library Extraction
- Extraction: Extracting ML from Coq
- Basic Extraction
- Controlling Extraction of Specific Types
- A Complete Example
- Discussion
Library Equiv
- Equiv: Program Equivalence
- Behavioral Equivalence
- Properties of Behavioral Equivalence
- Program Transformations
- Proving That Programs Are Not Equivalent
- Extended exercise: Non-deterministic Imp
- Doing Without Extensionality (Optional)
- Exercise: 1 star, optional (stequiv_refl)
- Exercise: 1 star, optional (stequiv_sym)
- Exercise: 1 star, optional (stequiv_trans)
- Exercise: 1 star, optional (stequiv_update)
- Exercise: 2 stars, optional (stequiv_aeval)
- Exercise: 2 stars, optional (stequiv_beval)
- Exercise: 2 stars, optional (identity_assignment')
- Additional Exercises
Library Hoare
- Hoare: Hoare Logic, Part I
- Hoare Logic
- Hoare Logic: So Far
Library Hoare2
- Hoare2: Hoare Logic, Part II
- Decorated Programs
- Finding Loop Invariants
- Weakest Preconditions (Advanced)
- Formal Decorated Programs (Advanced)
Library HoareAsLogic
Library Smallstep
- Smallstep: Small-step Operational Semantics
- A Toy Language
- Relations
- Multi-Step Reduction
- Small-Step Imp
- Concurrent Imp
- A Small-Step Stack Machine
Library Auto
Library Types
- Types: Type Systems
- Typed Arithmetic Expressions
- Aside: the normalize Tactic
- Additional Exercises
- Exercise: 2 stars (subject_expansion)
- Exercise: 2 stars (variation1)
- Exercise: 2 stars (variation2)
- Exercise: 2 stars, optional (variation3)
- Exercise: 2 stars, optional (variation4)
- Exercise: 2 stars, optional (variation5)
- Exercise: 2 stars, optional (variation6)
- Exercise: 3 stars, optional (more_variations)
- Exercise: 1 star (remove_predzero)
- Exercise: 4 stars, advanced (prog_pres_bigstep)
Library Stlc
- Stlc: The Simply Typed Lambda-Calculus
- The Simply Typed Lambda-Calculus
Library StlcProp
- StlcProp: Properties of STLC
- Canonical Forms
- Progress
- Preservation
- Type Soundness
- Uniqueness of Types
- Additional Exercises
- Exercise: 1 star (progress_preservation_statement)
- Exercise: 2 stars (stlc_variation1)
- Exercise: 2 stars (stlc_variation2)
- Exercise: 2 stars (stlc_variation3)
- Exercise: 2 stars, optional (stlc_variation4)
- Exercise: 2 stars, optional (stlc_variation5)
- Exercise: 2 stars, optional (stlc_variation6)
- Exercise: 2 stars, optional (stlc_variation7)
- Exercise: STLC with Arithmetic
Library MoreStlc
- MoreStlc: More on the Simply Typed Lambda-Calculus
- Simple Extensions to STLC
- Exercise: Formalizing the Extensions
Library Sub
- Sub: Subtyping
- Concepts
- A Motivating Example
- Subtyping and Object-Oriented Languages
- The Subsumption Rule
- The Subtype Relation
- Exercises
- Exercise: 1 star, optional (subtype_instances_tf_1)
- Exercise: 2 stars (subtype_order)
- Exercise: 1 star (subtype_instances_tf_2)
- Exercise: 1 star (subtype_concepts_tf)
- Exercise: 2 stars (proper_subtypes)
- Exercise: 2 stars (small_large_1)
- Exercise: 2 stars (small_large_2)
- Exercise: 2 stars, optional (small_large_3)
- Exercise: 2 stars (small_large_4)
- Exercise: 2 stars (smallest_1)
- Exercise: 2 stars (smallest_2)
- Exercise: 3 stars, optional (count_supertypes)
- Exercise: 2 stars (pair_permutation)
- Formal Definitions
- Properties
- Exercise: Adding Products
Library Typechecking
Library Records
Library References
- References: Typing Mutable References
- Definitions
- Syntax
- Pragmatics
- Operational Semantics
- Typing
- Properties
- References and Nontermination
- Additional Exercises
Library RecordSub
Library Norm
- Norm: Normalization of STLC
- Language
- Normalization
Library LibTactics
- LibTactics: A Collection of Handy General-Purpose Tactics
- Additional notations for Coq
- Tools for programming with Ltac
- Identity continuation
- Untyped arguments for tactics
- Optional arguments for tactics
- Wildcard arguments for tactics
- Position markers
- List of arguments for tactics
- Databases of lemmas
- On-the-fly removal of hypotheses
- Numbers as arguments
- Testing tactics
- Check no evar in goal
- Tagging of hypotheses
- Tagging of hypotheses
- Deconstructing terms
- Action at occurence and action not at occurence
- An alias for eq
- Backward and forward chaining
- Introduction and generalization
- Rewriting
- Inversion
- Induction
- Decidable equality
- Equivalence
- N-ary Conjunctions and Disjunctions
- Tactics to prove typeclass instances
- Tactics to invoke automation
- Tactics to sort out the proof context
- Tactics for development purposes
- Compatibility with standard library
Library UseTactics
- UseTactics: Tactic Library for Coq: A Gentle Introduction
- Tactics for introduction and case analysis
- Tactics for n-ary connectives
- Tactics for working with equality
- Some convenient shorthands
- Tactics for advanced lemma instantiation
- Summary
Library UseAuto
- UseAuto: Theory and Practice of Automation in Coq Proofs
- Basic Features of Proof Search
- How Proof Search Works
- Examples of Use of Automation
- Advanced Topics in Proof Search
- Decision Procedures
- Summary
Library PE
- PE: Partial Evaluation
- Generalizing Constant Folding
- Partial Evaluation of Commands, Without Loops
- Partial Evaluation of Loops
- Partial Evaluation of Flowchart Programs
Library Postscript
This page has been generated by coqdoc