lectures.alex.balgavy.eu

Lecture notes from university.
git clone git://git.alex.balgavy.eu/lectures.alex.balgavy.eu.git
Log | Files | Refs | Submodules

commit 0c9993eb9c5e3a62245d405d5f0ec78c0eff23cb
parent e4d1a5f6d708c34f2fd24b0bd6efc7a93a0c6e8b
Author: Alex Balgavy <alex@balgavy.eu>
Date:   Sat, 12 Dec 2020 18:19:01 +0100

Finalize logical verification notes

Diffstat:
Mcontent/logical-verification/Backward proofs/index.md | 1-
Mcontent/logical-verification/Basics.md | 1-
Mcontent/logical-verification/Forward proofs.md | 3+--
Mcontent/logical-verification/Functional programming.md | 3+--
Mcontent/logical-verification/Inductive predicates.md | 2--
Mcontent/logical-verification/_index.md | 80++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------
6 files changed, 69 insertions(+), 21 deletions(-)

diff --git a/content/logical-verification/Backward proofs/index.md b/content/logical-verification/Backward proofs/index.md @@ -1,7 +1,6 @@ +++ title = 'Backward proofs' +++ - # Backward proofs This is like going up the proof tree. diff --git a/content/logical-verification/Basics.md b/content/logical-verification/Basics.md @@ -2,7 +2,6 @@ title = 'Basics' template = 'page-math.html' +++ - # Basics ## Type checking diff --git a/content/logical-verification/Forward proofs.md b/content/logical-verification/Forward proofs.md @@ -90,4 +90,4 @@ lemma reverse_append {α : Type} : ∀xs ys : list α, reverse (xs ++ ys) = reverse ys ++ reverse xs | [] ys := by simp [reverse] | (x :: xs) ys := by simp [reverse, reverse_append xs ys] -```- \ No newline at end of file +``` diff --git a/content/logical-verification/Functional programming.md b/content/logical-verification/Functional programming.md @@ -112,4 +112,4 @@ Have nodes with max two children. inductive btree (α : Type) : Type | empty {} : btree | node : α → btree → btree → btree -```- \ No newline at end of file +``` diff --git a/content/logical-verification/Inductive predicates.md b/content/logical-verification/Inductive predicates.md @@ -1,9 +1,7 @@ +++ title = 'Inductive predicates' +++ - # Inductive predicates - This is basically "logic programming." Inductive predicates: inductively defined propositions, way to specify functions of type `... → Prop`. diff --git a/content/logical-verification/_index.md b/content/logical-verification/_index.md @@ -8,16 +8,70 @@ title = "Logical Verification" There is a [Git repository](https://github.com/blanchette/logical_verification_2020) and a [book](https://github.com/blanchette/logical_verification_2020/raw/master/hitchhikers_guide.pdf) (also [formatted for tablets](https://github.com/blanchette/logical_verification_2020/raw/master/hitchhikers_guide_tablet.pdf)). - [Basics](basics) -- [Backward proofs](backward-proofs/) -- [Forward proofs](forward-proofs/) -- [Functional programming](functional-programming/) -- [Inductive predicates](inductive-predicates/) -- [Monads](monads/) -- [Metaprogramming](metaprogramming/) -- [Operational semantics](operational-semantics/) -- [Hoare logic](hoare-logic/) -- [Denotational semantics](denotational-semantics/) -- [Logical foundations of mathematics](logical-foundations-of-mathematics/) -- [Basic mathematical structures](basic-mathematical-structures/) -- [Rational and real numbers](rational-and-real-numbers/) -- [Formalizing the p-adic numbers](formalizing-the-p-adic-numbers/) + - [Type checking](basics#type-checking) + - [Lean diagnosis commands](basics#lean-diagnosis-commands) + - [Inductive type definitions](basics#inductive-type-definitions) + - [Function definitions](basics#function-definitions) +- [Backward proofs](backward-proofs) + - [Rewrite rules](backward-proofs#rewrite-rules) +- [Forward proofs](forward-proofs) + - [Structured constructs](forward-proofs#structured-constructs) + - [Calculational proofs](forward-proofs#calculational-proofs) + - [Dependent types](forward-proofs#dependent-types) + - [Curry-Howard Correspondence](forward-proofs#curry-howard-correspondence) + - [Induction by pattern matching](forward-proofs#induction-by-pattern-matching) +- [Functional programming](functional-programming) + - [Inductive types](functional-programming#inductive-types) + - [Structural induction](functional-programming#structural-induction) + - [Structural recursion](functional-programming#structural-recursion) + - [Pattern matching](functional-programming#pattern-matching) + - [Structures](functional-programming#structures) + - [Type classes](functional-programming#type-classes) + - [Lists](functional-programming#lists) + - [Binary trees](functional-programming#binary-trees) +- [Inductive predicates](inductive-predicates) +- [Monads](monads) + - [Two operations, three laws](monads#two-operations-three-laws) + - [Mutable state](monads#mutable-state) + - [Nondeterminism](monads#nondeterminism) +- [Metaprogramming](metaprogramming) + - [Tactics, tactic combinators](metaprogramming#tactics-tactic-combinators) + - [The metaprogramming monad](metaprogramming#the-metaprogramming-monad) +- [Operational semantics](operational-semantics) + - [Creating a small imperative language: WHILE](operational-semantics#creating-a-small-imperative-language-while) + - [Big-step (natural) semantics](operational-semantics#big-step-natural-semantics) + - [Properties of big-step semantics](operational-semantics#properties-of-big-step-semantics) + - [Small-step semantics](operational-semantics#small-step-semantics) + - [Properties of small-step semantics](operational-semantics#properties-of-small-step-semantics) +- [Hoare logic](hoare-logic) + - [Hoare triples](hoare-logic#hoare-triples) + - [Hoare rules](hoare-logic#hoare-rules) + - [Semantic approach to Hoare Logic](hoare-logic#semantic-approach-to-hoare-logic) + - [Verification condition generator](hoare-logic#verification-condition-generator) + - [Hoare triples for total correctness](hoare-logic#hoare-triples-for-total-correctness) +- [Denotational semantics](denotational-semantics) + - [Compositionality](denotational-semantics#compositionality) + - [Relational denotational semantics](denotational-semantics#relational-denotational-semantics) + - [Fixpoints](denotational-semantics#fixpoints) + - [Monotone functions](denotational-semantics#monotone-functions) + - [Complete lattices](denotational-semantics#complete-lattices) + - [Least fixpoint](denotational-semantics#least-fixpoint) + - [Application to program equivalence](denotational-semantics#application-to-program-equivalence) +- [Logical foundations of mathematics](logical-foundations-of-mathematics) + - [Universes](logical-foundations-of-mathematics#universes) + - [The Prop universe](logical-foundations-of-mathematics#the-prop-universe) + - [Universe of α → β (impredicativity)](logical-foundations-of-mathematics#universe-of-a-b-impredicativity) + - [Proof irrelevance](logical-foundations-of-mathematics#proof-irrelevance) + - [No large elimination](logical-foundations-of-mathematics#no-large-elimination) + - [Axiom of choice](logical-foundations-of-mathematics#axiom-of-choice) + - [Subtypes](logical-foundations-of-mathematics#subtypes) + - [Quotient types](logical-foundations-of-mathematics#quotient-types) +- [Basic mathematical structures](basic-mathematical-structures) + - [Type classes](basic-mathematical-structures#type-classes) + - [Lists, multisets, finite sets](basic-mathematical-structures#lists-multisets-finite-sets) + - [Order type classes](basic-mathematical-structures#order-type-classes) +- [Rational and real numbers](rational-and-real-numbers) + - [Rational numbers](rational-and-real-numbers#rational-numbers) + - [Real numbers](rational-and-real-numbers#real-numbers) +- [Formalizing the p-adic numbers](formalizing-the-p-adic-numbers) + - [The p-adic norm](formalizing-the-p-adic-numbers#the-p-adic-norm)