mirror of
https://github.com/achlipala/frap.git
synced 2024-12-01 00:26:18 +00:00
Revising for Wednesday's lecture
This commit is contained in:
parent
0cba7c9f61
commit
23a0972d11
1 changed files with 4 additions and 3 deletions
|
@ -12,7 +12,7 @@ Set Implicit Arguments.
|
||||||
(** * Ltac Programming Basics *)
|
(** * Ltac Programming Basics *)
|
||||||
|
|
||||||
(* We have already seen a few examples of Ltac programs, without much explanation.
|
(* We have already seen a few examples of Ltac programs, without much explanation.
|
||||||
* Ltac is the proof scripting language built into Coq. Actually, every
|
* Ltac is the proof-scripting language built into Coq. Actually, every
|
||||||
* primitive step in our proofs has been a (degenerate, small) Ltac program.
|
* primitive step in our proofs has been a (degenerate, small) Ltac program.
|
||||||
* Let's take a bottom-up look at more Ltac features.
|
* Let's take a bottom-up look at more Ltac features.
|
||||||
*
|
*
|
||||||
|
@ -245,7 +245,7 @@ Qed.
|
||||||
(* In class, we develop our own implementation of [propositional] one feature
|
(* In class, we develop our own implementation of [propositional] one feature
|
||||||
* at a time, but here's just the final product. To understand it, we print
|
* at a time, but here's just the final product. To understand it, we print
|
||||||
* the definitions of the logical connectives. Interestingly enough, they are
|
* the definitions of the logical connectives. Interestingly enough, they are
|
||||||
* special cases of the machinery we met last time for inductive relations! *)
|
* special cases of the machinery we met previously for inductive relations! *)
|
||||||
|
|
||||||
Print True.
|
Print True.
|
||||||
Print False.
|
Print False.
|
||||||
|
@ -485,7 +485,7 @@ Abort.
|
||||||
|
|
||||||
(* However, it's not always convenient to use continuation-passing style
|
(* However, it's not always convenient to use continuation-passing style
|
||||||
* everywhere, so cool kids use the following hack to sneak side effects
|
* everywhere, so cool kids use the following hack to sneak side effects
|
||||||
* into otherwise functional Ltac code. *)
|
* into otherwise-functional Ltac code. *)
|
||||||
Module Import WithPrintingFixedWithoutContinuations.
|
Module Import WithPrintingFixedWithoutContinuations.
|
||||||
Ltac length ls :=
|
Ltac length ls :=
|
||||||
let __ := match constr:(Set) with
|
let __ := match constr:(Set) with
|
||||||
|
@ -503,6 +503,7 @@ Goal False.
|
||||||
pose n.
|
pose n.
|
||||||
Abort.
|
Abort.
|
||||||
|
|
||||||
|
|
||||||
(** * Recursive Proof Search *)
|
(** * Recursive Proof Search *)
|
||||||
|
|
||||||
(* Let's work on a tactic to try all possible instantiations of quantified
|
(* Let's work on a tactic to try all possible instantiations of quantified
|
||||||
|
|
Loading…
Reference in a new issue