comparison src/MoreDep.v @ 465:4320c1a967c2

Spell check
author Adam Chlipala <adam@chlipala.net>
date Wed, 29 Aug 2012 18:26:26 -0400
parents 49bd155dfc52
children 1fd4109f7b31
comparison
equal deleted inserted replaced
464:e53d051681b0 465:4320c1a967c2
208 | Nat => nat 208 | Nat => nat
209 | Bool => bool 209 | Bool => bool
210 | Prod t1 t2 => typeDenote t1 * typeDenote t2 210 | Prod t1 t2 => typeDenote t1 * typeDenote t2
211 end%type. 211 end%type.
212 212
213 (** The [typeDenote] function compiles types of our object language into "native" Coq types. It is deceptively easy to implement. The only new thing we see is the [%]%\coqdocvar{%#<tt>#type#</tt>#%}% annotation, which tells Coq to parse the [match] expression using the notations associated with types. Without this annotation, the [*] would be interpreted as multiplication on naturals, rather than as the product type constructor. The token %\coqdocvar{%#<tt>#type#</tt>#%}% is one example of an identifer bound to a%\index{notation scope delimiter}% _notation scope delimiter_. In this book, we will not go into more detail on notation scopes, but the Coq manual can be consulted for more information. 213 (** The [typeDenote] function compiles types of our object language into "native" Coq types. It is deceptively easy to implement. The only new thing we see is the [%]%\coqdocvar{%#<tt>#type#</tt>#%}% annotation, which tells Coq to parse the [match] expression using the notations associated with types. Without this annotation, the [*] would be interpreted as multiplication on naturals, rather than as the product type constructor. The token %\coqdocvar{%#<tt>#type#</tt>#%}% is one example of an identifier bound to a%\index{notation scope delimiter}% _notation scope delimiter_. In this book, we will not go into more detail on notation scopes, but the Coq manual can be consulted for more information.
214 214
215 We can define a function [expDenote] that is typed in terms of [typeDenote]. *) 215 We can define a function [expDenote] that is typed in terms of [typeDenote]. *)
216 216
217 Fixpoint expDenote t (e : exp t) : typeDenote t := 217 Fixpoint expDenote t (e : exp t) : typeDenote t :=
218 match e with 218 match e with