changeset 463:218361342cd2

Proofreading pass through Chapter 17
author Adam Chlipala <adam@chlipala.net>
date Wed, 29 Aug 2012 17:03:19 -0400
parents d7a73ab1df7b
children e53d051681b0
files src/DataStruct.v
diffstat 1 files changed, 14 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/DataStruct.v	Wed Aug 29 16:33:59 2012 -0400
+++ b/src/DataStruct.v	Wed Aug 29 17:03:19 2012 -0400
@@ -209,8 +209,8 @@
   Variable elm : A.
 
   Inductive member : list A -> Type :=
-  | MFirst : forall ls, member (elm :: ls)
-  | MNext : forall x ls, member ls -> member (x :: ls).
+  | HFirst : forall ls, member (elm :: ls)
+  | HNext : forall x ls, member ls -> member (x :: ls).
 
   (** Because the element [elm] that we are "searching for" in a list does not change across the constructors of [member], we simplify our definitions by making [elm] a local variable.  In the definition of [member], we say that [elm] is found in any list that begins with [elm], and, if removing the first element of a list leaves [elm] present, then [elm] is present in the original list, too.  The form looks much like a predicate for list membership, but we purposely define [member] in [Type] so that we may decompose its values to guide computations.
 
@@ -223,8 +223,8 @@
                                           | nil => B elm
                                           | _ :: _ => unit
                                         end) with
-          | MFirst _ => tt
-          | MNext _ _ _ => tt
+          | HFirst _ => tt
+          | HNext _ _ _ => tt
         end
       | HCons _ _ x mls' => fun mem =>
         match mem in member ls' return (match ls' with
@@ -233,8 +233,8 @@
                                             B x' -> (member ls'' -> B elm)
                                             -> B elm
                                         end) with
-          | MFirst _ => fun x _ => x
-          | MNext _ _ mem' => fun _ get_mls' => get_mls' mem'
+          | HFirst _ => fun x _ => x
+          | HNext _ _ mem' => fun _ get_mls' => get_mls' mem'
         end x (hget mls')
     end.
 (* end thide *)
@@ -244,8 +244,8 @@
 Implicit Arguments HNil [A B].
 Implicit Arguments HCons [A B x ls].
 
-Implicit Arguments MFirst [A elm ls].
-Implicit Arguments MNext [A elm x ls].
+Implicit Arguments HFirst [A elm ls].
+Implicit Arguments HNext [A elm x ls].
 (* end thide *)
 
 (** By putting the parameters [A] and [B] in [Type], we allow some very higher-order uses.  For instance, one use of [hlist] is for the simple heterogeneous lists that we referred to earlier. *)
@@ -257,14 +257,14 @@
 Example someValues : hlist (fun T : Set => T) someTypes :=
   HCons 5 (HCons true HNil).
 
-Eval simpl in hget someValues MFirst.
+Eval simpl in hget someValues HFirst.
 (** %\vspace{-.15in}% [[
      = 5
      : (fun T : Set => T) nat
 ]]
 *)
 
-Eval simpl in hget someValues (MNext MFirst).
+Eval simpl in hget someValues (HNext HFirst).
 (** %\vspace{-.15in}% [[
      = true
      : (fun T : Set => T) bool
@@ -334,7 +334,7 @@
 ]]
 *)
 
-Eval simpl in expDenote (Abs (dom := Unit) (Var MFirst)) HNil.
+Eval simpl in expDenote (Abs (dom := Unit) (Var HFirst)) HNil.
 (** %\vspace{-.15in}% [[
      = fun x : unit => x
      : typeDenote (Arrow Unit Unit)
@@ -342,21 +342,21 @@
 *)
 
 Eval simpl in expDenote (Abs (dom := Unit)
-  (Abs (dom := Unit) (Var (MNext MFirst)))) HNil.
+  (Abs (dom := Unit) (Var (HNext HFirst)))) HNil.
 (** %\vspace{-.15in}% [[
      = fun x _ : unit => x
      : typeDenote (Arrow Unit (Arrow Unit Unit))
 ]]
 *)
 
-Eval simpl in expDenote (Abs (dom := Unit) (Abs (dom := Unit) (Var MFirst))) HNil.
+Eval simpl in expDenote (Abs (dom := Unit) (Abs (dom := Unit) (Var HFirst))) HNil.
 (** %\vspace{-.15in}% [[
      = fun _ x0 : unit => x0
      : typeDenote (Arrow Unit (Arrow Unit Unit))
 ]]
 *)
 
-Eval simpl in expDenote (App (Abs (Var MFirst)) Const) HNil.
+Eval simpl in expDenote (App (Abs (Var HFirst)) Const) HNil.
 (** %\vspace{-.15in}% [[
      = tt
      : typeDenote Unit