Theorem Proving in Lean Release 3.23.0
Theorem Proving in Lean Release 3.23.0 Jeremy Avigad, Leonardo de Moura, and Soonho Kong Apr 25, 2023 CONTENTS 1 Introduction 1 1.1 Computers and Theorem Proving . . . . . . . . . . . . . . . . . . . . . 163 Bibliography 167 iii iv CHAPTER ONE INTRODUCTION 1.1 Computers and Theorem Proving Formal verification involves the use of logical and computational methods to establish claims that mathematical terms, at which point establishing claims as to their correctness becomes a form of theorem proving. Conversely, the proof of a mathematical theorem may require a lengthy computation, in which case0 码力 | 173 页 | 777.93 KB | 1 年前3The Hitchhiker’s Guide to Logical Verification
prover” as “fear improver.” Consider yourself warned. Rigorous and Formal Proofs Interactive theorem proving has its own terminol- ogy, already starting with the notion of “proof.” A formal proof is a logical PVS; Lisp-like first-order logic: ACL2. For a history of proof assistants and interactive theorem proving, we refer to Harrison, Urban, and Wiedijk’s highly informative chapter [14]. Lean Lean is a new rough edges, there are several reasons why Lean is a suitable vehicle to teach interactive theorem proving: It has a highly expressive, and highly interesting, logic based on the calculus of inductive constructions0 码力 | 215 页 | 1.95 MB | 1 年前3An Introduction to Lean
3.6 An Example: Abstract Syntax . . . . . . . . . . . . . . . . . . . . . . . . . 36 4 Theorem Proving in Lean 38 4.1 Assertions in Dependent Type Theory . . . . . . . . . . . . . . . . . . . . . 38 recommend continuing, from here, to either of the following more expansive introductions: • Theorem Proving in Lean • Programming in Lean The first focuses on the use of Lean as a theorem prover, whereas the elaborator by indicating that we intend to coerce the list to a var_assignment. 4 Theorem Proving in Lean 4.1 Assertions in Dependent Type Theory We have seen that dependent type theory is flexible0 码力 | 48 页 | 191.92 KB | 1 年前3Programming in Lean Release 3.4.2
tutorial can be viewed as a companion to Theorem Proving in Lean, which presents Lean as a system for building mathematical libraries and stating and proving mathematical theorems. From that perspective, just happens to come equipped with a rich specification language and an interactive environment for proving that programs meet their specifications. The specification language and proof system are quite powerful define functions in natural ways. At the same, the system provides complementary mechanisms for proving claims, using inductive principles that capture the structure of the function definitions. One novel0 码力 | 51 页 | 220.07 KB | 1 年前3The Idris Tutorial Version 0.9.18
— matching intermediate values . . . . . . . . . . . . . . . . . . . . . . . . . . 39 9 Theorem Proving 41 9.1 Equality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ghci style interface which allows evaluation of, as well as type checking of, expressions; theorem proving, compilation; editing; and various other operations. The command :? gives a list of supported commands complete the definition of parity. 40 Chapter 8. Views and the “with” rule CHAPTER 9 Theorem Proving 9.1 Equality Idris allows propositional equalities to be declared, allowing theorems about programs0 码力 | 69 页 | 316.20 KB | 1 年前3The Idris Tutorial Version 0.11
Packages 35 8 Example: The Well-Typed Interpreter 37 9 Views and the “with” rule 41 10 Theorem Proving 43 11 Provisional Definitions 47 12 Interactive Editing 51 13 Syntax Extensions 55 14 Miscellany ghci style interface which allows evaluation of, as well as type checking of, expressions; theorem proving, compilation; editing; and various other operations. The command :? gives a list of supported commands complete the definition of parity. 42 Chapter 9. Views and the “with” rule CHAPTER 10 Theorem Proving 10.1 Equality Idris allows propositional equalities to be declared, allowing theorems about programs0 码力 | 71 页 | 314.20 KB | 1 年前3The Idris Tutorial Version 0.9.20.1
matching intermediate values . . . . . . . . . . . . . . . . . . . . . . . . . . 41 10 Theorem Proving 43 10.1 Equality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ghci style interface which allows evaluation of, as well as type checking of, expressions; theorem proving, compilation; editing; and various other operations. The command :? gives a list of supported commands complete the definition of parity. 42 Chapter 9. Views and the “with” rule CHAPTER 10 Theorem Proving 10.1 Equality Idris allows propositional equalities to be declared, allowing theorems about programs0 码力 | 71 页 | 316.18 KB | 1 年前3Agda User Manual v2.6.2
Taste of Agda Preliminaries Programming With Dependent Types: Vectors Agda as a Proof Assistant: Proving Associativity of Addition Building an Executable Agda Program Where to go from here? A List of Tutorials type Fin 0. For more details, see the section on coverage checking. Agda as a Proof Assistant: Proving Associativity of Addition In this section we state and prove the associativity of addition on the that x and y are equal objects. By writing a function that returns an object of type x ≡ y, we are proving that the two terms are equal. Now we can state associativity: given three (possibly different) natural0 码力 | 348 页 | 414.11 KB | 1 年前3Agda User Manual v2.6.2.2
Taste of Agda Preliminaries Programming With Dependent Types: Vectors Agda as a Proof Assistant: Proving Associativity of Addition Building an Executable Agda Program Where to go from here? A List of Tutorials type Fin 0. For more details, see the section on coverage checking. Agda as a Proof Assistant: Proving Associativity of Addition In this section we state and prove the associativity of addition on the that x and y are equal objects. By writing a function that returns an object of type x ≡ y, we are proving that the two terms are equal. Now we can state associativity: given three (possibly different) natural0 码力 | 354 页 | 433.60 KB | 1 年前3Agda User Manual v2.6.2.1
Taste of Agda Preliminaries Programming With Dependent Types: Vectors Agda as a Proof Assistant: Proving Associativity of Addition Building an Executable Agda Program Where to go from here? A List of Tutorials type Fin 0. For more details, see the section on coverage checking. Agda as a Proof Assistant: Proving Associativity of Addition In this section we state and prove the associativity of addition on the that x and y are equal objects. By writing a function that returns an object of type x ≡ y, we are proving that the two terms are equal. Now we can state associativity: given three (possibly different) natural0 码力 | 350 页 | 416.80 KB | 1 年前3
共 103 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11