Revising for Wednesday's lecture

This commit is contained in:
Adam Chlipala 2022-02-13 14:34:23 -05:00
parent 0cba7c9f61
commit 23a0972d11

View file

@ -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