Commit d9f91c30 authored by Adam Chlipala's avatar Adam Chlipala

Small tweak to keep things working in 8.2

parent 1f3d675d
...@@ -156,10 +156,15 @@ Section fhlist_map. ...@@ -156,10 +156,15 @@ Section fhlist_map.
Theorem get_imap : forall ls (mem : fmember elm ls) (hls : fhlist B ls), Theorem get_imap : forall ls (mem : fmember elm ls) (hls : fhlist B ls),
fhget (fhmap hls) mem = f (fhget hls mem). fhget (fhmap hls) mem = f (fhget hls mem).
(* begin thide *) (* begin hide *)
induction ls; crush; case a0; reflexivity.
(* end hide *)
(** [[
induction ls; crush. induction ls; crush.
]]
(** In Coq 8.2, one subgoal remains at this point. Coq 8.3 has added some tactic improvements that enable [crush] to complete all of both inductive cases. To introduce the basics of reasoning about equality, it will be useful to review what was necessary in Coq 8.2 In Coq 8.2, one subgoal remains at this point. Coq 8.3 has added some tactic improvements that enable [crush] to complete all of both inductive cases. To introduce the basics of reasoning about equality, it will be useful to review what was necessary in Coq 8.2.
Part of our single remaining subgoal is: Part of our single remaining subgoal is:
...@@ -213,6 +218,7 @@ The term "refl_equal ?98" has type "?98 = ?98" ...@@ -213,6 +218,7 @@ The term "refl_equal ?98" has type "?98 = ?98"
reflexivity. reflexivity.
]] *) ]] *)
Qed. Qed.
(* end thide *) (* end thide *)
......
(* Copyright (c) 2008-2010, Adam Chlipala (* Copyright (c) 2008-2011, Adam Chlipala
* *
* This work is licensed under a * This work is licensed under a
* Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 * Creative Commons Attribution-Noncommercial-No Derivative Works 3.0
...@@ -21,7 +21,7 @@ Set Implicit Arguments. ...@@ -21,7 +21,7 @@ Set Implicit Arguments.
(** I will start off by jumping right in to a fully-worked set of examples, building certified compilers from increasingly complicated source languages to stack machines. We will meet a few useful tactics and see how they can be used in manual proofs, and we will also see how easily these proofs can be automated instead. This chapter is not meant to give full explanations of the features that are employed. Rather, it is meant more as an advertisement of what is possible. Later chapters will introduce all of the concepts in bottom-up fashion. (** I will start off by jumping right in to a fully-worked set of examples, building certified compilers from increasingly complicated source languages to stack machines. We will meet a few useful tactics and see how they can be used in manual proofs, and we will also see how easily these proofs can be automated instead. This chapter is not meant to give full explanations of the features that are employed. Rather, it is meant more as an advertisement of what is possible. Later chapters will introduce all of the concepts in bottom-up fashion.
I assume that you have installed Coq and Proof General. The code in this book is tested with Coq version 8.2pl2, though parts may work with other versions. I assume that you have installed Coq and Proof General. The code in this book is tested with Coq versions 8.2pl2 and 8.3pl1, though parts may work with other versions.
To set up your Proof General environment to process the source to this chapter, a few simple steps are required. To set up your Proof General environment to process the source to this chapter, a few simple steps are required.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment